本文主要介紹基于項目的協同過濾推薦算法的推薦原理、推薦過程、代碼實作。
一、基于項目的協同過濾推薦算法推薦原理
基于項目的協同過濾推薦算法也是推薦算法中最基礎、最簡單、很重要的算法,主要是根據使用者對項目的某一種操作行為,構成項目-使用者操作行為矩陣,根據操作行為矩陣計算項目之間的相似度,最終為目标使用者推薦目标使用者有操作行為的預測評分高的項目,作為目标使用者感興趣的項目。
二、基于項目的協同過濾推薦算法推薦過程
基于項目的協同過濾推薦算法推薦過程可分為三個步驟:建構項目-使用者操作行為矩陣、計算項目之間似度、擷取推薦結果。
1、建構項目-使用者操作行為矩陣
我們以使用者對項目的評分資料為例,M個項目和N個使用者最大有M*N條項目的評分資料,記為矩陣MN,在計算機語言中可以通過一個二維數組來表達array[M][N],項目用數組下标0-M表示,使用者用數組下标0-N表示,矩陣MN圖形如下所示(0表示使用者對項目沒有評分):
評分 | 1 | 2 | 3 | 4 | 5 | … | N | |
---|---|---|---|---|---|---|---|---|
1 | 5 | 2 | 3 | … | 5 | |||
1 | 5 | 2 | 4 | … | ||||
2 | 2 | 5 | 3 | 4 | 2 | 1 | … | 4 |
3 | 4 | 4 | 1 | … | 2 | |||
… | … | … | … | … | … | … | … | … |
M | 3 | 4 | 2 | 3 | 2 | … | 1 |
項目-使用者評分矩陣可适用于項目-使用者浏覽記錄矩陣、項目-使用者浏覽時長矩陣、項目-使用者播放次數矩陣、項目-使用者播放時長矩陣、項目-使用者收藏記錄矩陣(矩陣中的資料為0沒有收藏,1已收藏)等項目-使用者操作行為矩陣。
2、計算項目之間相似度
根據項目-使用者評分矩陣計算項目之間的相似度有很多種算法,例如餘弦算法、修正餘弦算法、person皮爾森算法、歐幾裡得距離公式等算法,這些算法公式很固定,比較簡單不再詳述,可在百度百科中學習,其中根據項目-使用者收藏記錄矩陣計算項目之間的相似度需要用到谷本系數算法,該算法主要計算項目之間是否有相同的操作行為。
3、擷取推薦結果
為目标使用者推薦的項目是目标使用者沒有評分同時預測評分高的項目,推薦的項目有預測評分,推薦項目的預測評分等于目标使用者對其他項目的評分*其他項目與推薦項目的相似度,然後乘積求和,最後乘積之和除以其他項目與推薦項目的相似度之和的值就是推薦項目的預測評分,推薦項目的預測評分越高,目标使用者對推薦的項目越感興趣。
三、代碼實作
本文的實作代碼以movielens電影評分資料為例,java語言開發。
下載下傳位址:https://download.csdn.net/download/u011291472/11971298
該程式僅供學習和測試使用。
作者專業長期研究各種協同過濾推薦算法,歡迎留言、私信互相交流學習,後續會不斷更新不同的協同過濾推薦算法,歡迎關注。