崔國琪 李林
摘要:為提高推薦算法挖掘數(shù)據(jù)長尾信息的能力,降低推薦結(jié)果流行度,使推薦結(jié)果更多樣,在傳統(tǒng)協(xié)同過濾推薦算法基礎(chǔ)上,分別將熱門項目與活躍用戶的懲罰因子引入相似性計算中,依據(jù)準(zhǔn)確度、覆蓋率、流行度等評價標(biāo)準(zhǔn),在上海某電商平臺銷售數(shù)據(jù)集上進(jìn)行比較,并通過多組實驗驗證不同參數(shù)對推薦算法的影響。結(jié)果顯示,加入懲罰因子后基于用戶的協(xié)同過濾推薦算法在N值取10、K值取3時,流行度為3.97,比傳統(tǒng)方法降低了7.31%:加入懲罰因子后基于項目的協(xié)同過濾推薦算法在N值取10、K值取3時,準(zhǔn)確率為7.65%,比傳統(tǒng)方法提高了5.25%。由此證明加入懲罰因子的協(xié)同過濾推薦算法在保持算法準(zhǔn)確率的同時,可在一定程度上降低推薦結(jié)果流行度。
關(guān)鍵詞:推薦算法;協(xié)同過濾;懲罰因子;長尾效應(yīng);電商
DOI: 10. 11907/rjdk.192435
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP312
文獻(xiàn)標(biāo)識碼:A
文章編號:1672-7800( 2020)001-0103-05
0 引言
隨著互聯(lián)網(wǎng)、移動技術(shù)的快速發(fā)展,全球數(shù)據(jù)量呈指數(shù)型爆炸增長,用戶獲取的信息資源越來越豐富,但隨之而來的“信息超載”問題使獲取有效信息的難度越來越大[1]。為解決該問題,IBM、Google、Yahoo等多家公司陸續(xù)推出了個性化電子商務(wù)原型系統(tǒng)TELLIM。個性化推薦系統(tǒng)通過分析用戶個體行為和偏好,“一對一”地提供其感興趣的信息,并根據(jù)新錄入的行為變化自動調(diào)整推薦內(nèi)容。該方式不需要用戶較大的參與成本,推薦內(nèi)容也更準(zhǔn)確[2]。協(xié)同過濾推薦算法是當(dāng)前應(yīng)用最為廣泛的個性化推薦技術(shù),其基本思想是根據(jù)其他用戶偏好的項目進(jìn)行推薦,首先找到一組與目標(biāo)用戶偏好一致或相近的鄰居用戶,然后分析鄰居用戶偏好,將鄰居用戶喜愛的項目推薦給目標(biāo)用戶[3]。目前,協(xié)同過濾推薦算法主要有基于內(nèi)容的推薦[4-5]、基于鄰域的推薦[6-7]、基于矩陣分解的SVD++算法[8]等。
為有效提高協(xié)同過濾推薦算法準(zhǔn)確率,眾多學(xué)者針對相似度計算進(jìn)行了大量研究。李容等[9]提出利用用戶共同項目數(shù)與用戶平均評分修正因子改進(jìn)傳統(tǒng)相似度,同時改進(jìn)協(xié)同過濾算法,并將其應(yīng)用于電影推薦;王志虎等[10]提出基于用戶歷史行為的協(xié)同過濾推薦算法,根據(jù)用戶歷史行為預(yù)測用戶對每一個項目的偏好程度,大幅降低了推薦誤差;王余斌等[11]將改進(jìn)的用戶偏好與信任度引入傳統(tǒng)協(xié)同過濾算法中,提出了基于用戶評論評分與信任度的協(xié)同過濾算法;王永貴等[12]通過矩陣分解實現(xiàn)對原始數(shù)據(jù)的降維及數(shù)據(jù)填充,并引入時間衰減函數(shù)預(yù)處理用戶評分,提出一種改進(jìn)的協(xié)同過濾算法,可在多維度下反映用戶興趣變化;胡朝舉等[13]通過對用戶進(jìn)行模糊C均值聚類操作,將用戶分為用戶簇,使用加權(quán)的歐氏距離計算相似度,提高了推薦精度,減少了評分誤差。
現(xiàn)有算法在計算用戶相似性時,沒有考慮熱門項目對相似性的影響,即大部分用戶對熱門項目有反饋,導(dǎo)致算法推薦結(jié)果越來越傾向于熱門項目;另一方面,在計算項目相似性時,由于活躍用戶對多個項目均有反饋,算法推薦結(jié)果更易受到活躍用戶的影響。
針對以上問題,本文通過加入懲罰因子以降低熱門項目和活躍用戶相似性權(quán)重,在利用傳統(tǒng)余弦相似度計算相似性的基礎(chǔ)上改進(jìn)相似性計算方法,并將改進(jìn)的協(xié)同過濾算法在上海某電商公司購物評分?jǐn)?shù)據(jù)集中進(jìn)行實證研究,驗證其可行性。
1 協(xié)同過濾推薦算法
1.1 傳統(tǒng)協(xié)同過濾推薦算法
目前應(yīng)用最廣泛的協(xié)同過濾推薦算法主要包括基于用戶的協(xié)同過濾算法與基于項目的協(xié)同過濾算法[14]。協(xié)同過濾推薦算法通過分析數(shù)據(jù),生成當(dāng)前用戶最近鄰居集合,將該集合最感興趣的前N個項目推薦給當(dāng)前用戶,即Top N推薦,協(xié)同過濾推薦算法推薦過程主要分為3個步驟[15]。
(1)將數(shù)據(jù)表述為矩陣。根據(jù)用戶對項目的評價建立m*n階user-item評價矩陣R=(rij),m表示用戶總數(shù),n表示項目總數(shù),rij表示第i個用戶對第j個項目的評價,在本文使用的數(shù)據(jù)集中,rijE[0,5],0表示用戶對該項目的興趣最低,5表示最高。
(2)發(fā)現(xiàn)最近鄰居。發(fā)現(xiàn)最近鄰居指通過計算用戶或項目相似度,建立當(dāng)前用戶最近鄰居集,根據(jù)最近鄰居集對項目進(jìn)行興趣排序,實現(xiàn)當(dāng)前用戶推薦。它可表述為針對目標(biāo)用戶ut,根據(jù)相似度排列順序建立一個鄰居集N={ u1,U2,…,un},設(shè)目標(biāo)用戶UT和ui的相似度為sim( UT,u;),相似度逐個遞減,即sim(uT,UI)> sirTi( UT,U2)>…>sim (UT,un)。最近鄰居集建立得準(zhǔn)確與否,是協(xié)同過濾算法實現(xiàn)的關(guān)鍵。
基于用戶的協(xié)同過濾算法通過計算用戶相似度建立最近鄰居集,本文通過余弦相似度計算目標(biāo)用戶(記為u)和鄰居用戶(記為v)之間的相似度,計算公式[16]為:
1.2 改進(jìn)的協(xié)同過濾推薦算法
(1)基于用戶的改進(jìn)算法(UserCF-IIF)。用戶相似度計算是基于用戶對某個項目共同的反饋行為,但對熱門項目來說,有太多用戶對其作出反饋,這種反饋不能體現(xiàn)用戶之間的差異性。所以加入懲罰因子lflog(l+IN(i)l以降低熱門項目對用戶相似度的影響,即冷門項目更能體現(xiàn)用戶相似性,由式(1)得到:
(2)基于項目的改進(jìn)算法(ItemCF-IUF)。兩個項目相似度的出現(xiàn)是因為這兩個項目同時出現(xiàn)在用戶反饋列表中,即用戶反饋行為對項目相似度的計算作出了貢獻(xiàn),但活躍用戶反饋行為更多,對相似度影響更大。所以加入懲罰因子lflog(I+IN(u)l以降低活躍用戶對項目相似度的影響,即不活躍用戶更能體現(xiàn)項目相似性,由式(2)得到:
1.3 改進(jìn)算法實現(xiàn)
(1)UserCF-IIF算法。
#一*一coding:utf-8一*一
import math
import operator
def UserSimilarity( train):
#為項目一用戶矩陣生成反向表
item_users= dict()
foru, items in train.items():
fori in items.keys():
ifi not in item_users:
item_users[i]= set()
item_users[i] .add(u)
#計算用戶之間有共同正反饋的項目
C= dict()
N= dict()
for i, users in item_users.items():
foru in users:
N.setdefault(u,O)
N[u]+=1
C.setdefault(u,{})
forv in users:
ifu==v:
continue
C[u] .setdefault(v,O)
C[u][v]+=l/math.log( l+len( users))
( 2)ItemCF-IUF算法。
#一*一coding:utf-8一*一
import math
import operator
def ItemSimilarity( train):
#計算項目之間對其有共同正反饋的用戶
C= dict()
N= dict()
for u,items in train.items():
fori in items:
N.setdefault(i.O)
N[i]+=1
C.setdefault(i,{})
forj in items:
ifi-=j:
continue
C[i] .setdefault(j,O)
C[i][j]+=1,math.log( l+len( items)*1.0)
2 實驗結(jié)果與分析
2.1 數(shù)據(jù)集選擇
本文選取的數(shù)據(jù)集是上海某電商公司2018年6月至2018年12月的銷售明細(xì),原始數(shù)據(jù)集包括用戶信息、商品信息、用戶購買記錄和評分記錄。本文實驗提取了用戶購買記錄和評分記錄,其中包括2 929位用戶、11 537件商品、310 040條購買評分記錄(0-5分),用戶評分記錄最少為10條,數(shù)據(jù)稀疏度為99.08%,隨機(jī)抽取其中的80%為訓(xùn)練集,其余20%為測試集。其用戶活躍度與項目流行度分布均符合長尾效應(yīng)[17]。
2.2 評價標(biāo)準(zhǔn)
本文推薦算法應(yīng)用在數(shù)據(jù)集上的目的是向用戶推薦其購買可能性最大的項目,而不是預(yù)測用戶對項目可能的評分[18],故使用Top N推薦。Top N推薦指算法為用戶提供個性化推薦列表,不采用RMAE、MAE等基于回歸模型的評價指標(biāo),其推薦預(yù)測準(zhǔn)確率通常使用準(zhǔn)確率( Preci-sion)、召回率(Recall)、覆蓋率(Coverage)及流行度(Popu-larity)度量19]。準(zhǔn)確率指推薦給用戶的項目屬于測試集的比例,表示預(yù)測為正的樣本中有多少是真正的正樣本,則推薦結(jié)果準(zhǔn)確率定義為:
其中R(u)表示提供訓(xùn)練集給用戶u提供的推薦項目列表,T(u)表示用戶u在測試集中作出反饋的項目列表。
召回率指測試集中有多少項目在用戶的推薦列表中,表示樣本正例有多少被預(yù)測正確,推薦結(jié)果召回率定義為:
覆蓋率( Coverage)指推薦列表包含的所有推薦項目占項目總和的比例。設(shè)系統(tǒng)的用戶集合為U,項目總和為I,推薦系統(tǒng)向用戶提供的推薦項目列表為R(u),則推薦系統(tǒng)覆蓋率計算公式為:
項目流行度指有多少用戶對該項目作出反饋,項目流行度越高,代表該項目越熱門[20]。設(shè)項目i流行度為P(i),推薦項目列表R(u)長度為N,推薦系統(tǒng)平均流行度可由式(9)計算得到。
2.3實驗結(jié)果與分析
本文在協(xié)同過濾推薦算法中加入懲罰因子,在電商銷售數(shù)據(jù)集上驗證其可行性,以期提升相似度算法準(zhǔn)確性,增強(qiáng)算法挖掘長尾數(shù)據(jù)的能力。在保證推薦算法準(zhǔn)確率的前提下,盡可能加強(qiáng)算法對冷門項目推薦的權(quán)重。
本文采用的對比算法為兩種協(xié)同過濾推薦算法:基于用戶的協(xié)同過濾算法與基于項目的協(xié)同過濾算法,記為UserCF和ItemCF。加入懲罰因子的改進(jìn)算法分別記為UserCF-IIF和ItemCF-IUF。實驗推薦列表長度N取10,相似用戶列表長度K取1-12不同值,推薦算法結(jié)果如圖3所示。
其中橫坐標(biāo)為相似用戶列表長度,從圖3可以看到,隨著K值的增加,各算法準(zhǔn)確率逐步下降并趨近穩(wěn)定,基于用戶的改進(jìn)算法較原算法準(zhǔn)確率略低,基于項目的改進(jìn)算法較原算法準(zhǔn)確率稍有提高。由于數(shù)據(jù)稀疏性較高,各算法均在K取值為1時準(zhǔn)確度最高,隨著相似用戶列表的增多,準(zhǔn)確率也隨之降低。
如圖4、圖5所示,隨著K值的增加,各算法召回率、覆蓋率逐漸上升并趨近穩(wěn)定,基于用戶的改進(jìn)算法與基于項目的改進(jìn)算法召回率、覆蓋率均高于原算法。
在圖6中,隨著K值的增加,各算法流行度逐漸下降并趨近穩(wěn)定,基于用戶的改進(jìn)算法流行度較原算法明顯下降,但基于項目的改進(jìn)算法流行度與原算法接近一致。
本文也進(jìn)行了一次實驗,其中相似用戶列表長度不變,取K值為3,推薦列表長度N取10-100,N值以10為間隔,實驗結(jié)果各指標(biāo)變化基本不變,故實驗結(jié)果未列出。
綜合比較各評價標(biāo)準(zhǔn),基于用戶的改進(jìn)算法較原算法準(zhǔn)確率雖略有降低,但其召回率、覆蓋率和流行度均優(yōu)于原算法;基于項目的改進(jìn)算法在準(zhǔn)確率、召回率和覆蓋率上均優(yōu)于原算法,流行度與原算法無明顯差異;基于項目的推薦算法在準(zhǔn)確率上均高于基于用戶的推薦算法,這主要是由于采用的電商平臺數(shù)據(jù)集中,用戶興趣愛好一般比較固定,推薦算法往往圍繞用戶興趣愛好推薦相關(guān)領(lǐng)域物品,但兩種算法并無優(yōu)劣之分。
3 結(jié)語
協(xié)同過濾推薦算法準(zhǔn)確率是評價推薦算法優(yōu)劣的重要指標(biāo),但挖掘數(shù)據(jù)中的長尾信息,將冷門項目更多地推薦給用戶,使長尾曲線變得更加扁平,對用戶選擇與項目效益均具有重要意義。本文在傳統(tǒng)協(xié)同過濾推薦算法基礎(chǔ)上,分別將熱門項目與活躍用戶的懲罰因子引入相似性計算中,并在電商平臺數(shù)據(jù)集上驗證算法可行性。試驗結(jié)果表明,本文算法在保持準(zhǔn)確率的同時,有效挖掘了數(shù)據(jù)中的長尾信息,提高了冷門項目權(quán)重,向用戶提供的推薦列表召回率與覆蓋率均有提高,更能體現(xiàn)個性化推薦算法的多樣性。下一步將針對數(shù)據(jù)稀疏性和冷啟動問題,引入更多影響相似度的參數(shù),進(jìn)一步提高算法準(zhǔn)確率。在算法方面,引入的參數(shù)越多,其算法復(fù)雜度也隨之越高,如何更好地調(diào)整參數(shù)、優(yōu)化算法也是待研究內(nèi)容。
參考文獻(xiàn):
[1]SAYAKHOT P,CAROLAN-OLAH M.Sources of information on ges-tational diabetes mellitus. satisfactionWith diagnostic process and in-formation provision [J]. BMC Pregnancy and Childhirth. 2016, 16(1):287.
[2] YANG J M, LI K F.An inference-based collaborative filtering ap-proach[C].Third IEEE International Symposium on Dependable, Au-tonomic and SecureComputing, 2007: 84-94.
[3] 冷亞軍.協(xié)同過濾技術(shù)及其在推薦系統(tǒng)中的應(yīng)用研究[D].合肥:合肥工業(yè)大學(xué),2013.
[4]WU M L,CHANC C H,LIU R Z.Integrating content based filteringwith collahorative filtering using co-clustering with augmented matri-ces[ Jl. Expert Systems with Applications, 2014 .41(6):2754-2761.
[5]楊武,唐瑞,盧玲.基于內(nèi)容的推薦與協(xié)同過濾融合的新聞推薦方法[J].計算機(jī)應(yīng)用,2016,36(2):414-418.
[6]L1 D S,CHEN C,LU Q,et al.An algorithm for efficient privacy-pre-serving item-based collaborative filtering[J].Future Ceneration Com-puter Systems, 2016.55: 311-320.
[7] 葉西寧,王猛.音樂個性化推薦算法TFPMF的研究[J].系統(tǒng)仿真學(xué)報,2019,31(7):1397-1407.
[8]KOREN Y.Factorization meets the neighborhood:a multifaceted col-lahorative filtering model[C].Proceedings of the 14th ACM SICKDDInternational Conference on Knowledge Discovery and Data Mining,2008:426-434.
[9] 李容,李明奇,郭文強(qiáng).基于改進(jìn)相似度的協(xié)同過濾算法研究[J].計算機(jī)科學(xué),2016,43( 12):206-208, 240.
[10]王志虎,黃曼瑩.基于用戶歷史行為的協(xié)同過濾推薦算法[J].微電子學(xué)與計算機(jī),2017, 34(5):132-136.
[11]王余斌,王成良,文俊浩.基于用戶評論評分與信任度的協(xié)同過濾算法[J].計算機(jī)應(yīng)用研究,2018,35(5):1368-1371+1402.
[12]王永貴,宋真真,肖成龍.基于改進(jìn)聚類和矩陣分解的協(xié)同過濾推薦算法[J].計算機(jī)應(yīng)用,2018 .38(4):1001-1006.
[13] 胡朝舉,孫克逆.基于用戶模糊聚類的個性化推薦研究[J].軟件導(dǎo)刊,2018, 17(2):31-34.
[14] 王惠敏,聶規(guī)劃.融合用戶和項目相關(guān)信息的協(xié)同過濾算法研究[J].武漢理工大學(xué)學(xué)報,2007(7):160-163.
[15] 張獻(xiàn)忠.基于商品流行度和用戶活躍度的推薦算法研究[J].電腦知識與技術(shù),2014,10( 32):7641-7643+7649.
[16] 榮輝桂,火生旭,胡春華,等.基于用戶相似度的協(xié)同過濾推薦算法[J].通信學(xué)報,2014, 35(2):16-24.
[17]PELTIER S,MOREAU F. Internet and the' long tail versus superstar effect' debate: evidence from the French hook market [J]. Applie-dEconomics Letters, 2012. 19(8):711-715.
[18] LINDEN G. What is good recommendation algorithm[ EB/OLl. http:,,cacm.acm.org/blogs/blogcacm/22925 -what-is-a-good-recommenda-tion-algorithm/fulltext.
[19] 郝立燕,王靖.基于項目流行度的協(xié)同過濾TopN推薦算法[J].計算機(jī)工程與設(shè)計,2013,34( 10):3497-3501.
[20]STECK H. Item popularity and recommendation accuracy ICl. TheFifth ACM Conference on Recommender systems, 2011: 125-132.
(責(zé)任編輯:江艷)
作者簡介:崔國琪(1994-),男,上海理工大學(xué)管理學(xué)院碩士研究生,研究方向為數(shù)據(jù)挖掘;李林(1966-),女,博士,上海理工大學(xué)管理學(xué)院副教授、碩士生導(dǎo)師,研究方向為工業(yè)工程質(zhì)量管理、服務(wù)管理。