Prompt for Extraction? PAIE: Prompting Argument Interaction for Event Argument Extraction
发布于ACL2022
论文链接:https://aclanthology.org/2022.acl-long.466/
GitHub链接:https://github.com/mayubo2333/PAIE.
1. 主要内容
事件抽取问题可分为事件检测(Detectoin)和事件角色抽取(Argument Extraction)。其中事件倦色抽取问题是一个更难的问题。一段文本中可能有多个事件,一个事件中有多种语义角色,还可能有多个Argument对应同一个role。以如下事件模板为例
Participant communicated with Participant about Topic at Place.
这个事件中,有两个参与者,一个话题和一个地点。主流的prompt有两个方向,一个基于Cloze任务的,但是不太好处理变长的答案,而且在transformer前向传播中,这些MASK token并没有和context有很好的交互。第二个是基于生成式任务的,没有答案长度的问题,模板中直接将role的信息注入进去。但生成式方法对于处理长文本的生成效果并不是很好。其中一类QA的方法通过询问模型每个候选实体是否是argument的方式来进行抽取,效果虽然好但是效率很低。
而该文章提出了一个类似QA的方法,能够一次抽取出所有argument,同时用prompt注入任务信息,模板与原文本有良好的交互。
2. 方法
这篇文章也使用了encoder-decoder的架构,如上图:Encoder将输入的文本编码为
(这里已经做完了事件检测,触发词用特殊token夹在中间作为标识),在解码阶段解码两次,一次是只使用
进行解码得到
,另一次将构造的prompt模板注入解码得到
.
对于模板中每一个候选位置现在要预测对应哪一个区间,作者这里用的分别预测开头位置与结尾位置的方式,每个位置分数的计算公式为
其中从
中经过pooling得到的对应模板中第k个argument的表示,
是一个可学习的向量,用element-wise乘积的方式得到一个用于预测开头位置的表示,再和
作内积就得到了每个位置的分数。对于结束位置也是同理。之后作业还提出了一个二分图匹配的方法解决同一个role的argument的匹配问题,细节见论文。
3. 实验结果
提升相交之前的SOTA还是挺明显,不过22年是抽取工作最多的一年,和同期的方法比不知道会怎样。