本文亮点是融合了四个不同的attention,相对于单个attention来说更好的描述了连个句子对之间的关系,对于自然语言推理,判断两个句子表达是否相同等任务都有较为明显的贡献。
论文地址:
https://www.ijcai.org/proceedings/2018/0613.pdf
引言
针对句子对进行建模,对于判断两个句子间的关系起着十分重要的作用。近来,注意力机制已经很普遍的应用于这项任务当中,这篇论文采用多路注意力网络,通过对四个不同的注意力函数输出结果的融合来进行对句子对的建模。
任务描述
将句子对以三元组的形式表示出来
(
Q
,
P
,
y
)
(Q,P,y)
(Q,P,y),其中
Q
=
(
q
1
,
.
.
.
,
q
i
,
.
.
.
,
q
N
)
Q=(q_1,...,q_i,...,q_N)
Q=(q1,...,qi,...,qN)代表句子Q,句子长度是N,
P
=
(
p
1
,
.
.
.
,
p
j
,
.
.
.
,
p
M
)
P=(p_1,...,p_j,...,p_M)
P=(p1,...,pj,...,pM)代表句子P,句子长度是M,
y
∈
Y
y\in Y
y∈Y
代表了句子P与句子Q之间的关系(针对不同的任务y取值范围不同。例如针对QA问题时,y取值0或1,取值为1时代表P是Q的回答,取值为0时代表P不是Q的回答)
模型结构
模型主要分为五层Encoding Layer , Multiway Matching , Inside Aggregation , Mixed Aggregation, Prediction Layer
Encoding Layer
(1)对句子P和Q中的每个词进行embedding
(2)将embedding后的结果输入到双向GRU网络后生成新的表示
h
1
q
,
.
.
.
,
h
N
q
h_1^q,...,h_N^q
h1q,...,hNq和
n
1
p
,
.
.
.
,
h
M
P
n_1^p,...,h_M^P
n1p,...,hMP其中
h
t
q
=
[
h
t
q
→
,
h
t
q
←
]
h_t^q=[ \stackrel{\rightarrow}{h_t^q},\stackrel{\leftarrow}{h_t^q}]
htq=[htq→,htq←]
Multiway Matching
Multiway Matching层通过四个注意力函数对两个句子中的词语进行了比较
q
t
k
=
f
k
(
h
q
,
h
t
P
,
W
k
)
q_t^k=f_k(h^q,h_t^P,W_k)
qtk=fk(hq,htP,Wk)
其中,
h
t
p
h_t^p
htp是句子P在位置t的表示;
h
q
h^q
hq是句子Q所有位置的表示;
W
k
W_k
Wk是注意力函数的参数,里面的
k
=
(
c
,
b
,
d
,
m
)
k=(c,b,d,m)
k=(c,b,d,m),分别对应于concat attention , bilinear attention , dot attention , minus attention,即根据P和Q中词语之间的不同关系权重,用Q中的每个词来表示P中的每个词。
Inside Aggregation
内部聚合是对P中每个词经过不同注意力网络后的信息分别进行聚合。
(1)对于每一个位置t,将t处的词语表示向量和其对应的相应注意力网络输出的向量进行连接生成向量x。
(2)并通过sigmoid函数计算出向量x对应的权重值并生成新的表示向量x*。
(3)将生成的新的序列表示,作为双向GRU网络的输入。
(4)将前向和后向GRU生成的向量进行融合
h
t
c
=
[
h
t
c
→
,
h
t
c
←
]
h_t^c=[ \stackrel{\rightarrow}{h_t^c},\stackrel{\leftarrow}{h_t^c}]
htc=[htc→,htc←]
(以Concat Attention为例)
Mixed Aggregation
混合聚合是将四个注意力函数生成的信息进行聚合。针对不同的注意力函数,设定了不同的聚合参数v。具体过程如下图所示
随后将结果序列每一时刻的x向量传入双向GRU进而完成整个过程
Prediction Layer
(1)将句子Q所有时刻的hidden state求权重,按权重将每一时刻相加得到句子Q的representation
(2)将句子Q的representation和句子P经过Mixed Aggregation每时刻的representation求相似性,对相似度做softmax后得到句子P经过Mix Aggregation后所有时刻的权重,最后将所有时刻按权重值相加得到句子P包含Q信息后最终的表示向量。
(3)把上一步生成的r传入MLP中,进而得到每一个label所占的概率值(最终向量的维度根据不同任务的label个数来决定)。
训练过程中的损失函数采用了交叉熵。
实验数据
结果
结论
本文亮点是融合了四个不同的attention,相对于单个attention来说更好的描述了连个句子对之间的关系,对于自然语言推理,判断两个句子表达是否相同等任务都有较为明显的贡献。