文字挖掘 word2vec 筆記

2021-09-13 11:49:23 字數 1746 閱讀 3440

xin rong 的**:『word2vec parameter learning explained』:

!重點推薦! 理論完備由淺入深非常好懂,且直擊要害,既有 high-level 的 intuition 的解釋,也有細節的推導過程

一定要看這篇*****!一定要看這篇*****!一定要看這篇*****!

如果用one-hot encoder形式表示每乙個單詞。

輸入乙個詞由x1-xv表示,輸出的就是在這v個詞上的輸出概率,我們要用反向傳播演算法訓練這個神經網路。

隱層的啟用函式是線性的相當於沒做任何處理。

當模型訓練完後,我們想要得到的是神經網路的權重。word2vec 的精髓如下:

比如現在輸入乙個 x 的 one-hot encoder:

[1,0,0,…,0],對應v個單詞中的第乙個單詞,則在輸入層到隱含層的權重裡,只有對應 1

這個位置的權重被啟用,這些權重的個數,跟隱含層節點數是一致的,從而這些權重組成乙個向量 vx 來表示x,而因為每個詞語的 one-hot

encoder 裡面 1 的位置是不同的,所以,這個向量 vx 就可以用來唯一表示 x。

此外神經網路中,有輸入層到隱藏層的權重,還有隱藏層到輸出層的權重,可以表示為兩種詞向量,輸入向量和輸出向量。(一般我們用輸入向量。)

**

需要提到一點的是,這個詞向量的維度(與隱含層節點數一致)一般情況下要遠遠小於詞語總數 v 的大小,所以 word2vec本質上是一種降維操作——把詞語從 one-hot encoder 形式的表示降維到 word2vec 形式的表示。

1.2 skip-gram 更一般的清況

上面討論的是最簡單情形,即 y 只有乙個詞,當 y 有多個詞時,網路結構如下:

可以看成是 單個x->單個y 模型的併聯,cost function 是單個 cost function 的累加(取log之後)

2.1 cbow

跟 skip-gram 相似,只不過:skip-gram 是**乙個詞的上下文,而 cbow 是用上下文**這個詞(是乙個相反的過程)

更 skip-gram 的模型併聯不同,這裡是輸入變成了多個單詞,所以要對輸入處理下(一般是求和然後平均),輸出的 cost function 不變。

3. word2vec 的 訓練trick

它的輸出節點數是 v 個,對應了 v 個詞語,本質上是乙個多分類問題,但實際當中,詞語的個數非常非常多,會給計算造成很大困難,所以需要用技巧來加速訓練。

hierarchical softmax -> 本質是把 n 分類問題變成 log(n)次二分

negative sampling -> 本質是**總體類別的乙個子集

與word2vec 原來word2vec那麼簡單

說到word2vec,它可謂非結構化資料裡面的佼佼者,尤其是在推薦和nlp當中,足以體現它的優勢所在,並且多年一直備受工業界喜愛.那麼word2vec到底是怎麼個原理的,發現身邊總是有很多人問,確不能準確的說出為什麼是兩個矩陣,到底是怎麼自動反向傳播的,以及對於softmax之後那麼大的維度資料,是...

word2vec學習筆記

常見面試問題 問題 1,介紹一下 word2vec word2vec 的兩個模型分別是 cbow 和 skip gram,兩個加快訓練的 loss 是 hs hierarchical softmax 和負取樣。假設乙個訓練樣本是又核心詞 w和其上下文 context w 組成,那麼 cbow 就是用...

word2vec學習參考

最近看nlp的東西比較多。就拿現在google 基於神經網路做的 word2vec 作為部落格的開始吧,今後會陸陸續續補充內容。基本是分4塊內容 1.神經網路語言模型 2.語言模型分層優化 3.word2vec 原理 4.google word2vec 看一點寫一點,先扔些參考資料鏈接上去。附上在研...