史玉珍,鄭 浩
(平頂山學(xué)院 軟件學(xué)院,河南 平頂山 467002)
在這個(gè)信息爆炸的網(wǎng)絡(luò)時(shí)代,面對(duì)紛雜的信息資源我們感到無所適從。即便能通過搜索引擎進(jìn)行信息查詢;但是面對(duì)統(tǒng)一問題統(tǒng)一答案的查詢結(jié)果,如何能結(jié)合個(gè)人需求獲取信息是網(wǎng)絡(luò)環(huán)境的新挑戰(zhàn)。廣大用戶希望結(jié)合個(gè)人習(xí)性愛好改變傳統(tǒng)的“人找信息”[1]的狀況,打造出“信息找人”的格局,基于個(gè)性化的信息推薦系統(tǒng)應(yīng)運(yùn)而生。
個(gè)性化推薦系統(tǒng)[2-3]就是根據(jù)用戶的興趣愛好,推薦符合用戶愛好習(xí)慣的資源。目前主要有兩種類型的個(gè)性化推薦系統(tǒng),一種是以網(wǎng)頁為推薦對(duì)象的搜索系統(tǒng),主要采用Web數(shù)據(jù)挖掘的方法和技術(shù),為用戶推薦符合其興趣愛好的網(wǎng)頁,如Google等;另一種是網(wǎng)上購物環(huán)境下,以商品為推薦對(duì)象的個(gè)性化推薦系統(tǒng),為用戶推薦符合興趣愛好的商品。
推薦算法是整個(gè)推薦系統(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ī)則體為推薦對(duì)象。關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)不同商品在銷售過程中的相關(guān)性,在零售業(yè)中已經(jīng)得到了成功的應(yīng)用。它依賴專家對(duì)用戶和信息的預(yù)先分類,為不同類的用戶分布提供不同的服務(wù)、產(chǎn)品和不同的優(yōu)先級(jí),這是一種根據(jù)事先定義的If-then規(guī)則的靜態(tài)推薦,具有很大的局限性。
2)基于內(nèi)容的推薦源于信息檢索領(lǐng)域的信息過濾技術(shù),它通過計(jì)算資源(商品、電影、音樂、文本等)與資源之間、資源與用戶興趣之間的相似程度來向用戶推薦資源,分析資源內(nèi)容,根據(jù)用戶興趣建立用戶模型,基于內(nèi)容的過濾技術(shù)對(duì)文本資源的過濾效率非常高,但對(duì)多媒體資源不適合。
3)基于協(xié)同過濾的推薦(Collaborative Filtering Recommendation)技術(shù)是推薦系統(tǒng)中應(yīng)用最早和最為成功的技術(shù)之一。它利用用戶的歷史喜好信息計(jì)算用戶之間的距離,然后利用目標(biāo)用戶的最近鄰居用戶對(duì)商品評(píng)價(jià)的加權(quán)評(píng)價(jià)值來預(yù)測(cè)目標(biāo)用戶對(duì)特定商品的喜好程度,從而根據(jù)這一喜好程度來對(duì)目標(biāo)用戶進(jìn)行推薦預(yù)測(cè)。它根據(jù)用戶或項(xiàng)目(表示任何商品或信息資源)之間的相似性產(chǎn)生推薦結(jié)果,具體可分為基于用戶的協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾。基于協(xié)同過濾的推薦技術(shù)是目前研究較多的個(gè)性化推薦技術(shù),推薦的個(gè)性化程度高、效果明顯,特別適合音樂、電影、圖書等領(lǐng)域的非結(jié)構(gòu)化復(fù)雜對(duì)象的推薦。
4)組合推薦算法(Hybrid Recommendation):由于各種推薦方法都有優(yōu)缺點(diǎn),所以在實(shí)際中,組合推薦經(jīng)常被采用。研究和應(yīng)用最多的是內(nèi)容推薦和協(xié)同過濾推薦的組合。
協(xié)同過濾的概念[5]是1992年由Goldberg等人正式提出的,應(yīng)用在電子郵件過濾上,并開發(fā)出了Tapestry系統(tǒng)。協(xié)同過濾算法的思想就是“物以類聚、人以群分”,在日常生活中,人們總會(huì)利用好朋友的推薦來進(jìn)行一些選擇。協(xié)同過濾正是把這一思想運(yùn)用到推薦系統(tǒng)中來,基于其他用戶對(duì)某一內(nèi)容的評(píng)價(jià)來向目標(biāo)用戶進(jìn)行推薦。
協(xié)同過濾技術(shù)基于如下假設(shè)[6]:與用戶A興趣度相似的用戶B感興趣的產(chǎn)品是用戶A所感興趣的。并根據(jù)用戶對(duì)其他項(xiàng)目的評(píng)分以及整個(gè)用戶群體的評(píng)分記錄來預(yù)測(cè)該用戶對(duì)某一未評(píng)分項(xiàng)目的評(píng)分。協(xié)同過濾系統(tǒng)[7-9]可以由輸入、推薦預(yù)測(cè)引擎和輸出3個(gè)部分組成如圖1所示,即用戶輸入評(píng)價(jià)信息,推薦預(yù)測(cè)引擎根據(jù)用戶輸入的信息產(chǎn)生推薦預(yù)測(cè),以及輸出推薦預(yù)測(cè)結(jié)果3個(gè)步驟。一般來說推薦預(yù)測(cè)引擎對(duì)用戶來說是個(gè)“黑盒”,推薦結(jié)果的生成過程對(duì)用戶來說是透明的。具體實(shí)施過程如下:

