前置點評: 這篇文章比較樸素,創新性不高,基本是參照了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是利用當前詞預測其上下文詞。給定一個訓練序列,,...,,模型的目標函數是最大化平均的log機率:orm
目標函數中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的聚合效果更好些。
原文https://arxiv.org/pdf/1603.04259v2.pdf
參考文獻:
[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).