Event Extraction by Answering (Almost) Natural Questions论文解读

Event Extraction by Answering (Almost) Natural Questions

code:xinyadu/eeqa: Event Extraction by Answering (Almost) Natural Questions (github.com)

paper:[2004.13625] Event Extraction by Answering (Almost) Natural Questions (arxiv.org)

期刊/会议:EMNLP2020

摘要

事件抽取问题需要检测事件触发词并抽取其相应的论元。事件论元抽取中的现有工作通常严重依赖于作为预处理/并发步骤的实体识别,这导致了众所周知的错误传播问题。为了避免这个问题,我们引入了一个新的事件抽取范式,将其表述为以端到端方式抽取事件论元的问答(QA)任务。实证结果表明,我们的框架显著优于现有方法;此外,它还能够为在训练时(即在零样本学习设置中)看不到的角色抽取事件论元。

1、简介

事件提取是信息提取(IE)中一项长期研究且具有挑战性的任务。它的目标是从非结构化文本中提取结构化信息——“正在发生的事情”以及涉及的人员/对象。该任务通过图1中的一个示例进行了说明,该示例描述了一个所有权转移(ownership transfer)事件(事件类型),由单词“sale”(事件触发词)触发,并附带其提取的论元-文本跨度表示填充与事件类型相关联的一组(语义)角色的实体(例如,所有权转移事件的Buyer,Seller,Artifact)。

最近成功的事件抽取方法得益于神经模型提取的密集特征以及来自预训练语言模型的上下文语意表示。

然而,这些方法显示出两个关键弱点。首先,它们严重依赖实体信息进行论元抽取。特别是,事件论元抽取通常由两个步骤组成——首先使用经过训练的模型或解析器识别实体及其通用语义类,然后为每个实体分配论元角色(或不分配角色)。尽管已经提出了联合模型来缓解这一问题,但错误传播仍然发生在事件论元抽取过程中。

事件抽取的神经网络方法的第二个弱点是它们无法利用事件类型中相关论点角色的相似性。例如,ACE 2005 conflict.attack 事件和 justice.execute 事件分别具有Target和Person 论元角色。然而,这两个角色都是指受某一行为影响的人。忽略相似性可能会影响表现,尤其是对于在训练时很少/没有例子的辩论角色中的零样本设置。

在本文中,我们为事件抽取任务提出了一种新的范式——将其表述为问答(QA)/机器阅读理解(MRC)任务(贡献1)。总体框架如图2所示。使用BERT做基础模型去获得输入序列的上下文表示。我们开发了两个BERT-base的QA模型——一个用于事件触发词检测,另一个用于论元抽取。对于每一个,我们设计一个或多个问题模板,将输入句子映射到标准BERT输入格式。因此,触发词检测成为识别输入句子中的“动作”或“动词”并确定其事件类型的请求;论元抽取成为一系列请求,以识别事件的论元,每个论元都是输入句子中的文本跨度。详细信息将在第2节中解释。据我们所知,这是将事件提取作为QA任务的第一次尝试。

将事件抽取作为QA处理克服了上述现有方法中的弱点(贡献2):(1)我们的方法不需要实体标注(正确标注或预测的实体信息),也不需要实体识别作为前步骤;事件论元抽取作为端到端任务执行;(2) 问答范式自然允许在语义相关的论元角色之间传递论点抽取知识。我们为模板创建提出了基于规则的问题生成策略(包括将描述纳入标注指南),并进行了广泛的实验,以评估我们在自动内容提取(ACE)事件抽取任务上的框架,并根据经验表明,触发词和论元抽取的性能都优于现有方法(第3.2节)。最后,我们展示了我们的框架扩展到零样本设置——它能够提取不可见角色的事件论元(贡献3)。

2、方法

在本节中,我们首先提供框架的概述(图2),然后深入了解其组件的细节:模板创建的问题生成策略,以及QA模型的训练和推理。

2.1 框架总览

我们的事件抽取QA框架依赖于两组问题模板,将输入句子映射到标准预训练双向 transformer 的两个实例的适当输入序列(BERT)。其中第一个是BERT_QA_Trigger(图2中的绿色框),它从输入语句中抽取事件触发词,该事件触发词是一个token,其类型(一组固定的预定义事件类型之一)。第二个QA模型BERT_QA_Arg(图2中的橙色框)应用于输入序列、提取的事件触发词及其事件类型,以迭代识别输入句子中的候选事件论元数,并且仅保留概率高于阈值的论元。

