word2vec Parameter Learning Explained筆記

目錄

1.CBOW模型
2.Skip Gram模型
3.Hierarchical softmax
4.Negative Sampling
前言,下面公式多次用到的求導法則:
sigmoid函數的導數具有以下形式:
在這裏插入圖片描述

1.CBOW模型

首先從輸入輸出都是一個詞的模型講起。

在這裏插入圖片描述
模型中詞典大小爲V,隱藏層規模爲N,連接層爲全連接,輸入層爲one-hot編碼方式。對於一個特定詞,詞向量爲x={x1,x2,…,xv},則模型輸入爲x,權重矩陣爲W。隱藏層的求解公式如下所示:
在這裏插入圖片描述
因爲x中只有一位爲1,其它爲都爲0,所以h向量其實就是input->hidden權重矩陣WW的某一行結合輸入單詞ωI的向量拷貝,即如下所示:
在這裏插入圖片描述
隱藏層到輸出層的權重記爲W’,vwj爲w’的一行,uj爲標量,可用來對輸出的每一個值打分,分高的對應預測的可能性更高。
在這裏插入圖片描述
對於輸入詞i,輸出詞爲j的概率爲:
在這裏插入圖片描述
在這裏插入圖片描述

更新權重

跟新權重用到神經網絡的反向傳播算法。
首先模型的目標函數爲:
在這裏插入圖片描述
公式最後一行表示,給預測爲J打的分減去預測爲除去J的分。其中在這裏插入圖片描述

對目標函數基於權重求導,此求導是輸出層和隱藏層中間進行。
在這裏插入圖片描述
在這裏插入圖片描述
更新公式爲
在這裏插入圖片描述
用相似方法在隱藏層和輸入層更新權重
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
具體推導過程可參考博客:https://blog.csdn.net/lanyu_01/article/details/80097350

輸入爲某個詞的多個上下文信息詞,預測這個詞

在這裏插入圖片描述
首先將上下文單詞向量做累加求和並取平均值作爲輸入。隱藏層h爲:
在這裏插入圖片描述
c爲上下文詞數量
損失函數爲:
在這裏插入圖片描述
同理,我們可以求出更新公式:
在這裏插入圖片描述
在這裏插入圖片描述

Skip-gram模型

輸入爲某個詞,輸出爲預測這個詞的上下文信息
在這裏插入圖片描述
對於隱藏層的輸出爲h,與之前求單個詞的輸入過程一樣,如下所示:
在這裏插入圖片描述
在輸出層,與CBOW模型的輸出爲單個多項式分佈不同的是,SG模型在輸出層輸出了C個多項式分佈。每個輸出都使用相同的hidden->output矩陣計算
在這裏插入圖片描述
更新公式類似。

Hierarchical softmax(分層 softmax)

Hierarchical softmax 是一種有效的計算 softmax 的方式。該模型使用一棵二叉樹來表示詞彙表中的所有單詞。所有的VV個單詞都在二叉樹的葉節點上。非葉子節點一共有V−1V−1個。對於每個葉子節點,從根節點root到該葉子節點只有一條路徑;這條路徑用來評估用該葉子節點代表該葉子節點上單詞的概率值。
在這裏插入圖片描述
其中白色的樹節點代表的是詞彙表中的單詞,灰色節點爲內部節點。圖中高亮顯示的是一條從根節點到ω2的路徑。該條路徑的長度爲L(ω2)=4。n(ω,j)表示從根節點到單詞ω的路徑上的第j個節點。
rarchical softmax模型中,所有的詞彙單詞沒有輸出向量表示形式。不同的是,二叉樹的每一個內部節點都有一個輸出向量v′n(ω,j)。因此一個單詞作爲輸出單詞的概率計算公式定義如下:
在這裏插入圖片描述
其中,ch(n)爲節點nn的左孩子節點;v′n(ω,j)是內部節點n(ω,j)的向量表示(輸出向量);h是隱藏層的輸出值;[[x]]是一種特殊的函數,如果x等於true,[[x]]等於1,否則,等於0。[[x]]表示的是,如果在從根節點到單詞W的路徑上,第j個節點的下一個節點是其左孩子節點,[[x]]就等於1,否則爲0。
誤差函數爲:
在這裏插入圖片描述
其中:
在這裏插入圖片描述 在這裏插入圖片描述
對E關於v’jTh求導,可得:
在這裏插入圖片描述
其中[[.]]=1時,tj=-1,否則tj=0
接着求出
在這裏插入圖片描述
可得更新權重爲:
在這裏插入圖片描述
接下來更新輸入到隱層的權重:
在這裏插入圖片描述
根據其使用的是CBOW還是SG模型選擇接下來的EH值。

小結

採用Hierarchical softmax的好處是降低了時間複雜度,從O(V)時間降到O(log(V))。

Negative Sampling(負採樣)

主要思想是每一輪的迭代更新,只更新其中一部分輸出向量。這裏涉及了正樣本和負樣本,正樣本是指最終要輸出的上下文單詞,在採樣的過程中需要保存下來,負樣本指的是採樣過程中涉及的非最終輸出的單詞。採樣過程中需要選擇一種概率分佈,用Pn(w)表示。
模型誤差函數爲:
在這裏插入圖片描述
其中ωO是輸出單詞(正樣本),v′ωO是輸出向量;h是隱藏層的輸出值Wneg={ωj|j=1,…,K}}是基於分佈Pn(ω)採樣的一系列單詞。
求偏導:
在這裏插入圖片描述
類似上述所提步驟,最終得到的更新公式爲:
在這裏插入圖片描述
輸入到隱藏層的更新公式,類似,在此省略。

小結:

爲了解決有太多的輸出向量問題,負採樣採用更直接的方式,每次只更新一部分採樣的向量。

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