国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法

2023-09-15 03:34郭曉宇沈宇麒
軟件導(dǎo)刊 2023年9期
關(guān)鍵詞:物品聚類協(xié)同

郭曉宇,沈宇麒,崔 衍

(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)

0 引言

隨著數(shù)字技術(shù)和社交網(wǎng)絡(luò)的快速發(fā)展,人們進(jìn)入了大數(shù)據(jù)時(shí)代,科學(xué)技術(shù)的發(fā)展讓人們的生活和交流越來(lái)越便捷。但是,信息過(guò)載的問(wèn)題也日益突出,用戶很難從大量數(shù)據(jù)中找到自己感興趣的信息。因此,如何高效地提取有用信息成為當(dāng)前信息技術(shù)的熱門(mén)研究領(lǐng)域。為了解決該問(wèn)題,推薦系統(tǒng)發(fā)揮了重要作用。

推薦系統(tǒng)被廣泛應(yīng)用于電影、新聞、音樂(lè)、社交網(wǎng)絡(luò)等方面,為亞馬遜、淘寶等大型電子商務(wù)公司提供更好的用戶體驗(yàn)[1-2]。推薦系統(tǒng)可分為基于內(nèi)容的推薦系統(tǒng)[3]、協(xié)同過(guò)濾推薦系統(tǒng)[4]和混合推薦系統(tǒng)[5]。目前,協(xié)同過(guò)濾算法是推薦系統(tǒng)中非常流行的方法,廣泛應(yīng)用于大數(shù)據(jù)挖掘、電子商務(wù)等領(lǐng)域。協(xié)同過(guò)濾算法通過(guò)分析用戶行為,利用用戶或物品之間的相似性確定最近鄰居集,然后利用最近鄰居集預(yù)測(cè)當(dāng)前用戶的偏好和評(píng)分[6]。與基于用戶或物品的推薦算法相比,其具有速度快、效率高、魯棒性強(qiáng)等優(yōu)點(diǎn),推薦結(jié)果通常比其他算法更加準(zhǔn)確。協(xié)同過(guò)濾推薦算法可分為基于記憶的推薦算法和基于模型的推薦算法,其中基于記憶的推薦算法也稱為基于鄰域的推薦算法,其又可分為基于用戶和基于物品的協(xié)同過(guò)濾推薦算法。與基于記憶的推薦算法不同,基于模型的推薦算法主要采用數(shù)據(jù)挖掘或機(jī)器學(xué)習(xí)等方法在用戶評(píng)分矩陣上建立預(yù)測(cè)模型。

然而,傳統(tǒng)協(xié)同過(guò)濾推薦算法容易出現(xiàn)的用戶數(shù)據(jù)的稀疏性、可擴(kuò)展性較差以及冷啟動(dòng)等問(wèn)題在實(shí)際應(yīng)用中仍然普遍存在,嚴(yán)重影響了推薦算法的推薦質(zhì)量。

1 相關(guān)研究

