每天给你送来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,贡献一定不小):

  1. 以端到端方式构建文档图进行推理,而不依赖于共指或规则,这可能并不总是产生最佳结构。通过迭代细化策略,模型能够动态地构建一个隐结构,用于改进整个文档中的信息聚合。

  2. 进行定量和定性分析,与各种场景下的最先进模型进行比较。证明利用多跳推理模块,本文的模型能够发现更准确的句间关系。

本文提出模型的几个特点:

  1. 论文使用 Structured Text Representations,核心是使用structured attention 形成新的图,不再局限于人为构建的图结构(EoG就是人为构建的图),并使用DCGCN在这个形成的图上进行卷积,不断迭代从而使实体的表示更加丰富。

  2. 确定两个实体之间的关系上,仍然使用bilinear function,使用两个实体节点的表示来判断实体对存在特定关系的概率。

二、模型架构

1.1 Node Constructor

节点构建器将文档中的句子上下文进行编码,并构建mention节点entity节点元依存路径(MDP)节点。这里MDP表示句子中所有提及所在的一组最短依存路径(dependency path),并且MDP中的标记被提取为MDP节点。

img

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

img

动态推理器分为两个模块

structure induction

structured-attention[1,2]:计算邻接矩阵

利用句法分析树会将句子转变为类似于树(图)的结构,在融入句子信息的同时还能够使用到dependency path的信息,有效的运用attention机制,就是structured-attention。白话讲:建立一个句法树,实际上就是找一组隐变量 ,表示 token i 是 j 的父亲结点。再加上一些限制,就能用它表示有根节点的树。通过求句法树上边的概率估计 来求解这一组隐变量。那么,如果用这个概率来替换 注意力,那么就是让句子中的词语信息,按照句法树的上的边进行计算得到的注意力。计算方法如下(下面公式中的 ,原来是结构表示,本论文中直接使用节点的表示 ):

img

其中,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]:

img

且另外一篇引用的文章中公式也不是这样[1][2]:

img

multi-hop reasoning:进行图卷积

在文档图的隐表征中进行推理,并且基于信息融合机制对节点进行更新。利用GCN进行多层推理。

img

除此之外,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 主实验结果分析

img

别的不多解释,基于glove的LSR模型比基于两种BERT模型得到了更好的结果。这也说明即使不使用强大的上下文编码器,模型也能够捕获远程依赖。在使用了BERT模型后,模型表现提升更加明显。

2.3 句间和句内性能分析

LSR模型在句内和句间设置上都优于所有其他模型。LSR模型与其他模型在句间语境下的f1分差异往往大于句内语境下的f1分差异。这些结果表明,LSR的优势主要来自句子间的关系事实,这表明我们的模型所诱导的潜在结构确实能够综合文档中多个句子的信息。

2.4 模型本身结构的分析

img

通过对不同架构的模型进行分析,可以看出,在相同的block下(infer次数相同),LSR都能够取得较好的结果,此外,论文结果也说明,refinement在2次的情况下能够取得较好的结果(论文提供实验结果也是在Induction block number为2取得),次数多了也不行

1)Rule-based Structure: EoG、QAGCN(每个提及节点与其实体节点连接,并跨句连接到相同的提及节点,而位于同一句中的提及节点和MDP节点完全连接。该模型被称为QAGCN),人工构建图。

2)Attention-based structure:AGGCN

2.5 消融实验部分

img

不进行refinement效果不会差很多,但是去掉Structure induction 模块,性能会下降很多。此外,多跳推理和MDP节点效果并不显著,说明,这个latent graph作用很突出,也说明了Structure Induction的有效性。

参考资料

  1. ^abLearning Structured Text Representations https://aclanthology.org/Q18-1005.pdf

  2. ^ab论文笔记 – Learning Structured Text Representations https://ivenwang.com/2020/12/29/structured/

  3. ^Kirchhoff’s Matrix-Tree Theorem https://www.cnblogs.com/Dark-Romance/p/13276282.html

  4. ^Structured Prediction Models via the Matrix-Tree Theorem https://aclanthology.org/D07-1015.pdf

  5. ^GCNs with Layer Aggregations https://aclanthology.org/Q19-1019.pdf


LSR:用于文档关系抽取的潜在图结构迭代优化推理方法相关推荐

  1. 论文小综 | 文档级关系抽取方法(上)

    本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 1. 前言 关系抽取(Relation Extraction, RE)是 ...

  2. 达摩院文档级关系抽取新SOTA和零样本关系抽取新任务

    ©作者 | 邴立东.谭清宇.谢耀赓 单位 | Alibaba DAMO, NUS, SUTD 引言 关系抽取(RE)是 NLP 的核心任务之一,是构建知识库.事件抽取等下游应用的关键技术.多年来受到研 ...

  3. 文档级关系抽取方法,EMNLP 2020 paper

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx 目前大多数关系抽取方法抽取单个实体对在某个句子内反映的关系,在实践中受到不可避免的限制:在真 ...

  4. 文档级关系抽取:A Densely Connected Criss-Cross Attention Network for Document-level Relation Extraction

    提示:文档级关系抽取相关论文 A Densely Connected Criss-Cross Attention Network for Document-level Relation Extract ...

  5. ​达摩院文档级关系抽取新数据集和五元组抽取新任务

    ©PaperWeekly 原创 · 作者 | 邴立东.谭清宇等 单位 | Alibaba DAMO, NUS, SUTD 关系抽取(RE)是 NLP 的核心任务之一,是构建知识库.事件抽取等下游应用的 ...

  6. 文档级关系抽取:QIUXP:DORE: Document Ordered Relation Extraction based on Generative Framework

    DORE: Document Ordered Relation Extraction based on Generative Framework 文档级关系抽取是从整篇文档中抽取出三元组.更难,但也很 ...

  7. 论文小综 | 文档级关系抽取方法(下)

    本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 这篇推文是文档级关系抽取方法的第二部分,前面的部分请移步推文" ...

  8. python之pdfminer:从PDF文档中抽取信息的工具

    pdfminer是一个用于从PDF文档中抽取信息的Python库.它提供了一系列的功能,使我们能够读取和解析PDF文件,并从中提取文本内容.元数据.页面布局和图片等.本文将详细介绍pdfminer库的 ...

  9. 谈谈我对NLP文档级关系抽取中Ign_F1指标的理解(Ign_F1与F1的关系)

    因为Ign_F1这个参数网上所解释的内容都是一致的,并且不太好理解 于是我就特地请教了YX师兄 这里特地感谢1107实验室YX师兄 F1分数 F1为精确率和召回率的调和平均数(为下部分做准备) 对于查 ...

最新文章

  1. android studio 编译报错:download fastutil-7.2.0.jar
  2. Windows Nano Server安装配置详解07:部署IIS
  3. Matlab神经网络十讲(7): Self-Organizing and LVQ Networks
  4. boost::signals2模块实现使用自动连接管理的测试程序
  5. python文本框清空_用Python制作mini翻译器
  6. java activiti jbpm_activiti和jbpm工作流引擎哪个比较好?
  7. Linux下开启mysql数据库的远程访问权限
  8. MongoDB工具最新进展
  9. Netty工作笔记0056---Unpooled应用实例2
  10. SAP License:SAP 期初数据导入
  11. Python UnicodeEncodeError: ‘gbk‘ codec can‘t encode character 解决方法
  12. 从何润东代言团宝,看团购行业逐渐成熟
  13. 微信永久封禁:从入门到精通
  14. 高效程序员秘籍(5):让EyeDefender提醒你注意休息,保护视力
  15. 如何让TCP重传如丝般柔滑
  16. arduino的基本函数
  17. 蓝牙BLE芯片PHY6222之烧录以及调试
  18. spoon 数据库in 字符串的使用方案
  19. wordpress教程之函数讲解
  20. BTG遭遇51%攻击,幕后黑手竟是他!

热门文章

  1. c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...
  2. 笔记本电脑键盘输入错误如何解决 电脑按键错乱的解决方法步骤
  3. Mac无法开机?如何修复并使其重新启动
  4. 域名抢注哪个通道成功率高?价格贵不贵?
  5. 苹果开发者账号购买或续费支付表单填写全记录purchase form
  6. 热点登陆打不开网页 服务器已关闭,手机登录路由器管理页面打不开怎么办?...
  7. 加州大学欧文计算机排名,2019加州大学欧文分校排名(USNews排名)
  8. EntityFramworkCore 配置种子数据(seeding data)
  9. 11.[STM32]PWM脉宽调制-呼吸灯
  10. 构建自己的个人信息资料库