王嬋
摘要:為改進(jìn)傳統(tǒng)協(xié)同過濾算法的準(zhǔn)確率問題,該文提出一種基于加權(quán)因子的混合協(xié)同過濾算法。該算法核心是將傳統(tǒng)的用戶和物品協(xié)同過濾算法預(yù)測集合進(jìn)行交集運(yùn)算,并對其評分進(jìn)行加權(quán)混合得到推薦結(jié)果。通過在MovieLens-100k數(shù)據(jù)集上與傳統(tǒng)協(xié)同過濾算法進(jìn)行比較,結(jié)果表明,該文的混合協(xié)同過濾算法在平均絕對誤差和均方根誤差兩個評價指標(biāo)上都優(yōu)于傳統(tǒng)協(xié)同過濾算法。
關(guān)鍵字:協(xié)同過濾;混合協(xié)同過濾;MovieLens-100k數(shù)據(jù)集
中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)09-0014-03
Abstract: In order to improve the accuracy of traditional collaborative filtering algorithm, this paper proposes a hybrid collaborative filtering algorithm based on weighting factors. The core of this algorithm is to combine the traditional user and item collaborative filtering algorithm to get the recommended result. Compared with the traditional collaborative filtering algorithm on MovieLens-100k data set, the results show that the hybrid collaborative filtering algorithm is superior to the traditional collaborative filtering algorithm in both average absolute error and root mean square error.
Key words: Collaborative filtering; Hybrid collaborative filtering; MovieLens-100k data set
協(xié)同過濾算法是通過用戶和網(wǎng)頁的互動過濾掉用戶不喜歡的商品,從而對用戶進(jìn)行推薦。最早于1992年被應(yīng)用于郵件過濾系統(tǒng),之后又被GroupLens應(yīng)用于新聞過濾系統(tǒng),直至今日,仍被各大電商網(wǎng)站,如淘寶、京東所應(yīng)用。然而經(jīng)過大量學(xué)者研究發(fā)現(xiàn),協(xié)同過濾算法存在幾個不足之處:冷啟動性,數(shù)據(jù)稀疏性,可擴(kuò)展性和準(zhǔn)確性問題。其中,端德坤和傅秀芬針對冷啟動性問題進(jìn)行了研究,通過引入用戶信任機(jī)制和人口統(tǒng)計學(xué)信息對其進(jìn)行改進(jìn),在一定程度上對冷啟動性問題進(jìn)行了緩解[1]。何佳知是將基于內(nèi)容和協(xié)同過濾算法相結(jié)合,并融入了k-means算法,有效地解決數(shù)據(jù)稀疏性這一問題[2]。但準(zhǔn)確率仍然是推薦算法最核心的問題。本文則針對準(zhǔn)確性問題,提出了一種混合協(xié)同過濾算法,該算法通過加權(quán)因子將基于用戶的和基于物品的協(xié)同過濾算法相結(jié)合。并在MovieLens-100k數(shù)據(jù)集上進(jìn)行測試比較,結(jié)果表明本文的混合協(xié)同過濾算法在準(zhǔn)確率方面有顯著提高。
1傳統(tǒng)的協(xié)同過濾算法概述
協(xié)同過濾算法被分為兩大類:基于內(nèi)存的協(xié)同過濾算法和基于模型的協(xié)同過濾算法。其中基于內(nèi)存的協(xié)同過濾算法由分析目標(biāo)的差異被分為:基于用戶的協(xié)同過濾算法(UCF,user-based collaborative filtering)和基于物品的協(xié)同過濾算法(ICF,item-based collaborative filtering)。本文算法主要將基于內(nèi)存下的兩類算法進(jìn)行混合,下面詳細(xì)介紹基于用戶和基于物品的協(xié)同過濾算法。
1.1 基于用戶的協(xié)同過濾算法
基于用戶的協(xié)同過濾算法核心思想是給用戶推薦與其興趣相似的用戶所喜歡的物品,主要根據(jù)用戶相似度和用戶行為數(shù)據(jù)信息進(jìn)行預(yù)測推薦。該算法實現(xiàn)需要兩個步驟:
(1)找到和目標(biāo)用戶相似的用戶群體。用戶之間的相似度通常使用皮爾遜相關(guān)系數(shù)、余弦相似度或修正的余弦相似度公式來度量[3],公式定義分別如下所示:
其中,[Rui]和[Rvi]分別表示用戶u和用戶v對物品i的評分值,[Iuv]表示用戶u和用戶v有過評分物品集合的交集,[R_u]和[R_v]分別表示用戶u和用戶v有過物品評分的平均值。
(2)根據(jù)用戶之間的相似度,通過公式(1.4)計算目標(biāo)用戶u對物品i的預(yù)測評分:
其中,[Rui]表示用戶u對物品i的預(yù)測評分,[NUu]表示與用戶u相似的用戶集合。
1.2 基于物品的協(xié)同過濾算法
基于物品的協(xié)同過濾算法是根據(jù)物品相似度和用戶的歷史行為對用戶進(jìn)行推薦。算法的步驟包括兩步:第一是計算物品之間的相似度。物品相似度同樣可以用皮爾遜相關(guān)系數(shù)、余弦相似度或修正的余弦相似度公式來度量。
皮爾遜相關(guān)系數(shù)定義如下:
其中,[Rui]和[Ruj]分別表示用戶u對物品i和物品j的評分值,[R_i]和[R_j]分別表示物品i和物品j的平均評分,U表示對物品i和物品j共同有過評分的用戶集合。
第二是通過用戶歷史行為和物品相似度生成推薦列表。其中對物品進(jìn)行預(yù)測評分公式定義如下:
其中,[Rui]表示用戶u對物品i的預(yù)測評分值,[Nu]表示用戶u評分的物品集合。
2本文算法
傳統(tǒng)的基于用戶的協(xié)同過濾算法是根據(jù)鄰居用戶的偏好來預(yù)測目標(biāo)用戶的喜好,對目標(biāo)用戶的物品喜好缺乏考慮?;谖锲返膮f(xié)同過濾算法是根據(jù)目標(biāo)用戶的物品相似度來進(jìn)行推薦,忽略了用戶相似鄰居的推薦。為了避免單一算法存在的不足,大部分情況下是將算法進(jìn)行混合,從而做出更好的推薦。常見的混合方式包括:加權(quán)型混合、交換型混合、特征組合型混合、瀑布型混合等方式[4]。本文算法通過加權(quán)將傳統(tǒng)的基于用戶和基于物品的協(xié)同過濾算法進(jìn)行混合來提高推薦的準(zhǔn)確率,綜合兩種算法的優(yōu)勢,在考慮用戶鄰居偏好的同時考慮了用戶自身的物品喜好,產(chǎn)生了一種混合協(xié)同過濾算法。
2.1 混合協(xié)同過濾算法
混合協(xié)同過濾算法(HCF,Hybrid Collaborative Filtering)是將基于用戶的和基于物品的協(xié)同過濾算法的推薦結(jié)果進(jìn)行混合,并將其各自的預(yù)測評分通過加權(quán)方式結(jié)合作為算法的預(yù)測評分。該算法的原理如圖1所示:
該算法的主要實現(xiàn)步驟分為:
(1)通過傳統(tǒng)的基于用戶的協(xié)同過濾算法,計算目標(biāo)用戶u對物品i的預(yù)測評分值[Rui(1)];
(2)通過傳統(tǒng)的基于物品的協(xié)同過濾算法,計算目標(biāo)用戶u對物品i的預(yù)測評分值[Rui(2)];
(3)利用公式(2.1)通過加權(quán)原則融合上述兩種算法的預(yù)測評分結(jié)果,從而求
得最終的預(yù)測評分值。
其中,[α]因子是動態(tài)計算得出的。由于基于用戶的協(xié)同過濾算法的預(yù)測準(zhǔn)確率與用戶鄰居的數(shù)目具有相關(guān)關(guān)系。基于物品的協(xié)同過濾算法的推薦準(zhǔn)確率與物品鄰居數(shù)目之間也屬于相關(guān)關(guān)系。所以,在混合這兩種算法時,加權(quán)因子通過不同鄰居數(shù)所占的比例來度量。由此[α]的計算公式如下所示:
下面給出基于加權(quán)因子的混合協(xié)同過濾算法的描述:
算法(2.1)混合協(xié)同過濾算法
輸入:用戶行為數(shù)據(jù),目標(biāo)用戶的用戶Id;
輸出:推薦物品列表。
(1)根據(jù)用戶行為記錄,利用皮爾遜相關(guān)系數(shù)度量公式(公式1.1)計算用戶間的相似度;
(2)找到與目標(biāo)用戶相似度較高的鄰居用戶,利用鄰居用戶對物品的評分值,通過公式(1.4)預(yù)測目標(biāo)用戶對目標(biāo)物品的評分值;
(3)根據(jù)用戶行為記錄,利用余弦相似度度量公式(公式1.6)計算物品間的相似度;
(4)通過排序找到與物品相似度較高的鄰居物品集合后,通過物品預(yù)測評分公式(公式1.8),預(yù)測目標(biāo)用戶對目標(biāo)物品的評分值;
(5)通過第(2)步和第(4)步得到的目標(biāo)物品集合進(jìn)行交集,得到最終推薦的目標(biāo)物品,并利用公式(2.1)、公式(2.2)和公式(2.3)計算目標(biāo)用戶對目標(biāo)物品的預(yù)測評分值。
3 實驗設(shè)計與結(jié)果分析
3.1標(biāo)準(zhǔn)數(shù)據(jù)集
本文在實驗上采用MovieLens-100k數(shù)據(jù)集[5],該數(shù)據(jù)集是用戶對電影的評分信息。其中u.data數(shù)據(jù)記錄了約943位電影用戶對1682部電影的評分?jǐn)?shù)據(jù),數(shù)據(jù)量在大約100000條左右,即平均每個電影用戶對至少20部電影參與了評分,且評分在1-5分之間,用戶對電影評分越接近5,表示用戶對該電影的喜愛程度越高。
3.2評價指標(biāo)
MAE(Mean Absolute Error):平均絕對誤差是評價推薦系統(tǒng)最常用評價指標(biāo)[6],能更好地反映預(yù)測值誤差的實際情況。MAE值越小,準(zhǔn)確率越高。其定義如下:
3.3 實驗設(shè)計及實驗結(jié)果分析
本文通過兩組實驗來驗證本文改進(jìn)算法的可行性:
實驗一:相似度度量公式的選擇。
本文包含三種相似度度量公式:皮爾遜相關(guān)系數(shù)、余弦相似度以及修正的余弦相似度公式。并分別通過實驗一進(jìn)行了測試比較,結(jié)果如圖2所示:(其中,K值表示鄰居數(shù))
通過圖2所示,隨著鄰居數(shù)的增加,MAE值都有所下降,在鄰居數(shù)為70的時候達(dá)到最優(yōu)值。此時可以發(fā)現(xiàn)皮爾遜相關(guān)系數(shù)度量公式和修正的余弦相似度公式下的基于用戶的協(xié)同過濾算法誤差率更低(皮爾遜相關(guān)系數(shù)和修正的余弦相似度公式相等)。余弦相似度公式下的基于物品的協(xié)同過濾算法誤差率較低。由于基于加權(quán)因子的用戶物品混合協(xié)同過濾算法是綜合兩者結(jié)果并通過加權(quán)產(chǎn)生的,所以其相似度度量公式采用皮爾遜相關(guān)系數(shù)和余弦相似度混合。
實驗二:計算改進(jìn)后的混合協(xié)同過濾算法分別與傳統(tǒng)的基于用戶和基于物品的協(xié)同過濾算法推薦誤差率進(jìn)行比較。
具體實驗設(shè)計為:在MovieLens-100k數(shù)據(jù)集進(jìn)行五折交叉驗證測試,分別計算UCF、ICF和HCF的平均MAE值和RMSE值,并將結(jié)果進(jìn)行對比。實驗結(jié)果如表1、表2所示:
通過折線圖分析三種算法的MAE值和RMSE值變化趨勢,結(jié)果如圖3所示:
實驗結(jié)果顯示,基于加權(quán)因子的混合協(xié)同過濾算法的MAE值和RMSE值,比傳統(tǒng)的基于用戶的和基于物品的協(xié)同過濾算法有顯著降低,預(yù)測結(jié)果的準(zhǔn)確率明顯提升。
4 小結(jié)
本文針對傳統(tǒng)協(xié)同過濾算法的準(zhǔn)確率進(jìn)行改進(jìn)。改進(jìn)后的混合協(xié)同過濾算法通過加權(quán)方式將傳統(tǒng)的基于用戶的和基于物品的協(xié)同過濾算法相結(jié)合,并對相似度度量公式進(jìn)行了測試比較。最后在MovieLens-100k數(shù)據(jù)集進(jìn)行驗證,結(jié)果表明:基于加權(quán)因子的混合協(xié)同過濾算法比傳統(tǒng)的基于內(nèi)存的協(xié)同過濾算法準(zhǔn)確率有明顯的提高。
參考文獻(xiàn):
[1]端德坤,傅秀芬. 混合協(xié)同過濾算法中用戶冷啟動問題的研究[J]. 計算機(jī)工程與應(yīng)用,:1-7(2017-04-14).
[2]何佳知. 基于內(nèi)容和協(xié)同過濾的混合算法在推薦系統(tǒng)中的應(yīng)用研究[D].東華大學(xué),2016.
[3]尹作文.基于混合協(xié)同過濾的電子商務(wù)推薦系統(tǒng)的研究與應(yīng)用[D].武漢理工大學(xué),2014:15-18.
[4]董麗, 邢春曉, 王克宏. 基于不同數(shù)據(jù)集的協(xié)作過濾算法評測[J]. 清華大學(xué)學(xué)報(自然科學(xué)版), 2009, 49(04): 590-594.
[5]李永超, 羅軍. 基于用戶部分特征的協(xié)同過濾算法[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2017, 26(03): 204-208.
[6]陳彥萍, 王賽. 基于用戶-項目的混合協(xié)同過濾算法[J]. 計算機(jī)技術(shù)與發(fā)展, 2014(12): 88-91.