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