回憶一下我們在15.1 節中的討論。skip-gram模型的主要思想是使用softmax操作來計算生成上下文詞的條件概率wo基于給定的中心詞wc在(15.1.4)中,其對應的對數損失由(15.1.7)的相反數給出 。
由于 softmax 操作的性質,因為上下文詞可能是字典中的任何人V, (15.1.7)的反面 包含與詞匯表的整個大小一樣多的項目總和。因此, (15.1.8)中 skip-gram 模型的梯度計算和(15.1.15)中連續詞袋模型的 梯度計算都包含求和。不幸的是,這種在大型詞典(通常有數十萬或數百萬個單詞)上求和的梯度的計算成本是巨大的!
為了降低上述計算復雜度,本節將介紹兩種近似訓練方法:負采樣和分層softmax。由于skip-gram模型與連續詞袋模型的相似性,我們將僅以skip-gram模型為例來描述這兩種近似訓練方法。
15.2.1。負采樣
負采樣修改了原來的目標函數。給定中心詞的上下文窗口wc,任何(上下文)詞的事實wo來自這個上下文窗口被認為是一個事件,其概率建模為
在哪里σ使用 sigmoid 激活函數的定義:
讓我們首先最大化文本序列中所有此類事件的聯合概率來訓練詞嵌入。具體來說,給定長度的文本序列T, 表示為w(t)時間步長的單詞t并讓上下文窗口大小為m, 考慮最大化聯合概率
然而,(15.2.3)只考慮那些涉及正例的事件。因此, 只有當所有詞向量都等于無窮大時,(15.2.3)中的聯合概率才最大化為 1。當然,這樣的結果是沒有意義的。為了使目標函數更有意義,負采樣添加了從預定義分布中采樣的負樣本。
表示為S上下文詞的事件wo來自中心詞的上下文窗口wc. 對于此次涉及的事件wo,來自預定義的分布P(w) 樣本K 不是來自這個上下文窗口的噪聲詞。表示為Nk干擾詞的事件wk (k=1,…,K) 不是來自上下文窗口 wc. 假設這些事件同時涉及正例和反例S,N1,…,NK是相互獨立的。負采樣將(15.2.3)中的聯合概率(僅涉及正例)重寫為
其中條件概率是通過事件來近似的 S,N1,…,NK:
評論
查看更多