R-NET Machine Reading Comprehension With Self-Matching Networks

R-NET: MACHINE READING COMPREHENSION WITH SELF-MATCHING NETWORKS

Introduction

两个数据集

  1. SQuAD

    SQuAD全称是Stanford Question Answering Dataset,是斯坦福大学提出的基于维基百科的阅读理解数据集,非常权威。

  2. MS-MS-MARCO

    MS-MS-MARCO的全称是Microsoft MAchine Reading COmprehension dataset,主要来自于Bing搜索。主要区别在于问题的答案可能不仅仅来自给定的文本。

模型的主要构成

R-Net主要分为四个部分

  1. 使用循环神经网络进行语义编码层,分别对问题和答案进行语义编码
  2. 使用gated attention-based rnn来形成 question-aware的paragraph,将question的语义信息通过attention形式赋予到paragraph上,使得paragraph最后的语义编码是知道问题内容的;在该结构中,提出了门机制,挑选出对回答问题相关性强的语义信息部分
  3. Self-match layer,提高paragraph内部每个部分对全局信息的理解
  4. pointer-network,用于预测答案的位置

Detail

结构图

细节

1.QUESTION AND PASSAGE ENCODER

令Question的embedding结果为,Passage的embedding结果为。考虑到未登录词(OOV)的问题,令Q和P的character-level的embedding结果分别为正常情况,Q和P的字符个数会远远大于词的个数,最后character-level的embeddings却和词的embedding长度保持一致,文中交代是将字符embedding的结果通过双向RNN,取最后的隐藏层输出作为character-level的embedding结果的。

最终encode的结果是:

2.GATED ATTENTION-BASED RECURRENT NETWORKS

分为两个步骤,先将question的语义赋予到passage上,得到带有question语义的passage语义编码,再将与原来的passage语义编码结合得到question-aware的passage。

  • 其中 是t时刻最后的passage的语义编码。因为每一时刻的 计算都需要依赖前一时刻时刻最终的

    • Q中第j个词对P中第t个词的影响是多少
    • 过softmax,求权重,在attention计算中经常使用
    • 得到passage每个位置带有对question理解得语义编码
  • $v_t$的计算引入了门机制

$v_t$即为第二层最终的结果。

3.SELF -MATCHING ATTENTION

因为在考虑每个答案时,并没有注意到全文其他位置的信息,所以引入了self-match的机制。在self-match实现时,思路非常类似上面的gated attention-based rnn,只是将passage的attention对象从question换成了passage自己。

令$h_t^P$是加入了self-match信息的最终编码

而 $c_t = att(v^P, v_t^P)$就是具体self-match的实现

是不是整个过程非常类似,同时$u_t^P$的计算会继续使用2中提出的门机制。

4.OUTPUT LAYER

该层通过pointer netword输出最终的answer的位置,本来很简单,但是貌似r-net中弄的比较复杂。

其中$h_t^a$表示pointer network中rnn部分的hidden state

  • 从论文推测,此处的rnn的timestep是2,分别是answer的开始和结束的位置。

pointer network初始的hidden state

  • 将question进行加权作为pointer network的输入。

总结

  1. character embedding,如果只用subword还是不能解决OOV的问题,character能够完全解决OOV,但是效果不一定会好;将character embedding作为一维特征是比较好的思路
  2. attention的方式没什么创新,加入了门机制,本质上其实是增加了参数,使得网络更加复杂了。有没有文中所说的信息筛选的效果值得思考
  3. self-match
  4. 三层均采用了相同的attention的计算方式