基于神经网络的实体识别和关系抽取联合学习 | PaperWeekly #54

简介: 联合学习(Joint learning)一词并不是一个最近才出现的术语,在自然语言处理领域,很早就有研究者使用基于传统机器学习的联合模型(Joint model)来对一些有些密切联系的自然语言处理任务进行联合学习。例如实体识别和实体标准化联合学习,分词和词性标注联合学习等等。

最近,研究者们在基于神经网络方法上进行实体识别和关系抽取联合学习,我阅读了一些相关工作,在此和大家一起分享学习(本文中引用了一些论文作者 Suncong Zheng 的 PPT 报告)。

引言

本文关注的任务是从无结构的文本中抽取实体以及实体之间的关系(实体 1-关系-实体 2,三元组),这里的关系是我们预定义好的关系类型,例如下图:

43b45139469f8da484c7f65e324750f3b26795df

目前有两大类方法,一种是使用流水线的方法(Pipelined Method)进行抽取:输入一个句子,首先进行命名实体识别,然后对识别出来的实体进行两两组合,再进行关系分类,最后把存在实体关系的三元组作为输入。

流水线的方法存在的缺点有:

1. 错误传播,实体识别模块的错误会影响到下面的关系分类性能;

2. 忽视了两个子任务之间存在的关系,例如图中的例子,如果存在 Country-President 关系,那么我们可以知道前一个实体必然属于 Location 类型,后一个实体属于 Person 类型,流水线的方法没法利用这样的信息;

3. 产生了没必要的冗余信息,由于对识别出来的实体进行两两配对,然后再进行关系分类,那些没有关系的实体对就会带来多余信息,提升错误率。

817dc6441ac7b7b5add211a33b147a1f49cf1353

理想的联合学习应该如下图:输入一个句子,通过实体识别和关系抽取联合模型,直接得到有关系的实体三元组。这种可以克服上面流水线方法的缺点,但是可能会有更复杂的结构。

25cca335e661092a33dc42d35d03b42b59d0cf1f

联合学习

这里我主要关注的基于神经网络方法的联合学习,我把目前的工作主要分为两大类:1. 参数共享(Parameter Sharing)和 2. 标注策略(Tagging Scheme)。主要涉及到下面一些相关工作。

8008e00843229db88ab0f56db762d3b33551c1d2

参数共享


论文《Joint Entity and Relation Extraction Based on A Hybrid Neural Network》,Zheng 等人利用共享神经网络底层表达来进行联合学习。

具体的,对于输入句子通过共用的 word embedding 层,然后接双向的 LSTM 层来对输入进行编码。然后分别使用一个 LSTM 来进行命名实体识别(NER)和一个 CNN 来进行关系分类(RC)。

相比现在主流的 NER 模型 BiLSTM-CRF 模型,这里将前一个预测标签进行了 embedding 再传入到当前解码中来代替 CRF 层解决 NER 中的标签依赖问题。

在进行关系分类的时候,需要先根据 NER 预测的结果对实体进行配对,然后将实体之间的文本使用一个 CNN 进行关系分类。所以该模型主要是通过底层的模型参数共享,在训练时两个任务都会通过后向传播算法来更新共享参数来实现两个子任务之间的依赖。

94f8ac35ec0c10d0cbc23285fae0e281814f7c3f

论文《End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures》也是类似的思想,通过参数共享来联合学习。只是他们在 NER 和 RC 的解码模型上有所区别。

这篇论文 Miwa 等人同样是通过参数共享,NER 使用的是一个 NN 进行解码,在 RC 上加入了依存信息,根据依存树最短路径使用一个 BiLSTM 来进行关系分类。

4ac8223749144bb2e17aa90375b5f79e6194945b

根据这两篇论文的实验,使用参数共享来进行联合学习比流水线的方法获得了更好的结果在他们的任务上 F 值约提升了 1%,是一种简单通用的方法。论文《A Neural Joint Model for Entity and Relation Extraction from Biomedical Text》将同样的思想用到了生物医学文本中的实体关系抽取任务上。

