Language Modeling with Gated Convolutional Networks/zh
| Research Paper | |
|---|---|
| Authors | Yann N. Dauphin; Angela Fan; Michael Auli; David Grangier |
| Year | 2016 |
| Topic area | NLP |
| Difficulty | Research |
| arXiv | 1612.08083 |
| Download PDF | |
Language Modeling with Gated Convolutional Networks 是 Facebook AI Research 的 Yann N. Dauphin、Angela Fan、Michael Auli 与 David Grangier 于 2016 年发表的论文,提出了用于语言建模的门控卷积神经网络(gated convolutional neural network, GCNN)以及 gated linear unit(GLU)激活函数。该论文质疑了“必须使用循环网络才能在大规模语言建模基准上达到最先进 perplexity”这一主流假设,并表明:一个具有有限上下文、可并行化且配备乘性门控的卷积堆栈,能够在推理速度快一个数量级的同时,达到甚至超过强大的 LSTM 基线。论文发表于 ICML 2017。
概述
统计语言模型通过将一个 token 序列的概率分解为下一个词条件概率的乘积来对其进行估计。直到 2016 年,主流的神经方法都使用循环网络——通常是 LSTM——其优势被归因于无界的有效上下文。作者认为这一性质并非严格必要:足够深的卷积堆栈可以表示足以满足实际语言建模需求的上下文,而由于不存在时间上的递归,这类模型在时间维度上天然可并行化。
其贡献有两方面。首先是架构:堆叠的因果一维卷积,组织成预激活的残差 bottleneck 块,并由一个 adaptive softmax 输出层收尾。其次是激活函数:gated linear unit,它在保留门控调制信息流能力的同时,提供了一条线性梯度路径。两者结合所得的收敛性与最终 perplexity 与精心调优的 LSTM 基线相当甚至更优,且推理延迟显著更低。
主要贡献
- 提出 Gated Linear Unit (GLU):一种乘性激活函数,其中一个线性卷积由另一并行卷积的 sigmoid 进行门控,从而提供一条不会消失的线性梯度路径。
- 引入 Gated Convolutional Network (GCNN)——堆叠的因果一维卷积,配以残差 bottleneck 块与 adaptive softmax——作为首个在大规模语言建模上可与 LSTM 竞争的非循环模型。
- 在 WikiText-103 上取得 37.2 perplexity 的单模型新 SOTA,超过此前 LSTM-1024 基线的 48.7。
- 在 Google Billion Word 基准上确立单 GPU 的新最佳成绩,并在 8 GPU 配置下经过 2 周训练达到 31.9 perplexity(相比之下,Jozefowicz 等人的 LSTM 在 32 GPU 上训练 3 周达到 30.6)。
- 通过利用卷积的并行结构,相对可比的 LSTM 实现了 responsiveness(逐 token 顺序延迟)20× 的提升。
- 给出了对门控机制的受控实证比较,表明 GLU 优于 van den Oord 等人 (2016) 提出的基于 tanh 的 GTU,也优于普通的 ReLU 与 Tanh 网络。
方法
模型接收一个词嵌入序列 $ \mathbf{E} = [\mathbf{D}_{w_0}, \ldots, \mathbf{D}_{w_N}] $,并将其送入一组残差块构成的堆栈,每个残差块都执行 gated linear unit 的计算
- $ h_l(\mathbf{X}) = (\mathbf{X} \ast \mathbf{W} + \mathbf{b}) \otimes \sigma(\mathbf{X} \ast \mathbf{V} + \mathbf{c}) $
其中 $ \ast $ 表示沿时间轴的一维卷积,$ \sigma $ 是 sigmoid,$ \otimes $ 是逐元素乘法。通过在输入左端零填充 $ k-1 $ 个位置来强制因果性,使得卷积核永远看不到未来的 token。堆栈的输出被送入 adaptive softmax,它为高频词分配更多容量,从而极大地降低了在拥有数十万词条的词表上计算输出分布的代价。
激活函数的选择是核心的方法论贡献。GLU 的梯度,
- $ \nabla[\mathbf{X} \otimes \sigma(\mathbf{X})] = \nabla\mathbf{X} \otimes \sigma(\mathbf{X}) + \mathbf{X} \otimes \sigma'(\mathbf{X})\nabla\mathbf{X} $
对处于激活状态的门控单元而言,该梯度包含一个未被衰减的项 $ \nabla\mathbf{X} \otimes \sigma(\mathbf{X}) $;相比之下,LSTM 风格的 gated tanh unit (GTU) 的梯度同时被 $ \tanh' $ 与 $ \sigma' $ 缩放,因此随着深度增加更易消失。作者将 GLU 描述为一种乘性 skip connection:网络仍可对信息流进行乘性门控,而线性路径则使梯度在深层堆栈中保持良好条件。
在架构上,每个块至多包含五层,遵循预激活的 bottleneck 模式(一个较宽的 $ k>1 $ 卷积夹在两个 $ k=1 $ 投影之间),并被一个残差加法所包裹。论文中的模型块数从 8 到 14 不等,隐藏宽度为 800–2048,嵌入维度为 128–280。训练使用 Nesterov 动量(动量 0.99)、梯度裁剪(0.1)、weight normalization、Kaiming 初始化以及介于 1.0 与 2.0 之间的学习率。梯度裁剪——通常用于应对循环网络的梯度爆炸——在此从信赖域方法的角度获得了合理性,并显著加快了训练。实现基于 Torch,运行于 Tesla M40 GPU 之上;最大的模型采用 8 GPU 的同步数据并行 SGD 进行训练。
结果
在 Google Billion Word 基准上,GCNN-13 在单 GPU 上达到 38.1 的测试 perplexity,优于可比的 LSTM-2048(39.8)。扩展到 8 GPU 时,GCNN-14 Bottleneck 达到 31.9 perplexity,接近 Jozefowicz 等人规模大得多的 2 层 LSTM-8192-1024 的 30.6,而所需的 GPU 时间约为后者的三分之一。在 WikiText-103 上(其样本为整段维基百科段落,平均 4000 个 token),GCNN-14 取得 37.2 perplexity,大幅优于 LSTM-1024 基线的 48.7,是该基准上首个非循环的 SOTA。该模型在 Gigaword 上也达到 29.4 perplexity(全连接基线为 55.6),但在小规模的 Penn Treebank 上表现欠佳,作者观察到了过拟合,并得出结论:该架构更适合大规模问题。
在计算效率方面,GCNN-8 Bottleneck 在相同的 43.9 perplexity 工作点上,达到了与高度 cuDNN 优化的 LSTM-2048 相当的吞吐量(GPU 上约 45,800 tokens/s),同时由于每个 token 都可以独立评估而无需等待循环隐状态,其 responsiveness(逐 token 顺序延迟)提升了 20×。对门控机制的消融实验表明,GLU 比 GTU、ReLU 或 Tanh 收敛更快,且最终 perplexity 更低;门控与无门控变体之间的学习曲线差距很大,且在两个数据集上一致出现。将感受野扩展到约 20 个 token 上下文之外,收益迅速递减,这支持了“有限上下文足以应对实际语言建模的大部分需求”这一论点。
影响
该论文是更广泛地从纯循环序列模型转向其他范式的奠基性参考文献之一。它所引入的 gated linear unit 如今已是一种标准激活函数:GLU 及其变体——尤其是 Shazeer (2020) 所分析家族中的 SwiGLU 和 GeGLU——被广泛用于诸如 PaLM、LLaMA 以及众多开源 transformer 等大型语言模型的前馈子层中,并在相同参数量下持续优于普通 ReLU 或 GeLU 的 perplexity。
“可并行化的有限上下文模型能够与循环模型相抗衡”这一架构论点,也为同实验室 Gehring 等人 (2017) 的卷积 sequence-to-sequence 工作以及最终的 Transformer(Vaswani 等人, 2017)奠定了概念基础。Transformer 同时替换了卷积与循环结构,改用 self-attention,但承袭了并行化论点,并在许多后续变体中也沿用了 GLU 激活。在语音与翻译的实际流水线中,延迟优势被后续的卷积式与门控式系统直接利用,直到基于 attention 的解码器成为主流。
另一个次要的方法论遗产是论文清晰地将 throughput(批处理下的每秒 token 数)与 responsiveness(逐 token 顺序延迟)区分开来。自那以后,这种区分已成为评估序列模型在生产环境部署的标准做法:一个在训练时吞吐量与基线相当的模型,如果无法以足够快的速度解码单一序列,可能仍然无法投入使用。
参见
- Long short-term memory
- Convolutional neural network
- Recurrent neural network
- Language model
- Transformer (machine learning model)
- Attention Is All You Need
- WikiText-103
参考文献
- Dauphin, Y. N.; Fan, A.; Auli, M.; Grangier, D. (2017). "Language Modeling with Gated Convolutional Networks". Proceedings of the 34th International Conference on Machine Learning (ICML).
- Jozefowicz, R.; Vinyals, O.; Schuster, M.; Shazeer, N.; Wu, Y. (2016). "Exploring the Limits of Language Modeling".
- Chelba, C. et al. (2013). "One Billion Word Benchmark for Measuring Progress in Statistical Language Modeling".
- Merity, S.; Xiong, C.; Bradbury, J.; Socher, R. (2016). "Pointer Sentinel Mixture Models"(引入 WikiText-103 语料库)。
- van den Oord, A. et al. (2016). "Conditional Image Generation with PixelCNN Decoders"(LSTM 风格的 gated tanh unit 基线)。
- Grave, E.; Joulin, A.; Cissé, M.; Grangier, D.; Jégou, H. (2017). "Efficient Softmax Approximation for GPUs"(adaptive softmax)。
- Gehring, J.; Auli, M.; Grangier, D.; Yarats, D.; Dauphin, Y. N. (2017). "Convolutional Sequence to Sequence Learning".
- Vaswani, A. et al. (2017). "Attention Is All You Need".
- Shazeer, N. (2020). "GLU Variants Improve Transformer"(对 transformer 前馈层中 GLU 系列激活的后续分析)。
- Hochreiter, S.; Schmidhuber, J. (1997). "Long Short-Term Memory". Neural Computation 9(8): 1735–1780.