两个QA模型的输入序列共享标准BERT格式:

[ C L S ]   < q u e s t i o n >   [ S E P ]   < s e n t e n c e > [ S E P ] [CLS] \ <question> \ [SEP] \ <sentence> [SEP] [CLS] <question> [SEP] <sentence>[SEP]

其中[CLS]是BERT的特殊分类token,[SEP]是特殊的分隔token, 是输入的句子token序列。我们在第2.2节中提供了有关如何获得的详细信息。关于QA模型和推理过程的详细信息将在第2.3节中解释。

2.2 问题生成策略

为了使我们基于QA的事件抽取框架能够轻松地从一个领域迁移到另一个领域,我们专注于开发问题生成策略,这些策略不仅适用于事件抽取任务,而且可以快速轻松地实现。对于事件触发词检测,我们使用一组四个固定模板进行实验——“触发词是什么”、“触发词”、“动作”、“动词”。基本上,我们使用固定的常见短语作为问题。例如,如果我们选择“action”模板,图1和图2中示例语句的输入序列被实例化为:

[ C L S ]   a c t i o n   [ S E P ]   A S   p a r t   o f   t h e   11 − b i l l i o n − d o l l a r   s a l e . . .   [ S E P ] [CLS] \ action \ [SEP] \ AS \ part \ of \ the \ 11-billion-dollar \ sale ... \ [SEP] [CLS] action [SEP] AS part of the 11billiondollar sale... [SEP]

对于事件论元抽取,我们设计了三个模板,分别包含论元角色名称、基于基础论元的问题和基于标注准则的问题:

Template 1(role name):对于这个模板,< question >只是用论元角色名称(例如,工件、代理、位置)实例化。

Template 2(type + role):我们不直接使用论元角色名称(< rolename >)作为问题,而是首先确定论元角色的一般语义类型-人、地点、其他;并构建相关的“WH”单词问题——who for person、where for place 以及what for all other cases,形式如下:

< W H _ w o r d >   i s   t h e   < r o l e   n a m e > <WH\_word> \ is \ the \ <role \ name> <WH_word> is the <role name>

表1显示了事件类型 Movement.Transport 的论元示例。通过添加 WH 单词,与模板1相比,包含了更多的语义信息。

Template 3 (Incorporating Annotation Guidelines) 为了融入更多的语义信息并使问题听起来更自然,我们利用ACE事件标注指南中提供的每个论元角色的描述来生成问题。

+“in < trigger >” 最后,对于每个模板类型,可以通过在问题末尾添加“in<trigger>”来编码触发信息(其中<trigger>是用从触发词检测阶段获得的真实触发token实例化的)。例如,包含触发词信息的模板2问题是:

< W H _ w o r d >   i s   t h e   < a r g u m e n t >   i n   < t r i g g e r > ? <WH\_word> \ is \ the \ <argument> \ in \ <trigger>? <WH_word> is the <argument> in <trigger>?

为了更好地理解上述所有策略,表1提供了一个事件类型 Movement.Transport 的论元角色示例。我们看到,基于标注准则的问题比简单的 Type+Role question “what is the artifact?”更自然,并且编码了关于给定论元角色的更多语义。

2.3 问题回答模型

我们使用BERT作为获得BERT_QA_Trigger和BERT_QA_Arg输入序列的上下文化表示的基础模型。使用问题模板实例化后,序列的格式为 [CLS] < question > [SEP] < sentence > [SEP] 。

