做自然語言處理的時候很多時候會用的word embedding,訓練詞向量的方法主要有兩條路:
glove模型就是將這兩中特徵合併到一起的,即使用了語料庫的全域性統計特徵,也使用了區域性的上下文特徵。為了做到這一點glove模型引入了co-occurrence probabilities matrix。
共現矩陣
由以上概念引入共現概率矩陣,以下為例:
該矩陣第乙個元素為ice出現時solid出現的概率,以此類推。
通過共現概率矩陣我們可以得到關於ration的以下規律,
因此我們可以從ratio中得到word之間的相關性,而glove模型就是利用了這個ratio值。
glove模型的目標就是獲取每乙個word的向量表示,不妨假設現在已經得到了word
假設這個未知函式是
右側的是通過統計求得的;
左側的是我們模型要求的量;
同時函式
是未知的。
如果能夠將函式
的形式確定下來,就可以通過優化來求解詞向量了。很直覺的想法就是使用均方誤差:
但模型中包含3個單詞,這就意味著要在
的複雜度上進行,因此我們希望確定乙個簡單的
的確定過程如下:
其中
中包含了了
,所以公式中沒有顯示地寫明這一項,為了保持對稱性又引入了
權重函式定義如下:
到此,整個模型就介紹完了,glove的優點大致如下:
Glove詞向量資料
很棒的資料 j ijnf xij vi tvj bi b j lo g xi j 2 j sum n f x v i tv j b i b j log x 2 j ijn f x ij vit vj bi bj log xij 2 glove基於詞的共現矩陣x xx來學習詞向量,考慮了全域性統計資訊...
理解GloVe模型
輸入 語料庫 輸出 詞向量 方法概述 首先基於語料庫構建詞的共現矩陣,然後基於共現矩陣和glove模型學習詞向量。x,其元素為xi,jxi,j。x i,jxi,j 的意義為 在整個語料庫中,單詞i i和單詞j j共同出現在乙個視窗中的次數。舉個栗子 設有語料庫 中心詞視窗內容0i i love yo...
GloVe使用心得
這裡主要介紹一下在ubuntu環境下的使用方法。然後,將需要處理的文字資料拷貝到該目錄下 方便後續處理 將名字改為corpus.txt 可以不改,但是改了之後便於後續的操作 接著,在終端中依次執行vocab count cooccur shuffle和glove 執行方法是輸入 加相應檔名 建議先輸...