Inroduction
本文是ACL 2017的一篇文章,用更细粒度的gated-attention对背景文章和问题进行计算。作者是CMU的Graduate Research Assistant: Bhuwan Dhingra。文章的相关工作部分总结的很好,代码实现可以参考[GitHub]。
Background
本文针对的是MRC任务中的Cloze-Style类型,翻译过来是叫完形填空,但是与英语考试不同,这里是指只用一个单词来回答的阅读理解。
我们可以把问题描述为一个三元组(d,q,a):
- d是指背景文章document
- q是指完形填空的问题query
- a是指问题的答案answer
答案是来自构建好的词汇表中的一个词,也就是token。总结一下就是,根据文档-问题对(d,q),从词汇表中找到最合适的词项作为答案a。
Motivation
作者发现,之前的MRC神经网络模型有一个问题——模型会对原文中的某个部分的注意力特别大,以至于对整篇文章的理解不够完整。并且之前的工作把query attention应用到token(Hermann et al., 2015; Chen et al., 2016)和sentence(Weston et al., 2015)两个层次上,本文希望用更细粒度的attention计算方式,获取document和query更多的语义信息。
Contribution
用Bi-GRU获取document和query每一个词项的信息,两部分词项之间两两做元素相乘,这样的操作做K次,到第K层的时候,document的词向量与query的词向量做内积运算,得到最终的向量表示,然后过soft Max层得到词项的概率分布,选document中概率最大的词项作为answer输出。
Model
Overview
输入:document和query分词后的tokens序列
输出:概率最大的answer
Lookup layer
输入:tokens
输出:tokens的向量表示
运算关系:这里就是一个Lookup Table,用全连接训练词向量
Bi-GRU
输入: X 1 = [ x 1 1 , x 2 1 , . . . , x T 1 ] X^1 = [x^1_1,x^1_2,...,x^1_T] X1=[x11,x2