Word Embeddings/zh

    From Marovi AI
    This page is a translated version of the page Word Embeddings and the translation is 100% complete.
    Other languages:
    Article
    Topic area NLP
    Difficulty Intermediate
    Prerequisites Neural Networks

    詞嵌入(word embeddings)是詞的稠密、低維向量表示,其中語義相似的詞被映射到向量空間中相鄰的點。它們是現代自然語言處理(NLP)的基礎組件,用能夠捕捉含義、類比和句法關係的表示替代了稀疏的 one-hot 編碼。

    分布假說

    詞嵌入建立在分布假說之上,該假說由 J. R. Firth(1957)提出了著名的表述:"你可以通過一個詞的夥伴來認識這個詞。" 其核心思想是,出現在相似上下文中的詞往往具有相似的含義。例如,"狗"和"貓"經常出現在"寵物"、"皮毛"和"獸醫"等詞附近,因此它們應該具有相似的表示。

    利用分布信息的早期方法包括共現矩陣、點互信息(PMI)和潛在語義分析(LSA)。現代的詞嵌入方法直接使用神經網絡學習稠密向量。

    One-hot 與稠密表示

    One-hot 編碼

    在包含 $ V $ 個詞的詞表中,第 $ i $ 個詞的 one-hot 向量是一個 $ V $ 維向量,在位置 $ i $ 處為 1,其他位置為 0。這種表示存在兩個關鍵缺陷:

    • 維度 —— 向量維度極高(通常 $ V > 100{,}000 $)。
    • 無相似性 —— 每對 one-hot 向量都等距:當 $ i \neq j $$ \mathbf{e}_i^\top \mathbf{e}_j = 0 $。"貓"與"狗"的距離與它和"民主"的距離相同。

    稠密嵌入

    詞嵌入將每個詞映射到一個 $ d $ 維的實值向量(通常 $ d = 100 $$ 300 $):

    $ \mathbf{w}_i \in \mathbb{R}^d, \quad d \ll V $

    相似的詞具有較高的餘弦相似度:

    $ \text{sim}(\mathbf{w}_a, \mathbf{w}_b) = \frac{\mathbf{w}_a \cdot \mathbf{w}_b}{\|\mathbf{w}_a\|\;\|\mathbf{w}_b\|} $

    Word2Vec

    Word2Vec(Mikolov 等,2013)引入了兩種高效的架構,用於從大規模語料庫中學習詞嵌入。

    連續詞袋(CBOW)

    CBOW 根據周圍的上下文詞預測目標詞。給定上下文詞窗口 $ \{w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c}\} $,模型最大化:

    $ P(w_t \mid w_{t-c}, \ldots, w_{t+c}) $

    上下文詞向量被取平均後通過 softmax 層。CBOW 訓練速度更快,對高頻詞效果良好。

    Skip-gram

    Skip-gram 反轉了預測方向:給定一個目標詞,預測其周圍的上下文詞。對於每對 $ (w_t, w_{t+j}) $,其中 $ j \in [-c, c] \setminus \{0\} $,模型最大化:

    $ P(w_{t+j} \mid w_t) = \frac{\exp(\mathbf{v}'_{w_{t+j}}{}^\top \mathbf{v}_{w_t})}{\sum_{w=1}^{V}\exp(\mathbf{v}'_w{}^\top \mathbf{v}_{w_t})} $

    其中 $ \mathbf{v}_w $$ \mathbf{v}'_w $ 分別是輸入和輸出嵌入向量。在整個詞表上計算完整的 softmax 代價高昂,因此通常使用兩種近似方法:

    • 負採樣(negative sampling)—— 模型不計算完整的 softmax,而是將真實的上下文詞與 $ k $ 個隨機採樣的"負"詞進行對比。
    • 層次化 softmax(hierarchical softmax)—— 將詞表組織為二叉樹,將 softmax 的代價從 $ O(V) $ 降低到 $ O(\log V) $

    Skip-gram 在罕見詞上表現良好,並能捕捉微妙的關係。著名的類比"king − man + woman ≈ queen"就源於 Skip-gram 嵌入。

    GloVe

    GloVe(全局向量,Pennington 等,2014)結合了全局矩陣分解和局部上下文窗口方法的優點。它從語料庫中構建一個詞共現矩陣 $ X $,其中 $ X_{ij} $ 統計詞 $ j $ 出現在詞 $ i $ 上下文中的頻率,然後優化:

    $ J = \sum_{i,j=1}^{V} f(X_{ij})\bigl(\mathbf{w}_i^\top \tilde{\mathbf{w}}_j + b_i + \tilde{b}_j - \log X_{ij}\bigr)^2 $

    其中 $ f $ 是一個加權函數,用於限制非常高頻共現的影響。GloVe 嵌入的質量通常與 Word2Vec 相當或更高,並且對全局統計的顯式利用可以提升類比任務的性能。

    fastText

    fastText(Bojanowski 等,2017)通過將每個詞表示為字符 n-gram 的集合來擴展 Word2Vec。例如,當 $ n = 3 $ 時,單詞"where"由 n-gram {"<wh", "whe", "her", "ere", "re>"} 加上整個詞"<where>"來表示。一個詞的嵌入是其 n-gram 向量之和。

    這種方法有兩個主要優勢:

    • 處理罕見詞和未登錄詞 —— 即使是訓練詞表中不存在的詞,也可以通過對其字符 n-gram 向量求和來獲得嵌入。
    • 形態感知 —— 共享子串的詞(例如"teach"、"teacher"、"teaching")會自動共享嵌入的組成部分。

    嵌入的評估

    詞嵌入通過以下方式進行評估:

    評估類型 示例 衡量內容
    內在評估:類比 "king : queen :: man : ?" 空間的線性結構
    內在評估:相似度 與人類相似度判斷的相關性(SimLex-999、WS-353) 語義質量
    外在評估:下游任務 命名實體識別、情感分析、句法分析 實際效用

    內在評估速度快,但並不總能預測下游任務的性能。最終,在目標任務上的外在評估是最可靠的衡量標準。

    上下文嵌入

    傳統詞嵌入為每個詞分配一個固定向量,與上下文無關 —— 無論"bank"指的是河岸還是金融機構,它的嵌入都相同。上下文嵌入通過根據周圍文本生成不同的表示來解決這一局限。

    著名的上下文嵌入模型包括:

    • ELMo(Peters 等,2018)—— 使用雙向 LSTM 生成依賴於上下文的詞表示。
    • BERT(Devlin 等,2019)—— 使用通過掩碼語言建模訓練的 Transformer 編碼器。
    • GPT 系列(Radford 等,2018–)—— 使用以自回歸方式訓練的 Transformer 解碼器。

    這些模型在大多數 NLP 任務中已基本取代了靜態嵌入,不過靜態嵌入在效率、可解釋性以及低資源場景下仍然有用。

    參見

    參考文獻

    • Firth, J. R. (1957). "A synopsis of linguistic theory, 1930–1955". 收錄於 Studies in Linguistic Analysis
    • Mikolov, T. et al. (2013). "Efficient Estimation of Word Representations in Vector Space". arXiv:1301.3781
    • Pennington, J., Socher, R. 與 Manning, C. D. (2014). "GloVe: Global Vectors for Word Representation". EMNLP
    • Bojanowski, P. et al. (2017). "Enriching Word Vectors with Subword Information". TACL, 5, 135–146。
    • Peters, M. E. et al. (2018). "Deep contextualized word representations". NAACL
    • Devlin, J. et al. (2019). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". NAACL