在訓練word2vec的時候贡未,會介紹到兩種模型優(yōu)化方式:
- Hierarchical Softmax
- Negative Sampling
由于softmax在實際訓練過程中需要構(gòu)建一棵樹种樱,在比較少出現(xiàn)的類別對應的節(jié)點比較深蒙袍,實際工程也比較麻煩,所以目前很多模型優(yōu)化方法都采用負采樣的方式嫩挤,今天我們就簡單介紹這種方法害幅。
以word2vec為例子,已知中心詞w為我們預測的詞語岂昭,對應上下文的信息context(w)則為2c長度的詞語矫限,我們希望通過context(w)來預測w。
我們隨機采樣n個和w不相等的負樣本佩抹,這些負樣本和w共同組成一組訓練樣本,對于正例取董,我們希望最大化概率:
對于負例棍苹,我們希望最小化概率
統(tǒng)一用最大化形式表示得到
我們假設正例用i=0表示,則上述公式可以表示為:
然后對\theta求導
對x求導
然然后采用梯度下降法可以進行的學習茵汰。
在word2vec中枢里,這里學習到的w表示的是context(w)的平均向量之和,如果繼續(xù)采用鏈式法則蹂午,可以得到每個詞向量的解栏豺,這里的\theta表示每個詞類別的邏輯回歸分類參數(shù)。
負采樣的訓練方式在訓練word2vec的時候非常高效豆胸,相當于原來一個大的softmax分類改成多個邏輯回歸奥洼,提高訓練的效率。
負采樣這個訓練方式一般在改進的word2vec方法中都有用到晚胡,另外在softmax面臨多個分類的時候也可以用到(例如大家熟悉的fasttext)
我會在后續(xù)經(jīng)典論文解讀中介紹用到negative sampling的相關(guān)論文