论文笔记:ACL/2019 Exploring Pre-trained Language Models for Event Extraction and Generation

论文地址:Exploring Pre-trained Language Models for Event Extraction and Generation - ACL Anthologyhttps://aclanthology.org/P19-1522/

关于BERT的简要介绍:

什么是BERT? - 知乎BERT的全称为Bidirectional Encoder Representation from Transformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采…https://zhuanlan.zhihu.com/p/98855346

目录

一、摘要

二、介绍

三、模型介绍

 1.触发器提取

2.参数提取

3.参数范围确定

4.损失函数重新加权

四、生成训练数据

1.预处理

2. 事件生成

3.评分

五、实验结果

1.模型评估

2.案例学习

3.生成模型的自动评估

 4.模型的局限性

 写在最后


一、摘要

        ACE事件提取任务的传统方法通常依赖于手工标注的数据,创建这些数据通常很费力,而且大小有限。因此,除了事件提取本身的困难外,训练数据的不足也阻碍了学习过程。为了促进事件抽取,我们首先提出了一个事件抽取模型,通过根据角色分离参数预测来克服角色重叠问题。此外,为了解决训练数据不足的问题,我们提出了一种通过编辑原型自动生成标记数据的方法,并通过对质量进行排序来筛选生成的样本。在ACE2005数据集上的实验表明,我们的提取模型可以超过现有的大多数提取方法。此外,采用我们的生成方法也有了进一步的显著改进。在事件提取任务上获得了最新的研究成果,包括将触发器分类F1得分提升到81.1%,参数分类F1得分提升到58.9%。

二、介绍

         事件提取是许多自然语言处理应用中一个关键且具有挑战性的任务。它的目标是检测事件触发器和参数。图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%的事件存在角色重叠问题。然而,尽管有证据表明角色重叠问题,但很少有人关注它。相反,在许多方法的评价环境中,它往往被简化。例如,在以前的大多数工作中,如果一个参数同时在一个事件中扮演多个角色,只要预测击中其中任何一个,模型就能正确分类,这显然远不能准确地应用于现实世界。因此,我们设计了一种有效的机制来解决这一问题,并在实验中采用更严格的评价标准。

        另一方面,到目前为止,基于深度学习的事件提取方法大多遵循监督学习范式,这需要大量的标记数据进行训练。然而,准确地注释大量数据是一项非常费力的任务。为了减轻现有方法因预定义事件数据不足而带来的困扰,通常使用事件生成方法生成额外的事件进行训练。而远程监督(Mintz et al.,2009)是一种常用的外部语料库标注技术。但远程监控产生的事件的质量和数量高度依赖于源数据。事实上,预先训练好的语言模型也可以利用外部语料库来生成句子。因此,我们转向预先训练的语言模型,试图利用它们从大规模语料库中学习到的知识来生成事件。

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

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

(此处省略了论文中相关工作部分)

三、模型介绍

        本节描述提取纯文本中发生的事件的方法。我们认为事件提取是一个两阶段的任务,包括触发器提取和参数提取,并提出了基于Pre-trained Languag Model based Event Extractor (PLMEE)。图3展示了PLMEE的架构。它由一个触发器提取器和一个参数提取器组成,两者都依赖于BERT的特征表示。

 1.触发器提取

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

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

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

2.参数提取

        给定触发器,参数提取器旨在提取相关参数及其所扮演的所有角色。与触发器提取相比,参数提取更加复杂,主要有三个问题:参数依赖于触发器,参数多为长名词短语,角色重叠问题。我们采取了一系列的行动来处理这些障碍。

        与触发器提取器一样,参数提取器也需要三种嵌入。但是,它需要知道哪些token组成触发器。因此,我们提供参数提取器,触发器标记的段id为1。

        为了克服参数提取中的后两个问题,我们在BERT上添加了多组二进制分类器。每一组分类器都为一个角色服务,以确定扮演它的所有参数的范围(每个范围包括开始和结束)。这种方法类似于SQuAD (Rajpurkar et al.,2016)的问答任务,其中只有一个答案,而扮演相同角色的多个参数可以同时出现在一个事件中。由于预测是用角色分开的,一个参数可以扮演多个角色,一个token可以属于不同的参数。因此,角色重叠问题也可以得到解决。

3.参数范围确定

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

        同样地,被预测为参数结尾的概率是:

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

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

        算法1包含一个有限状态机,它会根据B_{s}^{r}B_{e}^{r}从一种状态改变到另一种状态。总共有三种状态:1)没有检测到起点和结尾;2)只检测到起点;3)既检测到起点又检测到结尾。具体来说,状态的变化遵循以下规则:当当前token为起点时,状态1变为状态2;当当前token为结尾时,状态2变为状态3;当当前token是一个新的起点时,状态3更改为状态2。值得注意的是,如果有一个起点,而另一个起点又出现了,我们会选择概率更高的起点,结尾也是如此。

4.损失函数重新加权

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

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

         最后我们对L_{s}L_{e}取平均作为参数提取器的损失函数L

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

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

         其中N_{v}^{r}是在类型v事件中出现的角色r的次数。

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

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

         最后取RF-IEF为RF与IEF的乘积:RE-IEF\left ( r, v\right ) = RF(r, v) \times IEF(r)。通过RF-IEF,我们可以衡量事件类型为v中角色的重要性:

        我们选择了三种事件类型,并在表1中列出了每种类型的两个最重要的角色。表格说明了,尽管在某一类型的事件中可能有多个角色,但其中只有少数是不可或缺的。 

        给定输入的事件类型v,我们根据v中每个角色的重要性对L_{s}L_{e}重新加权: 

         参数提取器L的损失仍然是L_{s}L_{e}的平均值。

四、生成训练数据

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

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

1.预处理

        在真值标签的帮助下,我们首先收集ACE2005数据集中的参数以及它们所扮演的角色。然而,这些参数与其他参数重叠的地方被排除在外。因为这样的参数往往是很长的复合短语,包含了太多意想不到的信息,把它们合并到参数替换中可能会带来更多不必要的错误。

        我们还采用BERT作为目标模型,在下一阶段重写附属token,并使用掩码语言模型任务(Devlin et al.,2018)在ACE2005数据集上对其进行微调,使其预测偏向数据集分布。与BERT的预训练程序相同,每次我们抽取一批句子,对15%的token进行掩码操作。目标仍然是在没有监督的情况下预测正确的token。

2. 事件生成

        为了生成事件,我们在原型上执行两个步骤。我们首先用那些扮演相同角色的相似参数替换原型中的参数。接下来,我们用经过微调的BERT重写附加token。通过这两个步骤,我们可以得到一个带有注释的新句子。

        Argument Replacement 第一步是替换事件中的参数。被替换的论点和新的论点都应该扮演同样的角色。而角色是在替换之后继承的,因此我们仍然可以对生成的示例使用原始标签。

        为了不彻底改变意义,我们使用相似性作为选择新参数的标准。它基于以下两点考虑:一是两个发挥相同作用的参数可能在语义上存在显著差异;另一个是参数的作用很大程度上取决于它所处的环境。因此,我们应该选择语义上相似且与上下文一致的参数。

        我们使用词嵌入向量之间的余弦相似度来衡量两个参数的相似度。由于ELMO处理OOV问题的能力,我们使用它来嵌入参数:

         其中是a 是参数,\varepsilon 是ELMO嵌入。我们选择前10%最相似的参数作为候选参数,并对其相似性使用softmax运算来分配概率。

        80%的概率替换一个参数,但是有20%的概率保持参数不变是为了贴近实际事件(Devlin et al.,2018)。需要注意的是,触发器保持不变,以避免对依赖关系的不良偏离。

        Adjunct Token Rewrite 参数替换的结果已经可以被认为是生成的数据,但是常量固定不变的上下文可能会增加过拟合的风险。因此,为了平滑生成的数据并扩展其多样性,我们设法用经过微调的BERT重写了附加token。

        重写是用与当前上下文更匹配的新token替换原型中的一些附加token。我们将其作为一个完形填空任务(Taylor,1953),在这个任务中,一些附加token被随机屏蔽,在第一个阶段进行精细调整的BERT根据上下文使用预测合适符号的词汇id。我们使用一个参数m来表示需要重写的附加token的比例。

        附属token重写是一个循序渐进的过程。每次我们屏蔽15%的附加token(使用token[mask])。然后将句子输入BERT以生成新的附加token。尚未重写的附加token将暂时保留在句子中。

        为了进一步说明上面的两个步骤,我们在图4中给出了一个实例。在本例中,我们将m设置为1.0,这意味着所有的附加token将被重写。最后的输出是“Prime minister Blair is reported to the meeting with the leaders”,这与原型中的原始事件共享标签。很明显,在1.0版本中保留了一些附加token。

