推薦算法:基於特征的推薦算法
推薦算法准確度度量公式:
其中,R(u)表示對用戶推薦的N個物品,T(u)表示用戶u在測試集上喜歡的物品集合。
集合相似度度量公式(N維向量的距離度量公式):
Jaccard公式:
其中,N(u)表示用戶u有過正反饋的物品集合。
余弦相似度公式:
UserCF公式:
其中,S(u,k)表示和用戶u興趣最接近的K個用戶集合;N(i)表示對物品i有過正反饋的用戶集合;w(u,v)表示用戶u和用戶v的興趣相似度;r(v,i)表示用戶v對物品i的興趣。默認取r(v,i)=1或0。
視角:用戶即是特征。完全的個性化,每個用戶都是唯一的,每個用戶表示一維的特征。用戶數量即是特征空間的維度,用戶特征表示成TU(u)={0,0,0, ... , 1, ..., },t(u, u)=1, 其余為0。 對於物品的特征向量TI(j)={0, 1, 1, 1, 0, ... , ...}, 凡購買物品i的用戶維度特征均為1。 進一步,物品的特征空間可用用戶購買的次數表示。相似度w(u,v)看成相應維度特征的加權值。
ItemCF公式:
其中,S(i,k)表示和物品i最相似的K個物品集合;N(u)表示用戶喜歡的物品集合;w(i,j)表示物品i和物品j的相似度;r(u,i)表示用戶u對i物品的興趣。默認取r(u,i)=1或0。
視角:物品即是特征。每個物品都是唯一的,每個物品表示一維的特征。物品數量即是特征空間的維度,物品特征表示成TU(u)={0,0,0, ... , 1, ..., },t(u, u)=1, 其余為0。 對於用戶的特征空間TI(j)={0, 1, 1, 1, 0, ... , ...}, 凡購買物品i的維度特征均為1。 進一步,物品的特征空間可用用戶購買的次數表示。相似度w(i,j)看成相應維度特征的加權值。
LFM公式:
其中,F表示隱類數量;p(u,k)表示用戶u對第k個隱類的興趣度;q(i,k)表示第k個隱類和物品i的相似度。Alpha表示學習速率;lamda表示正則化參數。
視角:LFM的公式就是典型的特征向量空間和特征加權矩陣的泛化表示形式。
TagCF公式:
n(u,b)表示用戶u打過標簽b的次數;n(b,j)表示物品i被打過標簽的次數。
視角:標簽即是特征。
關系鏈推薦公式:
其中,F(u)表示用戶u的好友集合;w(u,v)可表示用戶u和v的熟悉程度(共同好友數),也可表示用戶u和v興趣的相似度(UserCF定義),也可是二者的綜合度量;r(v,i)表示用戶v對物品i的興趣。默認取r(v,i)=1或0。
視角:好友是特征,或者好友興趣是特征。
信息流推薦公式:
其中,信息流i的邊e表示其他用戶對信息流i產生行為;E(e)表示和信息流i邊的集合;v(e)表示用戶v和當前用戶u的相似度(熟悉度);w(e)表示邊類型的權重;d(e)表示邊e的時間衰減參數。
推薦算法小結
所有的推薦算法都可看成是基於特征向量空間和特征加權矩陣的推薦算法。
當特征向量的維度很大時,基於特征向量空間和特征加權矩陣的推薦算法計算復雜度將很大。常見的做法是采用降維技術,比如使用minhash(simhash)。另一種做法是先聚類,將N維的特征空間,轉變成M維的特征空間(M<N)。比如在ItemCF算法中,可對物品聚類,然后采用M類的物品作為特征。當然降維后需要計算權值矩陣。
另一種極致做法:拋棄權值矩陣,在分類的基礎上,直接根據類別推薦。即基於特征向量的匹配。
基於特征匹配的算法框架(用戶或物品均可):
1) 特征選取
a) 已知用戶特征:直接根據特征分類
b) 未知用戶特征:聚類,如LFM
2) 利用購買用戶特征,計算物品的特征。比如簡單選取TopN個用戶特征作為物品的特征;
3) 根據用戶特征和物品特征實現推薦,如果特征空間有限(類別不多),可采用類別推薦;如果特征空間巨大,可通過計算特征距離實現推薦。
3種關聯用戶和物品的推薦系統
基於特征的推薦算法
說明:當用戶喜歡多個特征,物品具有多個特征時,即是典型的特征向量空間和特征加權矩陣的推薦算法;當用戶只喜歡1個特征,物品只具有單個特征時,即基於特征分類的推薦算法。
在實際應用中,常常采用多個推薦算法,分別實現不同的推薦引擎,最后根據不同的推薦引擎的結果做融合,即算法融合,常見的就是加權融合。
推薦系統架構
實際推薦系統通常采用多種推薦算法,並根據用戶的實時行為反饋調整用戶的特征向量(特征的加權系數),進而融合各個推薦算法的推薦結果,在此基礎上過濾不要的推薦項,最后結合用戶使用場景調整推薦結果排名,給出最終推薦結果。
基於不同特征的推薦算法經常采用定期計算、定期更新特征物品推薦表,比如基於Item的相似度特征,可保存每個item最相關的K個Item;基於用戶,保留每個用戶最近的N個item;基於基於tag特征,保存每個tag最多次數的M個item;基於用戶年齡特征,保存每個年齡段最熱門的N個Item;基於用戶like,保存各個用戶最近喜歡的N個item,或最喜歡的M個類別……
用戶的實時行為反饋和用戶當前場景都將實時影響最終的推薦結果,用戶的實時反饋可直接影響推薦結果融合,而用戶的場景將決定推薦結果的排序和展示。同時用戶的反饋也將影響離線計算的物品推薦數據。
參考文獻:
推薦系統實踐 -- 項亮 2012