点击上方,选择星标置顶,每天给你送干货!


来自:高能AI

【插播】年初抽47份大奖!!

新年大礼包:Xbox、Switch,PopMart芝麻街系列盲盒,小度音响,百度网盘超级会员免费领

关系抽取到底在乎什么?这是来自EMNLP20上清华大学刘知远团队的“灵魂发问”~

关系抽取是每一位NLPer都很熟知的任务,特别是基于BERT的神经关系抽取模型已经登顶各大榜单SOTA,某些甚至直逼人类表现。但也许你和JayJay一样,可能只是调个包、从不过问关系抽取的核心要素是啥吧~

在刘知远老师的EMNLP20论文《Learning from Context or Names?  An Empirical Study on Neural Relation Extraction》中,就「关系抽取到底在乎什么」这一问题进行深入全面的探究,是难得的好文!

注意:本文所称的关系抽取也称关系分类,即判断两个实体

论文下载:https://arxiv.org/pdf/2010.01923.pdf

github开源:https://github.com/thunlp/ RE-Context-or-Names

为具备更好的阅读体验,本文以QA形式进行组织:

我们废话不说,先po结论(划重点):

1、对关系抽取的两个主要特征(上下文信息和实体信息),进行了对比分析发现:

  • 上下文信息 和 实体信息 对于关系模型都很关键;

  • 上下文信息是关系模型的主要信息来源;

  • 实体信息中最重要的实体类型信息,但模型会存在对实体信息的过度依赖问题;

  • 现有的数据集可能会通过实体泄漏浅层的启发式信息,导致当前关系任务的指标虚高!

2、构建了关系预训练模型,基于关系抽取的实体遮蔽的对比学习框架:

  • 能帮助模型更好地的借助上下文信息和实体类型信息,避免“死记硬背”实体表面表述;

  • 提高了多个场景下神经关系抽取模型的有效性和鲁棒性,特别是在低资源场景下;

Q1: 关系抽取为什么主要利用「上下文信息」和「实体信息」?

为什么本篇论文会选取上下文和实体信息进行对比研究呢?作者认为:

  • 上下文信息:从人的直觉来看,文本上下文是主要的信息来源;最为简单的一种方式,就是可以用关系模板进行归纳。如上图所示,「... be founded ... by ...」模板就可以很好地映射到某一类关系上。因此,上下文关系肯定会对关系预测结构起着某种作用。

  • 实体信息:实体信息主要包括实体类型、实体ID、实体属性信息等,如果实体可以被链接到知识图谱上,那么相关信息也可以被模型所利用。既然关系抽取基于实体pair进行的分类预测,那么实体信息就必不可少了。

Q2: 关系抽取的baseline模型选择哪些?

为了更好地进行分析验证,本文主要主要采取CNN、BERT、MTB三种模型进行实验(如上图所示):采取BERT时主要是提取实体pair的相关标识符对应的表示进行关系分类。

MTB是由Google在2019年提出预训练关系模型 ,其只在获得更好的适配于关系抽取的特征表示,其具体的预训练方式为:认为包含相同实体pair的句子表示相同的关系,将相似度得分作为预训练目标,如下图示意。

Q3: 「上下文信息」和「实体信息」到底哪家强?

为了分析「上下文信息」和「实体信息」对于关系模型的内在影响,论文设置众多输入格式(如上图所示):

  • Context+Mention (C+M) :即最为广泛的使用方式,在原句子输入的同时,强调实体mention:对于BERT模型,采用位置向量和特殊的实体标识符来强化metion。

  • Context+Type (C+T) :将实体mention用其实体类型Type代替,如上图,「SpaceX」用「organization」代替,「Elon Musk」用「person」代替。

  • Only Context (OnlyC) :即只利用上下文信息,将实体mention用「subject」或「object」代替,通过这种方式可以将实体信息源完全阻挡。

  • Only Mention (OnlyM) :即只利用实体提及,忽略其他文本上下文的输入。

  • Only Type (OnlyT) :即只利用实体类型信息,如「organization」「SEP」「person」。

论文通过上述设置在最大的有监督关系数据集TACRED上(共42种关系,10w+实例)进行了相关实验,结果如下(指标为micro F1值):

由上图的红框(OnlyC、OnlyM、OnlyT)可以看出,只利用上下文信息或实体信息指标都大幅下降,这表明:上下文信息 和 实体信息 对于关系模型都很关键;

由上图的红框可以看出,C+M和C+T表现一致,这表明:实体提及中的类型Type信息很重要!这与之前女神的SOTA《反直觉!陈丹琦用pipeline方式刷新关系抽取SOTA》中关于「类型信息」的重要性相互佐证~

