《Text Understanding with the Attention Sum Reader Network 》学习笔记

转载请注明出处:西土城的搬砖日常
论文链接:Text Understanding with the Attention Sum Reader Network

标题:Text Understanding with the Attention Sum Reader Network


来源:ACL2016

问题:机器阅读理解问题,问题的定义大致是,给定较长一段话的context和一个较短的问题,以及一些candidate answers,训练出可以准确预测正确答案的模型,类似选词填空。不过本文本文的实验数据集是

(1)CNN/Daily Mail

以原文为context,summary去掉某个entity为query,一些entity作为candidate answers.

(2)Children’s Book Test(CBT)

儿童故事的前20句为context,最后一句去掉某个词作为query,去掉词和和同词性的另外9个词组成candidate answers.

相关工作:


1、Deep LSTM Reader


看上图,其实非常简单,就是用一个两层LSTM来encode query|||document或者document|||query,然后用得到的表示做分类。


(2)Attentive Reader


这个模型将document和query分开表示,其中query部分就是用了一个双向LSTM来encode,然后将两个方向上的last hidden state拼接作为query的表示,document这部分也是用一个双向的LSTM来encode,每个token的表示是用两个方向上的hidden state拼接而成,document的表示则是用document中所有token的加权平均来表示,这里的权重就是attention,权重越大表示回答query时对应的token的越重要。然后用document和query的表示向量拼接送入全连接层做分类。

(3)Impatient Reader


这个模型在Attentive Reader模型的基础上更细了一步,即每个query token都与document tokens有关联,而不是像之前的模型将整个query考虑为整体,类似于seq2seq里面的soft-attention,即每一个query里的token都对应一个document的attention向量,然后将这个attention向量对应输入到lstm里,将lstm最后一个timestep的输出和query的首尾timestep合并预测answer。

主要内容:

(1)网络结构


step 1 通过一层Embedding层将document和query中的word分别映射成向量。

step 2 用一个单层双向GRU来encode document,得到context representation,每个time step的拼接来表示该词。

step 3 用一个单层双向GRU来encode query,用两个方向的last state拼接来表示query。

step 4 每个word vector与query vector作点积后归一化的结果作为attention weights,就query与document中的每个词之前的相关性度量。

step 5 最后做一次相同词概率的合并,得到每个词的概率,最大概率的那个词即为answer。

step 6 为节约计算时间,可以只选择candidate answer里的词来计算相似度。

预测过程类似自动摘要里的pointer-switch,即直接从原文里找答案。step 5 在进行词概率合并时之所以不选择平均,是因为作者在分析了语料后,发现answer在context里的词频普遍较高,这也算一个trick。

(1)average ensemble by top 20%

更改初始化参数,训练多个模型,然后取在验证集上效果最好的前20%个模型做bagging.

(2)average ensemble

取前效果排名前70%的model做bagging

(3)greedy ensemble

根据效果排序从效果最好的模型开始bagging,如果bagging后的模型在验证集上效果更好就加入,一直持续到最后。


实验任务:

(1)CNN/Daily Mail

(2)Children’s Book Test(CBT)

模型在CNN/Daily Mail和CBT的Nouns、Named Entity数据集上进行了测试,在当时的情况下都取得了领先的结果。并且得到了一些有趣的结论,比如:在CNN/Daily Mail数据集上,随着document的长度增加,测试的准确率会下降,而在CBT数据集上得到了相反的结论。从中可以看得出,两个数据集有着不同的特征。

简评:

(1)本文的模型相比于Attentive Reader和Impatient Reader更加简单,没有那么多繁琐的attention求解过程,只是用了点乘来作为weights,却得到了比Attentive Reader更好的结果,从这里我们看得出,并不是模型越复杂,计算过程越繁琐就效果一定越好,更多的时候可能是简单的东西会有更好的效果。

(2)文中直接利用 attention 机制选择答案,模型就比较偏爱出现次数多的词,这就隐含了出现次数比较多的词作为答案的可能性大的假设,所以从根本上本文是基于task的研究而不是从理论出发的。

编辑于 2016-11-06

文章被以下专栏收录