曲朝陽,宋晨晨,任有學(xué),劉耀偉,牛 強(qiáng),獨(dú)健鴻
(1.東北電力大學(xué) 信息工程學(xué)院,吉林 吉林 132012;2.國網(wǎng)吉林省電力有限公司 吉林供電公司,吉林 吉林 132000;3.吉林市豐滿發(fā)電廠,吉林 吉林 132108)
結(jié)合用戶活躍度的協(xié)同過濾推薦算法
曲朝陽1,宋晨晨1,任有學(xué)2,劉耀偉2,牛 強(qiáng)2,獨(dú)健鴻3
(1.東北電力大學(xué) 信息工程學(xué)院,吉林 吉林 132012;2.國網(wǎng)吉林省電力有限公司 吉林供電公司,吉林 吉林 132000;3.吉林市豐滿發(fā)電廠,吉林 吉林 132108)
為了解決協(xié)同過濾推薦算法中存在的流行偏置問題,提出一種結(jié)合用戶活躍度的協(xié)同過濾推薦算法(UACF)。該算法考慮用戶活躍度對推薦結(jié)果的影響,通過對用戶活躍度進(jìn)行聚類分析,針對不同聚類結(jié)果中的用戶進(jìn)行分類處理,并引入到相似度計(jì)算過程中,以提高相似度計(jì)算的可靠性。典型數(shù)據(jù)集上的對比實(shí)驗(yàn)表明該算法能夠較好的提高推薦準(zhǔn)確率。
用戶活躍度;聚類;協(xié)同過濾;Top-N推薦
傳統(tǒng)的搜索引擎無法做到千人千面,不能根據(jù)用戶的興趣愛好提供個(gè)性化的服務(wù)。信息的爆炸使得信息的利用率反而降低,這種現(xiàn)象被稱之為“信息過載”[1]。信息過載導(dǎo)致人們難以快速、準(zhǔn)確地從浩瀚的信息資源中尋找所需的信息。為解決信息過載問題,互聯(lián)網(wǎng)技術(shù)經(jīng)歷了導(dǎo)航、檢索和推薦三個(gè)階段。
推薦系統(tǒng)[2-4]是為解決Internet上的信息過載問題而提出的一種智能系統(tǒng),能從Internet的大量信息中向用戶自動(dòng)推薦出符合用戶興趣偏好或需求的項(xiàng)目,從而更好地解決互聯(lián)網(wǎng)信息日益龐大與用戶需求之間的矛盾。目前,推薦技術(shù)被廣泛應(yīng)用到電子商務(wù)[5]、數(shù)字圖書館[6]、新聞網(wǎng)站[7]等系統(tǒng)中。
協(xié)同過濾(collaborative filtering)是迄今為止應(yīng)用最成功的個(gè)性化推薦技術(shù)[8]。在當(dāng)前大數(shù)據(jù)時(shí)代下,協(xié)同過濾技術(shù)顯得尤為重要[9]。協(xié)同過濾推薦算法主要通過利用用戶的歷史行為信息為用戶建模進(jìn)而做出推薦的一類算法。最初的協(xié)同過濾推薦算法是基于用戶的協(xié)同過濾推薦算法[10,11]。該算法認(rèn)為,一個(gè)用戶會(huì)喜歡和他有相似愛好的用戶喜歡的項(xiàng)目。因此,他們利用相似用戶的信息進(jìn)行近鄰搜索,然后基于近鄰用戶的行為信息預(yù)測用戶興趣,向用戶推薦項(xiàng)目?;陧?xiàng)目的協(xié)同過濾算法是另一種經(jīng)典的協(xié)同過濾算法,它認(rèn)為一個(gè)用戶會(huì)喜歡和他之前喜歡的項(xiàng)目類似的項(xiàng)目[12]。該算法主要利用相似項(xiàng)目的信息進(jìn)行近鄰搜索和用戶行為預(yù)測,然后依據(jù)預(yù)測結(jié)果向用戶推薦項(xiàng)目。
由于項(xiàng)目的相似度相對用戶的相似度穩(wěn)度,所以基于項(xiàng)目的協(xié)同過濾算法是目前業(yè)界應(yīng)用最多的算法。無論是亞馬遜網(wǎng),還是Netflix、Hulu、YouTube,其推薦算法的基礎(chǔ)都是該算法[13]。盡管協(xié)同過濾在個(gè)性化推薦方面取得較大成功,但其存在著諸多亟待解決的問題和挑戰(zhàn),主要包括:數(shù)據(jù)稀疏性、流行偏置、動(dòng)態(tài)性和冷啟動(dòng)等。
現(xiàn)有解決流行偏置問題的方法均是針對基于用戶的協(xié)同過濾推薦算法,利用項(xiàng)目流行度進(jìn)行調(diào)節(jié)處理,本文是針對基于項(xiàng)目的協(xié)同過濾推薦算法,利用用戶活躍度進(jìn)行調(diào)節(jié)處理。
1.1 基于項(xiàng)目的協(xié)同過濾Top-N推薦算法主要過程
基于項(xiàng)目的協(xié)同過濾推薦算法是利用項(xiàng)目間的相似度,給用戶推薦與用戶歷史項(xiàng)目相關(guān)度高的前N個(gè)項(xiàng)目。主要包括相似度計(jì)算和推薦兩個(gè)過程。
相似度計(jì)算方法有多種,本推薦算法采用的是修正的余弦相似度
(1)
通過相似度計(jì)算可以得到一個(gè)項(xiàng)目相似度矩陣,每行記錄了一個(gè)項(xiàng)目與其他所有項(xiàng)目的相似度,由于算法只要取出Top-N個(gè)相關(guān)項(xiàng)目,所以在相似度矩陣存儲(chǔ)時(shí),設(shè)定近鄰個(gè)數(shù)即僅存儲(chǔ)前K個(gè)相關(guān)的項(xiàng)目。
推薦的總體流程如下,在對某一用戶u進(jìn)行Top-N推薦時(shí),針對用戶u的歷史項(xiàng)目集C,將項(xiàng)目集C中的一個(gè)項(xiàng)目i取出,與項(xiàng)目i相似的項(xiàng)目集合記為Ti,對項(xiàng)目集Ti中的每個(gè)項(xiàng)目j,項(xiàng)目i和項(xiàng)目j的相似度乘以用戶對項(xiàng)目i的評分記入最終推薦集T中,將最終推薦集T中包含的用戶歷史項(xiàng)目集C中的項(xiàng)目進(jìn)行剔除,對最終推薦集T進(jìn)行排序,取前N項(xiàng)進(jìn)行推薦。
1.2 長尾分布和用戶活躍度
長尾理論(The Long Tail)是網(wǎng)絡(luò)時(shí)代興起的一種新理論,由美國人克里斯·安德森提出[18]?;ヂ?lián)網(wǎng)上的很多數(shù)據(jù)分布符合長尾理論,這個(gè)分布在互聯(lián)網(wǎng)領(lǐng)域稱長尾分布。很多研究人員發(fā)現(xiàn),用戶行為數(shù)據(jù)也蘊(yùn)含著這種規(guī)律。
用戶活躍度是指用戶產(chǎn)生過行為的項(xiàng)目總數(shù),符合長尾分布。用戶越活躍,用戶的數(shù)量越少。但這少部分的用戶評分過的項(xiàng)目數(shù)量較多,在相似度計(jì)算時(shí),由于該部分用戶評論過大部分的項(xiàng)目,所以根據(jù)其進(jìn)行的相似度計(jì)算結(jié)果準(zhǔn)確性降低。本文將在相似度計(jì)算公式中構(gòu)造包含用戶活躍度的調(diào)節(jié)函數(shù),降低活躍用戶的影響,提升非活躍用戶的影響。
不可否認(rèn),漓江畫派之所以在全國產(chǎn)生重大的影響,其中一個(gè)重要的因素就是“依托廣西藝術(shù)學(xué)院這個(gè)學(xué)術(shù)和人才培養(yǎng)平臺(tái)”。漓江畫派集中了廣西各畫種的代表性畫家和美術(shù)評論家,他們大多數(shù)是畢業(yè)或工作于廣西藝術(shù)學(xué)院,漓江畫派促進(jìn)會(huì)學(xué)術(shù)委員會(huì)常務(wù)理事中超過半數(shù)是學(xué)院的專業(yè)教師。可以說,作為漓江畫派的主要人才聚集地, 具有80年辦學(xué)歷史的廣西藝術(shù)學(xué)院無論在藝術(shù)創(chuàng)作和理論研究方面,還是在人才培養(yǎng)和隊(duì)伍建設(shè)方面,都為漓江畫派的發(fā)展做出了突出的貢獻(xiàn)。實(shí)施畫派與學(xué)院相互依托、互為平臺(tái)、共同提高的策略,成為加強(qiáng)漓江畫派人才隊(duì)伍建設(shè)的重要手段。
在推薦系統(tǒng)中,存在著一種強(qiáng)者恒強(qiáng)的“馬太效應(yīng)”,推薦系統(tǒng)傾向于推薦那些流行度高的項(xiàng)目,導(dǎo)致推薦準(zhǔn)確率降低。而用戶活躍度越高,其了解流行項(xiàng)目的概率越大,用戶活躍度越低,用戶的興趣越具有個(gè)性化,所以在相似度計(jì)算時(shí),引入用戶活躍度,調(diào)節(jié)不同活躍度用戶的評分?jǐn)?shù)據(jù)對相似度計(jì)算的影響,如公式(2)。
(2)
其中:F(u)為使用用戶活躍度構(gòu)造的調(diào)節(jié)函數(shù)。
由于用戶活躍度不同對相似度計(jì)算的結(jié)果影響不同,所以對用戶活躍度進(jìn)行聚類處理后得到活躍度的分類結(jié)果,然后針對用戶所屬的活躍度分類結(jié)果對用戶評分?jǐn)?shù)據(jù)使用不同的相似度計(jì)算公式。采用K-Means聚類算法,設(shè)定分成3簇。使用聚類算法后,將用戶活躍度分為三類。簇1表示的是活躍度較高的一類,記為Umax,簇2表示的是活躍度居中的一類,記為Umid,簇3表示的是活躍度較低的一類,記為Umin。針對不同活躍度的用戶進(jìn)行不同的處理,如公式(3)。
(3)
其中:m、n為常數(shù),用于調(diào)節(jié)實(shí)驗(yàn)結(jié)果;f(u)為用戶u的活躍度即用戶u評分過的項(xiàng)目總數(shù)。由于長尾分布的特點(diǎn)為絕大多數(shù)個(gè)體的尺度很小,而只有少數(shù)個(gè)體的尺度相當(dāng)大,故在設(shè)計(jì)公式時(shí)利用log(·)函數(shù)進(jìn)行處理。
對于活躍度較大的簇Umax,將其活躍度增強(qiáng)使調(diào)節(jié)函數(shù)結(jié)果減小。對中間簇Umid,對其進(jìn)行正常的調(diào)節(jié)。對活躍度較小的簇Umin,將其活躍度減小使調(diào)節(jié)函數(shù)的結(jié)果增大,增強(qiáng)活躍度低的用戶的影響。在各個(gè)類別中,具體的活躍度f(u)是計(jì)算得出,f(u)可以更加細(xì)化的區(qū)分每個(gè)類中的用戶數(shù)據(jù),是該用戶數(shù)據(jù)對相似度計(jì)算結(jié)果的影響不同??傮w來說,首先是進(jìn)行分類,然后針對每個(gè)類別的數(shù)據(jù)再細(xì)化處理。
UACF算法的相似度計(jì)算部分的偽代碼描述如下:
Step1讀取數(shù)據(jù),計(jì)算得到用戶ID及用戶評分的項(xiàng)目ID及相應(yīng)的分?jǐn)?shù)。
Step2用戶活躍度分類標(biāo)記。利用K-Means算法對用戶活躍度進(jìn)行聚類,并標(biāo)記每個(gè)用戶所處的類別。
Step3利用公式(2)、公式(3)計(jì)算任意兩個(gè)項(xiàng)目間的相似度。如果項(xiàng)目相似度集合中存在給定的項(xiàng)目i和項(xiàng)目j的數(shù)據(jù),則直接取出其相似度,否則進(jìn)行相似度計(jì)算。如果項(xiàng)目i和項(xiàng)目j的相似度小于需要的K個(gè)項(xiàng)目的相似度中的最小的一個(gè)則舍棄,否則存儲(chǔ)。
3.1 測試數(shù)據(jù)集
數(shù)據(jù)來源MovieLens數(shù)據(jù)集,包含943名用戶對1682個(gè)電影的100000條評分?jǐn)?shù)據(jù),數(shù)據(jù)包含用戶ID、電影ID、評分值、時(shí)間戳四種屬性值。評分值分為1-5,評分值5為最高評分。數(shù)據(jù)集的稀疏等級為1-100000/(943×1682)=93.7%。使用前,將數(shù)據(jù)集劃分為訓(xùn)練集和測試集。訓(xùn)練集和測試集分別占整個(gè)數(shù)據(jù)集的80%和20%。
3.2 評測指標(biāo)
本文著重點(diǎn)在于提高推薦結(jié)果的準(zhǔn)確率。為了驗(yàn)證算法有效性,在實(shí)驗(yàn)中采用的指標(biāo)為:準(zhǔn)確率、召回率、覆蓋率、新穎度。準(zhǔn)確率和召回率計(jì)算公式分別如公式(4)和公式(5)所示。
(4)
(5)
其中:R(u)為推薦系統(tǒng)為目標(biāo)用戶u推薦的N個(gè)項(xiàng)目集合;T(u)為用戶u在測試集上的項(xiàng)目集合。覆蓋率定義如公式(6)所示。
(6)
其中:I為所有項(xiàng)目集合;R(u)為推薦系統(tǒng)目標(biāo)用戶u推薦的N個(gè)項(xiàng)目集合;u為用戶集合U中的一個(gè)用戶。覆蓋率表示最終的推薦列表中的項(xiàng)目占總項(xiàng)目集合的比例。如果任何一個(gè)項(xiàng)目都被推薦給至少一個(gè)用戶,那么覆蓋率就是100%。新穎度定義如公式(7)所示。
(7)
其中:I為所有項(xiàng)目集合;i為集合I中的一個(gè)項(xiàng)目;P(i)為所有評論過項(xiàng)目i的用戶個(gè)數(shù);K為項(xiàng)目集合I中的項(xiàng)目個(gè)數(shù)。
圖1 不同算法的TopN推薦準(zhǔn)確率
3.3 實(shí)驗(yàn)結(jié)果及分析
本文設(shè)計(jì)了三組實(shí)驗(yàn)進(jìn)行驗(yàn)證。本文對協(xié)同過濾算法中的參數(shù)進(jìn)行了設(shè)定,設(shè)定最近鄰存儲(chǔ)個(gè)數(shù)item Nearest Neighbor Number、最近鄰使用個(gè)數(shù)TopK、推薦個(gè)數(shù)TopN。
采用上述數(shù)據(jù)集,依次對文獻(xiàn)[12]中提出的基于項(xiàng)目的協(xié)同過濾推薦算法(ICF),文獻(xiàn)[17]中提出的基于項(xiàng)目流行度的協(xié)同過濾TopN推薦算法(PopItemCF),使用公式(3)中中間活躍度處理方法的算法(LNCF)和本文提出的結(jié)合用戶活躍度的協(xié)同過濾推薦算法(UACF)進(jìn)行對比實(shí)驗(yàn),選用同一數(shù)據(jù)集,TopK為50,設(shè)m=100.0,n=4.0,TopN從5開始,每次增加5,至50,對比不同TopN時(shí)的推薦準(zhǔn)確率,結(jié)果如圖1。
從圖1中可以看出,本文提出的UACF算法較其他算法的推薦準(zhǔn)確率有了明顯的提高。UACF算法較ICF算法在上述實(shí)驗(yàn)中平均推薦準(zhǔn)確率提高了25.79%。
為了對比以上算法在其他評測指標(biāo)上的表現(xiàn),作進(jìn)一步的實(shí)驗(yàn)。設(shè)TopN為10,TopK為50,m=100.0,n=4.0,各算法的準(zhǔn)確率、召回率、覆蓋率和新穎度的實(shí)驗(yàn)結(jié)果數(shù)據(jù)如表1。
表1 各算法的評測指標(biāo)結(jié)果
從表1中可以看出,UACF算法較其他算法,在準(zhǔn)確率和召回率上明顯得到提升。以下為m、n值的選擇實(shí)驗(yàn),通過調(diào)節(jié)m或者n的值,觀察實(shí)驗(yàn)結(jié)果,最終確定m、n值的選擇范圍。設(shè)m=1,n從1開始,每次自增1,至100,測試推薦準(zhǔn)確率和覆蓋率,結(jié)果如圖2。從圖2可以看出,隨著n的增加,推薦準(zhǔn)確率先增加到達(dá)峰值后緩慢下降。這說明調(diào)高活躍度低的用戶數(shù)據(jù)在相似度計(jì)算中的權(quán)重值即在一定范圍內(nèi)增加n的值可以提高推薦準(zhǔn)確率。綜合考慮準(zhǔn)確率和覆蓋率的分布,在確保準(zhǔn)確率較高的情況下有較高的覆蓋率,n的選取范圍為17-23。
設(shè)n=1,m從10開始,每次自增10,至1000,測試推薦準(zhǔn)確率和覆蓋率,結(jié)果如圖3所示。
圖2 不同n下的試驗(yàn)結(jié)果圖3 不同m下的試驗(yàn)結(jié)果
從圖3可以看出,提高m值使活躍度高的用戶數(shù)據(jù)在相似度計(jì)算中降低權(quán)重對推薦準(zhǔn)確率影響較小,在m值大于100時(shí),準(zhǔn)確率和覆蓋率基本圍繞一個(gè)值上下震蕩。在m等于510時(shí)為測試結(jié)果的最大值,而且當(dāng)前結(jié)果的覆蓋率也較大。
通過上述實(shí)驗(yàn)對比,選取m=510,n=20,評測指標(biāo)結(jié)果值如表2。
表2 較好m和n值下的試驗(yàn)結(jié)果
通過測試不同的m、n值,同時(shí)選取較好的m、n測試值后,各項(xiàng)指標(biāo)均有所提升。說明合理設(shè)置m、n值可以提高推薦效果。m值大于100后對結(jié)果影響較小,n值在大于23后可以提高結(jié)果的覆蓋率和新穎度,提高長尾項(xiàng)目的推薦比例。
本文提出了一種解決流行偏置問題的新方法,該算法比基于項(xiàng)目的協(xié)同過濾算法的推薦準(zhǔn)確度提高27%,可以更精準(zhǔn)的向用戶提供推薦結(jié)果。本文從不同活躍度用戶的評分?jǐn)?shù)據(jù)的有效性入手,提出針對用戶活躍度進(jìn)行聚類處理的方法,較好的提高了相似度計(jì)算的可靠性。通過對用戶活躍度聚類進(jìn)行用戶分類的方法速度快、效果明顯,可以適用于所有的基于項(xiàng)目的協(xié)同過濾推薦算法。
[1] A.F.Rutkowski,C.S.Saunders.Growing pains with information overload[J].Computer,2010,43(6):94-95.
[2] 郭曉利,韓嘯.電網(wǎng)知識(shí)協(xié)同發(fā)現(xiàn)策略研究[J].東北電力大學(xué)學(xué)報(bào),2014,34(1):94-98.
[3] A.Zenebe,A.F.Norcio.Representation,similarity measures and aggregation methods using fuzzy sets for content-based recommender systems [J].Fuzzy Sets and Systems,2009,160(1):76-94.
[4] G.Adomavicius,A.Tuzhilin.Toward the next generation of recommender systems:a survey of the state-of-the-art and possible extensions[J].Knowledge and Data Engineering,IEEE Transactions on,2005,17(6):734-749.
[5] 余力,劉魯.電子商務(wù)個(gè)性化推薦研究[J].計(jì)算機(jī)集成制造系統(tǒng),2004,10(10):1306-1313.
[6] 楊艷.數(shù)字圖書館中興趣度推薦算法[J].哈爾濱工程大學(xué)學(xué)報(bào),2009,30(6):658-662.
[7] 喬向杰,張凌云.近十年國外旅游推薦系統(tǒng)的應(yīng)用研究[J].旅游學(xué)刊,2014,29(8):117-127.
[8] 冷亞軍,陸青,梁昌勇.協(xié)同過濾推薦技術(shù)綜述[J].模式識(shí)別與人工智能,2014,27(8):720-734.
[9] 曲朝陽,孫立擎,許劭慶,等.基于B+樹的電力大數(shù)據(jù)分布式索引[J].東北電力大學(xué)學(xué)報(bào),2016,36(5):80-85.
[10] P.Resnick,N.Iacovou,M.Suchak,et al.GroupLens:an open architecture for collaborative filtering of netnews[C].Proceedings of the 1994 ACM Conference on Computer Supported Cooperative Work.ACM,1994:175-186.
[11] 徐蕾,楊成,姜春曉,等.協(xié)同過濾推薦系統(tǒng)中的用戶博弈[J].計(jì)算機(jī)學(xué)報(bào),2016,39(6):1176-1189.
[12] G.Linden,B.Smith,J.York.Amazon.com recommendations:item-to-item collaborative filtering[J].Internet Computing,IEEE,2003,7(1):76-80.
[13] 項(xiàng)亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012:51-52.
[14] J.S.Breese,D.Heckerman,C.Kadie.Empirical analysis of predictive algorithms for collaborative filtering[C].Proceedings of the Fourteenth Conference on Uncertainty in Artificial Intelligence.Morgan Kaufmann Publishers Inc.,1998:43-52.
[15] R.Jin,J.Y.Chai,L.Si.An automatic weighting scheme for collaborative filtering[C].Proceedings of the 27th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval.ACM,2004:337-344.
[16] G.Adomavicius,Y.Kwon.Improving aggregate recommendation diversity using ranking-based techniques[J].Knowledge and Data Engineering,IEEE Transactions on,2012,24(5):896-911.
[17] 郝立燕,王靖.基于項(xiàng)目流行度的協(xié)同過濾TopN推薦算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(10):3497-3501.
[18] S.Peltier,F(xiàn).Moreau.Internet and the ‘Long Tail versus superstar effect’ debate:evidence from the French book market[J].Applied Economics Letters,2012,19(8):711-715.
Abstract:In order to solve the problem of popularity bias in recommendation system,we propose a novel collaborative filtering recommendation algorithm,UACF.UACF considers the influence of user activity on the recommended results.It applies cluster analysis algorithm to handle user activity and uses different activity adjustment formula to deal with different clustering results.This method is introduced into the process of similarity calculation to improve the reliability of similarity calculation.experiments on typical data sets show that the algorithm can achieve more accurate rating recommendations than the conventional methods.
Keywords:User activity;Cluster analysis;Collaborative filtering;Top-N recommendation
RecommendationsBasedonCollaborativeFilteringbyUserActivity
QuZhaoyang1,SongChenchen1,RenYouxue2,LiuYaowei2,NiuQiang2,DuJianhong3
(1.School of Information Engineering,Northeast Electric Power University,Jilin Jilin 132012;2.Jilin Power Supply Company,State Grid Jilin Electric Power Co.,ltd.,Jilin Jilin 132000;3.Full Power Plant in Jilin City,Jilin Jilin 132108)
TP391
A
2017-03-09.
國家自然科學(xué)基金項(xiàng)目(51277023)吉林省科技計(jì)劃重點(diǎn)轉(zhuǎn)化項(xiàng)目(20140307008GX)
曲朝陽(1964-),男,博士,教授,主要研究方向:智能信息處理.
電子郵箱:qzywww@nedu.edu.cn(曲朝陽);172342547@qq.com(宋晨晨);1406989666@qq.com(任有學(xué));frqkycg@163.com(劉耀偉);qzynedu@qq.com(牛強(qiáng));531146846@qq.com(獨(dú)健鴻)
1005-2992(2017)05-0074-06