标注策略

但是我们可以看到,参数共享的方法其实还是有两个子任务,只是这两个子任务之间通过参数共享有了交互。而且在训练的时候还是需要先进行 NER,再根据 NER 的预测信息进行两两匹配来进行关系分类。仍然会产生没有关系的实体对这种冗余信息。

出于这样的动机,Zheng 等人在论文《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》中提出了一种新的标注策略来进行关系抽取,该论文发表在 2017 ACL 上,并入选了 Outstanding Paper。

431207745158909311d1309ad3ea3de0b8c519d6

他们通过提出了一种新的标注策略把原来涉及到序列标注任务和分类任务的关系抽取完全变成了一个序列标注问题。然后通过一个端对端的神经网络模型直接得到关系实体三元组。

b135829375cd6a93ea07db011e74aa987239f8cf

他们提出的这种新的标注策略主要由下图中三部分组成:1)实体中词的位置信息{B(实体开始),I(实体内部),E(实体结尾),S(单个实体)};2)关系类型信息{根据预先定义的关系类型进行编码};3)实体角色信息{1(实体1),2(实体2)}。注意,这里只要不是实体关系三元组内的词全部标签都为“O”。

3a901b14632f6d915d958b3fb572dbe80b3e043c

根据标签序列,将同样关系类型的实体合并成一个三元组作为最后的结果,如果一个句子包含一个以上同一类型的关系,那么就采用就近原则来进行配对。目前这套标签并不支持实体关系重叠的情况。

2c8c4bf2c48ded39e3761a9b8558fd575b8cef4e

然后该任务就变成了一个序列标注问题,整体模型如下图。首先使用了一个 BiLSTM 来进行编码,然后使用了在参数共享中提到的 LSTM 来进行解码。

2ca98fdc626ebbb1236ea815c6805650e37a1306

和经典模型不同的地方在于他们使用了一个带偏置的目标函数。当标签为“O”时,就是正常的目标函数,当标签不是“O”时,即涉及到了关系实体标签,则通过 α 来增大标签的影响。实验结果表明,这个带偏置的目标函数能够更准确的预测实体关系对。

573cf0dd182f1338a0049c5669abf7210cbf65c5

总结

基于神经网络的实体识别和关系抽取联合学习主要由两类方法。其中参数共享的方法简单易实现,在多任务学习中有着广泛的应用。

Zheng 等人提出的新的标注策略,虽然目前还存在一些问题(例如无法识别重叠实体关系),但是给出了一种新的思路,真正的做到了两个子任务合并成了一个序列标注问题,在这套标注策略上也可以进行更多的改进和发展来进一步完善端到端的关系抽取任务。

b634880d2931c9b2dd5683a457e5e96414ddc31a


原文发布时间为:2017-12-4

本文作者:罗凌

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

相关文章
|
1月前
|
消息中间件 网络协议 C++
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
|
1月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
3月前
|
SQL 运维 安全
黑客(网络安全)技术自学——高效学习
黑客(网络安全)技术自学——高效学习
28 1
|
3月前
|
开发框架 网络协议 .NET
【网络奇缘】- 计算机网络|分层结构|深入学习ISO模型
【网络奇缘】- 计算机网络|分层结构|深入学习ISO模型
48 0
|
3月前
|
网络协议 Go API
Go语言学习-网络基础
Go语言学习-网络基础
32 0
|
3月前
|
网络协议
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)(下)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
35 2
|
3月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
79 3
|
13天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
1月前
|
机器学习/深度学习 开发者
论文介绍:基于扩散神经网络生成的时空少样本学习
【2月更文挑战第28天】论文介绍:基于扩散神经网络生成的时空少样本学习
14 1
论文介绍:基于扩散神经网络生成的时空少样本学习
|
1月前
|
机器学习/深度学习 存储 人工智能
一文带你了解神经网络是如何学习预测的
一文带你了解神经网络是如何学习预测的
21 0

热门文章

最新文章