原文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...