基于对抗正则化的自然语言推理
2019-09-15刘广灿曹宇许家铭徐波
刘广灿 曹宇 许家铭 徐波
自然语言推理(Natural language inference,NLI)又称为文本蕴含识别(Recognizing textual entailment,RTE)[1−2],是自然语言处理(Natural language processing,NLP)中一个重要的研究问题.自然语言推理是一个确定两个或多个句子之间逻辑关系的任务,例如:给定一个前提(Premise)和一个假设(Hypothesis),目标是确定它们之间的逻辑关系是蕴涵、中立还是矛盾.SNLI[3]和Breaking-NLI[4]等一系列高质量、大规模标准数据集的发布推动了自然语言推理的发展,促进了大量相关研究[5−11],表1 展示了几个SNLI 数据集中的例子.目前基于神经网络的推理模型主要有两类:一类侧重前提和假设分别进行句子嵌入,然后使用分类器将其组合起来;另一类不是分别处理两个句子,而是使用交互注意力机制进行句子之间的交互.本文关注基于句子嵌入的方法,因为该方法没有限定要求两个句子,可以延展到更多任务上.
表1 SNLI 数据集上的三个例子Table 1 Three examples from the SNLI dataset
对自然语言推理广泛的研究使得很多复杂模型在基准数据集上取得了越来越高的表现,但是最近的研究[11]表明多数模型很少关注前提和假设的句义关系,而是大量利用句子中个别词之间对立或相似等浅显关系进行推理作答,更有甚者只是根据假设就可以进行推理.可想而知这些推理模型很难应用到复杂的现实场景中,它们根据句子中特定词之间的关系进行盲目推理,比如根据前提中的“expensive”词和假设中的“cheap”词,简单推理出两个句子是对立关系,而实际上两句话描述的不是同一件事情,正确的逻辑关系应该是中立.推理模型过度依赖特定词,说明模型只是抓住数据集中的语言偏置,而不是依据前提和假设所表达的句义关系进行逻辑推理.
一种检测语言偏置对推理模型影响的方式是设计一个仅依赖词编码表示进行推理的模型(为了方便描述,本文使用WIM(Word inference model)表示仅依赖词编码表示进行推理的模型),事实上WIM 也可以作为一个标准的基线模型.本文提出使用对抗正则化方法来降低语言偏置的影响,具体方法是让一个标准的推理模型和这个只依赖词编码表示进行推理的对手进行博弈,以减少语言偏置的影响.在对抗机制下,一方面训练WIM,使得该模型尽可能推理正确,其中WIM 模型的词编码表示是由标准推理模型提供;另一方面训练标准推理模型,调整它的词编码和句编码部分,目的是在提高自身推理准确率的同时,尽量降低WIM 模型的性能.在这种新颖的对抗正则化机制下,优化自然语言推理模型.
本文提出的模型可以端到端训练,而且扩展和延伸性比较强.在SNLI 和Breaking-NLI 数据集上的实验结果表明了该方法的有效性:本文提出的方法在SNLI 数据集基于句子嵌入的推理模型中取得了最好的结果,而且在Breaking-NLI 数据集中也取得了领先的表现.
本文的主要贡献如下:1)通过多样信息整合,多层级句子编码,增强自然语言推理模型对句子的表示能力,以探索更多语义信息.2)关注自然语言推理中的语言偏置现象,并使用对抗正则化方法来解决这个问题,此外该方法没有增加模型的参数,不会增加模型测试时的复杂度.3)通过在SNLI 和Breaking-NLI 数据集上的实验表明本文提出方法的有效性,模型推理表现取得了有效的提升.
1 相关工作
1.1 自然语言推理
目前句子嵌入在自然语言推理的众多方法中得到了广泛的应用,这些方法背后的基本思想是分别对前提语句和假设语句进行编码,然后将它们的句子表示结合起来使用神经网络进行分类,具体结构如图1 所示.在已有的工作中,很多研究工作使用卷积神经网络(Convolution neural network,CNN)和长短时记忆网络(Long short-time memory,LSTM)作为构建模块,如Liu 等[12]提出基于双向长短时记忆网络(Bidirectional LSTM,BiLSTM)的句子编码结构,Mou 等[13]提出基于树的CNN 句子编码结构.也有很多使用更加复杂的神经网络进行句子嵌入的研究工作,如Munkhdalai等[14]提出NSE(Neural semantic encoder)的记忆增强神经网络,用于自然语言推理任务.最近一些研究者开始探索应用于句子嵌入表示的自注意力机制.Shen 等[6]提出DiSAN 模型,该模型没有使用CNN 和循环神经网络(Recurrent neural network,RNN),而是完全依赖于研究者提出的多维注意力和双向自注意力机制.Shen 等[15]提出ReSAN(Reinforced self-attention network)模型,该模型使用强化学习将软注意力和硬注意力融合在一起.Im等[16]提出基于距离的自注意力网络模型,该模型利用距离掩蔽来关注单词之间的距离,从而对局部依赖关系进行建模.此外,还有研究者将胶囊网络中的动态路由机制应用到自然语言推理任务中[17],并且取得了不错的效果.虽然在自然语言推理中,句子嵌入方法已经显示出其有效性,但是也有多项研究表明,将前提和假设句子对在句子编码期间联合处理,关注它们之间的复杂交互,模型会得到更好的结果.然而,这些交互式的方法不能在很多单个句子处理的任务上直接使用,也不能像句子嵌入一样直接提供关于句子的语义理解.本文选择基于句子嵌入的体系结构,以便应用于更多NLP 任务.
图1 自然语言推理(NLI)整体结构框图Fig.1 The structure of natural language inference(NLI)
1.2 对抗学习
Goodfellow 等[18]提出生成对抗网络(Generative adversarial network,GAN)作为一种学习数据分布的新方式.生成对抗网络包含一个生成器G和一个判别器D,G和D在一个极小极大的博弈中被同步训练,优化目标是达到纳什均衡
其中,生成器G根据从先验分布pz中采样的隐含输入变量z来产生真实的数据,以愚弄判别器D.另一方面,判别器D是一个典型的二元分类器,它试图去辨别它的输入数据是来自训练集还是来自生成器生成的集合.生成对抗网络通过判别器为生成器提供损失梯度进行训练,目的是学习一个生成模型,使该模型的输出满足特定的分布pdata.
生成对抗网络具有强大的模拟复杂分布的能力,已受到广泛关注,并且在图像和文本生成等领域演化出很多变体,取得了大量令人瞩目的效果.如针对对抗网络自身的改进LSGAN[19]和WGAN[20],对抗网络在图像生成上的应用BicycleGAN[21]和DualGAN[22],在文本生成上的应用SeqGAN[23]和RankGAN[24]等.最近,研究人员提出了其他对抗训练的策略[25−26],以鼓励中间模型表示各种形式的不变性.
2 本文方法
图2 是本文提出的基于对抗正则化的自然语言推理模型框图,图中上半部分的标准NLI 模型对应本文提出的增强的多层级表示推理模型(Enhanced multi-level representations inference model,EMRIM),下半部分的针对词编码的NLI 对手对应前面提到的WIM 模型.其中EMRIM 模型主要包括词编码器、句编码器、分类器三部分,该模型通过增强的多层级编码结构探索丰富语言信息.并且本文提出使用对抗正则化方法降低语言偏置的影响,从而进一步提升模型的推理能力.本文从以下几个方面对提出的方法进行具体描述.
图2 基于对抗正则化的自然语言推理模型结构框图Fig.2 The structure of natural language inference model based on adversarial regularization
2.1 词编码器
丰富的表示信息在自然语言推理中扮演着重要的角色.在我们的模型中,我们将统筹多种类型的表示,以更好地挖掘前提和假设句义信息,这也是这项任务的基本组成部分.首先将前提和假设中的每个单词转换成连续的表示形式,对词信息进行融合和提取.图3 中展示了词编码的处理方式,具体包含以下部分:
图3 词编码器和句子编码器网络结构Fig.3 Word encoder and sentence encoder network structure
1)词嵌入:与之前方法的设置相似,使用预训练的词向量GloVe[27]将每一个单词映射到向量空间.
2)字符嵌入:将卷积神经网络(CNN)应用到每个单词的字符上.实践证明,该方法对处理集外词(Out of vocabulary,OOV)有一定的帮助[28].
3)POS 和NER 标签:使用词性标注(Partof-speech,POS)和命名实体识别(Named-entity recognition,NER)来获得单词的词性信息和实体信息,然后每一个单词可以通过查表获得对应的POS 嵌入表示和NER 嵌入表示.这种方法比常用的独热码包含更多信息.
4)精确匹配(Exact match,EM):受机器阅读理解的启发,使用3 个二进制特征来表示这个词是否能与任何词准确匹配,分别表示原始形式、小写形式和词干形式.
5)CoVe:通过机器翻译[29]得到词的上下文向量表示,本文的模型对其进行降维处理,以减少模型的参数量.
本文将前面提到的多种词信息串联起来使用,这样不仅可以从更多角度获得词相关的表示信息,而且为后续句子编码提供良好的基础表征,以更准确地理解句子上下文含义,从而做出合理的推理.
2.2 句子编码器
为了获得句子的语义信息,将所有向量序列传递给使用BiLSTM 和最大池化(Max pooling)的句子编码器.输入一个长度为T的序列(w1,w2,w3,···,wT),双向长短时记忆网络的输出是(h1,h2,h3,···,hT),序列输出中的每一项计算如下:
接下来为了学习每个句子的整体表示,对序列编码器隐藏层的输出应用最大池化处理,得到与ht同维度大小的向量
先进的自然语言推理模型通常将句子编码器实现为多层结构,鼓励模型模拟复杂函数,同时捕获复杂的语言结构.此外,一些研究人员已经证实,不同层能够提取不同类型的语法和语义信息[30].本文通过设置多层级结构,探索每一层潜在的语义信息.在推理模型中,使用基于BiLSTM 和Max Pooling的层次化句子编码器,句子编码器包括三层,每一层BiLSTM 都是将原始输入语句序列作为输入;而且,除了第一层BiLSTM 之外的其他BiLSTM 层,均使用前一层网络的最终状态来初始化其隐层状态.对每一层BiLSTM 的输出进行最大池化,句子编码的最终输出是每一个最大池化层输出的串联拼接.图3 显示了具体的网络结构.
2.3 顶层分类器
句子编码器的输出是前提和假设的固定维度的向量表示u和v,然后将它们传递给顶层分类器.在自然语言推理任务中,顶层分类器一般使用多层感知机(Multilayer perceptron,MLP)和Softmax 函数来预测每个类别的概率.本文以多种方式将这两个句子的表示聚合在一起,并作为多层感知机的输入,然后把多层感知机的输出传递给Softmax 函数,公式表示如下所示:
2.4 对抗正则化方法
1)标准推理模型:给定数据集D={pi,qi,ai},其中包含前提句pi ∈P、假设句qi ∈Q、推理标签ai ∈A三部分,自然语言推理任务就是从前提和假设句子中推理出它们的逻辑关系.为了描述方便,定义词编码器的操作为G,定义句子编码器为H,最后的分类层为F,p和q为数据集D中某样本的两个句子,所以我们的推理模型可以表示为,首先这两个句子通过词编码器分别得到表示gu和gv
然后输出的结果经过句编码器的处理得到句子表示u和v
最后将两者的句子表示传递给顶层分类器预测逻辑关系
现有的自然语言推理模型一般都遵循类似的模式,通过标准的交叉熵函数进行训练,通过优化参数最小化损失函数
2)WIM:对NLI 中关于词的语言偏置强弱直观的度量是模型仅从词编码就可以预测答案的能力.我们将这个模型形式化为一个映射FG,如上所述,我们假设FG是可微的,并把从标准推理模型获得的词编码作为输入,以便FG可以进行预测
将这个模型参数化为与顶层分类器相似的结构,只是为了便于后续处理.在其基础上加入了最大池化层.如上所述,该模型可以用交叉熵函数进行训练
3)对抗正则化减少语言偏置:如图2 所示,本文将标准推理模型和只依赖词编码的推理模型设置为对抗状态,引入对抗正则化的方法优化自然语言推理模型.其中只依赖词编码的推理模型为了推理成功,需要学习训练数据集中的语言偏置,但是因为这种语言偏置忽略了句义信息,导致标准推理模型推理错误.为了减少语言偏置,将两个模型设置为对抗状态,通过修改词编码部分来降低只依赖词编码模型的表现;同时强化句子编码部分,以捕获更多上下文信息和语义信息,从而达到在提升标准推理模型推理表现的同时减少对语言偏置的依赖的目的.可以将这两个模型的对立关系描述为
基于对抗正则化的自然语言推理模型的训练过程如下,首先训练只依赖词编码的推理模型,该模型的训练目标是最小化其对应的交叉熵损失函数,但是词编码器G(·)不会根据这个梯度信息更新,这个操作对应了图2 中的梯度拒绝部分.潜在地,这迫使分类器FG要基于标准推理模型给出的词编码表示尽可能好地进行推理.然后训练更新标准推理模型,该模型的梯度信息来自于两部分:一部分是标准推理模型本身对应的交叉熵损失函数;另一部分来自于只依赖词编码的推理模型负的加权的交叉熵损失函数,其中分类器FG的参数是不更新的,分类器只是起到梯度传递的作用.最后这两个训练过程进行交替训练更新,通过不断对抗博弈,以到达理想的纳什均衡状态.
我们使用正则化系数λ来调控推理模型的性能和语言偏置的权衡.λ取值较小表明较少的正则化发生,标准推理模型继续学习语言偏置.另一方面,当λ取值较大时,表示去除较多语言偏置,可能导致标准推理模型和只依赖词编码的模型的表现都不好;此外权重过大会加重对词编码的影响,以至于词编码器没有能力学习合理的词表示,从而进一步影响句子表征等高层表示.所以要设置合适的权重来权衡两者之间的重要性.
3 实验
3.1 数据集
我们在SNLI 和Breaking-NLI 数据集上验证本文的方法.
SNLI(Stanford natural language inference)[3]数据集大约有57 万人工标注的句子对,该数据集比其他同类数据集大两个数量级.其中前提数据来源于Flickr30k 语料库中的字幕,而假设句数据和标签是人工合成的.数据集提供的标签分别是“entailment”,“neutral”,“contradiction”,“–”.其中“–”表示注释者之间无法达成共识.遵照Bowman 等[3]提出的方式删除标签为“–”的句子对,然后生成训练集、验证集和测试集.
Breaking-NLI[4]数据集是一个自然语言推理的测试集,包括8 193 个前提和假设句子对,其中前提和假设只是有一个词或短语被替换了,其他成分是相同的.该数据集被用来测试自然语言推理模型,推理模型需要一定的词汇和世界知识才能实现合理的表现.
3.2 实验设置
本文在实验中使用预先训练好的300 维的GloVe 840B 词向量来初始化词嵌入向量,词嵌入中的集外词使用[−0.1,0.1]随机初始化,在模型训练期间词嵌入向量被不断更新,以学习适合NLI 任务的更有效的表示.我们使用Spacy 对单词进行标记并生成POS 和NER 标签,POS 和NER 的嵌入维度分别是26 和20.所有BiLSTM 的隐层大小设置为250,为了避免过拟合,在层间使用dropout[31]和层归一化(Layer normalization)[32]处理方法.使用Adam[33]算法优化模型参数,并设置学习率为0.0001,权重衰减为1×10−8.设置批次大小为32,以进行更多探索.在对抗训练过程中,两个模型交替训练的频率为1:1.在所有方法中都是使用500维的BiLSTM(250 维前向LSTM+250 维后向LSTM).
3.3 实验结果
表2 显示了使用句子嵌入方法的不同模型在SNLI 训练集和测试集的结果.我们使用以下几种方法进行实验对比:
1)BiLSTM_MP:该模型的词编码器使用本文提出的多信息融合编码方式,但是句编码器使用了简单堆叠的三层BiLSTM 网络,并根据最后一层BiLSTM 的输出进行最大池化处理,最后经过顶层分类器得到推理结果.
2)BiLSTM_MP+AR:该方法是在BiLSTM MP 基础上使用对抗正则化.
表2 不同方法在SNLI 上的实验结果(%)Table 2 Experimental results for different methods on SNLI(%)
3)EMRIM:该方法是第2 节提出的增强的多层级表示推理模型.
4)EMRIM+AR:在EMRIM 中加入对抗正则化方法.
表2 显示了本文实验结果与SNLI 官方排行榜结果,根据实验对比,本文提出的EMRIM 方法达到了87.36% 的准确率,已经接近排行榜中的最好结果87.4%,这说明在推理模型中使用多种类型信息增强的词编码器和多层级的句编码器,确实可以提取更丰富更准确的语义表示,从而利于模型推理.当分别为标准推理模型BiLSTM_MP 和EMRIM 增加只依赖词编码进行推理的对抗模型之后,在不断博弈的进化过程中,两个标准模型的推理性能进一步提升,BiLSTM_MP+AR 比BiLSTM_MP 高出约0.22% 的准确率,EMRIM+AR 比EMRIM 高出约0.24% 的准确率.这表明了本文提出的对抗正则化方法的有效性:该方法可以减少标准推理模型对语言偏置的依赖,避免依据词间浅显的关系进行盲目推理;而是强调语义理解,通过对句义的整体把握做出选择.需要注意的是对抗正则方法没有增加标准推理模型的参数量,并且不会增加模型测试时的复杂度.
表3 是不同方法在Breaking-NLI 测试集上的实验结果[4],这些模型都是在SNLI 数据集上训练,然后在Breaking-NLI 数据集上测试.实验发现在SNLI 测试集上表现不错的ESIM 模型,在这个测试集上的性能急剧下降.本文提出的EMRIM+AR模型在该测试集上取得了目前公开的最高准确率,这说明本文提出的模型具有良好的词汇知识和世界知识;通过应用对抗正则化方法,推理模型在理解词汇的同时,关注句义表达,整体把握推理需求,做出合理推理.
表3 不同方法在Breaking-NLI 上的测试结果Table 3 Experimental results for different methods on Breaking-NLI
注意到在对抗训练过程中,随着标准推理模型在SNLI 测试集上的表现提升,只依赖词编码进行推理的模型的性能上升到一定程度之后不再增加,而且有稍微下降的趋势.这表明对抗优化策略执行得很好,这也是和我们的直觉是一致的.
表4 是权重λ对SNLI 测试集推理准确率的影响.根据权重和准确率的变化趋势,可以得到以下分析.在较高的权值下,基于词编码的大部分判别信息都已经丢失,即标准推理模型是通过牺牲自己的性能,从而降低了只作用于词编码模型的性能,但是事实上在推理中根据词信息进行判别还是占有一定重要地位的,不应完全忽略;另外,权重过大也导致模型底层学习不到合理的词向量表示,继而影响模型高层网络对句子编码能力和推理能力.在权值较小时,标准推理模型的性能相较之前也没有明显提升,毕竟完全根据词中的判别信息进行推理是片面的,因为忽略了对句子内容的整体理解和把握,会导致模型的推理脱离了对应的描述场景,从而难于做出正确抉择.只有兼顾词中表达的判别信息和句义分析这两方面,自然语言推理模型才会做出正确的推理.
表4 权重λ 对NLI 准确率的影响Table 4 Impact of weight λ on NLI accuracy
4 结束语
本文提出增强的多层级表示推理模型,通过多样信息整合和多层级句子编码,增强模型对句子的表示能力,探索更多语义信息.在标准推理模型中引入对抗正则化方法,通过标准推理模型和只依赖词编码进行推理的模型进行博弈训练,以减少语言偏置对推理模型的影响,使模型能够基于上下文进行有效推理.在SNLI 和Breaking-NLI 数据集上的实验结果验证了本文方法的有效性.在未来的研究工作中,我们希望将该方法应用到更多任务中去.