搜尋意圖: 如果你在找「全局向量表示法 是什麼」或「全局向量表示法 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 透過全局詞共現統計學習詞向量,將詞對共現頻次分解為兩個向量的內積。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
透過全局詞共現統計學習詞向量,將詞對共現頻次分解為兩個向量的內積。
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 更有原則性;在詞類比和語義任務上表現穩定;預訓練向量易於獲得和應用。
局限:無法捕捉多義詞(同一詞在不同上下文的不同含義);對共現矩陣大小和稀疏性較敏感;相比現代大型語言模型,性能差距逐年擴大。
常見問題
為什麼 GloVe 要使用權重函數 f(x)?不能直接平方誤差嗎?
直接優化 (w_i^T c_j - log(X_ij))^2 會導致一個嚴重問題:常用詞對(如「the」與「a」)的共現頻次極高(可能達數百萬次),會完全主導損失函數,使模型集中力量擬合這些高頻對,而忽視低頻但具有語義信息的詞對。例如,「机器學習」這個詞對共現頻次遠低於「the a」,卻蘊含更多語義資訊。GloVe 的權重函數解決了這個問題:給予高頻共現適度權重(上限 1),給予低頻共現相對較高的權重,使模型對所有共現關係更加「民主化」地對待。這是統計學習中的常見技巧,類似於 NLP 中的詞頻逆文件頻率(TF-IDF)思想。
GloVe 的共現矩陣會不會非常大?怎麼處理?
確實會。若詞表有 100 萬個詞,共現矩陣理論上是 100 萬 × 100 萬 = 1 兆個元素。但實務上大多數詞對共現頻次為零(稀疏矩陣),只需儲存非零元素。GloVe 的實作通常採用「二次採樣」策略:遍歷語料時,以概率 p_ij 採樣詞對 (i, j),跳過共現頻次極低的詞對。此外,只儲存非零元素的稀疏矩陣格式(如 COO 或 CSR)可大幅節省空間。Google 發表的一篇論文指出,對於十億級別詞彙語料,用稀疏矩陣表示共現矩陣通常可行且高效。
是否應該用 GloVe 代替 Word2Vec?
選擇應基於具體需求。若專注於詞類比和語義評估任務,GloVe 通常稍優;若需要快速訓練大規模詞向量,Skip-gram(Word2Vec)的高效性更吸引人。在實務應用中,預訓練的詞向量質量往往比算法選擇更重要:使用高質量的公開 GloVe 或 Word2Vec 向量通常比自己訓練更高效。若預算允許,現代做法是採用 BERT、GPT 等語境化向量,它們在大多數任務上超越兩者。