摘要:協同過濾系統是目前最成功的一種推薦系統,但是傳統的協同過濾算法沒有考慮用戶興趣會隨時間發生變化以及類似特征用戶對用戶相似度精度具有影響等因素,導致推薦質量較差。該文結合用戶興趣變化和用戶特征兩個因素,提出了新的用戶之間相似度計算方法用來提高協同過濾推薦質量。
關鍵詞:協同過濾;興趣變化;用戶特征
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)34-1730-03
Collabrative Filtering Recommendation Based on Users' Feature and Users' Drifting Interest
WU Ting, XIONG Qian-xing, HE Xi-chun
(Department of Computer Science and Technology, Wuhan University of Technology, Wuhan 430063, China)
Abstract: Collaborative filtering(CF) is the most successful recommended system to date, but traditional CF algorithm does not consider the problem of drifting users' interests and users' feature which often results in poor recommendation. This paper combined two factors of drifting users' interests and user' feature. A new method of computing similarities between different users is developed which can enhance accurate of commendation.
Key words: collaborative filtering; interest drift; users' feature
1 引言
協同過濾系統是目前最成功的推薦系統[1],它用來預測某個特定用戶是否會喜歡某個特定的商品,或用來確定用戶最感興趣的N件商品,很多電子商務網站都采用了該技術。協同過濾推薦系統主要有基于用戶的協同過濾推薦系統和基于項目的協同過濾推薦系統[2-3]。其中,基于項目的協同過濾根據用戶-項目矩陣求出不同項目間的關系,然后利用這些關系進行推薦,給用戶的推薦結果是通過發現與用戶喜歡的項目相似的項目來完成的。如果用戶曾經對某些項目感興趣,那么與之相類似的項目用戶也會感興趣。但是,用戶的興趣變化經常會導致推薦的質量較差。同時,傳統的推薦算法也沒有考慮用戶的個性特征對用戶相似性的影響。往往具有相似特征的用戶興趣取向也具有相似性,如不同年齡層次,不同性別的人興趣層次不同,屬于不同的類別。用戶的個性特征可以進一步修正用戶間的相似性度量。因此,該文提出了將用戶興趣變化和用戶特征相結合的方法來提高推薦的質量。
2 基于用戶的CF算法
2.1 基于用戶CF的思想
基于用戶的協同過濾方法主要分為三個步驟:
1) 計算各用戶與目標用戶a之間的相似程度,可以使用皮爾森相關系數或余弦相似性等度量方法,本文采用廣泛使用的皮爾森相關系數
■(1)
其中,sim(i,j)為用戶i和用戶j之間的相似度,Ri,k,Ri,k分別表示用戶i和用戶j對項目k的評分,Ri,Ri分別表示用戶i和用戶j在各自所有己打分項目上評分的平均值,S是用戶i與用戶j共同的評分項目數。
2) 根據各用戶與目標用戶a之間的相似度確定該目標用戶a的鄰居N={N1,N2,…,Nt},a?埸N。從N1到Nt,目標用戶a和鄰居用戶之間的相似度sim(a,Nt)從大到小排列。其中,目標鄰居的數目可以通過兩種方法確定。一種是預先設置一個相似性閥值,所有與目標用戶a之間的相似系數超過該閥值的用戶都作為鄰居。另外一種方法是選擇Q個相關系數最大的用戶作為鄰居用戶。
3) 鄰居生成之后,這些鄰居的評分被組合起來生成目標用戶的預測評分值。在計算完目標用戶與其他用戶之間的相似度后,目標用戶a對項目j的評分的預測值Paj是其它用戶對該項目的評分的加權和:
■(2)
其中Wa,u是目標用戶a與鄰居用戶u的相似度,Ru,j是鄰居用戶u對項目j的評分值,Ru是鄰居用戶u的平均評分,K是一個規范化系數。在進行TOP—N 推薦時,只需給出前N個預測評分最高的項目即可。
2.2 基于用戶CF的問題
傳統CF算法利用興趣相似的鄰居用戶對某項目興趣的大小,預測當前用戶對該項目的喜好程度。顯然,這里的鄰居用戶選擇方法非常關鍵,但是通常的鄰居選擇方法沒有考慮用戶興趣變化問題,從而影響算法的準確性。例如,過去喜歡科幻類電影的用戶1現在喜歡驚悚類電影,用戶2 喜歡科幻類電影,用戶3喜歡驚悚類電影。 由于用戶1和用戶2 過去的興趣相似并且他們對項目的評分也相近,所以用戶1和用戶2的相似度要比用戶1和用戶3的相似度高。在確定用戶1的鄰居用戶時,傳統的CF算法就會選擇用戶2而不是用戶3,最終系統向用戶1推薦的仍是科幻類電影而不是驚悚類電影,盡管用戶1和用戶3最近興趣相似且用戶1已顯示出對驚悚類電影的興趣。如表1所示,如果要預測用戶1對電影4的評分值,按照傳統的CF算法,用戶2將是用戶1的鄰居。然而,通過表2可以發現2003年用戶1逐漸喜歡上了驚悚片,這時,他的相似用戶應該是用戶3而不是用戶2。可見,在這種情況下傳統的CF算法并不能給出好的推薦。
表1用戶評分表 表2用戶評分時間表
■
3 用戶興趣變化問題
針對上面出現的情況,在尋找用戶鄰居的時候需要考慮到用戶興趣隨時間的變化,所以在計算用戶間評分相似度的時候,引入一個時間函數f(t),給與用戶1最近興趣相似的用戶3以較大的相似度,給與用戶1僅過去興趣相似的用戶2以較小的相似度。■ (3)
其中,t為用戶評分的實際時間,tmin為最小的間隔時間,tmax為最大的間隔時間,間隔時間是用戶實際的評分時間和系統參照時間的差值。參數m 反映f(t)的遺忘能力,m越大f(t)遺忘得越快,反之越慢。當m=1時,f(t)對用戶評分進行完全的線性遺忘;當0 在傳統的皮爾森相關系數中引入這個時間函數,可以提高用戶間相似度的精度。引入這個時間函數后新的用戶評分相似度公式為: ■(4) 4 用戶特征和用戶興趣變化結合 4.1 用戶特征 在尋找目標用戶鄰居的時候不僅要考慮到用戶興趣的變化,用戶的特征也是一個不能忽視的因素。例如,青年人喜歡看浪漫愛情片,中年人喜歡看生活片,老年人有時候喜歡看一些紀錄片。年齡層次不同的人,因為其閱歷不同,對生活的領悟程度也不同,所以對物體喜歡的層次類別也會有些差異。女性多喜歡情感劇,而男性多喜歡警匪片,說明性別差異也會對用戶的興趣取向有影響。同時,具有相同職業的人對事物更可能有相同的理解角度,往往會喜歡同一類型的電影。因此本文選擇這三個因素作為識別用戶特征的特征因素。 根據用戶的特征數據可以計算用戶間的特征相似度,設用戶P和用戶Q在k維用戶特征空間上的特征值分別看作是向量■={p1,p2,……pk},■={q1,q2,……qk},則用戶P和用戶Q的用戶特征相似性計算公式為: ■(5) 此公式分母k表示用戶特征因子數,分子表示用戶P和用戶Q在k維用戶特征空間上相同的特征因子數目。 4.2 算法步驟 利用用戶特征和用戶興趣變化兩個因素,這里將推薦算法步驟描述如下: 輸入數據包括:m個用戶對n個項目的評分及評分時間t,鄰居用戶大小k; 輸出數據:對目標用戶的N個推薦項目。 1) 利用用戶的特征數據計算用戶間的特征相似性sim_feature,計算sim_feature的公式見公式5; 2) 利用用戶的評分數據和用戶變化興趣函數f(t),計算用戶之間的評分相似性sim_rating,計算sim_rating的公式見公式4; 3) 計算用戶的最終相似性:similarity=r*sim_feature+(1-r)* sim_rating,其中r為基于用戶的特征相似性在最終相似性計算中的比重; 4) 利用similarity的數值結合傳統算法預測評分的數值,傳統的評分預測公式見公式2。 4.3 算法說明 在傳統的CF算法中, 所有評分的重要性都相同。但是當用戶興趣發生變化時,推薦系統中舊評分的積極作用不大,因此應降低舊評分的重要性。時間函數f(t)根據評價時間調整每項評分的重要性,然后在此基礎上確定用戶間的評分相似度。同時,還考慮到用戶的特征因素,將用戶間特征相似度和用戶評分相似度相結合,確定用戶間最終相似度。因此在準確性方面高于傳統的CF算法。 5 實驗結果與分析 本文采用MovieLens站點提供的數據集ml-data,該數據集中包括了943用戶的信息以及這943個用戶對1682部電影項目的100000條打分數據。 5.1 評價標準 采用平均絕對誤差(Mean Absolute Error,MAE)作為評價標準,MAE用項目預測評分和實際評分間的偏差度量算法的準確性。 5.2 實驗結果 首先,只考慮含有f(t)函數的用戶評分相似度對MAE值的影響。當時間函數f(t)中參數m取0.6時,實驗結果表明,經過f(t)函數對用戶評分相似度的修正,該方法在準確性方面優于傳統協同過濾算法。 然后,我們再考慮用戶特征對用戶間相似度的影響,發現在用戶鄰居較大的情況下,r取0.05時,根據用戶最終的相似度計算得到的MAE值比只考慮用戶評分相似度時的MAE要小。實驗結果如圖1所示。 實驗結果表明,將用戶興趣變化和用戶特征相結合的協同過濾算法在準確性方面優于傳統的協同過濾算法。 6 結束語 通過與傳統的基于用戶的協同過濾推薦算法相對比,基于用戶興趣變化和用戶特征的協同過濾推薦算法在以下兩個方面進行了改進。 1) 引入時間函數f(t),考慮了用戶興趣變化對用戶間的相似性的影響,在準確性方面優于傳統的協同過濾算法。由于用戶興趣大多都是逐漸改變的,因此在推薦系統中使用的線性時間函數將有效提高推薦算法的準確性。 2) 在基于用戶興趣變化的基礎上考慮用戶的特征因素。當最近鄰數增大時,用戶特征相似度的貢獻率增大。這是因為隨著最近鄰數的增大,用戶之間的共同評分項目數目減少,最近鄰選取的精度將降低,而相同類別特征的用戶對一定項目平均偏好程度相似,所以提高r的值加大了對同一類別用戶的選取。當評分數據稀疏時,用戶共同評分項目少的情況下,結合用戶特征的協同過濾算法能夠改善相似用戶選取精度從而改善推薦效果。 參考文獻: [1] 鄧愛林,朱揚勇,施伯樂.基于項目評分預測的協同過濾推薦算法[J].軟件學報,2003,14(9):1621-1628. [2] 熊馨,王衛平,葉躍祥.基于概念分層的個性化推薦算法[J].計算機應用,2005,25(5):33-35,42. [3] Karypis G. Evaluation of Item-based Top-N RecommendationAlgorithms[D].Minneapolis: Dept of Computer Science,University of Minnesota,2000.