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

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

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

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

表2 標(biāo)準(zhǔn)數(shù)據(jù)集Movielens的具體描述
為了驗證合用戶屬性和相似度的協(xié)同過濾推薦算法的優(yōu)越性,在相同實驗環(huán)境下,采用相同的數(shù)據(jù)集,選擇文獻(xiàn)[10]的協(xié)同過濾推薦算法和文獻(xiàn)[11]的協(xié)同過濾推薦算法進(jìn)行對比實驗。采用協(xié)同過濾推薦精度和協(xié)同過濾推薦時間對實驗結(jié)果進(jìn)行分析。
統(tǒng)計綜合用戶屬性和相似度的協(xié)同過濾推薦算法和文獻(xiàn)[10]、文獻(xiàn)[11]的協(xié)同過濾推薦算法實驗結(jié)果,每一種算法均進(jìn)行5次仿真實驗,它們的推薦精度如圖1所示。

(a) 協(xié)同過濾推薦精度

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

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