笔记:ENPAR:Enhancing Entity and Entity Pair Representations for Joint Entity Relation Extraction
ENPAR:Enhancing Entity and Entity Pair Representations for Joint Entity Relation Extraction
作者:Wang et al., ACL 2021.
目录
- 简介
- 方法
- 实验
- 总结
1 简介
本文主要设计了一个针对联合抽取任务的预训练模型,一些联合RE的工作如PURE一般都是利用一些预训练语言模型如最具代表性的BERT作为基本的编码器对输入语句编码后再进行后去的操作,BERT适用性很强可以用于很多下游nlp任务,但同时也就不是针对某一个任务的,也就是说虽然可以用在联合抽取但并不是针对联合抽取设计的,BERT这类预训练模型用在联合抽取还是有一些限制的文中指出两点,其一就是预训练的目标不充分也就是说如BERT这类常见的预训练语言模型并没有考虑到与实体相关的信息,这对联合RE很重要,另一方面如BERT输出只提供了token的表示并没有实体、实体对的表示,因此如PURE这类用BERT的方法后续就需要通过一些列操作获取实体span表示以及实体对表示来判断实体和实体对类型抽取三元组,所以本文针对这两个限制在transformer基础之上做了改进,提出一个专门针对联合抽取的预训练模型--ENPAR。整体结构如图1所示。
2 方法
对于第一个限制本文就把实体信息加入预训练目标中(通过如spacy库做NER很容易拿到实体标注信息),不像之前也针对联合抽取的预训练模型,多采用多任务学习框架,其他任务需要获取的如共指消解、事件抽取信息都很难获得。对于第二个限制,如图1 本文除了transformer作为初始句子编码器外,又加入两个编码器entity encoder和entity pair encoder(这两个编码器共享同一个transformer)这样ENPAR也类似BERT的作用,预训练完了之后直接拿过来用作为句子编码器,就可以直接得到实体、实体对表示,不同于用BERT得到的只是token表示后续还要操作获取实体span和实体对表示,而为了能更好的训练这三个encoder,作者设计了四个新的预训练任务:如图1(b) masked entity typing, masked entity prediction, adversarial context discrimination and permutation prediction。
2.1 Pre-training Network Architecture
主要就是三个部分,entity encoder、entity pair encoder以及共享的sentence encoder--transformer,如下图2所示。
-
Sentence Encoder 就是BERT对句子初步编码,没什么好说的。
-
Entity Encoder 如图2(a)实体encoder很简单,BERT编码后取实体tokens过CNN+MLP得到实体表示。
-
Entity Pair Encoder 同图2(b)将整个句子根据实体对中的两个实体分成五个部分,分别为left context、e1、middle context、e2、right context,至于左右context长度多少文中没提估计超参把,将这五部分tokens的表示同样过CNN+MLP之后拼接再过一个MLP为了统一维度,最后得到实体对的表示。
2.2 Pre-training Objectives
为了能够更好的预训练三个encoder,我们设计四个任务加到目标函数中,就是四个任务目标函数的简单相加得到最终的目标函数,前两个任务主要为了增强实体表示,后两个任务主要为了增强实体对表示,如图3,4。
?
、
-
Masked Entity Typing (MET) 随机mask实体的一些tokens,然后利用entity encoder拿到实体的表示预测实体类型,此目标函数就是最小化预测类型和gold type之间的交叉熵损失,如图3(a).
-
Masked Entity Prediction (MEP) 类似BERT的mask操作,随机mask一些实体的tokens,然后利用sentence encoder拿到对应的表示,喂给softmax多分类器预测masked真实的token,如图3(b)。
-
Adversarial Context Discrimination (ACD) 加了一些对抗样本,具体负样本就是将正常序列的五个部分换个位置如e1向右/左移几个位置,利用铰链损失,看看entity pair encoder能否判断两者之间的差别。
- Permutation Prediction (PP) 给定一个包含实体对(e1,e1)的句子,将其打乱具体就是排列如图5,看entity encoder是否还能识别它的类型,一共也就120中排列给每种情况分配一个类别class,目标函数就是最小化预测的类型和gold class之间的交叉熵。
2.3 Pre-training Setup
使用维基百科作为预训练语料库,利用spacy NER来标注实体,之后就类似BERT了,与训练后作为编码句子的encoder,因为使专门针对联合抽取的,所以ENPAR编码句子输出就是实体关系表示,不需要再做处理,后续就只剩下判断实体和关系类型了,就是两个softmax多分类器。
3 实验
三个数据集分别为:ACE05、SciERC、NYT,篇幅限制只说下ACE05的结果,其他两个数据集上的结果也不差。
- 在ACE05数据集上相比baseline在relation任务上明显高出几个点。
- 把预训练的一些objective去掉如table 2发现性能均有不同程度的下降,可见这几个任务确实使三个encoder训练的更好了。
- ENPAR参数除了transformer部分就用BERT权重初始化,其他参数均随机初始化效果相比BERT还是要好一些,说明确实这个句子编码器吸收了更多实体相关的知识。
- 预训练数据大小合适也有一定影响,不是说越多越好的。
4 总结
本文做的就是针对联合抽取的预训练模型,因为之前如BERT这类预训练模型直接用到联合抽取编码句子的话,有上文提到的两个忽略的问题。
后文提到了再维基百科上预训练后就像用BERT一样嘛,作为句子的编码器,但BERT得到的是token的表示,此预训练模型ENPAR可以直接得到实体和实体对表示,那么之后的抽取任务模型就很简单了就是ENPAR+softmax实体关系多分类器,而BERT只是得到的token表示,后续要做联合抽取还需要,基于token表示,得到实体表示进而多分类抽取实体,再基于实体表示得到实体对表示,进而多分类抽取三元组。
两者的区别在这,BERT并没有完全适配联合抽取这个下游任务还需要再BERT编码句子后再操作一下,而ENPAR则是专门针对联合抽取的预训练模型,作用和之前BERT用在联合抽取任务中一样,都是编码句子嘛,只不过直接就能拿到实体和实体对的表示,适配联合RE。所以说用BERT的时候对于这个实体和实体对的表示也是一个点有相关paper做这方面的工作了,所以这么一对比BERT和适配联合RE的ENPAR,挺有意思的。
其实单独拿出来ENPAR的某一部分比如entity 和 entity pair encoder设计的都很简单,之前有挺多关于实体和实体对表示的工作比如插入实体类型信息、cross-sentence等能否更近一步呢,之前看过一篇(Soares et al.2019\(^{[2]}\))就灵活运用了mask,当时就有个不成熟的想法就能不能对实体mask去预训练模型让模型能更好服务与实体/关系抽取,这篇这类适配联合抽取的预训练模型感觉也就是类似这种想法,还是要多看看的杂一些,很早就有相关的工作了只是没看到啊。
参考
[1] Yijun Wang1, 2, Changzhi Sun4, Yuanbin Wu3, Hao Zhou4, Lei Li4, and Junchi Yan1, 2.ENPAR:Enhancing Entity and Entity Pair Representations for Joint Entity Relation Extraction.ACL 2021.
[2] Livio Baldini Soares.Nicholas FitzGerald.Jeffrey Ling?.Tom Kwiatkowski.Matching the Blanks: Distributional Similarity for Relation Learning.ACL 2019.