為了解決上述問(wèn)題,文獻(xiàn)[7]將聚類引入到協(xié)同過(guò)濾推薦算法中,通過(guò)K-means 算法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,采用一種基于中心的方法尋找鄰居,在一定程度上解決了傳統(tǒng)協(xié)同過(guò)濾推薦算法中存在的可擴(kuò)展性以及數(shù)據(jù)稀疏性問(wèn)題。文獻(xiàn)[8]提出一種基于項(xiàng)目聚類和全局相似度的協(xié)同過(guò)濾推薦算法,使用K-means 方法對(duì)物品進(jìn)行聚類,在每個(gè)聚類中計(jì)算局部相似度,并引入一個(gè)重疊因子進(jìn)行優(yōu)化,最后結(jié)合全局相似度對(duì)物品進(jìn)行預(yù)測(cè),提高了推薦算法的準(zhǔn)確度。文獻(xiàn)[9]提出一種雙向聚類的協(xié)同過(guò)濾推薦算法,使用K-means 聚類方法分別從用戶和項(xiàng)目?jī)蓚€(gè)方向進(jìn)行聚類,并在兩個(gè)簇中分別使用改進(jìn)的相似度進(jìn)行協(xié)同過(guò)濾推薦,有效提高了推薦精度。文獻(xiàn)[10]提出一種新的協(xié)同過(guò)濾推薦算法,通過(guò)在協(xié)同過(guò)濾中引入信息熵和雙聚類來(lái)提取局部密集評(píng)分模塊。該算法首先對(duì)用戶項(xiàng)目評(píng)分矩陣進(jìn)行雙聚類分析,以識(shí)別其密集的局部模塊,然后計(jì)算每個(gè)聚類的信息熵以實(shí)現(xiàn)基于用戶的協(xié)同過(guò)濾推薦算法,最后將該算法與基于項(xiàng)目的協(xié)同過(guò)濾推薦算法進(jìn)行加權(quán)結(jié)合。實(shí)驗(yàn)結(jié)果表明,該算法緩解了數(shù)據(jù)稀疏性,提高了推薦的準(zhǔn)確性和計(jì)算效率。文獻(xiàn)[11]提出一種基于聚類和模擬退火的協(xié)同過(guò)濾推薦算法,使用模擬退火算法對(duì)K-means 聚類算法進(jìn)行改進(jìn),定義了一個(gè)用戶類型向量并將其用作聚類對(duì)象。實(shí)驗(yàn)結(jié)果表明,該方法具有較高的推薦準(zhǔn)確率。文獻(xiàn)[12]結(jié)合了降維和聚類方法,首先通過(guò)K-means 算法對(duì)用戶進(jìn)行聚類,然后利用奇異值分解(Singular Value Decomposition,SVD)對(duì)每個(gè)聚類進(jìn)行降維。文獻(xiàn)[13]采用聚類和人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)解決協(xié)同過(guò)濾中的數(shù)據(jù)稀疏問(wèn)題。該算法首先對(duì)用戶評(píng)分?jǐn)?shù)據(jù)進(jìn)行預(yù)處理,其中包括特征選擇、歸一化以及使用主成分分析法(Principal Component Analysis,PCA)進(jìn)行降維等步驟,然后采用K-means 聚類方法將結(jié)果輸入ANN 進(jìn)行處理,得到最后的推薦列表。該方法有效解決了稀疏性問(wèn)題,提高了推薦質(zhì)量,具有良好的預(yù)測(cè)精度。文獻(xiàn)[14]采用一種基于SVD 與模糊聚類的協(xié)同過(guò)濾推薦算法,首先通過(guò)SVD 方法對(duì)用戶物品評(píng)分矩陣進(jìn)行降維處理,然后利用模糊聚類算法對(duì)用戶進(jìn)行聚類。文獻(xiàn)[15]提出一種融合隱式語(yǔ)義算法和模糊聚類算法的協(xié)同過(guò)濾推薦算法,降低了數(shù)據(jù)稀疏性,提高了推薦算法的準(zhǔn)確度。文獻(xiàn)[16]提出一種基于模糊聚類和監(jiān)督學(xué)習(xí)模型的高效混合推薦系統(tǒng),其中將模糊聚類技術(shù)應(yīng)用于基于項(xiàng)目的協(xié)同過(guò)濾框架中,解決了冷啟動(dòng)問(wèn)題,最后與基于內(nèi)容的推薦算法進(jìn)行融合,為用戶提供個(gè)性化的推薦結(jié)果。實(shí)驗(yàn)結(jié)果證實(shí)了該算法的優(yōu)越性。文獻(xiàn)[17]引入一種權(quán)重調(diào)節(jié)機(jī)制并結(jié)合用戶偏好等隱性反饋信息,提升協(xié)同過(guò)濾推薦算法的準(zhǔn)確度。

通過(guò)以上分析可以看出,聚類方法在基于用戶的推薦算法中很常見(jiàn),能有效提高推薦算法的準(zhǔn)確度。另外,用戶的興趣偏好也是需要考慮的因素之一。文獻(xiàn)[18]提出一種基于項(xiàng)目特征與用戶興趣模糊性的推薦算法,通過(guò)構(gòu)建項(xiàng)目特征隸屬度矩陣和用戶類別偏好矩陣構(gòu)建用戶興趣模型,以進(jìn)一步提高推薦的準(zhǔn)確度。文獻(xiàn)[19]分析了用戶對(duì)物品的情感偏好,從而計(jì)算用戶之間的相似程度,最后進(jìn)行評(píng)分預(yù)測(cè)和物品推薦。該算法提高了推薦的準(zhǔn)確性,降低了算法的時(shí)間復(fù)雜度。文獻(xiàn)[20]提出一種融合用戶興趣和評(píng)分差異的協(xié)同過(guò)濾推薦算法,將TF-IDF(Term Frequency-Inverse Document Frequency)思想引入用戶興趣偏好中,并且使用時(shí)間窗口的指數(shù)衰減函數(shù)進(jìn)一步改善用戶的興趣偏好。

以上文獻(xiàn)都表明在協(xié)同過(guò)濾推薦算法中,用戶的興趣偏好在一定程度上能提高推薦的準(zhǔn)確度。通常物品可以同時(shí)具有一種或多種類型,如果兩個(gè)用戶對(duì)同一類型的物品訪問(wèn)次數(shù)越相近,表明兩個(gè)用戶越相似。由此,本文提出一種基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法,該算法結(jié)合用戶的局部興趣和全局興趣,綜合得到用戶的興趣偏好,然后對(duì)用戶興趣偏好進(jìn)行模糊聚類,并使用粒子群算法優(yōu)化模糊聚類初始聚類中心。為了緩解用戶評(píng)分矩陣的稀疏性,使用聚類用戶中對(duì)該物品的評(píng)分均值進(jìn)行填充。最后,通過(guò)對(duì)用戶評(píng)分相似度和用戶興趣偏好相似度進(jìn)行加權(quán)結(jié)合,得到改進(jìn)的用戶相似度,從而構(gòu)建用戶相似度矩陣。通過(guò)在聚類中選擇最近鄰居對(duì)物品進(jìn)行預(yù)測(cè)評(píng)分,實(shí)驗(yàn)結(jié)果表明,本文算法相比傳統(tǒng)的協(xié)同過(guò)濾推薦算法具有更高的推薦準(zhǔn)確度。

