《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 電子商務(wù)協(xié)作過濾推薦技術(shù)的算法研究與改進(jìn)

電子商務(wù)協(xié)作過濾推薦技術(shù)的算法研究與改進(jìn)

2009-07-28
作者:賀智明,王海超,高 娟

  摘 要: 推薦算法的好壞直接影響推薦系統(tǒng)的效率。本文提出了一種改進(jìn)的基于K-中心點(diǎn)算法的合作聚類推薦算法,該算法有效減少了數(shù)值矩陣的行數(shù),大大縮短了搜尋近鄰客戶的時(shí)間,從而提高了算法的執(zhí)行效率和準(zhǔn)確性。
??? 關(guān)鍵詞: 電子商務(wù);推薦系統(tǒng);K-中心點(diǎn)算法;客戶關(guān)系管理

?

?? 個(gè)性化推薦系統(tǒng)是現(xiàn)代商務(wù)發(fā)展的產(chǎn)物,協(xié)作過濾推薦技術(shù)是個(gè)性化推薦系統(tǒng)中的一種典型技術(shù),其優(yōu)勢是為電子商務(wù)的顧客提供個(gè)性化服務(wù),促進(jìn)一對一的銷售,使公司擁有顧客的更準(zhǔn)確的模型,從而可以對顧客的需求有更好的了解。而服務(wù)于這些需求則可在相關(guān)產(chǎn)品的交叉銷售、提升銷售、產(chǎn)品親和力、一對一促銷、保留客戶等方面可獲得巨大的成功。
  然而,協(xié)作過濾推薦技術(shù)也還存在一些致命的缺點(diǎn),如稀疏問題、冷開始問題、假負(fù)和假正等問題。稀疏問題(Sparsity)是協(xié)作過濾推薦技術(shù)中的重要問題之一,每個(gè)用戶一般都只對很少的項(xiàng)目作出評價(jià),整個(gè)數(shù)據(jù)陣變得非常稀疏,一般都在1 %以下。這種情況帶來的問題是得到用戶間的相似性不準(zhǔn)確,鄰居用戶不可靠。冷開始問題又稱第一評價(jià)問題或新項(xiàng)目問題,如果一個(gè)新項(xiàng)目很少有人去評價(jià)它,或都不去評價(jià)它,則這個(gè)項(xiàng)目肯定得不到推薦,推薦系統(tǒng)就失去了作用。假負(fù)是指系統(tǒng)沒有推薦但顧客卻喜歡的產(chǎn)品;假正則是指系統(tǒng)推薦但顧客卻并不喜歡的產(chǎn)品[1]。這些問題都不是人們想看到的。因此,怎樣使這些問題得到有效的解決就成為目前研究的重點(diǎn)。
1 協(xié)作過濾推薦算法
  協(xié)作過濾推薦算法(Collaborative Filtering Recommendation)是目前應(yīng)用廣泛且效率較高的一種個(gè)性化推薦技術(shù)。它基于鄰居用戶的資料得到目標(biāo)用戶的推薦,其推薦的個(gè)性化程度更高[2]。
1.1 協(xié)作過濾算法的思路
  協(xié)作過濾推薦是基于鄰居用戶的興趣愛好預(yù)測目標(biāo)用戶的興趣偏好。算法首先使用統(tǒng)計(jì)技術(shù)尋找與目標(biāo)用戶具有相同喜好的鄰居,然后根據(jù)目標(biāo)用戶的鄰居的偏好產(chǎn)生向目標(biāo)用戶的推薦[2]。
??? 協(xié)作過濾是基于這樣一種假設(shè)[3]:如果用戶對一些項(xiàng)目的評分比較相似,則他們對其他項(xiàng)目的評分也比較相似;如果大部分用戶對一些項(xiàng)目的評分比較相似,則當(dāng)前用戶對這些項(xiàng)目的評分也比較相似。
??? 協(xié)作過濾推薦系統(tǒng)使用統(tǒng)計(jì)技術(shù)搜索目標(biāo)用戶的若干最近鄰,然后根據(jù)最近鄰對項(xiàng)目的評分預(yù)測目標(biāo)用戶對項(xiàng)目的評分,產(chǎn)生對應(yīng)的推薦列表。
1.2 算法模型
??? 對用戶己經(jīng)購買過的商品進(jìn)行建模,可以有效度量用戶之間的相似性。用戶評分?jǐn)?shù)據(jù)可以用一個(gè)n×m階用戶-項(xiàng)目評分矩陣表示,n行代表個(gè)n用戶,m列代表m個(gè)項(xiàng)目,第i行j列的元素代表用戶i對項(xiàng)目j的評分值。這里只介紹用戶間的相似度度量公式,項(xiàng)目間的度量公式和用戶間的有些相似。
  度量用戶間相似性的方法有許多種,主要有4種方法:余弦相似性度量公式(Cosine-based Similarity)、修正的余弦相似度公式(Adjusted Cosine Similarity)、相關(guān)相似度公式(Correlation-based Similarity)、求熵(互信息)的方法。通常采用前3種方法。首先得到用戶i和用戶j評分過的所有項(xiàng)目,然后通過不同的相似性度量方法計(jì)算用戶i和用戶j之間的相似性,記為sim(i,j)。
  (1)余弦相似性度量
  用戶評分看作為n維項(xiàng)空間上的向量,如果用戶對其項(xiàng)沒有進(jìn)行評分,則將用戶對該項(xiàng)的評分設(shè)為0,用戶間的相似性通過向量間的余弦夾角度量。設(shè)用戶i和用戶j在n維項(xiàng)空間上的評分分別表示為向量,則用戶i和用戶j之間的相似性sim(i,j)為:
  
式中,分子為2個(gè)用戶評分向量的內(nèi)積,分母為2個(gè)用戶向量模的乘積。
  (2)修正的余弦相似性
  修正余弦相關(guān)性充分考慮了不同用戶的評分尺度問題,通過減去用戶對項(xiàng)目的評分來實(shí)現(xiàn)它的優(yōu)點(diǎn)。設(shè)用戶i和用戶j評分過的相集合,則用戶i和用戶j之間的相似性sim(i,j)為:
  
  最近鄰居查詢的目標(biāo)就是對每一個(gè)用戶a,在整個(gè)用戶空間中查找用戶集合,,使得N1與a的相似度sim(a,N1)最高,N2與a的相似度sim(a,N2)次之,依此類推。
??? (3)相關(guān)相似度
  ? 相關(guān)相似度又稱Pearson相關(guān)系數(shù)度量,設(shè)用戶i和用戶j共同評分過的項(xiàng)目集合用Ii,j=I1∩I2表示,則用戶i和用戶j的相似度sim(i,j)為:
???
1.3 鄰居集合的形成
??? 鄰居集合的形成一般有4種方法:Top-N、K近鄰法、閾值法、聚類法、貝葉斯網(wǎng)絡(luò)法。最常用的是前2種方法。
??? 算法的核心部分是為一個(gè)需要推薦服務(wù)的目標(biāo)用戶尋找最相似的最近鄰居集。根據(jù)預(yù)先確定的鄰居數(shù)N,采用以上相似度的算法按由大到小的順序選取前N個(gè)用戶作為鄰居用戶集合?;蛘吒鶕?jù)預(yù)先確定的相似度閾值,選擇所有相似度大于閾值的作為鄰居用戶集合。
1.4 推薦產(chǎn)生
  根據(jù)當(dāng)前用戶最近鄰居對商品的評分信息預(yù)測當(dāng)前用戶對未評分商品的評分,產(chǎn)生Top-N商品推薦。通過上面提出的相似性度量方法得到目標(biāo)用戶的最近鄰居,下一步需要產(chǎn)生相應(yīng)的推薦。設(shè)用戶u的最近鄰居集合用Nu表示,則用戶u對項(xiàng)目i預(yù)測評分Pu,i可以通過用戶u對最近鄰居集合Nu中項(xiàng)的評分得到,計(jì)算方法如下:
  
