NLP 中不同詞嵌入技術的比較 - KDnuggets

banq發表於2021-11-11

如果計算機可以開始理解莎士比亞,這不是令人難以置信嗎?還是像 JK 羅琳那樣寫小說?這在幾年前是不可想象的。自然語言處理(NLP) 和自然語言生成(NLG) 的最新進展大大提高了計算機更好地理解基於文字的內容的能力。

為了理解和生成文字,NLP 驅動的系統必須能夠識別單詞、語法和大量語言細微差別。對於計算機來說,這說起來容易做起來難,因為它們只能理解數字。

為了彌補這一差距,NLP 專家開發了一種稱為詞嵌入的技術,可將詞轉換為其數值表示。轉換後,NLP 演算法可以輕鬆消化這些學習到的表示以處理文字資訊。

詞嵌入將詞對映為實值數值向量。它通過標記序列(或句子)中的每個單詞並將它們轉換為向量空間來實現。詞嵌入旨在捕獲文字序列中詞的語義。它為具有相似含義的單詞分配相似的數字表示。

讓我們來看看 NLP 中一些最有前途的詞嵌入技術。

 

1. TF-IDF——詞頻-逆文件頻率

TF-IDF 是一種機器學習 (ML) 演算法,它基於查詢文字中單詞相關性的統計度量。文字可以是文件或各種文件(語料庫)的形式。它是兩個指標的組合:詞頻 (TF) 和逆文件頻率 (IDF)。

TF-IDF 演算法用於解決更簡單的 ML 和 NLP 問題。它更適合用於資訊檢索、關鍵字提取、停用詞(如“a”、“the”、“are”、“is”)去除和基本文字分析。它不能有效地捕捉序列中單詞的語義。

 

2. Word2Vec——捕獲語義資訊

Word2Vec 由 Tomas Mikolov 和谷歌的其他研究人員於 2013 年開發,是一種用於解決高階 NLP 問題的詞嵌入技術。它可以迭代大量文字以學習單詞之間的關聯或依賴關係。

Word2Vec 通過使用餘弦相似度度量找到單詞之間的相似度。如果餘弦角為 1,則表示單詞重疊。如果餘弦角為 90,則表示單詞是獨立的或沒有上下文相似性。它為相似的詞分配相似的向量表示。

Word2Vec 提供兩種基於神經網路的變體:Continuous Bag of Words (CBOW) 和 Skip-gram。在CBOW中,神經網路模型以各種詞作為輸入,預測與輸入詞的上下文密切相關的目標詞。另一方面,Skip-gram 架構將一個詞作為輸入並預測其密切相關的上下文詞。

CBOW 速度快,可以為頻繁詞找到更好的數值表示,而 Skip Gram 可以有效地表示稀有詞。Word2Vec 模型擅長捕捉單詞之間的語義關係。例如,一個國家與其首都的關係,就像巴黎是法國的首都,柏林是德國的首都。它最適合執行語義分析,在推薦系統和知識發現中都有應用。

 

3. GloVe——詞表示的全域性向量

GloVe 由 Jeffery Pennington 和史丹佛大學的其他研究人員開發,擴充套件了 Word2Vec 的工作,通過計算全域性詞-詞共現矩陣來捕獲文字語料庫中的全域性上下文資訊。

Word2Vec 僅捕獲單詞的本地上下文。在訓練期間,它只考慮相鄰的詞來捕捉上下文。GloVe 會考慮整個語料庫並建立一個大型矩陣,該矩陣可以捕獲語料庫中單詞的共現情況。

GloVe 結合了二詞向量學習方法的優點:矩陣分解(如潛在語義分析(LSA))和區域性上下文視窗方法(如 Skip-gram)。GloVe 技術具有更簡單的最小二乘成本或誤差函式,可降低訓練模型的計算成本。由此產生的詞嵌入是不同的並且得到了改進。

GloVe 在詞類比和命名實體識別問題上的表現要好得多。它在某些任務中優於 Word2Vec,而在其他任務中則與之競爭。然而,這兩種技術都擅長捕捉語料庫中的語義資訊。

 

4. BERT—— 來自 Transformer 的雙向編碼器表示

BERT 於 2019 年由 Google推出,屬於一類基於 NLP 的語言演算法,稱為Transformers。BERT 是一個大規模的預訓練深度雙向編碼器變壓器模型,有兩種變體。BERT-Base 有 1.1 億個引數,BERT-Large 有 3.4 億個引數。

為了生成詞嵌入,BERT 依賴於注意力機制。它生成高質量的上下文感知或上下文化的詞嵌入。在訓練過程中,嵌入通過通過每個 BERT 編碼器層進行細化。對於每個單詞,注意力機制根據左側的單詞和右側的單詞捕獲單詞關聯。詞嵌入也進行了位置編碼,以跟蹤句子中每個詞的模式或位置。

BERT 比上面討論的任何技術都更先進。它建立了更好的詞嵌入,因為該模型是在大量詞庫和維基百科資料集上進行預訓練的。BERT 可以通過微調特定任務資料集上的嵌入來改進。

不過,BERT 最適合語言翻譯任務。它已針對許多其他應用程式和領域進行了優化。

相關文章