516 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
分。这个性质弱化了梯度计算对模型深度 L 的依赖;而如公式(15.26)右侧所示,Post-
Norm 结构则包含一个与 L 相关的多项导数的积,伴随着 L 的增大更容易发生梯度消
失和梯度爆炸问题。因此,Pre-Norm 结构更适于堆叠多层神经网络的情况。比如,使
用 Pre-Norm 结构可以很轻松地训练一个 30 层(60 个子层)编码器的 Transformer 网
络,并带来可观的 BLEU 提升。这个结果相当于标准 Transformer 编码器深度的 6 倍,
相对的,用 Post-Norm 结构训练深层网络的时候,训练结果很不稳定,当编码器深度
超过 12 层后很难完成有效训练
[463]
,尤其是在低精度设备环境下损失函数更容易出
现发散情况。这里把使用 Pre-Norm 的深层 Transformer 模型称为 Transformer-Deep。
另一个有趣的发现是,使用深层网络后,网络可以更有效地利用较大的学习率
和较大的批量训练,大幅度缩短了模型达到收敛状态的时间。相比于 Transformer-Big
等宽网络,Transformer-Deep 并不需要太大的隐藏层维度就可以取得更优的翻译品
质
[463]
。也就是说,Transformer-Deep 是一个更“窄”更“深”的神经网络。这种结构
的参数量比 Transformer-Big 少,系统运行效率更高。
此外研究人员发现当编码器使用深层模型之后,解码器使用更浅的模型依然能
够维持很好的翻译品质。这是由于解码器也会对源语言信息进行加工和抽象,当编
码器变深之后,解码器对源语言的加工就不那么重要了,因此可以减少解码器的深
度。这样做的一个直接好处是:可以通过减少解码器的深度提高翻译速度。对于一
些翻译延时敏感的场景,这种架构是极具潜力的
[775, 776, 818]
。
15.2.2 高效信息传递
尽管使用 Pre-Norm 结构可以很容易地训练深层 Transformer 模型,但从信息传
递的角度看,Transformer 模型中第 l 层的输入仅仅依赖于前一层的输出。虽然残差
连接可以跨层传递信息,但是对于很深(模型层数多)的模型,整个模型的输入和输
出之间仍需要经过很多次残差连接。
为了使上层的神经网络可以更加方便地访问下层神经网络的信息,最简单的方
法是引入更多的跨层连接。其中,引入跨层连接的一种方式是直接将所有层的输出
都连接到最上层,达到聚合多层信息的目的
[557, 558, 559]
。另一种更加有效的方式是在网
络前向计算的过程中建立当前层表示与之前层表示之间的关系,例如动态线性聚合方
法
[463]
(Dynamic Linear Combination of Layers,DLCL)和动态层聚合方法
[561]
。这些方
法的共性在于,在每一层的输入中不仅考虑前一层的输出,同时将前面所有层的中
间结果(包括词嵌入表示)进行聚合,本质上利用稠密的层间连接提高了网络中信
息传递的效率(前向计算和反向梯度计算)。而 DLCL 利用线性的层融合手段来保证
计算的时效性,主要应用于深层神经网络的训练,理论上等价于常微分方程中的高
阶求解方法
[463]
。此外,为了进一步增强上层神经网络对底层表示的利用,研究人员
从多尺度的角度对深层的编码器进行分块,并使用 GRU 来捕获不同块之间的联系,
得到更高层次的表示。该方法可以看作是对动态线性聚合网络的延伸。接下来分别
对上述几种改进方法展开讨论。