日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

word2vec原理_深入理解Word2Vec底层原理

發布時間:2024/9/27 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 word2vec原理_深入理解Word2Vec底层原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要三個部分:

(1)DNN如何計算字詞的語義特征表示

(2)word2vec如何計算字詞的語義特征表示

(3)霍夫曼對于word2vec的意義


詞嵌入,就是將文本的單詞嵌入數學空間中。

不同于one_hot這種暴力映射,無法衡量字詞的語義空間距離。Word2vec采用的是低緯稠密矩陣去表征字詞的語義關系。

但是如何才能得到每個字/詞的低維稠密矩陣呢?

在談Word2vec的做法之前,先談談用一般的DNN模型如何得到。

一、DNN如何計算字詞的語義特征表示

以上圖為例,要得到learning的詞向量,我們通過滑窗,得到learning前4個單詞和后4個單詞,并將其轉換為one_hot編碼作為輸入,通過隱藏層輸出層,最后softmax預測learning的詞向量,預測的值與實際的learning的one_hot編碼進行誤差計算,從而得到優化函數,通過梯度下降,從而得到隱藏層的權重系數矩陣。

而要求的正是隱藏層的權重系數矩陣,權重系數正是文本中各個詞的詞向量。

二、word2vec用于計算字詞的語義特征表示

相比于DNN的做法,word2vec有很大的不同,甚至可以說面目全非。以CBOW模型為例。

首先,DNN有輸入層(輸入為one_hot編碼)、隱藏層(參數正是要求得的詞向量)、輸出層(sotfmax)。

1) 輸入層,word2vec采用累加求和取平均的方式,而輸入也不再是one_hot,而是隨機初始化的。

2c代表當前詞的上下文個數

2) 沒有了隱藏層,取而代之的是投影層,也就是輸入的累加求和的結果。這和DNN就已經有本質上的不同了,我們前面說了隱藏層的參數值正是最后要求得的詞向量,那word2vec如何得到每個字詞的詞向量(或者說語義特征表示)呢?后面在梯度上升的時候會提到,累加求和的Xw會作為變量進行梯度優化,最后去更新每個輸入的隨機初始化的向量(也就是上面公式的Xi),更新到最后的向量就是最終要求得語義特征表示。

3) word2vec為了解決輸出層高維的softmax概率分布(從隱藏層到輸出的softmax層的計算量很大,因為要計算所有詞的softmax概率,再去找概率最大的值),采用了最優二叉樹——霍夫曼樹。

下面詳細介紹霍夫曼樹是如何在word2vec中發揮作用的。

三、 霍夫曼對于word2vec的意義

本節參考:

深入學習二叉樹(三) 霍夫曼樹?www.jianshu.comword2vec原理(二) 基于Hierarchical Softmax的模型?www.cnblogs.com

A,B,C,D為葉子節點,每個葉子節點均有權重,而霍夫曼樹則是每次合并兩個權重最小的節點,最終到達根節點。

而在word2vec中,為了避免要計算所有詞的softmax概率,word2vec采樣了霍夫曼樹來代替從隱藏層到輸出softmax層的映射。

正如上文所述,霍夫曼樹之于word2vec最大的意義是降低softmax計算量,如何實現這一目的的呢?

Word2vec中的霍夫曼樹葉子節點為詞匯表中的詞,權重為該詞的詞頻,這樣離根節點最近的就是詞頻最大的節點,而詞頻越大,softmax的概率最大的機率也就越大,也就是神經網絡輸出層softmax后概率最大的就越可能是詞頻最大的詞,這樣路徑也就越短,計算量就越小(因為詞頻越大,越靠近根節點,路徑自然就越短,連乘的次數就越少,計算量自然就越小),這是一種貪心策略。

簡單來說,我們希望找到輸入概率最大的輸出,而現在隱藏層到輸出層已經被構建成一棵霍夫曼二叉樹,那么詞頻越高的詞越有可能是這個輸入的輸出,計算量相比于詞頻低的詞更小。

通過標注數據相當于我們已經知道葉子節點是哪個,在輸入與輸出都已知的情況下,我們只需要讓這條路徑發生的可能性最大就行了。

那么應該如何去度量某條路徑發生的概率呢?

在word2vec中,要到達某個葉子節點到底是沿著左叉樹還是右叉樹是通過simoid函數來確定,并且約定左子樹編碼為1(負類-),右子樹編碼為0(正類+),同時約定左子樹的權重不小于右子樹的權重。

其中Xw是當前內部節點的詞向量,而θ則是我們需要從訓練樣本求出的邏輯回歸的模型參數。而負類的概率P(?)=1?P(+)。

那么上圖W2的輸出概率為:

到這里應該就很簡單了,概率最大下的參數估計,用最大似然估計計算就好了。

更為一般化的公式:

接下來,就可以通過梯度上升法來更新我們的θ和Xw,從而更新Xi,得到最終的每個字詞的詞向量表示。

總結

以上是生活随笔為你收集整理的word2vec原理_深入理解Word2Vec底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。