摘要
教机器阅读自然语言文档仍然是一项艰巨的挑战。可以对机器阅读系统回答问题的能力进行测试,该问题基于它所看到的文档被提出,但是到目前为止,对于这种类型的评估,缺少大规模的训练和测试数据集。在这项工作中,我们定义了一种解决该瓶颈并提供大规模监督阅读理解数据的新方法。这使我们能够开发一类基于注意力的深度神经网络,以最少的语言结构先验知识来学习阅读真实文档和回答复杂问题。
1.介绍
从浅层的词袋信息检索算法到机器能够读取和理解文档的技术进展缓慢。传统的机器阅读理解方法是基于手工设计的语法或检测谓词参数三元组的信息抽取方法,这些信息随后可作为关系数据库被查询。由于缺乏大规模的训练数据集,以及难以构建足够灵活的统计模型以学习利用文档结构的方法,因此在该领域上缺乏监督机器学习的方法。
虽然获得监督的自然语言阅读理解数据已被证明是困难的,但一些研究人员已经探索了生成综合叙述和问题的方法。这样的方法允许生成几乎无限量的监督数据,并使研究人员能够将算法的性能隔离到单个模拟现象上。对此类数据的研究表明,基于神经网络的模型有望为阅读理解建模,我们将在此基础上进行构建。但是,从历史上看,计算语言学中许多类似的方法都无法处理从合成数据到真实环境的过渡,因为这种封闭的世界不可避免地无法捕获自然语言的复杂性,丰富性和噪音。
在这项工作中,我们试图通过引入一种新颖的方法来构建有监督的阅读理解数据集,来直接解决真正的自然语言训练数据的缺失。我们观察到,使用简单的实体检测和匿名化算法,摘要和复杂句及其相关文档可以轻松转换为【context–query–answer】三元组。使用这种方法,我们从CNN和Daily Mail网站中收集了两个新的语料库,包含大约一百万个新闻故事,以及相关的问题。
我们通过建立用于阅读理解的新型深度学习模型来证明新语料库的功效。这些模型借鉴了将注意力机制整合到循环神经网络体系结构中的最新进展。这使模型可以专注于它认为将有助于回答问题的文档方面,还可以使我们可视化其推理过程。我们根据最先进的自然语言处理(NLP)管道提供的传统框架语义分析,将这些神经模型与一系列基准和启发式基准进行比较。我们的结果表明,神经模型可以实现更高的准确性,并且无需对文档或问题结构进行任何特定的编码即可实现。
2.用于阅读理解的监督训练数据
阅读理解任务自然很容易将其表述为监督学习问题。具体来说,我们试图估计条件概率
,其中
是上下文文档,
是与该文档有关的问题,而
是该问题的答案。为了能够专注评估,我们希望能够排除其他信息,例如从共现统计中获得的世界知识,以便测试模型检测和理解上下文文档中实体之间的语言关系的核心能力。
这种方法需要一个庞大的【document–query–answer】三元组作为训练语料库,直到现在,这种语料库仅限于数百个样例,因此大部分仅用于测试。这种局限性意味着该领域的大多数工作都采取了无监督方法的形式,这些方法使用模板或句法/语义分析器从文档中提取关系元组以形成可以查询的知识图谱。
在这里,我们提出了一种用于创建真实的,大规模的有监督的训练数据以学习阅读理解模型的方法。受到总结工作的启发,我们通过利用在线报纸文章及其匹配的摘要创建了两个机器阅读语料库。我们从CNN收集了93k文章,从Daily Mail网站收集了220k文章。两家新闻提供者都在其文章中添加了许多要点,以总结文章中所含信息的各个方面。最重要的是,这些摘要要点是抽象的,不是简单地从文档中复制句子。我们通过一次将一个实体替换为一个占位符,将这些要点转换为
样式的问题,从而构造了【document–query–answer】三元组。 这样得出的合并语料库大约为1M个数据点(表1)。在线提供了用于复制我们的数据集并将此方法应用于其他来源的代码。
2.1 实体替换和排列
请注意,本文的重点是提供一个语料库,用于评估模型在不依赖世界知识和共现能力的条件下,去读取和理解单个文档的能力。要了解这种区别,请考虑以下
表单问题(从Daily Mail验证集中的标题创建):a)The hi-tech bra that helps you beat breast
; b)Could Saccharin help beat
? c)Can fish oils help fight prostate
? 不管上下文文档的内容如何,在Daily Mail上训练的n-gram语言模型都可以轻松地正确预测(
),这仅仅是因为这是Daily Mail语料库中经常治愈的实体。
为了防止此类退化的解决方案并创建有关注点的任务,我们通过以下步骤对语料库进行匿名处理和随机化:
a)使用共参照系统在每个数据点中建立核心引用;
b)根据共同引用将所有实体替换为抽象实体标记;
c)每当加载数据点时,随机排列这些实体标记。
比较表3中示例的原始版本和匿名版本。显然,人类读者可以正确回答这两个问题。但是,在匿名设置中,回答问题需要上下文文档,而具有必要背景知识的人也可以回答原始版本。因此,遵循此过程,回答问题的唯一剩余策略就是通过利用每个问题所呈现的上下文来做到这一点。因此,我们两个语料库的表现真正衡量了阅读理解能力。 自然地,生产系统将受益于使用所有可用的信息源,例如通过语言和共现统计提供的线索。
表2给出了任务难度的指示,显示了给定文档中前
个实体标记中包含正确答案的频率。请注意,我们的模型不会区分实体标记和常规词。这使任务更加困难,模型也更加通用。
3.模型
到目前为止,我们已经得到了更好的数据集和任务需求,以评估机器阅读模型的能力。我们通过描述一些baselines, benchmarks和新模型,以对照该范例进行评估。我们定义了两个简单的baselines:
(1)多数基线(最大频率)选择上下文文档中最常观察到的实体;
(2)驱逐多数(独占频率)选择在上下文中最常观察到但在问题中未观察到的实体,该baseline的想法是,在单个
表单问题中不太可能两次提及占位符。
3.1 符号匹配模型
传统上,通常使用NLP模型的管道来尝试回答问题,即大量使用语法注释,结构化的世界知识和语义解析以及类似的NLP管道输出的模型。在这些方法的基础上,我们为机器阅读任务定义了许多以NLP为中心的模型。
(1)框架语义解析
框架语义解析(即语义角色标注)尝试识别谓词及其参数,从而允许模型访问有关“谁对谁做了什么”的信息。自然地,这种注释易于被用于回答问题。我们开发了一个benchmark,其通过使用最新的框架语义解析器解析模型而获得框架语义注释。当解析器大量使用语法信息时,我们在语料库的非匿名版本上运行这些benchmarks。这没有明显的优势,因为此处使用的框架语义方法不具备在解析阶段利用语言模型进行泛化的能力。因此,评估机器理解能力的关键目标得以维持。从问题
和上下文文档
中提取实体谓词三元组,分别表示为
,我们尝试使用具有增加的召回/精确度权衡的多个规则(表4)来解析问题。
为了清楚起见,我们假装所有PropBank三元组都是
形式。在实践中,我们将考虑解析器的参数编号,并且仅将like与like进行比较,除非在排列框架规则这样的情况下放宽了顺序。如果单个规则有多个可能的答案,我们将随机选择一个。
(2)单词距离Benchmark
我们考虑了另一个依赖于单词距离测量的Benchmark。在这里,我们将
表单问题的占位符与上下文文档中的每个可能实体对齐,并计算问题与对齐实体周围的上下文之间的距离度量。通过将
中每个单词与
中它们最近的对齐单词的距离相加来计算该分数,其中对齐是通过直接匹配单词或通过共参照系对齐来定义的。我们在验证数据上调整了每个单词的最大惩罚
。
3.2 神经网络模型
神经网络已成功应用于NLP中的一系列任务。这包括分类任务,例如情感分析或POS标注,以及生成任务,例如语言建模或机器翻译。我们提出了三种神经模型,用于估计根据文档
回答问题
的单词
的概率:
其中
是词汇量,
表示词嵌入权重矩阵
中的第a行,并通过略微滥用表示法字词类型而使索引翻倍。注意,我们没有特权实体或变量,模型必须学会在输入序列中区分它们。函数
返回文档和问题对的向量嵌入。
(1)The Deep LSTM Reader
长短期记忆(LSTM)网络最近在诸如机器翻译和语言建模等任务中取得了相当大的成功。当用于翻译时,Deep LSTM已显示出将长序列嵌入到向量表示中的显著能力,该向量表示包含足以生成另一种语言的完整翻译的信息。我们第一个用于阅读理解的神经模型测试了Deep LSTM编码器处理显著长序列的能力。我们将一次输入一个文档单词到Deep LSTM编码器中,在定界符之后,我们还将问题输入到编码器中。或者,我们也尝试处理问题然后处理文档。结果是该模型将每个文档-问题对作为单个长序列进行处理。给定嵌入的文档和问题,网络将预测文档中的哪个字符回答了问题。
我们使用Deep LSTM单元,该单元具有从每个输入
到每个隐藏层以及从每个隐藏层到输出
的残差连接:
其中,
表示向量串联,
是第
层在时间
的隐藏状态,而
分别是输入,遗忘和输出门。因此,我们的Deep LSTM Reader由
定义,其中输入
的
和
的连接由定界符
分隔。
(2)一维匹配模型The Attentive Reader
Deep LSTM Reader必须在很长的距离内传播,以便将问题连接到其答案。固定维度的隐藏向量形成了这种信息流的瓶颈,我们建议使用一种受最近翻译和图像识别结果启发的注意力机制来规避这个问题。这种注意力模型首先使用单独的双向单层LSTM对文档和问题进行编码。
我们将前向和后向LSTM的输出分别表示为
和
。长度为
的问题的编码
由最终向前和向后输出的串联形成,即
。
对于文档,位置
处每个字符的串联输出为:
。文档
的表示
由这些输出向量的加权和形成。这些权重被解释为网络在回答问题时对文档中特定字符的关注程度:
在这里,我们将
解释为矩阵,其中每一列都是文档字符
的串联表示
。变量
是字符
处的归一化注意力。给定该注意力分数,将文档的嵌入
计算为字符嵌入的加权总和。该模型最终通过将文档表示和问题表示进行非线性组合来完成:
Attentive Reader可以看作是记忆网络在问答中的应用的概括。该模型在句子级别采用了一种注意力机制,其中每个句子由一包词嵌入表示。Attentive Reader采用了更细粒度的字符级别注意力机制,在给定了负的整个上下文的情况下,字符被嵌入到输入文档中。
(3)二维匹配模型The Impatient Reader
Attentive Reader能够专注于上下文文档中最有可能告知问题答案的段落。我们可以通过为模型配备在读取每个问题字符时可以从文档中重新读取的功能来进一步进行操作。对于问题
的每个字符
,模型使用双向嵌入
来计算文档表示向量
:
结果是一种注意力机制,该机制使模型可以在看到问题每个字符时从文档中反复积累信息,最终输出最终的联合文档问题表示形式以进行答案预测,