1、Ruminating Reader和BiDAF的区别
Ruminating Reader作为BiDAF的扩展,使用了第二遍阅读和推理的结构,使其学会了避免错误,并且保证在选择答案时可以有效地使用上下文。通过增加额外的读取使模型更好地整合问题和答案中的信息并更好地权衡可能的答案。以下为BiDAF和Ruminating Reader结构图对比。

2、Ruminating Reader的具体架构
Ruminating Reader的具体架构图如下:
2.1、Character Embedding Layer
在字符嵌入层这一部分和BiDAF一样,使用带有最大池化的卷积神经网络来学习字符向量。由此可以获得context和query的字符向量。其中C是context序列的长度,Q是query序列的的长度。f是一维卷积神经网络的卷积核数量。
2.2、Word Embedding Layer
词嵌入层和基础的BiDAF一样采用预训练好的6B GloVe词嵌入向量。在随后的训练过程中不更新词向量。将character embedding和word embedding连接后送入两层的highway network,得到每个单词d维向量表示。
2.3、 Sequence Encoding Layers
和在BiDAF中一样,我们使用具有d维输出的两个LSTM来编码两个方向上的context和query表示。因此获得了context编码矩阵和query编码矩阵。
2.4、Attention Flow Layer
与BiDAF一样,attention flow layer通过输入上面得到的C和Q矩阵来构造query-aware context representation矩阵G,其中包含两个步骤。
①计算交互矩阵 I ∈ RC×Q
交互矩阵用来表示每个context word encoding和query word encoding之间的亲和度。其中Icq表示context中第c个word和query中的第q个word之间的相关性。交互矩阵I由以下公式得到:
其中WI ∈ R6d 是一个可训练的参数,Cc 是context encoding的第c列,Qq 是query encoding的第q列,[;] 表示向量连接。
2.4.1 Context-to-query Attention
context-to-query attention组件为每个context word生成query word注意力加权和。
其中a是注意力权重。
2.4.2 Query-to-context Attention
query-to-context attention 表明了和query最相关的context word。
最相关的词向量表示是上述公式定义的注意力将权和。
其中b是一个注意力权重,由上述公式计算而得。
在整个列中被复制C次,故有
我们可以得到query-aware context representation的最终表示
2.5、Summarization Layer
我们提出通过Summarization Layer产生一个向量表示来总结在query-aware context representation中的信息。将G送入summarization layer ,我们采用一个双向LSTM模拟学习的信息。我们从两个方向选择最终状态并将它们连接在一起 S = [Sf;Sb] 。S表示从context和query阅读中总结的表示。Sf 是前向LSTM的最终态,Sb是反向LSTM的最终态。
2.6、Query Ruminate Layer
这个query ruminate layer是将summarization vector representation和query encoding Q融合,来帮助重新形成query representation以最大化检索到正确答案的机会。这层的输入是将S平铺Q次。
然后设计的门控将S与query encoding融合,门控功能设计如下:


上述的W和偏置b都是可以训练的参数。其中 SQi 是 SQ 的第i列, Qi 是 Q 的第i列。
2.7、 Context Ruminate Layer
context ruminate layer要消化上述的summarization,并且与context encoding C相结合以便提取答案。这一层中,将S平铺c次。
为了将位置信息合并到这个相对较长的平铺序列中,将其喂入到另外的一个双向LSTM,每个方向的输出大小为d。这个方法虽然有些低效,但是证明是对模型右脚趾的补充,可以使得更好地跟踪位置信息。因此可以得到:
它通过门控机制与context encoding C进行融合。门控机制如下:
上述的W和偏置b都是可以训练的参数。其中 SCi 是 SC 的第i列,Ci 是 C 的第i列。
2.8、Second Hop Attention Flow Layer
将上述两个Ruminating层得到Q和C输入到另一个attention flow layer,具有与第一个注意力流层相同的结构,产生 G(2)
2.9、Modeling Layer
我们使用两层双向LSTM,每个方向的输出大小为d,以聚合G(2)中的信息,产生一个预输出矩阵MS。
2.10、Output Layer
和在BiDAF中一样,输出层独立地模拟每个单词被选择作为答案范围的开始或结束为止的概率。我们计算答案跨度的起始索引概率分布:
其中W(p1)是一个可训练的参数。我们将矩阵MS传递给另一个双向LSTM,输出单向产生大小为d的Me。我们得到答案跨度的结束索引的概率分布: