【论文阅读笔记|ACL2019】PLMEE:Exploring Pre-trained Language Models for Event Extraction and Generation

论文题目:Exploring Pre-trained Language Models for Event Extraction and Generation

论文来源:ACL 2019 国防科技大学

论文链接:https://aclanthology.org/P19-1522.pdf

代码链接(别人复现的代码):GitHub - boy56/PLMEE

0 摘要

传统的事件抽取(EE)方法通常依赖于人为标注的数据,耗时耗力,而且标注的数据量不会很大。不充足的数据阻碍了模型的学习。

本文首先提出了一个EE模型——PLMEE,通过将论元(argument)预测按照角色进行分离来克服角色重叠问题。

为了解决训练数据不足的问题,提出了一种通过edit prototypes的方法来自动生成标注数据,并按照数据的质量进行排序,对生成的样本进行筛选。

在ACE2005数据集上的实验表明,我们的抽取模型可以超过现有的大多数抽取方法。我们的模型在事件抽取任务上获得了SOTA,包括将触发词分类F1得分提升到81.1%,论元分类F1得分提升到58.9%。

1 引言

事件抽取的目标是检测事件触发词和论元。图1展示了一个句子,其中包含由“meeting”触发词的Meet类型事件,有两个论元:“President Bush”和“several Arab leaders”,两者都扮演“Entity”的角色。

在事件抽取中有两个有趣的问题:

  • 一方面,事件中的角色在频率上变化很大(图2),他们可能在某些单词上重叠、甚至共享相同的论元(角色重叠问题)。例如,在句子 The explosion killed The bomber and three shoppers 中,“killed” 触发词 Attack 事件,而论元 “The bomber” 同时扮演 “Attacker” 和 “Victim” 的角色。

在ACE2005数据集中,大约有10%的事件存在角色重叠问题。但很少有人关注,在许多方法的评价环境中,它往往被简化。例如,在以前的大多数工作中,如果一个论元同时在一个事件中扮演多个角色,只要预测其中任何一个,模型就能正确分类。因此,我们设计了一种有效的机制来解决这一问题,并在实验中采用更严格的评价标准。

  • 另一方面,绝大多数现有的方法都是有监督学习,需要大量的标注数据用于训练。但是标注数据非常耗费人力,所以现有的数据集都不是很大,这也就限制了模型的能力。为了解决这一问题,已经有一些相关研究:采用事件生成方法来为训练生成事件数据;使用远程监督,利用外部语料库进行标注。但是使用远程监督生成事件的质量和数量过度依赖于源数据。实际上,也可以使用预训练语言模型生成句子,实现对外部语料库的利用。作者使用了预训练语言模型,利用大规模语料库的知识,实现事件生成。

具体来说,本文提出了基于预训练语言模型的框架,其中包括事件抽取模型的基线任务和一个标签化事件生成的方法。本事件抽取模型由触发词提取器和论元提取器组成,论元提取器引用触发词提取器的结果进行推理。此外,还根据角色的重要性对损失函数重新加权(re-weighting),从而提高了论元提取器的性能。

预训练的语言模型也被用于生成标记数据。受别的工作的启发,将现有的样本作为事件生成的原型,其中包含两个关键步骤:论元替换和附属特征重写(adjunct token rewrite)。通过对生成样本的质量进行评分,可以筛选出高质量的样本。将它们与现有数据结合可以进一步提高事件抽取器的性能。

2 相关工作

事件抽取 EE分为两类:文档级别的EE、句子级别的EE。本文研究的是句子级别的EE。

句子级别的EE又可分为两类:基于特征的方法、基于神经网络的方法。
事件生成:使用外部数据库,例如Freebase, Frame-Net, WordNet,来生成事件,丰富训练数据。

许多事件生成的方法都基于远程监督的强假设:若两个实体在外部知识库中存在某种关系,则认为所有提及这两个实体的句子,句子中的这两个实体也存在这种关系。基于这种强假设,在无监督的语料上进行事件的标注。但实际上共现的实体不一定就会有这种关系。

此外,有学者使用抽象语义表示和语义分布来抽取事件。