2 相關(guān)技術(shù)

2.1 基于用戶的協(xié)同過(guò)濾推薦算法

基于用戶的協(xié)同過(guò)濾推薦算法假設(shè)用戶的興趣愛(ài)好是相對(duì)穩(wěn)定的,然后根據(jù)目標(biāo)用戶的最近鄰居進(jìn)行預(yù)測(cè)評(píng)分。以用戶觀看電影為例,如果某些用戶和目標(biāo)用戶都觀看了相同的幾部電影,那么這些用戶和目標(biāo)用戶則表現(xiàn)出相似的用戶偏好,計(jì)算每個(gè)用戶與目標(biāo)用戶之間的相似度值并進(jìn)行排序。設(shè)置鄰居數(shù)為N,則前N個(gè)用戶為目標(biāo)用戶的最近鄰居集合。最后,通過(guò)最近鄰居集合預(yù)測(cè)用戶對(duì)未知電影的偏好程度。該算法主要包括以下幾個(gè)步驟:

步驟1:構(gòu)建用戶—物品評(píng)分矩陣。假設(shè)U={u1,u2,u3,…,un}為用戶集,I={i1,i2,i3,…,im}為物品集,rukil表示用戶uk(k∈n,uk∈U)對(duì)物品il(l∈m,il∈I)的評(píng)分。Rnm為用戶—物品評(píng)分矩陣,每行對(duì)應(yīng)一個(gè)用戶,每列對(duì)應(yīng)一個(gè)物品,行和列的交點(diǎn)為該用戶對(duì)此物品的評(píng)分,其中0 表示該用戶沒(méi)有對(duì)物品進(jìn)行評(píng)分。Rnm用戶—物品評(píng)分矩陣如式(1)所示:

步驟2:相似度計(jì)算。根據(jù)用戶—物品評(píng)分矩陣可以計(jì)算用戶與目標(biāo)用戶的相似度,從而構(gòu)建用戶相似度矩陣。相似度計(jì)算有以下幾種方法:

(1)杰克遜相似度。

(2)余弦相似度。

(3)皮爾遜相似度。計(jì)算相似度最常用的方法是皮爾遜相似度方法,其可以衡量?jī)蓚€(gè)變量之間存在線性關(guān)系的程度。本文提出的基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法即采用皮爾遜相似度計(jì)算方法。

其中,Iu、Iv分別表示用戶u和用戶v評(píng)分的物品集合,rui、rvi分別表示用戶u和用戶v對(duì)物品i的評(píng)分分別表示用戶u和用戶v評(píng)分物品的平均得分。

2.2 模糊C均值聚類算法

在基于用戶的協(xié)同過(guò)濾推薦算法中,經(jīng)常使用Kmeans 等聚類算法把相似的用戶聚類在一起,在目標(biāo)用戶所在聚類中選擇最近鄰居,可以很好地提高推薦質(zhì)量。而模糊C 均值聚類(Fuzzy C-means Clustering,F(xiàn)CM)算法不同于K-means 等硬聚類算法,其是軟聚類算法。在對(duì)樣本的聚類過(guò)程中,F(xiàn)CM 算法并不是單一地將樣本歸屬于某一類別,而是通過(guò)模糊理論,將樣本劃分到多個(gè)類中。

FCM 算法使用隸屬度表示每個(gè)樣本屬于每個(gè)聚類的程度,然后根據(jù)隸屬度大小將樣本集中的每一個(gè)樣本模糊劃分到不同聚類中。通過(guò)不斷更新每個(gè)聚類中心,使得目標(biāo)函數(shù)值達(dá)到最小值。假設(shè)樣本集為X={x1,x2,…,xn},將其樣本劃分為p類(1 ≤c≤n),聚類中心為C={c1,c2,…cp}。μik表示樣本點(diǎn)xk屬于聚類中心ci的隸屬度值,μik∈[0,1],隸屬度值的大小滿足以下條件:

經(jīng)過(guò)FCM 算法進(jìn)行聚類后,會(huì)輸出p個(gè)聚類中心向量和一個(gè)n×p維的模糊隸屬度矩陣U。

FCM 算法有兩個(gè)重要參數(shù):一是聚類類別個(gè)數(shù)p,二是模糊指數(shù)m,用于調(diào)整聚類模型的模糊程度,通常m的值為2。如果m值過(guò)大,則聚類效果較差;如果m值太小,則聚類效果更接近K-means 聚類。FCM 算法的目標(biāo)函數(shù)如式(6)所示:

J(U,C)描述了所有樣本到所有聚類中心的距離。其中,U表示隸屬度矩陣,U=[μik],μik∈[0,1] ;C表示聚類中心矩陣,C=[ci],i=1,2,…,p;‖ ‖xk-ci表示樣本xk到聚類中心ci的歐式距離。當(dāng)目標(biāo)函數(shù)滿足約束條件時(shí),利用拉格朗日函數(shù)構(gòu)造分類矩陣與聚類中心的迭代表達(dá)式,然后通過(guò)多次迭代,得到目標(biāo)函數(shù)的全局最小值,即最優(yōu)的聚類結(jié)果。

