輕鬆理解skip-gram模型

引言

在許多自然語言處理任務中,許多單詞表達是由他們的tf-idf分數決定的。即使這些分數告訴我們一個單詞在一個文本中的相對重要性,但是他們並沒有告訴我們單詞的語義。Word2vec是一類神經網絡模型——在給定無標籤的語料庫的情況下,為語料庫中的單詞產生一個能表達語義的向量。這些向量通常是有用的:

  • 通過詞向量來計算兩個單詞的語義相似性
  • 對某些監督型NLP任務如文本分類,語義分析構造特徵

接下來我將描述Word2vec其中一個模型,叫做skip-gram模型

skip-gram模型

輕鬆理解skip-gram模型

輕鬆理解skip-gram模型

前向傳播

接下來我們來看下skip-gram神經網絡模型,skip-gram的神經網絡模型是從前饋神經網絡模型改進而來,說白了就是在前饋神經網絡模型的基礎上,通過一些技巧使得模型更有效。我們先上圖,看一波skip-gram的神經網絡模型:

輕鬆理解skip-gram模型

輕鬆理解skip-gram模型

輕鬆理解skip-gram模型

說白了,這個值就是第C個輸出單詞的第j個結點的概率大小。通過BP(反向傳播)算法及隨機梯度下降來學習權重

前面我講解了skip-gram模型的輸入向量及輸出的概率表達,以及我們學習的目標。接下來我們詳細講解下學習權重的過程。第一步就是定義損失函數,這個損失函數就是輸出單詞組的條件概率,一般都是取對數,如下所示:

輕鬆理解skip-gram模型

從上面的更新規則,我們可以發現,每次更新都需要對整個詞彙表求和,因此對於很大的語料庫來說,這個計算複雜度是很高的。於是在實際應用中,Google的Mikolov等人提出了分層softmax及負採樣可以使得計算複雜度降低很多。

輕鬆理解skip-gram模型


分享到:


相關文章: