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,分别用于从广大的数据来源中提取与问题相关的文章,根据提取的文章找到问题的答案,完成阅读理解工作。
实验结果表明文章建立的两个部分的模型和其他已有的模型相比效果较好;多任务学习以及远距离监督的结合对于这一项任务而言十分有效。
根据作者在文中用到的思想,方法和数据,对以下相关研究进行了对比分析:
总体上,DrQA具有以下几个特点:
模型概述:
对于相关文章提取部分,作者采用了经典的信息检索(非机器学习)思想来缩小搜索范围:分别计算问题和文章的bigram的TF-IDF向量,然后结合两个TF-IDF得到与问题最相关的五篇文章。
这种基于统计的做法可以保证检索速度。缺点在于完全基于统计的做法忽略了词与词之间的内在含义的关联性,且与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模型,得到预测的答案。
需要特别指出的是,这里的特征向量 p i ~ \tilde{\mathbf{p_i}} pi~并不像传统的embedding矩阵那么简单,而是由以下三个部分组成:
Question的编码简单一些:
由于最终的答案一定是从paragraph中生成的,因此只用找到答案在paragraph中的单词区间,即找到开始字符和结束字符各自的位置即可。
对于开始和结束的位置,训练两个分类器,将段落向量 { p 1 , . . . . . . p m } \{\mathbf{p_1,......p_m}\} {p1,......pm} 和问题向量 q \mathbf{q} q 作为输入,获取 p i \mathbf{p_i} pi 和 q \mathbf{q} q 之间的相似度,通过两个带有exp函数的线性网络分别计算每个字符成为开始字符和结束字符的概率:
P s t a r t ( i ) ∝ e x p ( p i W s q ) P_{start}(i) \propto exp(\mathbf{p_i}\mathbf{W_s}\mathbf{q}) Pstart(i)∝exp(piWsq) P e n d ( i ) ∝ e x p ( p i W e q ) P_{end}(i) \propto exp(\mathbf{p_i}\mathbf{W_e}\mathbf{q}) Pend(i)∝exp(piWeq) 在预测的过程中,选择从token i i i 到token i ′ i' i′的最佳范围,该最佳范围满足: i ≤ i ′ ≤ i + 15 i \leq i' \leq i+15 i≤i′≤i+15 且 P s t a r t ( i ) ∗ P e n d ( i ′ ) P_{start}(i) * P_{end}(i') Pstart(i)∗Pend(i′) 最大。
在训练过程中,将 P s t a r t ( i ) P_{start}(i) Pstart(i) 和 P e n d ( i ′ ) P_{end}(i') Pend(i′) 记为start_score和end_score,则损失函数由两个部分相加得到,即start_score与target_start的负对数似然函数加end_score与target_end的负对数似然函数得到最终的损失函数,进而可以使用反向传播来更新所有参数。
wikipedia:作为寻找问题答案的知识库
只保留文字,一共5075182篇文章和9008962个不同的字符
SQuAD:用来训练document reader
基于维基百科的机器阅读数据集,训练集包含87k个示例,开发集包含10k个示例,以及一个很大的隐藏测试集,可以通过Creator获取。
每个样本包含一个自然段、问题和人工答案,通常用exact string match与F1 score两种评估方法,都是在字符级别进行评估。
SQuAD是最大的问答数据集,但本文的模型定位是用于开放领域的问答系统,所以仅用SQuAD数据集训练和评估Document Reader的机器阅读理解能力,在SQuAD验证集上做测试。
与其他论文中的测试不同的是,这里作者剔除了自然段,仅仅给出问题以及wikipedia数据库,让模型自己去匹配对应的自然段然后找出答案。
CuratedTREC、WebQuestions、WikiMovies:用来测试模型在开放域数据集上的表现,并用于衡量多任务学习和DS的效果。
与SQuAD不同,这三个数据集只包含问题和答案,没有关联的文档或段落,因此无法用来直接训练Document Reader。
作者采取了Mintz在论文Distant supervision for relation extraction without labelled data中提出的Distant Supervised方法来构建训练集,该方法的核心思想是基于已有的关系库来为训练样本匹配文章。(见下)
具体步骤:
(1)基于数据集中的问题,使用document retriever提取相关性最高的5篇文章。
(2)对于五篇文章中的所有段落,抛弃不包含与已知答案完全匹配(no exact match)的段落,抛弃小于25个字大于1500个字的段落,若有的段落中包含命名实体,抛弃那些不包含命名实体的段落
(3)对于留下来的所有段落,从段落中找出包含答案的span,这里是基于word水平的,也就是unigram,首先找到段落中包含答案的完整区间[start, end],然后基于20 token window,从start向左延展20个word,从end向右延展20个word(要保证左右两边不能溢出,溢出则取边界)得到一个备选小段落
(4) 从备选小段落中找出最有可能的5个小段落,要与问题进行比较。分别对每个小段落统计它的bigram,同时也统计问题的bigram,最后统计每个小段落的bigram与问题的bigram有多少交集,最后对交集求和,求和总数最多的5个小段落为最有可能的段落。比如小段落的bigram是{‘i am’:2, ‘you are’:3, ‘how are’: 1},问题的bigram是{‘i am’: 3, ‘you are’: 1},交集是{‘i am’:2, ‘you are’:1},求和就是3次。
(1)首先对document retriever进行测试,结果表明这一文档检索工具比wikipedia search的效果更好,尤其是在引入bigram哈希的时候。
(2)然后对document reader部分进行测试。
在具体实现过程中,作者使用三层双向LSTM,包含128个隐藏单元,对段落和问题进行编码,使用Stanford CoreNLP toolkit做标记(tokenization)词性生成以及命名实体标签。按照段落长度对训练样本进行排序,将样本分成大小为32的mini-batch,使用adamax作为优化器,对词嵌入和LSTM隐藏单元使用p=0.3的dropout
结果表明,作者提出的这个理论上较为简单的模型表现很好,并对前文所述的特征向量进行了切除分析。分析结果表明只去除 f a l i g n f_{align} falign这个特征对模型表现影响不大,但是同时去除 f a l i g n , f e x a c t m a t c h f_{align}, f_{exact_match} falign,fexactmatch模型的表现就会大幅度下降,这可能是因为两者的作用相似又互补。
(3)最后对DrQA模型整体进行实验,将DrQA用于前述数据库,并对比分析多任务学习和远距离监督的效果。
先在SQuAD上训练一个简单地document reader,然后基于SQuAD预训练一个document reader并使用每个数据集的远距离监督(DS)训练集对模型进行fine-tune,最后在SQuAD以及其他DS训练集上集合训练一个document reader。
结果表明引入DS和多任务学习对模型的提升效果不明显,表明其中存在任务迁移,而DS的单独引入对模型的提升可能是由于额外数据的引入,最终最好的模型是multitask (DS)
本文基于MSR任务,利用维基百科构建了一个开放域的问答系统DrQA,由document retriever和document reader两个部分组成,分别负责文章提取和阅读理解。实验结果表明,引入多任务学习以及远距离监督(DS)的模型效果最好。