机器阅读理解(MRC)在编码层得到了文章和问题中单词的语义向量表示,但两部分的编码是基本独立的。为了得到最终答案,模型须要交互处理文章和问题中的信息。所以,模型在交互层将文章和问题的语义信息融合,基于对问题的理解分析文章,基于对文章对理解分析问题,从而达到更深层次的理解。
然而,在交互层基本使用的都是各类各样的attention机制,所以在这里详细介绍一下。网络
阅读理解的互注意力通常用来计算从文章到问题的注意力向量。
使用互注意力机制经过注意力函数对向量组对全部向量打分。通常而言,注意力函数须要反映pi 和每一个向量qj的类似度。常见的注意力函数有如下几个:函数
固然最后得到qi的分数之后,使用softmax进行归一化而后获得各自的权重,再进行加权和,获得最后的attention结果:
Attention((p1,p2...pm),(q1,q2...qn))=(p1q,p2q...pmq)优化
关于self-attention的部分能够看前面笔者关于self-attention详细计算的一篇文章。编码
在这里介绍几篇经典的MRC论文所使用的attention机制spa
用 C 和 Q 分别表示编码后的 Context 和 Question,根据二维匹配模型,首先计算出 C 和 Q 的类似矩阵 𝑆,而后对其进行 Softmax 行归一化,获得 Context 中每一个词对 Question 全部词的注意力分数,再将归一化后的矩阵S ̅对问题表征 Q 进行加权,从而获得问题的context-to-query attention表征:.net
类似度矩阵 𝑆 进行列归一化,获得 Question 的每一个词对 Context 全部词的注意力分数 S ̿ ,则 query-to-context attention 表征为:orm
在本文中做者认为,阅读理解的核心思路就是对文章和问题进行融合,并经过融合从文章中获取答案。这些网络的信息融合方式能够如图中所示,分为如下几类:blog
(1) 单词级融合。提供了单词的直接信息,可以快速地聚焦关注的区域,例如简单地为每一个单词附加一位,标注该单词是否出如今问题中。这种作法基本上是相似手工特征。rem
(2) 高层融合。好比,通过了LSTM的编码,这种特征再参与与文章的判断(通常经过注意力机制)。但高层信息可能会丢失一部分细节。get
(2’) 可选的高层融合 。和(1)差很少,但添加的是通过编码的高层信息,直接与Context的Embedding进行拼接。
(3) 自加强融合。信息与自身进行聚合(Transformer是一个典型例子),被认为这样能够对更长的信息进行关联。通常能够在(2)以后进行这一步骤,能够扩展关注问题(question-aware)的感觉野。
(3’) 可选的自加强融合。与上文中DCN提到的协同注意力机制和BiDAF中的机制同样,经过先对问题Q进行自加强融合,再将问题Q与文章进行高层融合。
论文地址:https://arxiv.org/abs/1612.05360
DCN是全称dynamic coattention networks,动态协同注意力网络。它的具体作法如图:(引用于
https://blog.csdn.net/mottled...)
论文地址:https://arxiv.org/abs/1711.00106