夏 翔,劉 姜,倪 楓,肖云天
(上海理工大學(xué)管理學(xué)院,上海 200093)
隨著互聯(lián)網(wǎng)高速發(fā)展及電商紅利的爆發(fā),數(shù)據(jù)呈現(xiàn)爆炸式增長,其規(guī)模之大,產(chǎn)生速度之快,使得人們面對海量信息進行查詢挖掘和分析成了熱點和難點。推薦系統(tǒng)通過自動向用戶推薦可能符合其興趣的項目來處理信息過載問題[1]。目前,推薦系統(tǒng)的應(yīng)用領(lǐng)域十分廣泛,包括商品推薦[2]、音樂推薦[3]、新聞推薦[4]、圖書推薦[5]等。
現(xiàn)有的推薦系統(tǒng)雖已進入成熟階段,但也面臨著一些長久以來的挑戰(zhàn),如:數(shù)據(jù)稀疏性[6]、冷啟動[7]、等問題。本文重點針對現(xiàn)有協(xié)同過濾忽略用戶屬性權(quán)重的問題,以及用戶興趣隨時間發(fā)生動態(tài)遷移問題,考慮用戶屬性相似度及用戶時間權(quán)重,提出了一種基于混合相似度和用戶興趣遷移的改進協(xié)同過濾推薦算法HSIT-CF(hybrid similarity and interest transfer collaborative filtering)。
傳統(tǒng)的User-based 步驟主要分為以下幾步:構(gòu)建用戶—項目評分矩陣、計算用戶相似度、評分預(yù)測并產(chǎn) 生Top-N 推 薦。假 設(shè)U={u1,u2,…,um} 是用戶 集合,I={i1,i2,…,in} 是項目集合,構(gòu)建用戶—項目評分矩陣R,其中包括m 個用戶和n個項目,如表1所示,元素ru,i表示用戶u 對項目i 的評分,數(shù)值越大表示用戶對該項目偏好程度越高,反之則越低。
表1 用戶—項目評分矩陣R
修正的余弦相似度在余弦相似度上彌補了其不足,將用戶評分減去該用戶的平均評分后,再進行原本的相似度計算,其計算公式如下:
本文利用熵權(quán)法計算出各個用戶屬性類型權(quán)重wj,以及計算各個用戶的綜合屬性得分值si,假設(shè)有m 個用戶,n 個屬性,xij為第i 個用戶的第j 個屬性值(i=1,…,m;j=1,…,n),其步驟如下:
⑴標準化處理
通過標準化處理,把屬性的絕對值轉(zhuǎn)化為相對值,歸一化后的數(shù)據(jù)仍記為xij。
⑵計算第j個屬性下第i個樣本值占該屬性的比重
⑶計算第j個屬性的熵值
(4)計算信息熵冗余度
⑸計算各個屬性的權(quán)重
⑹計算各個用戶的綜合屬性得分值
本文提出的基于混合相似度與用戶興趣遷移的協(xié)同過濾推薦算法,算法具體流程如圖1所示。
圖1 HSIT-CF算法推薦流程
在實際生活中,屬性相似的的兩個用戶,其興趣偏好往往同時具有相似性。例如針對美食推薦項目,四川人更普遍喜歡吃辣,而廣東人更喜清淡,此時用戶背景中的地域?qū)傩詫τ脩粝嗨贫鹊挠嬎阌绊戄^大,因此賦予各個用戶不同的權(quán)重是具有現(xiàn)實意義的。
本文實驗所使用的數(shù)據(jù)集為明尼蘇達大學(xué)的Grouplens 研究小組收集的Movielens-100k,如表2。在對用戶屬性特征表中的年齡、性別、職業(yè)、時間戳等數(shù)據(jù)進行預(yù)處理時,根據(jù)上述方法計算出的用戶屬性權(quán)重信息結(jié)果如表3所示。
表2 用戶屬性特征表
表3 用戶屬性權(quán)重表
利用余弦公式計算出用戶間的屬性相似度sim1(u,v)。其公式如下:
其中,simL(u,v)表示用戶u,v之間的屬性相似度,表示用戶屬性特征向量。
傳統(tǒng)協(xié)同過濾只考慮用戶間的相似性,往往忽略了用戶興趣的動態(tài)變化,從而導(dǎo)致推薦精度會隨時間推移而下降[8]。指數(shù)衰減函數(shù)可以通過衰減項目影響力,即運用用戶興趣權(quán)重來衡量用戶長期興趣[9]。本文借助指數(shù)函數(shù)作為時間權(quán)重來描述用戶的興趣變化差異,用戶對項目的評分越靠近當前,其時間權(quán)重越大。
其中,Wu,i表示用戶u對項目i的興趣衰減的時間權(quán)重,其大小反映了用戶興趣衰減快慢;tu,i表示用戶u 對項目i 的評分時間,t0表示項目的發(fā)布時間,tnow表示當前時間。
本文2.1節(jié)(公式⑻)和1.1(公式⑴)中提出的相似度的計算方法各有優(yōu)點,因此考慮將兩種相似度進行結(jié)合,計算最終的用戶相似度,其計算公式如下:
其中,a 的值在0~1 之間變化,表示兩種相似度的融合比例。simP(u,v)sim(u,v)表示用戶評分相似度,simL(u,v)sim1(u,v)表示用戶屬性相似度。
將上述混合相似度與用戶時間權(quán)重引入傳統(tǒng)協(xié)同過濾算法中,改進后的協(xié)同過濾推薦算法預(yù)測公式為:
其中,pu,i表示用戶u 對項目i 的預(yù)測評分;rv,j表示用戶v 對項目j的實際評分;和分別表示用戶u 和用戶v對已有項目的平均評分;Wu,i表示用戶u 對項目i 的興趣衰減的時間權(quán)重,Nu表示用戶u 的最近鄰集合;sim(u,v)表示用戶之間的混合相似度。
根據(jù)以上步驟,HSIT-CF具體算法流程描述如下。
算法:基于混合相似度和用戶興趣遷移的協(xié)同過濾推薦算法HSIT-CF。
輸入:用戶、項目、評分數(shù)據(jù)文件,融合參數(shù)a。
輸出:用戶評分預(yù)測值矩陣。
步驟1根據(jù)輸入的評分數(shù)據(jù)文件構(gòu)建用戶—評分矩陣R;
步驟2計算所有用戶的評分均值;
步驟3利用式⑴計算用戶評分相似度simP(u,v);
步驟4根據(jù)1.1 節(jié)中的式⑶~式⑺算出各屬性的權(quán)重與綜合得分值,利用式⑻計算用戶屬性相似度simL(u,v);
步驟5根據(jù)式⑼算出用戶的時間權(quán)重Wu,i來描述用戶的興趣變化差異;
步驟6根據(jù)式⑽計算得到混合相似度sim(u,v);
步驟7根據(jù)步驟6中的sim(u,v)得出的結(jié)果,采用K 近鄰法選出最大的k 個用戶形成目標用戶的最近鄰集合,利用式⑾得出預(yù)測評分,形成用戶的評分預(yù)測值矩陣。
本文實驗使用明尼蘇達大學(xué)的Grouplens研究小組收集的Movielens-100k 數(shù)據(jù)集對算法進行實驗驗證。該數(shù)據(jù)集包含943 個用戶對1682 部電影的10 萬條評分數(shù)據(jù)。由于部分用戶屬性信息不全面,本文剔除了部分用戶數(shù)據(jù),最終實驗的用戶數(shù)據(jù)為934個用戶。
本實驗采取平均絕對誤差(MAE)和召回率來評價算法的推薦質(zhì)量。平均絕對誤差根據(jù)算法計算出的預(yù)測值與實際值之間的平均絕對差值,其偏差越小,準確性越高。召回率表示用戶興趣列表中有多少正確推薦,是指根據(jù)用戶在訓(xùn)練集上的行為做出的推薦列表與用戶在測試集上的行為列表的“交集”與用戶在測試集上的行為列表的比值。計算公式:
其中,u表示用戶,i表示項目,T表示測試集,pu,i和ru,iru,i分別表示用戶u 對項目i 的預(yù)測評分和實際評分。R(u)為表示根據(jù)訓(xùn)練數(shù)據(jù)集為用戶提供的推薦列表;T(u)表示用戶在測試集上的行為列表。
為了驗證本文算法的有效性,本文采用傳統(tǒng)User-CF(originalCF),文獻[10]提出的UII-CF 以及文獻[11]提出的proposed 算法作為對比算法進行比較。實驗結(jié)果如圖2、圖3所示。
圖2 不同算法的MAE值
圖3 不同算法的recall值
圖2給出了不同算法對MAE值的影響。從圖2中可以看出,隨著鄰居數(shù)目的增加,MAE 值逐漸下降。傳統(tǒng)的original CF 由于其自身相似度計算等局限性,其MAE 值高于本文及其他兩種對比算法。當鄰居個數(shù)為10 至50 時,proposed 的MAE 值基本穩(wěn)定在0.75 至0.79 之間且變化趨勢趨于平緩。文獻[10]提出UII-CF 算法的MAE 值波動相對較大,但當鄰居數(shù)目大于20 時,可以取得較好的推薦效果。由圖2 可見,本文HSIT-CF 算法的MAE 值相對于傳統(tǒng)的協(xié)同過濾算法及UII-CF及proposed均有顯著降低,當最近鄰居個數(shù)為16 時,本文算法的MAE 值較文獻[11]降低了6.61%,較文獻[10]降低了3.43%。
由圖3 可見,在MovieLens-100k 數(shù)據(jù)集上,針對recall指標,本文提出的HSIT-CF明顯優(yōu)于original CF和文獻[11]提出的proposed 算法,與文獻[10]提出的UII-CF 保持基本持平,當最大鄰居數(shù)為16 和30 時高于UII-CF算法,當k為15時,最高提高了7.86%。
本文針對協(xié)同過濾算法忽略用戶屬性權(quán)重差異,導(dǎo)致相似度計算不準確和用戶興趣的動態(tài)變化問題,提出了一種基于混合相似度和用戶興趣遷移的協(xié)同過濾推薦算法。該算法根據(jù)熵權(quán)法計算出各用戶特征屬性權(quán)重,并構(gòu)造出用戶混合相似度,然后加入時間權(quán)重描述用戶的興趣動態(tài)變化,克服了一般協(xié)同過濾算法的弊端。實驗表明,該方法能夠有效降低平均絕對誤差,提高推薦精度。然而在本文算法中,并未詳細考慮針對不同推薦項目時,具體用戶背景屬性對推薦結(jié)果的影響,接下來將考慮一個或多個具體屬性對不同推薦項目的影響,進一步提高推薦精度。