1 简介
论文题目:Graph Transformer Networks with Syntactic and Semantic Structures for Event Argument Extraction
论文来源:EMNLP 2020
论文链接:https://arxiv.org/pdf/2010.13391.pdf
1.1 创新
- 同时使用句法和语义结构,以帮助在论元抽取中学习到高效的向量表示,使用Graph Transformer Networks(GTN)对这两种结构进行融合。
- 为了提高GTN的泛化性,防止过拟合,使用了Information Bottleneck,在loss函数中加入了互信息。
2 方法
模型的整体框架主要分为下面四个部分:
- Sentence Encoding: 每个token被表示为bert编码向量和到论元、触发词的距离编码,然后经过BiLSTM进行得到 H = h 1 , . . . , h N H=h_1,...,h_N H=h1,...,hN
- Structure Generation: 此模块包括句法结构生成和语义结构生成。
句法结构生成:句法结构依赖树 A d A^d Ad对触发词和候选论元不可知,为了解决这个问题,根据触发词和候选论元到其他词的路径长度,提出两个特殊定制的句法结构。对于候选论元,首先计算候选论元到其余词的距离 d i a d_i^a dia,然后通过查表映射为 d ^ i a = D [ d i a ] \widehat{d}_i^a=D[d_i^a] d ia=D[dia],然后生成一个论元句法结构 A a = { s i , j a } i , j = 1.. N A^a={\{s_{i,j}^a\}}_{i,j=1..N} Aa={si,ja}i,j=1..N其中 s i , j a s_{i,j}^a si,ja的计算公式如下,同理可以得到触发词句法结构 A e = { s i , j e } i , j = 1.. N A^e={\{s_{i,j}^e\}}_{i,j=1..N} Ae={si,je}i,j=1..N
s i , j a = s i g m o i d ( F F ( [ d ^ i a , d ^ j a , d ^ i a ⊙ d ^ j a , ∣ d ^ i a − d ^ j a ∣ , ∣ d ^ i a + d ^ j a ∣ ] ) ) s_{i,j}^a=sigmoid(FF([\widehat{d}_i^a,\widehat{d}_j^a,\widehat{d}_i^a{\odot}\widehat{d}_j^a,|\widehat{d}_i^a-\widehat{d}_j^a|,|\widehat{d}_i^a+\widehat{d}_j^a|])) si,ja=sigmoid(FF([d ia,d ja,d ia⊙d ja,∣d ia−d ja∣,∣d ia+d ja∣]))
语义结构生成:语义结构利用句子中 w i w_i wi和 w j w_j wj的上下文语义来学习一对单词 ( w i ; w j ) (w_i;w_j) (wi;wj)的重要性得分。语义结构 A s = { s i , j s } i , j = 1.. N A^s={\{s_{i,j}^s\}}_{i,j=1..N} As={si,js}i,j=1..N的计算公式如下(左式),左式对触发词和候选论元不可知,因此使用右式加入候选论元和触发词的上下文语义信息。
|
|
- Structure Combination:此模块对上述模块的不同结构
A
=
[
A
d
,
A
a
,
A
e
,
A
s
]
A=[A^d,A^a,A^e,A^s]
A=[Ad,Aa,Ae,As]进行融合,首先添加一个identity矩阵,
A
=
[
A
d
,
A
a
,
A
e
,
A
s
,
I
]
=
[
A
1
,
A
2
,
A
3
,
A
4
,
A
5
]
A=[A^d,A^a,A^e,A^s,I]=[A_1,A_2,A_3,A_4,A_5]
A=[Ad,Aa,Ae,As,I]=[A1,A2,A3,A4,A5],Graph Transformer Networks(GTN)生成C个通道,每个通道M个中间结构
Q
1
i
,
Q
2
i
,
.
.
.
,
Q
M
i
Q^i_1,Q^i_2,...,Q^i_M
Q1i,Q2i,...,QMi,在GTNs中
Q
j
i
Q^i_j
Qji的计算公式为
Q
j
i
=
∑
v
=
1..5
α
j
,
v
i
A
v
Q^i_j={\sum}_{v=1..5}{\alpha}^i_{j,v}A_v
Qji=∑v=1..5αj,viAv,为了在第i个通道中捕捉multi-hop路径,令
Q
i
=
Q
1
i
×
Q
2
i
×
.
.
.
Q
M
i
Q^i=Q^i_1×Q^i_2×...Q^i_M
Qi=Q1i×Q2i×...QMi,然后使用每个结构进行GCN,公式如下,此时每个token的表示为
h
i
′
=
[
h
i
−
1
,
G
,
h
i
−
2
,
G
,
h
i
−
3
,
G
,
.
.
.
,
h
i
−
C
,
G
]
h'_i=[h_i^{-1,G},h_i^{-2,G},h_i^{-3,G},...,h_i^{-C,G}]
hi′=[hi−1,G,hi−2,G,hi−3,G,...,hi−C,G],然后令R=[h’_a,h’_e,MaxPool(h’_1,h’_2,…,h’_N)],最后进行分类。
loss函数为: L p r e d = − P ( y ∣ W , a , t ) \mathcal{L}_{pred}=-P(y|W,a,t) Lpred=−P(y∣W,a,t) - Model Regularization: GTN模型的高表示学习能力可能导致仅记住特定于训练数据的信息(即过拟合)。因此将GTN模型看作Information Bottleneck (IB),最小化GTN产生的向量
H
′
=
h
1
′
,
h
2
′
,
.
.
.
,
h
N
′
H'=h'_1,h'_2,...,h'_N
H′=h1′,h2′,...,hN′和BiLSTM产生的句子编码H=h_1,h_2,…,h_N,为了便于计算互信息,首先利用max-pooling操作令
h
=
M
a
x
P
o
o
l
(
h
1
,
h
2
,
.
.
.
,
h
N
)
h=MaxPool(h_1,h_2,...,h_N)
h=MaxPool(h1,h2,...,hN),
h
′
=
M
a
x
P
o
o
l
(
h
1
′
,
h
2
′
,
.
.
.
,
h
N
′
)
h'=MaxPool(h'_1,h'_2,...,h'_N)
h′=MaxPool(h1′,h2′,...,hN′)。由于它们都是高维向量,计算量较大,因此使用mutual information neural estimation方法估计互信息,通过对抗学习可变鉴别器的损失函数估计互信息,互信息被定义为h和h’两个向量的联合和边缘分布的KL散度,取样[h,h’]作为正例,
[
h
,
h
^
)
[h,\widehat{h})
[h,h
)(
h
^
\widehat{h}
h
为其他句子的BiLSTM编码)为负例,然后经过两层全连接层D进行分类,D的损失函数作为互信息的估计,公式如下:
总loss为: L = L p r e c + α d i s c L d i s c \mathcal{L}=\mathcal{L}_{prec}+{\alpha}_{disc}\mathcal{L}_{disc} L=Lprec+αdiscLdisc
3 实验
使用数据集为ACE 2005和TAC KBP 2016,实验结果如下图:
消融实验结果:
在不同长度句子中的实验结果: