一、《Graph Convolution over Pruned Dependency Trees Improves Relation Extraction》
基于依存树的GCN,将单词保留在两个实体的最短路径上,原先基于依存树最短路构造的模型,可能会缺失掉重要信息。
1、把依存树编码为GCN的输入,得到以实体为中心表示做最后的分类
2、把依存树以最大化相关信息为目标去移除不相关的信息
3、如果依存树上两个节点有边,那么其邻接矩阵中对应的值就为1
4、节点通过其不大于L个边的邻居的影响,形成向量表示,句子和两个实体分别进入GCN,然后拼接,进入全连接
5、上面的方法中节点的向量表示缺少语义信息,所以先将节点的语义表示进入双向LSTM,再按照上面的过程
6、如果只保存依存树实体之间的dependency path,会丢掉关键信息,(有的选择丢掉实体之间的最短公共祖先LCA之外的节点),此文章的剪枝策略为选择LCA子树中依存路径之外的最大K距离的节点,若K=0,则只选择LCA子树的依存路径,若K=1,只选择LCA路径外直接相连的节点,若K=无穷大,则选择整个LCA子树,k=1时结果最好,把剪枝好的树放入上述网络
二、《Attention Guided Graph Convolutional Networks for Relation Extraction》
1、以前的模型GCN都是基于依赖树的一种硬剪枝策略形成的子树,而本文中是整棵树进入GCN,边的权重参与训练
2、注意力层是从第二块(共M块)开始做,其中Q、K都是上一层的隐藏状态,初始的邻接矩阵A在第一块中参与计算
3、全连接层有多个,前面的输出都作为后面的输入,
4、对多个A分别进入全连接,得到对应的h,再进行连接,进入线性组合层
5、把句子中去掉实体后和实体分别进入上述过程,得到句子表示和实体表示,然后两个连接后,进入全连接层做最后的预测
三、《Joint Type Inference on Entities and Relations via Graph Convolutional Networks》
1、分为2步,实体边界识别和实体和关系类型识别
2、实体边界识别当做序列标注问题,类型识别用GCN实现
3、实体边界识别用双向LSTM+softmax ,提取出实体的隐层向量,进入CNN(maxpooling)、全连接层得到实体对应的向量表示 ,标注为B、I、L、U(单个字)
4、二部图是实体和实体对(两个实体之间的关系)作为节点,实体对于其包含的两个实体连接边,节点是初始化向量,也称为静态图
5、减去多余的边,称为动态图
6、用二分类问题对所有关系节点,乘1个参数矩阵用softmax求概率,进而得到邻接矩阵,若求出有关系的概率大于0.5,则关系节点和对应的两个实体的之间值为1,对角线值为1,其余为0(或者令邻接矩阵的值为相应的概率值,对角线值还是为1)
7、关系节点和实体节点的向量表示如下图所示,然后将二部图放入多层GCN,得到每个节点的向量表示,再把这个向量表示和之前节点的向量表示连接,得到最终的向量表示,实体节点和关系节点分别进入softmax预测其类型
四、《RESIDE: Improving Distantly-Supervised Neural Relation Extraction using Side Information2018》
1、用glove预训练词向量与位置向量拼接,进入双向GRU,对于一个句子用StanfordCoreNLP生成依赖树,进入GCN,得到句子表示,将GCN的句子表示和GRU的句子表示进行拼接,得到最终的句子表示,再进入attention
2、attention过程:将句子最终的向量表示中的每个词乘以随机query向量r,得到每个词的向量u,用softmax计算注意力权重alpha值,将对应的alpha值和1中得到的句子向量(每个词分别计算)相乘,得到最终的句子表示
3、加入另外的信息:关系别名信息hrel,实体类型别名信息,在2的基础上,再在句子之间做attention,将对应每个句子的hrel拼接到每个句子后面,然后随机化一个query向量q,利用公式进入softmax得到对应每个句子的alpha值,然后句子向量和对应的alpha值分别相乘求和,得到B,再和两个实体的类型别名信息拼接,得到B’,然后进入softmax得到最终的类别。
五、《A Novel Cascade Binary Tagging Framework for Relational Triple Extraction 》
1、学习的是一个relation-specific taggers,由subject和relation预测对应的object,分为2步,第一步预测句子中所有的subject,第二步针对每一个subject用relation-specific taggers预测其对应的所有relation和object(对于每一个subject和relation预测其object)。主要由三个模块组成,分别为BERT-based encoder模块、subject 标记模块、 relation-specific 标记模块。
2、 subject 标记模块:用两个相同的二分类器分别标记实体的开始和实体的结束,如果是实体的开始,标记为1,如果是实体的结束,也标记为1,每一个开始匹配最近的一个结束,形成一个subject。
3、得到object:将上面预测出每一个的subject的向量表示v(是由这一段实体的向量表示求均值得到)和其经过bert的向量表示x,分别进入两个二分类器,得到其是对应的object的概率,标记规则为:如何当前subject和object在当前relation下有关系,则把这个object标记出来,否则不标记。例如图中第一个实体和第二个实体有“Birth place”的关系,所以就在第二个实体上标记为1 .