还有学者对FramNet中的框架进行挖掘,得到额外的事件。

预训练语言模型 PLM:ELMO, GPT, BERT

3 模型介绍

事件抽取是一个两阶段的任务,包括触发词抽取和论元抽取,并提出了基于Pre-trained Languag Model based Event Extractor (PLMEE)。图3展示了PLMEE的架构。它由触发词抽取器和论元抽取器组成,两者都依赖于BERT的特征表示。

3.1 抽取触发词

触发词抽取器的目标是预测token是否触发事件。因此,将触发词抽取定义为token级别的分类任务,并且带有表示事件类型的标签,并在BERT上添加一个多分类器来构建触发词抽取器。

触发词抽取器的输入遵循BERT,即WordPiece嵌入、位置嵌入和段嵌入三种类型的嵌入之和。因为输入只包含一个句子,所以它的所有段id都被设置为零。此外,标记[CLS]和[SEP]分别置于句首和句尾。

在许多情况下,触发词是一个短语。因此,将共享同一预测标签的连续token视为整个触发词。一般情况下,采用交叉熵作为损失函数进行微调。

3.2 论元抽取

给定触发词,论元抽取器旨在抽取相关论元及其所扮演的所有角色。与触发词抽取相比,论元抽取更加复杂,主要有三个问题:论元依赖于触发词,论元多为长名词短语,角色重叠问题。

  1. 与触发词抽取器一样,论元抽取器也需要三种嵌入。但是,它需要知道哪些token组成触发词。因此,将触发词标记的段ids设为1来输入论元提取器。
  2. 为了克服论元抽取中的后两个问题,在BERT上添加了多组二进制分类器。每一组分类器都为一个角色服务,以确定扮演它的所有论元的范围(每个范围包括开始和结束)。这种方法类似于SQuAD 的问答任务,其中只有一个答案,而扮演相同角色的多个论元可以同时出现在一个事件中。由于预测是用角色分开的,一个论元可以扮演多个角色,一个token可以属于不同的论元。因此,角色重叠问题也可以得到解决。

3.3 论元范围确定

在PLMEE中,一个token  被预测为论元起点(这个论元充当的角色为r)的概率是:

同样地,被预测为论元结尾的概率是:

在公式中,我们用下标s表示起点,下标e表示结尾。W_{s}^{r}二进制分类器的权重,目的是检测论元开始充当的角色r,而W_{e}^{r}另一个二进制分类器的权重,目的是检测出论元结尾。B\left ( t \right )是BERT嵌入。

对于每一个角色r,我们可以根据得到两个0/1列表和。它们分别指示句子中的标记是扮演角色的论元的起点还是结尾。Algorithm1用于顺序检测每个标记,以确定所有发挥作用的论元的范围。

算法1包含一个有限状态机(FSM "finite state machine"),它会根据从一种状态改变到另一种状态。

总共有三种状态:1)没有检测到起点和结尾;2)只检测到起点;3)既检测到起点又检测到结尾

具体来说,状态的变化遵循以下规则:

当前token为起点时,状态1变为状态2

当前token为结尾时,状态2变为状态3

当前token是一个新的起点时,状态3更改为状态2

值得注意的是,如果有一个起点,而另一个起点又出现了,会选择概率更高的起点,结尾也是如此。

3.4 损失函数重新加权

先定义为所有负责检测论元起点的二进制分类器的损失函数。损失函数为输出概率和真值标签之间的交叉熵平均值。

其中CE为交叉熵,R为角色集,S为输入句子,|S|为S中token的个数。同样,我们定义为所有检测结尾的二分类器的损失函数: 

最后我们对和取平均作为论元抽取器的损失函数。

如图2所示,角色之间的频率存在很大的差距。这意味着角色在事件中具有不同的“重要性”级别。这里的“重要性”是指角色指示特定类型事件的能力。例如,角色“Victim”比角色“Time”更可能指示Die事件。受此启发,根据角色的重要性重新加权,并建议用以下定义来衡量重要性:

 Role Frequency (RF) 定义RF为角色r在事件类型v中出现的频率:

其中在类型v事件中出现的角色r的次数。

Inverse Event Frequency (IEF) 作为对角色普遍重要性的度量,将IEF定义为包含角色r的事件类型的对数比例反比:

其中,V是事件类型的集合。

最后取RF-IEF为RF与IEF的乘积:  

通过RF-IEF,我们可以衡量事件类型为v中角色的重要性:

给定输入的事件类型v,根据v中每个角色的重要性对和重新加权: 

论元抽取器的损失仍然是二者和的平均值。

4 生成训练数据

除了PLMEE,还提出了一种基于预训练语言模型的事件生成方法,如图4所示。通过对原型的编辑,该方法可以生成数量可控的标记样本作为额外的训练语料库。它包括预处理、事件生成和评分三个阶段。

为了实现生成方法,将附加token定义为句子中除触发词和论元外的标记,不仅包括单词和数字,还包括标点符号。以图1中的句子为例,“is”和“going”是附加token。可见,附加token可以调节表达的流畅性和多样性。因此,我们试图在保持触发词和论元不变的情况下,对它们进行重写,以扩大生成结果的多样性。

4.1 预处理

首先收集ACE 2005数据集中的论元和它们的角色,其中重叠的论元不统计,因为这些论元通常是长的短语,包含太多的不期望的信息,使用它们进行论元替换可能带来更多不必要的错误。使用BERT作为目标模型重写附属token,在ACE2005数据集的标记语言模型任务中微调,使其预测偏于数据分布。每次标记15%的token,目标是无监督地预测正确的token。

4.2 事件生成

事件生成分为下面两步,通过这两个步骤,可以获得一个带标注的新句子。

  1. 将原型数据的论元替换为相同角色的其他论元。
  2. 使用微调的BERT重写附属token

4.2.1 论元替换

角色在替换后是被继承的,所以我们可以对生成的样本使用原始标签。为了不大幅度地改变意思,我们使用相似性作为标准来选择新论元。基于下面两个原因:

扮演相同角色的两个论元可能在语义上存在显著差异
论点扮演的角色很大程度上取决于它的上下文。

因此应该选择有相似语义和连贯的上下文的论元。使用编码的余弦相似度计算两个论元的相似度。由于ELMO可以处理OOV问题,因此使用它编码论元,公式如下,其中a为论元,ε为ELMO编码。选择10个最相似的论元作为候选集,对它们的相似度使用softmax分配概率。

 为了偏向真实事件的表示,80%的论元被替换,20%的保持不变。同时触发词保持不变,避免不必要的依赖关系的偏离。

4.2.2 重写附属token

替换论元的结构已经可以被当作生成的数据,但是一样的上下文可能增加过拟合的风险。因此,为了平滑生成数据和扩展它们的多样性,使用微调的BERT重写附属token。
重写是为了替换原型数据中的一些附属token,替换为更符合当前上下文的新token,它为Cloze任务。一些附属token被随机标记,微调的BERT基于上下文,预测适当的token的词典id。使用论元m表示需要重写的附属token比例。
附属token重写是一个逐步的过程,每次标记15%的附属token([MASK]).然后输入到BERT得到新的附属token。尚未重写的附加token将暂时保留在句子中。根据图4(设置m=1.0)可以发现,尽管m为1.0仍保留了一些附属token。

4.3 评分

通过两个因素评测生成样本的质量:PPL和与原始数据库的DIS。前者展示生成数据的合理性,后者反应数据间的不同。
使用重写的附属token的平均概率作为生成的句子的PPL,公式如下,其中A是S’中已重写的附加token集。

使用余弦相似度测量句子S’和数据库D的DIS,公式如下,其中使用BERT编码句子,取第一个token[CLS]的编码作为句子的编码。

PPL 和 DIS的范围为[0,1],生成的高质量样品应该同时具有低PPL和DIS。因此,将质量函数定义为:

5 实验结果

在本节中,首先评估ACE2005数据集上的事件提取器PLMEE。然后对生成的样本进行了实例研究,并将这些样本添加到训练集中进行了自动评估。最后,我们说明了生成方法的局限性。

