word2vec深入理解及實踐

2021-10-24 15:26:00 字數 1078 閱讀 9302

以前對於word2vec的理解就是通過訓練能得到詞向量,對應有兩種方法,skip-gram和cbow,兩者差別其實不大,但關於具體的細節也不是很了解,今天來深入理解並記錄一下。

word2vec是一種基於神經網路的語言模型,是google於2023年提出的一種nlp分析工具,是通過建模得到的,而對於語言模型的理解就是,輸入一些文字,通過乙個對映函式,得到乙個輸出文字,這就是語言模型的建立,目標是使得輸入輸出之間關係密切,能被人理解,那就是好的語言模型,比如輸入上下幾個單詞,通過對映函式,得到的中間的詞是合理的,那就是好的語言模型。對應的word2vec有兩種結構,即cbow(連續詞袋模型)和skip-gram(跳字模型),cbow是根據上下文**中間詞,skip-gram是根據中間詞**上下文詞。w兩種結構互為翻轉,將輸入輸出轉變一下就行,其它沒有變化,因此講裡面的一種就行,以cbow為例。

word2vec的最終目標是得到中間訓練的權重,根據這個權重可以對新來的詞彙進行向量化表示,在模型訓練的時候,是為了將模型訓練好,使loss減小,從而將最終的softmax啟用輸出作為word的詞向量表示。cbow模型訓練的基本步驟如下:

1:將詞彙用one-hot進行上下文表徵作為輸入;

2:將輸入權重矩陣乘以上下文權重的one-hot向量表示;

3:將上一步得到的向量求和取平均作為隱藏層向量;

4:將輸出權重矩陣乘以隱藏層向量;

5:將上面得到的向量做softmax啟用處理,就可以作為詞向量來輸出,並且可以取概率最大的索引作為**的目標詞。

計算過程舉例如下:

通俗理解word2vec

參考 假設詞表中共有4萬個詞彙,現在知道第t個詞前面的n 1個詞,預估第t個詞 首先將n 1 依據詞表進行onehot編碼得到n 1個 1 4萬 的稀疏向量 只有乙個位置為1,其餘為0 然後為每乙個詞 隨機初始化乙個 1 k 維的詞向量c,這n 1個詞向量經過拼接 求和等操作得到乙個1 k維的向量,...

與word2vec 原來word2vec那麼簡單

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

Word2vec淺顯的理解

本文主要讓你理解word2vec大概是個什麼事情 沒有具體原理等 先來說一下word2vec的產生,其實也和one hot編碼有關係,大家相信100維的向量最多可以表示多少個詞?one hot說,我能表示100個 但是你如果表示所有的單詞需要多少維啊.one hot就數不過來了,太多了 10的五次方...