推薦系統實戰

2021-09-06 06:16:43 字數 2613 閱讀 8296

其中,r(u)表示對使用者推薦的n個物品,t(u)表示使用者u在測試集上喜歡的物品集合。

jaccard公式:

其中,n(u)表示使用者u有過正反饋的物品集合。

余弦相似度公式:

其中,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)=,t(u, u)=1, 其餘為0。 對於物品的特徵向量ti(j)=, 凡購買物品i的使用者維度特徵均為1。 進一步,物品的特徵空間可用使用者購買的次數表示。相似度w(u,v)看成相應維度特徵的加權值。

其中,s(i,k)表示和物品i最相似的k個物品集合;n(u)表示使用者喜歡的物品集合;w(i,j)表示物品i和物品j的相似度;r(u,i)表示使用者u對i物品的興趣。預設取r(u,i)=1或0。

視角:物品即是特徵。每個物品都是唯一的,每個物品表示一維的特徵。物品數量即是特徵空間的維度,物品特徵表示成tu(u)=,t(u, u)=1, 其餘為0。 對於使用者的特徵空間ti(j)=, 凡購買物品i的維度特徵均為1。 進一步,物品的特徵空間可用使用者購買的次數表示。相似度w(i,j)看成相應維度特徵的加權值。

其中,f表示隱類數量;p(u,k)表示使用者u對第k個隱類的興趣度;q(i,k)表示第k個隱類和物品i的相似度。alpha表示學習速率;lamda表示正則化引數。

視角:lfm的公式就是典型的特徵向量空間和特徵加權矩陣的泛化表示形式。

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另一種極致做法:拋棄權值矩陣,在分類的基礎上,直接根據類別推薦。即基於特徵向量的匹配。

基於特徵匹配的演算法框架(使用者或物品均可):

1) 特徵選取

a) 已知使用者特徵:直接根據特徵分類

b) 未知使用者特徵:聚類,如lfm

2) 利用購買使用者特徵,計算物品的特徵。比如簡單選取topn個使用者特徵作為物品的特徵;

3) 根據使用者特徵和物品特徵實現推薦,如果特徵空間有限(類別不多),可採用類別推薦;如果特徵空間巨大,可通過計算特徵距離實現推薦。

3種關聯使用者和物品的推薦系統

基於特徵的推薦演算法

在實際應用中,常常採用多個推薦演算法,分別實現不同的推薦引擎,最後根據不同的推薦引擎的結果做融合,即演算法融合,常見的就是加權融合。

實際推薦系統通常採用多種推薦演算法,並根據使用者的實時行為反饋調整使用者的特徵向量(特徵的加權係數),進而融合各個推薦演算法的推薦結果,在此基礎上過濾不要的推薦項,最後結合使用者使用場景調整推薦結果排名,給出最終推薦結果。

基於不同特徵的推薦演算法經常採用定期計算、定期更新特徵物品推薦表,比如基於item的相似度特徵,可儲存每個item最相關的k個item;基於使用者,保留每個使用者最近的n個item;基於基於tag特徵,儲存每個tag最多次數的m個item;基於使用者年齡特徵,儲存每個年齡段最熱門的n個item;基於使用者like,儲存各個使用者最近喜歡的n個item,或最喜歡的m個類別……

使用者的實時行為反饋和使用者當前場景都將實時影響最終的推薦結果,使用者的實時反饋可直接影響推薦結果融合,而使用者的場景將決定推薦結果的排序和展示。同時使用者的反饋也將影響離線計算的物品推薦資料。

推薦系統實踐  -- 項亮 2012

hulu』s recommendation system

推薦系統實戰

推薦系統實戰 recommender systems 將介紹推薦系統的基本原理和發展,並 一些常用的基本技術來構建具有不同可用資料來源的推薦系統及其實現。具體地說,將學習如何 使用者對乙個潛在專案的評價,如何生成乙個專案的推薦列表,以及如何從豐富的功能中 點選率。這些任務在實際應用程式中很常見。將獲...

推薦系統 實戰總結

這週看了推薦系統實戰這本書,其中基本上介紹的比較全面,但是每一部分並沒有十分深入,深入的精華全部都在下方的備註當中,備註中有很多的 可以進行進一步的學習。1 根據使用者的歷史行為,表達過反饋的item進行item的 傳統的itemcf 2 根據使用者的歷史行為,找到相似使用者,進行 usercf 3...

ALS推薦系統實戰

拿到某超市的銷售資料,將資料整理後得到一年三千萬條交易記錄,想試試用spark中的推薦系統做一下 先把資料匯入到hdfs中,資料需要使用者id,商品id,和購買次數,這裡我拿購買次數當作電影推薦系統中的電影評分 hdfs中的資料用 分割開。如下 461365 22535 1.0 461365 505...