圖1 典型協(xié)同過濾流程Fig.1 Typical collaborative filtering process
第一步,獲得用戶的評(píng)價(jià)、購買行為、用戶的興趣等數(shù)據(jù)信息[10-12],比如用戶對(duì)資源對(duì)象的瀏覽、評(píng)價(jià)、購買等。為了給用戶提供有效的推薦,必須先獲得用戶的興趣模型,這是協(xié)同過濾的關(guān)鍵,如果興趣模型不準(zhǔn)確或是錯(cuò)誤的,那過濾結(jié)果將是毫無意義的。得到一個(gè)用戶興趣模型主要分成兩步,先要根據(jù)用戶的活動(dòng)狀況來獲得用戶感興趣的信息群,然后根據(jù)這些信息提煉出興趣模型。所以要求獲得推薦的用戶,為得到推薦必須對(duì)一些項(xiàng)目進(jìn)行評(píng)價(jià),以表達(dá)自己的偏好。
第二步,分析和發(fā)現(xiàn)用戶之間、項(xiàng)目之間的特征模式,比如相似性,作為協(xié)同過濾輸出或預(yù)測(cè)的基礎(chǔ)。分析用戶之間、項(xiàng)目之間的相似性可使用相似性計(jì)算方法或統(tǒng)計(jì)技術(shù)來搜索用戶或項(xiàng)目的若干最近鄰居。
第三步,根據(jù)當(dāng)前用戶的訪問過程或階段,適時(shí)產(chǎn)生和輸出推薦列表。推薦列表的輸出主要有兩種形式,一種是預(yù)測(cè),另外一種是推薦。預(yù)測(cè)就是根據(jù)用戶給定的一組或多個(gè)未評(píng)價(jià)項(xiàng)目,根據(jù)預(yù)測(cè)算法得到該用戶對(duì)于未評(píng)價(jià)項(xiàng)目的預(yù)測(cè)評(píng)分值,并進(jìn)行預(yù)測(cè)輸出。推薦是提供活動(dòng)用戶一個(gè)具有N項(xiàng)用戶最喜歡的項(xiàng)目列表,即根據(jù)用戶的偏好推薦可能吸引用戶的N個(gè)項(xiàng)目,按推薦程度高低排序。
協(xié)同過濾推薦算法使用用戶對(duì)項(xiàng)目(商品)的評(píng)分?jǐn)?shù)據(jù)作為推薦基礎(chǔ)[13]。用戶評(píng)分?jǐn)?shù)據(jù)分為顯式評(píng)分和隱式評(píng)分兩類。顯式評(píng)分是由用戶自己對(duì)某個(gè)項(xiàng)目進(jìn)行打分,使用數(shù)值來表示。隱式評(píng)分是由系統(tǒng)評(píng)估用戶對(duì)某個(gè)項(xiàng)目的評(píng)分,如由用戶的瀏覽日志,購買記錄等得出。推薦系統(tǒng)數(shù)據(jù)的核心是使用一個(gè)用戶_項(xiàng)目評(píng)分矩陣R(m,n),它表示有m個(gè)用戶集合 U={U1, U2,…, Um}和 n 個(gè)項(xiàng)目的集合 I={I1,I2,…,In},其中Ru,i表示用戶u對(duì)項(xiàng)目i的評(píng)分,若用戶u未對(duì)項(xiàng)目i評(píng)分,則 Rui=0。

