【论文解读】基于copy机制的端到端实体关系抽取模型

2020 年 7 月 20 日 深度学习自然语言处理

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

阅读大概需要9分钟

跟随小博主,每天进步一丢丢



每日英文

Weep no more, no sigh, nor groan. Sorrow calls no time that's gone.

别哭泣,别叹息,别呻吟。悲伤唤不回流逝的时光。

Recommender:云不见



作者:Chevalier
学校:华南理工大学

方向:自然语言处理

知乎:https://www.zhihu.com/people/chen-feng-91-57
编辑:王萌 (深度学习自然语言处理公众号)
已获作者授权,禁止二次转载




一、Background



为了构建大规模结构化的知识库,目前有很多工作专注于从自然语言文本中抽取关系事实。关系事实通常用三元组表示:(实体1,关系,实体2),比如(Chicago,country,UnitedStates)。


目前为止,有很多方法专注于关系抽取或关系分类任务,该任务是识别两个预先给出的实体之间的关系。这类方法假设实体已经给定,忽略了实体的抽取。早期的实体关系抽取方法是pipeline的,即先进行NER,然后再进行RE。这种流水线的方法将两个任务独立开来,忽略了两个任务之间的相关性。紧接着,就有人提出联合抽取实体关系的方法。早期的联合方法依赖于特征工程和NLP工具。随着深度学习的兴起,后期的工作开始用CNN或RNN来联合抽取实体关系。比如Miwa、Gupta、Zhang等人将关系抽取任务建模为槽填充问题。Zheng等人将联合抽取问题转换为序列标注问题。


实体关系三元组在句中通常是比较复杂的,存在关系重叠现象,根据关系重叠度可以分为三种类型:Normal,EntityPairOverlap(EPO),SingleEntityOverlap(SEO)。如下图所示。




二、Motivation



之前的工作主要专注于抽取Normal类型的实体关系三元组,特别是17年ACL那篇(传送门),将实体关系抽取问题转化为序列标注问题,完全忽略了关系重叠问题。因此,作者就提出了基于Seq2Seq拷贝机制的端到端模型,可以抽取任意类型的实体关系三元组。该模型主要由两部分组成:编码器和解码器。编码器将自然语言文本转换成定长的语义向量,解码器根据该语义向量生成三元组。具体细节见Model部分。



三、Model



本节我们将介绍基于copy机制的Seq2Seq模型,端到端地抽取多个实体关系三元组。该模型主要由两部分组成:编码器和解码器。编码器将自然语言文本转换成定长的语义向量,解码器根据该语义向量生成三元组。解码器根据数量不同可以分为OneDecoder和MultiDecoder。顾名思义,OneDecoder就是用一个解码器来生成所有三元组,而MultiDecoder就是由多个解码器组成,一个解码器生成一个三元组。


  1. OneDecoder Model


OneDecoder模型的整个结构如图二所示。



  • Encoder


首先我们将输入的句子  经过Embedding转换为词向量矩阵  ,其中  表示第t个词的词向量。然后将这个词向量矩阵输入到RNN中,就可以得到每个时刻的输出  和隐藏层状态  :


通过使用双向的RNN捕捉每个词的上下文信息,我们可以得到  ,其中  。同理,  ,这里要注意的是,s表示前后和后向的最后一个隐藏层状态的信息,看下标。


  • Decoder


解码器用于直接输出三元组,三元组输出顺序为:首先生成三元组的关系类型,然后从句中找到该关系的头实体,最后从句中找到该关系对应的尾实体。重复该流程,解码器就可以生成多个三元组。一旦生成了所有正确的三元组,接着就生成NA三元组,意味着解码结束。NA三元组由NA关系类型和NA实体类型组成。


如图3中的a所示,每个时刻t,我们会计算解码器的输出  和隐藏层状态  :


其中g表示单向的RNN,  是上一时刻的隐藏层状态,我们用Encoder输出的s来初始化 ,  表示解码器时刻t的输入,我们通过如下公式进行计算:


其中,  是时刻t-1复制实体或预测关系的Embedding, 是注意力机制的权重向量,计算公式如下。权重的计算比较简单,就是将解码器t-1时刻的隐藏层状态与编码器每个时刻的输出拼接计算权重。



最终,我们得到了解码器时刻t的输出  (t<=1),如果t%3=1(t=1,4,7...),我们就用 预测关系类型,意味着这里开始生成新的三元组。如果t%3=2(t=2,5,8...),我们就用 预测头实体(一个实体可能由多个单词组成,这里简化为只预测最后一个单词),如果t%3=0(t=3,6,9...),我们就用  预测尾实体。


Predict Relation:上一步骤我们得到了解码器的输出,对于关系预测就很简单了,就是接一个全连接层,得到每种关系的得分,再通过softmax得到每种关系的概率,然后取最大概率的关系的Embedding作为下一时刻的输入  。



Copy the First Entity:和关系预测差不多,通过全连接层得到每个单词的得分。然后取最大概率的实体词的Embedding作为下一时刻的输入  。



Copy the Second Entity:复制第二个实体与复制第一个实体类型,唯一的不同是复制第二个实体时,复制结果不能是第一个实体。因为一个正确的三元组的头实体和尾实体是不一样的。处理方式也简单,计算概率的时候把第一个实体词mask掉就行。





2. MultiDecoder Model


