簡介
詞向量是用于表示單詞意義的向量, 并且還可以被認為是單詞的特征向量或表示。 將單詞映射到實向量的技術稱為詞嵌入。在實際應用中,詞向量和詞嵌入這兩個重要的NLP術語通常可以互換使用。它們都表示將詞匯表中的單詞映射到固定大小的連續向量空間中的過程。這些向量可以捕捉詞匯的語義信息。
詞向量
詞向量(Word Vector)是一種將詞語表示為向量的方式,其核心思想是把詞語映射到一個連續的向量空間中,每個詞都對應空間中的一個點(向量),通過向量之間的運算(如距離計算、相似度計算等)來反映詞語之間的語義關系。常見的方式包括:
- One-Hot編碼(獨熱)
為詞匯表中的每個詞分配一個唯一的整數索引,然后將每個詞表示為一個長度等于詞匯表大小的向量,向量中只有對應索引位置的值為 1,其余位置為 0。例如,詞匯表為 ["蘋果", "香蕉", "橙子"],“蘋果” 的獨熱編碼向量為 [1, 0, 0]。這種表示方法簡單直接,但存在維度高、無法表示詞之間語義關系等缺點。 - 詞袋模型(Bag-of-Words, BoW)
- TF-IDF
- 詞嵌入(Word Embedding)
作用
- 語義表示:能夠捕捉詞語的語義信息,使得語義相近的詞在向量空間中距離較近。例如,“蘋果” 和 “香蕉” 在語義上都屬于水果類別,它們的詞向量在空間中會相對靠近。
- 作為模型輸入:方便計算機對文本進行處理,可用于各種自然語言處理任務,如文本分類、情感分析、機器翻譯等。
詞嵌入(Word Embedding)
詞嵌入是一種低維、密集的詞向量表示方法,它能夠捕捉單詞之間的語義關系和上下文信息。詞嵌入通常是從大規模文本語料庫中通過機器學習訓練得到的。這個術語通常用于描述將詞映射到向量空間的過程或表示方法。它通常包括訓練算法和生成的詞向量空間。例如,我們可以說“我們使用Word2Vec算法來生成詞嵌入”。
主要方法
-
Word2Vec(Google, 2013)
- CBOW(Continuous Bag of Words):根據上下文預測中心詞。
- Skip-gram:根據中心詞預測上下文詞。
- 詞向量能學習到“王子-男人+女人≈公主”這樣的關系。
-
GloVe(Global Vectors for Word Representation)(Stanford, 2014)
- 結合全局統計信息,計算詞的共現矩陣,然后通過矩陣分解得到詞向量。
- 適用于捕捉更廣泛的語義信息。
-
FastText(Facebook, 2016)
- 將單詞拆分成多個子詞(如"apple"→["ap", "pp", "pl", "le"])。
- 能夠更好地處理未見過的新詞(OOV, Out-of-Vocabulary)。
-
BERT(Google, 2018) 和 ELMo
- 采用深度神經網絡(Transformer / LSTM),結合上下文語境生成動態詞向量。
- BERT能捕捉單詞在不同句子中的不同含義(例如“銀行”在“去銀行存錢”和“河岸邊的風景”中的區別)。
詞嵌入的應用
- 自然語言處理(NLP):機器翻譯、情感分析、文本分類等。
- 搜索引擎:提升查詢理解能力。
- 推薦系統:基于文本的個性化推薦(如新聞推薦)。
- 聊天機器人:讓AI更好地理解用戶輸入。
Word2Vec:基于上下文學習單詞的詞向量模型
1、概念
Word2Vec 是一種基于神經網絡的詞向量訓練方法,由 Google 在 2013年 提出,能夠將單詞映射到一個低維稠密向量(Dense Vector),并且可以捕捉單詞之間的語義關系。
Word2Vec 訓練出的詞向量可以進行數學運算,例如:
“國王” - “男人” + “女人” ≈ “王后”
它比傳統的 One-Hot 編碼、TF-IDF 更緊湊,并且能學習到單詞的語義信息。
2、原理
Word2Vec 基于分布式假設,即上下文相似的詞,其語義也相似。它的核心思想是通過在大規模文本語料上進行訓練,學習詞語的上下文信息,從而將每個詞語表示為一個固定長度的向量。在這個向量空間中,語義相近的詞語對應的向量在空間上也比較接近。
Word2Vec通過訓練一個神經網絡模型來學習詞嵌入,模型的任務就是基于給定的上下文詞來預測目標詞,或者基于目標詞來預測上下文詞。
3、訓練模型
Word2Vec 主要有兩種訓練模型:連續詞袋模型(CBOW)和跳字模型(Skip - Gram)。
- 連續詞袋模型(CBOW)
- 原理:根據上下文詞來預測目標詞。例如,在句子 “The dog chased the cat” 中,如果上下文窗口大小設為 2,對于目標詞 “chased”,上下文詞就是 “The”、“dog”、“the”、“cat”。模型的任務就是根據這些上下文詞預測出 “chased”。
- 結構:CBOW 模型包含輸入層、隱藏層和輸出層。輸入層是上下文詞的獨熱編碼向量,隱藏層通常是線性變換,輸出層是一個 softmax 函數,用于計算每個詞作為目標詞的概率。
- 跳字模型(Skip - Gram)
- 原理:與 CBOW 相反,它根據目標詞來預測上下文詞。同樣以上述句子為例,以 “chased” 為目標詞,模型要預測出它的上下文詞 “The”、“dog”、“the”、“cat”。
- 結構:Skip - Gram 模型的結構與 CBOW 類似,但輸入層是目標詞的獨熱編碼向量,輸出層要預測多個上下文詞的概率。
4、Word2Vec 的應用
📌 搜索引擎:提升關鍵詞檢索能力
📌 推薦系統:新聞推薦、商品推薦
📌 情感分析:用于理解文本情緒
📌 機器翻譯:提升翻譯質量
📌 聊天機器人:讓 AI 更好地理解用戶輸入
5、Word2Vec 的局限性
? 無法處理 OOV(Out-Of-Vocabulary,新詞):如果詞匯表中沒有某個單詞,就無法表示它。
? 忽略單詞順序:Word2Vec 僅考慮局部上下文,無法捕捉完整句意(BERT 解決了這個問題)。
? 計算資源消耗大:在大規模數據集上訓練需要較長時間。
6、Word2Vec vs. 其他詞向量方法
方法 | 維度 | 是否有語義 | 計算量 | 適用場景 |
---|---|---|---|---|
One-Hot | 高(10萬+) | ? 沒有 | 低 | 傳統文本分類 |
TF-IDF | 高 | ? 沒有 | 中 | 文檔檢索 |
Word2Vec | 低(50-300) | ? 有 | 中等 | NLP 任務 |
BERT | 低(768+) | ? 動態語義 | 高 | 機器閱讀理解 |