基於物品的協同過濾算法的核心思想就是:給用戶推薦那些和他們之前喜歡的物品相似的物品。主要可分為兩步:
(1) 計算物品之間的相似度,建立相似度矩陣。
(2) 根據物品的相似度和用戶的歷史行為給用戶生成推薦列表。
相似度的定義有多種方式,下面簡要介紹其中幾種:
其中,分母 是喜歡物品 的用戶數,而分子 是同時喜歡物品 和物品 的用戶數。因此,上述公式可以理解為喜歡物品 的用戶中有多少比例的用戶也喜歡物品 。
上述公式存在壹個問題。如果物品 很熱門, 就會很大,接近1。因此,該公式會造成任何物品都會和熱門的物品有很大的相似度,為了避免推薦出熱門的物品,可以用下面的公式:
這個公式懲罰了物品 的權重,因此減輕了熱門物品會和很多物品相似的可能性。
另外為減小活躍用戶對結果的影響,考慮IUF(nverse User Frequence) ,即用戶活躍度對數的倒數的參數,認為活躍用戶對物品相似度的貢獻應該小於不活躍的用戶。
為便於計算,還需要進壹步將相似度矩陣歸壹化 。
其中 表示用戶 對物品 的評分。 在區間 內,越接近1表示相似度越高。
表示空間中的兩個點,則其歐幾裏得距離為:
當 時,即為平面上兩個點的距離,當表示相似度時,可采用下式轉換:
距離越小,相似度越大。
壹般表示兩個定距變量間聯系的緊密程度,取值範圍為[-1,1]
其中 是 和 的樣品標準差
將用戶行為數據按照均勻分布隨機劃分為M份,挑選壹份作為測試集,將剩下的M-1份作為訓練集。為防止評測指標不是過擬合的結果,***進行M次實驗,每次都使用不同的測試集。然後將M次實驗測出的評測指標的平均值作為最終的評測指標。
對用戶u推薦N個物品(記為 ),令用戶u在測試集上喜歡的物品集合為 ,召回率描述有多少比例的用戶-物品評分記錄包含在最終的推薦列表中。
準確率描述最終的推薦列表中有多少比例是發生過的用戶-物品評分記錄。
覆蓋率反映了推薦算法發掘長尾的能力,覆蓋率越高,說明推薦算法越能夠將長尾中的物品推薦給用戶。分子部分表示實驗中所有被推薦給用戶的物品數目(集合去重),分母表示數據集中所有物品的數目。
采用GroupLens提供的MovieLens數據集, /m0_37917271/article/details/82656158
[2]. 推薦系統與深度學習. 黃昕等. 清華大學出版社. 2019.
[3]. 推薦系統算法實踐. 黃美靈. 電子工業出版社. 2019.
[4]. 推薦系統算法. 項亮. 人民郵電出版社. 2012.
[5]. 美團機器學習實踐. 美團算法團隊. 人民郵電出版社. 2018.