Attention Guided Graph Convolutional Networks for Relation Extraction
前言
正式入门NLP-关系抽取研究的第一篇论文。关系抽取的目的是发现文本中不同实体之间的关系。它在知识图谱,问答系统中起着重要的作用。
现存的大多数关系抽取模型可以分为两类,基于序列和基于依赖的。基于序列的模型研究的是词序列,基于依赖的模型是将依赖树添加入模型中。后者可以捕捉到单独从表面形式上模糊的句法信息。
谨记录学习的点点滴滴。
正文
Abstract
dependency trees包含着对于关系抽取非常有用的结构信息,但是当去除不想关信息时,如何有效使用对应的信息是一个很大的挑战。现有的,为了选择对应的部分依赖架构的hard-pruning策略并不总是产生最优的结果。本文中,提出了AGGCNs模型,这个模型直接把整棵依赖树作为输入(转为全连接的权重图),区别于前者的修剪之后的输入,称之为soft-pruning策略。
模型(Attention GUided GCNs)
AGGCN由M个相同的block组成,每个block包括Attention Guided Layer和N个Densely Connected Layer以及Linear Combination Layer(如右侧所示)。每个block将node embedding和表征图的邻接矩阵作为输入。N个 attention guided adjacency matrices,A~(1)到A~(n)\tilde{A}^{(1)} 到 \tilde{A}^{(n)}A~(1)到A~(n)由multi-head attention 生成
Attention Guided Layer
这篇文章第一次引入了attention guided layer在AGGCN模型中。之前存在了一些预定义的修剪策略,它们通过构造好的邻接矩阵去将full tree 转化为 subtree,这可以看作 hard attention的一种形式,在 subtree中不存在的边在邻接矩阵对应的元素直接赋为0。在Abstract中提到,这种方式可能消除了原始的 full tree中的信息,而本文的attention guided layer 实现的soft pruning 则可以克服这一缺点。在attention guided layer 中,先将原始的图转化为邻接矩阵,然后通过 multi-head attention 转化为 全连接的 attention guided adjacency matrice A~\tilde{A}A~, 矩阵中的每个元素对应相应节点之间边的权重,从而捕捉到领域的信息,甚至是multi-hop 的信息。
A~(t)=softmax(QWiQ×(KWiK)Td1/2)V
\tilde{A}^{(t)} = softmax(\frac{QW^Q_i\times(KW^K_i)^T}{\sqrt[1/2]{d}})V
A~(t)=softmax(1/2dQWiQ×(KWiK)T)V
Q,K都等于模型在l-1层即上一层的集体表征h(l−1)h^{(l-1)}h(l−1),WiQW^Q_iWiQ 和WiKW^K_iWiK是通过训练得到的参数矩阵。A~(t)\tilde{A}^{(t)}A~(t)是第t层的对应第t个head的attention guided adjacency矩阵。在实际的训练中,由原始图得到邻接矩阵即为attention guided adjacency的初始化。Attention Guided Layer层中的N是预设参数。
Densely Connected Layer
Densely Connected Layer使得可以模型可以更加深层次,从而捕捉到丰富的局部和非局部信息,得到更佳的图表征。数学上,定义gj(l)g^{(l)}_jgj(l)作为初始节点表征和之前1,…,l-1层中节点表征的连接。由于上一层的attention guided layer产生了N个不同的A~\tilde{A}A~,所以一个block中包含N个densely connected layer。
gj(l)=[xj;hj1;…;hjl−1]
g^{(l)}_j = [x_j;h^{1}_j;…;h^{l-1}_j]
gj(l)=[xj;hj1;…;hjl−1]
实际上每个densely connected layer由L个sub layer组成,这些sub_layer的大小由L和输入特征的大小d决定,即d/L。这一点与GCN模型隐藏维数大于或者等于输入特征大小不同,它是可收缩的,有助于使参数更加有效(类似DenseNets,实际上是减少参数,不过是否节约显存就不知道了)。
第t个densely connectly layer层中,对于图中的第i个结点,第l个sub-layer层中,节点的表征hti(l)h^{(l)}_{t_i}hti(l) 计算如下:
hti(l)=ρ(∑j=1nA~ij(t)Wt(l)gj(l)+bt(l))
h^{(l)}_ {t_i} = \rho(\sum_{j=1}^{n}\tilde{A}^{(t)}_{ij}W^{(l)}_tg^{(l)}_j+b^{(l)}_t)
hti(l)=ρ(j=1∑nA~ij(t)Wt(l)gj(l)+bt(l))
t = 1,…,N,选择了对应的 attention guided adjacency matrix和偏差,A~ij(t)\tilde{A}^{(t)}_{ij}A~ij(t)代表了节点i和j之间的权重。Wt(l)∈Rdhidden×dlW^{(l)}_t \in R^{d_{hidden}\times d^{l} }Wt(l)∈Rdhidden×dl,dl=d+dhidden×(l−1)d^{l} = d + d_{hidden} \times (l-1)dl=d+dhidden×(l−1)(参照gj(l)g^{(l)}_jgj(l)的dimensions)
Linear Conbination Layer
通过线性混合层合并N个不同的densely connected layer,输出如下:
hcomb=Wcombhout+bcomb
h_{comb} = W_{comb}h_{out} + b_{comb}
hcomb=Wcombhout+bcomb
Final
经过上述的AGGCN模型,我们得到所有tokens的表征,之后关是预测实体之间关系。论文中将句子的表征和实体表征合并。
首先,需要得到sentence representation:
hsent=f(hmask)=f(AGGCN(x))
h_{sent} = f(h_{mask}) = f(AGGCN(x))
hsent=f(hmask)=f(AGGCN(x))
这里面的mask表示我们仅仅选择了除去了实体表征之后的段落表征(不知道理解是否正确,因为之后还有 entity token representation)。f函数是一个池化函数:
以上介绍了最后通过逻辑回归进行关系的预测。
Qusetions
- 如何理解LCA和距离LCA,K步的意思
- 词性标注,关系种类
- 论文2.5不理解
补充
[卷积][https://www.zhihu.com/question/22298352]: 通俗地理解卷积
[GCN][https://www.zhihu.com/question/54504471]
[谱分解][https://baike.baidu.com/item/特征分解/12522621?fr=aladdin]
/question/54504471]
[谱分解][https://baike.baidu.com/item/特征分解/12522621?fr=aladdin]
[self-attention][https://zhuanlan.zhihu.com/p/47282410]