Word2Vec演算法梳理

極驗發表於2019-09-04

1.Word2Vec 模型總述

Word2Vec演算法梳理

Word2Vec簡單講其實就是透過學習文字然後用詞向量的方式表徵詞的語義資訊,即透過Embedding 把原先詞所在空間對映到一個新的空間中去,使得語義上相似的單詞在該空間內距離相近。

以傳統神經網路為基礎的神經機率語言模型,缺點主要是計算量太大,集中體現在:隱層和輸出層之間的矩陣運算和輸出層上的Softmax歸一化運算上。

因此Word2Vec演算法梳理就是針對這兩點來最佳化神經機率語言模型的。Word2Vec演算法梳理中兩個重要的模型是 CBOW 模型和 Skip-gram 模型。對於這兩個模型,Word2Vec演算法梳理給出了兩套框架,分別是基於Hierarchichal Softmax  Negative Sampling 來設計的,本文梳理的是第一種型別。

2.CBOW模型

2.1  基於Hierarchichal Softmax模型的網路結構

CBOW模型的全稱是  Continous bag-of-words,它包括三層結構分別是:輸入層、投影層和輸出層。

1.輸入層:包含 Context(w) 中 2c 個詞的詞向量  

Word2Vec演算法梳理其中 Word2Vec演算法梳理 ,表示詞向量的長度。 

2.投影層:將輸入層的 2c 個向量做求和累加處理,即   Word2Vec演算法梳理

Word2Vec演算法梳理


3.輸出層:輸出層對應一顆 Word2Vec演算法梳理樹,它是以語料中出現過的詞當葉子節點,以各詞在語料庫中出現的次數當權值構造而成。在這顆 Word2Vec演算法梳理 樹中,葉子結點共N(=|D|)  個分別對應詞典 D 中的詞,非葉結點 N-1 個(上圖中黃色的結點)。


2.2  梯度的計算


為了後續方便描述問題,首先對Word2Vec演算法梳理模型中用到的符號做一個統一的說明:


  • Word2Vec演算法梳理:從根節點到出發到達Word2Vec演算法梳理對應葉子結點的路徑;

  • Word2Vec演算法梳理:從根節點到出發到達Word2Vec演算法梳理對應葉子結點的路徑;

  •  Word2Vec演算法梳理:路徑Word2Vec演算法梳理中的Word2Vec演算法梳理個結點,其中Word2Vec演算法梳理表示根結點,Word2Vec演算法梳理表示詞Word2Vec演算法梳理對應的結點;

  • Word2Vec演算法梳理,其中 Word2Vec演算法梳理:詞Word2Vec演算法梳理對應的Word2Vec演算法梳理編碼,它由 Word2Vec演算法梳理位編碼構成,Word2Vec演算法梳理表示路徑Word2Vec演算法梳理中第Word2Vec演算法梳理個結點對應的編碼(根結點不對應編碼);

  • Word2Vec演算法梳理,其中Word2Vec演算法梳理:路徑Word2Vec演算法梳理中非葉子結點對應的向量,Word2Vec演算法梳理表示路徑Word2Vec演算法梳理中第Word2Vec演算法梳理個非葉子結點對應的向量。

所以Word2Vec演算法梳理的思想,即對於詞典Word2Vec演算法梳理 中的任意詞 , 樹中必然存在唯一一條從根結點到詞Word2Vec演算法梳理對應葉子結點的路徑Word2Vec演算法梳理。路徑Word2Vec演算法梳理上存在Word2Vec演算法梳理個分支,將每個分支看作一次二分類,那麼每一次分類就對應一個機率,最後將這些機率連乘得到 Word2Vec演算法梳理。  

Word2Vec演算法梳理


其中 Word2Vec演算法梳理,透過對數極大似然化處理可得Word2Vec演算法梳理模型的目標函式為:  

Word2Vec演算法梳理


Word2Vec演算法梳理極大化化目標函式使用的演算法是是隨機梯度上升法,首先考慮Word2Vec演算法梳理關於Word2Vec演算法梳理的梯度計算:  

       Word2Vec演算法梳理


於是,Word2Vec演算法梳理的更新公式為:Word2Vec演算法梳理然後再考慮Word2Vec演算法梳理關於Word2Vec演算法梳理的梯度計算:  


Word2Vec演算法梳理如果觀察到Word2Vec演算法梳理Word2Vec演算法梳理Word2Vec演算法梳理具有對稱性,那麼計算相應梯度會更方便。由於Word2Vec演算法梳理表示的是Word2Vec演算法梳理中所有詞向量的疊加,那麼如何根據Word2Vec演算法梳理來更新每一個分量Word2Vec演算法梳理呢? 中的做法非常的樸素,直接取 Word2Vec演算法梳理


2.3 CBOW模型更新相關引數虛擬碼

Word2Vec演算法梳理


3.Skip-gram模型

3.1 基於Hierarchichal Softmax模型的網路結構

Word2Vec演算法梳理模型一樣,Word2Vec演算法梳理模型的網路結構也包括三層結構分別是輸入層、投影層和輸出層:


  1. 輸入層:只含有當前樣本的中心詞Word2Vec演算法梳理的詞向量Word2Vec演算法梳理  。

  2. 投影層:該層為恆等投影,其實這層可有可無,在這裡只是為了方便和Word2Vec演算法梳理模型的網路結構做對比:

Word2Vec演算法梳理



3.輸出層:Word2Vec演算法梳理模型一樣,輸出層也是一顆Word2Vec演算法梳理樹。


3.2  梯度的計算

對於Word2Vec演算法梳理模型已知的是當前詞Word2Vec演算法梳理 ,需要對其上下文 Word2Vec演算法梳理中的詞進行預測,所以關鍵是條件機率函式Word2Vec演算法梳理的構造,Word2Vec演算法梳理模型中將其定義為: Word2Vec演算法梳理


上式中的Word2Vec演算法梳理可以類比上節介紹的Word2Vec演算法梳理的思想,因此可得:  Word2Vec演算法梳理

透過對數極大似然化處理可得Word2Vec演算法梳理模型的目標函式為:Word2Vec演算法梳理

首先考慮 Word2Vec演算法梳理關於 Word2Vec演算法梳理的梯度計算:  Word2Vec演算法梳理於是, Word2Vec演算法梳理的更新公式為:

Word2Vec演算法梳理


然後再考慮Word2Vec演算法梳理對關於 Word2Vec演算法梳理 的梯度計算(亦可根據對稱性直接得出):  
   Word2Vec演算法梳理

於是,Word2Vec演算法梳理 的更新公式為: Word2Vec演算法梳理

3.3 skip-gram模型更新相關引數虛擬碼

Word2Vec演算法梳理


4. 總結 

Word2Vec的基本功能就是把自然語言中的每一個詞,表示成一個統一意義統一維度的詞向量,因為只有把自然語言轉化為向量的形式,才能在此之上構建相關的演算法,至於向量中的每個維度具體是什麼含義,無人知曉,也無需知曉,有道是,玄之又玄,眾妙之門矣!

如果你覺得有幫助的話,歡迎點個贊,比心❤️!

相關文章