ACL 2019 | 机器翻译深层模型

随着Transformer(Vaswani et al, 2017)及其变种(Shaw et al., 2018; Wu et al., 2019)的提出,宽而浅的模型结构在神经机器翻译模型受到偏好,如Transformer big模型使用了6层的编码器和解码器结构以及1024维的隐含层维度信息。但是,深层神经网络模型在基于RNN的GNMT模型以及BERT上得到了有效性验证,那么这种深层结构对于Transformer在机器翻译任务上是否有帮助呢?本文提出了一种通过增加编码器深度的方式来训练Transformer模型,在几乎不损耗推理速度的情况下在测试集上达到了新的state-of-the-art。

论文地址:
https://arxiv.org/pdf/1906.01787.pdf

引言

神经机器翻译(Neural Machine Translation, NMT)模型通过学习序列映射和使用注意力机制在机器翻译任务上达到了十分优秀的效果。最早的NMT模型基于循环神经网络RNN实现了4-8层的网络结构。随着Transformer模型的提出,宽而浅的网络模型结构被证明在机器翻译任务中是有效的,如Transformer Big模型,使用了6层的编码器和解码器,同时使用了1024维的隐含层维度表示。与此同时,深层网络结构又因为在Transformer上容易出现梯度消失或爆炸问题难以训练。因此,如何有效地将深层结构应用在Transformer上成为了一个研究的难点。

数据集

文章使用的语料来自于1):WMT16英-德语料,一共包含4.5M的句子;2):NIST12 中英语料,一共包含1.9M的句子。
本文采用的baseline模型分别为前正则(pre-norm)的Transformer base/big 模型以及后正则(post-norm)的Transformer base/big 模型。

模型训练

原生Transformer模型在其结构中使用了后正则(post-norm)的形式,如图1所示。
图1 原生Transformer结构
而在其他Transformer模型的变种中,也有使用前正则(pre-norm)的结构形式,如Transformer在Tensor2tensor的具体实现便是使用了前正则。在浅层网络结构(如模型只有6层)中,前正则与后正则的表现几乎是一样的。但当模型加深时,由于前后正则的不同表现形式(如图2),后正则容易陷入梯度消失的问题,难以训练。因此,前正则是解决深度网络结构在Transformer的应用的关键。
图2	前后正则的结构图及BP推导公式
受到线性多跳机制(Linear Multi-step Method, LMM)的启发,论文提出了使用动态多层线性组合(Dynamic Linear Combination of Layers,DLCL)的方式解决深层结构导致的梯度消失/爆炸问题。
对于第i层的状态 y i y_i yi,它由之前层的状态与其对应的权重 W j i W_j^i Wji控制,其中权重W是可以训练的。对于前正则结构而言,其第l+1层的状态计算公式如下:

对于后正则而言,其第l+1层的状态计算公式如下:

其中,LN表示层正则(layer normalization)。
这种结构的好处是,1)对于前后正则来说都可以使用;2)只有非常轻量的计算开销,对于一个深层网络结构来说是可以接受的。
图3	  在3层编码器情况下,DLCL结构与之前结构的权重分布对比,。a)残差连接; b)密集残差连接; c)多层表示融合; d)DLCL结构
从图3可以看出,与之前的工作相比,使用了DLCL结构的网络模型,其动态权重作用于每一层而不是最顶层,证明了DLCL结构是一种更加通用的结构形式。
与LMM相比,首先,DLCL结构以端到端的方式学习权重表示;其次,DLCL结构能够不受限制地处理每一层的信息。

实验细节

论文使用Transformer作为baseline模型。模型采用BPE分词方式。
对于wmt16英德任务,论文使用了一个32k大小的共享词表,newstest2013作为验证集,newstest2014作为测试集。
对于NIST12中英任务,论文使用了一个44k大小的中文词表和一个33k大小的英文词表,使用NIST MT06作为验证集,NIST MT04、MT05、MT08作为测试集。
所有实验均使用8块Nvidia Titan V GPU。模型使用Adam作为优化函数, β 1 = 0.9 , β 2 = 0.98 , ϵ = 1 e − 8 \beta_1=0.9,\beta_2=0.98,\epsilon=1e^{-8} β1=0.9,β2=0.98,ϵ=1e8,学习率采用先递增后按照逆平方根递减的方式变化,warmup_step=4000,初始学习率设为1e-7。使用Label Smoothing=0.1作为正则项,
论文采用checkpoint平均的方式进行最后的测试,使用最后5个epoch的checkpoint作为平均的权重文件。在解码参数设置方面,采用beam search的方式进行解码。分别对英德和中英设置beam size为4和6,长度惩罚项为0.6和1.0。

实验结果

论文报道了在WMT’16 En-De和NIST’12 Zh-En测试集上的表现。
图4 WMT’16 En-De的结果
图5 NIST’12 Zh-En的结果
图6 不同层数下模型的表现能力
从图4中可以看出,采用后正则的模型在模型深度达到20层时已经难以训练了,但是前正则依旧可以完成训练。在使用DLCL结构的情况下,即使不依赖于前正则结构,依旧有能力训练足够深层(20层)的网络模型,在结合前正则的情况下,DLCL能够训练更加深层的网络模型(30层)。
从图6来看,随着模型增加到一定深度(20层),传统的Transformer模型性能开始下降,而是使用了DLCL结构的模型性能依旧能够上升,直到30层左右才开始出现性能下降。

结论

神经网络的模型的拓展通常指向两个维度,一个是宽而浅的宽度模型,另一个则是深而窄的深度模型。通过加宽网络宽度,如增加隐含层维度,已经在大量的实验中被证明是有效的;而对于深度模型,由于其不可避免的梯度消失/爆炸导致的模型难以训练的问题,使得很少有实验能够将一个网络模型增加到足够的深度。本文提出的DLCL结构和前正则的巧妙使用虽然在浅层模型中看上去差别不大,但在深层模型中却使得模型训练成为了可能。在今后,随着网络结构的拓展和优化,或许会有更多更深层的模型得到应用。



扫码识别关注,获取更多论文解读

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值