理解詞嵌入WordEmbedding

1. 引入

詞嵌入,英文爲 Word Embedding,這是語言表示的一種方式。它可以讓算法理解一些類似的詞。

2. 詞表示:one-hot

我們可以用one-hot向量來表示詞,如下圖所示。

在這裏插入圖片描述

這種表示方式,我們需要首先獲取一個字典,比如字典中有100000個詞。

對每一個詞,都得到一個向量,其中該詞對應位置上置一,其他位置置零。

比如man這個詞位於字典的第5391個位置,則我們爲這個單詞創建一個100000維度的向量,其中第5391個位置處值爲1,其他位置值爲0.

這種方法的缺點,是它把每個詞孤立了起來。這樣會使算法對相關詞的泛化能力不強。

比如,如下兩句話中,都需要在末尾填入一個單詞。

  1. I want a glass of orange ____

  2. I want a glass of apple ____

這裏都應該填入juice。但是,即使你的算法已經學到了第一個句子,但它並不知道orange和apple比較類似,所以第一個句子的經驗難以被學到。用one-hot向量來表示,問題在於,orange和apple之間的內積爲0,所以算法很難從orange juice中學到apple後面也應該跟着juice。

3. 詞表示:Word Embedding

上例中,用one-hot向量表示orange和apple,會使得orange和apple之間的內積爲0,所以用one-hot無法表示兩個相似的詞。用Word Embedding表示法,就能使相似詞之間的向量也相似。

我們用下面這個例子來方便大家理解Word Embedding。

在這裏插入圖片描述

這是一個理想化的Word Embedding表示,表格中每一列的數據表示某一個單詞的Word Embedding向量。可以看到,Queen和King的向量值很接近,說明這兩個詞有相關性。

在這種表示中,我們要知道:

  1. 第一列表示特徵,比如Gender,Royal,Age等,這裏有300個特徵;

  2. 後面每一列表示一個單詞的word embedding;

  3. 其中值爲1表示單詞與特徵非常接近,比如King與Royal的相似性值爲0.93;值爲0表示相關性很低。

  4. Apple 的Word Embedding向量 爲 [0,-0.01,0.03,0.95, …], Orange 的Word Embedding向量 爲[0.01,0.00,-0.02,0.97, …],可以看到他們的向量都非常相似。

這種表示方法的優點,是對於2中提到的兩句話例子,算法訓練時知道orange後面需要填寫juice,則很大概率上apple後面也是相同的詞。

用Word Embedding來表示詞,會讓算法的泛化能力更好。雖然真正的Word Embedding表示,無法做到本例中能知道各個向量值具體表示什麼特徵,我們通過這個例子,也只是說明Word Embedding這種高維的表示,比on-hot要好。

4. 參考

  • Andrew NG,序列模型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章