使用的数据集为ACE2005,不同于以前的工作,使用下面标准评测每个预测的事件提交正确性。

  1. 触发词的区间和类型与真实标签匹配,则该触发词预测正确。
  2. 论元的区间和它的全部角色与真实标签匹配,则该论元预测正确。

注意:论元的全部预测角色需要与真实标签匹配,而不是只匹配其中的一个角色。

5.1 事件抽取的结果

实验结果如下图,其中PLMEE(-)为loss函数为全部类别输出的平均,PLMEE的loss为基于角色重要性进行重新加权。

主要有三个因素显著地影响抽取模型的表现:

  1. 生成样本的数量(表示为n,定义为生成的数量是数据集数量的倍数)
  2. 重写附属token的比例m
  3. 生成样本的质量

5.2 案例研究

表3说明了一个原型及其生成,参数m的范围为0.2到1.0。可以观察到,替换后的参数可以相对较好地匹配原型中的上下文,这表明它们在语义上与原始的参数相似。

另一方面,重写辅助令牌可以平滑生成的数据并扩展它们的多样性。然而,由于没有明确的指导,这一步也可能引入不可预测的噪声,使生成不像预期的那样流畅。 

5.3 Generation 自动评估

到目前为止,主要有三个方面的生成方法可能有显著影响提取模型的性能,包括生成样本的数量(由n表示,表示乘以生成大小是数据集大小的数量),重写辅助标记m的比例,和生成的样本的质量。前两个因素在Generation过程中是可控的。特别地,可以重用一个原型,并通过基于相似性的替换来获得各种参数的组合,这将为重写附加标记带来不同的上下文。此外,重写的辅助标记的比例可以调整,使进一步的变化。虽然生成的质量不能被任意控制,但它可以通过分数函数Q进行量化,从而可以挑选出那些更高质量的样本并添加到训练集中。随着Q中λ的变化,可以使用不同的选择策略来筛选出生成的样本。

首先通过网格搜索对开发集上的前两个参数进行了调整。特别地,将m设置范围为0.2到1.0,间隔为0.2,n设置为0.5、1.0和2.0,同时在生成过程中保持其他参数不变。用这些参数进行了实验。通过分析结果,我们发现m = 0.4和n = 1.0对PLMEE在触发器提取和参数提取方面都具有最好的性能。这表明,生成的样本太少和太少都不是更好的提取选择。太少影响有限,而太多可能会带来更多的噪声,干扰数据集的分布。为了获得更好的提取性能,在接下来的实验中使用了这些参数设置。

还研究了样本选择方法的有效性,并在具有不同选择策略的三个组之间进行了比较。我们使用m = 0.4的生成方法获得了ACE2005数据集的4倍大小,并挑选出四分之一(n = 1.0),λ分别为0,0.5和1.0。当λ为0或1.0时,PPL或DIS完全决定了质量。我们发现,在质量函数中采用λ = 0.5的选择方法能够挑选出更有利于提高提取性能的样品。

还研究了样本选择方法的有效性,并在具有不同选择策略的三个组之间进行了比较。我们使用m = 0.4的生成方法获得了ACE2005数据集的4倍大小,并挑选出四分之一(n = 1.0),λ分别为0,0.5和1.0。当λ为0或1.0时,PPL或DIS完全决定了质量。我们发现,在质量函数中采用λ = 0.5的选择方法能够挑选出更有利于提高提取性能的样品。

最后,将上述生成的数据与ACE2005数据集合并,并研究了我们的生成方法在测试5292集上的有效性。在表4中,我们使用PLMEE(+)表示用额外生成的样本训练的PLMEE模型。结果表明,利用我们的事件生成方法,PLMEE模型可以达到最先进的事件提取结果。

5.4 限制

通过比较生成样本和人工标注的样本,该生成方法的一个问题是角色可能偏移,因为仅重写几个附属token,语义就发生了很大变化。如下图,因为from被替换为for,drive to被替换为return from,导致生成数据的论元角色错误。

6 总结

提出了一个基于预训练语言模型的事件抽取模型,为了克服角色重叠问题,该方法根据角色分离论元预测。(设置多个分类器)
提出一个数据生成方法,以现存的事件为原型,通过论元替换和重写附属token,生成可控数量的带标签的样本。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值