詞嵌入 是什麼?
Word Embeddings:詞嵌入 的完整解釋
將詞彙映射到連續向量空間的技術,使語義相似的詞在向量空間中距離相近,是自然語言處理的基礎表示學習方法。
詞嵌入(Word Embeddings)是自然語言處理(NLP)領域最重要的基礎技術之一,標誌著 NLP 從稀疏的符號表示(one-hot encoding)向稠密的分散式表示(distributed representation)的重大轉變,並為後來的 BERT、GPT 等大型語言模型奠定了概念基礎。
在詞嵌入出現之前,文本資料通常以詞袋模型(Bag of Words,BoW)或 one-hot 向量表示。One-hot 向量的維度等於詞彙表大小(可能數萬甚至數十萬維),且每個維度只有 0 或 1,所有詞之間的餘弦相似度為 0,完全無法捕捉詞彙間的語義關係(「貓」和「狗」的相似度等同於「貓」和「汽車」,都是 0)。詞袋模型雖然加入了詞頻資訊,但同樣無法表達語義。
詞嵌入的核心思想源自語言學的分佈假說(Distributional Hypothesis):出現在相似上下文中的詞傾向於具有相似的語義。基於此,可以透過分析詞彙的共現統計或預測上下文來學習詞的向量表示。
Word2Vec 是最具代表性的詞嵌入模型,由 Google 的 Tomas Mikolov 等人在 2013 年提出。Word2Vec 有兩種訓練架構:跳字模型(Skip-gram)以中心詞預測周圍上下文詞,適合頻率較低詞的表示;連續詞袋模型(CBOW,Continuous Bag of Words)以上下文詞預測中心詞,訓練速度較快。兩者都是淺層神經網路,輸出的隱層權重矩陣就是詞向量。Word2Vec 最令人驚豔的特性是詞向量的線性代數性質,例如 vector(「王」) - vector(「男」) + vector(「女」) ≈ vector(「王后」),揭示了向量空間中的類比關係。
GloVe(Global Vectors for Word Representation)由斯坦福大學在 2014 年提出,結合了基於共現矩陣的全局統計方法與 Word2Vec 的局部預測方法,在多項基準任務上表現優於純粹的 Word2Vec。FastText 由 Facebook AI 研究院提出,改進在於將詞分解為 n-gram 字元序列,使模型能處理未登錄詞(Out-of-Vocabulary,OOV)並更好地表示形態豐富的語言(如德語、土耳其語,以及中文的部分情況)。
詞嵌入的向量維度通常在 50 到 300 之間,是一個需要根據任務和資料量調整的超參數:維度太小無法捕捉足夠的語義資訊,維度太大則增加計算成本且容易過擬合。訓練詞嵌入通常需要大規模語料,實務上常直接使用在 Google News(Word2Vec)、Common Crawl(GloVe)等大型語料上預訓練的公開向量,再視任務需求做微調(fine-tuning)或凍結使用(frozen embeddings)。
評估詞嵌入品質常用兩類方式:內在評估(Intrinsic Evaluation)測試詞向量在詞語類比(word analogy)和詞語相似性(word similarity)基準任務上的表現;外在評估(Extrinsic Evaluation)則直接將詞嵌入應用到下游任務(如情感分析、命名實體識別)並觀察任務表現的提升。
從詞嵌入到語境化嵌入(Contextualized Embeddings)是 NLP 的重大演進。傳統詞嵌入為每個詞賦予一個固定的向量,無法區分一詞多義(「銀行」在「河岸」和「金融機構」的語義不同)。ELMo(Embeddings from Language Models,2018)首先提出使用雙向 LSTM 語言模型為每個詞生成根據上下文動態變化的向量。隨後 BERT(2018)和 GPT 系列(2018-)以 Transformer 架構大幅提升了語境化表示的品質,成為現代大型語言模型的基礎。
在向量資料庫(Vector Database)與 RAG(Retrieval-Augmented Generation)架構盛行的當下,詞嵌入的概念延伸為文本嵌入(Text Embeddings):將整段句子、段落或文件編碼為單一向量,用於語義搜尋、相似度比較與知識檢索。OpenAI text-embedding、Cohere embed 等 API 提供現成的文本嵌入服務,廣泛應用於企業知識庫問答、客服機器人等場景。
IPAS 中級考試中,詞嵌入的考點包括:詞嵌入的動機(解決 one-hot 的語義盲問題)、Word2Vec 的兩種訓練架構(Skip-gram 與 CBOW)、詞向量的代數性質與語義空間、靜態詞嵌入與語境化嵌入的差別,以及詞嵌入在 NLP 下游任務中的應用方式。