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

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

-------------------------------------------------算法

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:google

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

Skip-gram的模型架構:3d

Skip-gram是利用當前詞預測其上下文詞。給定一個訓練序列w_{1},w_{2} ,...,w_{T} ,模型的目標函數是最大化平均的log機率:orm

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

在skip-gram中,P(w_{t+j}|w_{t}) 利用softmax函數定義以下:

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

P_{n}(w)是噪聲分佈 ( noise distribution )。即訓練目標是使用Logistic regression區分出目標詞和噪音詞。具體的Pn(w)方面有些trick,google使用的是unigram的3/4方,即U(w)^{3/4}/Z ,好於unigram,uniform distribution。

 

另外,因爲天然語言中不少高頻詞出現頻率極高,但包含的信息量很是小(如'is' 'a' 'the')。爲了balance低頻詞和高頻詞,利用簡單的機率丟棄詞w_{i}

其中f(w_{i} )w_{i} 的詞頻,t的肯定比較trick,啓發式得到。實際中t大約在10^{-5} 附近。

 

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

2 Item2vec算法原理:

Item2vec中把用戶瀏覽的商品集合等價於word2vec中的word的序列,即句子(忽略了商品序列空間信息spatial information) 。出如今同一個集合的商品對視爲 positive。對於集合w_{1}, w_{2}, ...,w_{K}目標函數:

同word2vec,利用負採樣,將p(w_{j}|w_{j})定義爲:

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).

相關文章
相關標籤/搜索