AAAI 2019 Gaussian Transformer: 一种自然言语推理的轻量方法

图灵汇官网

摘要

自然语言推理(Natural Language Inference, NLI)是一个活跃的研究领域,众多基于循环神经网络(RNNs)、卷积神经网络(CNNs)和自注意力网络(Self-Attention Networks, SANs)的模型被提出。尽管这些模型表现出色,但基于RNNs的模型难以并行训练,基于CNNs的模型需要大量参数,而基于SANs的模型则在捕捉文本中的部分依赖方面存在局限。为了克服这些问题,我们引入高斯先验(Gaussian prior)来改进自注意力机制,更好地建模句子的部分结构。在此基础上,我们提出了一种高效且不依赖循环或卷积的网络结构——Gaussian Transformer。该模型由编码模块、高阶交互模块和参数轻量的对比模块组成,实验结果显示,在SNLI和MultiNLI数据集上,我们的模型取得了当时最佳的成绩,同时大幅减少了参数数量和训练时间。此外,在HardNLI数据集上的实验表明,我们的方法较少受到人工标注的影响。

引言

任务简介

自然语言推理(NLI),又称文本蕴含识别(Recognizing Textual Entailment, RTE),主要研究文本间的语义推理关系。具体而言,就是识别两句话之间的包含关系,包括包含、矛盾和中性关系。NLI本质上是一个文本分类问题。

动机

我们提出Gaussian Self-attention的动机在于,观察到在句子中,与当前词语义关联较大的词通常出现在该词附近,但一般的自注意力机制未能有效体现这一点。例如,在句子“I bought a [new] book yesterday with a [new] friend in [New] York.”中,“new”一词对于“book”来说只有第一个“new”是有意义的。然而,传统的自注意力机制并未区分这些“new”的重要性。因此,我们引入高斯先验,鼓励自注意力机制给予临近词更高的权重,从而更有效地建模句子的部分结构。

模型简介

通过一系列简化操作,我们将Gaussian self-attention转换为Transformer中的一次矩阵加法操作,从而节省了计算量。此外,我们发现适当抑制注意力到单词本身,能略微提升实验结果。我们的模型整体框架分为四个部分:嵌入模块、编码模块、交互模块和对比模块。

嵌入模块

嵌入模块将自然语言文本转化为机器便于处理的向量化表示,我们采用了单词和字符级别的嵌入,以及位置编码。

编码模块

编码模块类似于原始Transformer的编码器,但我们加入了Gaussian self-attention,以更好地建模句子的部分结构。同时,为了捕捉句子的全局信息,我们堆叠了多个编码模块。

交互模块

交互模块用于捕获两个句子之间的交互信息,类似于原始Transformer的解码器部分,但我们去除了位置掩码和解码部分。通过堆叠多个交互模块,可以捕获高阶交互信息。

对比模块

对比模块负责对比两个句子,分别从编码和交互的角度对比,我们简化了对比模块的结构,以节省参数。

实验与分析

实验结果

首先,我们验证了各个模块的有效性。采用多层编码模块和交互模块的效果优于单层模型,证明了全局信息和高阶交互的有效性。其次,我们验证了高斯先验的有效性,发现其功能优于其他方法,包括原始Transformer。最后,我们在SNLI、MultiNLI和HardNLI数据集上与其他方法进行了对比,结果显示,我们的方法在准确率、模型参数量和训练时间上均优于基线方法。

分析

问题1: 原始的Transformer已经具备位置编码,为什么还需要使用高斯先验? 答案: 位置编码仅使模型具备感知单词位置的能力,而高斯先验进一步告诉模型哪些单词更重要,即对于当前单词来说,附近的单词比远处的单词更重要。

问题2: 为什么Gaussian Transformer在时间和参数量上优于其他方法? 答案: Gaussian Transformer没有循环和卷积结构,可以实现并行计算。同时,我们在设计模型时尽量简化结构,摒弃了以往方法中的复杂结构,使模型更加轻量。

结论

针对自然语言推理任务的现有不足,我们提出了基于Gaussian self-attention的Gaussian Transformer模型。实验表明,该模型在多个自然语言推理任务上取得了当前最佳的结果。

本文来源: 图灵汇 文章作者: 石平