神經概率語言模型,內容分為三塊:問題,模型與準則,實驗結果。[此節內容未完待續...]
1,語言模型問題
? ? ? 語言模型問題就是給定一個語言詞典包括v個單詞,對一個字串
做出二元推斷,推斷其是否符合該語言表達習慣。也就是
的取值為0或者為1。
? ? ? ?概率語言模型放松了對取值的限制,讓其在0~1之間取值(語言模型 v.s 概率語言模型),而且全部的字串的概率之和為1。維基百科對于概率語言模型的解釋為:是借由一個概率分布,而指派概率給字詞所組成的字串。可是須要注意的是直接對
進行求其概率分布是不現實的,由于理論上這樣的字串數量是無限的。直接求其概率分布會導致維度災難。
? ? 為了解決這個問題,首先引入鏈式法則(chain rule),覺得字串中第i個字符出現的概率是由其前面i-1個字符決定的。這樣就有例如以下公式:?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? 可是,有了這個公式還是太復雜了。繼續引入如果簡化公式,覺得字串中第i個字符出現的概率是由其前面n-1個字符決定(也就是如果)的。這樣公式就繼續被簡化:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? 模型如今就變得非常easy了,就是計算條件概率。也就是須要計算給定字串
后,字典中的每一個字出現的概率
。
2. 模型與準則
??2.1 數據 給定一些標記號的樣本.
? 2.2 模型
??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1. 模型圖解
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖片來自:http://licstar.net/archives/328
? ? 建模步驟
? ? 2.2.1 查表:將輸入的單詞,通過查表(圖1中Table look-up過程)將單詞映射為m維的詞向量。此處的所查的表并非給定的,是在模型學習中獲得的附加產物(也就是word2vec產生的那些向量玩意)。
? ? 2.2.2 線性變換:將2.2.1中的n-1個m維度的向量通過首尾拼接的方式線性變換成為(n-1)*m維的向量。也就是在中間那個tanh層輸入處(以下)全部分向量C(w)合并為一個大的維度為(n-1)*m的向量[Mikolov的RNNLM在此做出改變:不只只看n-1個單詞的信息,而是看該詞前面全部的單詞信息]。
? ? 2.2.3?非線性變換:在中間那個tanh層處進行非線性變換。這里須要的是一個變換矩陣和偏置矩陣
。也就是對于中間那一層(tanh所在的那一層),該層的輸入是(n-1)*m的向量
,輸出是
。經過線性變換后,先前的(n-1)*m維的向量成為了h維的向量。
? ? 2.2.4 輸出處理:在最后一層(softmax層)進行處理輸出。這里須要一個變換矩陣和一個偏置矩陣
。最后輸出就是
。注意到最后輸出的是一個v維度的向量,和我們的第一節中詞典D的維度是一致的。向量中每個維度相應的實數就是輸出該單詞的概率。
? ? ?
? ? 2.3 準則
? ? 對全部的訓練樣本,其準則為使取最小,此處
為正則項。能夠使用梯度下降法進行求取。
??
? ? 模型中須要人工設定的參數是模型的元數n,詞向量的維度m,隱層的輸出維度h。
? ? 須要模型優化的參數:變換矩陣W和H,偏置矩陣d和b,查表所使用的詞向量表都是須要優化的參數,也就是我們所求取的參數。
??
? ? 3.實驗結果
? ? 語言模型困惑度。模型困惑度是用來評價不同的語言模型好壞的一種方法(另一種方法是Word Error Rate,Mikolov的博士論文《Statistical Language Models based on Neural Networks》博士論文對這兩種方法有介紹和比較)。給定測試數據集合,模型在該測試集合上的困惑度越小越好。
? ? 測試集合一:
? ? Brown Corpus,共計118w單詞,當中80w訓練,20w驗證,其它18w作為測試集合。
? ? 在n=5,m=30,h=100時候NNLM的PPL為270。該測試集合眼下最好的n-gram模型(n=3)的PPL為312。設置權重進行模型融合后的PPL為252。
? ? 測試集合二:
? ? AP News,共計1600w詞,當中1400w訓練,100w驗證,其它100w作為測試集合。
? ??在n=6,m=100,h=109時候NNLM的PPL為109。該測試集合眼下最好的n-gram模型的PPL為117。
? ?
網上學習資料:
關于神經網絡語言模型的博客:點擊打開鏈接
Mikolov的博士論文《Statistical Language Models based on Neural Networks》 關于n-gram語言模型的評價是簡單有用(N-gram models are today still considered as state of the?art not because there are no better techniques, but because those better techniques are?computationally much more complex, and provide just marginal improvements, not critical?for success of given application.),模型的關鍵就是選擇n值和平滑技術。其固有缺點例如以下:
? ? ? ? 第一,n-gram模型的n值無法取大。由于模型n-gram片段的數量會隨著n值的變大指數增長。這一點就決定了n-gram模型無法有效的利用更長的上下文信息。特殊的,當被提供海量訓練語料時,n-gram模型也無法有效捕捉一些長距離的語言現象。
? ? ? ?第二,即使n值能夠取得比較大,n-gram無法有利用長距離的上下文信息。比如,有一個句子The sky above our heads is bleu. 這句話里面單詞 bleu對單詞sky有著非常強的依賴關系,無論這兩個單詞中間插入多少變量都不會破壞這樣的關系。比如The sky this morning was bleu. 可是對n-gram模型,即使放開n值的限制,取一個較大的n值,也無法有效地捕捉這樣的長距離的語言現象。
? ? ? ? 第三,n-gram模型無法高效的對相似的詞語進行辨別。比如:訓練語料中存在Party will be on Monday. 和Party will be on Tuesday. 模型無法對類似Party will be on Friday.的句子賦予較高的概率。盡管我們人可以清楚知道“Monday”,"Tuesday","Friday"這些是類似的概念,可是只對字面進行建模的n-gram無法辨別。