基于神经网络的实体识别和关系抽取联合学习算法
联合学习(Joint Learning)一词并非一个最近才出现的术语,在天然语言处理领域,很早就有研究者使用基于传统机器学习的联合模型(Joint Model)来对一些有着密切联系的天然语言处理任务进行联合学习。例如实体识别和实体标准化联合学习,分词和词性标注联合学习等等。最近,研究者们在基于神经网络方法上进行实体识别和关系抽取联合学习,我阅读了一些相关工做,在此和你们一块儿分享学习。(本文中引用了一些论文做者Suncong Zheng的PPT报告)网络
本文关注的任务是从无结构的文本中抽取实体以及实体之间的关系(实体1-关系-实体2,三元组),这里的关系是咱们预约义好的关系类型。例以下图,机器学习
目前有两大类方法,一种是使用流水线的方法(Pipelined Method)进行抽取:输入一个句子,首先进行命名实体识别,而后对识别出来的实体进行两两组合,再进行关系分类,最后把存在实体关系的三元组做为输入。流水线的方法存在的缺点有:1)错误传播,实体识别模块的错误会影响到下面的关系分类性能;2)忽视了两个子任务之间存在的关系,例如图中的例子,若是存在Country-President关系,那么咱们能够知道前一个实体必然属于Location类型,后一个实体属于Person类型,流水线的方法无法利用这样的信息。3)产生了不必的冗余信息,因为对识别出来的实体进行两两配对,而后再进行关系分类,那些没有关系的实体对就会带来多余信息,提高错误率。ide
理想的联合学习应该以下图:输入一个句子,经过实体识别和关系抽取联合模型,直接获得有关系的实体三元组。这种能够克服上面流水线方法的缺点,可是可能会有更复杂的结构。函数
这里我主要关注的基于神经网络方法的联合学习,我把目前的工做主要分为两大类:1)参数共享(Parameter Sharing)和2)标注策略(Tagging Scheme)。主要涉及到下面一些相关工做。性能
论文《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进行关系分类。因此该模型主要是经过底层的模型参数共享,在训练时两个任务都会经过后向传播算法来更新共享参数来实现两个子任务之间的依赖。学习
论文《End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures》也是相似的思想,经过参数共享来联合学习。只是他们在NER和RC的解码模型上有所区别。这篇论文Miwa等人一样是经过参数共享,NER使用的是一个NN进行解码,在RC上加入了依存信息,根据依存树最短路径使用一个BiLSTM来进行关系分类。编码
根据这两篇论文的实验,使用参数共享来进行联合学习比流水线的方法得到了更好的结果在他们的任务上F值约提高了1%,是一种简单通用的方法。论文《A Neural Joint Model for Entity and Relation Extraction from Biomedical Text》将一样的思想用到了生物医学文本中的实体关系抽取任务上。spa
可是咱们能够看到,参数共享的方法其实仍是有两个子任务,只是这两个子任务之间经过参数共享有了交互。并且在训练的时候仍是须要先进行NER,再根据NER的预测信息进行两两匹配来进行关系分类。仍然会产生没有关系的实体对这种冗余信息。出于这样的动机,Zheng等人在论文《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》中提出了一种新的标注策略来进行关系抽取,该论文发表在2017 ACL上,并入选了Outstanding Paper。3d
他们经过提出了一种新的标注策略把原来涉及到序列标注任务和分类任务的关系抽取彻底变成了一个序列标注问题。而后经过一个端对端的神经网络模型直接获得关系实体三元组。
他们提出的这种新的标注策略主要由下图中三部分组成:1)实体中词的位置信息{B(实体开始),I(实体内部),E(实体结尾),S(单个实体)};2)关系类型信息{根据预先定义的关系类型进行编码};3)实体角色信息{1(实体1),2(实体2)}。注意,这里只要不是实体关系三元组内的词所有标签都为"O"。
根据标签序列,将一样关系类型的实体合并成一个三元组做为最后的结果,若是一个句子包含一个以上同一类型的关系,那么就采用就近原则来进行配对。目前这套标签并不支持实体关系重叠的状况。
而后该任务就变成了一个序列标注问题,总体模型以下图。首先使用了一个BiLSTM来进行编码,而后使用了在参数共享中提到的LSTM来进行解码。
和经典模型不一样的地方在于他们使用了一个带偏置的目标函数。当标签为"O"时,就是正常的目标函数,当标签不是"O"时,即涉及到了关系实体标签,则经过α来增大标签的影响。实验结果代表,这个带偏置的目标函数可以更准确的预测实体关系对。
基于神经网络的实体识别和关系抽取联合学习主要由两类方法。其中参数共享的方法简单易实现,在多任务学习中有着普遍的应用。Zheng等人提出的新的标注策略,虽然目前还存在一些问题(例如没法识别重叠实体关系),可是给出了一种新的思路,真正的作到了两个子任务合并成了一个序列标注问题,在这套标注策略上也能够进行更多的改进和发展来进一步完善端到端的关系抽取任务。
参考文献
[1] S. Zheng, Y. Hao, D. Lu, H. Bao, J. Xu, H. Hao, et al., Joint Entity and Relation Extraction Based on A Hybrid Neural Network, Neurocomputing. (2017) 1–8.
[2] M. Miwa, M. Bansal, End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures, ACL, (2016).
[3] F. Li, M. Zhang, G. Fu, D. Ji, A Neural Joint Model for Entity and Relation Extraction from Biomedical Text, BMC Bioinformatics. 18 (2017).
[4] S. Zheng, F. Wang, H. Bao, Y. Hao, P. Zhou, B. Xu, Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme, Acl. (2017).