然后,我们使用 B E R T T r , B E R T A r g BERT_{Tr},BERT_{Arg} BERTTr,BERTArg用于获取触发词检测和论元抽取的每个token的上下文表示。对于为触发词检测的输入序列 ( e 1 , e 2 , . . . , e N ) (e_1,e_2,...,e_N) (e1,e2,...,eN)
E = [ e 1 , e 2 , . . . , e N ] e 1 , e 2 , . . . , e N = B E R T T r ( e 1 , e 2 , . . . , e N ) E=[e_1,e_2,...,e_N] \\ e_1,e_2,...,e_N=BERT_{Tr}(e_1,e_2,...,e_N) E=[e1,e2,...,eN]e1,e2,...,eN=BERTTr(e1,e2,...,eN)
对于输入句子序列 ( a 1 , a 2 , . . . , a M ) (a_1,a_2,...,a_M) (a1,a2,...,aM)进行论元跨度抽取:
A = [ a 1 , a 2 , . . . , a M ] a 1 , a 2 , . . . , a M = B E R T A r g ( a 1 , a 2 , . . . , a M ) A=[a_1,a_2,...,a_M] \\ a_1,a_2,...,a_M=BERT_{Arg}(a_1,a_2,...,a_M) A=[a1,a2,...,aM]a1,a2,...,aM=BERTArg(a1,a2,...,aM)
然而,每个QA模型的输出层都是不同的:BERT_QA_Trigger预测句子中每个token的事件类型(如果不是事件触发词,则为None),而BERT_QA_Arg使用不同的解码策略预测论元跨度的开始和结束偏移量。

更具体地说,对于触发词预测,我们引入了一个新的参数矩阵 W t r ∈ R H × T W_{tr} \in \R^{H \times T} WtrRH×T,其中 H H H是transformer的隐藏层大小, T T T是事件类型的数量加1(对于非触发词token)。在 T T T类型上应用softmax归一化以产生 P t r P_{tr} Ptr,即在事件类型上的概率分布:
P t r = s o f t m a x ( E W t r ) ∈ R T × N P_{tr}=softmax(EW_{tr}) \in \R^T \times N Ptr=softmax(EWtr)RT×N
在测试时,为了进行触发检测,为了获得每个token e 1 , e 2 , … , e N e_1,e_2,…,e_N e1,e2,,eN的类型,我们只需将 argmax 应用于 P t r P_{tr} Ptr

对于论元跨度预测,我们引进了两个新的参数矩阵 W s ∈ R H × 1 , W e ∈ R H × 1 W_s \in \R^{H \times 1},W_e \in \R^{H \times 1} WsRH×1,WeRH×1;然后在输入token a 1 , a 2 , … , a M a_1,a_2,…,a_M a1a2,,aM上应用softmax归一化,以产生每个token被选择为论元跨度的开始/结束的概率:
P s ( i ) = s o f t m a x ( a i W s ) P e ( s ) = s o f t m a x ( a i W e ) P_s(i)=softmax(a_i W_s) \\ P_e(s)=softmax(a_i W_e) Ps(i)=softmax(aiWs)Pe(s)=softmax(aiWe)
为了训练模型(BERT_QA_Trigger和BERT_QA_Arg),我们最小化了两个模型的负对数似然损失,在训练过程中更新了参数。特别是,论元抽取模型的损失是两个部分的总和:开始 token 损失和结束 token 我们最小化序列的第一个标记([CLS])的开始和结束概率。
L a r g = L a r g _ s t a r t + L a r g _ e n d L_{arg}=L_{arg\_start}+L_{arg\_end} Larg=Larg_start+Larg_end
论元跨度的动态阈值推理 在测试时,预测论元跨度更为复杂——对于每个论元角色,可以提取几个跨度,也可以不提取跨度。在输出层之后,我们有每个token a i ∈ ( a 1 , a 2 , . . . , a M ) a_i \in (a_1,a_2,...,a_M) ai(a1,a2,...,aM)是论元跨度的开始( P s ( i ) P_s(i) Ps(i))和结束( P e ( i ) P_e(i) Pe(i))。

首先,我们运行算法来获取每个论元角色的所有有效论元跨度候选(算法1)。基本上,我们:

  1. 列举论元跨度(第1-2行)的开始偏移(start)和结束偏移(end)的所有可能组合;
  2. 消除不满足约束的跨度:开始和结束标记必须在句子内;跨度长度应小于最大长度限制;论元跨度的概率应大于“无论元”(存储在[CLS] token中)的概率(第3-5行);
  3. 计算候选跨度的相对无答案分数(no_ans_score),并将候选论元跨度添加到列表中(第6-8行)。

然后我们运行另一个算法来过滤掉不应该包含的候选论元(算法2)。更具体地说,我们获得了一个概率阈值(best_thresh),该阈值有助于在开发集上获得最佳评估结果(第1–9行),并且只保留no_ans_score小于阈值的论元(第10–13行)。使用动态阈值来确定要为每个角色抽取的论元数量,我们避免为此添加超参数。

