一文看懂詞嵌入wordembedding(2種算法+其他文本表示比較)

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

一文看懂 word embedding

文本表示(Representation)

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

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

文本表示將非結構化數據轉化為結構化數據

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

  1. 獨熱編碼 | one-hot representation
  2. 整數編碼
  3. 詞嵌入 | word embedding

word embedding的關系

獨熱編碼 | one-hot representation

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

貓:[1,0,0,0]

狗:[0,1,0,0]

牛:[0,0,1,0]

羊:[0,0,0,1]

one-hot編碼

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

one-hot 的缺點如下:

  1. 無法表達詞語之間的關系
  2. 這種過于稀疏的向量,導致計算和存儲的效率都不高

整數編碼

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

貓:1

狗:2

牛:3

羊:4

整數編碼

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

整數編碼的缺點如下:

  1. 無法表達詞語之間的關系
  2. 對于模型解釋而言,整數編碼可能具有挑戰性。

什么是詞嵌入 | word embedding?

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

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

  1. 他可以將文本通過一個低維向量來表達,不像 one-hot 那么長。
  2. 語意相似的詞在向量空間上也會比較相近。
  3. 通用性很強,可以用在不同的任務中。

再回顧上面的例子:

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

2 種主流的 word embedding 算法

2 種主流的 word embedding 算法

Word2vec

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

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

  1. 通過上下文來預測當前詞
  2. 通過當前詞來預測上下文

想要詳細了解 Word2vec,可以看看這篇文章:《一文看懂 Word2vec(基本概念+2種訓練模型+5個優缺點)》

GloVe

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

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

文章首發自 easyAI,原文地址:《一文看懂詞嵌入word embedding(2種算法+其他文本表示比較)

0條評論 添加新討論

登錄后參與討論
Ctrl+Enter 發表