共現矩陣 是什麼?

Co-occurrence Matrix:共現矩陣 的完整解釋

統計語料中詞對同時出現的頻次形成的矩陣,是許多詞向量和 NLP 方法的基礎。

共現矩陣(Co-occurrence Matrix)是統計語言學與 NLP 領域中最古老、最直接的語義表示方法,儘管在詞向量與神經網路興起後逐漸淡出視線,其核心思想依然是現代 NLP 的基石。

基本定義與構建方式

給定一個語料庫,共現矩陣 X 是一個 |V| × |V| 的矩陣,其中 |V| 為詞表大小。矩陣元素 X_ij 定義為詞 i 和詞 j 在指定上下文窗口內同時出現的次數。

具體構建步驟:

  1. 定義上下文窗口大小(如前後各 5 個詞)。
  2. 遍歷語料中每一句,以當前詞為中心,統計窗口內的所有詞對。
  3. 對每個詞對 (i, j),將 X_ij 遞增 1。

例如,句子「貓咪喜歡吃魚」中,若窗口大小為 2(前後各 2 詞):

  • 當前詞「喜歡」時,上下文是「貓、咪、吃、魚」,形成 16 個詞對(4 × 4)。
  • 「貓」與「咪」、「貓」與「吃」等共現計數加 1。

矩陣的性質

共現矩陣通常是對稱的(如果定義窗口時不區分方向)。它是稀疏的:大多數詞對共現頻次為 0,只有少數詞對(通常高頻詞)有較大的共現計數。矩陣大小隨詞表增長迅速(|V| × |V|),對 100 萬詞表需要 1 兆個元素,儲存負擔沉重。

共現矩陣的三種主要應用

一、潛在語義分析(LSA, Latent Semantic Analysis)

LSA 是 1990 年代開發的經典方法,直接對共現矩陣進行奇異值分解(SVD)。假設詞-詞共現矩陣可以分解為 X ≈ U Σ V^T,其中 U 和 V 是正交矩陣,Σ 是奇異值矩陣。取前 k 個最大奇異值及其對應向量,將詞投影到 k 維的「潛在語義空間」。

LSA 的直覺是:詞的語義由其整體的共現統計決定。若兩個詞與相同的詞集合共現,它們在語義上相似。LSA 同時適用於詞層級和文件層級(文件與詞的共現)的表示。在搜尋與推薦系統中曾廣泛應用,後被詞向量與神經方法逐漸取代。

二、GloVe(Global Vectors)

GloVe 不直接使用共現矩陣,而是優化一個目標函數使詞向量的內積接近共現頻次的對數。這可視為對共現矩陣的「加權矩陣分解」:相比 LSA 的線性分解,GloVe 通過非線性優化更靈活地學習表示。GloVe 顯式利用全局共現統計,使學習過程更有原則性。

三、上下文向量表示

共現矩陣的行向量或列向量可直接作為詞的表示。例如,詞「狗」的共現向量是它與所有詞的共現頻次向量(1000 維 = 詞表大小)。這種表示蘊含語義相似性:若「狗」和「貓」與相同的詞(如「寵物」、「動物」)共現頻繁,它們的向量會相近。這是老派但有效的做法,在某些統計 NLP 應用(如情感分析的特徵工程)中仍有使用。

與詞向量方法的理論聯繫

Word2Vec(Skip-gram 帶負採樣)與 GloVe 的關係深於表面。Goldberg 等人的理論分析表明,Word2Vec Skip-gram 隱含地分解了一個修正版本的共現矩陣。具體來說,Skip-gram 最大化 P(context | target),其負採樣目標等價於分解 log(X_ij) - log(k)(k 為負採樣數)。這說明 Word2Vec 和 GloVe 雖然算法表面不同,卻在數學本質上都是在學習共現統計。GloVe 的創新在於顯式、直接地優化共現目標,而 Word2Vec 是隱含優化。

高階共現矩陣變體

詞-文件矩陣(Document-Term Matrix)

記錄每個詞在每份文件中的出現次數。用於文本分類、主題建模等。常見的變換包括:

  • TF-IDF 加權:降低常見詞(如「的」)的權重,突出稀有且具辨識力的詞。
  • 二元化:只記錄詞是否出現,不統計頻次。

詞-詞-文件三階張量(Tensor)

進階的共現表示,同時記錄詞對、詞與文件的關係。用於主題建模、多視圖學習等。

現代 NLP 中的淡出與延續

深度學習興起後,詞向量(尤其是神經網路訓練的向量)逐漸取代了共現矩陣作為主流表示方法。原因包括:

  • 神經網路能自動學習非線性的語義轉換,比線性矩陣分解更靈活。
  • 詞向量通常維度遠低於詞表大小,計算高效。
  • 端到端的神經模型(LSTM、Transformer)能直接學習面向任務的特徵,無需預先構建共現矩陣。

然而,共現矩陣的核心理念(相似的上下文蘊含相似的語義)依然是現代模型的基礎假設。BERT、GPT 等語言模型的預訓練(遮罩或自回歸)本質上仍在利用詞的上下文統計,只是透過複雜的神經網路參數化實現。

實務應用

雖然不再主流,共現矩陣在以下場景仍有價值:

  • 小規模 NLP 系統:對計算資源有限的應用,共現矩陣 + 簡單特徵工程可快速上線。
  • 探索性分析:可視化詞的共現關係,理解語料的語言特徵。
  • 理論研究:驗證新的 NLP 假設時,共現矩陣是最直接的統計基準。
  • 某些底層任務:如詞義消歧(WSD),共現證據仍有幫助。

常見問題