CMU与谷歌大脑提出新型机器阅读QANET模型,可提高机器理解精确度

图源:pixabay

原文来源:openreview

作者:Adams Wei Yu、David Dohan、Minh-Thang Luong、Rui Zhao、Kai Chen、Mohammad Norouzi、Quoc V. Le

「雷克世界」编译:KABUDA、EVA

当前的端到端机器阅读和问答(Q&A)模型主要基于包含注意力的循环神经网络(recurrent neural network,RNN)。尽管它们取得了成功,但鉴于RNN的序列特性,这些模型在训练和推理方面的效率往往都很低。我们提出了一种名为QANet的全新问答架构,它不需要循环网络:它的编码器仅由卷积和自注意力(self-attention)组成,其中,卷积对局部交互和自注意力模型的全局交互进行建模。在SQuAD数据集中,我们模型的训练速度提高了3至13倍,推理速度提高了4至9倍,同时达到了与循环模型相媲美精确度。加速增益(speed-up gain)使我们能够用更多的数据来训练模型。因此,我们将我们的模型,与由神经机器翻译模型的反向翻译生成的数据结合起来。在SQuAD数据集上,我们使用增强数据训练的单一模型在测试集中F1值达到 84.6,这显著优于过去公布的F1最佳值81.8。

人们对机器阅读理解和自动问答任务越来越感兴趣。在过去几年中,端到端模型已经取得了显著发展,并且在许多具有挑战性的数据集上取得了令人满意的结果。最成功的模型通常采用了两项关键要素:(1)处理顺序输入的循环模型(2)应对长期交互的注意力要素。Seo等人于2016年提出的的双向注意力流(Bidirectional Attention Flow,BiDAF)模型将这两项要素成功地结合在了一起,该模型在SQuAD数据集(Rajpurkar等人于2016年提出)上取得了显著的效果。这些模型的一个缺点是,它们的循环特性使得它们在训练和推理方面的效率通常较低,特别是对于长文本而言。昂贵的训练不仅会导致实验的周期延长,限制研究人员进行快速迭代,还会使模型难以被用于更大的数据集中。与此同时,缓慢的推理速度阻碍了机器理解系统在实时应用中的部署。

在本文中,为了使机器理解更高效,我们提出去掉这些模型的循环性质。相反,我们仅将卷积和自注意力作为编码器的构成模块,分别对问题和语境进行编码。然后,我们通过标准注意力(standard attentions,Xiong等人于2016年提出;Seo 等人于2016年提出;Bahdanau等人于2015年提出)来学习语境和问题之间的交互。在最终对每个作为答案范围的开始或结束位置的概率进行解码之前,用我们的无循环编码器再次对结果表征进行编码。我们将该架构称为QANet,如图1所示。

图1. 含有多个编码器模块(Encoder Blocks)的QANET架构(左侧)概述。我们在整个模型中使用相同的编码器模块(右侧),但会改变每个模块中的卷积层数量。我们在编码器模块的每一层之间使用层级(layernorm)和残差连接(residual connection)。我们还共享语境、问题编码器和三个输出编码器的权重。正如Vaswani等人于2017年定义的那样,在每个由不同波长的sin和cos函数组成的编码器层(encoder layer)的起始点,添加位置编码。在编码器结构内的位置编码(例如:卷积、自注意力或前馈网络)之后的每个子层,被封装在残差模块内(residual block)。

我们模型设计背后的关键动机是:卷积捕获文本的局部结构,而自注意力则学习每对单词之间的全局交互。附加语境疑问注意力(the additional context-query attention)是一个标准模块,用于为语境段落中的每个位置构造查询感知的语境向量(query-aware context vector),这在随后的建模层中得到使用。我们的架构的前馈特性极大地提高了模型的效率。在基于SQuAD数据集的实验中,我们模型的训练速度提高了3至13倍,推理速度提高了4至9倍。作一个简单的比较,我们的模型可以在3个小时的训练中达到与BiDAF模型(Seo等人于2016年提出)相同的精确度(F1值为77.0),在此之前,这一过程需花费15个小时的时间。加速增益还允许我们使用更多的迭代来训练模型,以获得比竞争模型更好的结果。例如,如果我们允许我们的模型进行18个小时的训练,它在开发集(dev set)上的F1值达到了82.7,这比Seo等人于 2016年提出的模型,表现得要好很多,并且与已发布过的最佳结果相媲美。

由于我们的模型的运算效率很高,因此我们可以使用比其他模型更多的数据来训练它。为了进一步改进模型,我们提出了一种补充数据增强技术(complementary data augmentation technique)以增强训练数据。该技术通过将原句从英语翻译成另一种语言然后再翻译回到英语的方式,对样本进行释义,这不仅增加了训练样本的数量,而且还使句式变得多样化。

在SQuAD数据集上,使用增强数据进行训练的QANet在测试集上的F1值达到84.6,这明显优于Hu等人于2017年取得的结果(F1值为81.8)。我们也进行消融测试(ablation test),以证明我们模型每个部分的实用性。总而言之,本文的贡献如下:

•我们提出了一种有效的阅读理解模型,它完全建立在卷积和自注意力的基础上。据我们所知,我们是第一个这样做的人。与RNN相比,这种结合保持了良好的精确性,同时在训练环节中,速度提高了13倍,迭代次数提高了9倍。加速增益使我们的模型成扩大至更大数据集的最有发展前景的候选者。

