李順勇, 張鈺嘉, 張海玉
(1.山西大學數(shù)學科學學院,太原 030006; 2.山西大學新聞學院,太原 030006)
協(xié)同過濾(Collaborative Filtering)是一種有效的推薦技術(shù),該技術(shù)通過找出與被推薦用戶喜好相近的一組用戶,然后把該組用戶喜好的項目推薦給被推薦用戶. 協(xié)同過濾技術(shù)由于其推薦資源廣、算法較為簡單、易于實現(xiàn)等優(yōu)勢,在電子商務(wù)、客戶研究、廣告投遞等方面有著較為廣泛的應用[1-2].
基于上述分析,本文提出了一種基于NKL 和K-means 聚類的協(xié)同過濾推薦算法(NKL-KM),該算法分為三個步驟:首先,基于NKL度量法計算item之間的相似性;其次,根據(jù)K-means算法將item分成k個類;最后,得到Top-n列表.
③KLSim(i,j)沒有考慮到具體評分值對計算相似性度量時的影響,評1分和5分用戶所表達的感情是截然不同的. 因此,本文在式(1)的基礎(chǔ)上,引入?yún)?shù)λ、α、β 得到式(2),計算式為
式(2)有以下屬性:
為提高推薦算法精度,本文將K-means算法與CF算法相結(jié)合,基于1.1提出的NKL相似性度量法,提出了一種基于NKL和K-means聚類的協(xié)同過濾推薦算法.
定義1[15]數(shù)據(jù)的分類標準為:
K-means算法具體過程見算法1.
算法1[15]K-means算法
Step4 重復Step2~Step3至簇中心不再變化為止.
得到C={ }C1,C2,C3,…,Ck后,就可以對目標項目進行項目評分預測,預測具體步驟如1.3所示.
綜上,一種基于NKL和K-means聚類的協(xié)同過濾推薦算法具體步驟如算法2所示.
算法2 NKL-KM算法
輸出:Top-n推薦列表.
Step4 重復Step2~Step3至簇中心不再變化為止;
Step6 根據(jù)式(5)計算用戶u對i的評分,挑選出預測分數(shù)最高的n個項目組成Top-n推薦列表.
本文選取MovieLens[16]和Netflix數(shù)據(jù)集[17]中的部分數(shù)據(jù),構(gòu)成了NewML以及NewNet,數(shù)據(jù)集的具體信息如表1所示. 從表1可以看出,NewML數(shù)據(jù)集的稀疏度較低,處理難度較大. 在本文中,隨機選取NewML以及NewNet中80%的數(shù)據(jù)作為訓練集,剩余的作為測試集.
表1 數(shù)據(jù)集信息Tab.1 Data set information
在推薦系統(tǒng)中,最常用的檢驗推薦算法性能的指標是Mean Absolute Error(MAE)以及Root Mean Squared Error(RMSE). MAE和RMSE的值越小,說明預測準確率越高. MAE和RMSE計算公式如下所示:
式(6)、(7)中:q表示測試集數(shù)據(jù)數(shù);ri表示用戶的實際評分;pi表示根據(jù)式(5)得到的預測評分.
2.3.1 NewML數(shù)據(jù)集算法對比 本節(jié)在NewML上對NKL-KM算法性能進行測試,首先確定合適的聚類簇數(shù),確定好合適的cluster 數(shù)后,再將本文算法與NHSM(new heuristic similarity model)、JMSD(combining Jaccard and MSD)、BCF(Bhattacharyya Coefficient based CF)算法進行對比. 不同聚類簇數(shù)對比結(jié)果如圖1所示.
圖1 NewML數(shù)據(jù)集上不同聚類簇數(shù)對比Fig.1 Comparison of the number of different cluster clusters on NewML dataset
從圖1可以看出,根據(jù)本文算法得到的MAE值和RMSE值在cluster數(shù)為8時達到了最小值,故在NewML數(shù)據(jù)集上將聚類簇數(shù)定為8.
確定好cluster 后,在NewML 數(shù)據(jù)集上將NKL-KM 算法與NHSM(new heuristic similarity model)、JMSD(combining Jaccard and MSD)、BCF(Bhattacharyya Coefficient based CF)算法在不同最近鄰數(shù)下進行對比,對比結(jié)果如圖2所示.
圖2 NewML數(shù)據(jù)集上不同算法對比Fig.2 Comparison of different algorithms on NewML dataset
從圖2可知,在不同最近鄰數(shù)下本文提出的NKL-KM 算法性能優(yōu)于JMSD、BCF 以及NHSM 算法. 除此之外,BCF 算法在NewML 上性能優(yōu)于JMSD、NHSM 算法,而NHSM 算法性能又優(yōu)于JMSD. 與此同時,由于NKL-KM算法在進行距離度量時考慮到項目之間評分的概率分布以及分值差異,所以圖中NKL-KM算法的MAE和RMSE的折線最為平緩,算法性能也最為穩(wěn)定.
2.3.2 NewNet數(shù)據(jù)集算法對比 本節(jié)在NewNet上對NKL-KM算法性能進行測試,確定NKL-KM算法合適的cluster數(shù),并將本文提出的NKL-KM算法與NHSM(new heuristic similarity model)、JMSD(combining Jaccard and MSD)、BCF(Bhattacharyya Coefficient based CF)算法進行對比. NKL-KM算法在不同簇數(shù)時的對比結(jié)果如圖3所示.
圖3 NewNet數(shù)據(jù)集上不同聚類簇數(shù)對比Fig.3 Comparison of the number of different clusters on NewNet dataset
由圖3可知,根據(jù)NKL-KM得到的MAE值和RMSE值在cluster數(shù)為17時達到了最小值,故在NewNet數(shù)據(jù)集上將cluster定為17.
令cluster=17,在NewNet 數(shù)據(jù)集上將NKL-KM 算法與NHSM、JMSD、BCF算法在不同最近鄰數(shù)下進行對比,對比結(jié)果如圖4所示.
圖4 NewNet數(shù)據(jù)集上不同算法對比Fig.4 Comparison of different algorithms on NewNet dataset
由圖4可知,不同最近鄰數(shù)下,NKL-KM算法的MAE值和RMSE值均是最低,JMSD算法性能最差. 除此之外,由于NKL-KM算法在進行距離度量時考慮到項目之間評分的概率分布以及分值差異,故NKL-KM算法較為穩(wěn)定.