A Neural Probabilistic Language Model
今天分享一篇年代久遠但卻意義重大的paper,A Neural Probabilistic Language Model。作者是來自蒙特利爾大學的Yoshua Bengio教授,deep learning技術奠基人之一。
本文於2003年第一次用神經網路來解決語言模型的問題,雖然在當時並沒有得到太多的重視,卻為後來深度學習在解決語言模型問題甚至很多別的nlp問題時奠定了堅實的基礎,後人站在Yoshua Bengio的肩膀上,做出了更多的成就。包括Word2Vec的作者Tomas Mikolov在NNLM的基礎上提出了RNNLM和後來的Word2Vec。文中也較早地提出將word表示一個低秩的向量,而不是one-hot。word embedding作為一個language model的副產品,在後面的研究中起到了關鍵作用,為研究者提供了更加寬廣的思路。
本文最大的貢獻在於用多層感知器(MLP)構造了語言模型,如下圖:
模型一共三層,第一層是映射層,將n個單詞映射為對應word embeddings的拼接,其實這一層就是MLP的輸入層;第二層是隱藏層,激活函數用tanh;第三層是輸出層,因為是語言模型,需要根據前n個單詞預測下一個單詞,所以是一個多分類器,用softmax。整個模型最大的計算量集中在最後一層上,因為一般來說辭彙表都很大,需要計算每個單詞的條件概率,是整個模型的計算瓶頸。
這裡,需要注意的是需要提前初始化一個word embedding矩陣,每一行表示一個單詞的向量。詞向量也是訓練參數,在每次訓練中進行更新。這裡可以看出詞向量是語言模型的一個附屬品,因為語言模型本身的工作是為了估計給定的一句話有多像人類的話,但從後來的研究發現,語言模型成了一個非常好的工具。
softmax是一個非常低效的處理方式,需要先計算每個單詞的概率,並且還要計算指數,指數在計算機中都是用級數來近似的,計算複雜度很高,最後再做歸一化處理。此後很多研究都針對這個問題進行了優化,比如層級softmax,比如softmax tree。
當然NNLM的效果在現在看來並不算什麼,但對於後面的相關研究具有非常重要的意義。文中的Future Work提到了用RNN來代替MLP作為模型可能會取得更好的效果,在後面Tomas Mikolov的博士論文中得到了驗證,也就是後來的RNNLM。
所以說我們趕上了一個好的時代,可以站在巨人的肩膀上,看到更遠的未來。
PaperWeekly,每周會分享N篇NLP領域的paper,內容包括筆記和評價,歡迎大家掃碼關注。
推薦閱讀:
※中文NLP vs 英文NLP在理論,數據處理上有什麼相同和不同, 尤其是中文 NLP有什麼獨特的地方?
※自然語言處理起航篇之資訊理論基礎(上)
※PaperWeekly 第53期 | 更別緻的詞向量模型:Simpler GloVe - Part 2
※線下沙龍 x 北京 | NLP專題技術分享會,佔座全憑手速!
※論文推薦:機器閱讀理解,問答系統,對話生成 | 本周值得讀 #36
TAG:自然语言处理 | 深度学习DeepLearning |