基於項目的協同過濾算法的核心思想是將那些與用戶之前喜歡的項目相似的項目推薦給用戶。主要可以分為兩步:
(1)計算項目間的相似度,建立相似度矩陣。
(2)根據項目的相似度和用戶的歷史行為為用戶生成推薦列表。
定義相似度的方法有很多,下面簡單介紹幾種:
其中,分母是喜歡物品的用戶數,分子是同時喜歡物品和物品的用戶數。所以上面的公式可以理解為喜歡物品的用戶百分比。
上面的公式有問題。如果物品很受歡迎,那就很大,接近1。所以這個公式會導致任何壹個物品都和熱門物品有很大的相似度。為了避免推薦熱門商品,可以使用以下公式:
這個公式懲罰了物品的權重,從而降低了熱門物品會和很多物品相似的可能性。
此外,為了減少活躍用戶對結果的影響,考慮了用戶活動對數的倒數參數IUF(nverse User frequency ),認為活躍用戶對項目相似度的貢獻應該小於非活躍用戶。
為了便於計算,需要進壹步歸壹化相似矩陣。
它表示用戶對該項目的評級。在區間內,越接近1,相似度越高。
表示空間中的兩點,其歐幾裏德距離為:
當是平面上兩點之間的距離時,在表示相似性時,可以采用下列換算:
距離越小,相似度越大。
壹般表示兩個定距變量之間聯系的緊密程度,取值範圍為[-1,1]。
其中是和的樣本標準差。
將用戶行為數據按照均勻分布隨機分成M塊,選取壹塊作為測試集,剩下的M-1塊作為訓練集。為了防止評價指標是過擬合的結果,* * *進行了m次實驗,每次使用不同的測試集。然後取M次實驗測得的評價指標的平均值作為最終的評價指標。
向用戶U推薦n個項目(記為),使得用戶U在測試集上喜歡的項目集合為,召回率描述了最終推薦列表中包含用戶項目評分記錄的比例。
準確性描述了最終推薦列表中用戶項目評分記錄所占的百分比。
覆蓋率反映了推薦算法探索長尾的能力。覆蓋率越高,推薦算法就越能把長尾中的商品推薦給用戶。分子部分代表實驗中推薦給用戶的所有項目的個數(集合被剔除),分母代表數據集中所有項目的個數。
采用GroupLens提供的MovieLens數據集,/m0 _ 37917271/article/details/8265158。
[2].推薦系統和深度學習。黃鑫等編清華大學出版社. 2019。
[3].推薦系統算法練習。黃美玲。電子工業出版社. 2019。
[4].推薦系統算法。項梁。人民郵電出版社. 2012。
[5].美團機器學習實踐。美團算法團隊。人民郵電出版社. 2018。