NLP 中不同詞嵌入技術的比較 - KDnuggets
如果計算機可以開始理解莎士比亞,這不是令人難以置信嗎?還是像 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 最適合語言翻譯任務。它已針對許多其他應用程式和領域進行了優化。
相關文章
- NLP《詞彙表示方法(二)詞嵌入表示》
- NLP第3章 中文分詞技術中文分詞
- 兩個coca略有不同詞頻檔案 比較
- 不同解決方案的比較
- 比較喜歡的詩詞
- 學什麼技術比較好呢?IT技術很不錯
- 6個頂級Python NLP庫的比較!Python
- Linux 比較不同命令Linux
- 比較服務間通訊的技術 - ardalis
- javascript訪問不同物件的速度比較JavaScript物件
- Python NLP庫 Top6的介紹和比較Python
- Python NLP庫top6的介紹和比較Python
- JS嵌入html的方式及各種方式的比較JSHTML
- NLP領域的ImageNet時代:詞嵌入已死,語言模型當立模型
- 常見名詞的用法與比較【***】 02天
- 三種主流虛擬化技術的比較(Vmware/Citrix/Microsoft)ROS
- [NLP] 知識抽取技術
- 萬字長文概述NLP中的深度學習技術深度學習
- 阿里NLP總監分享-NLP技術的應用與思考阿里
- 單點登入原理與技術實現比較
- 室內定位技術比較及發展趨勢
- 自然語言處理(NLP)路線圖 - kdnuggets自然語言處理
- 好程式設計師技術解析Hadoop和spark的效能比較程式設計師HadoopSpark
- NLP領域的ImageNet時代到來:詞嵌入「已死」,語言模型當立模型
- LLM中詞向量的表示和詞嵌入的一些疑問
- 比較兩個檔案,求出不同的內容,A-B
- 如何比較兩個資料庫表結構的不同資料庫
- 中文分詞技術中文分詞
- 單點登入的原理、實現、及技術方案比較詳解
- VUE中diff比較Vue
- 機器人視覺系統中的嵌入式技術機器人視覺
- 不同體系分散式儲存技術的技術特性分散式
- NLP之中文分詞中文分詞
- powershell中的where和foreach比較
- Mysql中的Datetime和Timestamp比較MySql
- NLP自然語言處理中的hanlp分詞例項自然語言處理HanLP分詞
- nlp基礎之詞、子詞或字元字元
- 技術名詞解釋