每天给你送来NLP技术干货!
来自:AI自然语言处理与知识图谱
大家好,我是大林,今天给大家分享一篇ACL2020文档关系抽取的文章,作者是Brauch。
论文题目:
Reasoning with Latent Structure Refinement for Document-Level Relation Extraction
论文地址:
https://www.aclweb.org/anthology/2020.acl-main.141/
代码 -【pytorch】
https://github.com/nanguoshun/LSR
一、论文概述
论文提出的方法将图结构作为一个隐变量,在最短依存路径的基础上,通过不断迭代方式生latent graph,并以端到端的方式进行归纳,从而得到关系。模型基于structured-attention,使用Matrix-Tree Theorem,并进一步的研究了一种迭代细化策略iterative refinement strategy,使我们的模型能够基于上一次迭代动态构建潜在结构,从而使模型能够增量捕获复杂的交互,从而实现更好的多跳推理。本文的贡献主要有两点(两点能够发ACL,贡献一定不小):
以端到端方式构建文档图进行推理,而不依赖于共指或规则,这可能并不总是产生最佳结构。通过迭代细化策略,模型能够动态地构建一个隐结构,用于改进整个文档中的信息聚合。
进行定量和定性分析,与各种场景下的最先进模型进行比较。证明利用多跳推理模块,本文的模型能够发现更准确的句间关系。
本文提出模型的几个特点:
论文使用 Structured Text Representations,核心是使用structured attention 形成新的图,不再局限于人为构建的图结构(EoG就是人为构建的图),并使用DCGCN在这个形成的图上进行卷积,不断迭代从而使实体的表示更加丰富。
确定两个实体之间的关系上,仍然使用bilinear function,使用两个实体节点的表示来判断实体对存在特定关系的概率。
二、模型架构
1.1 Node Constructor
节点构建器将文档中的句子上下文进行编码,并构建mention节点、entity节点和元依存路径(MDP)节点。这里MDP表示句子中所有提及所在的一组最短依存路径(dependency path),并且MDP中的标记被提取为MDP节点。
![4dbe5b583b5a187547a77305f5b78c4b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/160856af2366ef5644b9b2f78311fd98.jpeg)
Context Encoding:使用双向LSTM进行编码
Node Extraction:有三种node:mention node、entity node以及meta dependancy path node,节点的表示为 。【相比于EoG,LSR没有sentence node,并且使用了MDP node来代替】
mention node表示的是一个sentence中entity的所有的mention,其表示是该mention中的所有word的representation的平均;
entity node指的是entity node,其表示是所有mention node的representation的平均;
MDP表示一个句子中所有mention的最短依赖路径集,在MDP元依赖路径中,mention和单词的表示分别被提取为提及节点和MDP节点。【MDP节点,文章采用Spacy包来构造】
1.2 Dynamic Reasoner
![6225582788fe0a1d9165f3a136807a4d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e4027d273d187b6916091b7e9f1a3bd6.jpeg)
动态推理器分为两个模块
structure induction
structured-attention[1,2]:计算邻接矩阵
利用句法分析树会将句子转变为类似于树(图)的结构,在融入句子信息的同时还能够使用到dependency path的信息,有效的运用attention机制,就是structured-attention。白话讲:建立一个句法树,实际上就是找一组隐变量 ,表示 token i 是 j 的父亲结点。再加上一些限制,就能用它表示有根节点的树。通过求句法树上边的概率估计
来求解这一组隐变量。那么,如果用这个概率来替换 注意力,那么就是让句子中的词语信息,按照句法树的上的边进行计算得到的注意力。计算方法如下(下面公式中的
,原来是结构表示,本论文中直接使用节点的表示
):
![f61cc553c2057f6ead1059455a6867d8.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7543f1324c77e9d4733136c763b08e78.jpeg)
其中,p,c,r分别表示依存树中的parent、children、root节点,W是相应的权重向量。 unnormalized attention scores,表示一个带有权重的邻接矩阵,
root score ,表示i节点是句法树根节点的概率。这里的d可以理解为节点的表示向量。
有了以上这些值,我们就能构建图的邻接矩阵和拉普拉斯矩阵(L=D-A),其中邻接矩阵
也就是论文中的式(8):
Denote the marginal probability of the dependency edge between the i-th and the j-th node.
但是,感觉这个公式有错【TODO:看代码】,原文中的公式如下[4]:
![6cd0662ec85014a3516844ab5458ba5b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/943793629fd71a3036752488ee6daf11.jpeg)
且另外一篇引用的文章中公式也不是这样[1][2]:
![160d2f3706356baf7deb173bf2b54daa.jpeg](https://i-blog.csdnimg.cn/blog_migrate/76e09cbf9b851d825195f15074df1ec1.jpeg)
multi-hop reasoning:进行图卷积
在文档图的隐表征中进行推理,并且基于信息融合机制对节点进行更新。利用GCN进行多层推理。
![36b64741b74aca0fad6f3770cd8033e1.jpeg](https://i-blog.csdnimg.cn/blog_migrate/99a4c4360e2c4a6de7946c9965a2f63d.jpeg)
除此之外,LSR还使用了多层图网络密集连接(DCGCN)[5],以便在大型文档级图上捕获更多的结构信息。在密集连接的帮助下,能够训练一个更深层次的模型,捕捉更丰富的局部和非局部信息,以学习更好的图形表示。
Iterative Refinement
为了能够推断出超出简单父子关系的更丰富的结构信息,使用N个动态推理块来多次归纳文档级结构【只用最后一个模块的输出】。通过与更丰富的非本地信息的交互,结构变得更加细化,归纳模块能够生成更合理的结构。
上面用几层 GCN 更新 node 表示之后,再用这组 node 表示重新按structured attention的步骤计算邻接矩阵,以此迭代循环。
为什么这样做呢?作者说,他看到 Matrix-Tree Theorem里面生成树都非常浅,觉得一次 structure induction 不能表示文档里复杂的结构,所以才要这样迭代多次。
1.3 分类器
经过N次细化,我们得到所有节点的表示。对于每个实体对的表示(ei, ej),使用双线性函数来计算每个关系类型r的概率,如下,其中k是关系的种类数,r表示特定的关系
三、实验结果分析
论文使用spaCy获取文档中句子的元依赖路径。使用GloVe+BiLSTM和BERT-Base-uncased作为context encoder。
2.1 数据集和对比模型
数据集:CDR、GDA、DocRED
对比的模型分为三类:
Sequence-based Models:CNN、LSTM、BiLSTM、attention-based LSTM
Graph-based Models:模型构建了任务特定的推理图。GCNN通过共同引用链接构建文档级图,然后应用关系GCN进行推理。EoG首先使用启发式方法构造图,然后利用面向边的模型进行推理。GCNN和EoG是基于静态结构的。GAT能够基于局部注意机制学习加权图结构。AGGCN是一种最新的句子级关系抽取模型,它通过自我注意来构建潜在结构。这两个模型能够动态地构造特定于任务的结构
BERT-based Models:这些模型对DocRED的BERT(Devlin et al.,2019)进行了微调。
2.2 主实验结果分析
![ad76e03918d24b3529e8ed27138b3b8c.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c1380b9dc6225f80d80d3107043845db.jpeg)
别的不多解释,基于glove的LSR模型比基于两种BERT模型得到了更好的结果。这也说明即使不使用强大的上下文编码器,模型也能够捕获远程依赖。在使用了BERT模型后,模型表现提升更加明显。
2.3 句间和句内性能分析
LSR模型在句内和句间设置上都优于所有其他模型。LSR模型与其他模型在句间语境下的f1分差异往往大于句内语境下的f1分差异。这些结果表明,LSR的优势主要来自句子间的关系事实,这表明我们的模型所诱导的潜在结构确实能够综合文档中多个句子的信息。
2.4 模型本身结构的分析
![8bf596d1b9bff2abbc90d6f536e64efd.jpeg](https://i-blog.csdnimg.cn/blog_migrate/72a77be31adbd0cea643d7773919a65b.jpeg)
通过对不同架构的模型进行分析,可以看出,在相同的block下(infer次数相同),LSR都能够取得较好的结果,此外,论文结果也说明,refinement在2次的情况下能够取得较好的结果(论文提供实验结果也是在Induction block number为2取得),次数多了也不行。
1)Rule-based Structure: EoG、QAGCN(每个提及节点与其实体节点连接,并跨句连接到相同的提及节点,而位于同一句中的提及节点和MDP节点完全连接。该模型被称为QAGCN),人工构建图。
2)Attention-based structure:AGGCN
2.5 消融实验部分
![3efc09fb1f818b542188792e2fb1183d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/907d49cb613d36e0e593625f864d33e4.jpeg)
不进行refinement效果不会差很多,但是去掉Structure induction 模块,性能会下降很多。此外,多跳推理和MDP节点效果并不显著,说明,这个latent graph作用很突出,也说明了Structure Induction的有效性。
参考资料
^abLearning Structured Text Representations https://aclanthology.org/Q18-1005.pdf
^ab论文笔记 – Learning Structured Text Representations https://ivenwang.com/2020/12/29/structured/
^Kirchhoff’s Matrix-Tree Theorem https://www.cnblogs.com/Dark-Romance/p/13276282.html
^Structured Prediction Models via the Matrix-Tree Theorem https://aclanthology.org/D07-1015.pdf
^GCNs with Layer Aggregations https://aclanthology.org/Q19-1019.pdf
📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。
最近文章
EMNLP 2022 和 COLING 2022,投哪个会议比较好?
ACL'22 | 快手+中科院提出一种数据增强方法:Text Smoothing
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套! 后台回复【五件套】
下载二:南大模式识别PPT 后台回复【南大模式识别】
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
整理不易,还望给个在看!