Language Modeling with Gated Convolutional Networks/zh

    From Marovi AI
    This page is a translated version of the page Language Modeling with Gated Convolutional Networks and the translation is 100% complete.
    Other languages:
    SummarySource
    Research Paper
    Authors Yann N. Dauphin; Angela Fan; Michael Auli; David Grangier
    Year 2016
    Topic area NLP
    Difficulty Research
    arXiv 1612.08083
    PDF 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 順序延遲)區分開來。自那以後,這種區分已成為評估序列模型在生產環境部署的標準做法:一個在訓練時吞吐量與基線相當的模型,如果無法以足夠快的速度解碼單一序列,可能仍然無法投入使用。

    參見

    參考文獻

    • 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.