获得最终论元预测的另一种更简单的方法是直接包含no_ans_score<0的所有候选,这不需要调整动态阈值best_thresh。

3、实验

3.1 数据集和评价指标

数据集:ACE 2005

评价指标:Precision、Recall、F1-score

3.2 结果

基准模型:dbRNN、Joint3EE、GAIL、DYGIE++、OneIE

评估在ACE事件抽取上 ,表二表三展示了各种模型的效果和消融实验的结果。

评估在不可见的论元角色上 为了验证我们的框架如何为提取具有不可见的论证角色的论证提供优势(类似于Levy等人中的零样本关系抽取设置),我们进行了另一个实验,其中我们保持80%的论元角色(16个角色)在训练时可见,20%(6个角色)仅在测试时可见。具体来说,看不见的角色是“车辆、物品、目标、受害者、接受者、购买者”。请注意,在训练过程中,我们使用训练集中的句子子集,这些句子已知包含所看到角色的论元作为积极的例子。在测试时,我们评估测试集句子子集上的模型,其中包含未知角色的论元。表5给出了结果。

4、更长远地分析

4.1 问题模板的影响

为了研究问题生成策略如何影响事件抽取的性能,我们分别使用不同的策略对触发词和论元抽取进行了实验。

在表6中,我们尝试了不同的触发词检测固定问题。“leaving empty”意味着用空字符串实例化问题。不同的替代方案之间没有实质性的差距。通过使用“verb”作为问题,我们的BERT_QA_Trigger模型实现了最佳性能(以F1分数衡量)。QA模型还编码了固定问题(“verb”)和句子之间的语义交互,这解释了BERT_QA_Trigger在触发词检测方面优于BERT FineTune的原因。

用于论元抽取的不同问题生成策略之间的比较是更加有趣的。在表4中,我们两种设置的结果:带有预测触发词的事件论元抽取(相同的设置在表3中),正确的触发词的事件论元抽取。总结来说,我们发现:

在问题后面添加“in<trigger>”可以持续提高性能。它用作输入句子中触发词所在位置的指示器。如果不添加“in<trigger>”,对于每个模板(1、2和3),当给定预测触发词时,模型预测的F1下降约3%,当给定正确触发词时,F1下降更多。

我们的模板3提问策略是最自然的,可获得最佳表现。正如我们前面提到的,模板3问题基于标注指南中对论元角色的描述,因此编码了关于角色名称的更多语义信息。这与模型预测的准确性相对应——模板3在“in<trigger>”和“in<trigger>”设置中都比模板1和2更有效。此外,我们观察到模板2(添加WH_word以形成问题)比模板1(直接使用论元角色名称)获得更好的性能。

4.2 错误分析

我们进一步进行了误差分析,并提供了一些有代表性的例子。表7总结了触发词检测和论元抽取的错误统计信息。

对于事件触发词,大多数错误与丢失或虚假预测有关,只有8.29%涉及错误分类的事件类型(例如,ELECT事件被误认为是START-POSITION事件)。对于事件论点,对于标准数据中至少包含一个事件的句子,我们的框架仅提取了大约14%的案例中的更多论元。大多数时候(54.37%),我们的框架提取的论元比它应该提取的少;这对应于表3中的结果,其中我们的模型的精度更高。在大约30%的情况下,我们的框架提取了与标准数据相同数量的论元,其中几乎一半与正确论元完全匹配。

在检查示例预测后,我们发现错误的原因主要可分为以下几类:

更复杂的句子结构 在下面的示例中,输入句子有多个子句,每个子句都有触发词和论元(例如当触发词是部分或省略的时候)。我们的模型还能够提取“Tom”作为联系人的另一个Entity。第一个示例中的 Contact.Meet 事件:

[ S h e ] e n t i t y   v i s t e d   t h e   s t o r e   a n d   [ T o m ] e n t i t y   d i d   t o o . [She]_{entity} \ visted \ the \ store \ and \ [Tom]_{entity} \ did \ too. [She]entity visted the store and [Tom]entity did too.

但是在第二个例子中,当嵌套子句中有一个高阶事件表示的跨越事件时,我们的模型没有正确提取整个 Victim,这表明了处理复杂子句结构的困难。

Canadian authorities arrested two Vancouver-area men on Friday and charged them in the deaths of [329 passengers and crew members of an Air-India Boeing 747 that blew up over the Irish Sea in 1985, en route from Canada to London] Victim.

