【"基於向量空間中詞表示的有效估計"論文研讀】
1、論文儲備知識:語言模型的概念、語言模型的發展
1.1 語言模型
(1)概念:語言模型是計算一個句子是句子的概率的模型。
(2)語言模型構建
基於專家語法規則的語言模型(無法適應語言的變化)
統計語言模型(通過概率計算刻畫語言模型)
為了解決參數空間太大,樣本稀疏嚴重的問題,提出了馬爾科夫假設:下一個詞的出現依賴前面一個詞或幾個詞。
1.2 詞的表示方式:
(1)One-hot:表示簡單,詞越多,維數越高,無法表示詞-詞之間的關系。
(2)SVD:可在一定程度上得到詞-詞的相似度,但是分解效率低,可解釋性差。
(3)分布式表示(稠密表示):降維,表示詞-詞之間的關系
分布式表示的發展歷史:
2、論文核心部分研讀:
2.1word2vec的基本思想:
句子中相近的詞是有聯系的,用前面出現的詞來預測后面的詞。skip-gram使用中心詞預測周圍詞,cbow使用周圍詞預測中心詞。
2.2 skip-gram原理
wi為中間詞,經過one-hot編碼成1xV的行向量(V為所有詞的總數),再與V x D的中心詞向量矩陣相乘,得到1xD的向量,就是中心詞的詞向量,再與DxV的周圍詞向量矩陣相乘,得到一個1xV的向量,將此向量經過softmax激活函數,得到V個詞出現的概率值,然后,根據索引找到Wi-1的詞對應的概率值,經過梯度下降等方法進行訓練使概率其成為最大。(一般我們訓練的是W:中心詞向量矩陣)
2.3 cbow原理
Wi-2,Wi-1,Wi+2,Wi+1,是要預測的中心詞的四個周圍詞,將四個周圍詞的one-hot編碼的向量(1xV)與周圍詞向量矩陣W(VxD)做乘積,得到四個1xD的向量,分別是四個周圍詞的詞向量,將這四個詞向量求和或者求平均,得到一個1xD的向量,再和所有的中心詞向量矩陣W*(DxV)做乘積,得到1xV的向量,將此向量經過softmax函數,得到V個詞的概率,然后根據詞Wi的索引,找到對應詞的概率,進行梯度下降等方式令該詞概率成為該向量的最大值。
2.4 word2vec關鍵技術:層次softmax和負采樣
當單詞數很多,也就是V很大時,在上述過程中要進行很多次softmax計算,為了降低復雜度,論文采取層次softmax和負采樣技術。
層次softmax
核心思想就是將多次的softmax計算,轉換成多次sigmoid計算。
層次softmax的構建:
上圖中的p是求在skip-gram模型下,中心詞c出現的前提下,‘I’詞出現的概率,激活函數使用sigmoid,求得的值大於0.5,走向分支的右邊。層次softmax的效果不如負采樣好,所以不做過多介紹。
負采樣
核心思想:多分類變成二分類。一個中心詞與周圍詞在一起為正樣本,負樣本就是在選定了中心詞的前提下每次在詞表中隨機選取一個詞與中心詞在一起定為負樣本,一般每次對每個中心詞選3-10個負樣本。對每個詞輸出一個正樣本的概率和k個負樣本的概率。基本思想:增大正樣本的概率,減小負樣本的概率。
skip-gram+負采樣的實驗步驟
1、數據預處理
2、根據批次的大小、窗口尺寸,將訓練集中的中心詞及其周圍詞組成的詞對放進隊列組成正例詞表。
3、將訓練集詞頻做0.75次方后做詞頻歸一化處理。
4、構造一定大小詞的集合,根據第三步計算的詞頻添加相應單詞進集合。
5、從第四步構造的詞集中根據正例詞對數隨機取出設定數量的詞與中心詞組成負樣本詞對。
6、對中心詞與正樣本詞對集合和中詞與負樣本詞對集分別進行前向傳播,將正樣本集誤差和負樣本集誤差進行以下公式處理,最后用梯度下降進行誤差反向傳播。