读论文《A Neural Probabilistic Language Model》
讀論文《A Neural Probabilistic Language Model》
原文地址:http://blog.csdn.net/qq_31456593/article/details/77482256
introduce
本文算是訓練語言模型的經典之作,Bengio將神經網絡引入語言模型的訓練中,并得到了詞嵌入這個副產物。詞嵌入對后面深度學習在自然語言處理方面有很大的貢獻,也是獲取詞的語義特征的有效方法。
論文的提出源于解決原詞向量(one-hot表示)會照成維數災難的問題,作者建議通過學習詞的分布式表示來解決這個問題。作者基于n-gram模型,通過使用語料對神經網絡進行訓練,最大化上文的n個詞語對當前詞語的預測。該模型同時學到了(1)每個單詞的分布式表示和(2)單詞序列的概率分布函數。
該模型學習到的詞匯表示,與傳統的one-hot表示不同,它可通過詞嵌入之間的距離(歐幾里得距離、余弦距離等),表示詞匯間的相似程度。如在:
The cat is walking in the bedroom
A dog was running in a room
中,cat和dog有著相似的語義
method
作者提出的網絡模型如下圖所示:
整個網絡分為2部分,第一部分是利用詞特征矩陣C獲得詞的分布式表示。第二部分是將表示context的n個詞的分布式表示拼接起來,通過一個隱藏層和一個輸出層,最后通過softmax輸出當前p(wt|context)(當前上下文語言的概率分布,最大化要預測的那個詞的概率,就可以訓練此模型)。
第一部分詞分布式表示的獲取如下圖所示:
其中第i行對應的是one-hot表示中第i項為1的詞向量的分布式表示。詞向量與矩陣相乘后就可以得到自己的分布式表示了。由于C是是神經網絡的參數,所以詞的分布式表示(詞嵌入word embedding)會隨著模型的訓練不斷得到優化。
在網絡的第二部分中
表示context的n個word embedding通過隱藏層進行語言組合,最后經過輸出層使用softmax輸出預測的詞向量,因為本模型是基于n-gram模型,所以只要最大化正確預測當前詞即可。最后不但訓練了一個用神經網絡表示的語言模型,而且還獲得此詞語的分布式表示(存在矩陣C中)
從第二部分的輸入到輸出層有一個直連邊,一般情況下該直連邊的權重矩陣設為0,在最后的實驗中,Bengio 發現直連邊雖然不能提升模型效果,但是可以少一半的迭代次數。同時他也猜想如果沒有直連邊,可能可以生成更好的詞向量。
該模型最終要最大化如下式子:
本文主要講解論文思路,具體細節見原論文
my view
本文把神經網絡引入了語言模型的構建中,和神經網絡在其他領域的發展一樣,其核心思想都是利用神經網絡學習輸入的特征表示,并對些特征表示進行組合,以完成相關任務。
我認為詞的分布式表示,或者說word embedding與圖像中的卷積很像,語言的基本單位是單詞,而圖像的基本單位就是各種圖像特征,而深度學習的關鍵就是如何學習這些特征并利用。
神經網絡的其實是特征空間的變換,人能理解自然語言或許可以認為自然語言的詞匯在大腦構建的語言空間里是相關性的,而神經網絡可以模擬大腦去找這種相關性。
總結
以上是生活随笔為你收集整理的读论文《A Neural Probabilistic Language Model》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果手机click事件失效
- 下一篇: Win7无线热点