NLP系列——word2vec原理

前言

1.1 詞向量的意義

1.2 語言模型

  1.2.1 CBOW
  1.2.2 skip-gram

1.3 詞向量模型

   1.3.1 Hierarchical Softmax
   1.3.2 Negative Sample

1.4 基於Hierarchical Softmax的模型

   1.4.1 CBOW模型
   1.4.2 skip-gram模型

1.5 基於Negative Sample 的模型

   1.5.1 CBOW模型
   1.5.2 skip-gram模型

1.6 總結

1.7 參考文獻


前言
  在傳統的NLP中,我們將單詞視爲離散符號,然後可以用one-hot向量表示。向量的維度是整個詞彙表中單詞的數量。單詞作爲離散符號的問題在於,對於one-hot向量來說,沒有自然的相似性概念。因此,另一種方法是學習在向量本身中編碼相似性。核心思想是一個詞的含義是由經常出現在其旁邊的單詞給出的。詞向量是字符串的實值向量表示。我們爲每個單詞建立一個密集的向量,選擇它以便類似於類似上下文中出現的單詞的向量。對於大多數NLP任務而言,詞向量被認爲是一個很好的起點。它們允許深度學習在較小的數據集上也是有效的,因爲它們通常是深度學習體系的第一批輸入,也是NLP中最流行的遷移學習方式。在詞向量中最流行的應該是Word2vec,它是由谷歌開發的模型,另外一個是由斯坦福大學開發的GloVe。
  爲防止圖片加載不出來,文末有PDF版本下載地址

1.1詞向量的意義
  自然語言處理(NLP)相關任務中, 要將自然語言交給機器學習中的算法來處理,通常需要首先將語言數學化,因爲機器不是人,機器只認數學符號。向量是人把自然界的東西抽象出來交給機器處理的東西,基本上可以說向量是人對機器輸入的主要方式了。
  詞向量就是用來將語言中的詞進行數學化的一種方式,顧名思義,詞向量就是把一個詞轉化成一個向量。
  一種最簡單的詞向量方式是 one-hot representation,就是用一個很長的向量來表示一個詞,向量的長度爲詞典的大小,向量中只有一個 1,其它位置全爲 0。1 的位置對應該詞在詞典中的位置。這種 One-hot Representation 如果採用稀疏方式存儲,會是非常的簡潔:也就是給每個詞都分配一個數字 ID。但這種詞表示有兩個缺點:(1)容易受維數災難的困擾,尤其是將其用於Deep Learning 的一些算法時;(2)不能很好地刻畫詞與詞之間的相似性。
  另一種就是 Distributed Representation,其基本想法是直接用一個普通的向量表示一個詞,這種向量一般長成這個樣子: [0.792, −0.177, −0.107, 0.109, −0.542, … ],也就是普通的向量表示形式。維度以 50和100維常見。由於是用向量表示,而且用較好的訓練算法得到的詞向量的向量一般是有空間上的意義的,也就是說, 將所有這些向量放在一起形成一個詞向量空間,而每一向量則爲該空間中的一個點,在這個空間上的詞向量之間的距離度量也可以表示對應的兩個詞之間的“距離”,這樣的特性使得詞向量很有意義。考慮英語和西班牙語兩種語言,通過訓練分別得到它們對應的詞向量空間 E 和 S。從英語中取出五個詞 one, two,three, four, five,設其在 E 中對應的詞向量分別爲 v1, v2, v3, v4, v5,爲方便作圖,利用主成分分析(PCA)降維,得到相應的二維向量 u1, u2, u3,u4, u5,在二維平面上將這五個點描出來,如下圖左圖所示。類似地,在西班牙語中取出(與 one, two, three, four, five 對應的) uno, dos, tres, cuatro,cinco,設其在 S 中對應的詞向量分別爲 s1, s2, s3, s4, s5,用 PCA 降維後的二維向量分別爲 t1, t2, t3, t4, t5,將它們在二維平面上描出來(可能還需作適當的旋轉),如下圖右圖所示:
在這裏插入圖片描述
  觀察左、右兩幅圖,容易發現:五個詞在兩個向量空間中的相對位置差不多,這說明兩種不同語言對應向量空間的結構之間具有相似性,從而進一步說明了在詞向量空間中利用距離刻畫詞之間相似性的合理性。

1.2語言模型
在這裏插入圖片描述在這裏插入圖片描述
1.2.1 CBOW
在這裏插入圖片描述
在這裏插入圖片描述
1.2.2 skip-gram
在這裏插入圖片描述
在這裏插入圖片描述
1.3 詞向量模型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.3.1 Hierarchical Softmax
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.3.2 Negative Sample
   使用霍夫曼樹來代替傳統的神經網絡,可以提高模型訓練的效率。但是如果我們的訓練樣本里的中心詞w是一個很生僻的詞,那麼就得在霍夫曼樹中辛苦的向下走很久了。能不能不用搞這麼複雜的一顆霍夫曼樹,將模型變的更加簡單呢?
   Negative Sampling就是這麼一種求解word2vec模型的方法,它摒棄了霍夫曼樹,採用了Negative Sampling的方法來求解,下面我們就來看看Negative Sampling的求解思路。
在這裏插入圖片描述
在這裏插入圖片描述
1.4 基於Hierarchical Softmax的模型
1.4.1 CBOW模型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.4.2 skip-gram模型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.5 基於Negative Sample 的模型
1.5.1 CBOW模型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.5.2 skip-gram模型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
1.6 總結
在這裏插入圖片描述
1.7 參考文獻
https://blog.csdn.net/itplus/article/details/37969979
https://www.cnblogs.com/pinard/p/7160330.html
PDF版下載地址

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