一文看懂Word2vec

Word2vec 是 Word Embedding 方式之一,屬於 NLP 領域。他是將詞轉化為「可計算」「結構化」的向量的過程。本文將講解 Word2vec 的原理和優缺點。

這種方式在 2018 年之前比較主流,但是隨著 BERT、GPT2.0 的出現,這種方式已經不算效果最好的方法了。

想要了解更多 NLP 相關的內容,請訪問  NLP專題 ,免費提供59頁的NLP文檔下載。

訪問 NLP 專題,下載 59 頁免費 PDF

 

什麼是 Word2vec ?

什麼是 Word Embedding ?

在說明 Word2vec 之前,需要先解釋一下 Word Embedding。 它就是將「不可計算」「非結構化」的詞轉化為「可計算」「結構化」的向量。

這一步解決的是」將現實問題轉化為數學問題「,是人工智慧非常關鍵的一步。

了解更多,可以看這篇文章:《一文看懂詞嵌入 word embedding(與其他文本表示比較+2種主流演算法)

word embedding:將非結構化數據轉化為結構化數據

將現實問題轉化為數學問題只是第一步,後面還需要求解這個數學問題。所以 Word Embedding 的模型本身並不重要,重要的是生成出來的結果——詞向量。因為在後續的任務中會直接用到這個詞向量。

 

什麼是 Word2vec ?

Word2vec 是 Word Embedding 的方法之一。他是 2013 年由谷歌的 Mikolov 提出了一套新的詞嵌入方法。

Word2vec 在整個 NLP 里的位置可以用下圖表示:

word2vec在nlp中的位置

在 Word2vec 出現之前,已經有一些 Word Embedding 的方法,但是之前的方法並不成熟,也沒有大規模的得到應用。

下面會詳細介紹 Word2vec 的訓練模型和用法。

 

Word2vec 的 2 種訓練模式

CBOW(Continuous Bag-of-Words Model)和Skip-gram (Continuous Skip-gram Model),是Word2vec 的兩種訓練模式。下面簡單做一下解釋:

CBOW

通過上下文來預測當前值。相當於一句話中扣掉一個詞,讓你猜這個詞是什麼。

CBOW通過上下文來預測當前值

Skip-gram

用當前詞來預測上下文。相當於給你一個詞,讓你猜前面和後面可能出現什麼詞。

Skip-gram用當前詞來預測上下文

easyai公眾號

 

優化方法

為了提高速度,Word2vec 經常採用 2 種加速方式:

  1. Negative Sample(負採樣)
  2. Hierarchical Softmax

具體加速方法就不詳細講解了,感興趣的可以自己查找資料。

 

Word2vec 的優缺點

需要說明的是:Word2vec 是上一代的產物(18 年之前), 18 年之後想要得到最好的效果,已經不使用 Word Embedding 的方法了,所以也不會用到 Word2vec。

優點:

  1. 由於 Word2vec 會考慮上下文,跟之前的 Embedding 方法相比,效果要更好(但不如 18 年之後的方法)
  2. 比之前的 Embedding方 法維度更少,所以速度更快
  3. 通用性很強,可以用在各種 NLP 任務中

Word2vec在相似度計算上效果不錯

缺點:

  1. 由於詞和向量是一對一的關係,所以多義詞的問題無法解決。
  2. Word2vec 是一種靜態的方式,雖然通用性強,但是無法針對特定任務做動態優化

Word2vec無法解決多義詞的問題

 

百度百科

百度百科版本

Word2vec,是一群用來產生詞向量的相關模型。這些模型為淺而雙層的神經網路,用來訓練以重新建構語言學之詞文本。網路以詞表現,並且需猜測相鄰位置的輸入詞,在word2vec中詞袋模型假設下,詞的順序是不重要的。訓練完成之後,word2vec模型可用來映射每個詞到一個向量,可用來表示詞對詞之間的關係,該向量為神經網路之隱藏層。

查看詳情

easyai公眾號