馮曉川 王正成
隨著各電子商務(wù)系統(tǒng)中用戶和項(xiàng)目數(shù)據(jù)的指數(shù)性增長(zhǎng),如何與用戶建立聯(lián)系并實(shí)時(shí)高效地推薦系統(tǒng)信息,從而實(shí)現(xiàn)信息消費(fèi)者和商家的雙贏局面,越來(lái)越受到重視。但目前推薦評(píng)價(jià)數(shù)據(jù)稀缺,這嚴(yán)重影響到推薦系統(tǒng)的推薦精度,而且已經(jīng)成為各類電子商務(wù)系統(tǒng)發(fā)展的瓶頸。要實(shí)現(xiàn)有效的個(gè)性化推薦必須解決好當(dāng)前所面臨的兩大主要問(wèn)題:數(shù)據(jù)稀疏性和算法有效性。
針對(duì)項(xiàng)目的具體屬性評(píng)價(jià)有效性數(shù)據(jù)稀疏這一問(wèn)題,研究人員提出了不少增加有效性數(shù)據(jù)的方法,如缺省值填充法和預(yù)測(cè)值填充法等。在一定程度上,前者可以降低數(shù)據(jù)稀疏性,但沒(méi)有考慮到不同的項(xiàng)目和各個(gè)用戶之間的差異。后者為根據(jù)項(xiàng)目之間的相似性使用預(yù)測(cè)值填充的方法來(lái)初步預(yù)測(cè)用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分[1],相應(yīng)的預(yù)測(cè)方法有Slope One方法[2]、BP神經(jīng)網(wǎng)絡(luò)[3]等。甚至一些學(xué)者提出通過(guò)刪除一些無(wú)效數(shù)據(jù)或無(wú)效評(píng)分項(xiàng)目來(lái)降低數(shù)據(jù)稀疏性,這雖然在一定程度上減少了標(biāo)記稀疏矩陣,但是,被刪除的用戶或項(xiàng)目已經(jīng)失去了推薦和被推薦的機(jī)會(huì)[4]。
比較經(jīng)典傳統(tǒng)的個(gè)性化推薦算法是最近鄰協(xié)同過(guò)濾推薦算法。該算法需要在整個(gè)用戶空間搜索目標(biāo)用戶的最近鄰居,采用一種混合加權(quán)預(yù)測(cè)填充算法。然而在現(xiàn)實(shí)中大型的專業(yè)電子商務(wù)推薦網(wǎng)站,因?yàn)橛脩舻捻?xiàng)目評(píng)分矩陣稀疏性過(guò)高,導(dǎo)致系統(tǒng)項(xiàng)目中被用戶有效評(píng)分過(guò)的項(xiàng)目數(shù)量低于總數(shù)的 1%[5]。因此通過(guò)基于傳統(tǒng)的用戶協(xié)同過(guò)濾相似度計(jì)算方法很難找到準(zhǔn)確的最近鄰居,導(dǎo)致推薦質(zhì)量降低。
筆者提出基于用戶的特定屬性偏好值計(jì)算用戶之間的相似度,并在此基礎(chǔ)上進(jìn)一步預(yù)測(cè)用戶對(duì)項(xiàng)目的具體屬性未評(píng)分部分的評(píng)分,以此改善原始用戶項(xiàng)目評(píng)價(jià)矩陣的數(shù)據(jù)稀疏狀況,達(dá)到數(shù)據(jù)的稠密性要求。最后采用流行的協(xié)同過(guò)濾算法實(shí)現(xiàn)基于項(xiàng)目屬性偏好的個(gè)性化推薦。
針對(duì)現(xiàn)有的基于用戶的協(xié)同過(guò)濾算法存在的不足,筆者提出了基于項(xiàng)目屬性偏好的協(xié)同過(guò)濾算法,推薦過(guò)程模型如圖1所示。
圖1 基于項(xiàng)目屬性偏好的推薦過(guò)程模型Fig.1 Recommendation process model based on item attribute preference
一個(gè)項(xiàng)目包含多種類別屬性,例如木材有物質(zhì)和非物質(zhì)的屬性。項(xiàng)目屬性集合可以用集合{Attr1,Attr2,… ,Attrk}表示,其中某個(gè)項(xiàng)目特征屬性矩陣用A表示, 其中A(i,j)=1。若項(xiàng)目i具備屬性j,則值為1;為0則代表項(xiàng)目i不具備屬性j?;谏鲜隹紤],構(gòu)建項(xiàng)目特征屬性矩陣如表1。
表1 項(xiàng)目特征屬性矩陣示意表Tab.1 Schematic table of project characteristic properties matrix
借鑒文獻(xiàn)[6]用戶項(xiàng)目屬性偏好計(jì)算方法,不同用戶對(duì)某項(xiàng)目的屬性i偏好程度L(u,i)計(jì)算公式如(1)所示:
上式allScore(u,i)表示用戶u對(duì)具有項(xiàng)目屬性i的所有項(xiàng)目的評(píng)分值之和,allScore(u)表示用戶u對(duì)所有項(xiàng)目的評(píng)分值和。
根據(jù)公式(1)計(jì)算結(jié)果,可用一個(gè)二維數(shù)組來(lái)表示用戶對(duì)所有的項(xiàng)目屬性的偏好程度,如表2所示。
表2 用戶項(xiàng)目屬性偏好示意表Tab.2 Schematic table of preference of project properties for users
借鑒傳統(tǒng)協(xié)同過(guò)濾推薦算法中余弦相似性方法,筆者提出用戶u和v基于項(xiàng)目屬性偏好的相似度sim(u,v)計(jì)算如公式(2)所示。
其中,k代表項(xiàng)目具有k種屬性。
為了解決傳統(tǒng)的基于用戶的協(xié)同過(guò)濾算法中相關(guān)相似度計(jì)算數(shù)據(jù)稀疏性問(wèn)題,提出基于項(xiàng)目屬性偏好的用戶相似性計(jì)算方法:假設(shè)用戶u參與評(píng)分的項(xiàng)目集合為Iu,用戶v參與評(píng)分的項(xiàng)目集合為Iv,找到它們的并集為U(u,v)=Iu∪Iv。用戶u或用戶v對(duì)項(xiàng)目集合U(u,v)中項(xiàng)目i的評(píng)分計(jì)算如公式(3)所示:
ru,i為原始用戶項(xiàng)目矩陣中用戶u對(duì)項(xiàng)目i的評(píng)分。當(dāng)用戶u對(duì)項(xiàng)目i有評(píng)分,則評(píng)分等于其實(shí)際評(píng)分。當(dāng)用戶u對(duì)項(xiàng)目未評(píng)價(jià),則評(píng)分可通過(guò)基于項(xiàng)目屬性偏好的用戶相似性進(jìn)行預(yù)測(cè),該預(yù)測(cè)值Pu,i計(jì)算如公式(4)所示。
其中siml(u,v)表示用戶u和用戶v是基于項(xiàng)目屬性偏好用戶相似度,Rv,i表示用戶v對(duì)項(xiàng)目i的實(shí)際評(píng)分,N(u)為用戶u的基于項(xiàng)目屬性偏好相似度的最近鄰居集合。
經(jīng)過(guò)上述處理,用戶u與用戶v的共同評(píng)分項(xiàng)目數(shù)據(jù)集增加,這樣用戶u和v對(duì)U(u,v)的評(píng)分就都是非0值,可有效緩解傳統(tǒng)的協(xié)同過(guò)濾算法相似性計(jì)算中的數(shù)據(jù)稀疏性問(wèn)題。
筆者實(shí)驗(yàn)所采用的數(shù)據(jù)集是 epinion數(shù)據(jù)集,此數(shù)據(jù)集包含了 49 290 個(gè)獨(dú)立用戶對(duì)139 738件物品的評(píng)分,每個(gè)物品都至少被評(píng)分一次,共有 664 824個(gè)評(píng)分記錄,其中物品的屬性被定義為127種類別,每一件物品具有一種或多種屬性。10 501個(gè)評(píng)分?jǐn)?shù)據(jù)被隨機(jī)選擇為實(shí)驗(yàn)數(shù)據(jù)集,其中共包含101個(gè)獨(dú)立用戶和1 288件物品,其中每個(gè)用戶至少對(duì)200件以上物品進(jìn)行了評(píng)分。稀疏等級(jí)為:
整個(gè)實(shí)驗(yàn)數(shù)據(jù)集按一定規(guī)則分成訓(xùn)練集和測(cè)試集,筆者從實(shí)驗(yàn)數(shù)據(jù)集中選取75%的數(shù)據(jù)作為訓(xùn)練集,25%作為測(cè)試集。
實(shí)驗(yàn)中,筆者采用平均絕對(duì)誤差作為度量算法優(yōu)劣的標(biāo)準(zhǔn)。推薦精度與平均絕對(duì)誤差值成反比。假設(shè)測(cè)試集中有t條有效評(píng)分?jǐn)?shù)據(jù),分別為{R1,… ,Rt},提出的推薦算法對(duì)這些評(píng)分的預(yù)測(cè)值分別設(shè)定位為{P1,… ,Pt},則目標(biāo)用戶u的平均絕對(duì)誤差計(jì)算如公式(5)所示。
根據(jù)文中第1章節(jié)中提出的推薦過(guò)程模型及第2章節(jié)中所述的推薦算法,設(shè)計(jì)算例實(shí)現(xiàn)類如圖2所示。
圖2 算例設(shè)計(jì)類圖Fig.2 Class diagram of an example design
圖2的類Cal_user_RatingSum_ItemClass中實(shí)現(xiàn)獲得用戶userid有評(píng)分的所有項(xiàng)目。類Cal_user_ItemClass_Like中封裝的兩個(gè)方法來(lái)計(jì)算用戶對(duì)每個(gè)項(xiàng)目屬性的偏好值。類Cal_Two_user_Sim計(jì)算不同用戶之間相似度。類Guess_NoRating中有3個(gè)行為方法,其中TopN(){}目的是獲得用戶user的前n個(gè)鄰居, get_neiboList(){}目的是獲得userid的鄰居集,方法get_guess_rating(){}預(yù)測(cè)userid對(duì)itemid的評(píng)分。類SimuV主要實(shí)現(xiàn)計(jì)算用戶之間的相似度,其中g(shù)etCommonRatingItemId(){}方法實(shí)現(xiàn)不同用戶共同評(píng)分的項(xiàng)目編號(hào)的獲取。類PreRating中5個(gè)行為方法, 不同用戶的相似度通過(guò)getSim(){}實(shí)現(xiàn)獲取, 用戶u對(duì)public double getRatingById平均分通過(guò)getAverageRating(){}來(lái)獲取用戶對(duì)項(xiàng)目的評(píng)分。類MAE主要功能是通過(guò)訓(xùn)練集預(yù)測(cè)測(cè)試集中的用戶對(duì)項(xiàng)目的評(píng)分。
以傳統(tǒng)的協(xié)同過(guò)濾推薦算法作為對(duì)照,筆者對(duì)提出的改進(jìn)算法的推薦質(zhì)量進(jìn)行了測(cè)試。在預(yù)測(cè)用戶未評(píng)分的項(xiàng)目評(píng)分時(shí),筆者是通過(guò)計(jì)算基于項(xiàng)目屬性偏好的用戶相似度,選取5作為最近鄰居數(shù)。改進(jìn)的算法以相關(guān)相似性方法作為用戶/項(xiàng)目之間相似性度量標(biāo)準(zhǔn)并計(jì)算其平均絕對(duì)誤差,實(shí)驗(yàn)中目標(biāo)用戶/項(xiàng)目的鄰居個(gè)數(shù)從4增加到20,間隔為4。實(shí)驗(yàn)數(shù)據(jù)庫(kù)為Oracle,開發(fā)環(huán)境為myeclipse,開發(fā)語(yǔ)言選用Java實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果如圖3所示。
由圖3可知,筆者提出的算法在不同的鄰居數(shù)情況下均具有最小的平均絕對(duì)誤差。這是因?yàn)樵诨陧?xiàng)目屬性偏好的協(xié)同過(guò)濾方法中,用戶項(xiàng)目評(píng)分矩陣中無(wú)評(píng)分項(xiàng)目的評(píng)分是通過(guò)基于項(xiàng)目屬性偏好的用戶相似度初步預(yù)測(cè)的,這就使得多用戶之間共同評(píng)分項(xiàng)目增多,提高了算法的推薦精度。實(shí)驗(yàn)表明,與傳統(tǒng)的推薦算法相比,該解決方案能切實(shí)提高項(xiàng)目的推薦精度。
圖3 推薦算法的推薦績(jī)效對(duì)比示意圖Fig.3 Contrast schematic diagram of recommended algorithm
面對(duì)指數(shù)增長(zhǎng)的海量信息,如何根據(jù)用戶的個(gè)性化需求提供快速有效的產(chǎn)品服務(wù)推薦是當(dāng)今網(wǎng)絡(luò)信息社會(huì)研究的重點(diǎn)與難點(diǎn)。傳統(tǒng)的推薦算法目前還存在一些難以克服的缺點(diǎn),如用戶評(píng)分的有效數(shù)據(jù)稀疏、預(yù)測(cè)結(jié)果不精確等問(wèn)題。筆者提出的基于項(xiàng)目屬性偏好的協(xié)同過(guò)濾個(gè)性化推薦模型與算法,在理論上為解決個(gè)性化推薦技術(shù)中項(xiàng)目評(píng)分?jǐn)?shù)據(jù)稀疏性和預(yù)測(cè)精確性問(wèn)題提出了一種新的研究方案,在實(shí)踐中通過(guò)驗(yàn)證表明,該解決方案能切實(shí)提高推薦精度。文中提出的方法如用于行業(yè)特色鮮明、供求信息精簡(jiǎn)的木制品貿(mào)易網(wǎng)站,可很好地提升產(chǎn)品推薦的效率。
[1]雷琨.電子商務(wù)個(gè)性化推薦系統(tǒng)研究[D].成都:電子科技大學(xué),2012.
[2]李聰.電子商務(wù)推薦系統(tǒng)中協(xié)同過(guò)濾瓶頸問(wèn)題研究[D].合肥:合肥工業(yè)大學(xué),2013.
[3]陳曉誠(chéng).基于信任傳播模型的協(xié)同過(guò)濾推薦算法研究[D].廣州:中山大學(xué),2010.
[4]孫小華.協(xié)同過(guò)濾系統(tǒng)的稀疏性與冷啟動(dòng)問(wèn)題研究[D].杭州:浙江大學(xué),2012.
[5]Matevi Kunaver,Tomai Poirl,Matevi Pogacnik,et al.Optimization of combined collaborative recommender systems[J].International Journal of Electronics and Communications,2007,61(7):433-443.
[6]夏培勇.個(gè)性化推薦技術(shù)中的協(xié)同過(guò)濾算法研究[D].青島:中國(guó)海洋大學(xué),2011.