Reading Wikipedia to Answer Open-Domain Questions
https://arxiv.org/pdf/1704.00051.pdf
Reading Wikipedia to Answer Open-Domain Questions
最近在读陈丹琦学姐的博士毕业论文,论文里面涉及到的关键论文和模型都会在近期进行总结,以帮助理解毕业论文中的相关模型以及思想。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)
【笔记1-3】斯坦福机器阅读理解模型Stanford Attentive Reader
【笔记1-4】陈丹琦毕业论文 NEURAL READING COMPREHENSION AND BEYOND
(一)论文概述(摘要+简介)
出发点: 以往的机器阅读理解任务所包含的数据集都十分有限,不仅局限于某一个领域,而且往往是基于文章进行答案检索,这对于人们日常生活中的检索需求而言,不太相符。而维基百科作为一个随时更新的知识库,有着很多人们感兴趣的内容,如果能让机器也能阅读这样海量的知识文档,并准确回答我们所需的问题,这对于我们检索并了解知识而言十分有用,因此提出了这个基于维基百科的开放域问题问答系统DrQA。
该文章以维基百科作为知识来源,建立了一个开放域问答系统DrQA,用于处理大规模机器阅读任务(MRS, machine reading at scale)。
模型包含两个部分,分别是Document Retriever和Document Reader,分别用于从广大的数据来源中提取与问题相关的文章,根据提取的文章找到问题的答案,完成阅读理解工作。
实验结果表明文章建立的两个部分的模型和其他已有的模型相比效果较好;多任务学习以及远距离监督的结合对于这一项任务而言十分有效。
(二)相关研究
根据作者在文中用到的思想,方法和数据,对以下相关研究进行了对比分析:
- 以往的开放域回答都基于非结构化的文档展开,尽管随着knowledge bases(KBs)的发展,许多数据实现了创新,但KBs依旧存在不完整,模式固定的缺点。
- 对于机器阅读理解的发展,现在已经有了很多表现较好的模型,但除了传统的数据库之外,这些模型的表现还没有在开放域问题上得到检验。
- 对于维基百科这一数据来源,有过将维基百科与其他数据结合,用维基百科进行阅读理解答案修正的研究,但该文章将维基百科作为唯一数据来源,以明确模型在大规模机器阅读任务(MRS)上的表现。
- 使用网页完成问答的模型还有AskMSR, DeepQA, YodaQA, 但这些模型都有多个数据来源,为该文章模型的表现评估提供了一个参考上界。
- 多任务学习和任务迁移也是经常用于机器阅读的工具,尤其是自然语言处理领域。以往的研究都致力于通过多任务学习实现多个问答数据集的结合:利用任务迁移来提高模型在数据集上的表现;利用数据集的多样性提供一个能回答各种问题的工具。
(三)DrQA
总体上,DrQA具有以下几个特点:
- 将bigram与TF-IDF结合,使用哈希降维,减少存储空间;
- 段落的字符编码考虑了词嵌入,词性,与问题相关的硬注意力以及软注意力;
- 通过远程监督为传统数据集扩充样本,结合多任务学习;
- 使用维基百科作为唯一数据来源,不需要预先划定段落重点;
1. Document Retriever (提取文章)
模型概述:
对于相关文章提取部分,作者采用了经典的信息检索(非机器学习)思想来缩小搜索范围:分别计算问题和文章的bigram的TF-IDF向量,然后结合两个TF-IDF得到与问题最相关的五篇文章。
这种基于统计的做法可以保证检索速度。缺点在于完全基于统计的做法忽略了词与词之间的内在含义的关联性,且与Document Reader分离,无法进行端对端训练。
具体实现:
- 对语料单词进行清洗,包括去停词等过滤操作
- 统计所有的bigram,并对bigram做同样规则的清洗得到最终的bigram
- 将这些bigram进行murmur3 hashing得到每个bigram的id(如果哈系特征数目设置过小,可能会有两个不同bigram的id相同,文章用了特征数目为2^24,可以尽量避免这种哈希冲突)
- 根据TF-IDF公式计算每个bigram的IDF向量以及TF向量,将IDF乘以TF得到TF-IDF向量
- 将问题的TF-IDF向量与文章的TF-IDF向量相乘取最大的前五个的文章的索引,得到与问题最相关的5篇文章(因为TF-IDF是衡量一个词(或其他形式的元组)对一个文档的重要性,如果一些词既对于问题很重要,又对于文章很重要,那么就可以得出结论这个问题与这个文章的关联性很大)
2. Document Reader (回答问题)
模型概述:
给定一个带有 l l l 个记号(token) { q 1 , . . . . . . , q l } \{q_1,......,q_l\} {
q1,......,ql}的问题 q q q 以及一个包含 n n n 个段落的文档(或文档集合)每个段落 p p p 包含 m m m 个记号 { p 1 , . . . . . . , p m } \{p_1,......,p_m\} {
p1,......,pm}
轮流对每个段落应用一个RNN模型,得到预测的答案。
2.1 Paragraph encoding
- 将每一个token p i p_i pi 转换成特征向量 p i ~ ∈ R d \tilde{\mathbf{p_i}}\in \mathbb{R}^d pi~∈Rd
- 将特征向量 p ~ \tilde{\mathbf{p}} p~ 作为多层双向RNN(LSTM)的输入,取各隐藏层的隐藏单元得到 p \mathbf{p} p
{ p 1 , . . . . . . p m } = R N N ( { p 1 ~ , . . . . . . , p m ~ } ) \{\mathbf{p_1,......p_m}\} = RNN(\{\tilde{\mathbf{p_1}},......,\tilde{\mathbf{p_m}}\}) { p1,......pm}=RNN({ p1~,......,p