史玉珍,鄭 浩
(平頂山學(xué)院 軟件學(xué)院,河南 平頂山 467002)
在這個信息爆炸的網(wǎng)絡(luò)時代,面對紛雜的信息資源我們感到無所適從。即便能通過搜索引擎進(jìn)行信息查詢;但是面對統(tǒng)一問題統(tǒng)一答案的查詢結(jié)果,如何能結(jié)合個人需求獲取信息是網(wǎng)絡(luò)環(huán)境的新挑戰(zhàn)。廣大用戶希望結(jié)合個人習(xí)性愛好改變傳統(tǒng)的“人找信息”[1]的狀況,打造出“信息找人”的格局,基于個性化的信息推薦系統(tǒng)應(yīng)運而生。
個性化推薦系統(tǒng)[2-3]就是根據(jù)用戶的興趣愛好,推薦符合用戶愛好習(xí)慣的資源。目前主要有兩種類型的個性化推薦系統(tǒng),一種是以網(wǎng)頁為推薦對象的搜索系統(tǒng),主要采用Web數(shù)據(jù)挖掘的方法和技術(shù),為用戶推薦符合其興趣愛好的網(wǎng)頁,如Google等;另一種是網(wǎng)上購物環(huán)境下,以商品為推薦對象的個性化推薦系統(tǒng),為用戶推薦符合興趣愛好的商品。
推薦算法是整個推薦系統(tǒng)中最核心、最關(guān)鍵的部分,很大程度上決定了推薦系統(tǒng)性能的優(yōu)劣。目前推薦算法主要包括基于關(guān)聯(lián)規(guī)則的推薦、基于內(nèi)容的推薦和協(xié)同過濾推薦和組合推薦算法[4]4種。
1)基于關(guān)聯(lián)規(guī)則的推薦(Association Rule-based Recommendation)是以關(guān)聯(lián)規(guī)則為基礎(chǔ),把已購商品作為規(guī)則頭,規(guī)則體為推薦對象。關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)不同商品在銷售過程中的相關(guān)性,在零售業(yè)中已經(jīng)得到了成功的應(yīng)用。它依賴專家對用戶和信息的預(yù)先分類,為不同類的用戶分布提供不同的服務(wù)、產(chǎn)品和不同的優(yōu)先級,這是一種根據(jù)事先定義的If-then規(guī)則的靜態(tài)推薦,具有很大的局限性。
2)基于內(nèi)容的推薦源于信息檢索領(lǐng)域的信息過濾技術(shù),它通過計算資源(商品、電影、音樂、文本等)與資源之間、資源與用戶興趣之間的相似程度來向用戶推薦資源,分析資源內(nèi)容,根據(jù)用戶興趣建立用戶模型,基于內(nèi)容的過濾技術(shù)對文本資源的過濾效率非常高,但對多媒體資源不適合。
3)基于協(xié)同過濾的推薦(Collaborative Filtering Recommendation)技術(shù)是推薦系統(tǒng)中應(yīng)用最早和最為成功的技術(shù)之一。它利用用戶的歷史喜好信息計算用戶之間的距離,然后利用目標(biāo)用戶的最近鄰居用戶對商品評價的加權(quán)評價值來預(yù)測目標(biāo)用戶對特定商品的喜好程度,從而根據(jù)這一喜好程度來對目標(biāo)用戶進(jìn)行推薦預(yù)測。它根據(jù)用戶或項目(表示任何商品或信息資源)之間的相似性產(chǎn)生推薦結(jié)果,具體可分為基于用戶的協(xié)同過濾和基于項目的協(xié)同過濾?;趨f(xié)同過濾的推薦技術(shù)是目前研究較多的個性化推薦技術(shù),推薦的個性化程度高、效果明顯,特別適合音樂、電影、圖書等領(lǐng)域的非結(jié)構(gòu)化復(fù)雜對象的推薦。
4)組合推薦算法(Hybrid Recommendation):由于各種推薦方法都有優(yōu)缺點,所以在實際中,組合推薦經(jīng)常被采用。研究和應(yīng)用最多的是內(nèi)容推薦和協(xié)同過濾推薦的組合。
協(xié)同過濾的概念[5]是1992年由Goldberg等人正式提出的,應(yīng)用在電子郵件過濾上,并開發(fā)出了Tapestry系統(tǒng)。協(xié)同過濾算法的思想就是“物以類聚、人以群分”,在日常生活中,人們總會利用好朋友的推薦來進(jìn)行一些選擇。協(xié)同過濾正是把這一思想運用到推薦系統(tǒng)中來,基于其他用戶對某一內(nèi)容的評價來向目標(biāo)用戶進(jìn)行推薦。
協(xié)同過濾技術(shù)基于如下假設(shè)[6]:與用戶A興趣度相似的用戶B感興趣的產(chǎn)品是用戶A所感興趣的。并根據(jù)用戶對其他項目的評分以及整個用戶群體的評分記錄來預(yù)測該用戶對某一未評分項目的評分。協(xié)同過濾系統(tǒng)[7-9]可以由輸入、推薦預(yù)測引擎和輸出3個部分組成如圖1所示,即用戶輸入評價信息,推薦預(yù)測引擎根據(jù)用戶輸入的信息產(chǎn)生推薦預(yù)測,以及輸出推薦預(yù)測結(jié)果3個步驟。一般來說推薦預(yù)測引擎對用戶來說是個“黑盒”,推薦結(jié)果的生成過程對用戶來說是透明的。具體實施過程如下:
圖1 典型協(xié)同過濾流程Fig.1 Typical collaborative filtering process
第一步,獲得用戶的評價、購買行為、用戶的興趣等數(shù)據(jù)信息[10-12],比如用戶對資源對象的瀏覽、評價、購買等。為了給用戶提供有效的推薦,必須先獲得用戶的興趣模型,這是協(xié)同過濾的關(guān)鍵,如果興趣模型不準(zhǔn)確或是錯誤的,那過濾結(jié)果將是毫無意義的。得到一個用戶興趣模型主要分成兩步,先要根據(jù)用戶的活動狀況來獲得用戶感興趣的信息群,然后根據(jù)這些信息提煉出興趣模型。所以要求獲得推薦的用戶,為得到推薦必須對一些項目進(jìn)行評價,以表達(dá)自己的偏好。
第二步,分析和發(fā)現(xiàn)用戶之間、項目之間的特征模式,比如相似性,作為協(xié)同過濾輸出或預(yù)測的基礎(chǔ)。分析用戶之間、項目之間的相似性可使用相似性計算方法或統(tǒng)計技術(shù)來搜索用戶或項目的若干最近鄰居。
第三步,根據(jù)當(dāng)前用戶的訪問過程或階段,適時產(chǎn)生和輸出推薦列表。推薦列表的輸出主要有兩種形式,一種是預(yù)測,另外一種是推薦。預(yù)測就是根據(jù)用戶給定的一組或多個未評價項目,根據(jù)預(yù)測算法得到該用戶對于未評價項目的預(yù)測評分值,并進(jìn)行預(yù)測輸出。推薦是提供活動用戶一個具有N項用戶最喜歡的項目列表,即根據(jù)用戶的偏好推薦可能吸引用戶的N個項目,按推薦程度高低排序。
協(xié)同過濾推薦算法使用用戶對項目(商品)的評分?jǐn)?shù)據(jù)作為推薦基礎(chǔ)[13]。用戶評分?jǐn)?shù)據(jù)分為顯式評分和隱式評分兩類。顯式評分是由用戶自己對某個項目進(jìn)行打分,使用數(shù)值來表示。隱式評分是由系統(tǒng)評估用戶對某個項目的評分,如由用戶的瀏覽日志,購買記錄等得出。推薦系統(tǒng)數(shù)據(jù)的核心是使用一個用戶_項目評分矩陣R(m,n),它表示有m個用戶集合 U={U1, U2,…, Um}和 n 個項目的集合 I={I1,I2,…,In},其中Ru,i表示用戶u對項目i的評分,若用戶u未對項目i評分,則 Rui=0。
圖2 用戶_項目評分矩陣Fig.2 User_project scorematrix
基于協(xié)同過濾技術(shù)的推薦系統(tǒng)的核心是為一個需要推薦的當(dāng)前用戶尋找其最相似的“最近鄰居”集。對于用戶相似性的計算,目前方法有很多,主要有3種傳統(tǒng)計算方法:余弦相似性、修正的余弦相似性以及Pearson相似性[14]。
現(xiàn)將文中用到公式符號進(jìn)行如下約定:
I表示全部項目空間;
U表示全部成員用戶;
Iuv={c∈I|Ru,c=?&Rv,c=?}用戶 u 和用戶 v 共同評分過的項目集合;
Ru,c表示用戶u對項目c的評分;
Rv,c表示用戶v對項目c的評分;
Ru分別表示用戶u對項目的平均權(quán)值;
Rv分別表示用戶v對項目的平均權(quán)值;
Ruvd表示推薦系統(tǒng)所采用的評分制的中值。
3.2.1 余弦相似性
余弦相似性也稱為向量相似性(vector similarity)。用戶評分被看作是n維項目空間上的向量,如果用戶對資源沒有進(jìn)行評分操作,則將用戶對該項目的評分預(yù)設(shè)為0,用戶間的相似性通過向量間的余弦夾角度量,夾角越小則相似性越高。則用戶 u、v 之間的相似性 sim(u,v)為:
3.2.2 修正的余弦相似性
在余弦相似性度量方法中沒有考慮不同用戶的評分尺度問題,比如用戶甲給他認(rèn)為最好的項目的評分為4,而從不給5分,他給他認(rèn)為最差的項目評分為1,而不給2分;用戶乙給他認(rèn)為最好的項目的評分為5,給他認(rèn)為最差的項目評分為2,如果采用基本的余弦相似性方法,則這兩個用戶差異較大。修正的余弦相似性度量方法通過減去用戶對項目的平均評分改善上述缺陷。則用戶u和用戶v之間的相似性sim(u,v)為:
3.2.3 Pearson相關(guān)系數(shù)相似性
用戶u和用戶v之間的相似性 sim(i,j)也可通過Pearson相關(guān)系數(shù)來度量,將Pearson相關(guān)系數(shù)公式中結(jié)合推薦系統(tǒng)中評分機制的中間值Ruvd代替,公式即為:
協(xié)同過濾的核心是為一個需要推薦服務(wù)的活動用戶尋找其最相似的最近鄰居 (Nearest neighbor)集,即對一個活動用戶a,要產(chǎn)生一個依相似度大小排列的“鄰居”集合N={Nl,N2,…,Ni},a?N,從 N1至 Ni,用戶之間的相似度 sim(a,Ni)從大到小排列。一般有兩種思路來選取鄰居數(shù)目,第一種思路是預(yù)先設(shè)置一個相似性閾值,所有那些與活動用戶之間的相似系數(shù)超過該閾值的用戶都作為鄰居。高于閾值則說明鄰居與活動用戶之間有較好的相似性。第二種思路是選擇k個相似性最大的用戶作為鄰居用戶,k值設(shè)置一般為20~50之間。
選取目標(biāo)用戶的近鄰后,就可根據(jù)這些最近鄰居對項目的評分來預(yù)測活動用戶對某個項目的喜好程度。在協(xié)同過濾系統(tǒng)中最重要的步驟就是對目標(biāo)用戶的指定項目進(jìn)行預(yù)測[15],假設(shè)用戶u對項目i的預(yù)測為Pu,i,表示公式為:
其中KNNI(u)表示用戶u的最近鄰用戶的個數(shù)。
評價推薦系統(tǒng)用戶評估出的推薦分值與待推薦用戶的實際評分值之間的差異程度是評價一個推薦系統(tǒng)好壞的重要指標(biāo),MAE(Mean Absolute Error)是被廣泛使用的測試評分預(yù)測準(zhǔn)確度的一個標(biāo)準(zhǔn)[16]。平均絕對偏差通過計算預(yù)測的用戶評分與實際的用戶評分之間的偏差度量預(yù)測的準(zhǔn)確性,MAE[17]越小推薦質(zhì)量越高。設(shè)N代表用戶已實際評分的項目數(shù)。pi代表用戶的對某項目的實際,qi代表系統(tǒng)計算出的評分值,則平均絕對偏差MAE定義為:
現(xiàn)在協(xié)同過濾方法雖然已是最成功的推薦方法,但隨著電子商務(wù)系統(tǒng)規(guī)模的日益擴大,協(xié)同過濾推薦方法也面臨諸多挑戰(zhàn),其中關(guān)注最多的有數(shù)據(jù)稀疏性、冷啟動和可擴展性3個問題。
1)稀疏性問題:每個用戶一般都只對很少的項目進(jìn)行評價,整個數(shù)據(jù)矩陣變得非常稀疏,一般都在1%以下,這種情況帶來的問題是得到用戶間的相似性不準(zhǔn)確,鄰居用戶不可靠。稀疏問題是推薦技術(shù)中的重要問題之一。
2)冷啟動問題:在推薦系統(tǒng)剛啟動時,沒有用戶對項目的評價信息,因此系統(tǒng)無法根據(jù)評分矩陣進(jìn)行推薦。同時當(dāng)一個新用戶或一個項目進(jìn)入系統(tǒng),由于其沒有評分記錄,因此系統(tǒng)無法獲取其興趣點和為他找到相似用戶,這時推薦系統(tǒng)就出現(xiàn)了盲區(qū)。
3)擴展性問題:協(xié)同過濾推薦算法的計算量隨著日益增多的用戶和項目,系統(tǒng)規(guī)模不斷擴大,推薦系統(tǒng)往往將遭遇嚴(yán)重的擴展性問題。
[1]曾春,邢春曉.個性化服務(wù)技術(shù)綜述[J].軟件學(xué)報,2002,13(10):1952-1960.
ZENG Chun, XING Chun-xiao.A survey of personalization technology[J].Journal of software,2002,13(10):1952-1960.
[2]武建偉,俞曉紅.基于密度的動態(tài)協(xié)同過濾圖書推薦算法[J].計算機應(yīng)用研究,2010(8):3014.
WU Jian-wei,YU Xiao-hong.Density-based dynamic collaborative filtering books recommendation algorithm[J].Application Research of Computers,2010(8):3014.
[3]黃曉斌.網(wǎng)絡(luò)信息過濾原理與應(yīng)用[M].北京:北京圖書館出版社,2005.
[4]周張?zhí)m.基于協(xié)同過濾的個性化推薦算法研究[D].武漢:華中師范大學(xué),2009.
[5]郁雪.基于協(xié)同過濾技術(shù)的推薦方法研究[D].天津:天津大學(xué),2009.
[6]黃裕洋,金遠(yuǎn)平.一種綜合用戶和項目因素的協(xié)同過濾推薦算法[J].東南大學(xué)學(xué)報:自然科學(xué)版,2010(5):918.
HUANG Yu-yang,JIN Yuan-ping.Collaborative filtering recommendation algorithm based on both user and item[J].Journal of Southeast University:Natural Science Edition,2010(5):918.
[7]黃創(chuàng)光,印鑒.不確定近鄰的協(xié)同過濾推薦算法[J].計算機學(xué)報,2010(8):1370.
HUANG Chuang-guang,YIN Jian.Uncertain neighbors’collaborative filtering recommendation algorithm[J].Chinese Journal of computers,2010(8):1370.
[8]郭艷紅.推薦系統(tǒng)的協(xié)同過濾算法與應(yīng)用研究 [D].大連:大連理工大學(xué),2008.
[9]Sarwar B,Karypis G,Konstan J,etal.Item-based collaborative filtering recommendation algorithms[C]//In:Proceediings of the 10th International Conference on World Wide Web.New York:ACM Press,2001:285-295.
[10]Sarwar B M. Sparsity,scalability,and distribution in recommender systems[D]. Minneapolis,MN:University of Minnesota,2001.
[11]Sarwar B M,Karypis G,Konstan J,et al.Recommender systems for large-scale e-commerce:scalable neighborhood formation using clustering[C]//In:Proceedings of the 5th International Conference on Computer and Information Technology,2002.
[12]李春,朱珍民.基于鄰居決策的協(xié)同過濾推薦算法[J].計算機工程,2010(13):34.LIChun,ZHUZhen-min.Collaborative filtering recommendation algorithm based on neighbor decision-making[J].Computer Engineering,2010(13):34.
[13]張雪文.智能推薦系統(tǒng)中協(xié)同過濾算法的研究[D].上海:上海交通大學(xué),2008.
[14]王輝,高利軍.個性化服務(wù)中基于用戶聚類的協(xié)同過濾推薦[J].計算機應(yīng)用,2007,27(5):1225-1227.WANGHui,GAOLi-jun.Collaborative filtering recommendation based on user clustering in personalization service[J].Computer Application,2007,27(5):1225-1227.
[15]Terveen L,Hill W,Amento B,et al.PHOAKS:a system for sharing recommendations[J].Communications of the ACM,1997,40(3):59-62.
[16]Iijima J,Ho S.Common structure and properties of filtering systems[J].Electronic Commerce Research and Applications,2007,6(2):139-145.
[17]馮超.嵌入式Linux下的AU 1200 MAE驅(qū)動程序設(shè)計[J].現(xiàn)代電子技術(shù),2010(8):48-50.FENG Chao.Design of AU 1200 MAE driving program under condition of embedded linux[J].Modern Electronics Technique,2010(8):48-50.