FCM 算法步驟如下:

(1)確定聚類類別個(gè)數(shù)c、模糊指數(shù)m和迭代次數(shù)T。

(2)隨機(jī)初始化隸屬矩陣U或初始聚類中心C。

(3)根據(jù)式(8)更新隸屬度矩陣和聚類中心。

(4)計(jì)算兩個(gè)相鄰目標(biāo)函數(shù)的差值,當(dāng)J(i+1)-J(i)<δ,即小于指定閾值,或迭代次數(shù)達(dá)到最大值時(shí),得到最優(yōu)的聚類中心C和隸屬度矩陣U,否則返回步驟(3)繼續(xù)迭代,直到滿足結(jié)束條件為止。

2.3 粒子群優(yōu)化算法

PSO(Particle Swarm Optimization,PSO)算法是一種群體智能的優(yōu)化算法,最早起源于對(duì)鳥(niǎo)類覓食行為的研究,通過(guò)群體中個(gè)體之間的協(xié)作和信息共享來(lái)尋找最優(yōu)解。在PSO 算法中,粒子也稱為個(gè)體,分布在多維搜索空間中,每個(gè)粒子或個(gè)體都表示一個(gè)可行解。在迭代計(jì)算過(guò)程中,通過(guò)比較每個(gè)粒子的個(gè)體適應(yīng)度值大小來(lái)更新每個(gè)粒子的個(gè)體極值和全局極值,最終得到最優(yōu)解。

假設(shè)粒子數(shù)量為n,每個(gè)粒子的位置可表示為X=[x1,x2,…,xn],每個(gè)粒子的速度可表示為V=[v1,v2,…,vn],則第i個(gè)粒子的位置可表示為xi(i∈[1,n])。第i個(gè)粒子的速度為vi,其個(gè)體極值為pbesti,群體的全局極值為gbesti。那么每一個(gè)粒子可通過(guò)式(10)、式(11)更新自己的速度和位置。

其中,w表示動(dòng)態(tài)權(quán)重;c1、c2表示加速系數(shù),通常設(shè)置為2;r1、r2是隨機(jī)數(shù),r1,r2∈[0,1]。

3 本文算法

在傳統(tǒng)的協(xié)同過(guò)濾推薦算法中,核心思想是尋找用戶的相似鄰居。如果用戶的大多數(shù)鄰居都喜歡某個(gè)物品,則會(huì)向目標(biāo)用戶推薦該物品。從用戶的角度來(lái)說(shuō),如果兩個(gè)用戶多次選擇同一個(gè)物品,則說(shuō)明兩個(gè)用戶具有相同的興趣偏好。本文圍繞用戶興趣,提出一種基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法,該算法通過(guò)結(jié)合用戶興趣偏好的相似性來(lái)解決用戶評(píng)分矩陣中的稀疏性問(wèn)題,并使用了改進(jìn)的FCM 模糊聚類算法來(lái)解決推薦階段的可擴(kuò)展性問(wèn)題。

為了解決數(shù)據(jù)稀疏性問(wèn)題,本文提出一種矩陣填充方法。該方法首先通過(guò)對(duì)用戶興趣偏好進(jìn)行模糊聚類,將具有相似興趣偏好的用戶聚到一起,得到用戶的聚類結(jié)果。然后,根據(jù)用戶—物品評(píng)分矩陣缺失值尋找到同一個(gè)聚類中對(duì)該物品評(píng)分的用戶,通過(guò)計(jì)算其評(píng)分均值來(lái)填充用戶物品評(píng)分矩陣,從而產(chǎn)生密集的用戶—物品評(píng)分矩陣。為了解決可擴(kuò)展性問(wèn)題,本文使用FCM 模糊聚類算法對(duì)用戶進(jìn)行聚類,由于FCM 算法存在陷入局部極小值問(wèn)題,采用PSO 算法對(duì)初始聚類中心進(jìn)行優(yōu)化,進(jìn)一步改進(jìn)模糊聚類算法。最后,在推薦階段選擇用戶在聚類中的最近鄰居來(lái)預(yù)測(cè)該用戶對(duì)物品的評(píng)分。本文算法框架如圖1所示。

Fig.1 Improved collaborative filtering recommendation algorithm圖1 改進(jìn)的協(xié)同過(guò)濾推薦算法

3.1 數(shù)據(jù)預(yù)處理

3.1.1 用戶—類別矩陣構(gòu)建

用戶—類別矩陣由每個(gè)用戶訪問(wèn)每一類別的次數(shù)組成。U={u1,u2,u3,…,un}為用戶集,C={c1,c2,c3,…,cp}為物品的類型集合,n為用戶個(gè)數(shù),p為物品類型個(gè)數(shù)。Cnp為用戶—類別訪問(wèn)矩陣,如式(12)所示。其中,tuicj表示用戶ui對(duì)類別cj的訪問(wèn)次數(shù),0 表示該用戶沒(méi)有訪問(wèn)該類別的物品。

3.1.2 用戶—興趣偏好矩陣構(gòu)建