•为了改进我们在SQuAD上的结果,我们提出了一种新型数据增强技术,以通过释义来丰富训练数据。它使模型能够达到比现有最先进的技术更高的精确度。

相关工作

机器阅读理解与自动答疑,已经成为了自然语言处理领域的一项重要课题。其之所以能够得到快速发展,得益于诸如“SQuAD”(Rajpurkar等人于2016年提出)、“TriviaQA”(Joshi等人于2017年提出)、“CNN/Daily News”(Hermann等人于2015年提出)、“WikiRdading”(Hewlett等人于2016年提出)和“Children Book Test(Hill等人于2015年提出)等可公开获取的注释数据集的增多。为了攻克这项课题,人们提出了许多端到端神经网络模型,例如:BiDAF (Seo等人于2016年提出)、 r-net (Wang等人于2017年提出)、DCN (Xiong等人于2016年提出)、 ReasoNet (Shen等人于 2017年提出)、Document Reader (Chen等人于 2017年提出)、Interactive AoA Reader (Cui等人于2017年提出)和Reinforced Mnemonic Reader (Hu 等人于2017年提出)。

在过去几年中,循环神经网络(RNNs)一直在自然语言处理中占据主导地位。本文的写作顺序与RNNs的设计理念相吻合,因而获得普遍关注。事实上,上述所有阅读理解模型都是基于RNNs来设计的。尽管RNN的应用非常广泛,但它的顺序特性阻碍了并行计算,因为令牌(tokens)必须按顺序输入RNN。尽管采用了门控循环单元(Gated Recurrent Unit)(Chung等人于2014年提出)和长短期记忆架构(Long Short Term Memory architectures)(Hochreiter和Schmidhuber于1997年提出),但RNNs仍存在难以对长期依赖关系(long dependencies)进行建模的缺点。对于一些简单的任务(例如:借助强化学习技术执行文本分类)而言,Yu等人已经于2017年提出了相关模型,以跳过不相关的令牌,从而进一步解决长期依赖问题,并加速这一过程。然而,我们目前尚且不清楚这些方法,能否处理诸如问与答之类的复杂任务。本文提及的阅读理解任务,通常包含长文本处理,因为文章中的段落可能会包含数百个单词。近期,人们尝试用完全卷积结构和完全注意力结构来取代循环网络。我们已经证明,这些模型不仅比RNN结构的运算效率高,而且在诸如文本分类、机器翻译和情感分析等任务中同样适用。

图2.以法语作为关键语言的数据增强示例。K表示束宽度(beam width),它是NMT系统产生的翻译数量。

据我们了解,本文首次提出了,通过摒弃循环网络来支撑前馈结构的方式,实现构建快速、准确的阅读理解模型的方法。本文也首次将自注意力和卷积相结合,F1值达到了2.7,因此这一方法被证实是卓有成效的。值得注意的是,Raiman和Miller于2017年提出,通过避免双向注意力(bidirectional attention)和创造集束搜索(search beams)计算条件这两种方法,可加快阅读理解进程。尽管如此,他们的模型仍然是基于RNNs的,其中EM值为68.4,F1值为76.2,在精确度方面不具竞争力。Weissenborn等人还于2017年提出,尝试通过采用删除语境查询注意力模块(context-query attention module)的方式,构建快速问答模型。但是,这种模型依旧是建立在RNN的基础上,因此,从本质上来讲,它的运算速度要慢于我们的模型。同时,注意力的消除进一步降低了性能(EM值为68.4,F1值为77.1)。

在自然语言处理中也探讨了关于数据增强(data augmentation)的问题。例如,Zhang等人于2015年提出,通过采用同义词替换的方式来增强数据集,并强调了其在文本分类任务中的有效性。Raiman和Miller于2017年提出,建议使用类交换(type swap)的方式来增强SQuAD数据集(该数据集实际上是将原始段落中的单词,替换为相同类型的词语)。尽管该方法被证实在提高精确度方面卓有成效,但增强后的数据与原始数据具有相同的句法结构,因此说明它们的分化程度还不够。Zhou等人于2017年提出,通过生成更多问题,来提高SQuAD数据的多样性。然而,正如Wang等人于2017年所论述的那样,他们的方法并没有在改进性能方面提供帮助。本文提出的数据增强技术,是基于对原文句子的正向、反向翻译而实现的。这样做的主要优点在于,它可以为增强后的数据带来更丰富的语法多样性。

结论

本文提出了一种用于机器阅读理解的,快速、精确的端到端模型——QANET。我们的核心创新点,在于完全消除了编码器中的循环网络。我们得到的模型是完全前馈的(fully feedforward),由完全可分离的卷积、注意力、线性层(linear layers)和层归一化(layer normalization)组成,这适用于并行计算。由此生成的模型运算效率高,精确度也高:它超过了SQuAD数据集上公布的最佳结果,并且比训练/推理迭代的竞争性循环模型(competitive recurrent)的效率高13/9倍。此外,我们还发现,通过利用数据增强(包括将语境和段落对(passage pairs)在不同语言中互译,从而作为回答问题和理解语境的一种方式)可以收获显著成果。

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426A20V9J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券