全局向量表示法 是什麼?
GloVe:全局向量表示法 的完整解釋
透過全局詞共現統計學習詞向量,將詞對共現頻次分解為兩個向量的內積。
GloVe(Global Vectors for Word Representation)是詞向量發展史上具有重要理論意義的方法,它橋接了矩陣分解方法和神經網路方法的鴻溝。
核心思想與原理
GloVe 的中心假設是:詞向量應該捕捉詞共現的全局統計規律。具體來說,給定一個語料庫,我們可以統計任意兩個詞共同出現在某個上下文窗口中的次數,形成共現矩陣 X,其中 X_ij 代表詞 i 和詞 j 共現的頻次。
GloVe 的目標是學習兩組詞向量 W(目標詞向量)和 C(上下文詞向量),使得 w_i^T c_j(兩個向量的內積)盡量接近共現頻次 X_ij 的某個函數(通常是對數)。優化目標函數為:
J = Σ_i Σ_j f(X_ij) (w_i^T c_j + b_i + b_j - log(X_ij))^2
其中 f(X_ij) 是一個權重函數,用來平衡高頻詞和低頻詞的貢獻。這個設計巧妙地解決了一個實務問題:常用詞的共現頻次非常高,容易主導學習過程;GloVe 透過權重函數,給予高頻共現適度權重(不是完全相等的 1),低頻共現較高的權重,從而達到「民主化」的統計學習。
與 Word2Vec 的理論關聯
看似不同的 Word2Vec 和 GloVe 實際上有深層的理論聯繫。Yoav Goldberg 和其他研究者後來證明,Word2Vec 的 Skip-gram 方法(帶負採樣)隱含地分解了一個修正後的詞共現矩陣。換句話說,Word2Vec 也在優化共現統計,只是方式更隱晦。GloVe 的優勢在於它顯式地構建並優化全局統計目標,使學習過程更透明、更有原則性。
GloVe 的實作特點
共現矩陣的構建:遍歷語料,對每個詞對 (i, j) 在上下文窗口(通常左右各 5–10 詞)內的共現次數計數。構建矩陣可能非常大(詞表大小 × 詞表大小),對大規模語料需要優化儲存。
權重函數 f(x) 的設計:最常用的權重函數是分段函數:
- 當 X_ij ≤ x_max(如 100)時,f(X_ij) = (X_ij / x_max)^α(如 α = 0.75)
- 當 X_ij > x_max 時,f(X_ij) = 1 這樣設計使高頻共現的權重上限為 1,低頻共現的權重呈漸進增長,起到平衡作用。
向量初始化與學習率:GloVe 對初始化和超參數調整較為敏感,通常需要謹慎調整學習率、迭代次數、向量維度等。
GloVe vs. Word2Vec 的實證對比
在詞向量的質量評估上(如詞類比任務 RareWord、SemEval 等基準),GloVe 通常略勝 Word2Vec Skip-gram,特別在低頻詞和語義類比任務上表現更穩定。然而,差異通常在 1–3% 之間,並非決定性優勢。在實務應用中,兩者性能往往相近,選擇哪個更多取決於可用的預訓練向量和計算資源。
應用場景與預訓練向量
Stanford 團隊發布的 GloVe 預訓練向量(在維基百科、Common Crawl 等語料上訓練)是公開可用的高質量資源。常見的維度包括 50、100、200、300 維。這些預訓練向量適合用於文本分類、相似度計算、以及初始化深度學習模型的嵌入層。
與現代深度學習的聯繫
ELMo(2018)、BERT(2018)等基於 Transformer 的模型出現後,語境化詞向量(contextual embeddings)逐漸主導 NLP 領域,靜態詞向量(包括 GloVe)的應用場景縮小。然而,GloVe 的核心思想(利用全局統計信息捕捉語義)仍在現代模型中以不同形式延續。例如,許多大型語言模型在預訓練時隱含或顯式地利用詞共現統計來引導學習。
優點與局限
優點:有清晰的理論基礎(全局統計目標),相比 Word2Vec 更有原則性;在詞類比和語義任務上表現穩定;預訓練向量易於獲得和應用。
局限:無法捕捉多義詞(同一詞在不同上下文的不同含義);對共現矩陣大小和稀疏性較敏感;相比現代大型語言模型,性能差距逐年擴大。