深度學習筆記之自然語言處理(word2vec)

1.1 自然語言處理的應用

拼寫檢查,關鍵詞搜索
文本挖掘
文本分類
機器翻譯
客服系統
複雜對話系統

1.2 語言模型

舉個例子:
這裏有一句話:“我今天下午打籃球。”

這裏寫圖片描述

p(S)是稱爲語言模型,即用來計算一個句子概率的模型。
如下的語言模型,會造成數據過於稀疏,參數空間太大

這裏寫圖片描述

用下述的方式可以解決上面的問題。如下:
假設下一個詞的出現依賴於它前面的一個詞

這裏寫圖片描述

假設下一個詞的出現依賴於它前面的兩個詞

這裏寫圖片描述

我們以下面的一個簡單的詞庫表來講解。如下所示是一個詞庫表。

這裏寫圖片描述

下方的數字是每一個詞在詞庫中 出現的次數。
將該詞頻轉化爲n*n的矩陣,其中n-gram=1。

這裏寫圖片描述

我們可以從該矩陣得知單詞 “i”後面接“want”的次數爲827次,“i”後面接“eat”的次數爲9次,以此類推。
然後將上述矩陣轉化爲概率轉移矩陣。如下所示:

這裏寫圖片描述

如下即爲“I want chinese food”概率計算公式:

這裏寫圖片描述

下圖是模型參數數量和n-gram參數個數的關係:

這裏寫圖片描述

1.3 兩個基礎模型(CBOW and skip-gram)

模型結構如下:

這裏寫圖片描述

我們首先看CBOW模型,它是根據上下文來預測當前詞,而Skip-gram模型則是根據當前詞,預測上下文。
CBOW是Continuous Bag-of-Words Model的縮寫,是一種根據上下文的詞語預測當前詞語的概率模型。將其轉化爲極大似然估計,如下:

L=wclogp(w|Context(w))

我們看其訓練步驟,如下所示:
這裏寫圖片描述

輸入層是上下文的詞語的詞向量,在訓練CBOW模型,詞向量只是個副產品,確切來說,是CBOW模型的一個參數。訓練開始的時候,詞向量是個隨機值,隨着訓練的進行不斷被更新。
投影層對其求和,所謂求和就是簡單的向量加法。
輸出層輸出最可能的w。由於語料庫中詞彙向量是固定的,所以上述問題可以看成是一個多分類問題,給定特徵,從多個之中挑一個。

  1. pw 從根節點w對應葉子節點的路徑
  2. lw 路徑中節點的個數
  3. pw1,pw2,pw3...pwn 路徑pw 中的各個節點
  4. dw1,dw2,...dwn{0,1} 詞w的編碼,dwj 表示路徑pw 第j個節點對應的編碼(根節點無編碼)
  5. θw1,θw2,...,θwlw1pw 路徑pw 中非葉節點對應的參數向量

1.4 負採樣

任何採樣算法應該保證頻次越高的樣本越容易被採樣出來。基本思路是對於長度爲1的線段,根據詞語的詞頻將其公平的分配給每個詞語:

len(w)=counter(w)uDcounter(u)

counter就是w的詞頻。
於是我們將該線段公平的分配了:

這裏寫圖片描述

接下來,我們只要生成0-1之間的隨機數,看看落在哪個區間,就能採樣到該區間對應的單詞了。

發佈了33 篇原創文章 · 獲贊 24 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章