论文来源:ACL2016
作者:Danqi Chen and Jason Bolton and Christopher D. Manning
Computer Science Stanford University
问题:机器阅读理解问题(Reading Comprehension)
主要方法:
1.提取特征构建传统的分类器,这里其实是转换成了候选实体的ranking问题,即将ranking得分最高的实体作为答案。这里主要用了以下八个特征
(1)Whether entity e occurs in the passage
(2)Whether entity e occurs in the question
(3)The frequency of entity e in the passage.
(4)The first position of occurence of entity e in the passage.
(5)n-gram exact match
(6)Word distance
(7)Sentence co-occurrence
(8)Dependency parse match
2.End-to-end Neural Network,利用带attention的神经网络去训练并预测正确答案。
这里的神经网络模型主要是利用双向LSTM对passage和question分别进行encoding,并利用词与问题之间的相关性得到attention值,利用这个attention值对passage的embedding进行加权,得到一个最终的输出向量o,用于答案的预测。具体公式如下:
Encoding:
(i)p: p1,...,pm∈Rd and q : q1,...,ql∈Rd.
(ii)a shallow bi-directional LSTM with hidden size h ̃ to encode contextual
embeddings of each word in the passage
(iii) another bi-directional LSTM to map the question q1,...,ql toan embedding q∈Rh.
Attention:
Prediction:
相关工作:
1. AttentiveReader(Hermann et al., 2015) based on CNN and Daily Mail datasets
2. MCTest (Richardson et al., 2013)主要是短篇的小说故事,并带有what, why, how, whose, which这些类型的问题,数据集共有660篇,每篇带有四个问题,对于这个数据集,目前比较好的方法还是依赖于人工构建出来的句法和语义特征并结合上一些附加的先验知识
3. Children Book Test (Hill et al., 2016)从儿童故事书中抽出连续的21个句子,将前20句作为passage,目标是预测出第21句中缺失的词。对于预测动词和介词,利用语言模型或rnn并结合词的上下文信息是比较有效的,但对命名实体以及普通名词则需要利用全文的信息去做预测。对于该数据集,目前比较好的方法是基于窗口的记忆网络(window-based memory networks)
4. bAbI (Weston et al., 2016)人工构建的数据集,包含20种不同的推理类型,主要侧重于推理、归纳、演绎的能力,目前许多种类型的记忆网络在这个数据集上能获得比较好的效果。但是这个数据集的词表很小,只有100~200个词,而且语言变化相对简单,与实际数据有一定差距。
简评:
这篇论文主要是基于Hermann的《Teaching Machines to Read and Comprehend》更深入地做了一些研究工作。对于CNN/Daily Mail数据集,作者提出了两种模型,一种基于特征去做ranking,另一种就是带attention的神经网络模型。神经网络模型主要基于Hermann的模型并做了一些改进,最主要的一个改进是在计算question embedding和passage embedding的相关度,即attention值的时候,用bilinear term代替了tanh层,结果表明,用bilinear term能够有效地提升模型效果,第二个改进主要是对模型的简化,原有模型在得到了带attention的embedding o之后,用了一层非线性层对embedding o和question embedding进行结合,再做预测,实验结果表明,去掉该非线性层对模型效果影响不大,还有一点改进就是预测所用的词表只使用在passage中出现过的entity。从结果上看,基于特征的模型已经超过之前的大多数模型,而end-to-end神经网络更是将state-of-the-art提高了5%以上。
除了模型方面的改进,作者另一个重要的工作是对数据进行了分析。作者抽取了100个样例进行具体分析,将100样本按照问题的类型划分成了六类,并分析了模型解决每一类问题的准确率。数据集的构成方式决定了该数据集有一定的噪声,分析结果显示,100个样本中有8%的指代错误,17%的样本语义模糊不清或者人都难以回答,因此作者认为模型达到72.4%的准确率已经基本达到了这个数据集的最佳结果。
深度学习需要有足够的训练数据才能训练出有效的模型,之前的阅读理解任务受限于数据量的大小,基本上都是用基于特征的方法来解决问题。而随着CNN/Daily Mail数据集及Children Book Test (Hill et al., 2016)等数据集的出现,解决了训练数据量的问题,使得深度学习方法在阅读理解任务上也取得了很好的效果。但是由于这些数据是通过一些方法自动生成的,没有经过严格的人工标注,因而存在一些噪声,正如本文中对数据样本的分析可以看到,这些噪声一定程度上限制了模型的效果,因而对这部分数据进行校正和修改,对提升模型效果有一定的帮助。阅读理解任务有难易之分,目前机器对语义的理解能力还不够,推理、演绎的能力不足,要想真正达到理解语义的程度,我想不仅需要对数据集有一定的要求,对模型的改进也是必不可少的。