这篇论文可以说是阅读理解领域的奠基之作。
文中最主要的收获就是,提出的三种神经网络模型
1. Deep LSTM Reader
处理过程如图,这个图是用两层的lstm来encoder document ||| query对(这个符号|||表示链接),然后再用得到的表示做分类(得到的输出y,再输入到图右g函数,来做判断)。但是这个两层的lstm我暂时的理解是用了两个lstm。这里希望后续能找到源码看一下
圈出来的部分是我认为对这部分的介绍比较重要的部分,这里面我理解他说的是当我们将doc中的内容一个词一个词先输入到LSTM encoder中,然后在分割符(|||)后,把query也一个词一个词的输入到encoder中。这里作者也尝试了先将query输入encoder,然后再输入doc中的内容。结果却是模型把每个doc-query对,当做一个单一的长句子。而对于给定的embedding后的doc和query,模型需要预测doc中的哪个token(这个token,我的理解是lstm中的哪个中间输出状态)去回答query。模型数学知识支持:
2,The Attentive Reader
这个模型其实就是在lstm的基础上,引入了attention的概念
模型如图:
这里的描述部分,主要借鉴这里,
这个模型将doc和query分开表示,其中query部分就用了一个双向lstm来encode,然后将两个方向上的last hidden state拼接query表示,doc部分也是用一个双向的lstm来encode,这里的每个token的表示是用两个方向上的hidden state拼接而成,doc的表示则是用doc中所有token的加权来表示,(所以这里双向lstm是输出每个隐层的状态),这里的权重就是attention,权重越大表示回答query时对应的token越重要,然后用doc和query的表示做分类。
《Supervised Sequence Labelling with Recurrent Neural Networks》这篇论文是第一次用attention来处理doc和query的encode。
3,Impatient Reader
模型如图:
这个模型在attention reader模型的基础上更细了一步,即每个query token都与doc中的tokens有关联,而不是像之前的模型将整个query考虑为整体。这个过程就像是你读query中的每个token时都需要找到doc中相应的token。这个模型更复杂,但是效果不一定会更好,因为我们在实际阅读中,不可能读一个问题中的每个词后,都去原文中找到相应的词。而且,如果原文很长的话,记忆的效果也不一定会很好。
但是这部分的具体代码实现,是怎么操作的呢,还没想明白,后续有空一定要找到源码看一下
参考资料:https://zhuanlan.zhihu.com/p/21343662?refer=paperweekly