推薦演算法之基於使用者的協同過濾

2021-10-01 19:19:31 字數 1762 閱讀 7988

基於使用者的的協同過濾演算法是推薦統統最古老的演算法,簡稱usercf。該演算法的誕生一定程度上標誌著推薦系統的誕生。本文將對usercf演算法原理進行講解,並且基於movielens資料集給出實現**供大家交流學習。

找到和目標使用者興趣相似的使用者集合

找到這個集合中使用者喜歡的且目標使用者沒有聽說過的物品推薦給目標使用者。

步驟1的關鍵為計算兩個使用者之間的興趣相似度。那麼如何度量兩個使用者的興趣相似度呢,該演算法主要利用使用者行為的相似度計算興趣的相似度。給定使用者\(u\)和使用者\(v\),令\(n(u)\)表示使用者\(u\)曾經有過正反饋的物品集合,\(n(v)\)表示使用者\(v\)曾經有過正反饋的物品集合。那麼,可通過如下的\(jaccard\)公式簡單計算興趣相似度:

\[ w_ = \frac \]

或者通過余弦相似度:

\[ w_ = \frac} \]

下面通過表1.1的使用者行為記錄為例,舉例說明usercf計算使用者興趣相似度的例子。在該例中,使用者a對物品有過行為,使用者b對物品有過行為,利用余弦相似度公式計算使用者a和使用者b的興趣相似度為:

\[ w_ = \frac \bigcap |}|| |}}=\frac} \]

表 1.1

user

item

aa,b,d

ba,c

cb,c

dc,d,e

由於對兩兩使用者都計算余弦相似度,時間複雜度太高。可以在\(n(u)\bigcap n(v)=0\)時不計算余弦相似度。為此,可以首先建立物品到使用者的倒排表,對於每個物品都儲存對該物品產生過行為的使用者列表。令稀疏矩陣\(c[u][v]=|n(u) \bigcap n(v)|\)。假設使用者u和使用者v同時屬於倒排表中k個物品對應的使用者列表,就有\(c[u][v]=k\)。從而,可以掃瞄倒排表每個物品對應的使用者列表,將使用者列表中的兩兩使用者對應的\(c[u][v]\)加1,最終得到所有使用者之間不為零\(c[u][v]\)。

得到使用者之間的興趣相似度後,usercf演算法會給使用者推薦和他興趣最相似的k個使用者喜歡的物品。如下公式度量了usercf演算法中使用者u對物品i的感興趣程度:

\[ p(u, i)=\sum_}r_} \]

其中,\(s(u,k)\)包含和使用者u興趣最接近的k個使用者,n(i)是對物品i有過行為的使用者集合,\(w_\)是使用者u和使用者v的興趣相似度,\(r_\)代表使用者v對物品i的興趣,對於單一行為的隱反饋資料,所有的\(r_=1\)。

使用\(jaccard\)公式(或者余弦相似度)計算使用者興趣度,會帶來一定的缺陷。考慮這種情況,以圖書為例,如果兩個使用者都曾買過《新華字典》,這絲毫不能說明他們興趣相似,因為絕大多數中國人小時候都買過。但是如果兩個使用者都買過《資料探勘導論》,那可以認為他們的興趣比較相似,因為只有研究資料探勘的人才會買這本書。換句話說,兩個使用者對冷門物品採取過同樣的行為更能說明他們興趣的相似度。因此,john s. breese在**中提出了如下公式,根據使用者行為計算使用者的興趣相似度:

\[ w_ = \frac}}} } \]

可以看到,該公式通過\(\frac\)懲罰使用者u和使用者v共同興趣列表中熱門物品對他們相似度的影響。

作者基於movielens資料集(顯性反饋資料集)實現了該演算法,位址詳見:usercf演算法實現

usercf適用於使用者較少的場景,時效性較強且使用者個性興趣不太明顯的領域。當使用者有新行為時,它不一定能夠實時更新使用者的推薦結果。並且無法給出令使用者信服的推薦解釋。

協同過濾推薦演算法 推薦演算法 基於協同過濾CF

前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...

基於協同過濾演算法的推薦

基於協同過濾演算法的推薦 本實驗選用資料為真實電商脫敏資料,僅用於學習,請勿商用 資料探勘的乙個經典案例就是尿布與啤酒的例子。尿布與啤酒看似毫不相關的兩種產品,但是當超市將兩種產品放到相鄰貨架銷售的時候,會大大提高兩者銷量。很多時候看似不相關的兩種產品,卻會存在這某種神秘的隱含關係,獲取這種關係將會...

基於協同過濾的推薦演算法

推薦系統 根據使用者的歷史行為,挖掘出使用者的喜好,為使用者推薦與其喜好相符的商品或資訊。推薦系統的任務是將資訊和使用者連線,幫助使用者找到感興趣的資訊,讓有價值的資訊能觸達潛在的使用者。推薦問題描述 核心問題是為使用者推薦與其興趣相似度比較高的商品。用一函式f x 計算候選商品與使用者之間的相似度...