Natural Language Comprehension with the EpiReader翻译

摘要

我们介绍了EpiReader,这是一种用于文本机器理解的新模型。对非结构化、真实世界文本的机器理解是自然语言处理的主要研究目标。当前对机器理解的测试提出了可以从一些支持性文本中推断出答案的问题,并评估了模型对问题的回答。EpiReader是一个端到端的神经模型,包括两个组件:第一个组件在将问题与其支持的文本进行比较后提出一小组候选答案,第二个组件使用提出的候选答案和问题来形成假设,然后基于其与支持文本的估计一致性重新排列这些假设。我们提供的实验表明EpiReader在CNN和儿童阅读测试benchmarks上设定了新的最新技术,大大优于以前的神经模型。

1.介绍

当人类对世界进行推理时,我们倾向于提出各种假设和反事实,然后通过物理或思想实验依次对其进行检验。哲学家Epicurus首先在他的《多重解释原理》中将这一思想形式化:如果几种理论与所观察到的数据一致,则保留所有这些理论,直到观察到更多数据为止。在本文中,我们认为相同的原理可以应用于自然语言的机器理解上。我们提出了一种经过端到端训练的深度神经理解模型,我们将其称为EpiReader。
  在近乎人类的水平上,机器对自然语言的理解是人工智能被广泛应用的先决条件。实际上,大多数人类知识都是以文本的自然语言收集的。因此,机器理解(MC)引起了机器学习研究界的极大关注。机器理解通常是通过支持的文本段落提出一系列问题,然后根据系统对这些问题的答案评分来评估的。这种测试是客观可分级的,并且可以评估从(1)基本理解到(2)因果推断再到(3)推理的一系列能力。
  在过去的一年中,已经发布了两个大规模的MC数据集:CNN/Daily Mail语料库(由来自这些媒体的新闻报道组成)和儿童阅读测试(CBT),由书籍的简短摘录组成,可通过古腾堡计划获得。这些数据集的大小(大约105个不同的问题)使它们适合于数据密集型深度学习技术。两种语料库都使用Cloze-style问题,这些问题是通过用占位符字符替换给定句子中的单词或短语来制定的。然后的任务是找到用于“填空”的答案。
  结合这些语料库,已经开发了许多神经机器理解模型。通过对CNN和CBT数据集进行训练和评估,我们将EpiReader与这些早期模型进行了比较。
  EpiReader分为两个部分。第一部分基于对问题及其支持文本的浅层比较,提取了少量的潜在答案;我们称其为提取器 E x t r a c t o r Extractor 。第二部分基于与文本的更深入的语义比较,对提出的答案进行排名。我们称其为推理器 R e a s o n e r Reasoner 。我们可以将这一过程概括为 E x t r a c t H y p o t h e s i z e T e s t Extract→Hypothesize→Test R e a s o n e r Reasoner 实现的语义比较是基于识别文本蕴含(recognizing textual entailment, RTE)的概念,也称为自然语言推理(NLI)。该过程在计算上要求很高。因此, E x t r a c t o r Extractor 的重要功能是将大量潜在答案过滤为一组较小,易于处理的可能候选对象,以进行更彻底的测试。两阶段过程类似于结构化预测级联,其中一系列越来越复杂的模型逐渐过滤输出空间,以在模型复杂性和有限的计算资源之间进行权衡。我们证明了这种类似层叠的框架适用于机器理解,可以通过随机梯度下降进行端到端训练。
   E x t r a c t o r Extractor 遵循指针网络的形式,并使用可区分的注意力机制来指示文本中可能回答问题的单词。 这种方法(单独使用)用于使用Attention Sum Reader回答问题。 E x t r a c t o r Extractor 输出一小部分候选答案及其估计的正确概率。 R e a s o n e r Reasoner 通过将候选答案插入问题中来形成假设,然后估计每个假设与支持文本中每个句子的一致性。我们将这些估计值用作假设证据的度量,并汇总所有句子的证据。最后,我们将 R e a s o n e r Reasoner 的证据与 E x t r a c t o r Extractor 的概率估计结合起来,以得出候选答案的最终排名。
  本文的组织如下。在第2节中,我们正式定义了要解决的问题,并为测试中使用的数据集提供了一些背景知识。在第3节中,我们将介绍EpiReader,重点介绍它的两个组件以及它们如何组合。第4节讨论相关工作,第5节详细介绍我们的实验结果和分析,并在第6节中进行总结。

2.问题定义,符号,数据集

EpiReader的任务是通过阅读和理解一段支持性的文本来回答完形填空风格的问题。训练和评估数据由元组 ( Q , T , a , A ) (\mathcal Q,\mathcal T,a^∗,A) 组成,其中 Q \mathcal Q 是问题(一个单词序列 { q 1 , . . . q Q } \{q_1,...q_{|Q|}\} ), T \mathcal T 是文本(一个单词序列 { t 1 , . . . , t T } \{t_1,...,t_{|T|}\} ), A A 是一组可能的答案 { a 1 , . . . , a A } \{a_1,...,a_{|A|}\} a A a^∗∈A 是正确答案。所有单词都来自词汇 V V ,并且 A T A⊂\mathcal T 。在每个问题中,都有一个占位符,指示要填写的缺失词。

2.1 数据集

CNN 该语料库是使用从CNN网站上抓取的文章构建的。文章本身构成了文本段落,问题是从每篇文章随附的简短摘要中综合得出的。这些摘要点(大概)是由人类作者撰写的。通过使用占位符替换摘要点中的命名实体来创建每个问题。对于每对 ( Q , T ) (\mathcal Q,\mathcal T) ,其中文章和问题中的所有命名实体都将被替换为打乱的匿名字符。这迫使模型仅依赖于文本,而不是在训练期间学习有关实体的世界知识。CNN语料库(以下简称CNN)由Hermann等提出。
  儿童阅读测试 该语料库的结构类似于CNN,但是通过古腾堡计划获得的儿童读物。文字段落不是文章,而是20句话组成的书本摘录。由于未提供摘要,因此通过替换下一个(即第21个)句子中的单个单词来生成问题。语料库根据被替换单词的类型来区分问题:命名实体,常用名词,动词或介词。像Kadlec等人一样,我们仅关注前两个类别。 因为Hill等人表明,标准的LSTM语言模型已经在后两者上达到了人类水平的性能。与CNN语料库不同,在儿童阅读测试(CBT)中,命名实体不会被匿名和混排。CBT由Hill等人提出。
  每个语料库中问题的构造方法不同,意味着CNN和CBT会评估理解的不同方面。CNN的摘要点是文本中信息的简明释义;因此,确定正确答案主要取决于识别文本含义。另一方面,CBT与故事预测有关。就理解故事预测而言,其可能是一项理解任务,但仅靠理解可能还不够。确实,鉴于上述情况,有些CBT问题无法回答。

3.EpiReader

3.1 概述

在这里插入图片描述
  EpiReader明确利用了以下观察结果:问题的答案通常是相关文本段落中的单词或短语。此条件适用于CNN和CBT数据集。EpiReader的第一个模块,提取器,因此可以通过指向候选答案中的位置来选择少量答案。该机制在第3.2节中进行了详细说明,并且之前由Attention Sum Reader使用。指向候选答案可以消除在Weston等人中对整个词汇应用softmax的需要,其计算成本更高,并且在支持文本中使用有关预测答案的上下文的直接信息较少。
  EpiReader的第二个模块,推理器,首先使用提取出的答案候选者形成假设。它通过用候选答案替换问题中的占位符来生成每个假设。完形填空式的问题非常适合此过程,因为在占位符位置插入正确的答案会产生格式正确的语法陈述。因此,正确的假设将对语言模型“很有意义”。
  然后,推理器分别测试每个假设。它将假设与分成句子的文本进行比较,以衡量文本的含意,然后汇总所有句子的含意。该计算使用一对卷积编码器网络,然后是循环神经网络。卷积编码器生成假设和每个文本语句的抽象表示;循环网络估算和汇总文本含义。这将在第3.3节中正式描述。结合了Extractor和Reasoner模块的端到端EpiReader模型如图1所示。

3.2 Extractor

提取器是一个指针网络。 它使用一对双向循环神经网络 f ( θ T , T ) f(θ_T,\pmb T) g ( θ Q , Q ) g(θ_Q,\pmb Q) 对文本段落和问题进行编码。 θ T θ_T 表示文本编码器的参数, T R D × N \pmb T∈R^{D×N} 是文本(包含 N N 个单词)的矩阵表示,其列为单个单词嵌入 t i \pmb t_i 。 同样, θ Q θ_Q 表示问题编码器的参数, Q R D × N Q \pmb Q∈R^{D×N_Q} 是问题的矩阵表示(包含 N Q N_Q 个单词),其列是单个单词嵌入 q j \pmb q_j
  我们使用带有门控循环单元(GRU)的循环神经网络来扫描输入矩阵的列(即单词嵌入)。 我们之所以选择GRU,是因为它在计算上比长短期记忆更简单,同时仍然避免了训练循环网络时经常遇到的梯度消失/爆炸的问题。
  GRU的隐藏状态表示基于前面单词得到的第 i i 个单词的表示。为了包括前面单词的上下文,我们在 T \pmb T 上以相反的方向运行第二个GRU。我们将该组合称为biGRU。biGRU在每一步都输出两个 d d 维编码向量,一个用于前向,一个用于后向。我们将它们串联起来,得出向量 f ( t i ) R 2 d f(\pmb t_i)∈R^{2d} 。问题的biGRU相似,但是我们是通过将最终的前向状态与最终的后向状态(表示 g ( Q ) R 2 d g(\pmb Q)∈R^{2d} )连接起来,形成了问题的单个向量表示。
  如Kadlec等人,我们使用以下公式对文本 T \mathcal T 中的第 i i 个单词回答问题 Q \mathcal Q 的概率进行建模:
s i e x p ( f ( t i ) g ( Q ) ) , (1) s_i\propto exp(f(\pmb t_i)\cdot g(\pmb Q)),\tag{1}
它采用文本和问题表示的内积,后跟一个softmax。在许多情况下,单词 w w 在文本中会重复出现。因此,我们使用总和来计算单词 w w 是正确答案的总概率:
P ( w T , Q ) = i : t i = w s i . (2) P(w|\mathcal T, \mathcal Q)=\sum_{i:t_i=w}s_i.\tag{2}
  对 T \mathcal T 中的每个唯一单词评估该概率。最后,提取器输出来自等式2的 K K 个最高单词概率的集合 { p 1 , . . . , p K } \{p_1,...,p_K\} ,以及相应的 K K 个最可能是答案的单词 { a ^ 1 , . . . , a ^ K } \{\hat a_1,...,\hat a_K\} 的集合。

3.3 Reasoner

收集 { a ^ 1 , . . . , a ^ K } \{\hat a_1,...,\hat a_K\} 涉及的个体选择,相当于 K K 各最佳的argmax,不是输入的连续函数。为了构建端到端的可微模型,我们直接通过推理器传播提取器的概率估计来绕过该模型。
  推理器首先将作为候选答案的单个单词或短语插入问题序列 Q \mathcal Q 中的占位符位置。这形成了 K K 个假设 { H 1 , . . . , H K } \{\mathcal H_1,...,\mathcal H_K\} 。 在这一点上,我们认为每个假设都有提取器估计的概率 p ( H k ) p k p(\mathcal H_k)≈p_k 。通过对推理器进行更新并完善此估计。
  从某种意义上说,这些假设代表着新的信息,尽管它们是从问题和文本段落中已经存在的单词中提取出来的,但它们都是我们构建的新的句子。推理器估计语句 H k \mathcal H_k 和文本 T \mathcal T 之间的蕴含。我们用 e k = F ( H k , T ) e_k=F(\mathcal H_k,\mathcal T) 表示这些估计,并定义 F F 。我们首先从将 T \mathcal T 重组为 N s N_s 个句子序列: T = { t 1 , , t N } { S 1 , , S N s } \mathcal T= \{t_1,\dots,t_N\}→\{\mathcal S_1,\dots,\mathcal S_{N_s}\} ,其中 S i \mathcal S_i 是一个单词序列。
  对于每个假设和文本的每个句子,推理器的输入由两个矩阵组成: S i R D × S i \pmb S_i∈\mathbb R^{D×|S_i|} ,其列是句子 S i \mathcal S_i 中每个单词的嵌入向量; H k R D × H k \pmb H_k∈\mathbb R^{D×|H_k|} ,其列为假设 H k \mathcal H_k 中每个单词的嵌入向量。嵌入向量本身像以前一样来自矩阵 W \pmb W
  这些矩阵被引入基于Severyn和Moschitti的卷积架构中。该架构首先用矩阵 M R 2 × S i \pmb M∈R^{2×|S_i|} 来扩充 S i \pmb S_i M \pmb M 的第一行包含句子中每个单词嵌入和候选答案嵌入的内积,第二行包含句子中每个单词嵌入和问题中每个单词嵌入的最大内积。这些单词匹配功能的灵感来自Wang,Jiang和Trischler等人的类似方法,这些方法被证明可以改善蕴含估算。
  然后将扩展后的 S i \pmb S_i 与一堆滤波器 F S R ( D + 2 ) × m \pmb F^S∈R^{(D+2)×m} 卷积,而将 H k \pmb H_k 与滤波器 F H R D × m \pmb F^H∈R^{D×m} 卷积,其中 m m 是卷积滤波器宽度。在卷积之后,我们添加一个偏差项并应用非线性激活(我们使用ReLU)。 然后,在序列上进行最大池化会产生两个向量:文本句子的表示 r S i R N F \pmb r_{\mathcal S_i}∈R^{N_F} 以及假设的表示 r H k R N F \pmb r_{\mathcal H_k}∈R^{N_F} ,其中 N F N_F 是过滤器的数量。
  然后,我们使用双线性函数计算这些向量表示之间的标量相似性得分:
ς = r S i T R r H k , (3) \varsigma=\pmb r_{\mathcal S_i}^T\pmb R \pmb r_{\mathcal H_k},\tag{3}
其中 R R N F × N F \pmb R∈R^{N_F×N_F} 是可训练参数的矩阵。 然后,我们将相似性得分与句子和假设表示连接起来,以获得向量 x i k = [ ς ; r S i ; r H k ] T x_{ik} = [ς;\pmb r_{\mathcal S_i}; \pmb r_{\mathcal H_k}]^T 。可以使用更强大的文本蕴含模型替换这种卷积体系。我们采用了Severyn和Moschitti的方法来提高计算效率。
   N s N_s 个向量的结果序列传入另一个GRU用于合成,其具有隐藏维度 d S d_S 直观上,通常将特定假设的证据分布在多个句子中。例如,如果我们假设足球在公园里,那可能是因为一句话告诉我们山姆捡起了足球,后来又有人告诉我们山姆跑到公园了。推理器通过在 x i k x_{ik} 上运行GRU网络来合成分布式信息,其中以 i i 为句子建立索引并表示步长。GRU的最终隐藏状态通过一个全连接层,从而产生单个标量 y k y_k 。该值表示基于文本收集的 H k H_k 证据。在实践中,推理机并行处理所有 K K 个假设,并通过softmax归一化每个假设: e k e x p ( y k ) e_k\propto exp(y_k)
  正如Kadlec等人指出的,指针框架的强项是不融合正在参加的表示形式。将其与典型的注意力机制相对照,在这种机制中,在下游使用这种混合表示来与例如输出向量进行相似性比较。
  注意力机制(例如,Bahdanau等人)通常通过加权和将内部表示混合在一起,然后在下游使用这种“混合”进行相似性比较。指针框架不使用这种混合。Kadlec等解释说这是一个优势,因为在理解任务中,目标是在语义相似的候选者中选择正确的答案,并且需要更精确的匹配。推理器执行的重新排序功能具有此优势,方法是单独检查单独的假设而不会混淆。

3.4 联合组件

最后,我们将推理器的概率与提取器的概率结合起来。我们根据乘积计算每个假设的输出概率 π k π_k
π k e k p k , (4) \pi_k\propto e_kp_k,\tag{4}
  因此,推理器的概率可以解释为对提取器概率的更正,用作对数空间中的累加转移。我们对提取器和推理器的其他组合进行了实验,但是我们发现乘法方法可以产生最佳性能。
  将提取器和推理器的结果合并后,得到等式4中所述的概率 π k π_k 。如等式4所示,我们优化了整个EpiReader的参数,以最大程度地减少包含 L E \mathcal L_E L R \mathcal L_R 的损失。第一项是标准的负对数似然目标,它鼓励提取器对正确答案的评分高于其他答案,这与Kadlec等人使用的损失项相同。它由下式给出:
L E = E ( Q , T , a , A ) [ l o g   P ( a T , Q ) ] , (5) \mathcal L_E=\mathop{\mathbb{E}}\limits_{(\mathcal Q,\mathcal T,a^*,A)}[-log~P(a^*|\mathcal T,\mathcal Q)],\tag{5}
其中 P ( a T , Q ) P(a^*|\mathcal T,\mathcal Q) 如等式2所定义。 a a^* 表示正确答案。 第二项是基于端到端概率 π k π_k 的margin loss。我们将 π π^∗ 定义为与真实答案词 a a^∗ 对应的概率 π k π_k 。该项如下所示:
L R = E ( Q , T , a , A ) [ a ^ i { a ^ 1 , , a ^ K } \ a [ γ π + π a ^ i ] + ] , (6) \mathcal L_R=\mathop{\mathbb{E}}\limits_{(\mathcal Q,\mathcal T,a^*,A)}[\sum_{\hat a_i\in \{\hat a_1,\dots,\hat a_K\}\verb|\|a^*}[\gamma-\pi^*+\pi_{\hat a_i}]_+],\tag{6}
其中 γ γ 是margin超参数, { a ^ 1 , . . . , a ^ K } \{\hat a_1,...,\hat a_K\} 是提取器提出的K个答案集合, [ x ] + [x]_+ 表示将x截断为非负数,即 m a x ( x , 0 ) max(x,0) 。从直觉上讲,这种损失表示我们希望正确答案的端到端概率 π π^∗ 至少比提取器提出的任何其他答案的概率 π a ^ i π_{\hat a_i} 大γ。在训练过程中,提取器有时会漏掉正确的答案,尤其是在早期。我们通过在训练时将正确答案强加到前 K K 个集合中来解决此问题。在验证和测试示例上评估模型时,我们完全依赖于Extractor提出的前 K K 个答案。
  为了获得最终损失项 L E R \mathcal L_{ER} ,减去模型参数上的 l 2 l_2 正则化项,我们采用 L E \mathcal L_E L R \mathcal L_R 的加权组合:
L E R = L E + λ L R \mathcal L_{ER} = \mathcal L_{E}+\lambda \mathcal L_{R}
其中 λ λ 是用于权衡提取器和推理器损失的相对贡献的超参数。在实践中,我们发现λ应该相当大(例如 10 < λ < 100 10 <λ<100 )。根据经验,我们观察到提取器的输出概率通常会达到峰值并饱和第一个softmax;因此,Extractor项可以在没有权重λ的情况下主导Reasoner项(我们将在第5节中讨论Extractor的过度拟合倾向)。

4.相关工作

Impatient和Attentive Reader模型是由Hermann等人在2015年提出的。 Attentive Reader将双向循环编码器应用于问题和支持文本。然后,它使用Bahdanau等人所述的注意力机制,根据文本编码器输出的加权总和来计算文本的定长表示形式,方法是将问题表示形式与文字中的每个位置进行比较,以此作为指导。最后,通过将它们的独立表示形式通过前馈MLP来形成问题和支持文本的联合表示形式,并通过将MLP输出与每个可能答案的表示形式进行比较来选择答案。Impatient Reader的操作类似,但是是用问题的每个连续单词,计算了对文本的注意力。两种模型在CNN和Daily Mail数据集上均取得了相似的性能。
  Memory Networks最早由Weston等人在2015年提出,后来由Hill等人应用于机器理解。该模型建立问题和每个候选答案周围的文本窗口的定长表示,然后使用加权和注意机制来组合窗口表示。如先前的Readers中所述,然后将组合的窗口表示形式与每个可能的答案进行比较,以形成有关最佳答案的预测。Memory Networks的区别在于它们如何构造问题和文本窗口表示形式。 他们使用的词嵌入经过特别设计和训练的变换,而不是使用循环网络。
  有关最新AS Reader的大多数详细信息,请参见第3.2节中的“提取器”模块的描述,因此在此不再赘述。该模型在CBT数据集上达到了先前的最好技术。
  在撰写本文期间,另一个非常新的模型引起了我们的注意。 Chen等在2016年提出使用双线性函数而不是tanh层来计算问题和段落词之间的注意力,并且还使用attended词编码来进行直接的指针式预测,如Kadlec等人所述,该模型达到了CNN数据集上的最新技术水平。但是,该模型使用了在大型外部语料库上预训练的嵌入向量。
  EpiReader也借鉴了其他模型的想法。Reasoner的卷积架构基于Severyn和Moschitti(2016)和Blunsom等人(2014)。 我们对单词级匹配的使用受到Trischler等人的Parallel-Hierarchical模型的启发和Wang和Jiang(2016)的自然语言推理模型。最后,提出和测试假设以回答问题的想法在IBM的Jeopardy的DeepQA系统中得到了很大的应用!(尽管那是一种更为传统的信息检索管道,而不是端到端的神经模型),并且也类似于Weiss和Taskar的结构化预测级联的框架。

猜你喜欢

转载自blog.csdn.net/qq_28385535/article/details/105627164
今日推荐