一文看懂詞嵌入 word embedding(2種主流算法+與其他文本表示比較)

2021-03-02 產品經理的 AI 知識庫

文本表示(Representation)

文本是一種非結構化的數據信息,是不可以直接被計算的。

文本表示的作用就是將這些非結構化的信息轉化為結構化的信息,這樣就可以針對文本信息做計算,來完成我們日常所能見到的文本分類,情感判斷等任務。

文本表示的方法有很多種,下面只介紹 3 類方式:

獨熱編碼 | one-hot representation

整數編碼

詞嵌入 | word embedding

獨熱編碼 | one-hot representation

假如我們要計算的文本中一共出現了4個詞:貓、狗、牛、羊。向量裡每一個位置都代表一個詞。所以用 one-hot 來表示就是:

貓:[1,0,0,0]

狗:[0,1,0,0]

牛:[0,0,1,0]

羊:[0,0,0,1]

但是在實際情況中,文本中很可能出現成千上萬個不同的詞,這時候向量就會非常長。其中99%以上都是 0。

one-hot 的缺點如下:

無法表達詞語之間的關係

這種過於稀疏的向量,導致計算和存儲的效率都不高

整數編碼

這種方式也非常好理解,用一種數字來代表一個詞,上面的例子則是:

貓:1

狗:2

牛:3

羊:4

將句子裡的每個詞拼起來就是可以表示一句話的向量。

整數編碼的缺點如下:

無法表達詞語之間的關係

對於模型解釋而言,整數編碼可能具有挑戰性。

什麼是詞嵌入 | word embedding?

word embedding 是文本表示的一類方法。跟 one-hot 編碼和整數編碼的目的一樣,不過他有更多的優點。

詞嵌入並不特指某個具體的算法,跟上面2種方式相比,這種方法有幾個明顯的優勢:

他可以將文本通過一個低維向量來表達,不像 one-hot 那麼長。

語意相似的詞在向量空間上也會比較相近。

通用性很強,可以用在不同的任務中。

2 種主流的 word embedding 算法

Word2vec

這是一種基於統計方法來獲得詞向量的方法,他是 2013 年由谷歌的 Mikolov 提出了一套新的詞嵌入方法。

這種算法有2種訓練模式:

通過上下文來預測當前詞

通過當前詞來預測上下文

GloVe

GloVe 是對 Word2vec 方法的擴展,它將全局統計和 Word2vec 的基於上下文的學習結合了起來。

想要了解 GloVe 的 三步實現方式、訓練方法、和 w2c 的比較。可以看看這篇文章:《GloVe詳解》

http://www.fanyeong.com/2018/02/19/glove-in-detail/

