上篇博文我们通过介绍机器阅读理解的奠基之作《Teaching Machines to Read and Comprehend》对CNN&DailyMail语料库进行了分析,但由于CNN&DailyMail的answer只能是实体对象,且只能出现在原文中,而使得基于该语料库训练的模型缺乏推理能力,于是斯坦福大学的Rajpurkar等人于2016年在自然语言处理的顶级会议EMNLP上发布了SQuAD语料库。论文下载。数据集下载。SQuAD通过众包的方式,从wikipedia上的536篇文章提取超过10w个问题-答案对,且其中的答案是原文的一个片段而不是单一的实体对象。图1展示了SQuAD语料库中的一个原文-问题-答案样本。
图 1 SQuAD语料库中的一个原文-问题-答案样本
1 语料库对比机器阅读理解是一个数据驱动的研究领域,近几年不同的机构都发布了大大小小的机器阅读理解语料库,图2展示了机器阅读理解领域知名语料库对比。
图 2 机器阅读理解领域知名语料库对比
其中,MCTest:660篇文章,每篇文章包含4个问题,每个问题有四个选项;WikiQA是定位答案在原文所在句子的位置,而SQuAD定位的是答案在原文哪个句子中哪些范围的单词;CNN&DailyMail是完形填空式风格的语料库,其答案一定是实体对象,而SQuAD的答案不一定是实体对象。
2 SQuAD分析2.1 多样的答案类型
图3展示了SQuAD语料库中答案的多种类型。
图 3 SQuAD语料库中答案的多种类型
从图3中可看出,19.8%的答案为日期和其他数字类;有32.6%的答案为三种不同类型的专有名词:人名、地名以及其它实体对象;31.8%为名词短语;其余15.8%由形容词短语、动词短语、从句和其他类型组成。
2.2 SQuAD语料库的推理能力
Rajpurkar通过构造问题与答案所在原文的句子之间的多种差异类型来增加SQuAD语料库在问题求解时的推理能力。图4展示了SQuAD语料库中问题与答案所在原文的句子之间的差异类型。
图 4 SQuAD语料库中问题与答案所在原文的句子之间的差异类型
由图4可看出,
-
Lexical variation-词汇差异:
同义词推理,如called-referred
背景知识积累/推理,如governing bodies-The European Parliament and the Council of the European Union -
Syntactic variation-句法差异:
即使将问题转化为陈述句后,其与答案所在原文句子的句法结构具有差异 -
Multiple sentences reasoning-答案需要在原文多个句子中进行推理才能得到
- Ambiguous-众包问题无法有唯一的答案,或众包得到的答案并不对
2.3 问题和答案所在句子的句法差异性
图5 展示了问题和答案所在句子的句法差异性计算过程
图 5 问题和答案所在句子的句法差异性计算过程
首先找出两个句子(问题和答案所在原文句子)的相似词,比如first,然后再question中找到wh开头的词(即what、why、which等等),而答案所在原文句子则以句子的第一个词作为开头,计算两个句子的编辑距离;对于两个句子有多个相似词,则选最小编辑距离作为句法差异度的度量值。两个句子的句法差异度的度量范围在0~8之间,如图6所示,编辑距离小不代表问题很容易回答,因为问题在原文中可能有多个同样编辑距离小的句子。
图6 (a) 编辑距离为0的两个句子
图6 (b) 编辑距离为6的两个句子
图7 展示了SQuAD语料库在句法差异的分布情况。
图 7 SQuAD语料库在句法差异的分布情况
3 模型及实验结果Rajpurkar使用逻辑回归算法构建机器阅读理解模型,分析开发集发现,有77.3%的答案来源于原文,那么在训练过程中,规定答案一定是来源于原文,如果答案不出现在原文,则将原文中能表达答案同等意思的最小部分作为答案。
3.1 特征工程
模型的特征工程总共包含了1.8亿个特征,其中大部分是词汇化特征或依赖树路径特征,图8 展示了特征工程中特征详细信息。
图8 特征工程中特征详细信息
由图8可以看出,
- 匹配词(matching word)、双字词的词频(bigram frequencies)和词根匹配(root match)特征帮助模型定位候选答案所在句子;
- 长度特征(Length features)帮助模型选择具有共同长度和位置的答案跨度;
- 跨度中的词频(span word frequencies)特征帮助模型剔除偏僻词;
- 成分类型特征(Constituent label)和跨度中单词的词性标注特征(span POS tag features)帮助模型确定正确答案类型;
- 词法特征(lexicalized features)和依赖树路径特征(dependency tree path features)来定量问题与候选答案句子之间的词法和句法多样性。
3.2 参数设置
- 损失函数:交叉熵损失
- 优化方法:AdaGrad
- 初始化学习率:0.1
- 正则化:L2(0.1/batch size)
3.3 基线方法
-
sliding-window
对于每一个候选答案所在的句子,剔除候选答案本身后,计算其与问题之间单个单词和两个单词的重叠个数,重叠个数最大的句子即为正确答案。 - 基于距离(distance-based )的计算
计算问题与候选答案所在句子之间的距离,距离越小的句子即为正确答案。
3.4 评价方法
- 完全匹配(Exact Match),即预测的答案与正确答案完全相符
- F1值
3.5 实验结果
图9 展示了不同模型实验结果,我们可以看到逻辑回归模型远优于基线方法,但离人类的表现还差很远,说明基于SQuAD语料库的机器阅读理解研究还有很大空间。
图9 不同模型实验结果对比
图 10 展示了逻辑回归模型在剔除某种特征后模型的实验结果。我们可以看出词法特征(lexicalized features)和依赖树路径特征(dependency tree path features)对模型影响最大,而剔除其它特征几乎不会对逻辑回归模型造成很大的影响。
图 10 逻辑回归模型在剔除某种特征后的实验结果
图 11 展示了模型在不同答案类型的表现情况。我们可以看到模型对数字类和实体类表现良好,而人对所有类型答案的表现都差不多。
图11 模型在不同答案类型的表现情况
图 12 展示了在不同问题与答案所在句子之间的句法差异对模型的影响。我们可以看出随着句法差异越来越大,模型性能逐渐降低,但人类的表现却很稳定。
图 12 不同问题与答案所在句子之间的句法差异对模型的影响