MultiDecoder模型是OneDecoder模型的拓展,如图3的b所示,主要的不同是, MultiDecoder解码期间一个解码器生成一个三元组,而OneDecoder是一个解码器生成所有的三元组。


计算解码器的输出时大部分与OneDecoder的一样,只不过在计算关系的输出时,也就是新的三元组开始预测时,这里要换新的一个解码器,需要传入初始的隐藏层状态。





四、Experiments



1.Dataset


    • NYT:一个远程监督数据集

    • WebNLG





2. Evaluation Metrics


Precision,Recall,F1

baseline模型:17年ACL基于新颖的标注机制模型:NovelTagging。


3. Result


从实验结果看,作者提出MultiDecoder的F1显著优于baseline模型,这说明了作者提出模型的有效性。可以看到baseline模型precision很高,recall很低,这是因为该模型忽略了关系重叠问题,一个词最多只能属于一个三元组。而作者的模型考虑了关系重叠问题,较好地权衡了precision和recall。



为了验证MultiDecoder模型和OneDecoder模型在解决关系重叠问题的有效性,作者进一步做了实验。可以看到作者提出的两个模型在关系重叠的两种情况(EPO和SEO)是显著优于baseline模型的。NovelTagging模型在Normal Class取得了最优的性能,这是因为该模型的设计更能处理Normal Class这种情况。



接下来,还比较了模型从包含不同数量的三元组的句子中抽取关系的能力。可以看到,当句中包含的三元组数量越来越多时,Noveltagging模型的性能下降地很快。



接着比较了OneDecoder和MultiDecoder模型。从结果看,两个模型是差不多的。但是在实体生成方面,MultiDecoder是要优于OneDecoder。作者认为MultiDecoder用了不同的解码器来生成三元组,所以实体生成的结果更加多样性一点。





五、Conclusion



  • 作者提出了基于copy机制的Seq2Seq端到端模型,同时抽取实体和关系;

  • 通过copy机制解决了关系重叠问题;

  • 在两个数据集上的实验表明验证了作者提出的模型的有效性。




六、Discussion



  • 有一些细节不是很懂,作者在预处理NYT数据集时,过滤了句长100个单词的句子,这是因为作者提出的模型难以处理长文本么?

  • 我一直以为实体关系联合抽取是NER+RE,但是17年ACL基于新颖的标注机制这篇抽取实体的时候不考虑实体类型,我有点搞不懂,紧接着许多follow这篇的工作都没考虑实体类型了= =。这篇就更厉害了,这篇抽实体的时候只抽实体的最后一个单词= =。

  • 作者生成三元组的时候没有考虑关系之间的相关性。19年ACL:GraphRel就提出了这个问题,具体解释如下文章。

    Chevalier:《基于关系图的实体关系联合抽取》论文笔记



说个正事哈



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心




投稿或交流学习,备注: 昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多: 机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等
记得备注呦


推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读



整理不易,还望给个在看!
登录查看更多
3

相关内容

三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。三元组是计算机专业的一门公共基础课程——数据结构里的概念。主要是用来存储稀疏矩阵的一种压缩方式,也叫三元组表。假设以顺序存储结构来表示三元组表(triple table),则得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。
基于多来源文本的中文医学知识图谱的构建
专知会员服务
52+阅读 · 2020年8月21日
【SIGIR 2020】 基于协同注意力机制的知识增强推荐模型
专知会员服务
89+阅读 · 2020年7月23日
实体关系抽取方法研究综述
专知会员服务
177+阅读 · 2020年7月19日
【斯坦福大学-论文】实体上下文关系路径的知识图谱补全
【AAAI2020知识图谱论文概述】Knowledge Graphs @ AAAI 2020
专知会员服务
133+阅读 · 2020年2月13日
17篇知识图谱Knowledge Graphs论文 @AAAI2020
专知会员服务
171+阅读 · 2020年2月13日
论文浅尝 | 利用问题生成提升知识图谱问答
开放知识图谱
20+阅读 · 2019年11月5日
AAAI 2019 | 基于分层强化学习的关系抽取
PaperWeekly
20+阅读 · 2019年3月27日
ACL 2018 论文解读 | 基于深度强化学习的远程监督关系抽取
黑龙江大学自然语言处理实验室
15+阅读 · 2018年12月10日
论文浅尝 | 基于知识库的类型实体和关系的联合抽取
开放知识图谱
35+阅读 · 2018年12月9日
论文浅尝 | 利用 RNN 和 CNN 构建基于 FreeBase 的问答系统
开放知识图谱
11+阅读 · 2018年4月25日
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
VIP会员
相关资讯
论文浅尝 | 利用问题生成提升知识图谱问答
开放知识图谱
20+阅读 · 2019年11月5日
AAAI 2019 | 基于分层强化学习的关系抽取
PaperWeekly
20+阅读 · 2019年3月27日
ACL 2018 论文解读 | 基于深度强化学习的远程监督关系抽取
黑龙江大学自然语言处理实验室
15+阅读 · 2018年12月10日
论文浅尝 | 基于知识库的类型实体和关系的联合抽取
开放知识图谱
35+阅读 · 2018年12月9日
论文浅尝 | 利用 RNN 和 CNN 构建基于 FreeBase 的问答系统
开放知识图谱
11+阅读 · 2018年4月25日
Top
微信扫码咨询专知VIP会员