【原創】關於skip-gram的個人理解
阿新 • • 發佈:2018-12-05
★skip-gram的關鍵術語與詳細解釋:
【語料】——
所有句子文件(當然會出現大量重複的單詞)
【詞典(可用V維的onehot編碼來表示)】——
語料中出現的所有單詞的集合(去除了重複詞)
【視窗大小(上下文詞語數量m)】——
即指定中心詞後我們關注的上下文數量定為該中心詞前m個詞和後m個詞(一共2m個上下文詞)。
【詞典中心詞向量矩陣(下圖d×V維的W矩陣)】——
通俗來說詞典中心詞向量矩陣是由詞典中的一個單詞的詞向量組合而成的(每一列就是詞典中的一個單詞的詞向量),而每一個詞的詞向量就是假設我們的詞典包含了d個維度的抽象資訊。
這d個維度儲存的抽象資訊:從模型的角度來說就是作為中心詞而言,它與上下文會出現詞之間的對應關係資訊,從語言學的角度來說這樣的對應關係也很大程度上反映了詞性、語義、句法特徵方面的資訊。
【詞典上下文詞向量矩陣(下圖的V×d維的W'矩陣)】——
類似詞典中心詞向量矩陣,但這裡的詞向量中d個維度儲存的抽象資訊,是作為上下文的詞而言,它與中心詞之間的對應關係資訊。
【最後Softmax歸一化後輸出的概率向量(下圖p(x|c)】——
就是詞典中每個詞成為當前指定中心詞的上下文的概率。我們要讓這個概率向量,逼近真實語料中基於指定中心詞基礎上這些上下文詞語出現的條件概率分佈 。
Skip-gram每一輪指定一箇中心詞的2m個上下文詞語來訓練該中心詞詞向量和詞典上下文詞向量,下一輪則指定語料中下一個中心詞,檢視其2m個上下文詞語來訓練。
如果下一輪出現了之前出現過的中心詞,之前那一輪可能著重訓練的是中心詞詞向量和詞典上下文詞向量的幾個維度值(關係資訊),但由於這一輪是另外一個語境(上下文的2m個詞有差異),所以這一輪著重訓練的可能就是詞向量中的另外幾個維度值(關係資訊),與之前的不一樣。
★skip-gram的核心:
通過檢視所有語料的詞作為中心詞時,其(中心詞)與上下文的2m個詞語的所有共現情況,這樣就得到我們要逼近的中心詞與上下文對應關係的條件概率分佈 (這個概率分佈是忽視掉了上下文詞語間的順序的),我們通過模型去訓練出詞典中心詞向量矩陣和詞典上下文詞向量矩陣(這兩個矩陣就是儲存了語料中中心詞與其上下文的對應關係資訊)。