原文链接
本文发表于人工智能领域B类会议 COLING 2016

摘要

随着NLP研究如火如荼的发展,机器阅读理解技术也有了一个爆炸式的增长,一些机构公开的完形填空式的阅读理解数据集,极大的促进了机器阅读理解技术的提升。本文首先提出了提出了两个中文阅读理解数据集,分别为日常新闻数据集和儿童通话数据集。此外,本文提出了一种基于consensus attention的神经网络,其目的是能够让注意力机制关注到查询中的每一个单词。实验结果表明,本文提出的方法效果不错。

模型

假设我们有训练集<D,Q,A>,其中D是文章,Q是查询,首先我们将Q和D的onehot表示通过一个相同的embedding矩阵We转换为embedding表示,由于Q比D要短很多,通过与D共享embedding矩阵,可以使Q学到的embedding表示比使用两个不同的embedding矩阵要好。
本文使用两个不同的双向GRU来分别提取D和Q的特征,这样从不同维度的提取方式能够更加充分的提取特征。模型如下图所示:
论文笔记《Consensus Attention-based Neural Networks for Chinese Reading Comprehension》
模型底层是基于双向GRU的,没有啥特殊的地方,公式如下:
论文笔记《Consensus Attention-based Neural Networks for Chinese Reading Comprehension》
具体而言就是将D,Q进行embedding后输入双向GRU然后得到两个方向的隐状态输出之后,将两个方向的输出给concat起来。
这样我们就得到了D和Q通过双向GRU的输出hdochquery,然后对 hdoc 中的每个单词的隐状态表示, 计算它与 hquery 中所有单词的隐状态表示的匹配程度: α(t)=softmax(hdochquery(t)) (t 表示时序, 即 query 的第 t 个位置,该公式本质就是计算attention)。
即:α(t)=[α(t)1,α(t)2,...,α(t)n]其中n是D中单词的个数

得到了α(1),α(2),...,α(m)之后,我们将其送入一个merge function


所谓 consensus, 是要在 query 的每个单词上达到某种共识; 所谓 consensus attention, 就是在单词对应的 attention 之间取得共识,本文用merge function来代表这种共识: s=f(α(1),,α(m)) (m 表示 query 的长度).


本文定义了三种merge function:

  1. max (此时的共识就是推举出最大的 attention): ssoftmax(maxt=1mα(t));
  2. sum (此时的共识就是考虑所有的 attention): ssoftmax(t=1mα(t));
  3. avg (此时的共识就是考虑所有 attention 的均值): ssoftmax(1mt=1mα(t));

(注:本人认为本文这个地方有点强行解释的感觉)


最后, 和 ASReader 一样, 对 document 中 unique word, 计算所有位置上的概率和:

P(w|D,Q)=iI(w,D)si,wV
其中I(w,D) 是指示函数, 表明单词 w 出现在 D 的位置。

相关文章: