Danqi_Chen & Jason_Weston
Paper:
http://www.aclweb.org/anthology/P/P17/P17-1171.pdf
Code:
https://github.com/facebookresearch/DrQA
工作意义:
(1)相比与之前Machine Comprhension,该论文并不提供关联段落,需要在知识源(Wikipedia)检索出来相关片段然后抽取出正确答案。论文涉及的是更广泛的场景。
(2)提出了two-stage模型解决,构造实验来判断整个模型方法的好坏。
模型:DrQA
Document Retriever:非机器学习的方法,倒排索引。基于文章和问题的TF-IDF带权重的bag-of-word vectors进行比较。
Document Reader 词表征使用了:
(1)词向量表征(300维);
(2)准确匹配特征(问题中出现的词是否与当前词精确匹配);
(3) 词的POS,NER和Term Frequency(已经normalized,在整个训练数据normalize还是整篇文章?);
(4)以当前词为query vector去对问题做attend操作,反馈回来得到对齐的问题向量。
最后使用了LSTM模型进行表征学习。
问题表征建模:序列模型加attention模型。
预测:分别对答案text span的start 和end进行预测,训练两个分类器(思考点:与CRF在效果上是否有所区别?)
数据
Wikipedia:作为知识来源,基于此构造问答系统。
SQuAD:Stanford 公布的大规模知识问答数据,用来学习模型
CuratedTREC, WebQuestions 和 WikiMovies:来测试整个模型在开放领域的能力。其中WebQuestions, 问题是由Google Suggest API收集,答案对应在Freebase上。
Distantly Supervised Data:基于(Mint et al., 2009) 的方法,为以上四个数据集构造答案相关段落,构成distantly supervised data。使用Document Retriever选出top5的wikipedia articles,具体如下:
【1】所有没有正确匹配到答案的段落被省略;
【2】所有没有超过25或大于1500字符的段落被省略;
【3】如果问题中存在命名实体,去掉那些没有这些实体的段落;
【4】考虑问题和文本的重叠程度,保留top5的段落。同时也为SQuAD构造Distant数据,发现大约有一半的数据来自SQuAD提供的文本之外。
Document Retriever 实验
寻找相关文档
设置: 输入问题检索相关文档,指标为top 5的文章中包含答案的比例。
Baseline: Wikipedia Search Engine。
实验结果:
(1) Plain 和 +bigrams的方法明显好于WikiSearch ;
(2) embedding 方法表现差(文中使用的embedding的方法较为简单; 考虑到复杂度的问题,这里不太适用使用复杂的NN model去追求较高的效果);
Document Reader实验
SQuAD,
设置:dropout_rate = 0.3, 同时在词向量和LSTM的hidden units上同时使用。
Baseline:SQuAD leadboard 上最好的系统
实验结果:单系统(EM:70%, F1: 79%);POS,TF和NER特征对结果影响较少;同时去掉精确匹配和对齐向量,最终效果会下降较大(这两个特征都是基于问题文本的特征【效果好坏的关键: 如何获得问题和文本之间有效的交互表征】)。
Full System 实验
思路:测试整个模型在整个领域的泛化,其中Document Retriever 构造Distantly Supervised (DS) Data,Document Reader 进行学习。
实验设置:
(1)基于SQuAD,只使用SQuAD的数据作为training;
(2)Fine-tune,先在SQuAD数据集上pre-trained,之后在DS进行finetune;(3)Multitask,将SQuAD和所有DS的数据放在一起进行训练。
实验结果:增加数据对最后的结果有很大程度的提升;Multi-task learning 的学习方法比Fine-tune效果更好。
思考:
模型并非端到端。简单的端到端模型会使整个模型的搜索空间巨大,因此如何减少搜索空间,同时进行端到端建模是模型提升的关键。