李建軍,付 佳+,楊 玉,汪校鈴,榮 欣
(1.哈爾濱商業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,黑龍江 哈爾濱 150028; 2.哈爾濱商業(yè)大學(xué) 黑龍江省電子商務(wù)與信息處理重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱 150028)
隨著移動(dòng)電子商務(wù)的快速發(fā)展與移動(dòng)終端設(shè)備的廣泛普及,用戶對(duì)于獲取互聯(lián)網(wǎng)信息的即時(shí)性和個(gè)性化需求逐漸提高,用戶希望在最短的時(shí)間內(nèi)獲取自己最需要的信息。相對(duì)于PC端來(lái)說(shuō),移動(dòng)終端的體積較小,屏幕就相對(duì)較小,用戶面對(duì)琳瑯滿目的商品或服務(wù)信息不知如何挑選,企業(yè)需要在有限的空間內(nèi)向用戶展示用戶需要或感興趣的信息。這種情況就推動(dòng)了移動(dòng)推薦領(lǐng)域的發(fā)展,針對(duì)用戶的不同需求和興趣偏好,為每一位用戶推薦符合需求或興趣點(diǎn)的產(chǎn)品、信息以及服務(wù)?,F(xiàn)階段針對(duì)推薦系統(tǒng)的研究越來(lái)越多,越來(lái)越復(fù)雜,但是無(wú)論何種研究方式,核心目標(biāo)都是針對(duì)用戶的需求進(jìn)行精準(zhǔn)化推薦,實(shí)施個(gè)性化服務(wù),方便用戶瀏覽有效信息。與此同時(shí),企業(yè)實(shí)施精準(zhǔn)推薦,能夠提高企業(yè)營(yíng)銷效果,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)精準(zhǔn)營(yíng)銷,增加用戶對(duì)企業(yè)產(chǎn)品或服務(wù)的粘性,留住高質(zhì)量用戶的同時(shí)發(fā)展新用戶。而在移動(dòng)推薦領(lǐng)域應(yīng)用最為廣泛和久遠(yuǎn)的算法就是協(xié)同過(guò)濾推薦算法(collaborative filtering,CF)。隨著應(yīng)用的逐漸增多,協(xié)同過(guò)濾推薦也暴露出來(lái)許多問(wèn)題,為了避免這些問(wèn)題影響推薦的準(zhǔn)確性,對(duì)協(xié)同過(guò)濾推薦算法進(jìn)行改進(jìn)是十分必要的。
本文通過(guò)翻閱文獻(xiàn)和查找相關(guān)資料,為了讓推薦的效果更好,在協(xié)同過(guò)濾推薦算法的基礎(chǔ)上做了相關(guān)改進(jìn),加入了混沌粒子群算法進(jìn)行聚類優(yōu)化,后續(xù)進(jìn)行實(shí)驗(yàn)的驗(yàn)證,改進(jìn)的算法推薦的效果更好。
傳統(tǒng)的協(xié)同過(guò)濾推薦通過(guò)收集用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù),計(jì)算用戶之間的相似度,找到與目標(biāo)用戶相似的用戶群,或者找到與目標(biāo)用戶評(píng)分過(guò)的項(xiàng)目相似的項(xiàng)目群,通過(guò)對(duì)用戶給項(xiàng)目的評(píng)分進(jìn)行推薦操作。協(xié)同過(guò)濾推薦的應(yīng)用十分廣泛,但是隨著數(shù)據(jù)的擴(kuò)增,協(xié)同過(guò)濾推薦也出現(xiàn)了許多問(wèn)題。最普遍的就是數(shù)據(jù)比較少的問(wèn)題和用戶的冷啟動(dòng)問(wèn)題。隨著網(wǎng)絡(luò)用戶和評(píng)分項(xiàng)目種類及數(shù)量逐漸增多,很難保證推薦的準(zhǔn)確性,為了解決這個(gè)問(wèn)題,本文將傳統(tǒng)粒子群算法進(jìn)行改進(jìn),使用混沌粒子群聚類優(yōu)化的方法對(duì)用戶進(jìn)行聚類,然后在最優(yōu)聚類的類簇中再進(jìn)行協(xié)同過(guò)濾推薦,這樣不僅可以加快算法運(yùn)算效率,還可以提高推薦的準(zhǔn)確性。所以,本文的創(chuàng)新處在于使用改進(jìn)之后的混沌粒子群算法對(duì)用戶先進(jìn)行聚類,然后在與目標(biāo)用戶最相似的聚類中進(jìn)行協(xié)同過(guò)濾推薦,保證推薦的準(zhǔn)確性。
自從協(xié)同過(guò)濾算法提出以來(lái),在研究領(lǐng)域針對(duì)它的研究就層出不窮。Velammal B.L.[1]運(yùn)用傳統(tǒng)的協(xié)同過(guò)濾算法進(jìn)行書籍的推薦,為了解決協(xié)同過(guò)濾算法中的冷啟動(dòng)問(wèn)題,采用了人口統(tǒng)計(jì)過(guò)濾方法與協(xié)同過(guò)濾算法進(jìn)行結(jié)合,能夠?yàn)橛脩籼峁└_的推薦結(jié)果。K.G.Saranya等[2]提出了一種基于粗糙集的協(xié)同過(guò)濾方法來(lái)預(yù)測(cè)用戶的缺失評(píng)分,并且用了一種新穎的檢測(cè)方法來(lái)提高項(xiàng)目排名。Behzad Soleimani Neysiani等[3]改進(jìn)了基于關(guān)聯(lián)規(guī)則的協(xié)同過(guò)濾算法,用遺傳算法生成信用關(guān)聯(lián)規(guī)則,解決了協(xié)同過(guò)濾算法準(zhǔn)確率低的問(wèn)題。翁小蘭等[4]將協(xié)同過(guò)濾算法的研究進(jìn)展進(jìn)行總結(jié),還將算法存在的問(wèn)題和研究的趨勢(shì)進(jìn)行分析。肖會(huì)敏等[5]針對(duì)移動(dòng)電子商務(wù)即時(shí)性和移動(dòng)性的特點(diǎn)對(duì)協(xié)同過(guò)濾算法進(jìn)行了改進(jìn),將時(shí)間和位置因素加到協(xié)同過(guò)濾算法中,通過(guò)遺忘函數(shù)對(duì)協(xié)同過(guò)濾算法進(jìn)行改進(jìn),使算法的精度進(jìn)一步提高。面對(duì)協(xié)同過(guò)濾算法的數(shù)據(jù)稀疏性問(wèn)題,也有很多研究用于改善此問(wèn)題。蔡雄峰等[6]提出一種按照興趣度的加權(quán)填充策略,引用時(shí)間因素,將時(shí)間數(shù)據(jù)歸一化處理,重新調(diào)整用戶—項(xiàng)目評(píng)分矩陣。高倩等[7]考慮數(shù)據(jù)稀疏的情況,在相似度上面做了改進(jìn),除了用戶評(píng)分相似度之外,加入了用戶屬性相似度、用戶興趣相似度,將這3種相似度用不同的權(quán)重因子進(jìn)行調(diào)節(jié)。
粒子群算法(particle swarm optimization,PSO)是基于生物行為而演變來(lái)的算法。解空間內(nèi)存在一群粒子,每一個(gè)粒子都代表問(wèn)題的潛在解,通過(guò)適應(yīng)度函數(shù)求得每個(gè)解對(duì)應(yīng)的適應(yīng)度值,適應(yīng)度值越好,粒子越靠近最優(yōu)解。將粒子群算法融入到協(xié)同過(guò)濾算法的研究也有很多,Mohammed Wasid等[8]基于用戶混合特征的協(xié)同過(guò)濾推薦方法,應(yīng)用粒子群算法對(duì)各種特征的用戶權(quán)重進(jìn)行學(xué)習(xí),并運(yùn)用模糊集表示用戶特征。另外,Mohammed Wasid等[9]還利用粒子群算法開(kāi)發(fā)基于上下文的協(xié)同過(guò)濾推薦技術(shù),利用混合模糊特點(diǎn)的權(quán)重增強(qiáng)協(xié)同過(guò)濾技術(shù)的性能。碩良勛等[10]通過(guò)粒子群優(yōu)化算法選擇最近鄰K值,即選擇與當(dāng)前用戶相似度最高的前K個(gè)用戶作為鄰居進(jìn)行推薦。吳彥文等[11]在得到最近鄰用戶群的基礎(chǔ)上,采用粒子群算法和分層遺傳算法進(jìn)行資源推薦,能夠有效地提高資源推薦的質(zhì)量。李浩君等[12]為了實(shí)現(xiàn)推薦個(gè)性化學(xué)習(xí)資源,將協(xié)同過(guò)濾算法結(jié)合二進(jìn)制粒子算法,調(diào)整了慣性權(quán)重和種群多樣性,提出了基于多維特征差異的推薦算法。
隨著移動(dòng)推薦領(lǐng)域的快速發(fā)展,對(duì)協(xié)同過(guò)濾算法和粒子群算法進(jìn)行綜述研究,為了提高推薦的準(zhǔn)確性,將傳統(tǒng)協(xié)同過(guò)濾推薦算法和粒子群算法融合應(yīng)用,并做一定的算法改進(jìn)。研究方法是首先將標(biāo)準(zhǔn)粒子群算法進(jìn)行改進(jìn),加入混沌搜索過(guò)程,增加粒子多樣性,通過(guò)混沌粒子群算法對(duì)用戶群體進(jìn)行聚類分析。此時(shí)可以基于一定聚類標(biāo)準(zhǔn)將用戶初步聚類,形成多個(gè)類簇和聚類中心。當(dāng)對(duì)目標(biāo)用戶進(jìn)行推薦時(shí),只需要計(jì)算目標(biāo)用戶與哪個(gè)聚類中心距離近,屬于哪個(gè)聚類,將其劃分到所屬聚類中,然后在所屬聚類中進(jìn)行協(xié)同過(guò)濾推薦,不僅可以提高推薦的準(zhǔn)確性,而且有助于解決協(xié)同過(guò)濾算法的數(shù)據(jù)稀疏性和冷啟動(dòng)問(wèn)題。
在標(biāo)準(zhǔn)粒子群算法中,粒子通過(guò)如下的速度和位置更新公式更新自己的位置,每更新一個(gè)位置就需要計(jì)算一次適應(yīng)度值,來(lái)更新個(gè)體最優(yōu)和全局最優(yōu)。標(biāo)準(zhǔn)粒子群算法的速度位置更新公式請(qǐng)參見(jiàn)文獻(xiàn)[13]。
由于標(biāo)準(zhǔn)粒子群算法在優(yōu)化過(guò)程中容易出現(xiàn)過(guò)早收斂的現(xiàn)象,影響最優(yōu)解的輸出,故將混沌搜索應(yīng)用到粒子群算法中,豐富了粒子的多樣性,使粒子的全局搜索能力有所提高。將混沌搜索代替隨機(jī)搜索,最終使粒子群能夠達(dá)到最優(yōu)狀態(tài),本文應(yīng)用一維混沌系統(tǒng)—Logistic映射,Logistic映射的其中一種形式為
xk+1=μxk(1-xk)
(1)
其中,μ∈[0,4]為分枝參數(shù),當(dāng)μ=4時(shí)為完全混沌狀態(tài)。在粒子群算法中,通過(guò)上式產(chǎn)生混沌變量,形成混沌序列,并且代替原粒子進(jìn)行混沌搜索,直到滿足條件為止。
另外,粒子群算法中的慣性權(quán)重表示著上一代粒子的速度對(duì)當(dāng)前粒子速度的影響水平,它的大小也直接影響算法的運(yùn)算結(jié)果,w較大,有利于算法早期的全局搜索,但是在算法晚期,需要對(duì)w值進(jìn)行調(diào)整,以此提高算法的局部搜索能力,有助于全局最優(yōu)值的收斂。將w值進(jìn)行動(dòng)態(tài)調(diào)整,有利于最優(yōu)值的輸出。所以本文應(yīng)用動(dòng)態(tài)調(diào)整慣性權(quán)重的方法來(lái)改進(jìn)標(biāo)準(zhǔn)粒子群算法。應(yīng)用線性遞減權(quán)重策略來(lái)調(diào)整慣性權(quán)重,即將慣性權(quán)重從前期較大的值逐漸遞減到后期較小的值,一般的調(diào)整權(quán)重公式為
(2)
其中,K表示最大迭代次數(shù);k表示當(dāng)前的迭代次數(shù);wmax為初始最大慣性權(quán)重,通常取0.9;wmin表示運(yùn)算結(jié)束時(shí)(達(dá)到最大迭代次數(shù)K)的最小慣性權(quán)重,通常取0.4。
聚類是根據(jù)數(shù)據(jù)集中的相似性將其劃分為若干類簇的過(guò)程,是一種無(wú)監(jiān)督的分類方式。通過(guò)聚類進(jìn)行分類,能夠做到同一個(gè)類簇里面數(shù)據(jù)的相似性高,不同類簇之間的數(shù)據(jù)相似度盡可能低。然而,在大數(shù)據(jù)環(huán)境下,用戶和項(xiàng)目的數(shù)據(jù)量日益龐大,數(shù)據(jù)樣本的數(shù)量也逐漸增多的情況,組合類簇的數(shù)量也會(huì)變得十分巨大,無(wú)法做到通過(guò)普通聚類操作列舉出所有組合類簇,也很難找到最好的分類。在本文中利用混沌粒子群優(yōu)化算法的全局搜索能力對(duì)樣本數(shù)據(jù)進(jìn)行迭代更新,可以避免出現(xiàn)上述現(xiàn)象,經(jīng)過(guò)混沌粒子群進(jìn)行全局搜索之后,最終得到的最優(yōu)解就是最優(yōu)的分類。
在本文的算法中,粒子群中的每個(gè)粒子代表一種可能的分類,粒子的維數(shù)代表樣本的個(gè)數(shù),如下構(gòu)造粒子
Xi=(p1,p2…pm),0 (3) 其中,n為樣本個(gè)數(shù),pi為第i個(gè)樣本所屬的類。一個(gè)群體表示著一個(gè)數(shù)據(jù)集中的若干分類,粒子會(huì)對(duì)應(yīng)自己的適應(yīng)度值,可以用下面的函數(shù)來(lái)確定每個(gè)粒子的適應(yīng)度值,適應(yīng)值的好壞也影響著分類的結(jié)果。 使用誤差平方和函數(shù)來(lái)計(jì)算適應(yīng)度值 (4) (5) 其中,Xij是從屬第i類的第j個(gè)樣本;ni是第i類中的所有樣本個(gè)數(shù);mi是第i類的聚類中心。Jc越小,聚類的成效越好。 基于混沌粒子群算法(chaotic particle swarm optimization)進(jìn)行聚類優(yōu)化的大致算法流程如圖1所示。 圖1 改進(jìn)的粒子群聚類算法流程 步驟1初始化粒子群,隨機(jī)粒子的初始速度、位置以及聚類中心。按照普遍習(xí)慣設(shè)置最大迭代次數(shù)為K=1000,粒子的學(xué)習(xí)能力因子c1=c2=1.8,w的初始值設(shè)為0.9; 步驟2計(jì)算粒子的適應(yīng)度值,由初始位置將其余粒子進(jìn)行聚類; 步驟3通過(guò)粒子速度位置更新公式[13]更新粒子的速度和位置,產(chǎn)生下一代粒子; 步驟4按照式(2)更新慣性權(quán)重; 步驟5根據(jù)粒子的新位置(新聚類中心)對(duì)其進(jìn)行聚類; 步驟6計(jì)算適應(yīng)度值,產(chǎn)生當(dāng)前的個(gè)體最優(yōu)位置和全局最優(yōu)位置,記錄全局最優(yōu)位置的聚類信息; 步驟7對(duì)粒子進(jìn)行混沌擾動(dòng),得到新的全局最優(yōu),并比較最優(yōu)值的聚類信息; 步驟8判斷粒子是否符合結(jié)束條件,若符合,則輸出最優(yōu)的分類結(jié)果和聚類的中心;若不符合,則返回步驟3繼續(xù)運(yùn)算。結(jié)束條件為:找到符合條件的最優(yōu)解或達(dá)到最大迭代次數(shù)。 基于混沌粒子群聚類的協(xié)同過(guò)濾推薦模型與傳統(tǒng)的協(xié)同過(guò)濾推薦模型不同的是,通過(guò)混沌粒子群算法優(yōu)化之后,輸出的是最優(yōu)的分類組和每一個(gè)聚類中心。當(dāng)對(duì)用戶進(jìn)行推薦時(shí),只需要計(jì)算目標(biāo)用戶與聚類中心的相似度,找到相似度高的聚類,將目標(biāo)用戶劃分到此聚類中,然后建立該聚類的用戶—項(xiàng)目評(píng)分矩陣,通過(guò)混沌粒子群優(yōu)化確定最近鄰參數(shù),選擇前K個(gè)相似度最高的用戶,然后通過(guò)這些用戶對(duì)目標(biāo)用戶的未評(píng)分項(xiàng)目的評(píng)分進(jìn)行預(yù)測(cè),產(chǎn)生推薦項(xiàng)。 計(jì)算相似度的方法有很多,現(xiàn)階段應(yīng)用最多的就是歐式距離、余弦距離、皮爾遜相關(guān)系數(shù)。使用上述方法可以計(jì)算目標(biāo)用戶和聚類中心的距離,將目標(biāo)用戶分到距離最近的聚類中,再進(jìn)行下一階段的工作。 (1)歐式距離 (6) (2)余弦距離 (7) (3)皮爾遜相關(guān)系數(shù) (8) 針對(duì)實(shí)際實(shí)驗(yàn)需求,本文選取皮爾遜相關(guān)系數(shù)計(jì)算用戶之間的相似度,相較于其它兩種相似度計(jì)算方法,它能夠更好地衡量用戶和聚類中心之間的距離,進(jìn)而確定目標(biāo)用戶所屬聚類。 協(xié)同過(guò)濾推薦中存在大量的用戶—項(xiàng)目評(píng)分?jǐn)?shù)據(jù),在找到與目標(biāo)用戶相似度最高的聚類A之后,在A中生成用戶—項(xiàng)目評(píng)分矩陣,矩陣的結(jié)構(gòu)包括項(xiàng)目編號(hào)(Itemi)、用戶編號(hào)(Userj)和用戶—項(xiàng)目評(píng)分(Sij)。生成矩陣可以更加直觀看出用戶—項(xiàng)目評(píng)分的數(shù)據(jù)特點(diǎn)。表1為聚類A的用戶—項(xiàng)目評(píng)分矩陣。 表1 用戶—項(xiàng)目評(píng)分矩陣 此矩陣中的用戶與目標(biāo)用戶都屬于同一個(gè)聚類,所以彼此之間的相似性都較高,但是在實(shí)際應(yīng)用中為了避免過(guò)度推薦,引起用戶厭倦心理,需要限制推薦數(shù)目。所以現(xiàn)在只需要選取矩陣中與目標(biāo)用戶最相似的前K個(gè)用戶作為最近鄰(K最近鄰算法),以此確定目標(biāo)用戶感興趣的項(xiàng)目,但是從以往研究中可以看出K的取值還是比較盲目的,沒(méi)有合理的K值可能會(huì)導(dǎo)致過(guò)度推薦。故應(yīng)用混沌粒子群優(yōu)化算法選取合理的K值,能夠有效地提高算法性能,合理有效地進(jìn)行推薦。 用混沌粒子群優(yōu)化算法選擇最近鄰K。隨機(jī)產(chǎn)生q個(gè)粒子,每一個(gè)粒子為最近鄰的參數(shù)值,粒子的適應(yīng)度值用K值產(chǎn)生的推薦列表計(jì)算的推薦精度來(lái)代表。粒子運(yùn)用上述位置速度更新公式進(jìn)行一次一次的位置和速度迭代,更新個(gè)體最優(yōu)位置和全局最優(yōu)位置,并對(duì)粒子進(jìn)行混沌擾動(dòng),直到滿足迭代次數(shù)或找到最優(yōu)值,輸出最近鄰參數(shù)K值。取與目標(biāo)用戶相似度最高的前K個(gè)用戶組成目標(biāo)用戶的最近鄰,K(u)={u1,u2,Luk},u∈K(u)。并且最近鄰集合中的用戶uk是根據(jù)與目標(biāo)用戶u的評(píng)分相似度sim(u,uk)由大到小排序的[14] (9) 選擇了與目標(biāo)用戶最相似的前K個(gè)用戶之后,根據(jù)評(píng)分預(yù)測(cè)公式預(yù)測(cè)評(píng)分,然后向目標(biāo)用戶推薦評(píng)分高的前K個(gè)項(xiàng)目 (10) 其中,p(u,n)是鄰居用戶集合中的用戶評(píng)分過(guò)的項(xiàng)目,但目標(biāo)用戶沒(méi)有評(píng)分過(guò)的項(xiàng)目的評(píng)分預(yù)測(cè)值。 在驗(yàn)證本文算法的過(guò)程中,本實(shí)驗(yàn)采用MovieLens數(shù)據(jù)集,數(shù)據(jù)集中包含用戶、電影以及用戶對(duì)電影的評(píng)分(1~5分),可以進(jìn)行電影的推薦。本次實(shí)驗(yàn)選擇100 000個(gè)電影評(píng)分?jǐn)?shù)據(jù),進(jìn)行混沌粒子群的聚類和推薦。其中,每個(gè)用戶至少對(duì)30部電影做出了評(píng)分。算法運(yùn)行環(huán)境為matlab7.1,Windows 8系統(tǒng)。 實(shí)驗(yàn)采用的推薦效果評(píng)估標(biāo)準(zhǔn)是平均絕對(duì)誤差(MAE)和推薦準(zhǔn)確率(Precision)。MAE的值越小,推薦的越準(zhǔn)確。準(zhǔn)確率則是衡量推薦正確程度的指標(biāo) (11) 其中,預(yù)測(cè)的用戶評(píng)分集合為{G1,G2…GN},實(shí)際的用戶評(píng)分集合為{H1,H2…HN} (12) 其中,W(i)為推薦目標(biāo)用戶的項(xiàng)目集合,T(i)為目標(biāo)用戶喜歡的項(xiàng)目集合。 為了更好地突出改進(jìn)算法的優(yōu)勢(shì),首先將本文算法(CPSO)與協(xié)同過(guò)濾(CF)、粒子群算法(PSO)、人工蜂群算法(artificial bee colony,ABC)進(jìn)行比較,在其它實(shí)驗(yàn)指數(shù)都相同的情況下,觀察平均絕對(duì)誤差MAE指標(biāo)的變化,本次實(shí)驗(yàn)以推薦數(shù)目為評(píng)價(jià)自變量,并進(jìn)行多次實(shí)驗(yàn)進(jìn)行驗(yàn)證,如圖2所示,隨著推薦數(shù)目的增加,CPSO、PSO、CF算法的MAE值都大體呈現(xiàn)先下降后回升的趨勢(shì),ABC算法呈一直下降的趨勢(shì)。在聚類數(shù)目為20左右時(shí),各個(gè)算法的MAE值都處在底端,并且CPSO算法的MAE值最低,故CPSO的平均絕對(duì)誤差最低,推薦的誤差相比最低。可以初步印證CPSO算法的性能相對(duì)于其它未改進(jìn)的算法較好。 圖2 不同推薦數(shù)目下不同算法的MAE比較 其次,為了體現(xiàn)本文算法改進(jìn)的有效性,實(shí)驗(yàn)將從兩個(gè)角度比較算法性能。將聚類數(shù)目和最近鄰數(shù)目分別作為觀察評(píng)價(jià)標(biāo)準(zhǔn)變化的自變量,為了避免實(shí)驗(yàn)的偶然性,以下實(shí)驗(yàn)均多次進(jìn)行,并選取出現(xiàn)次數(shù)最多的合理結(jié)果。 (1)以聚類數(shù)目為基準(zhǔn) 由于本文的混沌粒子群算法應(yīng)用于推薦的兩個(gè)階段,所以在聚類這一階段,首先按照以往實(shí)驗(yàn)習(xí)慣先將最近鄰數(shù)目確定為K=20,通過(guò)不同的聚類數(shù)目來(lái)衡量評(píng)價(jià)標(biāo)準(zhǔn)的優(yōu)劣,為了更好地分析算法性能,將混沌粒子群聚類優(yōu)化算法與傳統(tǒng)K-means聚類、標(biāo)準(zhǔn)粒子群和人工蜂群算法比較,觀察MAE與Precision的變化,如圖3、圖4所示。 圖3 不同聚類數(shù)目下MAE的變化 圖4 不同聚類數(shù)目下Precision的變化 由上述實(shí)驗(yàn)說(shuō)明,各個(gè)算法隨著聚類數(shù)目的不斷增加,MAE值呈現(xiàn)先下降后小幅度回升的趨勢(shì),Precision值則是先上升后回落的趨勢(shì),這也符合大多數(shù)實(shí)驗(yàn)的規(guī)律,即聚類數(shù)目的選取應(yīng)在某個(gè)合理范圍內(nèi),不宜過(guò)大或過(guò)小。當(dāng)最近鄰數(shù)目設(shè)定為20時(shí),只觀察算法確定的聚類數(shù)目對(duì)推薦性能的影響,發(fā)現(xiàn)本文的混沌粒子群聚類優(yōu)化算法相較于傳統(tǒng)的K-means聚類算法、標(biāo)準(zhǔn)粒子群算法以及人工蜂群算法有更小的MAE值,更高的推薦準(zhǔn)確率,并且,在聚類數(shù)為60左右時(shí),評(píng)價(jià)效果最好,所以在接下來(lái)的實(shí)驗(yàn)中,將聚類數(shù)目設(shè)定為60。 (2)以最近鄰數(shù)目為基準(zhǔn) 在實(shí)驗(yàn)的第二階段,將聚類數(shù)目確定為60,使用混沌粒子群算法選取最近鄰。觀察最近鄰的取值對(duì)算法指標(biāo)的影響,為了與CPSO進(jìn)行比較分析,選擇傳統(tǒng)的協(xié)同過(guò)濾算法(CF)和粒子群算法(PSO)進(jìn)行對(duì)比,觀察MAE和Precision的變化情況,如圖5、圖6所示。 圖5 不同最近鄰的數(shù)目下MAE的變化 圖6 不同最近鄰的數(shù)目下Precision的變化 由于確定了聚類數(shù)目,在第二階段的實(shí)驗(yàn)中,可以看出,隨著所選取最近鄰數(shù)目的不斷增加,在K=25左右時(shí),各個(gè)算法的MAE和Precision值出現(xiàn)極值。其中,CPSO算法的MAE值最低,Precision值最高,這與前一個(gè)實(shí)驗(yàn)的數(shù)值差異并不大,為了實(shí)驗(yàn)的準(zhǔn)確性可以將最近鄰數(shù)目確定為20-25之間。在與其它算法的對(duì)比中可以看出其它算法在MAE值和準(zhǔn)確率上都不如本文算法,且兩次實(shí)驗(yàn)的最近鄰數(shù)目相差較大,不利于參數(shù)的確定。 為了解決當(dāng)前協(xié)同過(guò)濾推薦算法準(zhǔn)確率低以及推薦過(guò)度的問(wèn)題,在進(jìn)行推薦操作之前,采用混沌粒子群算法對(duì)用戶群體進(jìn)行聚類分析,輸出最優(yōu)的聚類結(jié)果和聚類中心,然后根據(jù)目標(biāo)用戶與聚類中心的距離大小,將目標(biāo)用戶劃分到離他最近的聚類中,在此聚類中進(jìn)行協(xié)同過(guò)濾推薦,這樣就可以保證作為推薦參考的用戶與目標(biāo)用戶的相似度都很高。在進(jìn)行協(xié)同過(guò)濾推薦時(shí),涉及到最近鄰參數(shù)選擇,為了防止過(guò)度推薦,降低目標(biāo)用戶的興趣度,選擇相似度最高的前K個(gè)用戶對(duì)目標(biāo)用戶進(jìn)行推薦,這樣做不僅使推薦的精度提高,而且有限的推薦有助于目標(biāo)用戶進(jìn)行精確選擇,防止過(guò)度推薦,用戶產(chǎn)生厭煩心理。故再次應(yīng)用混沌粒子群算法選擇最近鄰參數(shù)。最后,采用MovieLens數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),采用平均絕對(duì)誤差和準(zhǔn)確率兩個(gè)指標(biāo)對(duì)算法進(jìn)行比較和驗(yàn)證,實(shí)驗(yàn)也許存在一些的局限性,但是在特定的情況下,還是能夠說(shuō)明CPSO算法的平均絕對(duì)誤差和準(zhǔn)確率上都優(yōu)于其它未改進(jìn)算法。2.2 算法流程
3 基于混沌粒子群聚類的協(xié)同過(guò)濾推薦模型
3.1 計(jì)算相似度
3.2 用戶—評(píng)分矩陣
3.3 確定最近鄰
3.4 預(yù)測(cè)評(píng)分模型
4 實(shí)驗(yàn)驗(yàn)證
4.1 實(shí)驗(yàn)數(shù)據(jù)及評(píng)價(jià)標(biāo)準(zhǔn)
4.2 實(shí)驗(yàn)結(jié)果
5 結(jié)束語(yǔ)