最近正在讀項亮博士的《推薦系統實踐》人民郵電出版社,這本書應當是目前國內為數不多的介紹推薦演算法的了。目前正在學習基於使用者的協同過濾演算法(usercf :user-based collaborative filtering)。
該演算法是推薦系統中最古老的演算法,標誌著推薦系統的誕生,該演算法在2023年提出用於郵件過濾系統,2023年被grouplens用於新聞過濾。
演算法的主要思想是如果乙個使用者a需要乙個個性化推薦列表,我們可以找到和使用者a有著相似興趣的其他使用者,給a推薦其他使用者喜歡的且a沒聽說過的物品集合。
基於使用者的協同過濾演算法主要包括包括兩個步驟:
1. 找到和目標使用者興趣相似的使用者集合
2. 找到集合中使用者喜歡的且目標使用者沒有聽說過的物品集合
usercf的關鍵在於步驟 1如何利用使用者行為計算使用者之間的相似性,最簡單的計算相似性有jaccard公式和余弦相似度公式。
其中n(a) n(b)分別表示使用者a,b有過正反饋的物品集合。
例如下圖所示:
利用jaccard公式計算 w(ab) = 1/4
利用余弦公式計算 w(ab) = 1/sqrt(6)
利用上述公式得到使用者興趣相似度 w 之後, usercf演算法會給使用者推薦和他興趣最相似的 k 個使用者喜歡的物品。
其中 r(vi)表示使用者 v 對物品 i 的興趣, 通常是 有興趣r(vi)=0, 反之 r(vi)=0. p(u,i) 則是終端使用者 u 對物品 i 的感興趣程度,就是所謂的使用者 u 對物品 i 的打分。
協同過濾演算法 基於使用者
背景 使用基於使用者的協同過濾演算法進行 讀取檔案,處理每一行資料,把使用者id和 id轉化為long型別 因為協同過濾模型這兩列為long類 並轉化為datamodel 模型輸入資料 轉化出使用者評分矩陣 沒有的填充0 如下表所示 部分 使用者id id110 100101 102103 1041...
協同過濾 基於使用者的協同過濾itemCF
基於使用者的協同過濾演算法也被稱為最近鄰協同過濾或knn k nearest neighbor,k最近鄰演算法 其核心思想就是,首先根據相似度計算出目標使用者的鄰居集合,然後用鄰居使用者評分的加權組合來為目標使用者作推薦。通常這些演算法都可以總結成三步 首先,使用使用者已有的評分來計算使用者之間的相...
基於使用者的協同過濾演算法
在乙個線上的個性化推薦系統中,當乙個使用者需要個性化推薦時,找到與使用者有相同的興趣愛好的使用者來進行推薦物品是乙個不錯的選擇。1 找到和目標使用者興趣相似的使用者集合。2 找到此相似集合中使用者沒有購買過,但是可能喜歡的商品進行推薦。步驟 1 對於相似使用者的查詢,就需要用乙個方法去衡量這個相似度...