式中,sim(u,n)表示用戶u與用戶n之間的相似性,Rn,i表示用戶n對項(xiàng)i的評分,Ru和Rn分別表示用戶u和用戶n對項(xiàng)的平均評分。
??? 通過上述方法預(yù)測用戶對所有未評分項(xiàng)的評分,然后選擇預(yù)測評分最高的前n項(xiàng)作為推薦結(jié)果反饋給當(dāng)前的目標(biāo)用戶。
2 基于K-中心點(diǎn)算法的合作聚類算法
  盡管協(xié)作過濾技術(shù)在個(gè)性化推薦系統(tǒng)中獲得了極大的成功,但隨著電子商務(wù)系統(tǒng)規(guī)模的擴(kuò)大,用戶數(shù)目和項(xiàng)數(shù)目指數(shù)級增長,導(dǎo)致用戶評分?jǐn)?shù)據(jù)的極端稀疏性。由于用戶的最近鄰居至少對2件商品進(jìn)行了共同評分,因此在用戶評分?jǐn)?shù)據(jù)極端稀疏的情況下,無法搜索到某些用戶其最近鄰居,導(dǎo)致協(xié)作過濾推薦算法無法對這些用戶產(chǎn)生任何推薦。其次,在大規(guī)模數(shù)據(jù)集上搜索當(dāng)前用戶的最近鄰居非常費(fèi)時(shí),難以保證協(xié)作過濾推薦算法的實(shí)時(shí)性要求。最后,協(xié)作過濾推薦算法無法發(fā)現(xiàn)商品之間存在的隱含關(guān)聯(lián)[4]。
  現(xiàn)有許多種改進(jìn)的算法來解決這一難題,如基于降維的協(xié)作過濾推薦算法、Cluster-based協(xié)作過濾推薦算法都是目前的主流算法。在基于降維的協(xié)作過濾推薦算法中,奇異值分解SVD(Singular Value Decomposetion)技術(shù)在信息檢索領(lǐng)域得到了廣泛應(yīng)用。基于SVD技術(shù)的協(xié)作過濾推薦算法能較好地解決數(shù)據(jù)稀疏性問題,同時(shí),因?yàn)閗<2.1 Cluster-based協(xié)作過濾推薦算法
  Cluster-based協(xié)作過濾推薦算法,將整個(gè)Web日志根據(jù)用戶的購買習(xí)慣和評分特點(diǎn)劃分為若干個(gè)不同的聚類,從而使得聚類內(nèi)部用戶對項(xiàng)的評分盡可能相似,而不同聚類間用戶對商品的評分盡可能不同甚至相反。使目標(biāo)用戶與其相似度最近的那個(gè)簇對其進(jìn)行推薦,從而提高了精確度,也提高了最近鄰查詢的效率。
  根據(jù)每個(gè)聚類中用戶對商品的評分信息生成一個(gè)虛擬用戶,它代表了該聚類中用戶對商品的典型評分,將所有虛擬用戶對商品的評分作為新的搜索空間,查詢當(dāng)前用戶在虛擬用戶空間中的最近鄰居,產(chǎn)生對應(yīng)的推薦結(jié)果。相對于原始的用戶空間而言,虛擬用戶空間要小得多,因此最近鄰查詢的效率也高得多,可以有效提高推薦算法的實(shí)時(shí)響應(yīng)速度[4]。
2.2 改進(jìn)的基于K-中心點(diǎn)算法的合作聚類算法
  本文提出了一種改進(jìn)的K-中心點(diǎn)算法(PAM)用來對整個(gè)用戶的訪問記錄和訪問特點(diǎn)進(jìn)行聚類,主要步驟如下:
  設(shè)站點(diǎn)有m個(gè)頁面,共有n個(gè)用戶訪問,由于采用協(xié)作推薦方法,設(shè)T為一個(gè)n×(m+1)的矩陣。n×m的矩陣為用戶-項(xiàng)目矩陣。第m+1列表征該行被加入到該矩陣中的時(shí)間,目的是為了始終讓此矩陣保持最新狀態(tài),避免一些過時(shí)的興趣,因?yàn)榭蛻舻呐d趣可能會改變。
  輸入:初始簇K、T。
  輸出:生成新的聚類中心Maincenter。
  (1)k=[K/2];????      ? //起始時(shí)取[K/2]值作為k-中心點(diǎn)算法的初始k值
  (2)隨機(jī)選取k個(gè)對象作為初始的簇的中心。
  (3)重復(fù)。
  (4)對其他非中心點(diǎn)對象,計(jì)算其與中心點(diǎn)的距離,并將其分配到距離最近的中心點(diǎn)代表的簇。
  (5)重復(fù)。
  (6)選擇一個(gè)未被選擇的中心點(diǎn)Oi。
  (7)重復(fù)。
  (8)選取一個(gè)未被選擇的非中心點(diǎn)對象Om,計(jì)算用Om代替Oi的總代價(jià)并記錄在集合S中。
  (9)直到所有的非中心點(diǎn)對象都被選擇過。
  (10)直到所有的中心點(diǎn)都被選擇過。
  (11)若在S集合中所有非中心點(diǎn)對象代替所有中心點(diǎn)后計(jì)算的總代價(jià)中存在小于0的,則找出S中最小的一個(gè),用該非中心點(diǎn)替代對應(yīng)的中心點(diǎn)。
