题目:Prompt for Extraction? PAIE: Prompting Argument Interaction for Event Argument Extraction
论文:https://arxiv.org/pdf/2202.12109v1.pdf
代码:https://github.com/mayubo2333/PAIE
PAIE可以提取具有相同角色的多个论元,而不是传统的启发式阈值调整。
本文提出了一个类似QA的方法,能够一次抽取出所有argument,同时用prompt注入任务信息,模板与原文本有良好的交互。
Event Argument Extraction事件参数提取(简称EAE)任务是事件抽取的一个子任务,可以分为句子和文档级别两种。任务的输入是:一句话或一篇文章,得到对应的触发词、事件类型、事件论元、论元角色。
如下图所示,句子或者文档的表示事件类型的触发词用
在下图句子级别的事件抽取中,事件类型为交易(Sell),触发词为sell,论元Vivendi的角色为售货员(seller),Universal Studios、parks、company的角色为工艺品(artifact)。
EAE可分为两大类:
本文的贡献如下:
Event Argument Extraction:识别候选论元→通过多分类为每个角色类型进行分类。事件论元抽取是事件抽取中的一个子任务。利用深度价值网络(DVN)来捕获事件抽取的跨事件依赖关系。将文档转换为非加权图,使用GAT减缓角色重叠问题。通过构造论元异构图来处理implicit论元和multiple events。DEFNN通过平行预测网络来预测论元。
Prompt-based Learning:与预训练-微调范式不同,基于prompt的方法将下游任务转换为与模型的训练前任务更一致的形式。Schick和Schutze(2021)通过用空白构建相关提示,并找到从特定填充的单词到预测类别的映射,将各种分类问题转换为封闭任务。Li和Liang(2021)专注于生成任务,并通过冻结模型参数和只调整连续的任务特定向量序列来提出轻量级的前缀调优。
PAIE考虑多个论元和他们之间的关联,用prompt预训练语言模型进行联合抽取,提出了以下的模型进行关系抽取。包括以下三部分:prompt create、span selector decoding、span prediction。下面将prompt用于抽取并且依次介绍每一个部分。
最左边的prompt creation是利用事件类型、事件角色来构建模版,构建好的模版会作为decoder的输入。 | 中间的span selector decoding,主要是利用Bart的模型,结构上没有做创新。encoder的输入是文档或句子,decoder输出是event role的特征表示。 | 最右边的span prediction,负责预测论元对应的的开始和结束坐标。 |
现有的基于prompt方法主要关注于分类和生成任务。传统的提取目标被转换为生成任务。这带来了一个低效率的问题:即模型必须枚举所有的提取候选项。
例如,Cui et al. (2021) 设计prompt用于NER:[candidate span] is [entity type/not a] entity。模型需要使用候选的实体去填slot(就是[]内),然后查看语言模型的输出用于第二个slot的抽取。基于提示的方法可以被直接的应用于抽取吗?其基本思想和分类/生成相似,将插槽嵌入和标签词汇表与输入token进行比较。在此,给出了一般抽取提示的公式,并将其用于EAE进行案例研究。
Prompted Selector Decoding。给定预训练语言模型,上下文X,prompt ,解码query特定span选择器:
是prompt的第k个query,是预训练语言模型的输出。
为数据集D中的每个事件类型e创建prompt集合,每个prompt包含所有角色。
例如在图2中,给定事件类型e为negotiate,角色集合为s {Participant, Topic, Place},prompt定义为:
将prompt中提到的角色称为slot,在这个例子中有四个slot有下划线,这样的设计允许模型捕获不同角色间的隐式交互。
为了避免对具有相同角色的多个论元进行阈值调优,prompt可以为相同的角色使用多个slot,例如上面示例中的角色Participant。角色的slot数是根据训练数据集中每个角色的最大论元数启发式地确定的。我们设计了三种不同的prompt creator ,从一组角色集合到prompt的映射如下:
手动模板(MA Template)。所有的角色都使用自然语言手动连接。
soft prompt(SF Prompt)。将不同的角色与可学习的、角色特定的伪token联系起来
连接模板(CA Template)。连接属于一个事件类型的所有角色名
在下表中给出了三种prompt类型的一个例子
一些手动模板
给定上下文X和prompt ,该模块为prompt的每个slot k生成特定于角色的span选择器,将基于transformer的预训练语言模型BART作为预训练语言模型,有编码器和解码器
首先将
并没有直接处理上下文和prompt Pt,而是将进入bart编码器,进入bart解码器
表示面向事件的上下文表示,表示面向上下文的prompt表示。对于第k个联合提示中的slot,我们从中平均池化了他的对应的表示并且获取了角色特征,其中h表示BART中隐藏层的维度。一个角色可能有多个slot和多个role feature以及多个span选择器。
我们在先前的基于QA的方法上采取了简单有效的改动,通过从提示中的每个角色特征中推导出特定的跨度选择器:
是所有角色之间共享的可学习参数,表示元素级乘法。是prompt中第k个slot的跨度选择器。由于只有一个meta-head θ和简单的操作,我们的方法可以生成任意数量的特定角色的span选择器去从上下文中抽取相关的论元。从提示中回顾角色特征的生成过程,很明显在这种范式下同时可以拥有不同角色之间的交互以及上下文和角色的聚合信息。
给定上下文表示和一组span选择器,每个的目标是从中最多提取相应的论元span。对于论元相关的,i和j是上下文中的开始和结束词索引,选择器被期望输出作为预测。若没有论元,(即上下文没有关于这个角色的论元或这个角色的slot数超过了论元数)它将输出表示空论元。
首先遵循第3.1节的prompt提取公式来计算被选择为每个角色特征的论元的开始和结束的token分布
其中和表示上下文中每个slot的的开始和结束位置的概率分布,L表示上下文的文本长度。
计算开始和结束位置的概率:
损失函数为:
其中D表示数据集中所有的文本,k表示提示中所有的slot。
二分图匹配的方法解决同一个role的argument的匹配问题。
如下图,首先要确保每个role的span 的坐标和ground truth要尽可能接近,也就是提取的词是对的
其次就是对于每个相同的role,预测的顺序可能和ground truth不一样,比如上图的Trump 和 Clinton。这里采用匈牙利算法进行匹配,预测的只要在ground truth中就认为是对的。
在推理阶段,事件参数的候选跨度集定义为。它包含所有小于阈值 l 的span,以及表示没有论元的特殊span(0,0)。我们的模型通过枚举和评分所有候选span来提取每个span选择器θk的论元,如下:
slot k的预测span为:
由于prompt中的每个slot最多可以预测一个span,因此该策略避免了详尽的阈值调优。
数据集
表2比较了我们的方法与所有基线模型,PAIE在所有数据集上都表现最好。
论文分享 Prompt for Extraction? PAIE: Prompting Argument Interaction for Event Argument Extraction - 知乎
Prompt for Extraction? PAIE:Prompting Arguement Interaction for Event Argument Extraction_hithithithithit的博客-CSDN博客
论文阅读:PAIE交互式prompt事件抽取_ChillingDream的博客-CSDN博客
关于prompt:一文轻松入门Prompt(附代码) - 知乎