NLP word2vec原理筆記

2021-09-22 05:21:26 字數 2876 閱讀 8547

原文1:word2vec 中的數學原理詳解

原文2:運用tensorflow處理簡單的nlp問題

原文3:[nlp] 秒懂詞向量word2vec的本質

原文4:word2vec原理(一) cbow與skip-gram模型基礎

原文5:深入理解語言模型 language model

本質而言,word2vec 就是將人類符號化的語言,轉換為向量來表示。

word2vec 是從語言模型的副產物取得的,因此我們從對語言模型的了解入手。

1. 語言模型

對於語言序列 w1,

w2..

.wnw_1,w_2...w_n

w1​,w2

​...

wn​,語言模型(language model)就是計算該序列成立的概率 p(w

)=p(

w1,w

2,..

.wn)

p(w) = p(w_1,w_2,...w_n)

p(w)=p

(w1​

,w2​

,...

wn​)

。從機器學習的角度看,語言模型就是對語句的概率分布的建模。

也就是判斷給定的一句話是不是正常人說出來的,模型得到的概率大則這句話更可能是正確的、通順的。

2. n-gram 語言模型

根據條件概率公式展開得:

p (w

)=p(

w1)p

(w2∣

w1)p

(w3∣

w1w2

)...

p(wn

∣w1n

−1)p(w) = p(w_1)p(w_2|w_1)p(w_3|w_1w_2)...p(w_n|w_1^)

p(w)=p

(w1​

)p(w

2​∣w

1​)p

(w3​

∣w1​

w2​)

...p

(wn​

∣w1n

−1​)

上式裡面的每一項就是語言模型的引數,都可以展開(第乙個等號近似計算了,第二個是大數定律):

p (w

k∣w1

k−1)

=p(w

1k)p

(w1k

−1)=

coun

t(w1

k)co

unt(

w1k−

1)p(w_k|w_^) = \frac)} = \frac^k)}^)}

p(wk​∣

w1k−

1​)=

p(w1

k−1​

)p(w

1k​)

​=co

unt(

w1k−

1​)c

ount

(w1k

​)​

n-gram模型的特點:

假設乙個詞出現的頻率只與它前面n−1

n-1n−

1個詞有關,也是就上式中count的部分不需要從1開始,從 k-n+1開始即可。

這樣我們通過計算詞串們出現的次數,可以得到詞在前面所有都出現的前提下,它出現的概率,也就是得到了句子成立的概率。

3. skip-gram 與 cbow 用於神經網路語言模型

在上面的 n-gram 模型中,將概率 p

pp 表示為 cou

ntcount

coun

t 的比值。而本質來講,p

pp 就是關於 w,c

onte

xt(w

)w, context(w)

w,cont

ext(

w)的乙個函式。我們可以通過神經網路訓練得到這個函式,而這個神經網路的權重就是我們要的 word2vec 向量。

神經網路的輸入應當是乙個向量,而 word2vec 是這個神經網路的副、產物,因此輸入必然不能是它。一般可以用 one-hot 獨熱編碼 —— 得到乙個 v 維向量(v 是語料字典的大小),或者隨機地為每個詞賦予乙個 n 維向量 —— n 就是模型隱層輸出的向量維數。 n

<

vn < v

n<

v,因此我們可以把 word2vec 看作是詞對應向量從 one-hot 編碼降維的過程。

回過頭來看,word2vec 所作的工作其實就是將詞對映到乙個 n 維空間中,我們稱為詞嵌入(word embedding),word2vec 是詞嵌入的的一種。

優點:1. 降低向量維度;2. 可以將有關聯的詞對映為空間中相鄰的點,詞與詞之間的關聯性通過空間距離來刻畫

根據**方向不同,可以分為兩種:skip-gram 模型 & cbow 模型

(1) cbow 模型

訓練輸入是某乙個特徵詞的上下文相關的詞對應的詞向量,而輸出就是這特定的乙個詞的詞向量。

(2) skip-gram 模型

輸入是特定的乙個詞的詞向量,而輸出是特定詞對應的上下文詞向量。

以上是神經網路語言模型中如何用 cbow 與 skip-gram 來訓練模型與得到詞向量的大概過程。但是這和 word2vec 中用 cbow 與 skip-gram 來訓練模型與得到詞向量的過程有很多的不同。

4. word2vec

—————————— 吃飯去了,hierarchical softmax 回來再寫 ———————————

———————————— n-gram 和 dnn 的細節有時間再補上 ———————————

word2vec的原理(一)

最近上了公司的新員工基礎培訓課,又對nlp重新產生的興趣。nlp的第一步大家知道的就是不停的寫正則,那個以前學的還可以就不看了。接著就是我們在把nlp的詞料在傳入神經網路之前的乙個預處理,最經典的就是2013年google提出的那個word2vec演算法,所以最近想再把這個演算法給好好學習一下,然後...

word2vec學習筆記

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

Word2vec 基本原理

詞嵌入演算法 基於神經網路的表示一般稱為詞向量 詞嵌入 word embedding 或分布式表示 distributed representation 其核心是上下文的表示以及上下文與目標詞之間的關係對映,主要通過神經網路對上下文,以及上下文和目標詞之間的關係進行建模。詞向量最常見的方法是用 on...