根據(jù)用戶—類別矩陣可以知道每個(gè)用戶對(duì)每個(gè)類型的訪問(wèn)次數(shù)。實(shí)際上,如果兩個(gè)不同用戶對(duì)某個(gè)類別的訪問(wèn)次數(shù)相同,并不能說(shuō)明兩個(gè)用戶的興趣是一樣的,而是需要通過(guò)用戶訪問(wèn)率來(lái)進(jìn)一步了解用戶偏好。例如:用戶u1和用戶u2對(duì)類型c的訪問(wèn)次數(shù)都為20,對(duì)所有類型的總訪問(wèn)次數(shù)分別為50和200,用戶訪問(wèn)率分別為40%和10%,則說(shuō)明用戶u1更喜歡類型c。但是,用戶偏好還會(huì)受到類別訪問(wèn)率影響,例如:類型c1與類型c2的總訪問(wèn)次數(shù)分別是60和15,所有類型的訪問(wèn)次數(shù)為300,則c1與c2的類別訪問(wèn)率分別為20%和5%。如果用戶u對(duì)c1與c2的訪問(wèn)率分別為40%和20%,從用戶訪問(wèn)率來(lái)看,會(huì)認(rèn)為用戶u更喜歡類型c1,但是從類別訪問(wèn)率總體來(lái)看,發(fā)現(xiàn)與其他用戶相比,其更喜歡類型c2。為了解決以上問(wèn)題,本文結(jié)合了用戶局部興趣和全局興趣綜合得到用戶—興趣偏好矩陣。

(1)用戶的局部興趣。用戶的局部興趣矩陣可以通過(guò)用戶對(duì)物品的偏好程度來(lái)表示。通常,用戶和物品之間的交互頻率大小可用來(lái)表示用戶對(duì)物品的偏好程度。用戶對(duì)某個(gè)類型的偏好可通過(guò)用戶對(duì)該類型訪問(wèn)次數(shù)占用戶對(duì)所有類型訪問(wèn)次數(shù)的比值來(lái)表示。如式(13)所示:

從用戶物品的評(píng)分上看,用戶對(duì)物品的評(píng)分越高,則用戶對(duì)該類型的偏好程度也應(yīng)該越高,通過(guò)引入一個(gè)評(píng)分權(quán)重向量對(duì)用戶類型偏好進(jìn)行優(yōu)化。改進(jìn)后的用戶類型偏好度也即用戶的局部興趣如式(14)所示:

(2)全局興趣偏好。為了找到每個(gè)用戶興趣偏好密集的物品類別,本文定義了一個(gè)全局興趣偏好度,可以得到每個(gè)物品類型的訪問(wèn)度,如式(15)所示:

(3)用戶的綜合興趣偏好矩陣??紤]到用戶的局部興趣和全局興趣,可以得到用戶的綜合興趣偏好矩陣,如式(16)所示:

其中,LR表示用戶的局部偏好度,G表示全局興趣。

3.2 改進(jìn)的模糊C均值聚類算法

在實(shí)際生活中,用戶可能同時(shí)有多種興趣偏好,具有不確定性,所以本文使用FCM 模糊聚類算法對(duì)用戶進(jìn)行聚類。FCM 模糊聚類算法運(yùn)用模糊概念,通過(guò)計(jì)算用戶對(duì)聚類類別的隸屬度大小對(duì)用戶進(jìn)行分類。然而,傳統(tǒng)的FCM算法很大程度上依賴于初始聚類中心的選取,容易陷入局部最優(yōu),從而影響算法的聚類效果。粒子群優(yōu)化算法是一種群智能優(yōu)化算法,具有很強(qiáng)的全局搜索能力。由于其具有算法簡(jiǎn)單且效率高等優(yōu)點(diǎn),被廣泛應(yīng)用于許多優(yōu)化問(wèn)題中。因此,為了解決以上問(wèn)題,本文將粒子群優(yōu)化算法引入模糊聚類,對(duì)FCM 算法隨機(jī)選取初始聚類中心進(jìn)行優(yōu)化處理。算法優(yōu)化步驟如下:

步驟1:給定粒子群數(shù)目n,聚類個(gè)數(shù)k,模糊指數(shù)m,迭代次數(shù)T。

步驟2:隨機(jī)初始化聚類中心,對(duì)聚類中心進(jìn)行編碼并賦值給各個(gè)粒子,每個(gè)粒子代表各類的聚類中心。

步驟3:通過(guò)式(6)計(jì)算每個(gè)粒子的適應(yīng)度值,更新個(gè)體極值。

步驟4:根據(jù)每個(gè)粒子的個(gè)體極值,找到全局極值以及全局極值的位置。

步驟5:根據(jù)式(10)、式(11)更新每個(gè)粒子的速度和位置,產(chǎn)生新一代個(gè)體。

步驟6:若滿足終止條件,則算法結(jié)束,輸出最優(yōu)值即最佳的聚類中心,否則返回步驟3繼續(xù)執(zhí)行。

3.3 矩陣填充方法

在同一個(gè)聚類中,用戶偏好在一定程度上具有相似性。本文對(duì)用戶—興趣偏好矩陣使用改進(jìn)的FCM 模糊聚類算法,根據(jù)用戶興趣偏好的相似性對(duì)相似的用戶進(jìn)行聚類。對(duì)于用戶—物品評(píng)分矩陣中的缺失值,首先找到用戶所屬聚類類別,然后在聚類中選擇對(duì)該物品評(píng)分的用戶,通過(guò)求取評(píng)分的均值,可以得到目標(biāo)用戶對(duì)該物品的預(yù)測(cè)分?jǐn)?shù)。算法步驟如下:

步驟1:輸入用戶—評(píng)分矩陣Rnm、用戶—興趣偏好矩陣Cnp。

步驟2:使用改進(jìn)的FCM 算法對(duì)用戶—興趣偏好矩陣進(jìn)行聚類。

步驟3:對(duì)用戶—物品評(píng)分矩陣中的每一個(gè)缺失值,找到該用戶所屬聚類的其他用戶。

步驟4:計(jì)算聚類中所有對(duì)該物品評(píng)分的用戶平均分,填充用戶—物品評(píng)分矩陣中的缺失值。

步驟5:輸出密集的用戶—物品評(píng)分矩陣R'。

該方法流程如圖2所示。

Fig.2 Matrix filling method flow圖2 矩陣填充方法流程

3.4 相似度計(jì)算

相似度計(jì)算是協(xié)同過(guò)濾推薦算法的核心,而相似度計(jì)算方法直接影響用戶最近鄰居的選擇和推薦算法效率。為了計(jì)算用戶相似度,本文提出的算法通過(guò)對(duì)用戶物品評(píng)分相似度和用戶興趣偏好相似度進(jìn)行加權(quán)求和,其中既包含了用戶物品評(píng)分矩陣的顯式信息,又考慮了用戶對(duì)物品興趣偏好的隱式信息。

本文使用基于用戶的皮爾遜相似度計(jì)算方法,通過(guò)用戶物品評(píng)分矩陣可以得到用戶物品的評(píng)分相似度,如式(17)所示:

通過(guò)用戶興趣偏好矩陣,可以得到用戶興趣偏好的相似度??紤]到物品的流行度以及類型偏好的影響,引入一個(gè)物品類型懲罰因子,如式(18)所示:

其中,n表示用戶數(shù)量,|Nci|表示對(duì)物品類型ci給出的評(píng)分大于等于4 的用戶個(gè)數(shù)。改進(jìn)的用戶興趣偏好相似度如式(19)所示:

其中,Cuv表示用戶u和用戶v共同訪問(wèn)的物品類型,gui、gvi分別表示用戶u和用戶v對(duì)類型ci的偏好分別表示用戶u和用戶v的平均偏好。

將用戶物品評(píng)分相似度和用戶興趣偏好相似度進(jìn)行加權(quán)結(jié)合,可以得到最終的用戶相似度計(jì)算公式,如式(20)所示。其中,α為權(quán)重系數(shù),取值范圍為[0,1],用于調(diào)整用戶評(píng)分相似度和用戶興趣偏好相似度的所占權(quán)重。

3.5 預(yù)測(cè)分?jǐn)?shù)

通過(guò)相似度計(jì)算可以得到用戶相似度矩陣,用戶的相似度值越大,則表示兩個(gè)用戶越相近。尋找最近鄰居是協(xié)同過(guò)濾推薦算法中最重要的一步,本文通過(guò)改進(jìn)的模糊聚類方法將用戶分為不同簇,在同一簇內(nèi)選取與目標(biāo)用戶相似度值最高的用戶作為最近鄰居集合,記為N,則用戶u對(duì)項(xiàng)目i的評(píng)分可表示為:

其中,Pui表示用戶u對(duì)物品i的預(yù)測(cè)得分分別表示用戶u和用戶v的平均得分,rvi表示用戶v對(duì)物品i的評(píng)分,sim(u,v)表示用戶u和用戶v的相似度值,N表示用戶u的鄰居集(v∈N)。

4 實(shí)驗(yàn)及結(jié)果分析

4.1 實(shí)驗(yàn)數(shù)據(jù)集

為了驗(yàn)證改進(jìn)推薦算法的有效性,本實(shí)驗(yàn)使用MovieLens 100K 公共電影評(píng)分?jǐn)?shù)據(jù)集,該數(shù)據(jù)集包含了用戶信息、電影信息以及用戶對(duì)電影的評(píng)分信息等。將數(shù)據(jù)集分成80%的訓(xùn)練集和20%的測(cè)試集,數(shù)據(jù)集具體信息如表1所示。

Table 1 MovieLens 100K dataset information表1 MovieLens 100K數(shù)據(jù)集信息

其中,MovieLens 100K 數(shù)據(jù)集包含19 個(gè)電影類型:動(dòng)作、冒險(xiǎn)、動(dòng)畫(huà)、兒童、喜劇、犯罪、記錄、戲劇、幻想、黑色電影、恐怖、音樂(lè)劇、神秘、愛(ài)情、科幻、戰(zhàn)爭(zhēng)、驚悚、西部以及其他。每部電影可以是一種類型,也可以是多種類型。為了更好地區(qū)分電影類型,本文去掉“其他”類別,選取剩余的18個(gè)電影類型作為類別屬性。

