2015 Teaching Machines to Read and Comprehend

2015 Teaching Machines to Read and Comprehend

摘要

教会机器阅读自然语言文档仍然是一个难以实现的挑战。机器阅读系统需要测试在它们看过的文档内容中回答问题的能力, 但目前这种能力验证缺少大规模训练和测试的数据集 (large scale training and test datasets) 。在这篇文章中,作者定义了一个新的方法,解决了上面提到的瓶颈和提供大规模有监督阅读理解数据。该数据集可以让作者开发基于 attention 的深度神经网络,通过学习阅读真实文档和使用最少的先验的语言结构知识来回答复杂的问题。

问题背景

  • 从浅层词袋信息检索算法 (shallow bag-of-words information retrieval algorithms) 到能够阅读和理解文档的机器这条道路的发展一直是比较缓慢。传统的机器阅读理解方法一直是基于手工设计的语法 (hand engineered grammars) 或者 检测可用于关系型数据库 (relational database) 查询的谓词参数三元组 (predicate argument triples) 的信息提取方法。
  • 有监督的机器学习方法一直在这个领域缺席的很大部分原因在于缺少大规模的训练数据集,和构建能够灵活学习利用文档结构 (exploit document structure) 的统计模型比较困难。
  • 虽然有些方法可以生成无限量的有监督数据,使研究人员能够在各个模拟现象上分离算法的性能 (isolate the performance of their algorithms on individual simulated phenomena)。但是,许多语言计算的相似方法不能管理合成数据 (synthetic data) 到真实环境的过渡,即使用合成数据训练的模型,在真实环境的数据中表现很差。

构建用于阅读理解的有监督训练数据

如果把阅读理解任务作为一个监督学习问题,则需要试图去评估一个条件概率 :

公式 中的 是一个上下文文档, 是与 相关联的问题, 是问题 的答案。
为了专注评估 (for a focused evaluation) ,作者希望能够排除附加的信息(即原数据没有提供的信息),例如:从共现统计 (co-occurrence statistic) 中获取的世界知识 (world knowledge) ,这样才能测试模型在检测和理解上下文文档中实体 (entities in the context document) 之间的语言关系的核心能力。
这种基于统计的方法需要大量的文档-问题-答案三元组的训练语料,但至今这种类型的语料只有几百个样本,而且大部分只被用作测试。 语料的限制意味着这个领域的大部分工作采用无监督方法的形式,使用模板、或者语法/语义分析从文档中提取关系三元组,形成可查询的知识图谱 (knowledge graph)。
因此,作者提出一种方法来创建真实世界的,大型的有监督训练数据,用于学习阅读理解模型。

  1. 语料生成:
    作者发现摘要和释义句子 (summary and paraphrase sentence),与它们相关联的文档 (associated documents) ,很容易使用简单的实体识别和匿名算法 (anonymisation algorithms) 转化为上下文-问题-答案 (context-query-answer) 三元组。通过使用这种方法,作者从 CNN 和 Daily Mail 网站收集到两个新的语料库,大约有1百万个新的带有问题的故事 (a million new stories with associated queries) 。

  2. 实体替换和排列
    该文章的重点在于提供一个语料可用于评估模型阅读和理解单个文档的能力,而不是世界知识 (world knowledge) 和共现统计 (co-occurrence) 。为了理解这种区别,作者以 Cloze 问题形式从 the Daily Mail 的验证集中举例说明。
    假设有以下三个问题, X 是需要模型预测的单词(答案):

    • The hi-tech bra that helps you beat breast X
    • Could Saccharin help beat X ?
    • Can fish oils help fight prostate X ?

    一个使用 the Daily mail 训练的 ngram 模型很容易预测出 X=cancer ,而没有考虑问题的上下文内容,因为在 the Daily Mail 语料中 cancer 是一个非常常见的实体 (a very frequently cured entity) 。
    为了解决上面的问题,作者通过以下步骤,匿名化 (anonymise) 和随机化 (randomise) 他们的语料:

    1. 使用指代系统在每个数据点中建立指代 (coreference)。
    2. 根据指代 (coreference) 使用抽象的实体标记 (abstract entity markers) 对语料中所有的实体进行替换。
    3. 每当一个数据点被加载时 (whenever a data point is loaded) ,就对这些实体标记进行随机排序。

    在通过匿名化设置后问题的回答需要上下文文档,然而原来的版本(没有经过匿名化等步骤处理)中可以通过某种必备的背景知识 (requisite background knowledge) 来回答问题。因此,通过上面的几个步骤,模型回答问题的唯一方法就是利用每个问题中的上下文信息。因此,模型在作者的两个语料 (the CNN and the Daily Mail) 上的性能表现可以真正地测试模型的阅读理解能力。

模型

作者使用一些 baselines , benchmarks 和新模型来评估他们构建的数据集。

Ⅰ 两个简单的 baselines

他们定义了两个简单的 baselines :

  • the majority baseline (最大化频率, maximum frequency) 从上下文中选择观察频率最高的实体。
  • the exclusive majority (专属频率, exclusive frequency) 也是从上下文中选择观察频率最高的实体,但观察时不涉及问题。这种 exclusion 背后的想法是一个 placeholder ( 要预测的词) 不太可能在一个 Cloze 形式的问题中被提及两次以上。

Ⅱ 符号匹配模型 (Symbolic Matching Models)

传统上,一系列的 NLP 模型 (a pipeline of NLP models) 已经被用于问答。这种模型大量地使用了语言注释 (linguistic annotation) , 结构化的世界知识 (structured world knowledge) ,语义解析 (semantic parsing) 和 相似的 NLP 管道输出 (NLP pipeline outputs) 。以这些方法作为基础,他们定义了一些以 NLP 为中心的模型 (NLP-centric models) 来用于机器阅读任务。

  • 帧-语义解析 (Frame-Semantic Parsing)
    帧-语义解析会试着去识别谓语和它们的参数,允许模型使用关于 "who did what to whom" 的信息。当然,这种标注有利于问题回答。作者建立一个利用帧-语义注释 (frame-semantic annotations) 的 benchmark ,通过使用最新的帧-语义解析器 (frame-semantic parser)[2][3] 来解析他们的模型,以此获取语义框架注释。
    在解析器广泛利用语言信息时,作者在非匿名化版本的语料上运行他们的 benchmarks 。这里使用的帧-语义方法有一个明显的劣势,它没有具备通过语言模型进行归纳概括的能力 (the capability of generalise),除了在解析期间利用语言模型。因此,评估机器阅读能力的关键目标是 maintained 。为了从问题 和 上下文文档 中提取实体-谓语三元组 (entity-predicate triples) ,作者使用如(表1)中的规则协议:
    2015 Teaching Machines to Read and Comprehend_第1张图片
    表1

    解决策略使用的是 PropBank 三元组。 是打算作为答案的实体, 是一个完全合格 (a fully qualified) 的 PropBank 框架。策略按优先顺序排序,答案也是按照所选择的相应策略决定。这种启发式算法 (heuristic algorithm) 在验证集上迭代调整。
  • 词距离 benchmark (Word Distance Benchmark)
    作者考虑另一种基于词距离度量 (word distance measurement) 的 baseline 。作者对上下文文档中每个有可能成为答案的实体与 Cloze 形式的问题中的 placeholder 对齐 (align) ,然后围绕对齐的实体 (the aligned entity) 计算问题和上下文的距离度量。这个距离度量是 问题中的每个词 和 上下文文档中最近邻的对齐词 (nearest aligned word) 之间的距离之和,这个对齐可以由词匹配直接定义或者由指代系统对齐。

Ⅲ 神经网络模型 (Neural Network Models)

