農藝, 唐忠
(廣西醫科大學 信息與管理學院, 南寧 530021)
隨著Internet的快速發展,人們可以網絡技術獲取自己需要的數據,同時每天Internet上的數據量呈指數形式增加,如何用戶要從網上選擇購買一個產品,搜索的時間相當長,而且有可能無法找到用戶真正喜歡產品,給用戶帶來很大困擾,在該應用背景下,出現電子商務在線推薦系統[1-3]。在電子商務在線推薦系統中,協同過濾推薦算法設計是最為關鍵的老板說,因此成為了電子商務研究領域中的一個重要研究方向[4,5]。
最初,人們設計了基于用戶的協同過推薦算法,通過對用戶訪問的歷史記錄進行評分矩陣,預測出用戶可能喜歡的產品,主要應用于網上電影的推薦,該算法存在可擴展性不足問題;隨后有學者提出了基于內容的推薦算法,其根據用戶和項目之間關系生成相應的評分矩陣,然后根據評分矩陣之間的匹配得到相應的推薦結果,但是其存在數據稀疏問題,而且推薦實時性比較差。為了解決數據稀疏問題,有學者提出了協同過濾推薦算法,相于其它類型的推薦算法,協同過濾推薦算法的推薦精度高,速度也得到了得升,如出現了用戶評分差異性和相關性的協同過濾推薦算法、基于置信度加權的單類協同過濾推薦算法、基于改進用戶相似性度量和評分預測的協同過濾推薦算法[8-10],在實際應用中,這些算法同樣存在各自的缺陷,如:冷啟動問題、推薦誤差大問題等[11]。
為了解決當前協同過濾推薦算法中存在的錯誤大、速度慢等缺陷,以獲得更優的協同過濾推薦效果,設計了綜合用戶屬性和相似度的協同過濾推薦算法,并采用具體數據進行了協同過濾推薦仿真測試。本文算法加快了減少了協同過濾推薦時間,協同過濾推薦速度得到了明顯加快,降低了協同過濾推薦誤差,推薦精度要遠高于其它協同過濾推薦算法,結果驗證了本文協同過濾推薦算法優越性。
當前協同過濾推薦算法很多,每一種算法有自己的長處,同時也存在相應的局限性,基于用戶的協同過濾推薦算法比較經典,使用范圍比較廣泛,下面對其進行相應的描述,了解傳統協同過濾推薦算法工作過程,其劃分為3個階段:數據初始化階段、計算相似度階段、項目評分預測與推薦階段。
數據初始化階段主要建立為建立填充用戶-項目評分矩陣,具體形式如式(1)。
(1)
式中,N和M分別為用戶數和項目數。
在式(1)中,行表示用戶對項目的評分,列表示某個項目各個用戶的評分。
相似度用于描述兩個用戶之間的相似度程度,相似度計算是最為關鍵的持術,當前相似度計算方法相當多,它們有各自的適用范圍。最具代表性的為向量余弦法和皮爾遜相關系數法,其中基于向量余弦法的用戶u、v間相似度計算如式(2)。
(2)
式中,Iuv表示u、v的共同評分集合。
基于皮爾遜相關系數法的用戶u、v間相似度計算如式(3)。
(3)

得到相似度值后,根據相似度對用戶進行排序,找到最大K個相似度用戶作為目標用戶的鄰居,然后根據K個鄰居預測目標用戶對該項目的評分,具體為式(4)。
(4)

根據評分最大的若干項目作為目標用戶的推薦結果。
傳統協同過濾推薦算法沒有考慮用戶的差異性,推薦精度低,為了解決傳統協同過濾推薦算法存在的缺陷,本文提出綜合用戶屬性和相似度的協同過濾推薦算法。
采用非線性函數描述用戶u和v對項目i的評分相似度,具體為式(5)。
(5)
設用戶u的用戶屬性為Attri=(ai1,ai2,…,ain),n為屬性的個數,若用戶u和v的第m個屬性相同,則是有SIMAttr(u,v,m)=1,否則SIMAttr(u,v,m)=0,用戶u和v的相似度為式(6)。
(6)
其中,wi是第i個屬性的權值。
用戶屬性和用戶評分相似度整合為式(7)。
SIM(u,v)=α·SIMAttr(u,v)+β·SIM(u,v)
(7)
式中,α,β表示權重。
Step1:對項目信息進行收集,并建立項目矩陣。
Step2:對評分信息進行收集,同時建立評分矩陣。
Step3:根據Step1和Step2的項目矩陣和評分矩陣建立用戶—項目評分矩陣。
Step4:用戶-項目評分矩陣計算用戶屬性和與用戶評分相似度,根據相似度和K個近鄰得到最優推薦方案。
為了分析綜合用戶屬性和相似度的協同過濾推薦算法的有效性,采用Java語言編程實現協同過濾推薦算法,仿真實驗環境如表1所示。

表1 協同過濾推薦仿真實驗參數
為了使綜合用戶屬性和相似度的協同過濾推薦算法的仿真結果具有說服力,選擇標準數據集Movielens作為測試對象,隨機從中選擇500個樣本作為訓練樣本,200個樣本作為測試樣本,共進行5次仿真實驗,每一次選擇的訓練樣本和測試樣本是不是一樣的,但是數量相同的。標準數據集Movielens具體描述如表2所示。

表2 標準數據集Movielens的具體描述
為了驗證合用戶屬性和相似度的協同過濾推薦算法的優越性,在相同實驗環境下,采用相同的數據集,選擇文獻[10]的協同過濾推薦算法和文獻[11]的協同過濾推薦算法進行對比實驗。采用協同過濾推薦精度和協同過濾推薦時間對實驗結果進行分析。
統計綜合用戶屬性和相似度的協同過濾推薦算法和文獻[10]、文獻[11]的協同過濾推薦算法實驗結果,每一種算法均進行5次仿真實驗,它們的推薦精度如圖1所示。

(a) 協同過濾推薦精度

(b) 協同過濾推薦誤差
對圖1的實驗進行對比和分析,可以知道:
(1) 文獻[10]、文獻[11]的協同過濾推薦精度無低于90%,使得協同過濾推薦誤差超過了10%,無法滿足電子商務商品智能推薦的實際應用要求,因此實際價值相對較低。
(2) 綜合用戶屬性和相似度的協同過濾推薦精度要高于95%,大幅度減少了協同過濾推薦誤差,可以更好找到用戶真正需要的商品,驗證了本文提出的綜合用戶屬性和相似度的協同過濾推薦算法的優越性。
統計綜合用戶屬性和相似度的協同過濾推薦算法和文獻[10]、文獻[11]的協同過濾推薦時間,同樣均進行5次仿真實驗,它們的推薦時間如圖2所示。

圖2 協同過濾推薦時間比較
對圖2的協同過濾推薦時間可以知道,文獻[10]的協同過濾推薦時間最長,而綜合用戶屬性和相似度的協同過濾推薦時間最短,加快了協同過濾推薦速度,大幅度有效改善了協同過濾推薦效率。
針對當前協同過濾推薦算法工作過程存在的局限性,以提高協同過濾推薦精度,提出綜合用戶屬性和相似度的協同過濾推薦算法。首先綜合考慮用戶個性化特征建立用戶屬性評價矩陣,然后根據評價矩陣計算了用戶之間的相似度,根據相似度實現商品推薦,最后采用Java編程實現協同過濾推薦仿真測試,本文算法的協同過濾推薦精度,可以幫助用戶找到自己滿意的商品,克服當前協同過濾推薦算法的弊端,協同過濾推薦時間短,可以用于在線推薦領域,具有廣泛的應用前景。