[论文笔记]Teaching Machines to Read and Comprehend

引言

Teaching Machines to Read and Comprehend1是阅读理解一维匹配模型和二维匹配模型的开山鼻祖。

发布了CNN&Daily Mail数据集。

Attentive Reader

[论文笔记]Teaching Machines to Read and Comprehend

基于双向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(Wym​yd​(t)+Wum​u)s(t)∝exp(wmsT​m(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=yd​s
模型的输出同时联合了 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(Wrg​r+Wug​u)
该输出可用于计算答案的单词概率分布。

Attentive Reader可以看成是内存网络做问答任务的一般应用,属于一维匹配模型:问题编码成固定长度的向量,计算文档 D D D每个词在特定问题上下文向量中作为答案的概率

Impatient Reader

[论文笔记]Teaching Machines to Read and Comprehend

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)=ydT​s(i)+tanh(Wrr​r(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(wmsT​m(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(Wdm​yd​(t)+Wrm​r(i−1)+Wqm​yq​(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(Wrg​r(∣q∣)+Wqg​u)

Impatient Reader属于二维匹配模型:问题 Q Q Q每个词编码,计算问题 Q Q Q中每个词对 D D D中每个词的注意力,形成词-词的二维匹配结构,模型效果要稍微优于一维匹配模型。

Reference


  1. Teaching Machines to Read and Comprehend ↩︎

上一篇:Log4j2远程命令执行复现


下一篇:21 liunx shell编程 简述awk命令; BEGIN命令, END命令,内建变量 NF NR FS;awk 的逻辑运算;print 和 printf 的区别