1. 程式人生 > >DNN論文分享 - Item2vec: Neural Item Embedding for Collaborative Filtering

DNN論文分享 - Item2vec: Neural Item Embedding for Collaborative Filtering

其中 img 比較 類別 直接 表示 max函數 res 給定

前置點評: 這篇文章比較樸素,創新性不高,基本是參照了google的word2vec方法,應用到推薦場景的i2i相似度計算中,但實際效果看還有有提升的。主要做法是把item視為word,用戶的行為序列視為一個集合,item間的共現為正樣本,並按照item的頻率分布進行負樣本采樣,缺點是相似度的計算還只是利用到了item共現信息,1).忽略了user行為序列信息; 2).沒有建模用戶對不同item的喜歡程度高低。

-------------------------------------------------

0 背景:

推薦系統中,傳統的CF算法都是利用 item2item 關系計算商品間相似性。i2i數據在業界的推薦系統中起著非常重要的作用。傳統的i2i的主要計算方法分兩類,memory-based和model-based。

作者受nlp中運用embedding算法學習word的latent representation的啟發,特別是參考了google發布的的word2vec(Skip-gram with Negative Sampling,SGNS),利用item-based CF 學習item在低維 latent space的 embedding representation,優化i2i的計算。

-------------------------------------------------

1 回顧下google的word2vec:

自然語言處理中的neural embedding嘗試把 words and phrases 映射到一個低維語義和句法的向量空間中。

Skip-gram的模型架構:

技術分享圖片

Skip-gram是利用當前詞預測其上下文詞。給定一個訓練序列技術分享圖片,技術分享圖片,...,技術分享圖片,模型的目標函數是最大化平均的log概率:

技術分享圖片

目標函數中c中context的大小。c越大,訓練樣本也就越大,準確率也越高,同時訓練時間也會變長。

在skip-gram中,技術分享圖片 利用softmax函數定義如下:

技術分享圖片

W是整個語料庫的大小。上式的梯度的計算量正比如W,W通常非常大,直接計算上式是不現實的。為了解決這個問題,google提出了兩個方法,一個是hierarchical softmax,另一個方法是negative sample。negative sample的思想本身源自於對Noise Contrastive Estimation的一個簡化,具體的,把目標函數修正為:

技術分享圖片

技術分享圖片是噪聲分布 ( noise distribution )。即訓練目標是使用Logistic regression區分出目標詞和噪音詞。具體的Pn(w)方面有些trick,google使用的是unigram的3/4方,即技術分享圖片,好於unigram,uniform distribution。

另外,由於自然語言中很多高頻詞出現頻率極高,但包含的信息量非常小(如‘is‘ ‘a‘ ‘the‘)。為了balance低頻詞和高頻詞,利用簡單的概率丟棄詞技術分享圖片

技術分享圖片

其中技術分享圖片技術分享圖片的詞頻,t的確定比較trick,啟發式獲得。實際中t大約在技術分享圖片附近。

-------------------------------------------------

2 Item2vec算法原理:

Item2vec中把用戶瀏覽的商品集合等價於word2vec中的word的序列,即句子(忽略了商品序列空間信息spatial information) 。出現在同一個集合的商品對視為 positive。對於集合技術分享圖片目標函數:

技術分享圖片

同word2vec,利用負采樣,將技術分享圖片定義為:

技術分享圖片

subsample的方式也是同word2vec:

技術分享圖片

最終,利用SGD方法學習的目標函數max,得到每個商品的embedding representation,商品之間兩兩計算cosine相似度即為商品的相似度。

-------------------------------------------------

3 Item2vec效果:

對比的baseline方法是基於SVD方法的用戶embedding得到的相似度,SVD分解的維度和item2vec的向量維度都取40,詳細見paper。數據是應用在music領域的,作者利用web上音樂人的類別進行聚類,同一個顏色的節點表示相同類型的音樂人,結果對比如下:

技術分享圖片

圖a是item2vec的聚合效果,圖b是SVD分解的聚合效果,看起來item2vec的聚合效果更好些。


原文

參考文獻:

[1] Mikolov T, Sutskever I, Chen K, Corrado GS, Dean J. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems 2013 (pp. 3111-3119).

DNN論文分享 - Item2vec: Neural Item Embedding for Collaborative Filtering