本文是一篇关于Graph Representation Learning的综述。网络特征学习(network representation learning / network embedding)是近年来兴起的一个特征学习的研究分支。作为一种降维方法,网络特征学习试图将一个网络中的节点或者边映射到一个低维连续向量空间中,并在该低维空间中保持原有网络的结构信息,以辅助后续的连接预测、节点分类、推荐系统、聚类、可视化等任务。
Dynamic Knowledge Graph for Multi-domain dialogue State Tracking
论文认为(domain, slot)之间不是相互独立的:
In fact, the (domain, slot) pairs are not independent. For example, if a user requested a train for 3 people, then the number of people for hotel reservation may also be 3.
作者考虑了MultiWOZ 2:0/2:1数据集中以下4种关系:
$(s, r_{v}, s’)$ : slot $s, s’$具有相同的取值集合,即 $V^{s}=V^{s’}$,这里的$V$仅代表slot value有限的情况。
For example, in MultiWOZ 2:0/2:1 dataset, domain-slot pairs (restaurant, book day) and (hotel, book day) have this relationship.
$(s, r_{s}, s’)$ : slot s的取值集合是$s’$的子集。
For example, in MultiWOZ 2:0/2:1 dataset, value sets of (restaurant, name), (hotel, name), (train, station) and (attraction, name) are subsets of the value set of (taxi, destination).
$(s, r_{c}, s’)$ : slot s的informed value v与slot $s’$的informed value $v’$ 存在关联,即使$V^{s}, V^{s’}$ 不存在交集,这种关系并没有显式地在ontology中给出。
For example, in MultiWOZ 2:0/2:1 dataset, the price range of a reserved restaurant is correlated with the star of the booked hotel.
$(s, r_{i}, v)$ : 用户已告知的slot $s \in S^{d}$ 的value $v \in V^{s}$。
在这4种关系中,前3种描述的是 (domain, slot) 之间的关系,最后一种是slot与value的对应关系,这种关系会在对话过程中不断改变,因为用户informed的value逐渐增加。本文提出一种动态图注意力模型来建模这些关系,核心是使用(domain, slot)节点和value节点来构建一个动态变化图,然后借助于图注意力机制,使用对话上下文向量对所有(domain, slot)节点做注意力计算,把注意力输出用于最后的softmax分类。
Graph Definition 图包含两种节点:$\{M,N\}$,M代表(domain, slot) pair节点,记作$M_{d,s}$,N代表value值节点,记作 $N_{v}$。同样,图中包含两种边。一种边描述的是第4种关系:如果一个问题$Q_{d,s}$ 对应答案$v \in V^{s}$,那么$N_{v}$就会被添加到图中,且连接到$M_{d,s}$。默认情况下$M_{d,s}$会连接到一个特殊的_not mentioned_节点。另一种边描述的是前3种关系,由于第3种关系在ontology中没有显式地给出,所以作者做了简化处理,直接将M中所有的(domain, slot) 节点相互连接,然后使用注意力的方式读取。
Attention Over the Graph
The first step is to propagate the embedding of $N_{v}$ to its linked $M_{d,s}$, so that the embedding of $M_{d,s}$ depends on the value prediction from previous turns.
$$g_{d, s}=\eta\left(w^{d}+w^{s}\right)+(1-\eta) \sigma\left(\Theta_{4} \cdot W_{v,:}^{\bar{v}}\right)$$
其中$g_{d,s}$就是$M_{d,s}$新的embedding,实际作者使用的是简化式:$g_{d, s}=w^{d}+w^{s}+W_{v,:}^{\bar{v}}$。The second step is to propagate information between nodes in M.
$$
\alpha^{g}=\operatorname{Att}_{\beta_{4}}\left(G, B^{c \top} \cdot \alpha^{b}\right)
$$
其中$G \in \mathbb{R}^{|M| * D^{w}}$ 由$g_{d,s}$拼接而成,$B^{c \top} \cdot \alpha^{b}$ 代表针对于$d,s$的context vector。The attention scores can be interpreted as the learned relationships between the current (domain, slot) node and all other (domain, slot) nodes.
$$p_{t}^{v}= Softmax ( \text{BiLinear}_{\Phi_{1}} ( B^{q}, (1 - \gamma ) B^{c^{\top}} \cdot \alpha^{b}+\gamma z_{d, s} ) )$$
Some utterances such as “book a taxi to Cambridge station” do not need information in the graph, while some utterances such as “book a taxi from the hotel to the restaurant” needs information from other domains.
Graph Convolutional Network with Sequential Attention for Goal-Oriented Dialogue Systems
TACL, https://drive.google.com/open?id=1tWsm49TRNYfii5jUzI2JXJJtM15Z1z0m
本文研究的是任务型对话生成任务,在该任务中,有三种信息输入:
- 知识库KB
- 对话历史
- 当前用户utterance
传统的Mem2Seq忽略了这些输入内部的结构信息,而本文则利用GCN的方法来学习更好的建模结构化知识。针对于KB,因为KB自身就是一种(entity, relation, entity)的三元组,属于一种图结构,所以可以直接运行GCN;而对于对话历史和当前用户utterance来说,需要构建一个显式的图结构,作者使用来一个句法分析器来构建或者通过词与词之间的共现矩阵,最终得到一个word-word之间的交互图。针对于这两种交互图,作者使用了下列两种GCN编码方式,区别在于是否使用RNN编码层:
获得图中的节点编码后,作者使用多个注意力机制来辅助解码生成:
DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation
EMNLP 2019, https://drive.google.com/open?id=1c3_OfAT5zKHzDZA79P3AvPtG2ZZk5USh
本文研究的是对话情感识别任务,给对话中的每一个utterance指定一个情感标签。论文主要贡献点在于使用GCN对对话历史建模:
GSN: A Graph-Structured Network for Multi-Party Dialogues
IJCAI 2019, https://drive.google.com/open?id=15NnCD6dRNjGgT3dJ-8kqs3A5mDL2G0I9
本文研究的是多用户参与的对话生成任务,此时的对话utterance之间便不再是简单地时序关系,而是如下所示:
模型结构:
Graph Transformer for Graph-to-Sequence Learning
AAAI2020, https://drive.google.com/open?id=1ZKeMGhLhx5Y2zQI2kdEUlbO-gA9mYwFJ
传统的GNN只能聚合邻居节点的信息,而对于图中相距较远的节点则无法建立联系。本文借鉴Transformer的思想,直接建立任意两个节点之间的关联,同时为了保证图所包含的原始拓扑结构,在计算两个节点之间的注意力分数时考虑了二者之间的关系,作者使用节点之间的最短路径作为关系,然后用一个RNN编码得到关系表征,再把这个表征与节点表征融合到一起得到两个节点之间的注意力分数,整体结构如下: