Geek AI 路雪编译

ICLR 2018 | CMU&谷歌大脑提出新型问答模型QANet:仅使用卷积和自注意力,性能大大优于RNN

近日,来自卡内基梅隆大学和谷歌大脑的研究者在 arXiv 上发布论文,提出一种新型问答模型 QANet,该模型去除了该领域此前常用的循环神经网络部分,仅使用卷积和自注意力机制,性能大大优于此前最优的模型。

1 引言

人们对机器阅读理解和自动问答任务的兴趣与日俱增。在过去的几年中,端到端的模型在许多具有挑战性的数据集上显示出非常好的结果,取得了显著的进步。最成功的模型通常会利用两个关键的组成部分:(1)处理序列化输入的循环模型,(2)处理长期交互的注意力组件。Seo 等人(2016)提出的 Bidirectional Attention Flow(BiDAF)模型是这两部分的一个成功组合,该模型在 SQuAD 数据集(Rajpurkar 等人在 2016 年发布)上获得了很好的效果。这些模型有一个缺点,即由于它们的循环性质导致训练和推断都十分缓慢,特别是对于长文本来说。高昂的训练开销不仅导致了很长的实验周期,限制了研究者进行迅速的迭代,还妨碍了模型被用于大型数据集。与此同时,缓慢的推断阻碍了机器阅读理解系统在实时应用中的部署。

本论文中,为了使机器更迅速地进行理解,研究者提出去除这些模型的循环特性,仅使用卷积和自注意力机制作为构建编码器的模块,它们分别编码查询(query)和语境(context)。接着研究者通过标准的注意力机制来学习语境和问题之间的交互(Xiong et al., 2016; Seo et al., 2016; Bahdanau et al., 2015)。在最终解码出每个点作为答案区间的起始点和终点的概率之前,得到的数据表征被再一次用研究者提出的无循环特性(recurrency-free)的编码器进行编码。本论文研究者将这个架构称为 QANet,如图 1 所示。

该模型设计背后的关键动机是:卷积能够捕获文本的局部结构,而自注意力机制能够学习到每一对词语之间的全局相互作用。额外的「语境-查询注意力机制是一个用于为上下文段落中的每一个位置构建 query-aware 语境向量的标准模块,这些向量将在随后的建模层中使用。该架构的前馈特性大大加快了模型的速度。在 SQuAD 数据集上进行的实验中,本论文提出的模型训练速度提升到相应 RNN 模型的 3 到 13 倍,推断速度提升到 4 到 9 倍。如果进行一个简单的对比,该模型可以在 3 小时训练时间内达到和 BiDAF 模型(Seo 等人在 2016 年提出)同样的准确率(77.0 F1 值),而后者则需要花费 15 小时。模型的加速还让研究者通过更多的迭代来训练模型,从而得到比其它有竞争力的模型更好的结果。例如,如果使本文提出的模型训练 18 个小时,则它会在开发集上获得 82.7 的 F1 值,这比 Seo 等人在 2016 年提出的模型好得多,并且与目前公布的最好结果达到了同等水平。

由于该模型运行速度很快,因此相较于其他模型,我们可以用多得多的数据训练它。为了进一步改进模型,研究者提出了一种补充性数据增强技术来改善训练数据。这种技术通过将原始的英文句子翻译成另一种语言然后再翻译回英语来改写例句,这不仅增加了训练实例的数量,还增强了措辞的多样性。

在 SQuAD 数据集上,用增强数据训练的 QANet 在测试集上获得了 84.6 的 F1 值,这相比 Hu 等人(2017)公布的最佳结果——81.8 有了很大提升。研究者还进行了模型简化测试(ablation test),来证明该模型中每一个组件的有效性。本论文的贡献如下:

提出了一种高效的阅读理解模型,它完全建立在卷积和自注意力机制之上。据了解,本论文作者是这项研究的开创者。这个组合(卷积和自注意力机制)保持了良好的准确率,同时与相应的 RNN 模型相比,在每一轮迭代中,该模型的训练速度最高达到前者的 13 倍,推断速度最高达到前者的 9 倍。速度提升使得该模型成为扩展到更大数据集的最佳候选方案。

为了在 SQuAD 数据集上提升训练结果,研究者提出了一种新的数据增强技术,通过改写句子来丰富训练数据。这使得 QANet 模型获得了比目前的最佳模型更高的准确率

图 1:QANet 架构概览(左图),包含多个编码器模块。研究者在整个模型中使用相同的编码器模块(右图),仅仅在每个模块中改变卷积层的数量。研究者在编码器模块的每一层之间使用了层归一化和残差连接技术,还在语境和问题编码器以及三个输出编码器之间共享权重。研究者在每一个编码器层的起始处加入一个位置编码,正如 Vaswani 等人在 2017 年定义的那样,它是由波长不同的正弦函数和余弦函数组成的。编码器结构内部的位置编码后面的每一个子层(卷积、自注意力机制或前馈网络其中之一)都被包装在一个残差模块中。

图 2:以法语作为中间语言(以 English-French-English 形式改写)的数据增强过程图示。其中,k 是集束宽度,即 NMT 系统生成的译文数量。

表 1:原句和改写后的句子中的答案对比。

4 实验

表 2:在 SQuAD 数据集上不同模型的性能。

表 3:QANet 模型和基于 RNN 的模型在 SQuAD 数据集上的运行速度对比,所有模型的批大小都是 32。「RNN-x-y」表示一个有 x 个层、每层包含 y 个隐藏单元的 RNN 网络。这里使用的 RNN 模型是双向 LSTM 模型。运行速度使用「批/秒」(batches/second)这个单位来衡量,值越高,速度越快。

表 4:QANet 模型和 BiDAF 模型(Seo et al., 2016)在 SQuAD 数据集上的速度对比。

表 5:对数据增强和 QANet 模型中其它部分的模型简化测试。这里所展示的结果是在开发集上取得的。对于包含「data augmentation」条目的行,「×N」表示数据被增大到原始规模的 N 倍,而括号中的比率表示采样率,即原始数据、「英语-法语-英语」和「英语-德语-英语」数据的采样比例。

表 6:在 SQuAD 对抗样本测试集上的 F1 值。

表 7:在 TriviaQA 数据集的 Wikipedia domain 上,不同的单段阅读模型在开发集上的性能。注:*表示测试集的结果。

表 8:QANet 模型和基于 RNN 的模型在 TriviaQA 维基百科数据集上的运行速度对比,所有的批大小都是 32。「RNN-x-y」表示一个有 x 个层、每层包含 y 个隐藏单元的 RNN 网络。这里使用的 RNN 是双向 LSTM。处理的速度以「批/秒」这个单位衡量,值越高,速度越快。

论文:QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION

  • 论文链接:https://openreview.net/pdf?id=B14TlG-RW

  • 项目地址:https://github.com/hengruo/QANet-pytorch

摘要:目前的端到端机器阅读和问答(Q&A)模型主要基于带注意力机制的循环神经网络(RNN)。尽管它们取得了一定程度的成功,但由于 RNN 的序列特性,这些模型的训练速度和推断速度通常较慢。我们提出了一个名为 QANet 的新型问答系统框架,它不再需要循环网络:其编码器仅仅由卷积和自注意力机制构成,卷积可以对局部相互作用建模,而自注意力机制可以对全局相互作用建模。在 SQuAD 数据集上,QANet 模型的训练速度提升到对应的 RNN 模型的 3 到 13 倍、推断速度提升到 4 到 9 倍,并且取得了和循环模型同等的准确率。速度提升使得我们能够使用更多的数据训练模型。因此,我们将 QANet 模型和使用神经机器翻译模型回译得到的数据结合了起来。在 SQuAD 数据集上,我们使用增强的数据训练的模型在测试集上获得了 84.6 的 F1 值,这远远优于目前公开的最佳模型 81.8 的 F1 值。

理论ICLRICLR 2018问答CMU谷歌大脑
2
相关数据
注意力机制技术
Attention mechanism

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

对抗样本技术
Adversarial examples

对抗样本是一类被设计来混淆机器学习器的样本,它们看上去与真实样本的几乎相同(无法用肉眼分辨),但其中噪声的加入却会导致机器学习模型做出错误的分类判断。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

神经机器翻译技术
Neural Machine Translation

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

大数据技术
Big data

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

层归一化技术
Layer Normalization

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

问答系统技术
Question Answering

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

查询技术
Query

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

准确率技术
Accuracy

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

卷积技术
Convolution

推荐文章