由上图的红框可以看出:

  1. OnlyC总体高于OnlyM,可以看出:上下文信息比实体信息更重要~(PS:CNN中OnlyC没有明显高于OnlyM,也说明其上下文的捕捉能力不如BERT吧)

  2. OnlyM也有较高指标,这表明:现有的数据集可能会通过实体泄漏浅层的启发式信息,导致当前关系任务的指标虚高!

此外,本篇论文也通过Case Study进一步证明了上述结果、并有了新的发现:

  • C+M与C+T类似,共享95.7%的正确预测和68.1%的错误预测,充分说明了实体提及的主要的信息来源是其类型Type信息。

  • C+M容易对实体提及产生过高的偏置依赖,特别是容易对训练集中的实体提及进行“死记硬背”,如下图:模型容易死记住训练集中「Washington」的实体提及只存在于「stateorprovinceofresidence 」关系中,从而导致关系预测错误。

  • C+T不容易捕捉共指信息和语义信息,如下图所示,「Natalie」和「she」两个实体如果被实体Type替代后,不容易捕捉到原有的共指关系:

  • 再通过对OnlyC的case分析中发现:人类可以本能地从上下文中判断关系,但模型似乎在捕捉上下文信息的能力上还有很大缺失。如下图所示,具体体现在3个方面:

    • Wrong:对于那些很清晰的关系模式仍然会预测错误。

    • No pattern:对于那些不具备pattern的关系会预测错误。

    • Confusing:对于困惑的关系类型缺乏鲁棒能力。

Q4: 如何提升关系模型的预测性能?

从上文的分析中,我们可以发现:上下文信息和实体信息对于关系模型都很重要,但在一些情况下,关系模型并不能很好地理解关系模式、会过度依赖于实体mention的浅层提示信息。

为了更好地捕捉上下文信息和实体类型Type信息,论文提出了一种基于实体遮蔽的对比学习框架,来进行关系预训练。

1、对比学习数据生成方法

对比学习预训练框架如上图所示,论文借鉴了「对比学习」的思想,通过聚合“neighbors”、分离“non-neighbors”来学习特征表示;通过这种模式,“neighbors”具备相似的表示。因此,定义“neighbors”对于对比学习至关重要。

本文定义:实体pair共享同种关系的句子是“neighbors”。

为了防止模型在预训练过程中对实体mention死记硬背、或者抽取比较浅层的表面特征,作者采取了随机mask实体的办法,将实体mention替换为「BLANK」,替换率为0.7.

事实上,生成预训练数据是通过远程监督的方法进行,这虽然会造成噪声;但作者认为噪声问题对于预训练框架不是关键的,因为:预训练目标是相对于像BERT这样的原始预训练模型,获得相对更好的关系表示,而不是直接训练关系模型对于下游任务,因此数据中的噪声是可以接受的。

通过上述的对比学习生成方法,预训练模型可以学习更好地从实体metion中掌握类型Type信息,并从文本上下文中提取关系语义:

  • 成对的两个句子虽然包含不同的实体pair,但共享相同的关系,提示模型发现这些实体mention之间的联系。此外,实体mask策略可以有效地避免简单的记忆实体mention。这最终鼓励模型利用实体类型Type信息。

  • 生成策略提供了相同关系类型下的多种上下文集合,这有利于模型学习从多种表达方式中提取关系pattern。

2、对比学习训练目标

上述预训练的目标函数共包含两部分:对比学习目标( Contrastive Pre-training,CP)和遮蔽语言模型(MLM):

对比损失CP采取随机负样本采样,加速训练过程。

3、对比学习实验结果

基于对比学习的预训练框架的关系模型最终表现如何?作者在不同的数据集上设置不同数据使用量(1%、10%、100%)进行了对比分析,发现:对比学习模型CP在不同数据集上均超过了BERT和MTB,特别是在低资源(1%数据量)条件下也能呈现较高指标,如上图红框所示。

可见,对比学习机制相比于Google的MTB模型更具备多样性的数据特征、能更充分的学习实体类型Type信息。

总结

本文主要基于「关系抽取到底在乎什么」、「上下文和实体mention如何影响关系模型」进行了讨论,发现:

  1. 文本上下文和实体mention都给关系模型提供了关键信息;

  2. 关系抽取数据集可能会通过实体泄漏浅层的启发式信息,导致当前关系任务的指标虚高!

  3. 关系模型并不能很好地理解关系模式、会过度依赖于实体mention的浅层提示信息

基于上述几点,论文提出了一种基于实体遮蔽的对比学习框架来改进关系模型的表现,最终提高了多个场景下神经关系抽取模型的有效性和鲁棒性(特别是在低资源条件下)。

有了本文全面的实验分析,或许未来我们可以进一步研究开放关系抽取和关系发现问题,这些需要我们考虑zero-shot问题,但可以确信:预训练关系模型将对这些领域产生积极影响。


说个正事哈由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。记得备注呦推荐两个专辑给大家:专辑 | 李宏毅人类语言处理2020笔记专辑 | NLP论文解读专辑 | 情感分析整理不易,还望给个在看!

刘知远老师的“灵魂发问”:关系抽取到底在乎什么?相关推荐

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

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

  2. 信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的《Bert三元关系抽取模型》,我到底悟到了什么?

    信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的<Bert三元关系抽取>模型,我到底悟到了什么? 前言 数据格式与任务目标 模型整体思路 复现代码 数据处理 数据读取 训练数 ...

  3. “刘知远实验室”的关系抽取实验复现

    最近在做文本的关系抽取,看了一篇论文(NRE论文总结:Attention-Based Bidirectional Long Short-Term Memory Networks for Relatio ...

  4. opennre 中文关系抽取_OpenNRE 2.0:可一键运行的开源关系抽取工具包

    OpenNRE(https://github.com/thunlp/OpenNRE.git)是清华大学自然语言处理实验室推出的一款开源的神经网络关系抽取工具包,包括了多款常用的关系抽取模型,发布仅一年 ...

  5. 知识图谱从哪儿来?实体关系抽取的现状和未来

    12月17日晚,2019年清华特奖获得者之一,清华大学自然语言处理实验室大四本科生高天宇,在智源论坛Live第1期,以<实体关系抽取的现状和未来>为主题,与150位观众进行了在线交流.本文 ...

  6. 史上最大的实体关系抽取数据集!清华大学自然语言处理团队发布 FewRel...

    雷锋网 AI 科技评论按,在去年的 EMNLP2018 上,清华大学自然语言处理实验室发布了一个大规模精标注关系抽取数据集 FewRel.据了解,这是目前最大的精标注关系抽取数据集. 据清华大学自然语 ...

  7. OpenNRE 2.0:可一键运行的开源关系抽取工具包

    OpenNRE(https://github.com/thunlp/OpenNRE.git)是清华大学自然语言处理实验室推出的一款开源的神经网络关系抽取工具包,包括了多款常用的关系抽取模型,发布仅一年 ...

  8. 技术动态 | 知识图谱从哪里来:实体关系抽取的现状与未来

    本文作者为:韩旭.高天宇.刘知远.转载自刘知远老师的知乎专栏,文章链接:https://zhuanlan.zhihu.com/p/91762831 最近几年深度学习引发的人工智能浪潮席卷全球,在互联网 ...

  9. nlp中的实体关系抽取方法总结

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要35分钟 跟随小博主,每天进步一丢丢 来自:知乎 地址:https://zhuanlan.zhihu.com/p/77868938 作者:Jay ...

  10. 关系抽取(二)远程监督方法总结

    目录 前言 1. 远程监督关系抽取开山之作 1.1 介绍 1.2 训练过程 1.2.1 数据标注方法 1.2.2 训练方法 1.3 测试过程 1.4 思考 1.5 总结 2. PCNN 2.1 介绍 ...

最新文章

  1. 在centos7上编译安装nginx
  2. android 渲染流程
  3. 计算机网络 鲁士文,《在职研究生计算机网络课程统考复习指南》鲁士文 编_孔网...
  4. [webpack3.8.1]Guides-4-Output Management(输出管理)
  5. css3案例分析,CSS3动画/动画库以及案例分析(上)
  6. dbscan算法c语言实现,用C++实现DBSCAN聚类算法
  7. 微信红包功能(含示例demo)
  8. C++如何禁止函数的传值调用
  9. python格式化字符串_Python字符串格式化问题:%、format()与f-strings
  10. LOJ2392 JOISC2017 烟花棒 二分、贪心
  11. 总结:86版五笔输入法
  12. MongoDB数据库练习题
  13. 计算机word虚线分割,Word文档里的波浪线、虚线、分割线都是怎么打出来的?
  14. Codeigniter 升级
  15. android局域网设备查看器,局域网查看工具(LanSee)
  16. 探索GIS+物联网应用场景 MapGIS IoT实时大数据解决方案
  17. 栈的输出_程序设计做题笔记:计算表达式(一):栈
  18. CAD标注中全局比例(DIMSCALE)与比例因子(DIMLFAC)区别
  19. 过流保护的几种实现方式
  20. 第二课:为什么要教授财务知识

热门文章

  1. ServiceStack.Redis连接阿里云redis服务时使用连接池出现的问题
  2. 51nod 1423 最大二“货” 单调栈
  3. 结构与表现分离的思想
  4. JAVA环境变量安装
  5. 网络语音视频技术浅议(附多个demo源码下载)
  6. Cannot modify header information的解决方法
  7. 网站页面head区代码规范[转]
  8. 20190814 On Java8 第四章 运算符
  9. Anaconda+django写出第一个web app(十一)
  10. Linux 怎么重启 mysql