Word2Vector

Word2Vec模型中,主要有Skip-Gram和CBOW兩種模型,從直觀上理解,Skip-Gram是給定input word來預(yù)測上下文。而CBOW是給定上下文,來預(yù)測input word。

Skip-Gram的實現(xiàn)邏輯類似于自編碼器,模型的輸出不是最終結(jié)果,隱層構(gòu)成的向量才是所要的vector。

以句子The quick brown fox jumps over the lazy dog為例,實現(xiàn)過程為

1 選定詞語fox作為input-word

2 定義skip-window作為input-word的上下文范圍,如skip-window=2,fox的上下文為quick,brown, jumps, over,組成的樣本對(fox,quick),(fox,brown), (fox,jumps), (fox,over)。定義窗口中選取的樣本對個數(shù)num-skips,如果num-skips=2,skip-window=2,則從四組樣本中隨機選取兩組作為樣本。

Skip-Gram樣本選取過程

3 對樣本word進(jìn)行編碼,如one-hot編碼。

4 定義網(wǎng)絡(luò)。假設(shè)總詞匯量是5000,則輸入維度設(shè)為5000維,輸出維度同樣是5000維,表示每一個單詞的概率。隱層可以設(shè)置為100(在Python的gensim包中封裝的Word2Vec接口默認(rèn)的詞向量大小為100, window_size為5)。

6 訓(xùn)練得到網(wǎng)絡(luò)參數(shù),把輸出層去掉,隱層作為輸出層,輸入單詞,即可得到對應(yīng)向量。?

直觀上理解,如果兩個不同的單詞有著非常相似的“上下文”(也就是窗口單詞很相似,比如“Kitty climbed the tree”和“Cat climbed the tree”),那么通過我們的模型訓(xùn)練,這兩個單詞的嵌入向量將非常相似。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容