【论文阅读笔记|ACL2022】Dynamic Prefix-Tuning for Generative Template-based Event Extraction

论文题目:Dynamic Prefix-Tuning for Generative Template-based Event Extraction

论文来源:ACL2022

论文链接:https://aclanthology.org/2022.acl-long.358.pdf

代码链接:

0 摘要

我们考虑用基于模板的条件生成的方式进行事件提取。尽管将事件提取任务转换为具有提示的序列生成问题越来越多,但基于生成的方法仍存在两个重大挑战,包括使用次suboptimal prompt和静态事件类型信息(static event type information)。在本文中,我们提出了一种基于生成模板的动态前缀(GTEE-DYNPREF)事件提取方法,通过将上下文信息与类型特定的前缀集成,来学习每个上下文的上下文特定前缀。实验结果表明,我们的模型在ACE 2005上取得了与最先进的基于分类的模型ONEIE的竞争结果,并在ERE上取得了最好的性能。此外,我们的模型还被证明可以有效地可移植到新类型的事件中。

1 引言

事件抽取是自然语言理解的一项必要但具有挑战性的任务。给定一段文本,事件抽取需要根据事件本体在每个事件中识别特定类型的事件触发词,事件论元定义事件类型和论元角色。

The man returned to Los Angeles from Mexico following his capture Tuesday by bounty hunters.

例如,图1中的上下文包含两个事件记录,

一个是由“returned”触发的Transport事件

另一个是由“capture”触发的Arrest-Jail事件。

Transport事件中,Artifactthe man”,Destination是“Los Angeles”,而Origin是“Mexico”。

Arrest-Jail事件中,Person是“the man”,Time是“Tuesday”,而Agent 是“bounty hunters”。

本文主要实现没有进行实体标注的提取事件的任务设置,这在实际应用程序中更实用。

大多数事件抽取任务将触发词和论元的抽取视为多分类任务,通过pipelined框架或级联解码来实现。

近来,把事件抽取任务作为序列生成任务来解决或引导引导预训练模型以离散提示输出条件生成序列的较多,与基于分类的方法相比,这样做需要更少的标注数据,只需要稍微修改设计的prompt和解码策略,更容易扩展到新的事件类型。

基于生成的方法存在两个重大挑战(1)suboptimal prompts手动为每种事件类型设计提示,没有调优,在很大程度上影响模型性能。(2)static event type information:在抽取特定类型的事件时,最近的基于生成的方法将只接收有关正在运行的事件类型的相同事件类型信息,而不考虑其他可能的事件类型之间的关联

为了缓解这两个挑战,提出了一种基于动态前缀的生成模板的事件提取,记作GTEE- D YNPREF,如图1所示,我们使用预训练的编码-解码器语言模型BART,按一种类型提取事件记录进行条件生成。对于每个事件类型,我们首先初始化一个特定于类型的前缀,它由一个可调向量序列组成,作为transformer 的历史值。特定于类型的前缀为单一类型提供了可调的事件类型信息。然后,我们将上下文信息与所有特定于类型的前缀集成起来,以学习特定于上下文的前缀,并动态地组合所有可能的事件类型信息。
我们在两个广泛使用的事件提取基准,ACE 2005和ERE上评估了我们的模型。实验结果表明,该模型在ACE 2005上与基于分类的模型ONEIE具有竞争力,在ERE上表现最好。此外,根据迁移学习的结果,我们的模型也可以有效地适应新类型的事件。

2 相关工作

2.1 基于分类的事件抽取

事件抽取通常会转化为序列标注问题。其中一些包含全局特征,并将联合推理应用于集体建模事件依赖关系。最近,还还将事件抽取视为阅读理解问题来解决:通过构造问题来查询事件触发词和论元。
本模型将事件抽取视为条件生成任务,更加灵活和可移植,减轻了标注数据的负担。

2.2 基于生成的事件抽取