4.2 實(shí)驗(yàn)評(píng)估標(biāo)準(zhǔn)

推薦算法使用最廣泛的評(píng)估標(biāo)準(zhǔn)之一是平均絕對(duì)誤差(Mean Absolute Error,MAE)。MAE 是衡量預(yù)測(cè)準(zhǔn)確率的指標(biāo),表示算法評(píng)分與真實(shí)評(píng)分之間的差距。該值越小,則表示預(yù)測(cè)準(zhǔn)確度越高,推薦質(zhì)量越好,越符合用戶興趣。本文以MAE 作為衡量算法推薦準(zhǔn)確性的評(píng)價(jià)指標(biāo),分?jǐn)?shù)預(yù)測(cè)集中的元素個(gè)數(shù)用N表示,預(yù)測(cè)分?jǐn)?shù)與實(shí)際分?jǐn)?shù)分別用P和R表示。MAE 可表示為:

4.3 實(shí)驗(yàn)結(jié)果分析

本文改進(jìn)算法所涉及的參數(shù)有用戶相似度的權(quán)重系數(shù)α、聚類個(gè)數(shù)k。

4.3.1 權(quán)重系數(shù)的影響

權(quán)重系數(shù)可以調(diào)整用戶物品評(píng)分相似度和用戶興趣偏好相似度所占權(quán)重,通過(guò)MAE 值的大小選取最佳的α值。MAE 值越小,算法性能越高。實(shí)驗(yàn)參數(shù)設(shè)置聚類個(gè)數(shù)k=5,鄰居個(gè)數(shù)N=30。隨著α的增加,MAE 值的變化趨勢(shì)如圖3 所示。由圖可以看出,當(dāng)α的值小于0.2 時(shí),MAE值呈下降趨勢(shì);當(dāng)α的值大于0.2 時(shí),隨著α的增大,MAE值也逐漸增大。當(dāng)α=0.2 時(shí),MAE 值最小,則α權(quán)重系數(shù)的最佳取值為0.2。

Fig.3 Influence of similarity weight α value圖3 相似度權(quán)重α值的影響

4.3.2 聚類個(gè)數(shù)k的影響

用戶聚類個(gè)數(shù)k值也是影響算法性能的因素之一,當(dāng)聚類用戶個(gè)數(shù)較少時(shí),每個(gè)用戶分類比較模糊,當(dāng)聚類用戶個(gè)數(shù)較多時(shí),同一聚類中可能只有較少的用戶,這些都會(huì)影響推薦算法的精度。設(shè)置實(shí)驗(yàn)參數(shù)α=0.2,鄰居個(gè)數(shù)N=30,使用平均絕對(duì)誤差MAE 值作為算法性能的評(píng)價(jià)標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果如圖4 所示,當(dāng)k∈[2,4]時(shí),MAE 值逐漸下降;當(dāng)k∈[4,5]時(shí),MAE 值逐漸上升。隨著k繼續(xù)增大,MAE 值整體呈上升趨勢(shì)。所以當(dāng)k=4 時(shí),MAE 值最小,用戶聚類的最佳k值為4。

Fig.4 Influence of cluster number k圖4 聚類個(gè)數(shù)k值的影響

3.3.3 優(yōu)化的聚類效果對(duì)比本文使用粒子群算法對(duì)FCM 算法初始聚類中心進(jìn)行優(yōu)化??紤]到優(yōu)化的聚類對(duì)整個(gè)算法準(zhǔn)確度的影響,將使用FCM 聚類和粒子群優(yōu)化的FCM 聚類(PSO-FCM)應(yīng)用于推薦算法的性能進(jìn)行對(duì)比,并使用MAE 值作為優(yōu)化效果的評(píng)估標(biāo)準(zhǔn)。設(shè)置實(shí)驗(yàn)參數(shù)α=0.2,鄰居個(gè)數(shù)N=30,實(shí)驗(yàn)結(jié)果如圖5所示。

Fig.5 Comparison of two clustering algorithms圖5 兩種聚類算法效果對(duì)比

由圖5 可見(jiàn),當(dāng)使用FCM 聚類時(shí),隨著聚類個(gè)數(shù)的增加,MAE 值先減小后增大,當(dāng)k=3 時(shí),MAE 值最小,隨后整體呈上升趨勢(shì);當(dāng)使用PSO-FCM 聚類時(shí),MAE 值也呈先減小后增大的趨勢(shì),當(dāng)k=4 時(shí),MAE 值最小。這是因?yàn)镻SO-FCM 聚類算法使用粒子群算法找到了最優(yōu)的初始聚類中心,可有效避免聚類陷入局部最優(yōu),再通過(guò)優(yōu)化的FCM 算法進(jìn)行聚類,從而提高了推薦算法的準(zhǔn)確度。

4.3.4 實(shí)驗(yàn)對(duì)比