缺乏对文档级上下文的推理 在句子“MCI must now seize additional assets owned by Ebbers, to secure the loan.” 中有一个由贷款引发的Transfer-Money 事件,MCI作为Giver,Ebbers作为Recipient。在前一段中,提到“Ebbers failed to make repayment of certain amount of money on the loan from MCI.” 如果没有这一背景,很难确定Ebbers是否应该是贷款的接受者。

缺乏获得论元范围准确边界的知识。···

数据和词汇稀疏性。···

5、相关工作

事件抽取:大多数事件提取研究都集中于2005年的自动内容提取(ACE)句子级事件任务。近年来,卷积神经网络和递归神经网络的连续表示已被证明通过自动提取特征大大有助于基于pipline的分类器。为了减轻错误传播的影响,已经提出了用于事件提取的联合模型。Yang和Mitchell考虑了事件和实体之间的结构依赖性,这需要大量的特征工程来捕获辨别信息。Nguyen和提出了一种多任务模型,通过共享Bi-GRU隐藏表示来执行实体识别、触发词检测和论元角色预测。Zhang等人利用基于神经网络翻译的抽取框架,这需要专门设计的转换动作。它仍然需要在解码期间识别实体,尽管实体识别和论元角色预测是联合完成的。

这些方法通常执行触发检测→ 实体识别→ 解码期间的论元角色分配。与上述工作不同,我们的框架完全绕过了实体识别阶段(因此不需要NER的标注资源),直接处理事件论元提取。与我们的工作相关的还有DYGIE++——它对实体/论元跨度(带有起始和结束偏移)进行建模,而不是使用BIO方案进行标记。与我们的工作不同,它的学习跨度表示后来被用于预测实体/论元类型。而我们的QA模型直接抽取某些论元角色类型的跨度。预训练语言模型产生的上下文表示已被证明有助于事件抽取和问题回答。注意力机制有助于捕获问题中的标记和输入序列标记之间的关系。我们在框架中使用BERT来捕获这些语义关系。

机器阅读理解(MRC):基于跨度的MRC任务涉及从一个段落或多个段落中提取跨度。最近,有关于将NLP任务作为问答问题来制定的探索。McCann等人提出了自然语言十项全能挑战(decaNLP),该挑战包括十项任务(例如,机器翻译、摘要、问题解答)。他们将所有任务都视为上下文中的问题回答,并为此提出了一个通用模型。在信息提取文献中,Levy等人提出了零样本关系提取任务,并将该任务简化为回答众包阅读理解问题。Li等人将实体关系提取作为多轮问答任务。他们的问题缺乏多样性和自然性。例如,对于PART-WHOLE关系,模板问题是“find Y that belongs to X”,其中X是用预先给定的实体实例化的。Li等人的命名实体识别后续工作提出了结合同义词和示例的更好的查询策略。与上面的工作不同,我们专注于更复杂的事件抽取任务,它涉及触发词检测和论元提取。我们生成的用于提取事件抽取的问题更加自然(包含标注指南中的描述),并利用触发词信息。

问答生成:为了生成更自然的问题模板2和3(基于Type+Role问题和标注准则的问题),我们从基于规则的自动问题生成的文献中获得了见解。Heilman建议使用基于语言的规则来选择WH单词(疑问句)。在从句子中生成问题的更一般情况下,答案短语可以是名词短语、介词短语或从句。复杂的规则是在超级标记器的帮助下设计的。在我们的例子中,事件论元大多是名词短语,规则更简单——“who”代表人,“where”代表地点,“what”代表所有其他类型的实体。我们从开发集中抽取了大约10个示例,以确定每个论元角色的实体类型。未来,研究如何利用基于机器学习的问题生成方法将是很有意思的。对于模式/本体包含大量参数类型的设置,它们会更有用。

6、总结

在本文中,我们介绍了一种基于问答的事件抽取新范式。我们研究了问题生成策略如何影响我们框架在触发词检测和论元跨度抽取方面的性能,并发现更自然的问题会导致更好的性能。我们的框架优于ACE 2005基准的先前工作,并且能够提取训练时未看到的角色的事件论元。对于未来的工作,尝试在我们的方法中纳入更广泛的背景(例如,段落/文档级别的背景),以提高预测的准确性。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trouble..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值