第一篇: 词向量之Word2vector原理浅析
第一篇: 詞向量之Word2vector原理淺析
作者 Aroundtheworld 2016.11.05 18:50 字數 1353 閱讀 5361評論 1喜歡 9一、概述
本文主要是從deep learning for nlp課程的講義中學習、總結google word2vector的原理和詞向量的訓練方法。文中提到的模型結構和word2vector的代碼實現并不一致,但是可以非常直觀的理解其原理,對于新手學習有一定的幫助。(首次在簡書寫技術博客,理解錯誤之處,歡迎指正)
二、詞向量及其歷史
1. 詞向量定義
??詞向量顧名思義,就是用一個向量的形式表示一個詞。為什么這么做?機器學習任務需要把任何輸入量化成數值表示,然后通過充分利用計算機的計算能力,計算得出最終想要的結果。詞向量的一種表示方式是one-hot的表示形式:
??首先,統計出語料中的所有詞匯,然后對每個詞匯編號,針對每個詞建立V維的向量,向量的每個維度表示一個詞,所以,對應編號位置上的維度數值為1,其他維度全為0。這種方式存在問題并且引發新的質疑:
1)無法衡量相關詞之間的距離
??從語義上講,hotel 和motel 更相關,和cat更不相關,但是無法表示這種差異。
2)V維表示語義空間是否有必要
? ? ? ?one-hot的每一維度表示具體的詞,我們假設存在更加抽象的維度能夠表示詞和詞之間的相似性和差異性,并且詞向量的維度遠遠小于V。例如,這些維度可以是時態,單復數等
2.詞向量獲取方法
1)基于奇異值分解的方法(奇異值分解)
a、單詞-文檔矩陣
? ? ? ? 基于的假設:相關詞往往出現在同一文檔中,例如,banks 和 bonds, stocks,money 更相關且常出現在一篇文檔中,而 banks 和 octous, banana, hockey 不太可能同時出現在一起。因此,可以建立詞和文檔的矩陣,通過對此矩陣做奇異值分解,可以獲取詞的向量表示。
b、單詞-單詞矩陣
? ? ? ? 基于的假設:一個詞的含義由上下文信息決定,那么兩個詞之間的上下文相似,是否可推測二者非常相似。設定上下文窗口,統計建立詞和詞之間的共現矩陣,通過對矩陣做奇異值分解獲得詞向量。
2)基于迭代的方法
? ? ? ? 目前基于迭代的方法獲取詞向量大多是基于語言模型的訓練得到的,對于一個合理的句子,希望語言模型能夠給予一個較大的概率,同理,對于一個不合理的句子,給予較小的概率評估。具體的形式化表示如下:
? ? ? ? 第一個公式:一元語言模型,假設當前詞的概率只和自己有關;第二個公式:二元語言模型,假設當前詞的概率和前一個詞有關。那么問題來了,如何從語料庫中學習給定上下文預測當前詞的概率值呢?
a、Continuous Bag of Words Model(CBOW)
? ? ? ? 給定上下文預測目標詞的概率分布,例如,給定{The,cat,(),over,the,puddle}預測中心詞是jumped的概率,模型的結構如下:
? ? ? ? 如何訓練該模型呢?首先定義目標函數,隨后通過梯度下降法,優化此神經網絡。目標函數可以采用交叉熵函數:
由于yj是one-hot的表示方式,只有當yj=i 時,目標函數才不為0,因此,目標函數變為:
代入預測值的計算公式,目標函數可轉化為:
b、Skip-Gram Model
? ? ? skip-gram模型是給定目標詞預測上下文的概率值,模型的結構如下:
? ? 同理,對于skip-ngram模型也需要設定一個目標函數,隨后采用優化方法找到該model的最佳參數解,目標函數如下:
? ? ? 分析上述model發現,預概率時的softmax操作,需要計算隱藏層和輸出層所有V中單詞之間的概率,這是一個非常耗時的操作,因此,為了優化模型的訓練,minkov文中提到Hierarchical softmax 和 Negative sampling 兩種方法對上述模型進行訓練,具體詳細的推導可以參考文獻1和文獻2。
三、參考文獻
1.word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method
2.word2vec Parameter Learning Explained
3.Deep learning for nlp Lecture Notes 1
4.Neural Word Embedding as Implicit Matrix Factorization(證明上述model本質是矩陣分解)
5.Improving Distributional Similarity with Lessons Learned from Word Embeddings(實際應用中如何獲得更好的詞向量)
6.Hierarchical Softmax in neural network language model
7.word2vec 中的數學原理詳解(四)基于 Hierarchical Softmax 的模型
8.Softmax回歸
9.霍夫曼編碼
總結
以上是生活随笔為你收集整理的第一篇: 词向量之Word2vector原理浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秒懂词向量Word2vec的本质
- 下一篇: 理解word2vec的训练过程