引言
Teaching Machines to Read and Comprehend1是阅读理解一维匹配模型和二维匹配模型的开山鼻祖。
发布了CNN&Daily Mail数据集。
Attentive Reader
基于双向LSTM模型来编码文档(document)和查询(query)。
分别标记LSTM的正向和反向输出为 y → ( t ) \overrightarrow{y}(t) y (t)和 y ← ( t ) \overleftarrow{y}(t) y (t);
长度为 ∣ q ∣ |q| ∣q∣的查询的编码 u u u由最终的前向和反向输出拼接而成,即 u = y → q ( ∣ q ∣ ) ∣ ∣ y ← q ( 1 ) u = \overrightarrow{y}_q(|q|) || \overleftarrow{y}_q(1) u=y q(∣q∣)∣∣y q(1),其中 ∣ ∣ || ∣∣是拼接操作。
文档由每个时刻
t
t
t内的双向输出拼接而成,其中
y
d
(
t
)
=
y
→
d
(
t
)
∣
∣
y
←
d
(
t
)
y_d(t)= \overrightarrow{y}_d(t) || \overleftarrow{y}_d(t)
yd(t)=y
d(t)∣∣y
d(t),文档的表示
r
r
r是由这些输出进行加权和而得。权重可以看成是回答查询
q
u
e
r
y
query
query时关于文档中每个单词的注意力,首先计算问题表示
u
u
u和文档表示中每个单词的相似度,相似度越多表示赋予的注意力越多:
m
(
t
)
=
tanh
(
W
y
m
y
d
(
t
)
+
W
u
m
u
)
s
(
t
)
∝
exp
(
w
m
s
T
m
(
t
)
)
m(t) =\tanh(W_{ym}y_d(t) + W_{um}u) \\ s(t) ∝ \exp(w^T_{ms}m(t))
m(t)=tanh(Wymyd(t)+Wumu)s(t)∝exp(wmsTm(t))
接着进行归一化,注意还有一个计算相似度的权重移动到了
e
x
p
exp
exp函数里面。
上式就是我们上节中介绍的相似度计算方法里面的最后一种。
得到注意力得分,我们把所有时刻的
y
d
(
t
)
y_d(t)
yd(t)放到一起,组成了矩阵
y
d
y_d
yd。然后文档编码
r
r
r就是所有时刻的
y
d
(
t
)
y_d(t)
yd(t)的加权和:
r
=
y
d
s
r = y_ds
r=yds
模型的输出同时联合了
r
r
r和
u
u
u:
g
A
R
(
d
,
q
)
=
tanh
(
W
r
g
r
+
W
u
g
u
)
g^{AR}(d,q) = \tanh(W_{rg}r + W_{ug}u)
gAR(d,q)=tanh(Wrgr+Wugu)
该输出可用于计算答案的单词概率分布。
Attentive Reader可以看成是内存网络做问答任务的一般应用,属于一维匹配模型:问题编码成固定长度的向量,计算文档 D D D每个词在特定问题上下文向量中作为答案的概率
Impatient Reader
Impatient Reader不是拿 u u u和文档中每个单词去计算权重,而是直接拿查询中的每个单词去计算文档中每个单词的权重。对于查询中每个单词 i i i,模型都会使用查询单词 i i i的双向嵌入向量拼接的结果, y q ( i ) = y → q ( i ) ∣ ∣ y ← q ( i ) y_q(i) = \overrightarrow{y}_q(i) || \overleftarrow{y}_q(i) yq(i)=y q(i)∣∣y q(i),去计算一个文档表示向量 r ( i ) r(i) r(i),同时在计算相似度和 r ( i ) r(i) r(i)时都依赖 r ( i − 1 ) r(i-1) r(i−1)。
首先初始化
r
(
0
)
=
r
0
r(0)=r_0
r(0)=r0,
r
(
i
)
r(i)
r(i)的计算为:
r
(
i
)
=
y
d
T
s
(
i
)
+
tanh
(
W
r
r
r
(
i
−
1
)
)
1
≤
i
≤
∣
q
∣
r(i) = y_d^T s(i) + \tanh(W_{rr}r(i − 1)) \,\,\,\, 1 ≤ i ≤ |q|
r(i)=ydTs(i)+tanh(Wrrr(i−1))1≤i≤∣q∣
s
(
i
)
s(i)
s(i)是查询中的单词
i
i
i对文档中每个单词的注意力(权重),计算为:
s
(
i
,
t
)
∝
exp
(
w
m
s
T
m
(
i
,
t
)
)
s(i, t) ∝ \exp (w^T_{ms}m(i, t))
s(i,t)∝exp(wmsTm(i,t))
m
(
i
,
t
)
m(i,t)
m(i,t)计算为:
m
(
i
,
t
)
=
tanh
(
W
d
m
y
d
(
t
)
+
W
r
m
r
(
i
−
1
)
+
W
q
m
y
q
(
i
)
)
,
1
≤
i
≤
∣
q
∣
m(i, t) = \tanh (W_{dm}y_d(t) + W_{rm}r(i − 1) + W_{qm}y_q(i)), 1 ≤ i ≤ |q|
m(i,t)=tanh(Wdmyd(t)+Wrmr(i−1)+Wqmyq(i)),1≤i≤∣q∣
可以看到计算
m
(
i
,
t
)
m(i,t)
m(i,t)时也融入了
r
(
i
−
1
)
r(i-1)
r(i−1)的信息。
最后的输出是用最后一个
r
(
∣
q
∣
)
r_(|q|)
r(∣q∣)与
u
u
u综合得到的结果:
g
I
R
(
d
,
q
)
=
tanh
(
W
r
g
r
(
∣
q
∣
)
+
W
q
g
u
)
g^{IR}(d,q) = \tanh(W_{rg}r(|q|) + W_{qg}u)
gIR(d,q)=tanh(Wrgr(∣q∣)+Wqgu)
Impatient Reader属于二维匹配模型:问题 Q Q Q每个词编码,计算问题 Q Q Q中每个词对 D D D中每个词的注意力,形成词-词的二维匹配结构,模型效果要稍微优于一维匹配模型。