張 寧,范崇睿,張 巖
(1.北京石油化工學(xué)院 北京 102617;2.北京航空航天大學(xué) 北京 102206;3.北京化工大學(xué) 北京 100029)
隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,電子商務(wù)因其方便快捷的優(yōu)點(diǎn)得到了人們的廣泛關(guān)注。但隨著商品資源數(shù)量的增長(zhǎng),顧客在網(wǎng)絡(luò)購(gòu)物方面很難方便、快捷地找到滿意的商品。為幫助廣大顧客迅速找到其所需要的商品,同時(shí)給商家?guī)?lái)更高的利潤(rùn),個(gè)性化服務(wù)逐漸成為行業(yè)發(fā)展面臨的一個(gè)關(guān)鍵問(wèn)題。作為當(dāng)前解決信息超載問(wèn)題最有效的工具之一,數(shù)據(jù)挖掘技術(shù)應(yīng)運(yùn)而生,而個(gè)性化推薦技術(shù)正是此技術(shù)中一個(gè)重要的體現(xiàn)[1,2]。這種致力于幫助電商網(wǎng)站為顧客購(gòu)物提供完全個(gè)性化服務(wù)的智能平臺(tái),在為顧客帶來(lái)方便、快捷的同時(shí),也為商家?guī)?lái)了巨大的利益。但隨著商品信息的細(xì)化及客戶對(duì)推薦內(nèi)容要求的提高,目前應(yīng)用的幾種常用推薦技術(shù)的不足愈發(fā)明顯,如推薦精度不高、效率過(guò)低、新商品或購(gòu)買率較低的商品不能及時(shí)推薦給顧客等[3]。如何滿足顧客的需求,向他們推薦符合其購(gòu)物習(xí)慣或偏好的商品已成為當(dāng)前推薦算法的首要問(wèn)題之一。研究推薦系統(tǒng)在實(shí)際中的應(yīng)用,無(wú)論是對(duì)于商家自身,還是顧客乃至社會(huì),都具有很高的經(jīng)濟(jì)價(jià)值和實(shí)際意義。
國(guó)外的很多研究學(xué)者對(duì)于個(gè)性化推薦技術(shù)的不斷研究,大大地推動(dòng)了推薦技術(shù)自身的快速發(fā)展。Ahn H J等人提出了一種新穎的相似度評(píng)估方法[4],精確了目標(biāo)用戶最近鄰的求解,經(jīng)實(shí)驗(yàn)驗(yàn)證,該方法有效地解決了傳統(tǒng)相似度計(jì)算過(guò)程中最近鄰求解不準(zhǔn)確的問(wèn)題,有效提高了推薦算法的推薦質(zhì)量;Lemine D和Huang Z等人分別應(yīng)用了SLopeOne算法[5]和用戶行為分析法[6],對(duì)稀疏的評(píng)分矩陣進(jìn)行了有效的填充處理,并得到了很好的效果;Chang H Y等人將神經(jīng)網(wǎng)絡(luò)技術(shù)應(yīng)用于傳統(tǒng)的協(xié)同過(guò)濾算法中,同樣提高了推薦質(zhì)量[7]。此外,Deshpande、Kim H N等人也都提出了自己的改進(jìn)思路,為推薦技術(shù)做出了貢獻(xiàn)[8~10]。
近年來(lái),我國(guó)的研究人員對(duì)個(gè)性化推薦技術(shù)的發(fā)展起到了積極的促進(jìn)作用,提出了許多非常有效的改進(jìn)算法來(lái)解決傳統(tǒng)推薦算法中存在的不足。例如顧中華、鄭楠等人分別以不同思路向傳統(tǒng)相似度計(jì)算公式中加入了時(shí)間權(quán)重因子,解決了顧客偏好隨時(shí)間變化的問(wèn)題[11~14];吳發(fā)青、刑春曉等人對(duì)用戶的興趣進(jìn)行分析,分別提出了興趣局部相似度計(jì)算方法及興趣偏移處理方法[15,16];張子科、周濤等人提出了應(yīng)用用戶—項(xiàng)目—標(biāo)簽的三元關(guān)系對(duì)傳統(tǒng)推薦算法進(jìn)行改進(jìn)的新思路[17];林霜梅、范波等人在用戶行為參考及相似度優(yōu)化方面也有效地改進(jìn)了推薦算法[18~21]。
本文以個(gè)性化推薦技術(shù)在電子商務(wù)領(lǐng)域中的應(yīng)用及個(gè)性化推薦系統(tǒng)為研究?jī)?nèi)容,以傳統(tǒng)的基于用戶的協(xié)同過(guò)濾推薦算法為研究對(duì)象,針對(duì)傳統(tǒng)算法中評(píng)分矩陣過(guò)于稀疏等問(wèn)題,提出了一種新穎的協(xié)同過(guò)濾改進(jìn)算法,闡述了如何利用RFM模型合理地篩選用戶信息,利用處理后的用戶消費(fèi)記錄稠密用戶—項(xiàng)目評(píng)分矩陣,并改進(jìn)了傳統(tǒng)相似度計(jì)算公式,以達(dá)到提高個(gè)性化推薦效果及預(yù)測(cè)準(zhǔn)確度的目的。
協(xié)同過(guò)濾算法的理論依據(jù)是基于這樣一個(gè)事實(shí):在日常生活中,所有人都不是孤立存在的,他們之間總會(huì)存在興趣偏好上的相似性,且在一定的時(shí)間范圍內(nèi)是相對(duì)穩(wěn)定的。每個(gè)用戶都可以和在興趣偏好或購(gòu)買行為上與之相似或相同的其他用戶組成一個(gè)用戶類別,并且此用戶更易于和同類別下的其他用戶成為好朋友,故可以通過(guò)其好朋友的興趣偏好對(duì)其自身的興趣偏好進(jìn)行預(yù)測(cè)。一般來(lái)說(shuō),此算法的推薦過(guò)程可分為用戶數(shù)據(jù)表示 (user data representation)、最近鄰查找(nearest neighbor query)、產(chǎn)生推薦集(recommended generate)3個(gè)環(huán)節(jié)。
用戶對(duì)項(xiàng)目的評(píng)分可用一個(gè)m×n階的用戶—項(xiàng)目評(píng)分矩陣R(m,n)記錄,其中,m、n分別表示系統(tǒng)內(nèi)的總用戶數(shù)及總項(xiàng)目數(shù),每個(gè)元素代表系統(tǒng)內(nèi)一個(gè)用戶對(duì)一個(gè)項(xiàng)目的評(píng)分。
一般情況下評(píng)分矩陣中的評(píng)分值有兩種形式:布爾數(shù)值和實(shí)數(shù)值評(píng)分區(qū)間形式。本文是在一個(gè)五級(jí)評(píng)分制下用戶—項(xiàng)目評(píng)分矩陣中各項(xiàng)分值所對(duì)應(yīng)的用戶對(duì)項(xiàng)目的偏好情況。
在協(xié)同過(guò)濾算法理論基礎(chǔ)上,提出了一種引入RFM模型并利用用戶行為的個(gè)性化協(xié)同過(guò)濾推薦策略。
RFM模型是由美國(guó)人Arthur Hughes首先提出的,它是由用戶的最近一次消費(fèi)recency(R)、消費(fèi)頻率frequency(F)、消費(fèi)金額monetary(M)3個(gè)參數(shù)對(duì)應(yīng)的英文首字母組成的。最近一次消費(fèi)用于衡量用戶最近的一次消費(fèi)行為產(chǎn)生時(shí)間距現(xiàn)在的時(shí)間長(zhǎng)度大小。此要素定義標(biāo)識(shí)的是一個(gè)時(shí)間范圍,它與當(dāng)前推薦算法的計(jì)算時(shí)間有關(guān)。某一條消費(fèi)行為記錄的消費(fèi)時(shí)間是確定的,故R值會(huì)隨著時(shí)間的推移逐漸變大。消費(fèi)頻率指用戶在近一段時(shí)間內(nèi)的消費(fèi)次數(shù)。經(jīng)常發(fā)生消費(fèi)行為的用戶,通常是對(duì)商家商品和服務(wù)滿意度較高的用戶,商家完全有理由相信此類用戶的忠誠(chéng)度及黏性比較高。增加用戶對(duì)商家的消費(fèi)次數(shù)意味著從競(jìng)爭(zhēng)對(duì)手處獲取市場(chǎng)占有率并賺取銷售額,增加商品銷量并提高企業(yè)收益。消費(fèi)金額是對(duì)商家效益最直接的衡量指標(biāo),用戶的消費(fèi)金額越高,商家從其消費(fèi)行為中的獲益就越高,那么商家就越有理由相信該用戶對(duì)自身效益做出了越大的貢獻(xiàn),該用戶本身對(duì)商家也越忠誠(chéng)。
傳統(tǒng)協(xié)同過(guò)濾算法中存在稀疏性問(wèn)題,首先介紹評(píng)分矩陣的改進(jìn)思想,隨后定義了用戶興趣度概念,依據(jù)用戶消費(fèi)行為推測(cè)他們對(duì)商家商品的喜好程度,進(jìn)而推測(cè)他們對(duì)未評(píng)分項(xiàng)目的預(yù)測(cè)分值,填充到初始矩陣中,降低矩陣稀疏程度。
3.2.1 評(píng)分矩陣的改進(jìn)思想
協(xié)同過(guò)濾算法的一大不足即評(píng)分矩陣的稀疏性問(wèn)題,此不足嚴(yán)重影響著整個(gè)算法的推薦質(zhì)量,因此在實(shí)際運(yùn)用中有必要對(duì)評(píng)分矩陣進(jìn)行改進(jìn),即在不主動(dòng)向用戶索取信息、減輕用戶負(fù)擔(dān)的同時(shí),達(dá)到提高系統(tǒng)推薦效果的目的。從另一方面說(shuō),每個(gè)用戶在選購(gòu)商品過(guò)程中,實(shí)際表現(xiàn)出了對(duì)該商品的喜好傾向,用戶本身的購(gòu)買行為標(biāo)志著對(duì)該商品的喜好程度。借用此思想,可利用用戶日常在商家中的消費(fèi)行為來(lái)衡量其對(duì)各商品的喜好情況,進(jìn)而預(yù)測(cè)他們可能在評(píng)分矩陣中的評(píng)分,并將預(yù)測(cè)評(píng)分填充到評(píng)分矩陣對(duì)應(yīng)的商品項(xiàng)目上,進(jìn)而稠密化評(píng)分矩陣,降低其稀疏度,完成評(píng)估矩陣的改進(jìn)操作。
3.2.2 用戶興趣度定義
預(yù)測(cè)用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分,關(guān)鍵在于利用用戶消費(fèi)行為探索其對(duì)商品的喜好情況。為了準(zhǔn)確規(guī)范地衡量用戶對(duì)商品的喜好程度,同時(shí)便于理解,在此處引入用戶興趣度的概念。在闡述其定義及計(jì)算公式前,首先必須提出一種假設(shè):每位用戶對(duì)商家商品的喜歡程度,即興趣度,可從該用戶在一段時(shí)間內(nèi)的歷史消費(fèi)記錄反映出來(lái)。依據(jù)生活常識(shí),若某用戶在某時(shí)間段內(nèi)購(gòu)買某商品數(shù)量較多或購(gòu)買次數(shù)較頻繁,那么商家完全有理由相信該用戶在此時(shí)間段更偏向于喜愛(ài)此商品,即該顧客對(duì)此商品的興趣度較高。
依據(jù)商家掌握的用戶消費(fèi)行為,通過(guò)簡(jiǎn)單的數(shù)據(jù)提取即可獲得一段時(shí)間范圍內(nèi),每個(gè)用戶對(duì)各項(xiàng)商品的購(gòu)買次數(shù)及購(gòu)買數(shù)量。如式(2)、式(3),可分別構(gòu)造兩個(gè)m×n階矩陣A(m,n)和B(m,n),前者表示用戶—商品購(gòu)買次數(shù)矩陣,即m個(gè)用戶對(duì)n項(xiàng)商品的購(gòu)買次數(shù);后者表示用戶—商品購(gòu)買數(shù)量矩陣,即m個(gè)用戶對(duì)n項(xiàng)商品的購(gòu)買數(shù)量,其中,行數(shù)m表示系統(tǒng)總用戶數(shù),列數(shù)n表示系統(tǒng)中總商品數(shù),矩陣中的元素Aij、Bij分別表示用戶i對(duì)商品j的累計(jì)購(gòu)買次數(shù)及累計(jì)購(gòu)買數(shù)量。
若采用五級(jí)制評(píng)分標(biāo)準(zhǔn),以Cij表示用戶i在此段時(shí)間內(nèi)對(duì)商品j的興趣度,則可定義為:
其中,Sij表示此段時(shí)間內(nèi)用戶i對(duì)商品j的單次平均購(gòu)買數(shù)量;Tij表示系統(tǒng)內(nèi)所有用戶此段時(shí)間內(nèi)單次平均購(gòu)買數(shù)量,即商品j在所有用戶下的總購(gòu)買數(shù)量與總購(gòu)買次數(shù)的比值;flag表示當(dāng)前用戶i對(duì)商品j的累計(jì)購(gòu)買次數(shù)是否大于該商品的平均購(gòu)買次數(shù)。它們的計(jì)算式分別如下:
其中,K表示所有用戶中購(gòu)買過(guò)商品j的用戶總數(shù)。
得到每個(gè)用戶興趣度后,便可開(kāi)始評(píng)分矩陣的填充工作。若某用戶對(duì)某商品的單次平均購(gòu)買數(shù)量及累計(jì)購(gòu)買次數(shù)兩項(xiàng)指標(biāo)均高于系統(tǒng)平均值,則說(shuō)明該用戶對(duì)此商品很感興趣,對(duì)應(yīng)評(píng)分矩陣項(xiàng)上可填充5分;若為其他3種情況,則在矩陣對(duì)應(yīng)項(xiàng)上填充4分,即該用戶比較喜歡該商品。
評(píng)分矩陣的改進(jìn)操作中,有以下幾點(diǎn)需要特殊說(shuō)明。
·本算法改進(jìn)中,填充操作僅針對(duì)評(píng)分矩陣中那些用戶未做出評(píng)價(jià)的且根據(jù)用戶消費(fèi)行為,確實(shí)表現(xiàn)出喜好傾向的商品項(xiàng)目,即在矩陣中僅填充4分和5分,而未考慮商品項(xiàng)目的其他分值評(píng)分的填充,即用戶不喜歡或感覺(jué)一般的商品。
·本文中的評(píng)分矩陣填充處理方法是有別于未評(píng)分項(xiàng)取平均分值等其他的矩陣填充方法的,因?yàn)楸痉椒ㄓ行Ю昧松碳胰菀撰@取到的用戶消費(fèi)行為數(shù)據(jù),而且是用真實(shí)的用戶相關(guān)數(shù)據(jù)稠密化評(píng)分矩陣,比純粹地應(yīng)用數(shù)學(xué)處理辦法要好很多。
·以上定義的用戶興趣度計(jì)算針對(duì)的是用戶在某時(shí)間段內(nèi)的興趣喜好,而非一成不變的,此時(shí)間段需要系統(tǒng)人員進(jìn)行提前設(shè)置。也就是說(shuō)系統(tǒng)人員想要分析哪個(gè)時(shí)間段內(nèi)的用戶興趣,或想要以哪個(gè)時(shí)間段內(nèi)的信息為數(shù)據(jù)源去完善評(píng)分矩陣,則設(shè)置哪個(gè)對(duì)應(yīng)時(shí)間段跨度。這種預(yù)先設(shè)置時(shí)間段而后運(yùn)行算法展開(kāi)推薦的做法的好處是顯而易見(jiàn)的,因?yàn)橛脩舻呐d趣喜好是隨著時(shí)間偏移的,即他們的愛(ài)好可能會(huì)因時(shí)間的變化而不同。隨著時(shí)間的推移,用戶可能對(duì)某些商品的興趣逐漸減弱,而在其他商品上產(chǎn)生新的興趣點(diǎn)。因此,個(gè)性化推薦系統(tǒng)中的核心推薦算法部分很有必要適應(yīng)這種用戶的興趣變化過(guò)程,否則做出的推薦更偏向于目標(biāo)用戶的原有興趣點(diǎn),而未迎合其新的興趣點(diǎn),導(dǎo)致推薦質(zhì)量變差。
相似度計(jì)算著眼于以下兩點(diǎn)進(jìn)行改進(jìn)。
·所謂“個(gè)性化推薦”,其中的“推薦”二字,在普遍觀念中當(dāng)然是向用戶推薦其可能感興趣的、預(yù)測(cè)評(píng)分較高的商品,而不是判斷有哪些商品用戶可能不感興趣、預(yù)測(cè)評(píng)分較低或沒(méi)有可能購(gòu)買,然后把此類商品推薦給用戶,即使這樣的推薦再準(zhǔn)確,此行為本身也是毫無(wú)意義的,它已失去了推薦系統(tǒng)的本義,失去了推薦系統(tǒng)的初衷。故在進(jìn)行目標(biāo)用戶與其他用戶間的相似度計(jì)算,進(jìn)而查找目標(biāo)用戶的最近鄰居集合時(shí),有必要把相似度分析側(cè)重點(diǎn)從研究用戶對(duì)所有商品喜好程度的相似性上向用戶對(duì)感興趣商品的喜好程度的相似性上進(jìn)行轉(zhuǎn)移,即計(jì)算出來(lái)的相似度應(yīng)該是用戶喜好商品間的相似度而非全部商品間的相似度。
·傳統(tǒng)的協(xié)同過(guò)濾算法僅僅是在用戶共同評(píng)分項(xiàng)目上考慮用戶間對(duì)項(xiàng)目評(píng)分的相似性,通過(guò)此方面的匹配程度來(lái)衡量用戶間的相似度,但卻忽視了在實(shí)際評(píng)分矩陣中,矩陣本身評(píng)分項(xiàng)較少而導(dǎo)致稀疏度過(guò)高的情況下,用戶間共同評(píng)分項(xiàng)數(shù)量大小的差異同樣會(huì)對(duì)相似性的計(jì)算造成較大的偏差。
見(jiàn)表1中的評(píng)分矩陣,現(xiàn)要計(jì)算用戶U3對(duì)商品項(xiàng)目D的預(yù)測(cè)評(píng)分值X,根據(jù)Pearson相似度計(jì)算式可計(jì)算出用戶U3與用戶U1、U2的相似度值均為1,但可明顯看出用戶U3與U1、U2的相似情況并不一樣,即傳統(tǒng)公式計(jì)算得出的相似度值并不準(zhǔn)確。通過(guò)分析不難發(fā)現(xiàn)用戶U3與用戶U1在計(jì)算了3個(gè)商品評(píng)分后得出的相似度值,而用戶U3與用戶U2計(jì)算了1個(gè)商品的評(píng)分情況,由此可以看出,用戶U3與用戶U1相似度更高。
表1 共同喜好評(píng)分項(xiàng)目數(shù)量對(duì)相似度計(jì)算的影響
通過(guò)上例可發(fā)現(xiàn),若在一個(gè)較小的項(xiàng)目集合中,即使兩個(gè)用戶間評(píng)分相似程度很高,那也不能確定他們的相似度很高。也就是說(shuō),傳統(tǒng)相似度計(jì)算公式僅根據(jù)用戶間的共同評(píng)分項(xiàng)來(lái)計(jì)算相似度,但未考慮共同評(píng)分項(xiàng)集合大小對(duì)相似度計(jì)算結(jié)果造成的影響。在此情況下,可考慮分析用戶間的共同喜好商品的評(píng)分項(xiàng)與總評(píng)分項(xiàng)之間的大小權(quán)重關(guān)系,將此比例作為權(quán)重因子添加到原相似度公式中,對(duì)原有公式做出改進(jìn),如式(8):
其中,用戶a、b對(duì)項(xiàng)目i的評(píng)分利用Ra,i和Rb,i表示,用戶a、b對(duì)項(xiàng)目的平均評(píng)分用Ra和Rb表示。用戶a與b在共同喜好的評(píng)分項(xiàng)目集合用表示,用戶a、b評(píng)價(jià)過(guò)的且為喜好的項(xiàng)目集合用和表示,而I則表示整個(gè)項(xiàng)目集合。本相似度計(jì)算式在傳統(tǒng)的Pearson相似度計(jì)算公式上做了改進(jìn),它充分地考慮了系統(tǒng)向用戶推薦喜好商品這一事實(shí)及共同喜好項(xiàng)目評(píng)分集合大小對(duì)相似度結(jié)果的影響。
值得注意的是,改進(jìn)式中權(quán)重因子計(jì)算方法是兩個(gè)用戶間共同喜好評(píng)分項(xiàng)目的集合與共同評(píng)分集合求比值,即只關(guān)注用戶評(píng)分中的4分、5分項(xiàng),而不關(guān)注有哪些項(xiàng)目為1分、2分或是3分,此思想恰恰符合改進(jìn)思路,到此即完成了對(duì)矩陣僅填充4分、5分評(píng)分值的問(wèn)題解釋。同時(shí),在計(jì)算用戶間相似度前,先對(duì)評(píng)分矩陣進(jìn)行4分和5分值填充處理的好處在于,推薦算法不會(huì)因?yàn)樵u(píng)分矩陣中已評(píng)分項(xiàng)目過(guò)于稀少而影響最終權(quán)重因子計(jì)算的準(zhǔn)確性。
基于協(xié)同過(guò)濾的個(gè)性化推薦算法流程如圖1所示。
圖1 改進(jìn)算法的流程
具體實(shí)現(xiàn)步驟如下。
(1)黏性用戶群的篩選過(guò)程,主要統(tǒng)計(jì)段時(shí)間內(nèi)系統(tǒng)用戶R、F、M值并根據(jù)設(shè)定后的參數(shù)對(duì)原用戶群進(jìn)行篩選處理,具體步驟如下。
·遍歷系統(tǒng)內(nèi)所有用戶,根據(jù)他們的消費(fèi)記錄計(jì)算每個(gè)用戶在分析時(shí)間段內(nèi)的R、F、M值;
·將R值大于R參數(shù)設(shè)置值的用戶過(guò)濾掉得過(guò)濾后集合A;
·將F值小于F參數(shù)設(shè)置值的用戶過(guò)濾掉得過(guò)濾后集合B;
·將M值小于M參數(shù)設(shè)置值的用戶過(guò)濾掉得過(guò)濾后集合C;
·按參數(shù)設(shè)置的大小及篩選意愿取集合A、B、C的交集或并集作為最終的黏性用戶群。
(2)用戶興趣度分析
·遍歷黏性用戶群,統(tǒng)計(jì)每個(gè)用戶對(duì)系統(tǒng)內(nèi)各項(xiàng)商品的購(gòu)買次數(shù),求得用戶—項(xiàng)目購(gòu)買次數(shù)矩陣A;
·遍歷黏性用戶群,統(tǒng)計(jì)每個(gè)用戶對(duì)系統(tǒng)內(nèi)各項(xiàng)商品的累計(jì)購(gòu)買數(shù)量,求得用戶—項(xiàng)目累計(jì)購(gòu)買數(shù)量矩陣B;
·依據(jù)式(5)、式(6)及式(7)計(jì)算每個(gè)用戶對(duì)應(yīng)的Sij、Tij及flag變量值并求得每個(gè)用戶對(duì)各商品項(xiàng)的興趣度;
·依據(jù)計(jì)算得到的興趣度填充初始評(píng)分矩陣,生成填充后的新評(píng)分矩陣。
(3)目標(biāo)用戶最近鄰居集合的生成
·遍歷黏性用戶群,依據(jù)填充后評(píng)分矩陣計(jì)算用戶間的相似度,生成用戶相似度矩陣;
·獲取目標(biāo)用戶與其他用戶間的相似度值,按遞減順序排序;
·截取相似度值排序Top N的用戶作為目標(biāo)用戶的最近鄰居集合。
(4)最終商品推薦列表的產(chǎn)生
·根據(jù)最近鄰居集合,應(yīng)用預(yù)測(cè)評(píng)分式,求得目標(biāo)用戶對(duì)未評(píng)分商品的預(yù)測(cè)分值并按遞減順序排序;
·將前N個(gè)預(yù)測(cè)評(píng)分較高的商品生成最終商品推薦列表。
為驗(yàn)證改進(jìn)算法的可行性及效率,使用了如下的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具進(jìn)行實(shí)驗(yàn)。
(1)硬件配置
CPU:Intel Core i5-2520M 2.5 GHz;內(nèi)存:4 GB;硬盤:250 GB。
(2)軟件配置
操作系統(tǒng):Windows7;編程語(yǔ)言:C#;開(kāi)發(fā)平臺(tái):Visual Studio 2010;數(shù)據(jù)庫(kù):SQL Server 2008。
采用MAE(mean absolute error,均方絕對(duì)誤差)作為改進(jìn)算法推薦質(zhì)量的度量標(biāo)準(zhǔn),以數(shù)據(jù)堂提供的某科研小組收集的用戶消費(fèi)行為記錄及商品項(xiàng)目評(píng)分?jǐn)?shù)據(jù)為主實(shí)驗(yàn)數(shù)據(jù)集B,以MovieLens數(shù)據(jù)集為輔助實(shí)驗(yàn)數(shù)據(jù)集A,設(shè)計(jì)了多組對(duì)比實(shí)驗(yàn)并進(jìn)行了實(shí)驗(yàn)結(jié)果分析。
實(shí)驗(yàn)中采用五重交叉驗(yàn)證技術(shù),共在一個(gè)數(shù)據(jù)集上進(jìn)行5次實(shí)驗(yàn),最后取它們的實(shí)驗(yàn)結(jié)果平均值作為最終的算法驗(yàn)證結(jié)果。首先將原數(shù)據(jù)集合平均分為如圖2所示的A、B、C、D、E 5份,再按4∶1的比例分出5種可能情況,將原始數(shù)據(jù)集中的4份,即80%的樣本量作為訓(xùn)練集,用于產(chǎn)生推薦,另外的一份,即20%的樣本量作為測(cè)試集,用于驗(yàn)證推薦算法質(zhì)量。按此方法分割數(shù)據(jù)時(shí),數(shù)據(jù)集A的訓(xùn)練集和測(cè)試集分別為80 000條和20 000條數(shù)據(jù),而數(shù)據(jù)集B的訓(xùn)練集和測(cè)試集分別為9 600條和2 400條數(shù)據(jù)。五重交叉驗(yàn)證技術(shù)的優(yōu)點(diǎn)在于一份數(shù)據(jù)集可進(jìn)行5輪實(shí)驗(yàn)且在實(shí)驗(yàn)過(guò)程的數(shù)據(jù)應(yīng)用中互不重復(fù)及覆蓋,即將原數(shù)據(jù)信息進(jìn)行了充分的利用。
針對(duì)改進(jìn)后的相似度計(jì)算式,分別在兩個(gè)數(shù)據(jù)集上應(yīng)用余弦相似性、Pearson相似性和改進(jìn)式運(yùn)行傳統(tǒng)協(xié)同過(guò)濾算法,通過(guò)推薦結(jié)果的MAE值大小比較相似度計(jì)算結(jié)果的準(zhǔn)確程度,衡量3個(gè)相似度計(jì)算式自身的優(yōu)劣性,判斷改進(jìn)式在相似度計(jì)算結(jié)果準(zhǔn)確性上是否優(yōu)于兩個(gè)傳統(tǒng)公式,同時(shí)找出兩個(gè)傳統(tǒng)公式中較優(yōu)的一個(gè),為實(shí)驗(yàn)方案設(shè)計(jì)選取比對(duì)公式做前期準(zhǔn)備。實(shí)驗(yàn)中目標(biāo)用戶最近鄰居數(shù)以10為間隔,逐漸從20增加到120,判斷最近鄰個(gè)數(shù)變化對(duì)MAE值的影響情況及3組結(jié)果的大小變化情況,實(shí)驗(yàn)結(jié)果如圖3、圖4所示。
通過(guò)圖3、圖4可得出如下結(jié)論:首先,就單條曲線來(lái)說(shuō),它的變化趨勢(shì)是隨著最近鄰居數(shù)的增加,3條曲線均呈下降趨勢(shì),整個(gè)曲線前半部分下降速度較快,幅度較大,后半部分下降速度較慢并逐漸趨于平緩,當(dāng)最近鄰個(gè)數(shù)大于100時(shí),曲線基本趨于穩(wěn)定,MAE值基本不受鄰居數(shù)變化的影響;其次,就3條曲線相互比對(duì)來(lái)說(shuō),改進(jìn)式對(duì)應(yīng)的曲線整體處于兩種傳統(tǒng)計(jì)算公式對(duì)應(yīng)曲線的下方,說(shuō)明使用它計(jì)算得到的MAE值更小,證明了改進(jìn)式在預(yù)測(cè)效果上比兩種傳統(tǒng)公式效果更好,即改進(jìn)式是可行有效的;第三,兩種傳統(tǒng)公式中Pearson相似度計(jì)算公式較優(yōu)一些,故在接下來(lái)的實(shí)驗(yàn)中會(huì)采用Pearson公式與改進(jìn)式的應(yīng)用效果進(jìn)行比較,以增強(qiáng)實(shí)驗(yàn)的可信度、說(shuō)服力及嚴(yán)謹(jǐn)性。
利用數(shù)據(jù)集B,實(shí)驗(yàn)中采用Pearson公式與改進(jìn)式的應(yīng)用效果進(jìn)行比較設(shè)計(jì)了3組實(shí)驗(yàn)。
5.2.1 RFM模型篩選用戶群對(duì)推薦質(zhì)量的影響
R、F、M 3個(gè)參數(shù)的設(shè)定標(biāo)準(zhǔn)可由篩選不同屬性用戶群的對(duì)象而定,對(duì)于不同的商家面向的用戶來(lái)說(shuō),參數(shù)可能相差不大,也可能相差很大,因?yàn)椴煌瑢傩缘纳唐窙Q定著不同消費(fèi)時(shí)間差、消費(fèi)頻率及消費(fèi)金額。故在篩選用戶群前,需首先確定3個(gè)參數(shù)的合適值。
圖2 原始數(shù)據(jù)集的處理過(guò)程
圖3 在數(shù)據(jù)集A上的MAE結(jié)果對(duì)比
圖4 在數(shù)據(jù)集B上的MAE結(jié)果對(duì)比
一般情況下,企業(yè)商家存儲(chǔ)的用戶消費(fèi)行為數(shù)據(jù)初始格式為顧客ID、消費(fèi)時(shí)間、消費(fèi)金額等字段,利用此數(shù)據(jù)源即可完成對(duì)每個(gè)用戶的篩選操作,進(jìn)而生成RFM模型。
(1)最近一次消費(fèi)(R)
本參數(shù)對(duì)應(yīng)的數(shù)據(jù)形式為一個(gè)固定時(shí)間點(diǎn),在進(jìn)行用戶篩選時(shí),取當(dāng)前的操作時(shí)間點(diǎn)與此時(shí)間點(diǎn)進(jìn)行減法運(yùn)算,并把運(yùn)算結(jié)果賦給該參數(shù)。本參數(shù)的單位較為靈活,可根據(jù)操作人員需要自行設(shè)定,通常情況下按天計(jì),若單位精確到分鐘或粗略到年,在現(xiàn)實(shí)的應(yīng)用場(chǎng)景中的實(shí)際意義就不大了。
(2)消費(fèi)頻率(F)
依據(jù)用戶消費(fèi)行為數(shù)據(jù)可直接計(jì)算得到其在某時(shí)間段內(nèi)的消費(fèi)次數(shù)(在本文處理中,若某用戶在一天中存在著多次光顧和消費(fèi)行為,按一個(gè)消費(fèi)頻率處理)。
(3)消費(fèi)金額(M)
此參數(shù)計(jì)算簡(jiǎn)單,可直接計(jì)算得到用戶在某時(shí)間段內(nèi)的消費(fèi)金額總和。
圖5說(shuō)明當(dāng)3個(gè)參數(shù)較適中時(shí),非黏性用戶得到了有效過(guò)濾,應(yīng)用相對(duì)黏性顧客進(jìn)行相似度計(jì)算并在此集合中產(chǎn)生最近鄰居,商品預(yù)測(cè)結(jié)果會(huì)準(zhǔn)確得多,進(jìn)而有效地降低了MAE值。實(shí)際設(shè)置時(shí),盡量將R值設(shè)置的比AVG(R)大些,將F值與M值設(shè)置的比AVG(F)、AVG(M)小些,同時(shí)篩選后的用戶集合人數(shù)盡量控制在原集合人數(shù)的一半以上,此時(shí)會(huì)取得相對(duì)較好的實(shí)驗(yàn)效果。
5.2.2 評(píng)分矩陣填充處理后對(duì)推薦質(zhì)量的影響
以第5.2.1節(jié)中RFM模型篩選后的較優(yōu)用戶群為基礎(chǔ),分別在原評(píng)分矩陣及填充后評(píng)分矩陣上運(yùn)行傳統(tǒng)協(xié)同過(guò)濾算法,比較MAE值的大小,如圖6所示。
從圖6看出,對(duì)稀疏的評(píng)分矩陣進(jìn)行填充處理后,所得的MAE值相比未填充處理時(shí)所得到的MAE值要低,尤其是在最近鄰居個(gè)數(shù)相對(duì)較少時(shí),MAE值下降幅度較大,說(shuō)明當(dāng)最近鄰居較少時(shí)填充操作可明顯提高推薦質(zhì)量。之后隨著最近鄰居數(shù)的增加,MAE值仍然逐漸變小,但變化速率開(kāi)始減慢,最終曲線趨于平緩,填充矩陣后的MAE值曲線基本處于原矩陣的MAE曲線下方。故可以說(shuō)明應(yīng)用用戶消費(fèi)行為及興趣度概念對(duì)評(píng)分矩陣進(jìn)行填充處理的方法是有效的。
圖5 RFM模型篩選用戶群對(duì)推薦質(zhì)量的影響對(duì)比(R=95天、F=5次、M=300元)
圖6 評(píng)分矩陣填充處理后對(duì)推薦質(zhì)量的影響對(duì)比
5.2.3 改進(jìn)后的相似度計(jì)算式對(duì)推薦質(zhì)量的影響
在RFM模型篩選后的較優(yōu)用戶群及填充后評(píng)分矩陣上運(yùn)行傳統(tǒng)協(xié)同過(guò)濾算法和加入了相似度改進(jìn)式的改進(jìn)算法,比較MAE值的大小,如圖7所示。
圖7 改進(jìn)后的相似度計(jì)算式對(duì)推薦質(zhì)量的影響對(duì)比
從圖7可看出,引入權(quán)重因子后,在兩個(gè)用戶間的共同喜好商品上計(jì)算相似度,求得的MAE值要比應(yīng)用傳統(tǒng)Pearson公式時(shí)的MAE值要低,雖然隨著最近鄰居數(shù)的增加,MAE值減小的速率逐漸變慢,推薦質(zhì)量的改善程度有所下降,曲線逐漸趨于平緩,但其依然優(yōu)于應(yīng)用傳統(tǒng)公式時(shí)的推薦效果,前者對(duì)應(yīng)的曲線各部分明顯處于后者下方,證明了改進(jìn)式的積極意義。
本文以提高推薦準(zhǔn)確度為目標(biāo),在傳統(tǒng)的基于用戶的協(xié)同過(guò)濾算法上進(jìn)行了改進(jìn),提出了一種引入RFM模型并利用用戶購(gòu)物行為進(jìn)行相似度計(jì)算的新型推薦算法。本算法與傳統(tǒng)算法相比,其優(yōu)勢(shì)主要體現(xiàn)在:新算法中引入RFM模型對(duì)原用戶群進(jìn)行了多條件篩選,使推薦數(shù)據(jù)源更加準(zhǔn)確高效;改進(jìn)算法中利用顧客歷史消費(fèi)記錄對(duì)原評(píng)估矩陣進(jìn)行填充處理,提高了評(píng)分矩陣的稠密度;對(duì)傳統(tǒng)的Pearson相似度計(jì)算公式進(jìn)行改進(jìn),使目標(biāo)用戶的相似鄰居查找更加準(zhǔn)確;最后,將改進(jìn)算法應(yīng)用于一套具有個(gè)性化商品推薦功能的實(shí)用性推薦系統(tǒng)中,驗(yàn)證了該推薦算法的實(shí)用性、高效性和準(zhǔn)確性。
1 劉建國(guó),周濤,汪秉弘.個(gè)性化推薦系統(tǒng)的研究進(jìn)展.自然科學(xué)進(jìn)展,2009,19(1):2~7 Liu J G,Zhou T,Wang B H.Research progress of personalized recommendation system.Progress in Natural Science,2009,19(1):2~7
2 蔣盛益,李霞.數(shù)據(jù)挖掘原理與實(shí)踐.北京:電子工業(yè)出版社,2011 Jiang S Y,Li X.Principle and Practice of Data Mining.Beijing:Publishing House of Electronics Industry,2011
3 Adomavicius G,Tuzhilin A.Toward the next generation of recommender systems:a survey of the state-of-the-art and possible extensions.IEEE Transactions on Knowledge and Data Engineering,2005,17(6):734~749
4 Ahn H J.A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem.Information Sciences,2008,178(1):37~51
5 Lemime D,Maclachlan A.Slope one predictors for online rating-based collaborative filtering.Proceedings of SIAM Data Mining Conference,Newport Beach,California,USA,2005
6 Huang Z,Chen H,Zeng D.Analyzing consumer-product graphs:empirical findings and applications in recommender systems.Management Science,2007,53(7):1146~1164
7 Zhang F,Chang H Y.A collaborative filtering algorithm embedded bp network to ameliborate sparsity issue.Proceedings of 2005 International Conference on Machine Learning and Cybernetics,Guangzhou,China,2005:1839~1844
8 Deshpande M,Karypic G.Item-based top-n recommendation algorithms.ACM Transactions on Information Systems,2004,28(1):143~177
9 Kim H N.Collaborative filtering based on collaborative tagging for enhancing the quality of recommendation.Information Processing and Management,2009(8):368~379
10 Das A,Datar M,Garg A.Google news personalization:scalable oline collaborative filtering.Proceedings of the 16th International Conference on World Wide Web,Banff Alberta,Canada,2007
11 顧申華.結(jié)合奇異值分解和時(shí)間權(quán)重的協(xié)同過(guò)濾算法.計(jì)算機(jī)應(yīng)用與軟件,2010,27(6):256~259 Gu S H.Collaborative filtering algorithm combining singular value decomposition and time weight.Computer Applications and Software,2010,27(6):256~259
12 Zheng N,Li Q D.A recommender system based on tag and time information for social tagging systems.Expert Systems with Applications,2011(38):4575~4587
13 叢曉琪,楊懷珍,劉枚蓮.基于時(shí)間加權(quán)的協(xié)同過(guò)濾算法研究.計(jì)算機(jī)應(yīng)用與軟件,2009,26(8):120~140 Cong X Q,Yang H Z,Liu M L.On collaborative filtering algorithm based on time weight.Computer Applications and Software,2009,26(8):120~140
14 彭德巍,胡斌.一種基于用戶特征和時(shí)間的協(xié)同過(guò)濾算法.武漢理工大學(xué)學(xué)報(bào),2009,31(3):24~28 Peng D W,Hu B.A collaborative filtering recommendation based on user characteristics and time weight.Journal of Wuhan University of Technology,2009,31(3):24~28
15 吳發(fā)青,賀樑,夏薇薇.一種基于用戶興趣局部相似性的推薦算法.計(jì)算機(jī)應(yīng)用,2008,28(8):1981~1985 Wu F Q,He L,Xia W W.A recommendation algorithm based on users’partial similarity.Computer Applications,2008,28(8):1981~1985
16 刑春曉,高鳳榮,戰(zhàn)思南.適應(yīng)用戶興趣變化的協(xié)同過(guò)濾推薦算法.計(jì)算機(jī)研究與發(fā)展,2007,44(2):196~231 Xing X C,Gao F R,Zhan S N.A collaborative filtering recommendation algorithm incorporated with user interest change.Journal of Computer Research and Development,2007,44(2):196~231
17 Zhang Z K,Zhou T.Personalized recommendation via integrated diffusion on user-item-tag tripartite graphs.Physica A:Statistical Mechanics and its Applications,2010,389(1):179~186
18 林霜梅,汪更生,陳弈秋.個(gè)性化推薦系統(tǒng)中的用戶建模及特征選擇.計(jì)算機(jī)工程,2007,33(17):196~198Lin S M,Wang G S,Chen Y Q.User modeling and feature selection in personalized recommending system.Computer Engineering,2007,33(17):196~198
19 趙銀春,付關(guān)友,朱征宇.基于Web瀏覽內(nèi)容和行為相結(jié)合的用戶興趣挖掘.計(jì)算機(jī)工程,2005,31(12):93~94 Zhao Y C,Fu G Y,Zhu Z Y.User interest mining of combining web content and behavior analysis.Computer Engineering,2005,31(12):93~94
20 范波,程久軍.用戶間多相似度協(xié)同過(guò)濾推薦算法.計(jì)算機(jī)科學(xué),2012,19(39):23~26 Fan B,Cheng J J.Collaborative filtering recommendation algorithm based on user’s multi-similarity.Computer Science,2012,19(39):23~26
21 徐翔,王煦法.協(xié)同過(guò)濾算法中的相似度優(yōu)化方法.計(jì)算機(jī)工程,2010,36(6):52~54 Xu X,Wang X F.Optimization method of similarity degree in collaborativefilteralgorithm.ComputerEngineering,2010,36(6):52~54
22 Konstan H.Evaluating collaborative filtering recommender system.ACM Transactions on Information Systems,2004,22(1):5~53
23 李春,朱珍民,高曉芳.基于鄰居決策的協(xié)同過(guò)濾推薦算法.計(jì)算機(jī)工程,2010,36(13):34~36 Li C,Zhu Z M,Gao X F.Collaborative filtering recommendation algorithm based on neighbor decision-making.Computer Engineering,2010,36(13):34~36
24 鄧愛(ài)林,朱揚(yáng)勇,施伯樂(lè).基于項(xiàng)目評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法.軟件學(xué)報(bào),2003,14(9):1621~1628 Deng A L,Zhu Y Y,Shi B L.A collaborative filtering recommendation algorithm based on item rating prediction.Journal of Software,2003,14(9):1621~1628