本文主要复述论文["Exploring Pre-trained Language Models for Event Extraction and Generation"] 的内容,以便自我回顾,也希望可以给大噶带来帮助~
摘要
这篇文章研究事件抽取的角度是从有标签的训练数据描述的,以往的EE任务依赖于人工标注数据,而不充分的训练数据会影响模型的效果。文章采用了一个预训练语言模型来提取事件触发词,通过角色预测分离方法来处理角色抽取任务中的角色重叠问题,并利用Bert模型的Masked LM来自动生成标签数据。该模型在ACE05数据集上的表现,事件抽取任务上达到了81.1%的F1值,角色抽取任务上达到了58.9%的F1值。
介绍
角色重叠问题
ACE05数据集上10%的事件有角色重叠问题,例句The explosion killed the bomber and three shoppers
中killed
触发事件,元素the bomber
既可以触发角色,又有角色。之前的工作中会将该元素第一次被预测到的角色类型判定为分类好的角色标签,而没有考虑该角色在多个角色类型中的概率。
标签数据不足问题
监督学习下的事件抽取依赖于大量人工标注的数据集,而ACE数据集当中给出的事件标签数量有限。为了解决这一问题,之前也有工作通过远程监督的方法来生成事件类型标签扩充训练集,但这一方法也是依赖于源数据集的数量与质量。
解决方法
论文提出了预训练语言模型,利用从语料库中获得的知识来进行事件生成。预训练语言模型包括事件抽取模型与角色抽取模型,角色重叠问题通过计算角色类型与事件类型之间的关系,来重置角色分类的概率值。事件类型标签也是通过这个预训练语言模型实践,将原训练集作为样本,通过参数替换和辅助token重置这两步生成新的事件类型。
预训练语言模型
预训练语言模型(PLMEE)由触发词提取、角色提取两个阶段组成,二者的特征表示学习均在BERT模型上进行。整体模型框架由Figure3描述:触发词提取
事件抽取部分是直接用Bert模型得到词向量表示,最后加个分类器完成触发词的提取。值得说明的是,这里每个token的输入由三部分组成:word embedding + segment + position
,整个模型基于句子级别,这里的segments
设为0。其他设定则与Bert保持一致。
元素提取
对于第一阶段提取到的触发词,这里会提取与其相关的成分的所有可能角色。作者总结的元素提取有三个难点:1.元素对触发词的依赖性;2.元素大多由长名词短语构成;3.角色重叠。模型框架设定与前一阶段相似,也是需要注意的一点:特征表示输入的segment
将触发词所在的span设为1。
分类器则是设为所有角色标签的集合,即为对每个元素判断所有角色类型的概率,并在其分类器上设置一个二元组,用来判定该角色下的token的span,该跨度由(start, end)
组成。通过对每种可能的角色标签进行计算,改善角色重叠问题。
角色span的判定
判定角色的span,也就是如何更准确得到每个token的(start, end)
域值。首先,对于每一个token,经softmax分别计算在角色下的起始点的概率与结束点的概率:
损失权重重置
论文中处理一个元素有多种角色时应该被分类的角色标签,依据了同一事件中每种角色出现的可能性会大不相同这一事实。因此文中给出了当前角色在一个事件中的重要性判定条件:RF-IEF(这一定义与词频的TF-IDF类似),。由这一指标可以得到角色在事件类型中的重要程度:
生成标签数据
生成新的标签是将原有数据集作为样本,通过模型学习到新的之前没有标签的词并加入到训练集中,以起到扩充语料的作用。这里是采用了Bert的Mask预训练方法,通过两个步骤:1.句中的元素替换为有相同角色标签的其他元素;2.利用Bert的fine-tune替换触发词的辅助token。这里需要注意的几点:
1.辅助token是原有样本数据集里未被识别成触发词或角色的token,除了词、数字,还可以包括标点。
2.元素替换是将具有相同角色标签的元素进行代换。因此需要预先统计所有的实体以及对应标签构成{arg : role}
字典集,并且这个字典集不包括有角色重叠的元素。
3.这里的数据集扩充并非给没有标签的数据加上标签,而是保持触发词与角色的个数不变,通过辅助元素的替换将触发词与角色所在句子的成分做更改,获得同样有标签的句子,以达到数据集的扩充。
- 元素替换
进行替换的元素需要有相同的角色标签,为了保证被替换掉的数据可以呈现相似的语义,也就是语义相似、上下文语境相似,这里使用余弦相似度来衡量两个元素之前的相似度,用ELMo模型得到元素的向量表示,并统计概率值,以分数最高的作为替换元素。 - 辅助token重写
在已有元素替换的基础上,作者认为再添加一项辅助token的替换可以改善参数替换带来的过拟合问题,以调整表示的平滑度与多样性。辅助token的替换由fine-tune实现,先是以一定比例将辅助token设定为[mask]
,再经过模型依据上下文来生成更符合当前语境的token以作替换。作者的实验中是将所有的辅助token都进行了替换。 - 评测
为了保证生成的句子可以对角色抽取产生积极的作用,作者使用了两个值来对句子生成进行评估:
1.PPL:评估生成的合理性。
2.DIS:评估生成语料与原有数据集之间的距离。
(具体计算过程就不说明了,需要的可以参考论文~)
实验
PLMEE模型的结果:写在最后
这篇论文比较有趣的一点是他统计了所有角色与事件类型之间的关系RF-IEF,虽然相较于以前的工作,这里会需要把多种不同标签都给计算一遍,但通过人为处理也是一个不错的选择。我认为理解这篇文章的难度在于需要掌握Bert的原理,由于我之前也没好好研究过这个,所以看起来也特别费劲,事实证明Bert是真的很优秀,这里的触发词识别与分类模块就将F1值提高了10个百分点。句子生成这块我觉得也是和Bert的Masked预训练原理结合的很巧妙,大多与Bert有关的我就没有描述了,这里贴一个Bert模型讲解,可以迅速上手~
还是新手,水平有限,若有错误还望不吝赐教~