3.评分

        理论上,我们的生成方法可以生成无限个事件。然而,并不是所有这些方法都对提取器有价值,有些甚至可能降低其性能。因此,我们增加了一个额外的阶段来量化每个生成的样本的质量,以挑选出那些有价值的。我们评估质量的关键洞察力在于它与两个因素紧密相关,即perplexity和到原始数据集的距离。前者反映了生成的合理性,后者则反映了数据之间的差异。(ps 这里不知道怎么翻译perplexity更为妥当,就干脆保留了)

        Perplexity(PPL)  与对数版本的masked perplexity (Devlin et al.,2018)不同,我们取那些被重写的附加token的平均概率作为生成句子 S{}' 的perplexity:

        其中A S{}'中被重写的附属token的集合。 

         Distance(DIS)  我们用余弦相似度度量{S}'和数据集D之间的距离:

        与ELMO的嵌入参数不同,我们利用BERT嵌入句子,将第一个token[CLS]的嵌入作为句子嵌入。 

        PPL和DIS都被限制在[0,1]中。我们认为生成的高质量样本应该具有低PPL和低DIS,因此我们将质量函数定义为:

        式中,λ∈[0,1]为平衡参数。该函数用于在实验中选择生成的高质量样本。

五、实验结果

1.模型评估

        首先在ACE2005数据集上评估事件提取器模型PLMEE。PLMEE(-)表示损失函数在所有分类器的输出上简单平均的一组;PLMEE表示基于角色重要性重新加权损失的一组。实验结果如表2所示:

         表2将上述模型与PLMEE在测试集上的结果进行了比较。如图所示,在触发器提取任务和参数提取任务中,PLMEE(-)在所有比较方法中取得了最好的结果。在触发器提取上的改进是相当显著的,在F1分数上看到了近10%的急剧增长。而在参数提取方面的改进不是很明显,只有2%左右。这可能是由于我们采取了更严格的评估指标,以及论证提取任务的难度。

        此外,与PLMEE(-)模型相比,PLMEE模型在参数提取任务上取得了更好的结果,识别的F1分数提高了0.6%,分类的分数提高了0.5%,这意味着重新加权损失可以有效地提高性能。

2.案例学习

        表3演示了一个原型及其生成过程,表中参数m范围从0.2变化到1.0。

3.生成模型的自动评估

        到目前为止,生成方法主要有三个方面会对提取模型的性能产生显著影响,包括生成样本的数量(用n表示,表示n乘以生成数据的大小就是数据集大小)、重写的附加token的比例m、以及生成样本的质量。

        我们设置m从0.2变化到1.0间隔0.2,n分别设为0.5、1.0和2.0。通过保持其他参数不变,分析实验结果最终得出:m=0.4, n=1.0的时候实验效果最好。这表明,生成的样本既不是太少也不是太多,都不是更好的提取选择。太少影响有限,太多会带来更多干扰数据集分布的噪声。

        在表4中,我们使用PLMEE(+)表示使用额外生成的样本训练的PLMEE模型。结果表明,使用我们的事件生成方法,PLMEE模型可以获得最先进的事件提取结果。

 4.模型的局限性

        通过比较生成的样本和手工标记的样本中的注释,我们发现我们生成方法的一个问题是角色可能会偏离,因为只有一个附加标记被重写,语义可能会发生很大的变化。

 写在最后

我认为的创新点在于:

        1)在原型的基础上使用基于预训练的事件生成方法来生成更多的高质量样本(评分函数)。通过使用生成数据对模型进行训练,一定程度上提高了PLMEE模型的性能
        2)在BERT的基础上,通过二进制分类器损失函数的重新加权解决角色重叠问题(是一个不错的思路)
我认为的不足之处在于:

        从实验数据看来,在参数提取部分所做出的改变(对损失函数重新加权)所带来的的影响并不明显。

        写下这篇博客的我正值研一刚入学一个月,导师安排的任务是实验室的几个小方向各看论文30篇+,而我到现在也没完成15篇...如果博客中有什么内容是错误的或者见解不对的,希望各位大佬不吝赐教!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值