Press "Enter" to skip to content

Variational NMT with Normalizing Flows

Source: ACL 2020: Variational Neural Machine Translation with Normalizing Flows

 

Source Code: Closed

 

Key insight: 作者将近几年流行的Transformer、Variational Inference和Normalizing Flows综合起来,构建了达到SOTA结果的机器翻译模型(VNMT-NF)。实验结果表明Normalizing Flows的引入可以让模型近似更复杂更灵活的后验分布,从而提高模型在多模态数据(multimodality)和域外数据(out-of-domain)上的表现。

 

Introduction

 

一个句子的翻译本身是模棱两可的,由于不同翻译者的语言风格、文体偏好不尽相同,同一个句子可能存在多种合理的翻译,虽然目前的神经机器翻译(NMT)已经达到了让人满意的水平, 但目前的主流框架依旧是判别式的编码器-解码器结构,还没有显式地考虑翻译任务内在的不确定性和多样性。

 

近几年不少人开始研究带潜变量的机器翻译模型,试图通过引入潜变量的方式来增强翻译的多样性。 Variational Neural Machine Translation (EMNLP 2016) 是首次将潜变量引入NMT的论文,本文和这篇论文的方法类似,都是试图利用潜变量来捕捉原句的整体语义, Variational Recurrent Neural Machine Translation (AAAI 2018) 提出了一种词级的细粒度潜在编码,这些潜在编码的引入虽然没有明显的可解释性,但实验表明潜在编码的确能够提高NMT的翻译准确度。

 

Related Work

 

将VAE的思想运用到NMT中的论文已经非常多了,目前的VNMT主要分为两种,一种是像经典的翻译模型那样对条件概率分布建模,引入的潜在变量更多是起辅助的作用,另一种是直接对原句和翻译的联合概率分布建模,而作者提出的模型属于前一种。下面是这两类模型的一些比较有代表性的论文:

 

Conditional probability:

Variational Neural Machine Translation (EMNLP 2016)
Variational Recurrent Neural Machine Translation (AAAI 2018)
Conditional Variational Autoencoder for Neural Machine Translation

Joint probability:

Auto-Encoding Variational Neural Machine Translation (ACL 2019)
Generative Neural Machine Translation (NeurIPS 2018)

主流的VNMT常采用基于RNN生成网络和高斯后验分布的模型,但一方面RNN结构的表示能力较弱,远不如近几年兴起的Transformer结构,另一方面,后验分布为单模态的对角协方差高斯分布 这一假设也很强,虽然该假设使得我们能够解析地计算KL散度,同时允许我们使用re-parametrization trick,但是高斯分布远不能准确刻画复杂的真实后验分布,尤其是在文本生成这种多模态环境下,这使得证据下界和证据有较大的距离,因此我们希望能够 引入更复杂的后验分布,同时保持先验分布为高斯分布 。

 

已经有人分别从这两个方向做出了改进:

Improved Variational Neural Machine Translation by Promoting Mutual Information 将Transformer引入了VNMT,但仍旧采用的是高斯后验分布。
Investigating the Impact of Normalizing Flows on Latent Variable Machine Translation (ICML 2019 workshop) 引入了基于normalizing flows的变分后验分布,但使用的是基于RNN的生成网络。

而本文的创新点便是将更复杂的Normalizing Flows和更强大的Transformer结合了起来,建立了泛化能力更好的机器翻译模型。

 

VNMT with Normalizing Flows

 

Background

和 分别为取自双语语料库 的原句和翻译,VNMT模型的目标是最大化 的对数边际似然 ,其中 为句子级的潜在编码,VNMT使用变分推断避免直接优化边际似然,转而最小化证据下界(ELBO):

 

 

其中 分别为潜在编码的变分后验分布和先验分布, 是翻译的条件生成网络。我们希望重构损失尽量小,同时近似后验分布和先验分布又尽量靠近,以使得ELBO最小化。

 

Normalizing Flows-based Posterior