相關焦點

  • 無監督學習之詞嵌入(word embedding)
    Unsupervised Learning: Word Embedding本文介紹NLP中詞嵌入(Word Embedding)相關的基本知識,基於降維思想提供了count-based和prediction-based兩種方法,並介紹了該思想在機器問答、機器翻譯、圖像分類、文檔嵌入等方面的應用Introduction詞嵌入(word
  • 閒聊word_embedding
    NLP word embedding概述依稀記得去年數據挖掘課有講過這個概念,年輕不懂事,沒認真聽,只能現在補課對於自然語言處理其實目前涉及的比較少
  • 詞嵌入的經典方法,六篇論文遍歷Word2vec的另類應用
    在開始正題之前,為了防止有人不清楚 word2vec 從而影響對後文的理解,這裡科普一下本文會用到的相關基本概念。它們用在哪裡:最終 word2vec 就會產生如圖 1 所示的一堆向量(word embedding,詞嵌入),這些向量就可以作為後續任務中神經網絡模型的輸入。圖 1:word embedding 示例。
  • NLP算法|解析Word Embedding
    「你知道茴香豆的茴有幾種表示方法嗎?」「onehot-encoding, 詞向量...」什麼是Word Embedding?
  • Word Embedding List|ACL 2020 詞嵌入長文匯總及分類
    以下匯總並嘗試按主題分類了 37 篇與 word embedding 有關的長文,讓我們一起看看今年詞嵌入的研究又有哪些新進展。關於作者:張正,坐標巴黎,上班NLP,下班詞嵌入。縱向分類一千個人眼裡有一千個分類方法。
  • 總結|為什麼要進行圖嵌入Graph embedding?
    如果要解決以上的問題,我們首先需要做的是對圖進行表示,graph embedding 是中非常有效的技術。1.什麼是圖嵌入(graph embedding)?圖嵌入是一種將圖數據(通常為高維稠密的矩陣)映射為低微稠密向量的過程,能夠很好地解決圖數據難以高效輸入機器學習算法的問題。圖嵌入需要捕捉到圖的拓撲結構,頂點與頂點的關係,以及其他的信息,如子圖,連邊等。
  • R語言自然語言處理:文本向量化——詞嵌入(Word Embedding)
    如果單詞特別多,但是每個詞出現的次數又不一定很多的時候,我們得到一個巨大的稀疏矩陣。這樣存儲效率很低;2. 這個模型對單詞出現的順序沒有任何記錄,因此「勇士打敗雷霆」和「雷霆打敗勇士」這兩個短語,在BOW模型中認為意思是完全一樣的。為此,科學家提出了詞嵌入模型。
  • [教程]一篇最簡單的NLP入門:在Python上構建Word2Vec詞嵌入模型(Tensorflow篇)
    樹根在這篇推文中先介紹怎麼用tf構建word2vec,因為tf框架比較靈活,實現word2vec會比其他框架(比如keras)更為可行。樹根以後會陸續介紹怎麼用keras實現wordvec。1.假如大家想用其他語料訓練word2vec,也可以自己去古登堡計劃(http://www.gutenberg.org/)這個網站自己下載txt文件進行訓練。
  • Word2vec算法圖解(一)
    今天的主題是:Word2vec算法圖解(一)一、word2vec算法簡介Sikp-grams(SG)給定中心詞去預測上下文單詞。Continuous Bag of Words(CBOW)給定上下文單詞去預測中心詞。
  • label-embedding在文本分類中的應用
    所以挖了挖這個領域的研究,不挖不知道,一挖嚇一跳,沒想到這個坑還挺深的,看著看著就從普通的分類延續到 few-shot,zero-shot 以及 meta-learning 去了。在這裡先介紹幾篇與 label-embedding 相關的工作,以後有時間了其他的方法有時間了慢慢碼字。
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    ,我將使用NLP和Python來解釋3種不同的文本多分類策略:老式的詞袋法(tf-ldf),著名的詞嵌入法(Word2Vec)和最先進的語言模型(BERT)。NLP常用於文本數據的分類。文本分類是指根據文本數據內容對其進行分類的問題。我們有多種技術從原始文本數據中提取信息,並用它來訓練分類模型。本教程比較了傳統的詞袋法(與簡單的機器學習算法一起使用)、流行的詞嵌入模型(與深度學習神經網絡一起使用)和最先進的語言模型(和基於attention的transformers模型中的遷移學習一起使用),語言模型徹底改變了NLP的格局。
  • 從詞嵌入到含義嵌入:概覽含義向量表示方法
    Open Multilingual Wordnet等項目則致力於將WordNet擴展到其他語言。Wikipedia(維基百科)是最著名的協同構建資源。它是世界上最大的多語言百科,支持超過250種語言。而且,它還在持續更新之中,例如,英語維基百科每天新增將近750篇新文章。
  • (Spacy與Word Embedding)
    篇幅所限,本文只為你展示以下內容:詞性分析命名實體識別依賴關係刻畫詞嵌入向量的近似度計算詞語降維和可視化學完這篇教程,你可以按圖索驥,利用Spacy提供的詳細文檔,自學其他自然語言處理功能。我們開始吧。
  • 主流圖嵌入模型的原理和應用
    」這句話看作是同一個語義上下文,「拜仁」這個詞與「贏得」,「歐冠」和「冠軍」等單詞有比較強的語義關係。為了捕捉這一語義關係,Word2vec 利用同一上下文的單詞來學習各自的詞向量表示(Word Embedding)。
  • Word Embedding Papers | 經典再讀之Word2Vec
    都已經 2020 年了,還在介紹 word2vec?對。詞嵌入(word embeddings)向前可以追溯到上世紀 50 年代(雖然那時還不叫這個名字,但語義如何被表徵的假說已經提出了),向後更是隨著一個個芝麻街成員的強勢加入,恨不得天天都是該領域的新 SOTA。所以不如找個中間的裡程碑 word2vec 先挖一坑,畢竟想那麼多,都沒做來得實際。
  • 使用Python代碼的4種句嵌入技術
    而對於機器來說,為了讓機器可以處理和理解任意文本,我們必須用機器能夠理解的語言來表示文本。那麼它最懂哪種語言呢?答案是:數字(numbers)——無論我們提供給機器什麼數據:視頻、音頻、圖像或文本,機器都只會與數字打交道,這也就是為什麼將文本表示為數字或嵌入文本(embedding text)是自然語言處理中最熱門的話題之一。
  • 圖計算黑科技:打開中文詞嵌入訓練實踐新模式
    第二部分是將表示context的n個詞的詞嵌入拼接起來,通過一個隱藏層和一個輸出層,最後通過softmax輸出當前的p(wt|context)(當前上下文語義的概率分布,最大化要預測的那個詞的概率,就可以訓練此模型)。這一模型框架不但訓練了一個用神經網絡表示的語言模型,而且作為語言模型的副產物還獲得了詞語的詞嵌入(存在矩陣C中)。
  • Word2vec如何得到詞向量
    前言word2vec是如何得到詞向量的?這個問題比較大。
  • 詞向量詳解:從word2vec、glove、ELMo到BERT
    目前,詞向量(又叫詞嵌入)已經成為NLP領域各種任務的必備一步,而且隨著bert elmo,gpt等預訓練模型的發展,詞向量演變為知識表示方法,但其本質思想不變。學習各種詞向量訓練原理可以很好地掌握NLP各種方法。生成詞向量的方法有很多種,本文重點介紹word2vec,glove和bert。
  • 淺談電商搜索推薦中ID類特徵的統一建模:Hema Embedding解讀
    近年來詞嵌入方法(word embedding,也就是word2vec)被普遍用於NLP領域,它通過對單詞在語料中的共現關係進行建模,將以one-hot表示的單詞嵌入(embed)至低維,以一個帶有語義信息的低維稠密向量表徵。最近其他數據挖掘領域也逐漸開始借鑑embedding的思想,把各種one-hot形式的ID特徵進行低維嵌入。