圖2 用戶_項(xiàng)目評(píng)分矩陣Fig.2 User_project scorematrix
基于協(xié)同過濾技術(shù)的推薦系統(tǒng)的核心是為一個(gè)需要推薦的當(dāng)前用戶尋找其最相似的“最近鄰居”集。對(duì)于用戶相似性的計(jì)算,目前方法有很多,主要有3種傳統(tǒng)計(jì)算方法:余弦相似性、修正的余弦相似性以及Pearson相似性[14]。
現(xiàn)將文中用到公式符號(hào)進(jìn)行如下約定:
I表示全部項(xiàng)目空間;
U表示全部成員用戶;
Iuv={c∈I|Ru,c=?&Rv,c=?}用戶 u 和用戶 v 共同評(píng)分過的項(xiàng)目集合;
Ru,c表示用戶u對(duì)項(xiàng)目c的評(píng)分;
Rv,c表示用戶v對(duì)項(xiàng)目c的評(píng)分;
Ru分別表示用戶u對(duì)項(xiàng)目的平均權(quán)值;
Rv分別表示用戶v對(duì)項(xiàng)目的平均權(quán)值;
Ruvd表示推薦系統(tǒng)所采用的評(píng)分制的中值。
3.2.1 余弦相似性
余弦相似性也稱為向量相似性(vector similarity)。用戶評(píng)分被看作是n維項(xiàng)目空間上的向量,如果用戶對(duì)資源沒有進(jìn)行評(píng)分操作,則將用戶對(duì)該項(xiàng)目的評(píng)分預(yù)設(shè)為0,用戶間的相似性通過向量間的余弦夾角度量,夾角越小則相似性越高。則用戶 u、v 之間的相似性 sim(u,v)為:

3.2.2 修正的余弦相似性
在余弦相似性度量方法中沒有考慮不同用戶的評(píng)分尺度問題,比如用戶甲給他認(rèn)為最好的項(xiàng)目的評(píng)分為4,而從不給5分,他給他認(rèn)為最差的項(xiàng)目評(píng)分為1,而不給2分;用戶乙給他認(rèn)為最好的項(xiàng)目的評(píng)分為5,給他認(rèn)為最差的項(xiàng)目評(píng)分為2,如果采用基本的余弦相似性方法,則這兩個(gè)用戶差異較大。修正的余弦相似性度量方法通過減去用戶對(duì)項(xiàng)目的平均評(píng)分改善上述缺陷。則用戶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)中評(píng)分機(jī)制的中間值Ruvd代替,公式即為:

協(xié)同過濾的核心是為一個(gè)需要推薦服務(wù)的活動(dòng)用戶尋找其最相似的最近鄰居 (Nearest neighbor)集,即對(duì)一個(gè)活動(dòng)用戶a,要產(chǎn)生一個(gè)依相似度大小排列的“鄰居”集合N={Nl,N2,…,Ni},a?N,從 N1至 Ni,用戶之間的相似度 sim(a,Ni)從大到小排列。一般有兩種思路來選取鄰居數(shù)目,第一種思路是預(yù)先設(shè)置一個(gè)相似性閾值,所有那些與活動(dòng)用戶之間的相似系數(shù)超過該閾值的用戶都作為鄰居。高于閾值則說明鄰居與活動(dòng)用戶之間有較好的相似性。第二種思路是選擇k個(gè)相似性最大的用戶作為鄰居用戶,k值設(shè)置一般為20~50之間。
選取目標(biāo)用戶的近鄰后,就可根據(jù)這些最近鄰居對(duì)項(xiàng)目的評(píng)分來預(yù)測(cè)活動(dòng)用戶對(duì)某個(gè)項(xiàng)目的喜好程度。在協(xié)同過濾系統(tǒng)中最重要的步驟就是對(duì)目標(biāo)用戶的指定項(xiàng)目進(jìn)行預(yù)測(cè)[15],假設(shè)用戶u對(duì)項(xiàng)目i的預(yù)測(cè)為Pu,i,表示公式為:

其中KNNI(u)表示用戶u的最近鄰用戶的個(gè)數(shù)。
評(píng)價(jià)推薦系統(tǒng)用戶評(píng)估出的推薦分值與待推薦用戶的實(shí)際評(píng)分值之間的差異程度是評(píng)價(jià)一個(gè)推薦系統(tǒng)好壞的重要指標(biāo),MAE(Mean Absolute Error)是被廣泛使用的測(cè)試評(píng)分預(yù)測(cè)準(zhǔn)確度的一個(gè)標(biāo)準(zhǔn)[16]。平均絕對(duì)偏差通過計(jì)算預(yù)測(cè)的用戶評(píng)分與實(shí)際的用戶評(píng)分之間的偏差度量預(yù)測(cè)的準(zhǔn)確性,MAE[17]越小推薦質(zhì)量越高。設(shè)N代表用戶已實(shí)際評(píng)分的項(xiàng)目數(shù)。pi代表用戶的對(duì)某項(xiàng)目的實(shí)際,qi代表系統(tǒng)計(jì)算出的評(píng)分值,則平均絕對(duì)偏差MAE定義為:

現(xiàn)在協(xié)同過濾方法雖然已是最成功的推薦方法,但隨著電子商務(wù)系統(tǒng)規(guī)模的日益擴(kuò)大,協(xié)同過濾推薦方法也面臨諸多挑戰(zhàn),其中關(guān)注最多的有數(shù)據(jù)稀疏性、冷啟動(dòng)和可擴(kuò)展性3個(gè)問題。
1)稀疏性問題:每個(gè)用戶一般都只對(duì)很少的項(xiàng)目進(jìn)行評(píng)價(jià),整個(gè)數(shù)據(jù)矩陣變得非常稀疏,一般都在1%以下,這種情況帶來的問題是得到用戶間的相似性不準(zhǔn)確,鄰居用戶不可靠。稀疏問題是推薦技術(shù)中的重要問題之一。
2)冷啟動(dòng)問題:在推薦系統(tǒng)剛啟動(dòng)時(shí),沒有用戶對(duì)項(xiàng)目的評(píng)價(jià)信息,因此系統(tǒng)無法根據(jù)評(píng)分矩陣進(jìn)行推薦。同時(shí)當(dāng)一個(gè)新用戶或一個(gè)項(xiàng)目進(jìn)入系統(tǒng),由于其沒有評(píng)分記錄,因此系統(tǒng)無法獲取其興趣點(diǎn)和為他找到相似用戶,這時(shí)推薦系統(tǒng)就出現(xiàn)了盲區(qū)。
3)擴(kuò)展性問題:協(xié)同過濾推薦算法的計(jì)算量隨著日益增多的用戶和項(xiàng)目,系統(tǒng)規(guī)模不斷擴(kuò)大,推薦系統(tǒng)往往將遭遇嚴(yán)重的擴(kuò)展性問題。
[1]曾春,邢春曉.個(gè)性化服務(wù)技術(shù)綜述[J].軟件學(xué)報(bào),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]武建偉,俞曉紅.基于密度的動(dòng)態(tài)協(xié)同過濾圖書推薦算法[J].計(jì)算機(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é)同過濾的個(gè)性化推薦算法研究[D].武漢:華中師范大學(xué),2009.
[5]郁雪.基于協(xié)同過濾技術(shù)的推薦方法研究[D].天津:天津大學(xué),2009.
[6]黃裕洋,金遠(yuǎn)平.一種綜合用戶和項(xiàng)目因素的協(xié)同過濾推薦算法[J].東南大學(xué)學(xué)報(bào):自然科學(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].計(jì)算機(jī)學(xué)報(bào),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].計(jì)算機(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]王輝,高利軍.個(gè)性化服務(wù)中基于用戶聚類的協(xié)同過濾推薦[J].計(jì)算機(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ū)動(dòng)程序設(shè)計(jì)[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.