Normalizing Flows(NF)是一种引入更灵活的后验分布的方法,其基本思想是从一个简单的分布(比如高斯分布)抽取一个样本 ,然后依次用 个可逆函数 来对 做复合的变换,即 ,每个可逆函数 被称为一个流(flow),而多个可逆函数复合在一起便组成了越来越复杂的可逆变换,Normalizing Flows字面上实际指的是逆变换的过程,也就是将一个复杂的分布”标准化”为一个简单的分布。 的概率密度函数(PDF)可由概率密度函数的变量代换定理得到:

 

 

其中 表示第 个flow的参数, 表示基本分布(base-distribution)的参数。此时目标函数ELBO变为:

 

 

可逆映射 并不是随意选择的,我们对 有以下几点诉求:

我们希望 是容易算的,也就是希望采样(sampling)和推断(inference)都是高效的;
我们希望 的雅可比行列式是容易算的,一般来说雅可比行列式的计算复杂度为 ,但上三角形式的雅可比行列式的计算复杂度只有
我们还希望 有足够的表达能力,实际上,在上述两点的约束下,可供选择的 通常都不太复杂,因此单纯的流模型常常非常深,这也导致模型参数难以训练(比如 Glow ),所以很多时候Normalizing Flows常常和VAE结合在一起,更多时候是起到辅助的作用。

作者考虑了常见的三类标准化流: Planar FlowsSylvester FlowsAffine Coupling Layer

 

Planar Flows(PF)采用的可逆映射为

 

 

其中 ,Planar Flows可以看作是对 的不同维度进行压缩或扩张。

 

Sylvester Flows(SF)采用的可逆映射为

 

 

其中 为隐藏单元的数量,参数 常被设定为列正交矩阵,Planar Flows实际上是Sylvester Flows在 时的特例。

 

Affine Coupling Layer(CL)首先将 分割为 ,然后进行如下的变换:

 

 

采用恒等映射,并以 为条件得到参数 进行平移缩放变换。CL的复杂度虽然不及PF和SF,但它的sampling和inference都更容易。在组合多层CL时,我们可以不断改变 的分割方式,从而使 的所有维度都与其他维度得到充分的交互。

 

需要注意的是,上述Normalizing Flows的参数 可以依赖于 ,也就是对输入的表示做一个简单的线性变换得到各个flow的参数,也可以作为独立的可训练的参数。前者的表达能力一般更强,但如果参数与 有关,模型将无法做预测,因此作者只让参数依赖于

 

另外,引入Normalizing Flows后,KL散度的计算将不再具有闭式解,因此作者采用单次Monte-Carlo采样( )来估计对 的期望:

 

 

Transformer-based Generator

 

为了克服变长输入的问题,作者对原句和翻译的词向量采用平均池化 来得到句子级的向量表示,然后使用该表示获取潜在编码,将潜在编码 与Transformer decoder最后一层的输出 按如下方式混合:

 

 

表示带sigmoid的函数, 控制潜在编码对最终表示的贡献度,如果 和 设定的维度不匹配,则对 做一个线性变换。作者认为,和其他融合潜在编码的方式比起来,这样的方式更不容易导致Transformer忽略潜在编码。

 

Prediction

 

在预测的时候,给定原句 ,通过计算ELBO来搜索最有可能的翻译 。然而,从后验分布中抽样潜在编码是不可行的,因为后验是一个以 为条件的条件分布,最初提出VNMT的 Variational Neural Machine Translation (EMNLP 2016) 采用先验分布 的均值作为潜在编码,这在后验为高斯分布的假设下是合理的,然而本文利用Normalizing Flows学习了更复杂的后验分布 ,但先验依旧是高斯的,从先验采样的话就破坏了Normalizing Flows带来的好处。

 

Auto-Encoding Variational Neural Machine Translation (ACL 2019) 探索了两种策略,一种是限制后验分布只以原句 为条件,或者引入一个代理分布 ,作者认为第一种方法更简单也更准确,也就是假设 ,并在预测的时候使用后验分布的均值作为潜在编码。 因此实际上,作者所提出的模型的近似后验只与 有关,与 无关,而先验则是无信息的标准高斯分布。

 

Mitigating Posterior Collapse

 

众所周知的是,VAE用于文本生成时常会遇到 后验崩塌(Posterior Collapse) 或 KL散度消失(KL vanishing) 的问题,也就是训练期间模型没能学习到富含信息量的潜在编码,后验分布过于接近先验分布。这通常是因为模型的生成网络太强了,生成网络已经学习到了足够的信息来生成准确的文本,从而不再依赖于潜在编码,作者采用的Transformer便是非常强的生成网络。

 

为了缓解这个问题,作者采用了 -VAE的思路,实际上就是给KL散度项加上一个缩放因子 和控制因子

 

 

控制KL散度的量级, 越大,模型越注重于KL散度的优化。 相当于鼓励模型使用给定容量的潜在编码空间,不要完全不用,但也不能用得太多。当 时,模型将被鼓励使用”容量”为 的编码空间。作者设定 。同时采用了常用的 word dropout和KL-annealing 策略。

 

Experimental Results

 

Experimental Setup

 

作者采用 FairSeq Toolkit 实现模型,并汇报了模型在IWSLT’14 German-English (De-En)数据集和WMT’18 English-German (En-De)数据集上的测试结果。超参设定见原文,下面是一些数据预处理过程:

IWSLT’14: 使用了 Wu et al. (ICLR 2019) 的设置,训练集句子数量为160K,采用规模为10K的BPE词典。
WMT’18: 使用了 Edunov et al. (EMNLP 2018) 的设置,训练集句子数量为5.2M,采用规模为32K的BPE词典,并汇报 detokenized SacreBLEU 与其他模型做公平的比较。

In-Domain Results

作者给出的实验结果如上图所示,每一行的含义如下:

row 1: 作者复现了 Wu et al. (ICLR 2019) 的Transformer模型,和原文汇报的结果一致。
row 2: 设定潜在变量为原句词向量的平均值: ,同时加入了word dropout,这个实验将word dropout和pooling带来的提升分离出来(BLEU +0.8),但在row 11上这两个策略却又没有带来任何提升。
row 3: VNMT基线模型,近似后验为高斯分布(BLEU +0.5),说明建模潜在变量是有价值的。
row 4~6: 加入了不同的Normalizing Flows来替换高斯后验,有小幅提升,但不同类型的flow没有绝对的好坏之分。
row 7~8: 作者猜想加入NF带来的提升是因为 Normalizing Flows能够更好地捕捉到多模态的非高斯后验分布 ,为了验证这一点,作者通过 句子级知识蒸馏 的方式为每个原句增加了多个翻译(original+distilled data)然后在增强后的数据集上训练模型。Transformer baseline和VNMT+NF均受益于蒸馏后的数据,但VNMT+NF取得的收益更明显。
row 9~10: 作者汇报了 Edunov et al. (EMNLP 2018) 给出的模型的SacreBLEU,但后续采用了Transformer Big作为基线模型。
row 11~17: 和row 2~8结论一致,但加入Normalizing Flows对VNMT的提升在WMT’18数据集上带来的提升更大,尤其是经过知识蒸馏以后,基于NF的模型表现得到了大幅提升,这可能是因为 Normalizing Flows在大数据集上更有效 。

Simulated Out-of-Domain Condition

 

作者探索了VNMT+NF是否能够提升模型的域外泛化能力,注意到De-En IWSLT数据集的主题是TED talks,而En-De WMT数据集的主题是news article,因此作者使用在En-De WMT上训练的Transformer baseline(row 10)、VNMT(row 12)和VNMT+NF(row 14)模型分别回译IWSLT De-En的测试集,BLEU分数分别为27.9、28.2和28.8,这表明Normalizing Flows的确能够带来额外的 域外泛化能力 。

 

Translation Analysis

 

作者比较了Transformer baseline(row 10)、VNMT(row 12)和VNMT+NF(row 14)的实际表现。下面的结果表明VNMT-NF更容易产生性别一致的翻译结果。不过这只是非常经验性的观察,并不一定明显且广泛地存在。

Discussions

 

这篇论文是将Normalizing Flows引入文本生成模型的一个很好的尝试,但这篇论文只是简单融合了句子级的潜在变量,如何设计更结构化的潜在变量,捕捉更丰富的潜在语义信息,更有效地捕捉文本的多模态性质是值得考虑的一个方向。另外,如何将这种思路扩展到建立原句和翻译的联合分布模型也是值得尝试的。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注