将事件抽取任务转变为生成任务:转变成翻译任务;使用约束解码方法生成;基于模板生成。
约束解码和模板生成都使用了人工设计的离散模板,这导致了次优问题。另外应用的静态类型不考虑同一上下文中的事件之间的连接,我们 用动态前缀替换了静态类型的指令,动态前缀在训练过程中是连续的可调向量,结合手动事件模板,减轻了次优问题。

2.3 prompt调优

有一系列工作使用带有预训练模型的特定句子模板来解决自然语言理解任务。 很自然地会根据人类的自省提出前缀式或完形填空式的提示,称为“ 离散提示( descrete prompts)”。
现有的离散提示调整工作依赖于 verbalizers从类标签映射到答案token。 这些方法在少样本的文本分类和条件文本生成任务的设置中有效的。 还有一些方法可以探索直接在模型的嵌入空间中操作的连续提示,例如调整向量、使用 离散提示进行初始化和 混合提示( hybrid prompt)调优。

3 基于模板生成的方法

下图展示了我们的基本模型(GTEE-BASE),如图2所示。

3.1 问题设计

在事件抽取的条件生成任务公式中,将根据事件类型将文本上下文的提取过程划分为多个子任务。

即,给定一个事件本体,事件类型集为,对于事件类型 的每个子任务的输入由上下文和设计的prompt组成,输出是回答的prompt,包含提取的事件记录 。

例如:Hariri submitted his resignation during a 10-minute meeting with the head of state at the Baabda presidential palace

输入:[prompt; [SEP]; 上下文]

[Event type Meet.Trigger <trg> <IN_SEP> <arg> met with <arg> in <arg> place; [SEP];

Hariri submitted his resignation during a 10-minute meeting with the head of state at the Baabda presidential palace]
输出:[Trigger meeting  <IN_SEP>  Hariri met with head of state in palace place]

3.2 基本架构

如图 2 所示,条件生成子任务由预训练的编码器-解码器语言模型(LM)、BART和 T5建模。在生成过程中,编码器-解码器 LM 模拟了在前一个token 和编码器输入 的条件下选择新token 的条件概率。因此,给定输入序列,生成的输出序列的概率计算为:

3.3 prompt设计

在基础模型GTEE-BASE中,对于子任务 的prompt 包含事件类型 和模板

事件类型

描述子任务事件类型ei的序列,使用的模板为“Event type is [MASK].”,例如Meet事件的事件类型指令为“Event type is Meet.”

模板

使用<trg>和<arg>表示触发词和论元,通过<IN_SEP>连接,例如:

Hariri submitted his resignation during a 10-minute meeting with the head of state at the Baabda presidential palace

触发词部分是Trigger <trg>,论元部分是特定于事件类型ei的,由人工设计和寻找最佳模板。

Trigger <trg> <IN_SEP> <arg> met with <arg> in <arg> place

Ground Truth Construction

对于句子中的每个事件类型ei,将事件填充到模板,构建序列,用于条件生成。

若没有事件类型ei的事件记录,generation ground truth是Trigger <trg>,否则,事件类型被填充到模板中。

如果几个论元被归类为相同的角色,那么这些论元按照span排序,然后由'and'连接。如果有多个事件类型,按触发词的span排序,并且填充的序列将由一个新的单独的标记<OUT_SEP>连接

3.4 训练推理和分析

训练

基本模型GTEE-Base的可训练参数只是编码器-解码器语言模型,用来表示所有的可训练参数。训练目标是最小化训练集D中所有子任务negative loglikelihood,表示D中的第j个句子

推理

在推理阶段,基础模型通过波束搜索BEAM=6生成序列,最大序列长度是根据数据集统计量设置的,略大于真实值的长度。

分析

根据事件本体O,通过模板匹配和插槽映射来解析事件记录,并不是所有生成的输出序列都是有效的,对于每个生成序列,首先尝试解析触发词,若失败了,跳过该序列;若不能匹配<IN_SEP>或模板的论元部分,将跳过论元解析,只保留一个触发词。

3.5 无关事件类型

