Glove模型
模型目標:進行詞的向量化表示,使得向量之間儘可能的蘊含語義和語法的信息
Glove用詞向量表達共現詞頻的對數
代價函數:
模型推導 (不是很嚴謹)
首先給予一些定義
共現詞頻Xi,j 表示若中心詞爲i,語境詞j出現的次數,通俗一點就是說單詞i和單詞j在給定滑動窗口數時同時出現的次數
Xi表示單詞出現的總次數
表示單詞k出現在單詞i語境中的概率
表示在中心詞爲i時,k出現概率與中心詞爲j時,k出現概率的比值,用來衡量相對性
由於計算比值複雜度比較高(當然是數據量比較大的時候啦),所以想要找到一個F代替,即使得
由於向量空間本質上是線性結構,因此最自然的方法是使用向量差。這樣,我們就可以把注意力限制在那些只依賴於兩個目標詞的差異的函數f上。
上式左邊是向量,而右邊則是標量,會使我們試圖捕捉的線性結構變得模糊,爲了避免這個問題我們對參數取點積得到
通過Pi,k的表達式可轉換得到
取F(x) = exp(x) ,左右兩邊同時取log,可得到
同時我們應該考慮到對稱性(單詞i單詞j出現的次數和單詞j單詞i出現的次數理應是一樣的) ,故將log(xi)表示爲bi,b~k
我們的目標就是二者間最小,考慮到最常用的衡量方式便是均方誤差,同時考慮到出現頻率越高詞權重越大的原則,加上權重項可得代價函數
其中權重函數爲
經過實驗對比,通常取alpha爲0.75,Xmax爲100,此權重公式可以將過,出現頻率過大的權重給拉低,同時使得出現頻率爲0的權重項也爲0,不計入loss function中,f(x)的圖形如下。
其實這個代價函數轉變的形式比較隨意,是根據我們想要的方便的形式轉變的,爲了方便我們訓練,但是無論怎麼變形,我們的最終目的就是訓練得到單詞向量的兩個表達W和W~。
這兩個向量理應相等,但是可能由於初始化的願意使兩個向量間有略微差別,並且有證據表明,對於某些類型的神經網絡,
訓練網絡的多個實例,然後將結果結合起來,有助於減少過擬合和噪音,通常會提高結果,所以我們將兩個向量相加最爲我們最終訓練得到的詞向量
參考論文:GloVe: Global Vectors forWord Representation