??? (12)若在S集合中所有非中心點(diǎn)對象代替所有中心點(diǎn)后計(jì)算的總代價(jià)中存在大于0的,則找出代價(jià)最大的一個(gè),并將其設(shè)為一個(gè)新的中心點(diǎn)。
??? (13)這樣形成一個(gè)新的含有k+1個(gè)中心的集合。
??? (14)直到S集合中所有的值都大于0,且k<=K。
??? (15)最后將每個(gè)用戶分配到相似性最高的聚類中。
??? (16)對新生成的聚類,計(jì)算聚類中所有用戶對項(xiàng)的平均評分,生成新的聚類中心。
??? (17)重復(fù)15~16,直到聚類不再發(fā)生改變?yōu)橹埂?BR>  生成聚類之后,Cluster-based協(xié)作過濾推薦算法可以分為如下2步:
??? (1)生成虛擬用戶集
??? 虛擬用戶集由聚類所得的聚類中心組成,這些聚類中心是根據(jù)不同的聚類生成的,是每個(gè)聚類中與其他用戶的距離之和最小的對象的集合,代表了其所在聚類中用戶對商品的典型評分。
??? (2)產(chǎn)生推薦
??? 得到虛擬用戶集之后,對其使用各種相似性度量方法以搜索當(dāng)前用戶的最近鄰居,再根據(jù)這些最近鄰居對商品的評分信息來生成相應(yīng)的推薦結(jié)果。其方法與協(xié)作過濾推薦算法類似,不再贅述。
  由于采用了聚類算法壓縮了T矩陣(減少了行的個(gè)數(shù)),當(dāng)一段時(shí)間之后,一些新的用戶訪問被換入T矩陣后,就需要重新運(yùn)行此算法已得到新的壓縮結(jié)果。
  電子商務(wù)已經(jīng)成為現(xiàn)代商務(wù)的主流,其規(guī)模也已變得越來越大,伴隨著商品同質(zhì)化時(shí)代的來臨,提高客戶的滿意度、忠誠度,將是企業(yè)盈利的首要因素,對于推薦系統(tǒng)的要求也將越來越高。本文通過將K-中心點(diǎn)算法與合作聚類算法融合,可有效解決傳統(tǒng)推薦系統(tǒng)中的冷開始、數(shù)據(jù)稀疏性、假負(fù)、假正等問題,從而可以更好地獲得相近客戶,提高推薦的效果和準(zhǔn)確性。


參考文獻(xiàn)
[1] HAN J W,KAMBER M.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.北京:機(jī)械工業(yè)出版社,2007:440.
[2] 魯為.協(xié)作過濾算法及其在個(gè)性化推薦系統(tǒng)中的應(yīng)用[D].
北京:北京郵電大學(xué),2007:22-24.
[3] BREESE J,HECKERMAN C.kadie.Empirical analysis of predictive allgorithms for collaborative filtering.In:Proceedings of the 14th Conference on Uncertinty in Aritificial Intelligence,San Francisco,CA,July 1998:44-52.
[4] 鄧愛林.電子商務(wù)推薦系統(tǒng)關(guān)健技術(shù)研究[D].上海:復(fù)旦大學(xué),2003.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。