卡內基梅隆大學和 DeepMind 的研究者曾提出了一種包含多種語言模型的單個框架。機器之心技術分析師對該論文進行了解讀。
論文地址:https://www.aclweb.org/anthology/D16-1124
專案地址:https://github.com/neubig/modlm
引言
這篇論文展示了一種名為“分佈語言模型的混合(MODLM:Mixture Of Distribution Language Models)”的框架,其提供了一個包含多類廣泛使用的語言模型(LM)的單個數學框架。這篇論文描述了兩種將傳統的 n-gram 模型和神經語言模型的所需特性組合到一起的全新方法:神經插值式 n-gram 語言模型和神經/n-gram 混合式語言模型。研究者在兩個語料庫上執行了實驗:Penn Treebank(PTB)資料集和 ASPEC 語料庫英語方面的前 10 萬個句子 [1,2]。在完成這兩個實驗之後,他們還在更大規模的資料集(WSJ 和 GW)上進行了實驗並與靜態插值法(Static Interpolation)做了比較。結果表明他們的新框架在組合模型方面表現出色,並且實現了比已有模型更好或相近的結果。該框架也許能為我們改進語言模型帶來一些啟發。
1.背景
也許有的讀者不知道什麼是 n-gram 模型,這裡我會給出一些有助於理解這篇論文的材料。
語言模型(LM)是指能學習到一個函式的函式或演算法,並使得所學習到的函式能獲取某個自然語言詞序列的分佈的顯著統計特徵。通常來說,我們可以進行查詢來得到我們的“查詢”的概率。比如,如果我查詢“I like”,那麼我就會得到 P(X | I like) 的概率。X 可以是任意詞。
1.1 n-gram 語言模型與對數概率
首先,我將簡要介紹一些基本概念:
n-gram 語言模型 [12]
能為詞序列分配概率的模型被稱為語言模型(LM)。n-gram 是最簡單的語言模型。對於一個有 n 個詞的序列,2-gram(bi-gram)是兩個詞構成的詞序列(比如“please turn”),3-gram(tri-gram)是三個詞構成的詞序列(比如“please turn your”)。n 表示被視為單個“單位”來求取概率的詞的數量。詞的概率將與其前面的 n-1 個詞有關。
我們需要知道兩點(至少對這篇論文而言):
- 給定之前的詞,如何使用 n-gram 模型來估計一個 n-gram 中最後一個詞的概率
- 如何為整個序列分配概率
(注:由於 n-gram 這個術語有些模糊,我們通常不會使用“模型”這個詞,因此 n-gram 既可表示詞序列本身,也可指代為其分配概率的預測模型。)
對數概率
為什麼要為語言模型使用對數概率?因為概率從定義上來說總是小於或等於 1,所以我們乘到一起的概率越多,得到的積就越小。當將足夠多的 n-gram 乘到一起時,會導致數值下溢。通過使用對數概率而非原始概率,我們得到的值不會那麼小。對數空間中的相加相當於線性空間中的相乘,所以我們可以通過相加來組合對數概率。所有計算過程都在對數空間完成,結果也儲存在對數空間中;如果之後我們需要報告結果,我們只需將結果轉換成概率即可;那麼我們只需取對數概率的指數:p1 × p2 × p3 × p4 = exp(log p1 +log p2 +log p3 +log p4)
1.2 神經語言模型
神經語言模型是指基於神經網路來完成每個操作。比如,你的查詢的概率會是神經網路的輸出,而非靜態方法的輸出。3.1 節會給出一些討論(更多資訊請參閱 [13,14,15])。
2.該論文的動機
對於基於計數的語言模型,平滑化的(由於資料稀疏性 [3])n-gram 是最傳統且使用很廣泛的語言模型。神經網路的表現已經超越了基於計數的語言模型。但是,神經語言模型在訓練時間和測試時間都有計算複雜度的問題,即使研究者報告的最大型的神經語言模型所使用的訓練資料量也僅有基於計數的語言模型一小部分。[4,5,6]
這篇論文關注的是分佈語言模型的混合(MODLM),研究者定義了以下形式:給定之前的上文 c,根據多個分量概率分佈 的混合,計算句子 wi 中下一個詞的概率:
其中,是控制每個 P_k 的權重的函式。並且所有 λ 的和為 1。則公式 (1) 可轉換成下面的矩陣-向量乘法形式:
其中 p_c 是長度等於詞彙表大小的向量。我們可以根據圖 1 來理解該公式。
根據上述公式,這篇論文創造了一種可將基於計數的語言模型和神經語言模型的所需特性結合到一起的全新方法。
3. MODLM
3.1 作為線性混合的現有語言模型
作為分佈混合的 n-gram 語言模型
這篇論文解釋了最大似然估計、插值(interpolation)和折扣(discounting)。[7,8]
眾所周知,最大似然估計是一種計算概率的常用方法:
其中 c 是計數在訓練語料庫中的頻率。
由於資料稀疏性,最大似然估計可能給計數非常小或等於 0 的詞序列分配 0(或接近 0) 的概率。插值是解決這一問題的一種常用方法。
(如圖 2(a) 所示)
使用基於上下文頻率計數的啟發式方法來動態地計算 λ(c) 可以提升結果表現:
其中 是 n 階模型的一個語境敏感型回落概率(context-sensitive fall-back probability)。
折扣是另一種被廣泛使用的技術,這會定義一個固定折扣 d 並在計算概率之前將其從每個詞的計數中減掉:
對平滑技術的解釋可參閱 [7],其中包括加法平滑(Additive smoothing)、Good-Turing 估計、Jelinek-Mercer 平滑(插值)、Katz 平滑(backoff)、Witten-Bell 平滑、絕對摺扣(Absolute discounting)、Kneser-Ney 平滑。
作為分佈混合的神經語言模型
這篇論文解釋了前饋神經網路語言模型和迴圈神經網路語言模型。
p=softmax(hW+b) (其中 h 是之前的仿射層的輸出)
神經語言模型(包括前饋網路和 RNN)不會直接計算 p,而是會計算混合權重 λ=softmax(hW+b) [wupan1]並會將 MODLM 的分佈矩陣 D 定義為一個 J×J 的單位矩陣。(圖 2(b))
3.2 MODLM 的全新應用
神經插值式 n-gram 語言模型
基於上一小節描述的現有方法,這種模型沒有使用啟發式的插值係數 λ,而是使用了 3.1 節描述的方法來替代圖 2(a) 中的啟發式插值係數,由此得到了圖 3(a).
神經/n-gram 混合式語言模型
與上一個模型類似。但使用 J×J 的單位矩陣對矩陣進行了增強,如圖 3(b) 所示。但我認為這張圖說得不清楚。
這個方法會讀取神經和 n-gram 語言模型所使用的所有資訊,並會像攪拌機一樣將 n-gram 和神經網路的結果組合到一起。直觀而言,該模型獲得的資訊越多,其表現就會越好。後面的實驗結果也表明了這一點。
該論文描述的在 NMT 上的插值類似於這篇論文:https://www.aclweb.org/anthology/D16-1162
4.學習和 block dropout
訓練目標
這裡的訓練目標是在語料庫 W 中的每個句子 w 中的詞 wi 上總結的負對數似然損失:
其中 c 表示 w 中 wi 之前的所有詞,這些詞會被用於概率計算。除了這個訓練目標,其它都類似於標準的神經網路語言模型。
用於混合模型的 block dropout
在神經/n-gram 混合模型中,n-gram 的概率已經很好了,J×J 矩陣的權重還不能提供準確的概率,所以這個模型將會學習將混合比例設定為接近於 0 並主要依賴於基於計數的 n-gram 分佈。
Ammar et al. (2016) [10] 提出了一種名為 block dropout 的方法,該方法會隨機丟棄整個網路節點的一部分(標準 dropout [11] 會丟棄單個節點,它們的處理單位不同)。因此,對於整個訓練資料中隨機某塊(他們這裡使用了 50%),他們通過將對應於 n-gram 分佈的 λ(c) 中的所有元素歸零而禁用這部分 n-gram,從而讓整個模型都只依靠 J×J 矩陣。
5 結果
實驗結果如下:
首先,他們選擇了兩個相對較小的資料集:PTB 和 ASPEC。表 1 給出了這兩個資料集的詳情。
表 2 給出神經插值式 n-gram 語言模型的結果。如表 2 所示,這些技術實際上有 10 種不同的組合。其中 ML 指最大似然估計,KN 指 Kneser-Ney,C 指計數,CR 指計數+詞,HEUR 指啟發式,FF 指前饋神經網路,LSTM 是長短時記憶 RNN。
表 2: 使用 ML 或 KN 分佈和計數(C)或計數+詞表徵(CR)特徵的傳統啟發式方法(HEUR)和所提出的神經網路(FF 或 LSTM)插值方法的 PTB/ASPEC 困惑度
表 3 給出了神經/n-gram 混合式語言模型的結果。表中的 δ 是 Kronecker δ 分佈,這等價於我們之前提及的 J×J 單位矩陣。
表 3:傳統 KN (1)、LSTM 語言模型 (2)、神經插值式 n-gram (3) 以及沒有 (4) 和有 (5) block dropout 的神經/n-gram 混合式模型的 PTB/ASPEC 困惑度
圖 6 展示了它們在更大型的 WSJ 和 GW 資料集上的結果。這張圖有點讓人眼花繚亂。總體而言,神經/n-gram 混合式模型的表現優於傳統神經語言模型。資料的型別和規模也會對方法的表現產生影響。對於 WSJ 資料,在所有資料上訓練的結果優於新增分佈的方法;但當加入 GW 資料時,這個趨勢卻正好相反。因此,對於不同的資料集,針對領域選擇插值方法也很重要。
圖 6:在 PTB (1,2)、PTB+WSJ (3,4,5) 或 PTB+WSJ+GW (6,7,8) 上使用標準神經語言模型 (1,3,6) 、在所有資料上訓練過的神經/n-gram 混合式模型 (2,4,7)、或通過額外的 n-gram 分佈在 PTB 上訓練過的混合模型 (5,8) 訓練得到的模型
最後,他們使用 EM 演算法將單獨訓練的模型與基於驗證集調整過的靜態插值權重組合到了一起,即表格中 Lin. 對應的結果。這是使用 modlm 工具包中的 interp-probs 程式完成的。“+WSJ”是指額外新增了大型的 WSJ 資料。
表 4 給出了與靜態插值法的比較結果。結果表明新提出的方法能實現相近或更好的表現。
表 4:神經(δ)語言模型和基於計數的模型之間的插值的 PTB 困惑度
分析師簡評
這篇論文提出了一種語言模型框架,將不同語言模型的所需特性組合到了一起。因為語言模型可被用在很多相關領域中(比如機器翻譯和自動語音識別),所以這是一種結合不同技術的新方法(這裡是結合了神經網路和靜態方法),這可能會引發一個提升現有技術的新趨勢。
參考文獻(除了上面提到的論文)
[1] Tomas Mikolov, Martin Karafiat, Lukas Burget, Jan Cernocky, and Sanjeev Khudanpur. 2010. Recurrent neural network based language model. In Proc. InterSpeech,pages 1045–1048.
[2] Toshiaki Nakazawa, Hideya Mino, Isao Goto, Graham Neubig, Sadao Kurohashi, and Eiichiro Sumita. 2015. Overview of the 2nd Workshop on Asian Translation. In Proc. WAT
[3] 1,S. F. Chen and J. Goodman. 1999. An empirical study of smoothing techniques for language modeling. Computer Speech & Language, 13(4):359–393.
[4] Chen, Welin, David Grangier, and Michael Auli. "Strategies for training large vocabulary neural language models." arXiv preprint arXiv:1512.04906 (2015).
[5] Williams, Will, et al. "Scaling recurrent neural network language models." Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015.
[6] Brants, Thorsten, et al. "Large language models in machine translation." U.S. Patent No. 8,332,207. 11 Dec. 2012.
[7] https://nlp.stanford.edu/~wcmac/papers/20050421-smoothing-tutorial.pdf
[8] Ney, Hermann, Ute Essen, and Reinhard Kneser. "On structuring probabilistic dependences in stochastic language modelling." Computer Speech & Language 8.1 (1994): 1-38.
[9] Arthur, Philip, Graham Neubig, and Satoshi Nakamura. "Incorporating discrete translation lexicons into neural machine translation." arXiv preprint arXiv:1606.02006 (2016).
[10] Ammar, Waleed, et al. "Many languages, one parser." arXiv preprint arXiv:1602.01595 (2016).
[11] Srivastava, Nitish, et al. "Dropout: a simple way to prevent neural networks from overfitting." Journal of Machine Learning Research 15.1 (2014): 1929-1958.
[12] https://lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf
[13] http://www.scholarpedia.org/article/Neural_net_language_models
[14] http://mt-class.org/jhu/slides/lecture-nn-lm.pdf
[15] http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf