word embedding 是文本表示的一類方法。跟 one-hot 編碼和整數編碼的目的一樣,不過?他有更多的優點。
文本表示(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種訓練模式:
- 通過上下文來預測當前詞
- 通過當前詞來預測上下文
想要詳細了解 Word2vec,可以看看這篇文章:《一文看懂 Word2vec(基本概念+2種訓練模型+5個優缺點)》
GloVe
GloVe 是對 Word2vec 方法的擴展,它將全局統計和 Word2vec 的基于上下文的學習結合了起來。
想要了解 GloVe 的 三步實現方式、訓練方法、和 w2c 的比較。可以看看這篇文章:《GloVe詳解》
文章首發自 easyAI,原文地址:《一文看懂詞嵌入word embedding(2種算法+其他文本表示比較)》
0條評論 添加新討論