Iterative Alternating Neural Attention for Machine Reading

作者:Alessandro Sordoni,Phillip Bachman,Yoshua Bengio

原文链接:[1606.02245v2] Iterative Alternating Neural Attention for Machine Reading

摘要:我们提出了一种新的神经attention架构来解决机器阅读理解任务,诸如一些基于文本的完形填空式的问题。我们并没有把query折叠成一个单一的向量,我们采用了一种持续迭代的注意力机制来允许对query和document的细粒度探索。我们的模型取得了state-of-the-art的效果。

1、Introduction

最近,训练机器阅读理解模型,使其可以阅读,理解、回答问题的快速发展主要由于两个原因。首先是深度学习技术的出现,其次是标准机器阅读理解数据集的出现,提供了实验性能的参考。

2 任务定义

使用完形填空式问题去评估机器阅读理解任务的优势是不需要大规模的人力干预就能有数据集。CBT和CNN就是这样的两个数据集。

CBT语料库来源于著名的孩童课本中的古腾堡项目。文本由很多组20句的摘录组成,与此相关的query是其第21句,并把其中一个词替换为占位符词。根据被替换的词的词性,数据集被分为四个子集。分别是命名实体,通用名词,动词以及介词。我们将集中关注前两个,因为后两个实在太简单。

CNN语料库来源自CNN网站上的新闻文章。Document是文章的主体,除主体外文章还包括简短的,关键字的总结。开发者将总结中替换一个命名实体的单词为占位符作为query。

对两个数据集来说,训练集和评估集由这样的元组构成(Q,D,A,a),Q是query,D是document,A是可能答案的集合,a属于A,并且是正确答案。所有的单词都在辞汇表V中。我们设定A集合是D集合的子集,集A中所有词都是在D中出现过的。对于每个query来说,占位符应该是要被替换为正确答案a。数据集统计如上表格1所示

3 、Alternating Iterative Attention

我们的模型如图1所示,他的工作流有三步。第一步是编码阶段,一系列的向量表示会在其中计算,作用就相当于document和query的记忆内容。接著,推理阶段目的在于探索query和document之间复杂的语义关系,来为答案预测提供强力的证据。最后,预测阶段将使用重复的attention从query和document中收集的信息来最大化正确答案的概率。我们将在以下章节中描述每个阶段。

3.1 Bidirectional Encoding

(这段就是介绍了下双向GRU,和其他模型一样,本文使用query GRU和document GRU的所有双向隐状态拼接作为编码表示)

3.2 Iterative Alternating Attention

这个阶段可以被认为是一种揭示推理链的手段,它从query和document开始,推导出答案。这个推导过程由一个额外的GRU完成。这个循环网路迭代地执行持续地搜索步骤去搜集对答案有用的信息。具体来说,如图1所示,在每个时间步:(1)他要在query上进行attention阅读,得到一个query的表示 qt。(2)基于当前的query表示qt,它要去挖掘一个document折叠表示 dt,代表document中与当前qt有关的部分。同时,这两次阅读都是在推理GRU的前一个隐藏层状态St-1的条件下进行,总结了到时间t未知所有搜集到的信息。这个推理GRU使用两个折叠表示来更新循环状态,来决定哪些信息需要被搜集来完成推理过程。

注释:我们的模型第一次编码query和document通过双向GRU的均值.然后,应用一个迭代的推理机制在(1)document编码和(2)query编码之间交互。这个多次交互的attention将通过一个门然后输入到推理GRU中。即使编码只计算一次,查询表示也是动态的,并且在整个推理过程中会发生变化。在固定数量的步骤T之后,文档注意力的权重被用来估计答案P ( a | Q,D )的概率。

Query Attentive Read

对于给定的query编码{qi},我们构建了query折叠表示qt在时间t:

其中qi,t是query attention的权重, A_q∈R^{2h*s} ,s是推理GRU状态的维度。 a_q∈R^{2h}

。我们的attention与传统的有两大不同:第一,我们使用双线性而不是点乘来计算每一个在当前时间步里面的query的重要性。第二,我们添加了一个aq项,它允许将注意力机制偏向于那些在搜索步ST - 1的非独立问题中往往很重要的词。它类似于原来的attention机制中提出的没有额外的tanh层的方法取得的作用。

Document Attentive Read

Attention继续基于当前给定的qt探索document。具体来说,document attention权重将由前步的搜索状态和当前选择的qt来决定:

其中di,t是document中每个词的attention权重,并且 A_d∈R^{2h*(s+2h)} , a_d∈R^{2h} 。注意,document attention也是基于St-1的条件上的。这允许模型在文档侧执行传递性推理,即使用先前获得的文档信息来偏向未来的关注位置,这对自然语言任务来说极其重要。

Gating Search Results

为了更新当前状态,推理GRU必须在以前推理的基础上进行,比如 s_t = f([q_t,d_t],s_{t-1})

。然而,当前query浏览可能过于笼统,或者文档可能不包含query中指定的信息,即query或document注意力权重分布可能每一层都处于接近的分布。我们设计了一个门机制,来在搜索没有结果的情况下重置当前query和document的查询。 形式上,我们实现一个门机制 r = g([s_{t-1},q_t,d_t,q_t.d_t]) ,其中.是点乘的意思,并且 g:R^{s+6h} ->R^{2h} 。g使用两层的前馈网路,并且用sigmoid作为输出层的激活函数。同时这也把query和document之间的乘法交互考虑了进去,可以使其更简单的决定两者间匹配的程度。给定query门gq,生成rq,给定document门gd,生成rd。推理GRU的输入就是这些经过门之后的向量,比如 s_t = f([r_q.q_t,r_d.d_t],s_{t-1}) 。直观地说,模型在查看query时候会关注document,反之亦然。

3.3 Answer Prediction

在一个固定次数的时间步T之后,document的attention权重将从最后一个搜索步获得,即dI,T,这将会被用来去预测answer的概率分布P(a|Q,D)。形式上,我们使用「pointer-sum」的损失:

其中I(a,A)是a出现在document中各位置的集合。模型将被训练来最大化log p(a|Q,D)在训练语料上。

4 Training Details

我们使用随机梯度下降和ADAM优化器来训练我们的模型,初始学习率是0.001.batch的size是32,如果验证集准确率在经历半个epoch后没有上升,那么学习率会下降为之前的0.8.我们初始化我们的所有参数使用正态分布N(0,0.05)。GRU循环的权重将被正交初始化,偏差将被初始化为0为了使学习稳定,我们裁剪梯度,如果他们的正则大于5.我们使用了一个带嵌入正则处于{0.001,0.0001}的超参数搜索。inference steps T∈{3,5,8),embedding size d ∈{256,384},encoder size h∈{128,256},推理GRU size s∈{256,512}。Dropout为0.2.我们发现将嵌入正则设置为0.0001,T =8,d = 384, h = 128,s =512模型更为鲁棒。我们的模型用Theano框架,使用Keras库。

Computational Complexity 类似于以前的使用双向GRU的state-of-the-art模型,我们的主要计算度瓶颈是计算document和query编码。交替的attention机制只在一个固定数量的步上运行,比典型的我们数据集中的document和query小一个数量级。重复的attention每一个需要超过1000个位置的softmax,在GRU上更适合运行。因此我们的计算成本类似于先作,但性能要优于。

5 Results

我们将报告我们的模型在CBT-CN,CBT-NE,和CNN数据集上的结果。

5.1 CBT

表格2展示了我们在CBT两个数据集上的结果。人类表现,LSTMs和记忆网路(MemNNs)和AS Reader。

Main reault

表格2中的AS Reader的验证集和测试集结果比我们模型更为接近,特别是在CBT-NE上,我们的验证集比AS Reader的高1.4,但测试集却一样。这是因为这个数据集中答案都是命名实体,并没有在训练集中被预测过。

Ensembles

(没啥说的,就是集成模型好,结果见表格2)

Fixed query attention