為了驗(yàn)證本文提出的基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法的性能,將本文提出的改進(jìn)算法命名為FCMP-CF,實(shí)驗(yàn)設(shè)置α=0.2,k=4,并與其他3 種算法進(jìn)行實(shí)驗(yàn)對(duì)比分析,分別是傳統(tǒng)基于用戶的協(xié)同過(guò)濾推薦算法(User-CF)、基于FCM 用戶聚類的協(xié)同過(guò)濾推薦算法(FCM-CF)以及文獻(xiàn)[17]提出的融合權(quán)重調(diào)節(jié)和用戶偏好的協(xié)同過(guò)濾推薦算法(WAUP-CF)。當(dāng)N=5 時(shí),實(shí)驗(yàn)結(jié)果如表2所示。4種算法比較如圖6所示。

Table 2 Comparison results of four methods表2 4種方法比較結(jié)果

通過(guò)以上實(shí)驗(yàn)可以看出,隨著鄰居個(gè)數(shù)N 值的增大,相比于傳統(tǒng)基于用戶的協(xié)同過(guò)濾推薦算法,本文算法的平均絕對(duì)誤差降低了8.9%,相比于基于FCM 用戶聚類的協(xié)同過(guò)濾推薦算法,降低了6.2%,相比于融合權(quán)重調(diào)節(jié)和用戶偏好的協(xié)同過(guò)濾推薦算法,降低了5.2%。綜合得出,本文算法的MAE 值在整體范圍內(nèi)小于另外3 種協(xié)同過(guò)濾推薦算法,算法性能最優(yōu),推薦準(zhǔn)確率更高。

其中,傳統(tǒng)基于用戶的協(xié)同過(guò)濾推薦算法(User-CF)由于沒(méi)有考慮用戶的聚類方法,并且評(píng)分矩陣非常稀疏,其MAE 值最大,推薦效果不佳。基于FCM 用戶聚類的協(xié)同過(guò)濾推薦算法(FCM-CF)將評(píng)分相似的用戶聚在一起,在聚類中選擇最近鄰居,在一定程度上改善了傳統(tǒng)基于用戶的協(xié)同過(guò)濾推薦算法的不足,推薦效果有所提升。融合權(quán)重調(diào)節(jié)與用戶偏好的協(xié)同過(guò)濾推薦算法(WAUP-CF)考慮了用戶相似度和用戶偏好相似度,通過(guò)對(duì)相似度進(jìn)行改進(jìn),提高了推薦算法的準(zhǔn)確度,但是沒(méi)有考慮用戶的全局興趣以及用戶評(píng)分矩陣的稀疏性。而本文提出的基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法引入用戶興趣偏好度,并且對(duì)用戶興趣進(jìn)行了優(yōu)化。通過(guò)對(duì)用戶興趣偏好的聚類,利用具有相似偏好的用戶平均值填充用戶評(píng)分矩陣,再結(jié)合改進(jìn)的用戶興趣偏好相似度和用戶評(píng)分相似度,得到綜合的用戶相似度,從而構(gòu)建用戶相似度矩陣,最后在聚類中選擇最近鄰居對(duì)目標(biāo)用戶進(jìn)行推薦。該算法引入了用戶偏好并且緩解了數(shù)據(jù)稀疏性,具有更高的推薦準(zhǔn)確度。

5 結(jié)語(yǔ)

針對(duì)傳統(tǒng)協(xié)同過(guò)濾推薦算法中存在的數(shù)據(jù)稀疏性和推薦準(zhǔn)確度低等問(wèn)題,本文提出基于模糊聚類與用戶興趣的協(xié)同過(guò)濾推薦算法。在構(gòu)建用戶興趣矩陣時(shí),通過(guò)優(yōu)化用戶的局部興趣,同時(shí)結(jié)合全局興趣,能夠更加準(zhǔn)確地反映出用戶興趣偏好,對(duì)用戶的聚類也更加準(zhǔn)確。另外,使用粒子群算法對(duì)模糊聚類算法進(jìn)行優(yōu)化,對(duì)用戶興趣偏好進(jìn)行模糊聚類,將具有相似偏好的用戶聚類在一起。對(duì)于用戶—物品評(píng)分矩陣的缺失值,使用聚類中對(duì)該物品評(píng)分的用戶均值進(jìn)行填充,有效緩解了數(shù)據(jù)的稀疏性。然后,使用改進(jìn)的基于用戶物品評(píng)分和用戶興趣偏好的相似度預(yù)測(cè)目標(biāo)用戶對(duì)物品的評(píng)分,形成最終的推薦列表。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的協(xié)同過(guò)濾推薦算法相比,本文提出的算法在一定程度上提高了推薦的準(zhǔn)確性。

猜你喜歡
物品聚類協(xié)同
稱物品
“雙十一”,你搶到了想要的物品嗎?
蜀道難:車與路的協(xié)同進(jìn)化
誰(shuí)動(dòng)了凡·高的物品
“四化”協(xié)同才有出路
基于DBSACN聚類算法的XML文檔聚類
基于高斯混合聚類的陣列干涉SAR三維成像
三醫(yī)聯(lián)動(dòng) 協(xié)同創(chuàng)新
一種層次初始的聚類個(gè)數(shù)自適應(yīng)的聚類方法研究
協(xié)同進(jìn)化