非語言模型之SkipGram與CBOW

1、條件概率:

P(A|B) = P(AB)/P(B);
P(A|B)——在 B 條件下 A 的概率。即事件A 在另外一個事件 B 已經發生條件下的發生概率;
P(AB)——事件A、 B同時發生的概率,即聯合概率.聯合概率表示兩個事件共同發生的概率.A 與 B 的聯合概率表示爲 P(AB) 或者 P(A,B);
P(B)——事件B發生的概率;

2、用一張圖開說明兩者之間的區別:

3、skip-gram:

Skip-gram用於預測與給定中心詞相對應的上下文詞。它和連續詞袋模型(CBOW)算法相反。在Skip-gram中,中心詞是輸入詞(input word),上下文詞是輸出詞(output word)。因爲要預測多個上下文詞,所以這一過程比較困難。

上圖中,w(t)就是中心詞,也叫給定輸入詞。其中有一個隱藏層,它執行權重矩陣和輸入向量w(t)之間的點積運算。隱藏層中不使用激活函數。現在,隱藏層中的點積運算結果被傳遞到輸出層。輸出層計算隱藏層輸出向量和輸出層權重矩陣之間的點積。然後用softmax激活函數來計算在給定上下文位置中,單詞出現在w(t)上下文中的概率。

使用到的變量

  1. 在數據庫或文本中出現的特殊單詞的彙總詞典。這個詞典就叫做詞彙量,是系統的已知詞。詞彙量用字母“v”來表示。
  2. “N”代表隱藏層中神經元的數量。
  3. 窗口大小就是預測單詞的最大的上下文位置。“c” 代表窗口大小。比如,在給定的架構圖中窗口大小爲2,因此,我們會在 (t-2), (t-1), (t+1) 和 (t+2) 的上下文位置中預測單詞。
  4. 上下文窗口是指會在給定詞的範圍內出現的、要預測的單詞數量。對於2*c的並且由K表示的窗口大小來說,上下文窗口值是該窗口大小的兩倍。給定圖像的上下文窗口值是4。
  5. 輸入向量的維度等於|V|。每個單詞都要進行one-hot編碼。
  6. 隱藏層的權重矩陣(W)的維度是[|V|, N]。“||” 是把數組值還原的模函數。
  7. 隱藏層的輸出向量是H[N]。
  8. 隱藏層和輸出層之間的權重矩陣 (W’) 維度是[N,|V|]。
  9. W’和H之間的點積生成輸出向量U[|v|]。

N = 上下文窗口

 

工作步驟

1. 利用one-hot編碼將單詞轉換爲向量,這些向量的維度是 [1,|v|]。

one-hot編碼

2. 單詞w(t)從|V|神經元被傳遞到隱藏層。

3. 隱藏層執行權重向量W[|v|, N] 和輸入向量w(t)之間的點積運算。這裏,我們可以總結出:第(t)行的W[|v|, N] 會輸出(H[1, N])。

4. 謹記:隱藏層不使用激活函數,所以H[1,k] 會直接傳遞到輸出層。

5. 輸出層會執行H[1, N]和W’[N, |v|]之間的點積運算,並給出向量U。

6. 現在,要得出每個向量的概率,我們要使用softmax函數,因爲每次迭代都得出輸出向量U,這是一種one-hot編碼模式。

7. 概率最大的那個單詞就是最終結果。如果在指定上下文位置中預測的單詞是錯誤的,我們會使用反向傳播算法來修正權重向量W和W’。

以上步驟對字典中的每個單詞w(t) 都要執行。而且,每個單詞w(t) 會被傳遞K次。所以我們可以得知,正向傳播算法在每段時間內會執行 |v|*k次。

 

概率函數

Softmax概率

w(c, j) 是在第c個上下文位置上預測的第j個單詞;w(O, c)是在第c個上下文位置上出現的實際單詞;w(I)是唯一的輸入詞;u(c, j)是在第c個上下文位置上預測單詞時,U向量的第j個值。

 

損失函數

損失函數

由於我們想在第c個上下文位置預測w(c, j) 時實現概率最大化,可以使用損失函數L。

優勢

  1. Skip-gram是一種無監督學習技術,因此它可以用於任何原始文本。
  2. 相比於其他單詞轉向量表達法,Skip-gram需要的記憶更少。
  3. 它只需要兩個維度爲[N, |v|]而不是[|v|, |v|]的權重矩陣。而且通常情況下,N約爲300,|v| 則約爲數百萬。

劣勢

  1. 找到N和c的最佳值很困難。
  2. Softmax函數計算耗費的時間很長。
  3. 訓練這個算法耗時較長。

通過設置windows窗口的大小,通過中心詞來預測周邊的窗口大小的單詞(上下文詞);

例子: 我  正在  學習  skipgram

            w1    w2    w3   w4

即通過我(w1)確定的情況下,預測正在(w2)出現的概率; 正在(w2)確定的情況下,預測我(w1)出現的概率,預測學習(w3)出現的概率......

根據上面4個詞組成的一句話, 那麼這句話的概率根據skipgram, windows=1的情況下來計算的

p(w2| w1)p(w1| w2)p(w3| w2)p(w2| w3)p(w4| w3)p(w3| w4)

 

可參考:https://www.sohu.com/a/309649581_100118081

 

4、CBOW

通過設置windows窗口的大小,通過周邊的窗口大小的單詞來預測中心詞;

例子: 我  正在  學習  CBOW

            w1    w2    w3   w4

 

參考:https://blog.csdn.net/weixin_41843918/article/details/90312339  

留作總結

 

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