小白可以讀懂的word2vec

2021-10-04 09:11:55 字數 2580 閱讀 9172

我對word2vec的理解:使意思相近的詞有距離相近的向量。

為了得到這種詞向量就提出了用這個詞的上下文來解釋它,舉個例子:『愛』和『喜歡』有很大概率出現在相同句子的相同位置,比如說:『我愛你』和『他喜歡你』,『小明愛學習』和『小紅喜歡學習』;那麼這兩個詞通過前面的上下文訓練出來的詞向量距離就是相近的。

skip-gram:通過中心詞來**上下文

cbow:通過上下文來**中心詞

下面用skip-gram來舉例

寫一下公式:

l ik

ehoo

d(θ)

=∏c=

1t∏−

m≤j≤

m,j≠

0pr(

wc+j

∣wc;

θ)likehood(θ) = \prod_^\prod_pr(w_|w_c;θ)

likeho

od(θ

)=c=

1∏t​

−m≤j

≤m,j

​=0

∏​pr

(wc+

j​∣w

c​;θ

)c=1,2,…t c:表示文字中詞每乙個位置 wc:該位置的詞

第乙個∏

\prod

∏指的是算完第乙個中心詞再算下乙個中心詞;第二個∏

\prod

∏指的是中心詞周圍的詞的概率相乘

舉個栗子:

文字:我 每天 吃飯 睡覺 打 豆豆

吃飯為例,c=3,設m=1(m看你心情) :∏−m

≤j≤m

,j≠0

pr(w

c+j∣

wc;θ

)\prod_pr(w_|w_c;θ)

∏−m≤j≤

m,j

​=0​

pr(w

c+j​

∣wc​

;θ) 就變為∏−1

≤j≤1

,j≠0

pr(w

3+j∣

w3;θ

)\prod_pr(w_|w_3;θ)

∏−1≤j≤

1,j

​=0​

pr(w

3+j​

∣w3​

;θ)這裡希望likehood越大越好,loss則是越小越好,所以加了『-』號,為了好計算又加上log,原式變為:

l os

s(θ)

=−1t

log⁡li

keho

od(θ

)=−1

t∑c=

1t∑−

m≤j≤

m,j≠

0log⁡p

r(wc

+j∣w

c;θ)

loss(θ)=-\frac\log=-\frac\sum_^\sum_\log|w_c;θ)}

loss(θ

)=−t

1​loglik

ehoo

d(θ)

=−t1

​c=1

∑t​−

m≤j≤

m,j

​=0∑

​logpr

(wc+

j​∣w

c​;θ

)這裡希望loss越小越好,θ是要訓練的引數。

文字:我 每天 吃飯 睡覺

1,將文字當中的詞變為onehot輸入i我=

[1,0

,0,0

]i_=[1,0,0,0]

i我​=[1

,0,0

,0],i每天

=[0,

1,0,

0],i_=[0,1,0,0],

i每天​=[

0,1,

0,0]

,i_=[0,0,1,0],

,,i_=[0,0,0,1]$

2,設m=1,四個詞都要作為中心詞,這裡以吃飯作為中心詞為例:

『吃飯』作為輸入,在m=1的情況下有『每天』『睡覺』作為輸出,這裡需要兩個需要被訓練的矩陣w4∗

nw_w4∗n​,wn∗

4′w'_wn

∗4′​

(4是因為文字只有4個詞,n是你定義的詞向量的維度,下面設n=3)

這裡需要訓練w和w』,而w的一行就是乙個詞向量

**』每天『就使p每天

p_p每

天​最大;**『睡覺』就使p睡覺

p_p睡

覺​最大;這裡一般使用交叉熵損失

這樣我們就可以得到詞向量模型→w

減小模型訓練量的方法:

1,negative sampling(負取樣):改變n個觀察值的權重,而不是所有

2,hierarchical softmax(霍夫曼樹):高頻詞更容易得到訓練

與word2vec 原來word2vec那麼簡單

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

word2vec的簡單理解 小白初學

在自然語言處理領域中,本文向量化是文字表示的一種重要方式。在當前階段,對文字的大部分研究都是通過詞向量化實現的,但同時也有一部分研究將句子作為文字處理的基本單元,也就是doc2vec和str2vec技術。詞語表示 在傳統意義上,我們習慣使用one hot編碼來給詞語進行編碼,該編碼的優勢在於簡單,容...

word2vec學習參考

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