曹建新+呂鵬輝
摘要:協(xié)同過(guò)濾推薦是目前個(gè)性化推薦中應(yīng)用最廣泛的推薦技術(shù),根據(jù)電子商務(wù)網(wǎng)站中用戶(hù)的特征,重點(diǎn)分析了協(xié)同過(guò)濾推薦方法,發(fā)現(xiàn)目前協(xié)同過(guò)濾算法主要利用用戶(hù)評(píng)分?jǐn)?shù)據(jù)進(jìn)行推薦,數(shù)據(jù)單一且稀疏,因此在用戶(hù)評(píng)分?jǐn)?shù)據(jù)的基礎(chǔ)上,對(duì)用戶(hù)屬性特征和用戶(hù)喜好特征數(shù)據(jù)加以利用,提出了一種基于用戶(hù)特征數(shù)據(jù)的協(xié)同過(guò)濾推薦方法,能夠緩解目前算法中存在的數(shù)據(jù)稀疏問(wèn)題,通過(guò)實(shí)驗(yàn)數(shù)據(jù)對(duì)比分析,證明了算法的合理與有效性。
關(guān)鍵詞:推薦系統(tǒng);用戶(hù)特征;協(xié)同過(guò)濾;數(shù)據(jù)稀疏
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)31-0157-03
隨著互聯(lián)網(wǎng)的發(fā)展,電子商務(wù)也得到了飛速發(fā)展。電子商務(wù)規(guī)模的不斷擴(kuò)大,使得用戶(hù)一方面可以方便地獲得豐富的信息,另一方面則要面臨過(guò)量信息伴隨著的信息過(guò)載問(wèn)題[1]。在此背景下,電子商務(wù)推薦系統(tǒng)應(yīng)運(yùn)而生,國(guó)內(nèi)外越來(lái)越多的電子商務(wù)網(wǎng)站應(yīng)用推薦技術(shù)用戶(hù)進(jìn)行個(gè)性化推薦。例如淘寶、京東、亞馬遜等大型網(wǎng)站[2]都有自己的推薦模塊,用于提升其銷(xiāo)售量。亞馬遜(Amazon)是美國(guó)最大的在線電子商務(wù)網(wǎng)站,就實(shí)現(xiàn)了基于協(xié)同過(guò)濾的混合類(lèi)型推薦。
協(xié)同過(guò)濾推薦算法是研究和應(yīng)用最為廣泛的一種算法[3],常用的協(xié)同過(guò)濾推薦算法是基于用戶(hù)的協(xié)同過(guò)濾算法,其基本原理是利用已知用戶(hù)的歷史評(píng)分?jǐn)?shù)據(jù)找到目標(biāo)用戶(hù)的相似用戶(hù),根據(jù)相似用戶(hù)的評(píng)分?jǐn)?shù)據(jù)對(duì)目標(biāo)用戶(hù)產(chǎn)生推薦。但是由于商品信息成千上萬(wàn),每個(gè)用戶(hù)真正購(gòu)買(mǎi)的商品卻很少,所以評(píng)分信息往往更少,數(shù)據(jù)稀疏[4]問(wèn)題明顯。常用的協(xié)同過(guò)濾算法只是對(duì)用戶(hù)——項(xiàng)目評(píng)分信息進(jìn)行分解,沒(méi)有充分利用數(shù)據(jù)信息[5],沒(méi)有考慮到用戶(hù)的性別特征、年齡特征和購(gòu)買(mǎi)特征等用戶(hù)特征,而利用這些特征數(shù)據(jù)能有效地提高協(xié)同過(guò)濾的推薦精度,并且這些數(shù)據(jù)簡(jiǎn)單易得,數(shù)據(jù)量也明顯比評(píng)分?jǐn)?shù)據(jù)量大,為此本文提出對(duì)用戶(hù)特征數(shù)據(jù)進(jìn)行建模,利用用戶(hù)購(gòu)買(mǎi)、收藏和瀏覽特征對(duì)用戶(hù)-項(xiàng)目評(píng)分矩陣中的值進(jìn)行預(yù)測(cè)和填充,能夠緩解數(shù)據(jù)集的稀疏問(wèn)題,并綜合用戶(hù)自身屬性相似度和評(píng)分相似度進(jìn)行相似度計(jì)算,實(shí)驗(yàn)表明,該算法緩解了評(píng)分矩陣的稀疏問(wèn)題,提高了推薦質(zhì)量。
1 常用協(xié)同過(guò)濾推薦方法
1.1 常用協(xié)同過(guò)濾推薦方法的一般步驟
1) 收集用戶(hù)評(píng)分?jǐn)?shù)據(jù),進(jìn)行清理、轉(zhuǎn)換等,得到一個(gè)用戶(hù)-項(xiàng)目評(píng)分矩陣,m代表用戶(hù)數(shù)量,n代表項(xiàng)目數(shù)量,代表用戶(hù)u對(duì)項(xiàng)目的評(píng)分,取值范圍為0到5之間的整數(shù), 0表示未評(píng)分,分值越大,喜好程度越大。
2) 利用相似度計(jì)算方法計(jì)算用戶(hù)-項(xiàng)目評(píng)分矩陣中目標(biāo)用戶(hù)與其他用戶(hù)的相似度,找到用戶(hù)的相似鄰居。通常采用K近鄰方法[6],獲得目標(biāo)用戶(hù)相似度最高的K個(gè)用戶(hù)作為目標(biāo)用戶(hù)的相似鄰居。
3) 按照給定計(jì)算方法,通過(guò)用戶(hù)相似鄰居對(duì)目標(biāo)用戶(hù)未評(píng)分項(xiàng)目的評(píng)分?jǐn)?shù)據(jù),對(duì)目標(biāo)用戶(hù)未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè),最終選擇Top-N作為目標(biāo)用戶(hù)的推薦集合,推薦給目標(biāo)用戶(hù)。
1.2 相似度計(jì)算
用表示用戶(hù)和用戶(hù)的相似性,設(shè)表示用戶(hù)、的共同評(píng)分項(xiàng)目集合,向量分別表示用戶(hù)、在上的評(píng)分,用戶(hù)、在n維項(xiàng)目空間上的評(píng)分分別用,表示,、分別表示用戶(hù)和用戶(hù)對(duì)已評(píng)分項(xiàng)目的平均評(píng)分。
1.3 常用協(xié)同過(guò)濾算法存在的問(wèn)題
隨著用戶(hù)和項(xiàng)目規(guī)模不斷擴(kuò)大,常用的協(xié)同過(guò)濾算法面臨著數(shù)據(jù)稀疏性、可拓展性和冷啟動(dòng)的問(wèn)題。用戶(hù)和商品在不斷增加的過(guò)程中,用戶(hù)評(píng)過(guò)分的商品只占非常小的一部分,這就造成了評(píng)分?jǐn)?shù)據(jù)的稀疏性,影響推薦效果。針對(duì)這個(gè)問(wèn)題,本文發(fā)現(xiàn)通過(guò)結(jié)合用戶(hù)的特征數(shù)據(jù)和協(xié)同過(guò)濾算法,可以構(gòu)建出填充過(guò)的用戶(hù)-項(xiàng)目評(píng)分矩陣,從而緩解稀疏性,提高協(xié)同過(guò)濾推薦的質(zhì)量。同時(shí),由于用戶(hù)的屬性特征較為穩(wěn)定,購(gòu)買(mǎi)、收藏和瀏覽特征也存在一定規(guī)律,上述的計(jì)算過(guò)程可以離線進(jìn)行,對(duì)推薦效率影響較小。
2 基于用戶(hù)特征的協(xié)同過(guò)濾推薦方法
2.1 用戶(hù)特征定義
通常將電子商務(wù)網(wǎng)站的用戶(hù)特征分為屬性特征和喜好特征,屬性特征一般通過(guò)用戶(hù)的基本屬性即用戶(hù)登錄和注冊(cè)時(shí)主動(dòng)提供的信息得到,一般用戶(hù)比較愿意提供性別、生日等不敏感的信息,而喜好特征即通過(guò)對(duì)用戶(hù)購(gòu)買(mǎi)行為、收藏行為和瀏覽行為等分析出的用戶(hù)喜好,即用戶(hù)對(duì)商品的購(gòu)買(mǎi)、收藏和瀏覽以及它們的次數(shù)能不同程度的反應(yīng)用戶(hù)的喜好,因此本文定義用戶(hù)的屬性特征包括用戶(hù)的性別特征和年齡特征,用戶(hù)的喜好特征包括用戶(hù)的購(gòu)買(mǎi)、收藏和瀏覽特征。
2.2 方案設(shè)計(jì)
基于用戶(hù)特征的協(xié)同過(guò)濾推薦方案采用離線計(jì)算推薦結(jié)果的方式,將計(jì)算結(jié)果保存在數(shù)據(jù)庫(kù)中,用戶(hù)登錄后直接在線讀取數(shù)據(jù)庫(kù)中已經(jīng)計(jì)算好的數(shù)據(jù)即可,這樣的方式雖然對(duì)存儲(chǔ)空間有一定犧牲,但是保證了在線推薦的效率,當(dāng)用戶(hù)和商品增加時(shí),推薦的可拓展性也可以得到保證,對(duì)推薦效率影響較小。推薦的整體流程見(jiàn)圖1。
從圖1可以看出離線計(jì)算的部分,首先,通過(guò)計(jì)算用戶(hù)的年齡相似度和性別相似的加權(quán)綜合,得到用戶(hù)的屬性相似度;其次,利用用戶(hù)的喜好特征對(duì)用戶(hù)-項(xiàng)目評(píng)分矩陣進(jìn)行有效的填充后得到用戶(hù)的評(píng)分相似度;最后,加權(quán)綜合得到更為準(zhǔn)確的用戶(hù)綜合相似度。其中,加權(quán)系數(shù)均可通過(guò)實(shí)驗(yàn)分析得到最優(yōu)值,將在實(shí)驗(yàn)結(jié)果與分析中加以闡述。
根據(jù)以上流程,下面對(duì)離線的基于用戶(hù)特征的協(xié)同過(guò)濾推薦方法進(jìn)行詳細(xì)闡述,分為用戶(hù)屬性相似度建模,用戶(hù)評(píng)分相似度建模,綜合相似度計(jì)算,最后推薦產(chǎn)生。
1) 用戶(hù)屬性特征相似度建模
a) 性別相似度
用戶(hù)性別不同選擇商品的喜好會(huì)有很大差別,例如女性用戶(hù)比較注重商品細(xì)節(jié)和外觀,而男性用戶(hù)則側(cè)重商品的實(shí)用性,因此本文將用戶(hù)性別作為區(qū)分用戶(hù)特征的一個(gè)方面,對(duì)于用戶(hù)u和用戶(hù)v,若同性別則相似系數(shù)的值為1,反之,相似系數(shù)為0。設(shè)用戶(hù)u的性別為,設(shè)用戶(hù)v的性別為,則用戶(hù)u和用戶(hù)v的性別相似度可以表示為:
2) 用戶(hù)評(píng)分相似度建模
由于用戶(hù)的評(píng)分十分稀疏,僅通過(guò)評(píng)分信息對(duì)用戶(hù)進(jìn)行分析其結(jié)果不太準(zhǔn)確,因此利用用戶(hù)的購(gòu)買(mǎi)特征、瀏覽特征和收藏特征對(duì)用戶(hù)喜好的表示程度不同,對(duì)用戶(hù)未評(píng)分的商品進(jìn)行評(píng)分預(yù)測(cè),對(duì)用戶(hù)-項(xiàng)目評(píng)分矩陣進(jìn)行填充,將預(yù)測(cè)的用戶(hù)產(chǎn)品評(píng)分和原始的顯性產(chǎn)品評(píng)分相互結(jié)合,可以最大程度的表示用戶(hù)喜好。方案如下:
4) 推薦產(chǎn)生
通過(guò)式(4)的計(jì)算公式對(duì)目標(biāo)用戶(hù)未評(píng)分商品進(jìn)行評(píng)分預(yù)測(cè),最終選擇與測(cè)評(píng)分最后高的top-n個(gè)視為最終推薦結(jié)果推薦給用戶(hù)。
3 結(jié)果與分析
3.1 數(shù)據(jù)來(lái)源
本文實(shí)驗(yàn)基于實(shí)驗(yàn)室與某手機(jī)運(yùn)營(yíng)商聯(lián)合開(kāi)發(fā)的禮品商城項(xiàng)目,所有用戶(hù)和商品數(shù)據(jù)均來(lái)源于該禮品商城。實(shí)驗(yàn)用數(shù)據(jù)包含500個(gè)用戶(hù)的注冊(cè)記錄,以及他們對(duì)1000件商品的評(píng)分記錄、購(gòu)買(mǎi)記錄、收藏記錄和瀏覽記錄。其中,每個(gè)用戶(hù)至少對(duì)15個(gè)商品進(jìn)行了評(píng)分,購(gòu)買(mǎi)至少10件商品,收藏20件商品,瀏覽30件商品。選取該數(shù)據(jù)庫(kù)中100000條評(píng)分?jǐn)?shù)據(jù)和這些數(shù)據(jù)中的所有用戶(hù)的購(gòu)買(mǎi)、收藏和瀏覽記錄。
采用的數(shù)據(jù)集按照 80% 和 20% 的比例分成訓(xùn)練集和測(cè)試集[7]。分別使用常用協(xié)同過(guò)濾算法和本文提出的基于用戶(hù)特征的協(xié)同過(guò)濾算法對(duì)訓(xùn)練集中的評(píng)分?jǐn)?shù)據(jù)進(jìn)行預(yù)測(cè)。
3.2 算法評(píng)價(jià)標(biāo)準(zhǔn)
3.3 實(shí)驗(yàn)結(jié)果分析
實(shí)驗(yàn)一 :對(duì)權(quán)值系數(shù)和λ進(jìn)行取值確定。其中,是用戶(hù)性別權(quán)重系數(shù),(1-)是用戶(hù)年齡權(quán)重系數(shù),由于用戶(hù)性別和年齡肯定會(huì)對(duì)用戶(hù)相似度產(chǎn)生影響,并且兩者對(duì)用戶(hù)相似度的區(qū)分相差不大,所以的取值范圍為{0.3,0.4,0.5,0.6,0.7}。λ是用戶(hù)屬性特征權(quán)重系數(shù),相應(yīng)的(1-λ)即為用戶(hù)評(píng)分相似系數(shù)。因此實(shí)驗(yàn)當(dāng)取值不同時(shí),λ取值從0到1之間時(shí),觀察MAE的值,得到實(shí)驗(yàn)結(jié)果如圖2所示。
由實(shí)驗(yàn)結(jié)果可以看出,當(dāng)=0.6時(shí)MAE的值較其他取值時(shí)都小,即推薦精度最高,與此同時(shí),當(dāng)λ=0.3時(shí)MAE取得最小值,因此,通過(guò)實(shí)驗(yàn)可以得出,本算法中用戶(hù)性別權(quán)重系數(shù)=0.6,用戶(hù)屬性特征權(quán)重系數(shù)λ=0.3時(shí)推薦精度最高,效果最好,因此確定了推薦算法相似度計(jì)算公式。
實(shí)驗(yàn)二 :當(dāng)用戶(hù)最近鄰居個(gè)數(shù)分別取10,20,30,40,50時(shí),將常用的協(xié)同過(guò)濾算法和本文提出的基于用戶(hù)特征的協(xié)同過(guò)濾算法的推薦結(jié)果進(jìn)行比較,(=0.6、λ=0.3)的實(shí)驗(yàn)結(jié)果比較如圖3所示:
從圖3可以看出,當(dāng)(=0.6、λ=0.3)時(shí)本文提出的基于用戶(hù)特征的協(xié)同過(guò)濾算法較之常用的協(xié)同過(guò)濾有所改進(jìn),推薦效果好于常用協(xié)同過(guò)濾算法,本文的算法不僅綜合了用戶(hù)屬性特征,發(fā)現(xiàn)用戶(hù)更多相似性,而且用戶(hù)喜好特征對(duì)用戶(hù)-項(xiàng)目評(píng)分矩陣進(jìn)行了有效填充,從而緩解了數(shù)據(jù)稀疏,提高了推薦精度。
4 結(jié)語(yǔ)
本文針對(duì)常用的協(xié)同過(guò)濾算法目前存在的數(shù)據(jù)稀疏性問(wèn)題提出了基于用戶(hù)特征的協(xié)同過(guò)濾推薦方法,充分利用用戶(hù)屬性特征和喜好特征,建立用戶(hù)屬性相似度模型和評(píng)分相似度模型,對(duì)用戶(hù)-項(xiàng)目評(píng)分矩陣進(jìn)行了填充,并對(duì)用戶(hù)相似度計(jì)算進(jìn)行了綜合。實(shí)驗(yàn)表明,該方法能夠提高推薦精確度,同時(shí),雖然目前的實(shí)驗(yàn)數(shù)據(jù)還不充足,但是由于采用離線計(jì)算,當(dāng)數(shù)據(jù)量增大時(shí)會(huì)雖然會(huì)犧牲一小部分存儲(chǔ)空間,但對(duì)在線推薦性能和效率影響較小,用戶(hù)體驗(yàn)良好。最后,由于本文用到的用戶(hù)特征較用戶(hù)實(shí)際擁有的特征還只是一小部分,接下來(lái)的工作將探究如何結(jié)合用戶(hù)其他有效信息,更加有效地挖掘用戶(hù)特征和潛在喜好,這將涉及多數(shù)據(jù)挖掘的相關(guān)技術(shù),這些問(wèn)題都是我們接下來(lái)要研究的內(nèi)容。
參考文獻(xiàn):
[1] 柯良文,王靖.基于用戶(hù)特征遷移的協(xié)同過(guò)濾推薦[J].計(jì)算機(jī)工程,2015,41(1):37-43
[2] 孟慶慶,張勝男,盧楚雍. 基于用戶(hù)特征和商品特征的組合協(xié)同過(guò)濾算法[J]. 軟件導(dǎo)刊,2015,14(3):41-43
[3] 劉枚蓮,劉同存,李小龍.基于用戶(hù)興趣特征提取的推薦算法研究[J]. 計(jì)算機(jī)應(yīng)用研究,2011,28(5):1664-1667
[4] 張怡文,岳麗.基于共同用戶(hù)和相似標(biāo)簽的好友推薦方法[J].計(jì)算機(jī)應(yīng)用,2013,33(8):2273-2275.
[5] 劉慧婷,陳艷,肖慧慧. 基于用戶(hù)偏好的矩陣分解推薦算法[J].計(jì)算機(jī)應(yīng)用,2015,35(S2) : 118-121.
[6] 羅辛,歐陽(yáng)元新,熊璋,等.通過(guò)相似度支持度優(yōu)化基于K近鄰的協(xié)同過(guò)濾算法[J].計(jì)算機(jī)學(xué)報(bào),2010,33(8):1473-1445.
[7] 張玉芳,代金龍,熊忠陽(yáng). 分步填充緩解數(shù)據(jù)稀疏性的協(xié)同過(guò)濾算法[J]. 計(jì)算機(jī)應(yīng)用研究,2013,30(9):2602-2605.