cs224n 2019春季學習筆記 01 word2vec

參考資料:https://www.bilibili.com/video/av61620135/?p=2&t=2024

 

word2vec的核心思想在於,定義一個詞的意思,取決於這個詞的鄰居。這是word2vec的核心思想。

基於這個概念,提出兩個模型,其中一個skip模型,其核心思想在於,由中心詞推斷中心詞c附近k個單位詞u_{k}

在給定的所有樣本文本中,文本單詞長度爲T,總文本數爲W。按文本中順序每一個詞逐一將作爲中心詞,進行附近詞的推斷,則進行T詞中心詞推斷。

對每一箇中心詞而言,衡量其與另一個詞作爲鄰居關係的公式爲V_{c}\cdot U_{o}。作爲備選附近詞的U_{o},共有W個,爲了比較備選詞成爲附近的可能性,用softmax公式,來表示最終的每個候選詞成爲V_{c}附近詞的可能性。

對一個備選詞而言的計算公式:P(o\mid c)=\frac{e^{U_{o}\cdot {V_{c}}}}{\sum{e^{U_{w}\cdot {V_{c}}}}}

對一箇中心詞而言,只需要其實際的附近詞計算的P(o\mid c),儘可能大即可。

 

以上爲word2vec核心總結。

 

1,訓練採用mini batch採用32或者64 計算更快,因爲GPU更偏愛整個

2,訓練採用隨機梯度下降 stochastic gradients with word vectors

講完完整的word2vec skip,模型後,需要解決訓練速度問題,故引出下一個概念——負採樣。

目標是中心詞實際附近詞對應的概率越高越好,但在計算P(o\mid c)時,我們計算了所有詞共計W和中心詞的距離。計算量大,爲了減小計算量,加快速度。採用了負採樣的方法,不計算W個詞,而是從非實際腹肌詞中隨機採樣n-k個詞進行計算。將W換爲n

提出的採樣方法,根據頻率去採樣,將頻率去3/4對數,減小高頻詞的採樣,增加低頻詞的採樣。

 

補充對採樣的理解:

 

在python中的實現採樣的代碼爲

 

df.sample(n=None, frac=None, replace=False, weights=None, random_state=None,axis=None)

n:指定抽取的樣本量,(這裏我設定的是小類數據的1.05,即 n = N*(1+0.05))

frac:指定抽取的樣本比例;

replace:是否有放回抽樣,默認無放回。(對於不平衡數據欠抽樣時,將replace=False)

weights:指定樣本抽中的概率,默認等概論抽樣;

random_state:指定抽樣的隨機種子,可以使得每次抽樣的種子一樣,每次抽樣結果一樣

axis:是選擇抽取數據的行還是列。axis=0的時是抽取行,axis=1時是抽取列

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章