论文笔记--Gated-Attention Readers for Machine Reading Comprehension

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$

输出:

  • Document每个词项过Bi-GRU后每个隐藏层状态 E
  • Query每个词项过Bi-GRU后每个隐藏层状态串起来 q

运算关系:见Bi-GRU结构,不详细介绍。

Gated-Attention

输入:$E^1$,$q^1$

输出:下一层的输入$X^2$

运算关系:$X^2 = E^1 \odot q^1$

K-th layer & soft Max

输入:$E^K$, $q^K$

输出:document中tokens的概率分布$s^K$

运算关系:求soft Max.

得到概率最大的answer最为最终的输出。

Experiment

Datasets

训练集用的CNN/Daily Mail 和 who did what,详情如下:

Results

在CNN/Daily Mail上,效果比BiDAF提升了一个多点,细粒度的gated-attention取得了一些效果,但是在who did what数据集上并未有多大提升。

Analysis

实验部分给出了一些可视化的attention结果:

图中高亮的部分是背景文章针对问题时的最后一层注意力所关注的tokens。

Conclusion

本文提出的Gated Attention用更细粒度的attention计算获得answer的定位,收获了一定的效果,并且使用Multi-Hop的结构,带着问题重读文章K次,增量式地重新得到tokens的表示,可以进一步帮助锁定答案。但是可以看出,在CNN/Daily Mail比在who did what数据集上提升的多,这就跟数据集本身有关了。所有的模型也都是建立在数据集的特点上的,仔细研读数据,研究其语言学的特征也是很重要的一个环节。