王永貴,李 昕
遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島 125105
隨著數(shù)字時(shí)代的到來和大數(shù)據(jù)的發(fā)展,互聯(lián)網(wǎng)用戶群體不斷擴(kuò)大,從海量的數(shù)據(jù)信息中精準(zhǔn)地找到所需內(nèi)容越來越困難。推薦系統(tǒng)應(yīng)運(yùn)而生,幫助用戶篩選出有效信息,實(shí)現(xiàn)個(gè)性化推薦。協(xié)同過濾算法是在推薦系統(tǒng)中普遍應(yīng)用且較為成熟的推薦算法,也是推薦系統(tǒng)中的熱門研究內(nèi)容。許多超大型電子商務(wù)網(wǎng)站都使用了協(xié)同過濾算法,比如淘寶網(wǎng)、京東商城、當(dāng)當(dāng)網(wǎng)等;隨著信息時(shí)代的快速發(fā)展,用戶數(shù)量急劇增加的同時(shí)伴隨著龐大的信息量,造成數(shù)據(jù)的稀疏性,從而降低了算法的推薦準(zhǔn)確率,影響推薦效果。
傳統(tǒng)的協(xié)同過濾推薦算法主要包括基于用戶的協(xié)同過濾算法和基于項(xiàng)目的協(xié)同過濾算法,旨在尋找用戶以往在網(wǎng)站中的活動信息,剔除無關(guān)信息,挑選出有價(jià)值的內(nèi)容或者商品推薦給用戶。由此可見,尋找目標(biāo)用戶和推薦內(nèi)容的潛在關(guān)系是推薦的關(guān)鍵。隨著推薦系統(tǒng)的壯大和成熟,眾多研究專家結(jié)合推薦系統(tǒng)和數(shù)據(jù)挖掘中的聚類模型,借助聚類算法的優(yōu)勢解決推薦系統(tǒng)中存在的問題。古話講:“物以類聚,人以群分”,聚類的目的就是按照一定的劃分標(biāo)準(zhǔn)對人或物進(jìn)行分類。因此將聚類模型運(yùn)用到推薦系統(tǒng)中,深度挖掘用戶和用戶、用戶和物品以及物品和物品的關(guān)系,在很大程度上提高了推薦效率和推薦質(zhì)量。同時(shí),協(xié)同過濾算法中普遍存在海量的數(shù)據(jù)信息,依靠聚類算法較高的伸縮性可以降低其時(shí)間復(fù)雜度。
為降低數(shù)據(jù)稀疏程度、提高推薦準(zhǔn)確率,許多研究者對傳統(tǒng)的協(xié)同過濾算法進(jìn)行了改進(jìn)。魏甜甜等人[1]考慮到項(xiàng)目流行度差異,引入懲罰權(quán)重函數(shù)加入到傳統(tǒng)的協(xié)同過濾算法中。張瑞典[2]根據(jù)項(xiàng)目在當(dāng)前市場上熱度大小設(shè)置不同的權(quán)重值,綜合考慮用戶偏好程度構(gòu)建用戶相似度矩陣。充分考慮影響評分相似度計(jì)算的因素并加以改進(jìn),提高了算法效率,但是忽略了數(shù)據(jù)稀疏性太大對算法執(zhí)行率的影響。黃賢英等人[3]研究用戶的興趣愛好,對體現(xiàn)用戶對項(xiàng)目喜好程度的矩陣使用K-means算法進(jìn)行聚類,提高了推薦準(zhǔn)確率。劉國麗等人[4]在傳統(tǒng)聚類推薦算法中融入專家信任值以改進(jìn)預(yù)測評分的計(jì)算。李瑞等人[5]將K-means聚類算法與SVD++模型融合后加入到傳統(tǒng)算法中,使用SVD++模型對聚類后的用戶-項(xiàng)目評分矩陣分解,解決了數(shù)據(jù)稀疏性的問題。但是K-means算法屬于硬聚類算法,只能按照聚類標(biāo)準(zhǔn)將數(shù)據(jù)嚴(yán)格劃分到一個(gè)類別中,但是在現(xiàn)實(shí)的推薦系統(tǒng)中,用戶或者項(xiàng)目均有多個(gè)標(biāo)簽分別屬于不同類別。因此針對K-means聚類算法應(yīng)用在推薦系統(tǒng)中存在的問題,Gong等人[6]構(gòu)建模糊相似度矩陣,利用模糊聚類算法形成最近鄰居集合。Kumar等人[7]結(jié)合模糊C-均值聚類算法到傳統(tǒng)的協(xié)同過濾推薦算法中,可以根據(jù)用戶評分相似性聚類到不同的類別中。胡朝舉等人[8]提出一種基于用戶模糊聚類的個(gè)性化推薦研究,使用模糊聚類算法以提高聚類的正確率。上述模糊聚類算法的提出均有效提高了推薦準(zhǔn)確率,但是忽略了數(shù)據(jù)稀疏性對聚類算法的影響,也忽視了隨機(jī)生成的初始聚類中心對推薦效果所產(chǎn)生的影響。
針對上述研究成果中存在的問題,同時(shí)基于狼群算法可以快速地找到最優(yōu)解,有效減少模糊聚類隨機(jī)初始聚類中心對聚類結(jié)果的影響。提出融合狼群算法和模糊聚類的混合推薦算法。首先利用基于項(xiàng)目的協(xié)同過濾算法生成預(yù)測評分填充原始數(shù)據(jù)中的零值,主要根據(jù)目標(biāo)用戶對未評分項(xiàng)目相似項(xiàng)目集合的評分進(jìn)行預(yù)測。然后使用狼群算法優(yōu)化的聚類算法對用戶進(jìn)行模糊聚類,根據(jù)對類簇的隸屬度大小選擇最近鄰居集合,按照計(jì)算得到的預(yù)測評分進(jìn)行推薦。經(jīng)實(shí)驗(yàn)表明,該算法具有更優(yōu)的推薦性能,在解決數(shù)據(jù)稀疏問題的同時(shí)為目標(biāo)用戶提供高質(zhì)量且多樣化的推薦。
在推薦系統(tǒng)中較為完善且應(yīng)用成熟的傳統(tǒng)算法主要包括基于用戶的協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾。推薦系統(tǒng)中有數(shù)以萬計(jì)的用戶量,但是僅有部分用戶和項(xiàng)目之間存在評分關(guān)系,推薦算法根據(jù)當(dāng)前的數(shù)據(jù)預(yù)測用戶和項(xiàng)目評分關(guān)系中的空白信息,選擇合理的項(xiàng)目推薦給用戶。協(xié)同過濾主要包括三部分:對用戶活動信息的獲取;挑選鄰居集合;預(yù)測評分,產(chǎn)生推薦[9]。
用戶活動信息是用戶在各大型網(wǎng)站中開始搜索、點(diǎn)贊、評分等操作,一直到停止搜索時(shí)產(chǎn)生的各種行為信息。在傳統(tǒng)的協(xié)同過濾算法中,用戶活動信息具體為用戶對各項(xiàng)目的評分?jǐn)?shù)據(jù),表示為用戶-項(xiàng)目評分矩陣Rm×n,如公式(1)所示:
其中,行數(shù)m表示用戶集合U,列數(shù)表示項(xiàng)目集合I。rij表示用戶對項(xiàng)目的評分大小,取值范圍為0~5,0值表示用戶未對項(xiàng)目進(jìn)行打分,數(shù)字1~5是用戶對項(xiàng)目的打分?jǐn)?shù)據(jù)。評分大小在很大程度上體現(xiàn)出了用戶對該項(xiàng)目的偏好喜愛程度。
協(xié)同過濾算法中的鄰居集合包括鄰居用戶集合和鄰居項(xiàng)目集合,同一鄰居集合中的用戶或者項(xiàng)目間的相似度較高。挑選鄰居集合的過程主要分為兩個(gè)部分:計(jì)算相似度大小,選取最近鄰居。
1.2.1 計(jì)算相似度大小
計(jì)算相似度大小是選擇最近鄰居的前提,是影響推薦效果的關(guān)鍵性因素。常用的計(jì)算相似度的方法有余弦相似度、皮爾遜相似度和修正的余弦相似度,通過把公式(1)中的數(shù)據(jù)轉(zhuǎn)化為向量進(jìn)行計(jì)算。不同用戶間的評分標(biāo)準(zhǔn)不同,余弦相似度公式?jīng)]有考慮用戶評分尺度問題對計(jì)算結(jié)果的影響。皮爾遜相似度需要根據(jù)用戶間的共同評分進(jìn)行計(jì)算,不適用于稀疏性較大的數(shù)據(jù)集,而本文算法實(shí)驗(yàn)數(shù)據(jù)集的稀疏性均高于90%。故選擇修正的余弦相似度公式進(jìn)行計(jì)算,如公式(2)所示:
修正的余弦相似度公式改善了用戶評分尺度問題對計(jì)算結(jié)果的影響,擴(kuò)展性較好。其中,Ui∩Uj表示對項(xiàng)目i和項(xiàng)目j同時(shí)評分過的用戶集合,rˉu表示用戶對評分過的項(xiàng)目集合的平均評分。
1.2.2 選擇最近鄰居
對公式(2)求得的相似度大小降序排列,選擇前K個(gè)用戶或者項(xiàng)目作為最近鄰居集合。
在協(xié)同過濾推薦中,將目標(biāo)用戶的預(yù)測評分作為依據(jù)生成推薦列表,過濾已發(fā)生交互行為的項(xiàng)目進(jìn)行推薦,形成推薦結(jié)果。預(yù)測評分是目標(biāo)用戶參考?xì)v史數(shù)據(jù)信息,對沒有數(shù)據(jù)關(guān)系的項(xiàng)目計(jì)算得到的評分。
1.3.1 基于項(xiàng)目的推薦
在基于項(xiàng)目的協(xié)同過濾推薦算法中,充分挖掘項(xiàng)目間的潛在關(guān)系和深層關(guān)系,以尋找物品間的關(guān)聯(lián)性。首先要找到目標(biāo)用戶未評分項(xiàng)目的相似項(xiàng)目,獲取目標(biāo)用戶對相似項(xiàng)目的歷史評分?jǐn)?shù)據(jù),最后使用權(quán)重求和法[9]計(jì)算預(yù)測評分。計(jì)算過程見公式(3):
其中,ru,i表示用戶u對項(xiàng)目i的評分,Ij表示項(xiàng)目j的鄰居集合。
1.3.2 基于用戶的推薦
在基于用戶的協(xié)同過濾推薦算法中,將相似用戶的評分?jǐn)?shù)據(jù)作為依據(jù),通過公式(4)對預(yù)測評分進(jìn)行計(jì)算:
傳統(tǒng)的協(xié)同過濾推薦在數(shù)據(jù)稀疏的環(huán)境下,很難為目標(biāo)用戶找到可靠的相似用戶,影響推薦結(jié)果。因而提出使用基于物品的協(xié)同過濾推薦面向稀疏矩陣,進(jìn)行數(shù)據(jù)填充,以確保數(shù)據(jù)的完整性。然后使用狼群算法優(yōu)化的模糊C-均值聚類算法加入到傳統(tǒng)的協(xié)同過濾算法中,找到可靠的鄰居用戶,參考其歷史數(shù)據(jù)形成推薦列表,過濾目標(biāo)用戶已經(jīng)產(chǎn)生交互行為的項(xiàng)目后,形成最終的推薦列表。基于狼群算法和模糊聚類的協(xié)同過濾旨在降低實(shí)驗(yàn)數(shù)據(jù)集稀疏性的同時(shí)為用戶提供高精度、高效率、高質(zhì)量的個(gè)性化推薦內(nèi)容,增強(qiáng)用戶的體驗(yàn)感。此推薦系統(tǒng)的流程圖如圖1所示。
圖1 融合狼群算法和模糊聚類的推薦系統(tǒng)流程圖Fig.1 Flow chart of recommendation system integrating wolf colony algorithm and fuzzy clustering
推薦算法中有難以數(shù)計(jì)的用戶數(shù)量,數(shù)不勝數(shù)的物品數(shù)量,信息量十分龐大。但是產(chǎn)生交互行為的數(shù)據(jù)信息很少,只有少部分用戶會有評分行為,有共同評分行為的數(shù)據(jù)更少,甚至沒有。由于數(shù)據(jù)極具稀疏,可能會造成計(jì)算相似度時(shí)誤差偏大,導(dǎo)致推薦結(jié)果產(chǎn)生偏差,推薦效果不好。
為解決上述問題,使用傳統(tǒng)的基于項(xiàng)目的協(xié)同過濾推薦對數(shù)據(jù)矩陣進(jìn)行填充。根據(jù)用戶對項(xiàng)目的評分,結(jié)合項(xiàng)目相似度計(jì)算公式,找到與未評分項(xiàng)目相似度最高的K個(gè)物品?;谙嗨莆锲返臍v史評分記錄,計(jì)算目標(biāo)用戶對未評分項(xiàng)目的預(yù)測評分替換原始矩陣的零值。物品相似度更能體現(xiàn)它們之間的潛在關(guān)系和深層關(guān)系,從物品角度出發(fā),更具有實(shí)際意義。預(yù)測公式見公式(3)。
狼群算法(WPA)是一種群體智能算法,將自然界中狼群的群體行為抽象地用數(shù)學(xué)公式表示出來。在自然界中,狼群處于食物鏈頂端的位置,等級制度劃分嚴(yán)密。主要分為頭狼、探狼、猛狼三種類型,它們分工明了又相互配合共同完成捕殺任務(wù)。探狼根據(jù)嗅到的獵物氣味濃度判斷是否向靠近獵物的方向運(yùn)動,并將搜尋信息報(bào)告給頭狼;頭狼是狼群中的軍師,接收反饋信息后,指揮猛狼朝向探狼的方向行動;猛狼在接收到命令后,開始捕殺行動。狼群算法模型[10]如圖2所示。
圖2 狼群算法模型圖Fig.2 Wolf colony algorithm model
狼群算法分為五個(gè)部分:算法初始化、游走活動、號召行為、進(jìn)行圍攻、狼群更新。
(1)算法初始化
狼群的活動范圍是一個(gè)N×D的活動空間,D是尋優(yōu)變量數(shù)量,N是狼的數(shù)量。狼群中某一只人工狼的位置Xi=( )xi1,xi2,…,xiD,i=1,2,…,N,目標(biāo)函數(shù)值為Yi=f()X,為人工狼感知到的獵物氣味濃度。選擇目標(biāo)函數(shù)值最大的狼為頭狼,設(shè)為Ylead。
(2)游走活動
目標(biāo)函數(shù)值較優(yōu)的一部分狼群為探狼,它們分別朝h個(gè)方向游走,移動到新的位置搜尋獵物,計(jì)算當(dāng)前位置的目標(biāo)函數(shù)值后返回并且重新出發(fā),不斷重復(fù)這個(gè)過程,最終選擇目標(biāo)函數(shù)值最大的位置前進(jìn)。當(dāng)Yi>Ylead時(shí),或者游走次數(shù)達(dá)到上限后,更新位置。探狼游走活動由公式(5)表示:
其中,表示探狼向第p個(gè)方向前進(jìn)后的位置,p=1,2,…,h。Xi是探狼出發(fā)時(shí)的位置,stepa是探狼的活動步長。
(3)號召行為
猛狼以頭狼的位置為目標(biāo)進(jìn)行奔走,負(fù)責(zé)食物的供給且聽從頭狼的召喚。在這個(gè)過程中,如果猛狼的目標(biāo)函數(shù)值大于頭狼的目標(biāo)函數(shù)值,則代替頭狼的位置和職責(zé)。當(dāng)兩者距離小于閾值時(shí),算法進(jìn)行到下一步。猛狼的位置變化可由公式(6)表示:
(4)進(jìn)行圍攻
奔襲的猛狼向獵物靠近時(shí),聯(lián)合以獵物為目標(biāo)進(jìn)行游走的探狼發(fā)起圍攻。此時(shí),將頭狼的位置視為獵物的位置,圍攻行為由公式(7)所示:
(5)狼群更新
狼群算法模仿達(dá)爾文的自然選擇學(xué)說對狼群進(jìn)行優(yōu)勝劣汰,并且執(zhí)行按勞分配獵物的原則。捕獵過程中貢獻(xiàn)較大的狼優(yōu)先分配獵物,一些弱小且未能參與到捕獵過程中的狼可能會因?yàn)闆]有分得獵物而餓死,從而在狼群中去除適應(yīng)度值最差的R匹狼的同時(shí),隨機(jī)產(chǎn)生R匹狼補(bǔ)充到隊(duì)伍中,更新狼群,實(shí)現(xiàn)狼群的多樣化。
使用傳統(tǒng)的聚類算法后,每個(gè)項(xiàng)目只能被劃分到一個(gè)類別中,在許多大型網(wǎng)站中應(yīng)用受限。而模糊聚類的聚類結(jié)果更加靈活,根據(jù)不同的隸屬度將一個(gè)項(xiàng)目劃分到不同的類別中,彌補(bǔ)傳統(tǒng)聚類算法的缺陷,其中被廣泛應(yīng)用的是模糊C-均值聚類算法(FCM)。
將FCM聚類算法加入到評分矩陣Rm×n,根據(jù)所有用戶對物品的評分信息模糊聚類,將用戶集合X劃分到c個(gè)類簇中,在同一個(gè)類簇中的用戶相似度最高。聚類中心C={C1,C2,…,CC},用戶對聚類中心的隸屬度為μij。為了得到更好的聚類結(jié)果,將約束條件設(shè)置為聚類結(jié)果是用戶隸屬度矩陣U=(μij)n×c。聚類的過程是使目標(biāo)函數(shù)值達(dá)到最小的過程,目標(biāo)函數(shù)可以表示為公式(9):
其中,m是刻畫模糊程度的參數(shù),最佳選擇范圍是[1 ,2.5],一般取為2。μij可表示為公式(10),即用戶i屬于第j個(gè)簇的隸屬程度;Cj為用戶簇j的聚類中心,如公式(11)所示;公式(12)中dij是各用戶和聚類中心之間的距離。
其中,用戶和聚類中心的距離為模糊聚類的主要依據(jù)。根據(jù)距離的大小計(jì)算隸屬度后進(jìn)行比較,將用戶按照隸屬度的大小進(jìn)行分類,盡可能地使得同一簇中用戶的相似度最高,不同簇中用戶的相似度低。
預(yù)測評分時(shí),同一個(gè)簇中的相似用戶對目標(biāo)用戶的影響不同。引入距離公式作為一個(gè)權(quán)重到評分預(yù)測公式中,以消除上述影響。
聚類中心位置的選取影響著聚類效果,如果設(shè)置不合理,則限制算法的收斂性[11],使算法容易陷入局部最優(yōu)或者很難找到全局最優(yōu)。FCM算法初始聚類中心位置的隨機(jī)性決定算法的性能。而狼群算法的收斂速度很快,對參數(shù)的敏感性比較低,求解質(zhì)量較高[10]。因而提出狼群優(yōu)化的模糊C-均值聚類算法(WPA-FCM),獲取合理的聚類中心。
算法思想:利用狼群算法找到初始聚類中心,根據(jù)得到的聚類中心使用FCM算法對用戶進(jìn)行聚類。此算法適應(yīng)度函數(shù)設(shè)置為fitness=J。
算法流程:
輸入:用戶-項(xiàng)目評分矩陣、用戶聚類個(gè)數(shù)、狼群大小N、狼群進(jìn)化迭代上限kmax、狼群進(jìn)化占比R、探狼在狼群中的占比α、探狼游走上限Tmax、聚類停止迭代的閾值ε。
輸出:用戶簇隸屬度矩陣U。
步驟1根據(jù)公式(9)計(jì)算狼群的適應(yīng)度大小,選擇適應(yīng)度最大的為頭狼,并且劃分出探狼和猛狼。
步驟2探狼進(jìn)行全局搜索,計(jì)算探狼當(dāng)前的適應(yīng)度值,并且和頭狼進(jìn)行比較。fi>flead時(shí)或者活動次數(shù)達(dá)到游走上限Tmax時(shí),停止活動。
步驟3按照公式(5)計(jì)算探狼的位置并更新。
步驟4猛狼以頭狼的位置為目標(biāo)進(jìn)行搜索,將其適應(yīng)度值和頭狼進(jìn)行比較。fi>flead時(shí),猛狼代替頭狼的位置;fi<flead時(shí),猛狼繼續(xù)搜索,一直到猛狼和頭狼之間的距離小于閾值d。
步驟5在狼群進(jìn)行圍攻行為之后,根據(jù)公式(5)~(7)對各狼的位置進(jìn)行更新,將距離獵物最近的人工狼的位置視為新的頭狼位置。
步驟6根據(jù)狼群進(jìn)化占比R更新狼群。
步驟7判斷狼群算法是否停止:如果k<kmax,繼續(xù)迭代過程,k=k+1,算法跳回步驟1,繼續(xù)優(yōu)化過程;k>kmax時(shí),算法終止,輸出最優(yōu)值。
步驟8根據(jù)最優(yōu)值初始化FCM算法的聚類中心,初始化用戶隸屬度矩陣U。
步驟9根據(jù)公式(10)、(11)計(jì)算、更新聚類中心矩陣C和隸屬度矩陣U。
步驟10計(jì)算目標(biāo)函數(shù)值并進(jìn)行比較,J(T)-J(T+1)<ε時(shí),停止迭代,輸出用戶簇隸屬度矩陣U;否則,返回步驟9繼續(xù)迭代過程。
本文提出基于狼群算法和模糊聚類的混合推薦算法,首先獲取歷史數(shù)據(jù)對數(shù)據(jù)矩陣進(jìn)行填充;其次,通過狼群算法優(yōu)化的模糊C-均值聚類算法對用戶分類;最后,使用協(xié)同過濾進(jìn)行推薦。推薦過程如圖3所示。
圖3 推薦過程Fig.3 Recommendation process
MovieLens 100K數(shù)據(jù)集中有943名用戶對1 682部電影的評價(jià)數(shù)據(jù)。MovieLens 1M數(shù)據(jù)集中有6 040名用戶對3 952部電影的評價(jià)信息。兩個(gè)數(shù)據(jù)集中均包含了用戶的基本信息、電影的屬性信息以及用戶對電影的評分?jǐn)?shù)據(jù)。用戶對電影的評價(jià)數(shù)據(jù)量數(shù)以萬計(jì),并且分為5個(gè)不同的等級(1分~5分),分?jǐn)?shù)越高代表用戶對電影的評價(jià)越高,但是數(shù)據(jù)的稀疏性分別高達(dá)約94%、96%。
預(yù)處理數(shù)據(jù)集,提取出用戶的評價(jià)數(shù)據(jù)和電影的屬性信息,構(gòu)建用戶-項(xiàng)目評分矩陣;同時(shí)劃分?jǐn)?shù)據(jù)集,將數(shù)據(jù)集的80%作為訓(xùn)練集,數(shù)據(jù)集的20%作為測試集,數(shù)據(jù)集之間相互獨(dú)立,涵蓋了全部數(shù)據(jù)。
實(shí)驗(yàn)采用平均絕對誤差(MAE)、均方根誤差(RMSE)作為評價(jià)算法推薦質(zhì)量的指標(biāo),根據(jù)用戶實(shí)際評分和預(yù)測評分之間的偏差評估推薦準(zhǔn)確率。計(jì)算結(jié)果越小,誤差越小,表明算法的推薦質(zhì)量越高。
其中,pu,i代表目標(biāo)用戶對電影的預(yù)測評分,ru,i代表目標(biāo)用戶的實(shí)際評分,n是數(shù)據(jù)集中已有評分的電影數(shù)量。
實(shí)驗(yàn)1為驗(yàn)證填充后的用戶-項(xiàng)目評分矩陣優(yōu)于原始的用戶-項(xiàng)目評分矩陣,將基于數(shù)據(jù)填充的混合協(xié)同過濾(hybrid)、基于項(xiàng)目的協(xié)同過濾推薦算法[12](ItemCF)、基于用戶的協(xié)同過濾[13](UserCF)在數(shù)據(jù)集MovieLens 100K上進(jìn)行對比實(shí)驗(yàn),在最近鄰居數(shù)目分別取20、30、40、50、60的時(shí)候,比較MAE的值,實(shí)驗(yàn)結(jié)果如圖4和圖5所示。
圖4 UserCF、ItemCF、hybrid算法的MAE變化Fig.4 MAE changes of UserCF,ItemCF,hybrid algorithm
圖5 UserCF、ItemCF、hybrid算法的RMSE變化Fig.5 MAE changes of UserCF,ItemCF,hybrid algorithm
經(jīng)實(shí)驗(yàn)結(jié)果表明,基于數(shù)據(jù)填充的混合協(xié)同過濾的MAE值在0.80附近上下波動,較UserCF的MAE值降低了5%,比ItemCF的MAE值降低了3%,充分說明填充數(shù)據(jù)矩陣后進(jìn)行協(xié)同過濾推薦,推薦效果更好,在緩解數(shù)據(jù)稀疏性的同時(shí)為用戶提供高質(zhì)量的推薦內(nèi)容。
從圖5中可以看出,hybrid算法的RMSE值均低于UserCF算法、ItemCF算法的值,可見hybrid算法的有效性。在緩解數(shù)據(jù)稀疏性的同時(shí),推薦結(jié)果具有更高的精度。在同等數(shù)據(jù)條件下,hybrid算法優(yōu)于傳統(tǒng)的協(xié)同過濾算法。
實(shí)驗(yàn)2設(shè)置WPA-FCM算法參數(shù):探狼比例因子α=4,狼群進(jìn)化的比例因子R=6,狼群進(jìn)化迭代上限kmax=300,探狼游走上限Tmax=30,聚類停止迭代的閾值ε=0.01。
為了研究聚類個(gè)數(shù)與實(shí)驗(yàn)結(jié)果的關(guān)系,在聚類結(jié)果分別取10、20、30、40、50、60的情況下進(jìn)行實(shí)驗(yàn),其MAE、RMSE結(jié)果如圖6、圖7所示。
圖6 MAE隨聚類個(gè)數(shù)的變化情況Fig.6 Change of MAE with number of clusters
通過圖6、圖7實(shí)驗(yàn)結(jié)果可知,不同的聚類個(gè)數(shù)直接影響了推薦準(zhǔn)確度的高低。隨著聚類個(gè)數(shù)C的增加,MAE、RMSE的值也在不斷增加,誤差逐漸增加,即推薦效果逐漸減弱。根據(jù)實(shí)驗(yàn)結(jié)果,選擇聚類個(gè)數(shù)為10的時(shí)候推薦效果最佳。
圖7 RMSE隨聚類個(gè)數(shù)的變化情況Fig.7 Change of RMSE with number of clusters
實(shí)驗(yàn)3 WPA-FCM算法與其他協(xié)同過濾算法分別在不同的數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),以驗(yàn)證WPA-FCM算法的適用性和有效性。選取基于用戶模糊相似度的協(xié)同過濾算法[8](UserCF-FCM)、基于項(xiàng)目模糊相似度的協(xié)同過濾推薦算法[14](ItemCF-FCM)在MovieLens 1M數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),如圖8;選取UserCF[13]、K-Means算法[15]、Kmeans-SVD算法[5]、FCM算法[6]在MovieLens 100K數(shù)據(jù)集對比實(shí)驗(yàn),如圖9。聚類個(gè)數(shù)為10,最近鄰居個(gè)數(shù)分別選取20、30、40、50、60。
圖8 Movielens 1M算法對比Fig.8 MovieLens 1M comparison of algorithms
如圖8,當(dāng)鄰居數(shù)量從20變化到60的時(shí)候,三個(gè)算法的MAE值均不斷減小,且趨于平穩(wěn)。在Movielens數(shù)據(jù)集中,WPA-FCM模糊用戶評分信息,尋找用戶與電影間的關(guān)系,算法精度始終高于UserCF-FCM、ItemCFFCM。WPA-FCM算法適用于數(shù)據(jù)稀疏且用戶關(guān)系模糊的數(shù)據(jù)集。
根據(jù)圖9可以看出,與其他4種算法相比,本文提出算法的MAE值最小,推薦效果更好。K-Means算法、Kmeans-SVD算法分別在UserCF算法上融合了硬聚類的方法,在電影推薦系統(tǒng)中應(yīng)用受限,推薦精度低;FCM算法在UserCF算法上融合了軟聚類算法,增強(qiáng)推薦系統(tǒng)的推薦效果,但是算法隨機(jī)初始聚類中心的選取對實(shí)驗(yàn)結(jié)果影響較大。以上算法均未考慮到數(shù)據(jù)稀疏對聚類結(jié)果的影響,本文算法在緩解數(shù)據(jù)矩陣稀疏性的同時(shí),加入狼群優(yōu)化的模糊C-均值聚類算法,降低隨機(jī)的初始聚類中心對聚類結(jié)果的影響,同時(shí)提升了聚類效果,在候選鄰居簇中選取最近鄰居,提升選取鄰居的精確度,大大提高了推薦系統(tǒng)的推薦質(zhì)量。
由于傳統(tǒng)的基于用戶的協(xié)同過濾算法數(shù)據(jù)稀疏程度高,推薦準(zhǔn)確度低,本文提出一種基于狼群算法和模糊聚類的混合推薦算法。為了降低數(shù)據(jù)稀疏性,利用基于項(xiàng)目的協(xié)同過濾算法預(yù)測目標(biāo)用戶對電影的評分,充分挖掘電影之間的潛在關(guān)系,將預(yù)測評分填充到原始的用戶-項(xiàng)目評分矩陣。為了增強(qiáng)推薦效果,提高推薦質(zhì)量,融合模糊C-均值聚類算法到傳統(tǒng)算法中,根據(jù)隸屬度的高低將用戶分為不同的類別;同時(shí)加入狼群算法優(yōu)化聚類算法的初始聚類中心,增強(qiáng)聚類效果。實(shí)驗(yàn)表明,本文提出算法有效解決了以上問題,提高了個(gè)性化推薦的質(zhì)量。今后將研究重點(diǎn)放在時(shí)間因素對用戶興趣的影響,以提高推薦精度。