为了衡量query attention的作用,我们将约束我们的query attention统一,即每步的attention都一样。这类似于以前工作中的对双向GRU的输出取平均来固定query表示。通过表格2的第6和第7行,我们可以看到我们的query atteniton为模型提高了精度。

5.2 CNN

表格3是CNN数据集实验结果。

Main result

结果显示我们的模型(第8行)相比最近出版的结果(AS Reader第7行)大幅度提高了预测性能。我们同时也考虑了在我们论文写作期间的实验结果斯坦福AR系统,我们的模型也有轻微的领先。他们模型的结果会被不同的初始化训练策略影响,而且使用了Glove,并且他们只在文件的候选答案上归一化输出概率。

Ensemble

集成模型的效果比单模好。

Category analysis

研究者根据猜测答案所需的推理类型,对100篇CNN报道进行了分类。只需要利用占位符周围的上下文就可以得到答案的是精确匹配,释义和部分线索,那些需要更高推理技巧的是多句和模糊类型。举个例子,在精确匹配中,答案在占位符的邻近单词中。

分类结果如表格4所示。简单的问题可以轻松地被神经网路模型解决,性能相似。但是我们的模型更加擅长于解决模糊或者难的问题,那是因为AR模型只使用一次固定的query的attention步,而我们迭代的步骤可以更好的探索query和document。最终,共指错误(超过25%),即包含关键的共指解决错误的样本,可能会让问题难以回答。如果这个估计是准确的,我们的集成模型( 76.1 % )可能在这个数据集上接近接近最佳性能。

5.3 Discussion

我们检查了CNN数据集里面一篇样文的query和document的attention权重。文章的标题是「Dante turns in his grave as Ital-ian language declines」,它谈的是义大利语在学校的衰落。

如图2所示,左边的是query attention,右边的是document attention,每一行都是一个推理步从1到8的过程。在第一步时候,query attention聚焦在占位符词,因为它旁边的上下文对识别答案最为重要。模型首先关注的是@ entity 148,相当于「Greek」的意思。那个时刻,模型依旧不清楚文件中其他可能的位置(通过文本位置我们可以看到很小的权重)。在第二步时候,query的attention移动到了」school」,模型在」italian」和」European Union」间犹豫,两者都满足query。在第三步时,最可能的候选答案变成了」European Union」和」Rome」。随著时间步展开,模型学习到」need」可能对推理正确的实体更为重要,比如」italian」。query处于相同的位置时,document attention就会对答案更加自信。

通过数据集我们发现,query的attention经常会集中在占位符位置旁边,并且尝试去只使用附近的文本来区分答案。对于这些特定的数据集,大多数问题可以在只关注与占位符直接相邻的单词之后回答。这与( Chen等人)的发现一致。这个数据集所需的推理和推理级别非常简单。所以我们认为构建一个只使用附近邻近单词很难进行推理的数据集是非常值得的,因为需要更深层次的query探索。

最后,在这项工作中,我们固定了推理步骤T的数量。我们发现,在测试数据集上使用8个时间步可以很好地工作。然而,我们假设更多(更少)的时间步骤将会受益于更难(更容易)的例子。我们认为对我我们的模型的一个直接的扩展是可以基于每个例子动态地选择时间步。

6 Related Works

7 Conclusion

我们提出了一个迭代神经注意力模型,并将其应用于机器理解任务。我们的架构部署了一种新的交替注意机制,并紧密结合了过去机器阅读理解中的成功思想,在三个数据集上获得了state-of-the-art的结果。迭代交替关注机制不断细化query和document的观点,同时收集回答查询所需的信息。

未来可能会有多个研究方向。我们计划动态选择每个例子所需的最佳推理步骤数。此外,我们怀疑转向随机注意力会让我们学习更有趣的搜索策略。最后,我们认为我们的模型是完全通用的,可以直接应用于其他任务,如信息检索。

有任何疑问或者纠错,作者随时在线哦。

来自专栏

深度学习经典论文翻译(nlp方向)?

zhuanlan.zhihu.com图标
推荐阅读:

相关文章