R-Net笔记

1、模型架构图

R-Net笔记
  模型包括四个部分:
(1)RNN encoder      用于分别构建question和passage的表示
(2)Gated Matching Layer  用来匹配段落和问题
(3)Self-Matching Layer   用于从整个passage汇总信息
(4)Prediction Layer    用于预测答案边界

2、模型具体架构

2.1、Question and Passage Encoder

  给定question Q={wtQ}t=1mQ=\{w^Q_t\}^m_{t=1}和passage P={wtP}t=1nP=\{w^P_t\}^n_{t=1}。首先将单词转换为word-level embeddings({etQ}t=1m\{e^Q_t\}^m_{t=1}{etP}t=1n\{e^P_t\}^n_{t=1}),然后将Bi-RNN应用于字符嵌入,得到最终的隐藏状态就是character-level embedding ({ctQ}t=1m\{c^Q_t\}^m_{t=1}{ctP}t=1n\{c^P_t\}^n_{t=1})使用character-level embedding有利于处理未登录词。之后作者分别在passage和question的全部单词上使用Bi-RNN产生新的表示,如下所示:
R-Net笔记
  作者在实验中选择GRU,是因为其与LSTM的表现相同,且运算量更小。

2.2、Gated Attention-Based Recurrent Networks

  作者提出了一种基于注意力的门控注意力循环网络来将问题信息整合到段落表示中。附加的门来确定段落中有关问题的信息的重要性。给定question和passage的表示{utQ}t=1m\{u^Q_t\}^m_{t=1}{utP}t=1n\{u^P_t\}^n_{t=1},通过question和passage中的单词的软对齐来产生sentence-pair representation {vtP}t=1n\{v^P_t\}^n_{t=1},如下所示:
R-Net笔记R-Net笔记
  其中ct=att(uQ,[utP,vt1P])c_t=att(u^Q,[u^P_t,v^P_{t-1}])是整个问题(uQu^Q)的注意力池化向量。每个passage representation vtPv^P_t动态地结合从整个问题中收集的匹配信息。
  为了确定与passage部分的重要性并关注与question相关的部分,作者添加了一个额外的门:
R-Net笔记
  与GRU和LSTM中的门不同,附加的门是基于当前的段落词和问题的注意力池化向量,重点关注问题与当前段落词的关系。

2.3、Self-Matching Attention

  通过gated attention-based recurrent network,生成question-aware passage representation {vtP}t=1n\{v^P_t\}^n_{t=1}来确定passage中的重要部分。
  作者提出了直接匹配question-aware representation,它动态的从整个段落中为段落中的单词收集证据。并将与当前段落中相关的证据及其匹配的问题信息编码为passage representation htPh^P_t:
R-Net笔记R-Net笔记
  其中 ct=att(vP,vtP)c_t=att(v^P,v^P_t)是整个passage(vPv^P)的注意力向量。

2.4、Output Layer

  作者在问题的表示形式上使用注意力池化来生成指针网络的初始化隐藏向量。给定passage representation {htP}t=1n\{h^P_t\}^n_{t=1},注意力机制从文章中选择开始位置和结束位置的指针,公式如下:
R-Net笔记
  ht1ah^a_{t-1}表示Pointer Network的最后一个隐藏状态。Pointer Network的输入是基于当前预测概率的注意力池化向量:
R-Net笔记
  当预测开始位置时,ht1ah^a_{t-1}表示Pointer Network的初始化隐藏向量,作者将问题向量rQr^Q用作Pointer Network的初始状态。rQ=att(uQ,VrQ)r^Q=att(u^Q,V^Q_r)是一个基于参数 VrQV^Q_r

R-Net笔记