通过调查解析的事件时,我们发现我们的模型即使对于不相关的事件类型也有生成事件记录的偏差。 当输入上下文不包含任何事件记录时,这将在很大程度上损害precision分数和 F1 分数。 在 ACE 2005 和 ERE 中分别有 80.28% 和 71.02% 的句子不包含任何事件记录。

因此,我们提出了一个简单而有效的解决方案,通过单独训练一个无关性的分类器IC来缓解这个问题。将上下文C作为输入,我们微调BERT mdoel通过给编码[CLS]向量MLP二进制分类器,看看上下文是否包含任何事件记录或完全无关的本体o。

4 动态前缀调整

我们提出使用任务特定前缀和上下文特定前缀进行动态前缀调整,以缓解基于生成的事件提取中的两个主要挑战。我们的动态前缀调优模型的框架,GTEE-DYNPREF,如图3所示。我们将逐步介绍动态前缀调优。

4.1 特定类型的动态前缀

受前缀调优的启发,我们使用事件类型特定的前缀STAPREF,它是一对两个transformer激活序列,每个序列包含L个连续的D-dim向量,分别作为编码器和解码器的历史值。从编码器和解码器输入的角度来看,在子任务中,编码器-解码器LM中的序列X和Y的前缀几乎被提前添加。

这些transformer激活序列的主要优点是:为编码器和解码器提供可训练的上下文。

首先为本体o的每个事件类型ei初始化一对特定于任务的前缀,然后在条件生成子任务中,我们预先将相应的一对特定于任务的前缀作为编码器和解码器的transformer activations

使用可训练的嵌入张量来建模类型特定前缀sp,对于本体o中的事件类型ei,索引t的前缀向量为:

我们称特定于任务的前缀为静态的原因是:对于具有相同事件类型的子任务,输出类型指令是相同的。即这样的前缀只保留了关于一个单一事件类型的上下文,而忽略了不同事件类型之间的关联。

4.2 特定上下文动态前缀

为了在构建可训练前缀时捕获不同事件类型之间的关联,我们提出了 DYNPREF,它在提示预训练语言模型时使用上下文特定信息构造动态前缀。

如图4所示,d_{PC}与sp的序列长度相同,都为L,对于每个position t,前缀向量​​​​​​​d_{PC}根据多头注意动态积分本体O中事件类型ei的所有前缀向量前缀信息c。为了计算上下文特定的信息c,我们应用BERT 模型作为上下文编码器,将上下文C作为输入,并将[CLS]向量作为c。

特定于上下文的前缀 d_{PC}是动态的,因为它在引导 LM 时既考虑了本体 O 中特定于类型的信息,也考虑了独特的上下文信息。

按照 Li 和 Liang(2021 年)的方法,我们在编码器-解码器 LM 的第 i 个时间步,循环计算解码器transformer的激活向量 h_{i},它是所有层的集合。

编码器transformer的激活向量的计算与此类似。

4.3 训练

除LM参数φ外,DYNPREF的附加可训练参数还包括嵌入张量P和BERT编码器建模上下文信息。

我们通过建模一个自然语言模型MLP和另一个嵌入张量,对张量p进行重新参数化,最后p计算为:

 现在我们使用θ来表示为DYNPREF引入的所有参数。

训练目标仍然是最小化公式(2)中的负对数似然。然而,在我们的初步实验中,我们发现联合学习LM参数φ和DYNPREF参数θ需要不同尺度的训练超参数,因此很难学习提取事件参数的能力。因此,我们分三个步骤分别训练它们:

(1)首先,我们使用GTEE-BASE训练φ来学习任务信息。

(2)然后我们修复LM参数φ,并在每个子任务中屏蔽除ei外的所有其他事件类型,只优化θ,以学习每个事件类型的类型特定信息。

(3)最后,我们删除了事件类型的屏蔽,保持LM参数固定,并且只使用DYNPREF优化θ,以捕获相关事件类型之间的关联。

5 结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值