協同過濾-Collaborative filtering

一、協同過濾

協同過濾一般是在海量用戶中發掘出一部分與目標用戶特徵比較類似的,在協同過濾中,這些用戶與目標用戶成爲鄰居,然後依據他們喜歡的其他東西組織成一個排序的目錄推薦給目標用戶

協同過濾要考慮:1.如何確定一個用戶和目標用戶相似;2.如何將鄰居的喜好組織成一個排序目錄

收集用戶偏好:可通過用戶行爲判斷偏好,如評分(傳統星級評分制)、投票、轉發、評論(用戶情感)、點擊、購買;同時也可對每個行爲賦值,經過數據處理得到用戶偏好

計算相似度:得到用戶偏好後,可計算相似用戶或物品,並進行推薦

基於用戶的CF:通過用戶對不同內容(物品)的行爲,評測用戶之間的相似度,找到“鄰居”做出推薦,即給相似用戶推薦其他用戶喜歡的內容;依賴於當前用戶相近用戶羣體的社會化行爲,適用於用戶量較少的場合(如果用戶很多,計算用戶的相似性矩陣代價較大),時效性強-用戶個性化興趣不太顯著的場合,新加入的物品能很快進入推薦列表(一旦有用戶對物品產生行爲,就可將新物品推薦給和該用戶興趣相似的其他用戶),可解釋性弱,用戶新的行爲不一定導致推薦結果變化

基於物品的CF:基於用戶對物品的偏好找到相似物品,然後根據用戶歷史偏好,推薦相似物品給用戶。將所有用戶對某個物品的偏好作爲一個向量來計算物品間的相似度,並根據用戶的歷史偏好預測去預測當前用戶還沒有表示偏好的物品,最終計算得到一個排序的物品列表作爲推薦;側重於用戶自身行爲,適用於物品數較少(物品數明顯少於用戶數)的場合,長尾物品豐富-用戶個性化需求強烈的場合,新加入用戶能很快得到推薦(只要對一個物品產生行爲),可解釋性強,用戶新的行爲一定能導致推薦結果變化,但沒有辦法在不離線更新物品相似度表的情況下將新物品推薦給客戶

二、Mahout協同過濾算法

Mahout是Hadoop家族用於機器學習的分佈式計算框架,主要包括三類算法,即推薦算法、分類算法和聚類算法。Mahout推薦算法定義一套標準化的模型構建過程和調用過程,以基於用戶的協同過濾算法爲例;基於用戶的協同過濾算法是被模塊化的,通過4個模塊進行統一的方法調用。首先創建數據模型,其次定義用戶相似度算法(歐式距離相似度算法),接下來定義用戶近鄰算法(基於物品的協同過濾無此步驟),最後調用推薦算法完成計算過程

相似度算法:歐氏距離相似度、皮爾遜相似度、餘弦相似度、spearman秩相關係數相似度、曼哈頓距離相似度、對數似然相似度

用戶近鄰算法:1.以個數計算,選出最近的前幾個。2.以百分比計算,選出最近的前百分之幾的數量

推薦算法:基於用戶的推薦算法、基於物品的推薦算法、slopeone推薦算法、itemKNN推薦算法、SVD推薦算法、treecluster推薦算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章