paper:Document-level Event Extraction via Parallel Prediction Networks - ACL Anthology
code:HangYang-NLP/DE-PPN (github.com)
期刊/会议:ACL2021
当在整个文档中描述事件时,文档级事件抽取(DEE)是必不可少的。我们认为,句子级抽取器不适合DEE任务,其中事件论元总是分散在句子中,多个事件可能在文档中共存。这是一项具有挑战性的任务,因为它需要对文档的全面理解,以及跨多个句子汇总论元的综合能力。在本文中,我们提出了一种端到端模型,它可以以并行的方式从文档中抽取结构化事件。具体来说,我们首先引入文档级编码器来获得文档感知表示。然后,使用多粒度非自回归解码器来并行生成事件。最后,为了训练整个模型,提出了一个匹配损失函数,它可以引导全局优化。在广泛使用的DEE数据集上的经验结果表明,在具有挑战性的DEE任务中,我们的方法显著优于当前最先进的方法。
事件抽取(EE)的目标是从纯文本中识别预先指定类型的事件以及相应的论元。大量以前的研究聚焦在句子级事件抽取(SEE),而这些工作大多基于ACE评估。然而基于SEE的的方式预测在句子内部,不能抽取句子间的事件。为此,当事件信息散布在整个文档中时,需要文档级EE(DEE)。
与SEE相反,DEE有两个具体的挑战:论元分散和多事件。具体而言,论元分散表示事件的论元可能分散在多个句子中。例如,如图1所示,Event-1的论元分布在不同的句子中([S3]和[S7]),单个句子中的抽取将导致不完整的结果。因此,这一挑战要求DEE模型对整个文档有全面的理解,并能够收集所有句子间的相关论元信息。此外,如果再加上第二个挑战:多事件,即文档中包含多个事件,这将更加困难。如图1所示,文档中有两个事件Event-1和Event-2,事件类型相同,两个事件之间没有明显的文本边界。多事件问题要求DEE方法识别文档中包含的事件数量,并实现精确的论元组合(即,将论元分配给相应的事件)。由于这两种复杂性,SEE方法不适合DEE任务,该任务需要一个模型,该模型可以集成文档级信息,跨多个句子组合相关的论元,并同时捕获多个事件。
为了处理DEE中的这些挑战,先前的工作将DEE制定为事件表格填充任务,即将候选论元填充到预定义的事件表中。具体而言,他们将DEE建模为一个串行预测范式,其中论元以预定义的角色顺序预测,多个事件也以预定义的事件顺序抽取。这种方式仅限于抽取单个论元,前一种抽取不会考虑后一种抽取结果。结果,错误将会传播,并且抽取性能不令人满意。
在本文中,为了避免串行预测的不足并解决DEE中的上述挑战,我们提出了一个端到端模型,名为“通过并行预测网络的文档到事件”(Document-to-Events via Parallel prediction Network,DE-PPN)。DE-PPN基于编码器-解码器框架,该框架可以并行方式从整个文档中抽取结构化事件。详细地说,我们首先引入了一个文档级编码器来获得文档感知表示。通过这种方式,可以全面了解整个文档。然后,我们利用多粒度解码器来生成事件,它由两个关键部分组成:角色解码器和事件解码器。角色解码器设计用于处理论元分散挑战,它可以基于文档感知表示为事件组装论元。为了有效应对多事件的挑战,设计了一个事件解码器来支持生成多事件。两者都基于非自回归机制,该机制支持并行抽取多个事件。最后,为了将抽取的事件与真实标注进行比较,我们提出了一个受**匈牙利算法(Hungarian algorithm)**启发的匹配损失函数。所提出的损失函数可以通过计算预测事件和真实标注之间的二分匹配来执行全局优化。
总之,我们的贡献如下
在本节介绍我们提出的DEE方法之前,我们首先描述DEE的任务形式化。形式上,我们将TTT和RRR分别表示为预定义事件类型和角色类别的集合。给出一个文档D={Si}i=1NsD=\{ S_i \}_{i=1}^{N_s}D={Si}i=1Ns,包含NsN_sNs个句子,DEE的任务目的是抽取一个或者多个结构化事件Y={yi}i=1kY=\{ y_i \}_{i=1}^{k}Y={yi}i=1k,对于每一个事件yity_i^tyit,事件类型为ttt,该事件包含一系列的角色(ri1,ri2,...,rin)(r_i^1,r_i^2,...,r_i^n)(ri1,ri2,...,rin),被填充通过论元(ai1,ai2,...,ain)(a_i^1,a_i^2,...,a_i^n)(ai1,ai2,...,ain)。kkk是文档所包含的事件数量,nnn是事件类型ttt预定义好的角色数量,其中t∈Tt \in Tt∈T和r∈Rr \in Rr∈R。
我们提出的模型DE-PPN的关键思想是聚合文档级上下文以并行预测事件。图2说明了DE-PPN的体系结构,它由五个关键组件组成:(1)候选论元识别,(2)文档级编码器,(3)多粒度解码器,(4)事件预测,(5)匹配损失函数。
给出一个文档D={Si}i=1NsD=\{ S_i \}_{i=1}^{N_s}D={Si}i=1Ns,包含NsN_sNs个句子,每个带有标记序列的句子SiS_iSi首先嵌入为[wi,1,wi,2,...,wi,l][w_{i,1},w_{i,2},...,w_{i,l}][wi,1,wi,2,...,wi,l],其中lll是句子长度。然后,单词嵌入输入到编码器以获得上下文化的表示。在本文中,我们采用Transformer作为主要上下文编码器。通过编码器,我们可以获得句子SiS_iSi的上下文感知嵌入CiC_iCi:
Ci=Transformer−1(Si)C_i=Transformer-1(S_i) Ci=Transformer−1(Si)
其中Ci∈Rl×dC_i \in \R^{l \times d}Ci∈Rl×d,ddd代表隐藏层的大小,我们呈现被给文档的每一个句子向量为{Ci}i=1NS\{ C_i\}_{i=1}^{N_S}{Ci}i=1NS。
最后,在Zheng等人之后,我们将句子级候选论点识别建模为一个典型的序列标记任务。通过候选论元识别,我们可以从给定的句子SiS_iSi中获得候选论元A={ai}i=1NaA=\{ a_i\}_{i=1}^{N_a}A={ai}i=1Na,其中NaN_aNa是识别的候选论元的数量。
为了能够感知句子和候选论元的文档级上下文,我们使用了文档感知编码器来促进所有句子和候选论元之间的交互。形式上,给定一个论元aia_iai,其跨度覆盖句子SiS_iSi中的第jjj个到第kkk个,我们在token级嵌入[ci,j,…,ci,k]∈C[c_{i,j},…,c_{i,k}] \in C[ci,j,…,ci,k]∈C上进行最大池化运算,来获取本地嵌入cia∈Rdc_i^a \in \R^dcia∈Rd。同样,嵌入的句子cls∈Rdc_l^s \in \R^dcls∈Rd可以通过对句子SiS_iSi的token序列表示CiC_iCi的最大池化运算来获得。然后,我们使用Transformer模块Transformer-2作为编码器,通过多头自注意机制对所有句子和候选论元之间的交互进行建模。然后我们可以获得句子和论元的文档感知表示。注意,我们添加了带有句子位置嵌入的句子表示,以告知句子顺序,然后将它们输入到Transformer-2。
[Ha;Hs]=Transformer−2(c1a...cNaa;c1s...cNss)[H^a;H^s]=Transformer-2(c_1^a ... c_{N_a}^a;c_1^s ... c_{N_s}^s) [Ha;Hs]=Transformer−2(c1a...cNaa;c1s...cNss)
由于论元在文档中可能有很多提及,我们利用最大池化操作将具有相同字符级token的多个论元嵌入合并到单个嵌入中。在文档级编码阶段之后,我们可以获得文档感知句子表示Hs∈RNs×dH^s \in \R^{N_s \times d}Hs∈RNs×d和候选论元A′={ai}i=1Na′A'=\{ a_i\}_{i=1}^{N_a'}A′={ai}i=1Na′,表示Ha∈RNa′×dH^a \in \R^{N_a' \times d}Ha∈RNa′×d。
在解码之前,我们通过在HsH^sHs上操作最大池来对每个事件类型进行二分类,从而在文档表示上堆叠线性分类器。然后,对于具有预定义角色类型的预测事件类型ttt,DE-PPN学习根据文档感知候选论元表示Ha∈RNa′×dH^a \in \R^{N_a' \times d}Ha∈RNa′×d,句子表示Hs∈RNs×dH^s \in \R^{N_s \times d}Hs∈RNs×d。
为了有效地解决DEE中的论元分散和多事件,我们引入了多粒度解码器,以基于文档感知表示(HaH^aHa和HsH^sHs)并行生成所有可能的事件。多粒度解码器由三部分组成:事件解码器、角色解码器和事件到角色解码器。所有这些解码器都基于非自回归机制,该机制支持并行抽取所有事件。
事件解码器。事件解码器被设计为支持并行抽取所有事件,并用于对事件之间的交互进行建模。在解码阶段之前,解码器需要知道要生成的事件的大小。我们使用mmm个可学习嵌入作为事件解码器的输入,这些嵌入表示为事件查询Qevent∈Rm×dQ^{event} \in \R^{m×d}Qevent∈Rm×d。mmm是表示所生成事件的数量的超参数。在我们的工作中,mmm被设置为明显大于文档中事件的平均数量。然后,事件查询嵌入QeventQ^{event}Qevent被输入到非自回归解码器,该解码器由NNN个相同的Transformer层的堆栈组成。在每一层中,有一个多头自注意力机制来模拟事件之间的交互,还有一个多头交叉注意力机制来将文档感知句子表示HsH^sHs(这里好像是原文写错了)集成到事件查询QeventQ^{event}Qevent中。形式上,mmm个事件查询通过以下方式解码为mmm个输出嵌入HeventH^{event}Hevent:
Hevent=Event−Decoder(Qevent;Hs)H^{event}=Event-Decoder(Q^{event};H^s) Hevent=Event−Decoder(Qevent;Hs)
其中Hevent∈Rm×dH^{event} \in \R^{m \times d}Hevent∈Rm×d。
角色解码。角色解码器被设计为支持并行填充事件中的所有角色,并对角色之间的交互进行建模。作为预测事件类型ttt具有语义角色类型(r1,r2,...,rn)(r_1,r_2,...,r_n)(r1,r2,...,rn),我们使用nnn个可学习嵌入作为角色解码器的输入,其表示为事件查询Qrole∈Rn×dQ^{role} \in \R^{n×d}Qrole∈Rn×d。然后,角色查询嵌入QroleQ^{role}Qrole被输入到解码器,解码器具有与事件解码器相同的架构。具体而言,自注意机制可以建模角色之间的关系,而交叉注意里机制可以融合文档感知候选论元表示HaH^aHa的信息。形式上,通过以下方式将nnn个角色查询解码为nnn个输出嵌入HroleH_{role}Hrole:
Hrole=Role−Decoder(Qrole;Ha)H^{role}=Role-Decoder(Q^{role};H^a) Hrole=Role−Decoder(Qrole;Ha)
其中Hrole∈Rn×dH^{role} \in \R^{n \times d}Hrole∈Rn×d。
事件到角色的解码器。为了为不同的事件查询生成具有相关论元的多样化事件,设计了一个事件到角色解码器,以对事件查询HeventH^{event}Hevent和角色查询HroleH^{role}Hrole之间的交互进行建模:
He2r=Event2Role−Decoder(Hrole;Hevent)H^{e2r}=Event2Role-Decoder(H^{role};H^{event}) He2r=Event2Role−Decoder(Hrole;Hevent)
其中He2r∈Rm×n×dH^{e2r} \in \R^{m \times n \times d}He2r∈Rm×n×d。
在多粒度解码之后,mmm个事件查询和nnn个角色查询被转换为mmm个预测事件,每个预测事件都包含nnn个角色嵌入。为了过滤假事件,mmm个事件查询HeventH^{event}Hevent被馈送到前馈网络(FFN),以判断每个事件预测是否为非空或空。具体而言,预测事件可通过以下方式获得:
pevent=softmax(HeventWe)p^{event}=softmax(H^{event}W_e) pevent=softmax(HeventWe)
其中,We∈Rd×2W_e \in \R^{d \times 2}We∈Rd×2是可学习的参数。
然后,对于具有预定义角色的每个预测事件,通过用(Na′+1)(N_a'+1)(Na′+1)类分类器填充候选索引或空值来解码预测论元:
Prole=softmax(tanh(He2rW1+HaW2)⋅v1)P^{role}=softmax(tanh(H^{e2r}W_1+H^aW_2) \cdot v_1) Prole=softmax(tanh(He2rW1+HaW2)⋅v1)
其中W1∈Rd×dW_1 \in \R^{d \times d}W1∈Rd×d,W2∈Rd×dW_2 \in \R^{d \times d}W2∈Rd×d,v1∈Rdv_1 \in \R^dv1∈Rd是可学习的参数,其中Prole∈Rm×n×(Na′+1)P^{role} \in \R^{m \times n \times(N_a' +1)}Prole∈Rm×n×(Na′+1)。
在预测网络之后,我们可以获得mmm个事件Y^=(Y^1,Y^2,..,Y^m)\hat Y=(\hat Y_1,\hat Y_2,..,\hat Y_m)Y^=(Y^1,Y^2,..,Y^m),其中每个事件Y^=(Pi1,Pi2,...,Pin)\hat Y =(P_i^1,P_i^2,...,P_i^n)Y^=(Pi1,Pi2,...,Pin)包含nnn个具有角色类型的预测论元。其中Pij=Prole[i,j,:]∈R(Na′+1)P_i^j=P^{role}[i,j,:] \in \R^{(N_a'+1)}Pij=Prole[i,j,:]∈R(Na′+1)。
训练的主要问题是如何将具有一系列论元的预测mmm事件分配给真实标注的kkk事件。受运筹学中分配问题的启发,我们提出了一种匹配损失函数,它可以在预测事件和真实事件之间产生最优二分匹配。
形式上,我们将分别将预测事件表示为Y^=(Y^1,Y^2,...,Y^m)\hat Y=(\hat Y_1,\hat Y_2,...,\hat Y_m)Y^=(Y^1,Y^2,...,Y^m)和真实标注事件为Y=(Y1,Y2,...,Yk)Y=(Y_1,Y_2,...,Y_k)Y=(Y1,Y2,...,Yk)。其中,kkk是文档中真实事件的数量,mmm为生成事件的固定大小。注意,k≤mk \le mk≤m,第iii个预测事件表示为Y^i=(Pi1,Pi2,...,Pin)\hat Y_i=(P_i^1,P_i^2,...,P_i^n)Y^i=(Pi1,Pi2,...,Pin),PijP_i^jPij将被计算通过公式7。第iii个正确标注的事件为Yi=(ri1,ri2,...,rin)Y_i=(r_i^1,r_i^2,...,r_i^n)Yi=(ri1,ri2,...,rin),rijr_i^jrij是第iii个目标事件的第jjj个候选论元的类型。
为了找到这两个集合之间的二分匹配,我们搜索具有最低成本的mmm个元素的置换:
σ^=argmaxσ∈∏(m)∑imCmatch(Y^σ(i),Yi)\hat \sigma =\mathop {argmax} \limits_{\sigma \in \prod {(m)}} \sum_i^m C_{match}(\hat Y_{\sigma(i)},Y_i) σ^=σ∈∏(m)argmaxi∑mCmatch(Y^σ(i),Yi)
其中,∏(m)\prod (m)∏(m)是长度为mmm的置换空间,Cmatch(Y^σ(i),Yi)C_{match}(\hat Y_{\sigma(i)},Y_i)Cmatch(Y^σ(i),Yi)表示真实标签yiy_iyi和预测结果Y^σ(i)\hat Y_{\sigma(i)}Y^σ(i)的第σ(i)\sigma(i)σ(i)索引的成对匹配损失。通过考虑事件中角色的所有预测论元,我们将Cmatch(Y^σ(i),Yi)C_{match}(\hat Y_{\sigma(i)},Y_i)Cmatch(Y^σ(i),Yi)定义为:
Cmatch(Y^σ(i),Yi)=−I{judgei≠∅}∑j=1nPσ(i)j(rij)C_{match}(\hat Y_{\sigma(i)},Y_i)=-\rm I_{\{judge_i \ne \empty \} } \sum_{j=1}^n P_{\sigma(i)}^j (r_i^j) Cmatch(Y^σ(i),Yi)=−I{judgei=∅}j=1∑nPσ(i)j(rij)
其中judgeijudge_ijudgei是由等式6计算的事件iii为非零或零的判断。用匈牙利算法可以有效地计算最优分配σ(i)\sigma (i)σ(i)。然后,对于在上一步骤中匹配的所有对,我们将负对数似然的损失函数定义为:
L(Y^,Y)=∑i=1mI{judgei≠∅}[∑j=1n−logPσ^(i)j(rij)]L(\hat Y,Y)=\sum_{i=1}^m \rm I_{\{judge_i \ne \empty \} } [\sum_{j=1}^n -log P_{\hat \sigma(i)}^j (r_i^j)] L(Y^,Y)=i=1∑mI{judgei=∅}[j=1∑n−logPσ^(i)j(rij)]
其中,σ^\hat \sigmaσ^将被计算通过公式8。
在训练过程中,我们在解码之前使用预处理步骤对事件预测的匹配损失求和如下:
Lall=λ1Lsee+λ2Lec+λ3L(Y,Y^)L_{all}=\lambda_1 L_{see}+\lambda_2 L{ec}+\lambda_3 L(Y,\hat Y) Lall=λ1Lsee+λ2Lec+λ3L(Y,Y^)
其中LaeL_{ae}Lae和LecL_{ec}Lec分别是句子级候选论点识别和事件类型分类的交叉熵损失函数。λ1\lambda_1λ1、λ2\lambda_2λ2和λ3\lambda_3λ3是超参数。
在本节中,我们提出了实证研究来回答以下问题:
数据集。ChFinANN dataset:https://github.com/dolphin-zs/Doc2EDAG/blob/master/Data.zip
评价指标。Precsion、Recall、F1-measure。
详细的设置。对于作为输入的文档,我们将最大句子数和最大句子长度分别设置为64和128。我们采用了常见的Transformer,每层有768个隐藏单元和8个注意力头,作为编码器和解码器架构。在训练期间,我们使用AdamW优化器,学习率为1e-5,batch_size大小为16。测试集性能由100个epoch内的最佳开发集性能步骤选择。我们在附录中留下了详细的超参数和其他结果。
DCFEE:DCFEE-O、DCFEE-M
Doc2EDAG:GreedyDec、Doc2EDAG
DE-PPN:DE-PPN、DE-PPN-1
论元离散程度。arguments-scattering ratio(ASR)
ASR=Numments/NumargsASR=Num_{ments}/Num_{args} ASR=Numments/Numargs
NummentsNum_{ments}Numments是事件提及的数量、NumargsNum_{args}Numargs是论元的数量。ASRASRASR表示事件中论元越离散。表3展现了不同离散率的识别结果。
单事件和多事件效果对比。如表2所示。
为了研究多粒度解码器的重要性,我们探讨了事件解码器和角色解码器的不同层对结果的影响。具体地,解码器层的数量被设置为0、1、2、3和4,其中0表示移除该解码器。1) 不同事件解码器层的效果如图3左侧所示,当层数设置为2时,我们的方法可以获得最佳的平均F1分数。我们推测,非自回归解码器的更多层可以更好地建模事件查询之间的交互并生成多样化的事件。然而,当层设置为较大时,很容易生成冗余事件。2)不同角色解码器层的效果如图3右侧所示,我们可以观察到解码器层越多,结果的性能越好。我们推测,具有更多自我关注模块的解码器的更多层允许更好地建模事件角色之间的关系,而更多相互关注模块允许将候选论元的信息集成到角色中。
对于DE-PPN的训练和测试过程,生成事件的数量是一个重要的超参数。在本节中,我们将探讨设置不同数量的生成事件对结果的影响。我们将开发集分为5个子类,每个类包含1、2、3、4和>5个事件。表5显示了开发集中具有不同标注事件的文档的统计信息。为了验证生成事件的数量对性能的影响,我们使用不同数量的生成事件来评估DE-PPN:1、2、5、10,分别命名为DE-PPN-1、DE-PPN-2、DE-PPN-5和DE-PPN-10。图4显示了不同生成事件的DE-PPN结果,并与SOTA模型Doc2EDAG进行了比较。我们可以观察到,随着事件数量的增加,事件预测变得更加困难,这可以反映在所有绩效的下降上。一般来说,当生成的集合数设置为5时,DE-PPN在F1平均得分上几乎达到最佳性能。此外,当文档中标注的事件数大于2时,Doc2EDAG与我们的方法DE-PPN之间存在性能差距。这也证明了我们提出的并行解码器可以更好地处理DEE中的多事件挑战。
EE中的大多数工作都集中在句子层面,并基于基准数据集ACE 2005。许多方法被提出来提升该任务的效果。这些研究主要基于手工设计的特征和基于神经的自动学习特征。有几种方法在单个句子之外做出抽取决策。Ji和Grishman以及Liao和Grishmann使用事件类型共现模式进行事件检测。Yang和Mitchell引入了事件结构,以联合抽取文档中的事件和实体。尽管这些方法在句子边界之外做出决定,但它们的抽取仍然在句子层面上进行。
许多真实世界的应用程序需要DEE,其中事件信息分散在整个文档中。MUC-4提出了MUC-4模板填充任务,该任务旨在从文档中识别具有关联角色类型的事件角色填充者。最近的工作通过手动设计的语言特征或基于神经的上下文表示来探索局部和附加上下文以抽取角色填充符。最近,Ebner等人发布了跨多句角色(RAMS)数据集,该数据集包含多句论元链接任务的标注。提出了一种两步方法,通过检测跨句子的隐式论点来进行论元链接。Li等人扩展了该任务,并编译了一个新的基准数据集 WIKIEVENTS,用于探索文档级论元抽取任务。然后,Li等人提出了一种基于条件文本生成的端到端神经事件论元抽取模型。然而,这些工作专注于DEE的子任务(即角色填充符抽取或论元抽取),而忽略了多事件的挑战。
为了同时解决DEE的两个挑战(即论元分散和多事件),先前的工作集中于ChFinAnn数据集,并将DEE建模为事件表填充任务,即将候选论元填充到预定义的事件表中。Yang等人提出了一种关键事件检测,以指导事件表,该表中填充了来自关键事件提及和周围句子的参数。Zheng等人(2019)通过基于实体的路径扩展,将DEE转换为按照预定义的角色顺序填充事件表,从而实现了DEE的SOTA。然而,这些方法受到串行预测的影响,这将导致错误传播和单个论元预测。
在本文中,我们提出了一种编码器-解码器模型DE-PPN,用于从文档中并行抽取事件。为了解决DEE中的挑战(即论元分散和多事件),我们引入了文档级编码器和多粒度解码器,以生成与文档感知表示并行的事件。为了训练并行网络,我们提出了一个匹配损失函数来执行全局优化。实验结果表明,DE-PPN可以显著优于SOTA方法,尤其是在DEE中面临的特定挑战。
上一篇: 四年级下册英语教学计划
下一篇: 九年级英语教学计划