神经网络模型已经成功地被应用于NLP的一些任务中。其中包括了分类任务,例如:情感分析或词性标注 (POS tagging),还有像语言建模或者机器翻译的生成问题 (generative problems)。 作者提出了三个神经模型来估计上下文文档 中单词 回答问题 的概率。

  • The Deep LSTIM Reader
    Deep LSTMs [4] 表现出卓越的能力,它可以将长句嵌入到向量表示,这个向量表示包含了充分的信息来生成另一种语言的完整翻译。所以,作者第一个选择的神经模型是 Deep LSTM encoders ,测试其处理明显更长的句子能力。他们先将上下文文档逐词输入到 Deep LSTM encoder 中,在一个定界符(上下文文档和问题的定界符)之后,将问题也输入到 encoder 中。结果就是模型把每个上下文文档-问题对 (document query pair) 当成一个长句子处理。通过给定的嵌入文档和问题,网络预测出文档的某个词来回答问题。
    作者采用具有 从输入向量 到每个隐藏层和每个隐藏层到输出向量 跳跃连接 (skip connections) 的 Deep LSTM cell 单元。【一般多层RNN网络,都需要采用某种连接方式,来连接每一层RNN的输出】
    x^{'}(t,k) = x(t)||y^{'}(t,k-1)\\ y(t) = y^{'}(t,1)||...||y^{'}(t,K)\\ i(t,k) = \sigma(W_{kxi}x^{'}(t,k)+W^{khi}h(t-1,k)+W_{kci}c(t-1,k)+b_{ki})\\ f(t,k) = \sigma(W_{kxf}x^{'}(t,k)+W^{khf}h(t-1,k)+W_{kcf}c(t-1,k)+b_{kf})\\ c(t,k) = f(t,k)c(t-1,k)+i(i,k)\tanh(W_{kxc}x^{'}(t,k)+W_{khc}h(t-1,k)+b_{kc})\\ o(t,k) = \sigma(W_{kxo}x^{'}(t,k)+W_{kho}h(t-1,k)+W_{kco}c(t,k)+b_{ko})\\ h(t,k) = o(t,k)\tanh(c(t,k))\\ y^{'}(t,k) = W_{ky}h(t,k)+b_{ky}
    是第 层 LSTM 第 个词的输入, 是第 层 LSTM 第 个词的输出, 是第 层 LSTM 第 个词的隐含层输出, 表示两个向量的拼接 (concatenation) 。 , 和 分别代表 LSTM 的输入门,遗忘门和输出门。
    因此,他们的 Deep LSTM Reader 定义为 。输入 是上下文文档 和问题 的拼接,两者用分隔符 隔开。

  • The Attentive Reader
    为了联系问题和它的答案, The Deep LSTM Reader 必须在一段很长的距离上传送依赖关系 (propagate dependencies) 。而固定长度的隐藏向量 (the fixed width hidden vector) 对这种信息流 (information flow) 来说是一个限制的瓶颈 (bottleneck) ,所以作者提出使用最近在翻译和图像识别获得不错结果的注意力机制。
    The Attentive Reader 先分别使用双向单层 LSTMs 对文档和问题进行编码。
    是问题 在经过双向 LSTMs 编码后的最后一个前向输出状态和最后一个后向输出状态的拼接。

    是文档 中 第 个词经过双向 LSTMs 编码后的前向输出状态和后向输出状态的拼接。

    文档 的表示 (representation) 由文档 编码后各个单词的输出向量加权得到。这些权重可以解释为 在回答问题时网络对文档中特定单词的参与程度。 (These weights are interpreted as the degree to which the network attends to a particular token in the document when answering the query)

    变量 是归一化后的单词 的 attention 得分。
    模型最后将文档表示 和 问题表示 通过一个非线性函数进行结合。

    The Attentive Reader 可以看做是记忆网络在问题回答上的一个一般应用。记忆网络在句子层次上应用注意力机制。而 The Attentive Reader 使用了一个细粒度词层次的注意力机制。

  • The Impatient Reader
    The Attentive Reader 可以专注于上下文文档中最有可能是问题答案的信息。作者进一步改进该模型,使其拥有在每个问题单词被阅读后再次阅读文档的能力 (with the ability to reread from the document as each query token is read) 。
    在问题的每个单词 i 中,模型计算一个文档表示向量 r(i) 使用双向问题嵌入 。

    这种注意力机制的结果是可以使模型在观察问题每个单词时就从文档中反复积累信息 (recurrently accumulate information) ,最后输出最后一个文档表示 和 问题表示 用于答案预测。

Ⅳ 实验结果

2015 Teaching Machines to Read and Comprehend_第2张图片
表2

Reference

  1. http://papers.nips.cc/paper/5945-teaching-machines-to-read-and-comprehend.pdf
    "Teaching Machines to Read and Comprehend"
  2. https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/41227.pdf
    "Frame-semantic parsing"
  3. http://www.aclweb.org/anthology/P14-1136
    "Semantic frame identification with distributed word representations"
  4. Alex Graves. Supervised Sequence Labelling with Recurrent Neural Networks, volume 385 of Studies in Computational Intelligence. Springer, 2012.

你可能感兴趣的:(2015 Teaching Machines to Read and Comprehend)