word2Vec之Hierarchical Softmax理解
阿新 • • 發佈:2019-01-01
Hierarchical Softmax理解
word2vec是2013年google提出的一個獲取詞向量的演算法包,其中Hierarchical Softmax模型是推導的一個重要步驟,所以本文對其進行梳理,也加深自己的理解。
1、Skip-Gram模型
1.1 Skip-Gram網路結構
word2vec中有兩個較為重要的網路模型:CBOW,Skip-Gram。其建模方式又有:Negative Sampling(負取樣)、Hierarchical Softmax。在這裡我們選擇Skip-Gram模型,講解Hierarchical Softmax。
skip-gram 網路示意圖
從圖中可以看出skip-gram中共包含三部分:輸入層、隱藏層、輸出層。
輸入層:只含當前樣本中心詞的詞向量,
隱藏層:其實在Skip-Gram中這個層是多餘的,用公式表達為
輸出層:和CBOW類似,輸出層也是一顆haffman樹,如果計算梯度的時候需要做Hierarchical Softmax。
1.2 梯度下降
Hierarchical Softmax是word2vec中用到的一項關鍵技術,在計算之前,根據需要首先得定義一些符號:
1、表示從根節點到詞語節點路徑
2、表示途經節點個數
3、,其中表示根節點,表示詞語所對應的節點。
4、,代表詞語所對應的編碼。其中代表節點所對應的編碼(根節點不對應任何編碼)。由於是二叉樹,所以的取值範圍為0和1。
5、表示路徑中非葉子節點所對應的詞向量。表示葉子節點節點所對應的詞向量,即是詞語所對應的詞向量。
有了這些標記後,藉助網上的一個經典例子講解Hierarchical Softmax。
上圖中詞語,節點號:38,23,9,4,3構成了, 的值為5,分別對應路徑中非葉子節點的詞向量。表示根節點的詞向量。