不可思議的Word2Vec系列一數學原理

2021-09-23 02:16:11 字數 1997 閱讀 7945

對於了解深度學習、自然語言處理nlp的讀者來說,word2vec可以說是家喻戶曉的工具,儘管不是每乙個人都用到了它,但應該大家都會聽說過它——google出品的高效率的獲取詞向量的工具。

大多數人都是將word2vec作為詞向量的等價名詞,也就是說,純粹作為乙個用來獲取詞向量的工具,關心模型本身的讀者並不多。可能是因為模型過於簡化了,所以大家覺得這樣簡化的模型肯定很不準確,所以沒法用,但它的副產品詞向量的質量反而還不錯。沒錯,如果是作為語言模型來說,word2vec實在是太粗糙了。

說到word2vec的「不可思議」,在word2vec發布之初,可能最讓人驚訝的是它的word analogy特性,即諸如 king-man ≈ queen-woman 的線性特性,而發布者mikolov認為這個特性意味著word2vec所生成的詞向量具有了語義推理能力,而正是因為這個特性,加上google的光環,讓word2vec迅速火了起來。但很遺憾,我們自己去訓練詞向量的時候,其實很難復現這個結果出來,甚至也沒有任何合理的依據表明乙份好的詞向量應該滿足這個word analogy特性。不同的是,這裡筆者介紹的若干個用途,可復現性是非常高的,讀者甚至在小語料中訓練乙個word2vec模型,然後也能取到類似的結果。

另外,本部落格的《詞向量與embedding究竟是怎麼回事?》也有助於我們理解word2vec的原理。

為了方便讀者閱讀,我還收集了兩個對應的pdf檔案:

word2vector中的數學原理詳解.pdf

deep learning 實戰之 word2vec.pdf

[1] tomas mikolov, kai chen, greg corrado, and jeffrey dean. efficient estimation of word representations in vector space. in proceedings of workshop at iclr, 2013.

[2] tomas mikolov, ilya sutskever, kai chen, greg corrado, and jeffrey dean. distributed representations of words and phrases and their compositionality. in proceedings of nips, 2013.

但個人感覺,原始**並沒有中文解釋得清晰。

簡單來說,word2vec就是「兩個訓練方案+兩個提速手段」,所以嚴格來講,它有四個備選的模型。

用通俗的語言來說,就是「周圍詞疊加起來**當前詞」(p(w

t|co

ntex

t)p(wt|context)

)和「當前詞分別來**周圍詞」(p(w

othe

rs|w

t)p(wothers|wt)

),也就是條件概率建模問題了;兩個提速手段,分別是層次softmax和負樣本取樣。層次softmax是對softmax的簡化,直接將**概率的效率從?(|

v|)o(|v|)

降為?(

log2|v

|)o(log2⁡|v|)

,但相對來說,精度會比原生的softmax略差;負樣本取樣則採用了相反的思路,它把原來的輸入和輸出聯合起來當作輸入,然後做乙個二分類來打分,這樣子我們可以看成是聯合概率p(w

t,co

ntex

t)p(wt,context)和p(

woth

ers,

wt)p(wothers,wt)

的建模了,正樣本就用語料出現過的,負樣本就隨機抽若干。更多的內容還是去細看peghoty大神的系列部落格比較好,我也是從中學習word2vec的實現細節的。

最後,要指出的是,本系列所使用的模型是「skip-gram + 層次softmax」的組合,也就是要用到p(w

othe

rs|w

t)p(wothers|wt)

這個模型的本身,而不僅僅是詞向量。所以,要接著看本系列的讀者,需要對skip-gram模型有些了解,並且對層次softmax的構造和實現方式有些印象。

與word2vec 原來word2vec那麼簡單

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

有不可思議的目標 就有不可思議的結果

3月3號 開學 可惜學校的效率不好 要隔上5天才上課 悲劇 最後的半年了 換了新的老師 看上去很有個人魅力 蠻好 尊敬的老師還只有屈指可數的那幾個 失敗。或許是我沒有好好學習,沒有發現 陳昌主 現在的老師絕對算的上乙個,親和力很好,而且很勤奮。寫下這4個月的目標 1 english can read...

不可思議的BUG

莫看江面平如鏡,要看水底萬丈深 記一次由表象引起的不是bug的bug 先上圖 上圖,第一行是實際請求報錯的介面,第二行才是列印出的真正配置的介面位址,由於專案上會根據專案環境,會切換介面位址,方便開發 測試 生產。我的第一反應就是切換位址的邏輯有問題。仔細跟了他寫的 確實在介面請求前,位址是開發位址...