1. 程式人生 > >簡版Word2vec的理解

簡版Word2vec的理解

一. 預備知識

1.1 哈夫曼樹 (最優二叉樹)

哈夫曼樹 :帶權路徑長度之和(WPL)最小的二叉樹 。
WPL唯一,但哈夫曼樹不唯一,左右子樹可以交換。
這裡寫圖片描述
權值越大的節點離根節點越近。
詞頻越大的詞離根節點越近。
構造過程中,每兩個節點都要進行一次合併。
因此,若葉子節點的個數為n,則構造的哈夫曼樹中新增節點的個數為n-1。

哈夫曼編碼:即滿足字首編碼的條件,又能保證報文編碼總長最短。
字首編碼:要求一個字元的編碼不能是另一個字元編碼的字首。
約定:權值大的節點作為左孩子編碼為1,權值小的節點作為右孩子編碼為0。

1.2 詞向量

兩種表示方式
One hot representation

:詞向量維度大小為整個詞彙表的大小,對於每個具體的詞彙表中的詞,將對應的位置置為1。
Dristributed representation:通過訓練,將每個詞都對映成一個固定長度的短向量。

二. 神經概率語言模型

輸入層:2c個上下文詞向量
投影層: 將2c個詞向量拼接起來
隱藏層:有
輸出層: y 維度為詞彙表長度, 經過softmax 就得到每個單詞的概率
這裡寫圖片描述

待學引數:
詞向量 一般的DNN輸入是已知的但是詞向量作為輸入也需要通過訓練得到
神經網路引數:權值矩陣,閾值向量

三. 基於Hierarchical Softmax的word2vec

3.1 word2vec 模型:

word2vec 有兩個模型
CBOW (Continuous Bag-of-Words)
Skip-gram
模型包括三層:輸入,投影,輸出
前者:已知當前詞wt的上下文wt2,wt1,wt+1,wt+2的前提下預測當前詞wt
後者:相反
這裡寫圖片描述
CBOW 目標函式 對數似然函式最大化

L=wClogp(w|Context(w))
Skip-gram 目標函式
L=wClogp(Context(w)|w)
C
表示語料庫

3.2 基於Hierarchical Softmax的CBOW模型

輸入層: 2c個詞向量
投影層: 將2c個向量求和累加
隱藏層:無
輸出層:一棵哈夫曼樹,以語料庫中出現的詞當葉子節點,以個詞頻當權值構造出來的哈夫曼樹。
這裡寫圖片描述
條件概率就可以通過路徑累乘得到
從根到葉子節點對應著一條路徑這個路徑是唯一的,路徑上的分支(每一個內部節點圖中的黃色節點)就看作一次二分類,每一次分類就產生一個概率(用LR模型)。將概率乘起來就是所需的條件概率。
待求引數:每一內部節點就是一個LR,LR的引數θ

σ(xwTθ)=11+exwTθ
詞向量也是要學的 xw也是引數
似然函式最大化 ,梯度上升 得到更新公式。
Lθ
Lxw

最終的目標是要求詞典中每個詞的詞向量。xw表示:context(w)中各詞詞向量的累加,
利用Lxw來對上下文詞向量更新
CBOW 每次更新2c個詞向量

四. 基於Negative Sampling(負取樣)的word2vec

4.1 CBOW

CBOW中,已知詞w的上下文context(w),需要預測w
因此,對於給定的context(w),詞w就是一個正樣本,其他詞就是負樣本
w的負樣本子集 NEG(w)
目標函式:

g(w)=σ(xwTθw)uNEG(w)[1σ(xwTθu)]
其中σ(xwTθw)表示當上下文為context(w)時,預測中心詞為