《Ruminating Reader: Reasoning with Gated Multi-Hop Attention》笔记

1、Ruminating Reader和BiDAF的区别

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

The high-level structure of BiDAF
The high-level structure of Ruminating Reader
The high-level structure of Ruminating Reader  


2、Ruminating Reader的具体架构

Ruminating Reader的具体架构图如下:
在这里插入图片描述

The model structure of out Ruminating Reader

2.1、Character Embedding Layer

  在字符嵌入层这一部分和BiDAF一样,使用带有最大池化的卷积神经网络来学习字符向量。由此可以获得context和query的字符向量。其中C是context序列的长度,Q是query序列的的长度。f是一维卷积神经网络的卷积核数量。

context character representation M ∈ Rf×C
query character representation N ∈ Rf×Q

2.2、Word Embedding Layer

  词嵌入层和基础的BiDAF一样采用预训练好的6B GloVe词嵌入向量。在随后的训练过程中不更新词向量。将character embedding和word embedding连接后送入两层的highway network,得到每个单词d维向量表示。

context representation H ∈ Rd×C
query representation U∈ Rd×Q

2.3、 Sequence Encoding Layers

  和在BiDAF中一样,我们使用具有d维输出的两个LSTM来编码两个方向上的context和query表示。因此获得了context编码矩阵和query编码矩阵。

context encoding matrix C∈ R2d×C
query encoding matrix Q∈ R2d×Q

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由以下公式得到:
交互矩阵
  其中WIR6d 是一个可训练的参数,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都是可以训练的参数。其中 SQiSQ 的第i列, QiQ 的第i列。

2.7、 Context Ruminate Layer

  context ruminate layer要消化上述的summarization,并且与context encoding C相结合以便提取答案。这一层中,将S平铺c次。在这里插入图片描述
  为了将位置信息合并到这个相对较长的平铺序列中,将其喂入到另外的一个双向LSTM,每个方向的输出大小为d。这个方法虽然有些低效,但是证明是对模型右脚趾的补充,可以使得更好地跟踪位置信息。因此可以得到:
在这里插入图片描述
  它通过门控机制与context encoding C进行融合。门控机制如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

************************************************************************

在这里插入图片描述在这里插入图片描述
  上述的W和偏置b都是可以训练的参数。其中 SCiSC 的第i列,CiC 的第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。我们得到答案跨度的结束索引的概率分布:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值