A Thorough Examination of the CNN/Daily Mail Reading Comprehension Task
- (一)论文概述(摘要+简介)
- (二)阅读理解任务
- (三)模型
- Entity-centric classifier
- End-to-end neural network
- (四)实验
- 训练细节
- 主要结果
- (五)数据分析
- (六)总结(相关研究+结论)
https://arxiv.org/pdf/1606.02858.pdf?
A Thorough Examination of the CNN/Daily Mail Reading Comprehension Task
最近在读陈丹琦学姐的博士毕业论文,论文里面涉及到的关键论文和模型都会在近期进行总结,以帮助理解毕业论文中的相关模型以及思想。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)
【笔记1-4】陈丹琦毕业论文 NEURAL READING COMPREHENSION AND BEYOND
(一)论文概述(摘要+简介)
本文的研究主要基于Hermann创建的由CNN和daily mail的新闻组成的数据库,一方面,对这个数据集亲手进行了详细的分析,另一方面,提出一个简单的模型来处理该数据集,在当时能够达到该数据集上的最佳水平,且作者认为这个水平就是模型在这个数据集上能够达到的最高上限了。
该数据集属于完形填空类数据集,需要根据上下文来推断文中某个位置的实体单词,作者通过仔细分析数据集以及探索机器阅读在这个问题上需要具备什么程度的阅读理解能力,得出了以下结论:
- 数据集比以前更容易实现
- 简单、传统的自然语言处理系统可以做得更好
- 深度学习系统的分布式表示在语义识别方面非常有效
- 当前系统具有单句关系提取的性质,而不是语篇上下文文本理解
- 提出的模型接近于该数据集的性能上限
- 答对最后20 %的问题的可能性低,大多数问题涉及数据准备中的问题
(二)阅读理解任务
在该阅读理解任务中,模型需要完成的任务是阅读一篇文章,回答一个完形填空式的问题,该问题的答案为一个实体。即,每一个任务包含三个部分
(三)模型
Entity-centric classifier
先构建一个传统的基于特征提取的分类器,以检测哪些特征对于该任务而言比较重要。
为每一个候选实体设计一个特征向量 ,学习一个权重向量 使得正确答案的ranking比其他候选实体高(即转换成候选实体的ranking问题,将ranking得分最高的实体作为答案)主要用到以下八个特征:
- 实体e是否在文章中出现;
- 实体e是否在问题中出现;
- 实体e在文章中的词频;
- 实体e在文章中第一次出现的位置;
- 实体e的n-gram匹配特征:计算在文章中实体e周围的的文本(左右1到2个单词)与问题中答案占位符周围的文本间的n-gram匹配度(exact match);
- 词距离特征:计算实体与问题中每个关键词的最小词距离的平均值;
- 句共现特征:在问题中的实体e与另一个实体或动词一起出现是否在文章的某些句子中也是一起出现;
- 依存句法特征:是否有 和 的共同存在,或者 和
End-to-end neural network
基于Hermann的AttentiveReader的神经网络,分为encoding,attention和prediction三个部分。
Part 1:encoding
step 1:word embedding
将所有的单词都通过一个embedding 矩阵 用d维的词项量来表示,得到:
step 2:双向RNN
使用一个hidden size为 的双向RNN神经网络(这里使用的是GRU,因为结果表明它和LSTM的表现差不多,但计算量却少很多)对文章中的每个词的词向量encode一个基于上下文的embedding
对于问题中的每个词向量 ,也使用一个双向RNN得到对应的embedding
Part 2:Attention
在这一步中需要做的是比较问题的embedding与上下文embedding,选择与问题相关的信息。
step 1:概率分布
根据文章中词语p与问题中词语q之间的相关程度,计算出一个概率分布 :
其中,是一个双线性项,与点乘相比,可以更加灵活地计算 之间的相似性。
step 2:上下文embedding的加权
Part 3:Prediction
上下文加权得到向量之后,模型就能够基于此输出最有可能的答案:
最后,在上加上softmax,并使用负对数似然函数作为训练的目标函数。
与Hermann 2015之间的差别:
前面提到本文的模型是建立在Hermann 2015 的AttentiveReader的基础上的,但是却在该模型的实验效果上提高了7-10%。具体来说,本文的模型与Hermann 2015之间存在以下差别:
- 计算问题与上下文embedding之间的关系时使用的是双线性项(其有效性在Luong 2015中得到过证明),而不是tanh layer,这一点被认为是最重要的区别之处。
- 计算出上下文加权embedding
- 原模型在预测时使用了embedding matrix当中的所有词汇 ,但本文的模型只在文章中出现过的实体范围内进行预测。可以简化模型。
(四)实验
训练细节
训练传统分类器时,将机器阅读理解看成是一个排序问题,并使用RankLib包的LambdaMART来构建boosted决策树森林模型
训练神经网络时,只保留出现频率最高的 单词(包括实体和placeholder标记)
优化函数:SGD(以10为界进行梯度裁剪)
词向量维度:100(使用预训练好的100维GloVe词向量)
学习率:0.1
损失函数:
GRU网络中的权值初始化:满足高斯分布N(0, 0.1)
隐藏层大小h:CNN(128),Dailymail(256)
Attention层权重矩阵初始化范围:[-0.01, 0.01]
batch size:32
dropout:0.2
单核GPU(GeForce GTX TITAN X)
CNN: 3h/epoch Daily Mail: 12h/epoch (共30个epoch)
主要结果
下图展示了模型结果的对比,首先,传统的基于决策树的模型准确率达到了67.9%,这一准确率比Hermann在论文中提到的模型表现要好,说明合适的特征工程在这个数据集上能够实现较好的结果。其次,单一的神经网络比之前的实验结果高出5%,relabeling让模型有0.6%-0.9%的提升。
基于boosted决策树森林的机器阅读理解模型,分析不同特征对模型的影响。下图展示了在CNN数据集中模型的特征消融分析实验结果,Accuracy表示从特征工程中去掉相应特征后的准确性,也就是说准确率越低表示被去掉的特征越重要,可以看出,词频和n-gram是最重要的两个特征。
(五)数据分析
从CNN数据集中随机抽取100个样本进行分析,对样本进行分类:
- exact match:问题周围的词汇和文中对应实体周围的词汇相同
- sentence-level paraphrasing:问题完全是文章中某个句子的改写
- partial clue:从一部分信息进行推理,比如某些信息的重合
- multiple sentences:答案需要考虑多个句子
- coreference error:视为无法回答的问题
- ambiguous or very hard
对于不同类型的问题,模型有不同程度的表现:exact match正确率100%,ambiguous/hard模型表现很差,神经网络在paraphrasing和lexical variation方面表现更好。
(六)总结(相关研究+结论)
相关研究:
- AttentiveReader(Hermann et al., 2015) 前文已经介绍,不再赘述
- MCTest (Richardson et al., 2013)主要是短篇的小说故事,并带有what, why, how, whose, which这些类型的问题,数据集共有660篇,每篇带有四个问题,对于这个数据集,目前比较好的方法还是依赖于人工构建出来的句法和语义特征并结合上一些附加的先验知识
- Children Book Test (Hill et al., 2016)从儿童故事书中抽出连续的21个句子,将前20句作为passage,目标是预测出第21句中缺失的词。对于预测动词和介词,利用语言模型或rnn并结合词的上下文信息是比较有效的,但对命名实体以及普通名词则需要利用全文的信息去做预测。对于该数据集,目前比较好的方法是基于窗口的记忆网络(window-based memory networks)
- bAbI (Weston et al., 2016)人工构建的数据集,包含20种不同的推理类型,主要侧重于推理、归纳、演绎的能力,目前许多种类型的记忆网络在这个数据集上能获得比较好的效果。但是这个数据集的词表很小,只有100~200个词,而且语言变化相对简单,与实际数据有一定差距。
总结:
文章主要关注CNN和daily mail数据集相关的阅读理解问题,提出了当时表现最好的模型,并对数据进行了详细的分析,得出了以下结论:
- CNN/daily mail对于阅读理解模型的训练很有价值‘
- 数据中存在一定的噪声和共指错误
- 最佳的表现已经在文章中得到了实现
作者还指出,未来需要有更好的数据集来支持更加复杂的阅读理解任务