
摘要
在自然语言处理(Natural Language Processing, NLP)领域,神经网络(Neural Network, NN)模型普遍采用层归一化(Layer Normalization, LN)作为标准的归一化方法。这与计算机视觉(Computer Vision)领域广泛使用的批归一化(Batch Normalization, BN)形成鲜明对比。在NLP中偏好使用LN的主要原因在于,经验观察表明,直接(朴素或原始)应用BN会导致NLP任务性能显著下降;然而,这一现象背后的深层机制尚未得到充分理解。本文对NLP中的Transformer模型进行了系统性研究,旨在揭示为何BN在NLP任务中表现不佳。我们发现,在训练过程中,NLP数据在批次维度上的统计特性存在剧烈波动。若采用朴素的BN实现方式,将导致训练过程不稳定。为解决这一问题,我们提出了一种新型归一化方法——幂归一化(Power Normalization, PN)。PN通过以下三个关键机制有效缓解了上述问题:(i)放宽BN中对零均值归一化的严格要求;(ii)引入运行中的二次均值(running quadratic mean)替代每批次的统计量,以稳定训练过程中的波动;(iii)在前向传播中采用近似反向传播机制,高效融合运行统计信息。理论上,在合理假设条件下,我们证明PN可使损失函数的Lipschitz常数小于BN。此外,我们进一步证明了所提出的近似反向传播方案能够保证梯度有界。我们在多种NLP任务上对PN进行了广泛实验,结果表明,PN显著优于LN和BN。具体而言,在IWSLT14和WMT14数据集上,PN相比LN分别提升了0.4和0.6的BLEU分数;在PTB和WikiText-103数据集上,PN分别将困惑度(PPL)降低了5.6和3.0。我们已将代码公开发布于:\url{https://github.com/sIncerass/powernorm}。
代码仓库
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| machine-translation-on-wmt2014-english-german | PowerNorm (Transformer) | BLEU score: 30.1 |