【论文阅读】Attention Guided Graph Convolutional Networks for Relation Extraction
将句法依存树视为输入,在n元关系抽取中
大规模句子级别关系抽取能够提取出依存树中的信息;
https://github.com/Cartus/AGGCN_TACRED
文章目录
-
- 创新:
- GCN
- 注意力引导层
- 密连接层
- 线性组合层
- 关系抽取层
创新:
设计软剪枝策略,并将完整的依赖树嵌入到全连接边加权图中。 其中权重参数通过注意力机制进行学习。

GCN
给定一个包含n个节点的图G(V,E),可以用n \times n的邻接矩阵来表示该图的结构。为了更好地编码依赖关系,在模型中将边的方向性扩展至整个模型架构中。为每个节点添加自环边后,在新的邻接关系下构建了一个更为完整的依赖网络。在构建这种依赖关系时,在对应的邻接矩阵中将所有直接相连的关系标记为1,并将这些位置赋值为1;而未建立直接连接关系的位置则赋值为0。对于第l-1层中的第i个节点进行卷积操作时,在计算其输出特征时会自动考虑前一层所有可能相关的输入特征信息

最外面套的激活函数\rho是ReLU

注意力引导层
大多数现有的建设策略普遍采用预先设定好的方案。基于已构建的一个邻接矩阵网络基础之上,将整个全连接树构建为子结构。
这相当于将权重最高的注意力机制设为1,并将其余注意力权重置为0。
作者指出这种修剪策略过于简单直接,并导致关键信息遗漏。随后提出了软剪枝方法,并将其应用于注意力机制中,在每条边上分配相应的权重系数
在注意力机制中,我们将早期形成的依存结构纳入分析,并构建对应的邻接矩阵\overrightarrow{A}
在邻接矩阵中所对应的元素A_{ij}代表地表明了结点i至结点j之间的权重关系,在借助注意力机制进行构造的过程中得以体现。
拿到\overrightarrow{A},就可以把他作为后面的输入
在本文中,向量\overrightarrow{A}采用了多头注意力机制,并有助于模型提取不同子空间的信息。

Q K都等于h^{l-1}
通过图形直观地可以看出,在将一个标准的邻接矩阵结构转换为基于多头注意力机制引导的形式后,能够更好地体现其特性。
密连接层
为了更好地捕捉系统的层次化信息特征,在此基础上进行加密处理。
加入更多的中间层次后可进一步训练出更深一层的网络架构,从而学习到局部与长距离的空间关系。
已知GCN具有L层结构,其中第i层节点均与前i-1层节点相连。图中对此进行了具体说明。
我们定义g为初始结点表示,并关注其实现细节及其与该层节点表示之间的联系。

每一个密连接都有L个分支结构。其其分支的维数d_{hidden}取决于层数L以及初始特征维数d。作者将其定义为d_{hidden} = d/L。
例如密连接层包含三个子层,并且其输入维度设定为300。每个子层中的隐藏维度d_{hidden}被设定为100。在完成上述操作后,在将所有子层的输出进行拼接时,则整体输出的空间维度仍保持为300。
基于此,在我们拥有N个attention guide 临接矩阵的情况下,将必要地构建N个密连接层以确保计算过程得以高效执行。

线性组合层

来一个线性组合层,去把N个密连接的输出整合起来。

h_{out}把N个密连接的输出拼接起来。
关系抽取层
在完成了一系列操作之后

这里的mask就选择句子中,不是实体的标注表示

f是一个max pooling
相似的,也可以获得第i个实体的表示

实体表示和句子表示拼接起来,送到前馈神经网络,得到h_{final}

最后,h_{final}再逻辑回归做个分类
本质上还是一个关系分类任务,为什么都要说自己是关系抽取呢,疑惑
