【论文原文】:CLIO: Role-interactive Multi-event Head Attention Network for Document-level Event Extraction
【作者信息】:Ren, Yubing and Cao, Yanan and Fang, Fang and Guo, Ping and Lin, Zheng and Ma, Wei and Liu, Yi
论文:https://aclanthology.org/2022.coling-1.221.pdf
代码:-
博主关键词:事件抽取,对比学习,特征融合
将网络上的大量非结构化文本转换为结构化事件知识是NLP的一个关键但尚未解决的目标,特别是在处理文档级文本时。现有的方法在文档级事件抽取(DEE)中仍十分困难,因为它有两个内在的挑战:(a)嵌套论元,这意味着一个论元是另一个论元的子字符串。(b)多个事件,这表明我们应该确定多个事件并为它们集合论元。在本文中,我们提出了一个角色交互的多事件头注意力网络(CLIO)来共同解决这两个挑战。关键思想是将不同的事件映射到多个子空间(即多事件头)。在每个事件子空间中,我们将每个角色的语义表示为更接近其对应的论元,然后确定当前事件是否存在。为了进一步优化事件表示,我们提出了一种事件表示增强策略,将预训练的嵌入空间正则化,使其更加各向同性。我们在两个广泛使用的DEE数据集上的实验表明,CLIO比以前的方法取得了一致的改进。
文档级事件抽取(DEE)与SEE相比,文本长度的增加带来了更多的挑战,DEE仍然表现不佳。
最近,研究人员对DEE投入越来越多的经历。他们的工作可以大致分为基于分类的模型(Zhang et al, 2020; Xu et al, 2021; Huang and Jia, 2021; Huang and Peng, 2021),基于标记的模型(Yang et al, 2018; Du and Cardie, 2020),以及基于生成的模型(Li et al, 2021; Y ang et al, 2021; Du et al, 2021)。最先进的方法(Liu et al, 2021)将DEE框架为机器阅读理解任务,由两种数据增强机制辅助。尽管学者们在DEE方面做了很多有价值的尝试,但目前的方法在DEE方面仍然面临着以下关键的挑战:
嵌套论元:在文档中,有许多嵌套论元(即一个论元是另一个论元的子字符串),它们属于不同的角色。图1给出了一个例子。在Transportation
事件中,truck
(扮演着Origin
角色),Ryder truck
(扮演着Vehicle
角色),是一个嵌套事件论元。根据我们的统计,在WikiEvents (Li et al, 2021)和RAMS (Ebner et al, 2020)数据集中,分别有14.23%和13.94%的文档有嵌套论元。不幸的是,传统的基于标记的方法不能完全识别这些嵌套论元,这些方法不能为一个token分配多个标签。
多个事件:如图1所示,单个文档中有三种事件:Transportation
、ExchangeBuySell
和Meet
,DEE不仅应该标识所有事件,还应该为相应的事件分配论元。多个事件的问题在DEE中很常见(WikiEvents中86.88%的文档涉及多个事件)。更重要的是,这些事件的论元均匀地分散在句子中,很难实现准确的论点组合。以往的作品通常采用固定的文档表示来检测所有事件类型。但是,不同的事件类型有不同的角色和论元,文档表示的重点也应该不同。
对于通常属于不同角色的嵌套论元,直觉上我们应该为每个角色独立抽取论元。假设一个事件中有 N N N个角色,我们可以通过标记每个角色下的论元来执行 N N N个独立的抽取。这样可以同时识别角色Origin
的论元子串truck
和角色Vehicle
的论元Ryder truck
。要解决多个事件的挑战,一种直观的方法是独立检测每个事件类型并为其组装论元。对于一种事件类型,由于角色的减少,论元抽取可以更简单。相反,使用特定于此事件类型的角色信息可以更好地检测当前事件类型。我们认为,这两个挑战可以通过将每个事件类型映射到特定的子空间来共同解决。
类似于多头注意力(Vaswani et al, 2017),我们为DEE提出了一个角色交互的多事件头注意力网络(CLIO)。CLIO中最关键的部分是角色交互的多事件头注意力模块,它可以共同解决上述两个挑战。首先,我们的注意力模块以角色为中心的方式工作。也就是说,对于每个角色,我们独立地抽取其所有对应的论元。这样可以为一个token分配多个角色标签,很好地解决了论元嵌套的问题。其次,我们的注意力模块通过将每个事件类型映射到每个事件头来为每个事件类型分配子空间。通过这种方式,我们可以独立地检测每个事件类型并为其组装论元,这可以解决多个事件的挑战。在每个事件头中,我们使用特定于此事件的角色信息来表示文档。这种特定于事件的文档表示减轻了从单个文档检测多个事件的困难。
综上所述,我们的贡献如下:
我们首先描述了DEE的任务形式化。形式上,给定一个包含 m m m个单词 D = { w i } i = 1 m D = \{w_i\}^m_{i=1} D={wi}i=1m、预定义事件类型 T = { t i } i = 1 l T = \{t_i\}^l_{i=1} T={ti}i=1l和角色类别 R = { r i } i = 1 n R = \{r_i\}^n_{i=1} R={ri}i=1n的输入文档。DEE任务旨在抽取一个或多个事件记录: { text type : t , r 1 : [ a 1 1 , a 1 2 , … ] , … , r i : [ a i 1 , a i 2 , … ] } \{\text{text type}:t, r_1: [a^1_1, a^2_1,\ldots],\ldots, r_i: [a^1_i, a^2_i,\ldots]\} {text type:t,r1:[a11,a12,…],…,ri:[ai1,ai2,…]},其中 a i 1 a^1_i ai1是角色 r i r_i ri的第一个论元,依此类推。
图2说明了CLIO的体系结构,它由三个关键组件组成:(1)角色交互多事件头部注意,(2)多事件抽取,(3)事件表示增强。角色交互多事件头部注意模块可以同时解决嵌套论元和多个事件的挑战。
首先,我们通过连接文档 D D D和角色集 R R R来构造一个扩展序列 S = [CLS] D [SEP] R [SEP] S = \text{[CLS] } D \text{ [SEP] } R \text{ [SEP]} S=[CLS] D [SEP] R [SEP]。接下来,我们使用隐藏大小为 D D D的BERT (Devlin et al, 2019)来编码序列 S S S中每个单词的上下文嵌入:
[ H w , H r ] = BERT ( S ) (1) [H_w,H_r]=\text{BERT}(S) \tag{1} [Hw,Hr]=BERT(S)(1)
经过这一阶段,我们可以得到文档 H w ∈ R m × d H_w∈\mathbb{R}^{m×d} Hw∈Rm×d的词表示和角色表示 H r ∈ R n × d H_r∈\mathbb{R}^{n×d} Hr∈Rn×d。这一阶段对文档和角色通过多头和多层注意力进行了深度融合。
基于规范的显著性评分:直观地说,并不是文档中的每个单词都是重要的。因此,我们在词嵌入的l2范数的基础上,引入了基于范数的显著性评分来衡量词表达本质意义的能力。l2范数的这一特征已经被一些有前途的工作所证明(Luhn, 1958; Chen et al, 2020; Liu et al, 2020)。
我们使用词嵌入的l2范数作为它们的权重:
H w ′ = ∥ H w ∥ 2 ⊙ H w (2) H_w'=\parallel H_w \parallel_2 \odot H_w \tag{2} Hw′=∥Hw∥2⊙Hw(2)
其中 H w ′ ∈ R m × d H'_w∈\mathbb{R}^{m×d} Hw′∈Rm×d是加权的词嵌入, ⊙ ⊙ ⊙表示逐元素的乘法。
在这一步中,目标是同时解决嵌套论元和多个事件的挑战。我们比较了每种事件类型下的角色嵌入和词嵌入,并选择具有较高语义重叠的角色词对作为论元抽取结果。我们首先考虑单个事件类型,然后将其扩展到所有事件类型。
角色交互事件注意力:在每种事件类型中,我们测量每个角色-词对之间的关联程度。我们首先将单词和角色的原始 d d d维特征通过两个完全连接的层投射到更小的 d d d维中:
H ~ w = H w ′ W w + b w , H ~ r = H r W r + b r (3) \tilde{H}_w=H_w' W_w + b_w,\\ \tilde{H}_r=H_r W_r + b_r \tag{3} H~w=Hw′Ww+bw,H~r=HrWr+br(3)
W w ∈ R d × d ′ , b w ∈ R d ′ , W r ∈ R d × d ′ , b r ∈ R d ′ W_w \in \mathbb{R}^{d \times d'},b_w \in \mathbb{R}^{d'},W_r \in \mathbb{R}^{d \times d'},b_r \in \mathbb{R}^{d'} Ww∈Rd×d′,bw∈Rd′,Wr∈Rd×d′,br∈Rd′是可学习参数, H ~ w ∈ R m × d ′ , H ~ r ∈ R n × d ′ \tilde{H}_w \in \mathbb{R}^{m \times d'},\tilde{H}_r \in \mathbb{R}^{n \times d'} H~w∈Rm×d′,H~r∈Rn×d′。
然后,我们应用串联注意力(Luong et al, 2015)来衡量单词表征 H ~ w \tilde{H}_w H~w和角色表征 H ~ r \tilde{H}_r H~r之间的相关性程度。我们将 S t ( H ~ w , H ~ r ) S_t(\tilde{H}_w,\tilde{H}_r) St(H~w,H~r)表示为事件类型 t t t下角色-词对的相关强度矩阵:
S c o r e t ( H ~ w , H ~ r ) = tanh ( [ H ~ w ; H ~ r ] W a ) ⋅ v a , S t ( H ~ w , H ~ r ) = s i g m o i d ( S c o r e t ( H ~ w , H ~ r ) ) (4) Score_t(\tilde{H}_w,\tilde{H}_r)=\tanh ([\tilde{H}_w;\tilde{H}_r] W_a) \cdot v_a,\\ S_t(\tilde{H}_w,\tilde{H}_r)=sigmoid(Score_t(\tilde{H}_w,\tilde{H}_r)) \tag{4} Scoret(H~w,H~r)=tanh([H~w;H~r]Wa)⋅va,St(H~w,H~r)=sigmoid(Scoret(H~w,H~r))(4)
[ H ~ w ; H ~ r ] ∈ R m × n × 2 d ′ , W a ∈ R 2 d ′ × d , v a ∈ R d ′ [\tilde{H}_w;\tilde{H}_r] \in \mathbb{R}^{m \times n \times 2d'},W_a \in R^{2d' \times d},v_a \in \mathbb{R}^{d'} [H~w;H~r]∈Rm×n×2d′,Wa∈R2d′×d,va∈Rd′是可学习嵌入, S c o r e t ∈ R m × n , S t ∈ R m × n , t ∈ T Score_t \in \mathbb{R}^{ m \times n},S_t \in \mathbb{R}^{m \times n} , t\in T Scoret∈Rm×n,St∈Rm×n,t∈T。
多事件头注意力:我们对所有事件头并行执行上述角色交互事件注意力,这可以同时抽取多个事件。形式上,我们将所有事件类型下的角色交互事件注意堆叠到一个多事件头注意力 S T ( H ~ w , H ~ r ) ∈ R l × m × n S_T(\tilde{H}_w,\tilde{H}_r)∈\mathbb{R}^{l×m×n} ST(H~w,H~r)∈Rl×m×n,其中头部的数量 l l l是事件类型的大小。
对于DEE数据集,每个事件类型 t i t_i ti都有一个预定义的角色集 R t i R_{t_i} Rti。我们将其形式化为事件模式掩码 M M M(参见图3):
M t i , r j = { 1 , role r j in R t i 0 , role r j not in R t i (5) M_{t_i,r_j} =\left\{\begin{matrix} 1, & \text{role } r_j \text{ in } R_{t_i} \\ 0, & \text{role } r_j \text{ not in } R_{t_i} \end{matrix}\right. \tag{5} Mti,rj={1,0,role rj in Rtirole rj not in Rti(5)
通过事件模式掩码 M M M,我们减少每种事件类型下要预测的角色数量,为每种事件类型留下唯一的角色候选集,并在事件头之间进行区分。最终的多事件相关强度矩阵 S m u l t i ( H ~ w , H ~ r ) S^{multi}(\tilde{H}_w,\tilde{H}_r) Smulti(H~w,H~r)计算如下:
S m u l t i ( H ~ w , H ~ r ) = S T ( H ~ w , H ~ r ) ⊙ M (6) S^{multi}(\tilde{H}_w,\tilde{H}_r)=S_T(\tilde{H}_w,\tilde{H}_r) \odot M \tag{6} Smulti(H~w,H~r)=ST(H~w,H~r)⊙M(6)
S T ∈ R l × m × n , M ∈ R l × n , S m u l t i ∈ R l × m × n S_T \in \mathbb{R}^{l \times m \times n},M \in \mathbb{R}^{l \times n},S^{multi} \in \mathbb{R}^{l \times m \times n} ST∈Rl×m×n,M∈Rl×n,Smulti∈Rl×m×n。
事件论元抽取:最终的多事件相关强度矩阵 S m u l t i ( H ~ w , H ~ r ) S^{multi}(\tilde{H}_w,\tilde{H}_r) Smulti(H~w,H~r) (Eq. 6)包含每个角色-词对的概率。我们将概率大于阈值 δ E A E δ_{EAE} δEAE的角色-词对作为当前角色下的论元抽取结果。
我们使用预测和标准标签之间的交叉熵来优化我们的模型:
L E A E = C E ( S m u l t i , Y m u l t i ) (7) L_{EAE}=CE(S^{multi},Y^{multi}) \tag{7} LEAE=CE(Smulti,Ymulti)(7)
其中 Y m u l t i ∈ R l × m × n Y^{multi}∈\mathbb{R}^{l×m×n} Ymulti∈Rl×m×n是文档与多事件头下角色之间的关联矩阵的ground truth标签。
特定事件的文档表示:为了更好地检测文档中包含的事件类型,我们为每个事件头构造特定事件的文档表示。
给定事件类型t下的角色交互事件注意力 S c o r e t ( H ~ w , H ~ r ) Score_t(\tilde{H}_w,\tilde{H}_r) Scoret(H~w,H~r) (Eq. 4),我们首先将 S c o r e t Score_t Scoret与角色归一化,称为 A A A。我们通过使用 A A A对角色 H ~ r \tilde{H}_r H~r进行加权和来获得特定于事件类型 t t t的单词表示 H ′ ′ w H''w H′′w。通过平均池化操作,我们获得了特定于事件类型 t t t的文档表示 H D H_D HD:
A = s o f t m a x r ( S c o r e t ( H ~ w , H ~ r ) ⊙ M t , : ) , H w ′ ′ = A H ~ r , H D = 1 m ∑ w = w 1 w m H w ′ ′ (8) A=softmax_r(Score_t(\tilde{H}_w,\tilde{H}_r) \odot M_{t,:}),\\ H''_w=A \tilde{H}_r,\\ H_D=\frac{1}{m} \sum_{w=w_1}^{w_m} H_w'' \tag{8} A=softmaxr(Scoret(H~w,H~r)⊙Mt,:),Hw′′=AH~r,HD=m1w=w1∑wmHw′′(8)
S c o r e t ∈ R m × n , M t , : ∈ R n , A ∈ R m × n , ∑ A i : = 1 , H w ′ ′ ∈ R m × d ′ , H D ∈ R d ′ Score_t \in \mathbb{R}^{m \times n},M_{t,:} \in \mathbb{R}^{n},A \in \mathbb{R}^{m \times n},\sum A_{i:}=1,H_w'' \in \mathbb{R}^{m \times d'},H_D \in \mathbb{R}^{d'} Scoret∈Rm×n,Mt,:∈Rn,A∈Rm×n,∑Ai:=1,Hw′′∈Rm×d′,HD∈Rd′。
事件类型检测:我们根据相应的特定于事件的文档表示来检测每个事件类型。具体来说,我们对事件类型 t t t在 H D H_D HD上进行二元分类,得到概率 P t P_t Pt:
P t = s o f t m a x ( H D W e ) (9) P_t = softmax(H_D W_e) \tag{9} Pt=softmax(HDWe)(9)
W e ∈ R d ′ × 2 W_e \in \mathbb{R}^{d' \times 2} We∈Rd′×2是可学习参数, P t ∈ R 2 P_t \in \mathbb{R}^2 Pt∈R2。
然后我们将 P t P_t Pt扩展为对多个事件的预测 P e v e n t ∈ R l × 2 P^{event}∈\mathbb{R}^{l×2} Pevent∈Rl×2,它可以同时识别多个事件。我们应用交叉熵损失来更新模型参数:
L E D = C E ( P e v e n t , Y e v e n t ) (10) L_{ED}=CE(P^{event},Y^{event}) \tag{10} LED=CE(Pevent,Yevent)(10)
Y e v e n t ∈ R l × 2 Y^{event} \in \mathbb{R}^{l \times 2} Yevent∈Rl×2是事件类型的ground truth。
我们发现上述阶段的语言建模产生了各向异性的词嵌入。因此,我们应用事件内对比学习,通过正则化预训练的嵌入空间,使其更具各向同性来增强事件表示。在DEE中,我们需要让每个角色更接近它的论元(正例),同时让每个角色远离其他单词(负例)。给定一个角色,有多个论元,也就是说,有不止一个正例。
我们应用(Hoffmann et al, 2022)基于InfoNCE提出的方法来包括多个正例。更具体地说,对于角色 h r ∈ H ~ r h_r \in \tilde{H}_r hr∈H~r,作为角色 r r r的论元的单词构成了正例集 P P P,而不是角色 r r r的论元的单词构成了负例集 N N N, P ∪ N = H ~ w P∪N =\tilde{H}_w P∪N=H~w。为了测量一对特征之间的相似性,我们使用余弦相似度:
s i m ( x , y ) = x τ y ∥ x ∥ ⋅ ∥ y ∥ (11) sim(x,y)=\frac{x^{\tau} y}{ \parallel x \parallel \cdot \parallel y \parallel } \tag{11} sim(x,y)=∥x∥⋅∥y∥xτy(11)
训练的目标函数变为:
L C L = − log ∑ p ∈ P exp ( s i m ( h r , p ) τ ) ∑ p ∈ P exp ( s i m ( h r , p ) τ ) + ∑ n ∈ N exp ( s i m ( h r , n ) τ ) L_{CL}=- \log \frac{\sum_{p \in P}\exp (\frac{sim(h_r,p)}{\tau})}{\sum_{p \in P}\exp (\frac{sim(h_r,p)}{\tau})+\sum_{n \in N}\exp (\frac{sim(h_r,n)}{\tau})} LCL=−log∑p∈Pexp(τsim(hr,p))+∑n∈Nexp(τsim(hr,n))∑p∈Pexp(τsim(hr,p))
h r ∈ R d ′ h_r \in \mathbb{R}^{d'} hr∈Rd′是角色 r r r的嵌入, p ∈ R d ′ p \in \mathbb{R}^{d'} p∈Rd′是论元嵌入, n ∈ R d ′ n \in \mathbb{R}^{d'} n∈Rd′是输入文档除了论元之外的词嵌入, τ \tau τ是温度超参数。
总体损失函数分为三个部分:事件论元抽取损失 L E A E L_{EAE} LEAE、事件类型检测损失 L E D L_{ED} LED和对比损失 L C L L_{CL} LCL。我们让这三个目标以相同的速度共同学习,并一起更新模型参数。我们有以下训练损失:
L = λ 1 L E A E + λ 2 L E D + λ 3 L C L L=\lambda_1 L_{EAE} + \lambda_2 L_{ED} + \lambda_3 L_{CL} L=λ1LEAE+λ2LED+λ3LCL
λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2的权重在训练过程中是动态调整的, λ 1 = 1 L E A E , λ 2 = 1 L E D \lambda_1=\frac{1}{L_{EAE}},\lambda_2=\frac{1}{L_{ED}} λ1=LEAE1,λ2=LED1, λ 3 \lambda_3 λ3是超参数。
数据集:WikiEvents、RAMS。
评估指标:precision、recall、F1.
baseline:BERT-CRF、SpanSel、Head-Expand、BERT-Gen、DocMRC。
主要结果:
结论:1、CLIO能够准确地抽取嵌套论元。2、CLIO能处理复杂多事件场景。
本文提出了一种面向DEE的角色交互多事件头注意力网络(CLIO)。通过将不同的事件映射到多个子空间,我们将DEE分解为多个子步骤,以处理嵌套的论元和多个事件。为了进一步优化事件表示,我们应用事件表示增强策略来正则化预训练的嵌入空间,使其更加各向同性。实验结果表明,CLIO算法的性能明显优于以往的方法,特别是在面对DEE的特定挑战时。在未来的工作中,我们希望探索特定于事件的高级词汇表示。
最近工作