閻紅燦,王子茹,李偉芳,谷建濤
(1.華北理工大學(xué)理學(xué)院,河北 唐山 063210;2.河北省數(shù)據(jù)科學(xué)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,河北 唐山 063000)
隨著推薦技術(shù)在電子商務(wù)、社交網(wǎng)絡(luò)等互聯(lián)網(wǎng)領(lǐng)域的廣泛應(yīng)用,面對(duì)海量的數(shù)據(jù)信息,如何除去冗余數(shù)據(jù),為用戶(消費(fèi)者)推薦最需要或合適的服務(wù)產(chǎn)品(商品)成為研究熱點(diǎn)。消費(fèi)者試圖通過(guò)每天接觸的網(wǎng)頁(yè)瀏覽來(lái)選購(gòu)符合自己要求的商品,如何又準(zhǔn)又快地為消費(fèi)者推薦更心儀的商品,這就使推薦算法的準(zhǔn)確性成為關(guān)鍵性問(wèn)題[1 - 3]。
Goldberg等[4]首次提出推薦系統(tǒng),找出用戶評(píng)分?jǐn)?shù)據(jù)中和目標(biāo)用戶有相同偏好和取向特征的用戶,將這些用戶感興趣的商品推薦給目標(biāo)用戶[5],但存在運(yùn)行效率不高的問(wèn)題。許多研究者提出填充稀疏數(shù)據(jù)集[6]、矩陣分解[7]和聚類(lèi)[8]等方法,汪軍等[9]提出了基于云模型熟悉相似度的鄰居用戶選擇方法;袁泉等[10]提出用知識(shí)圖譜進(jìn)行推薦;Wu等[11]證明基于聚類(lèi)的協(xié)同過(guò)濾可以明顯提高推薦的準(zhǔn)確性;王衛(wèi)紅等[12]用聚類(lèi)和Weighted Slope One算法填充未評(píng)分項(xiàng),提高推薦準(zhǔn)確性;李嫻等[13]用異質(zhì)信息網(wǎng)絡(luò)方法進(jìn)行稀疏值填充;邢長(zhǎng)征等[14]提出填充法和改進(jìn)相似度相結(jié)合的協(xié)同過(guò)濾算法;文獻(xiàn)[15]采用構(gòu)建矩陣變換的形式增強(qiáng)了推薦的準(zhǔn)確性和多樣性;蘇慶等[16]引入改進(jìn)模糊劃分的GIFP-FCM算法,將屬性特征相似的項(xiàng)目聚成一類(lèi),構(gòu)造索引矩陣,尋找最近鄰居構(gòu)成推薦;鄧秀勤等[17]將用戶喜好問(wèn)題加入推薦的過(guò)程中,降低計(jì)算復(fù)雜度;張艷紅等[18]提出對(duì)用戶的坐標(biāo)象限模糊隸屬結(jié)果,提高推薦準(zhǔn)確性。雖然加權(quán)斜率可以緩解稀疏性,沒(méi)有考慮項(xiàng)目之間的隱含信息,加入模糊聚類(lèi)可以提高推薦準(zhǔn)確性,但有時(shí)人們的興趣會(huì)隨時(shí)間的遷移發(fā)生變化,如何更好地緩解以上問(wèn)題成為優(yōu)化算法的關(guān)鍵。
本文針對(duì)以上問(wèn)題深入研究,提出伴隨時(shí)間因子的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法,首先建立用戶-項(xiàng)目評(píng)分矩陣,采用SMOTE(Synthetic Minority Oversampling TEchnique)過(guò)采樣技術(shù)填充未評(píng)分項(xiàng)和時(shí)間,引入模糊聚類(lèi)確定相同興趣用戶集合,在降低計(jì)算復(fù)雜度的前提下提高推薦準(zhǔn)確性;同時(shí)引入時(shí)間因子改進(jìn)傳統(tǒng)評(píng)分過(guò)程,提高計(jì)算效率的同時(shí)保證了推薦算法的實(shí)時(shí)性。
協(xié)同過(guò)濾推薦算法通過(guò)用戶與產(chǎn)品之間的關(guān)系,利用已有選擇歷史或用戶間的相似關(guān)系,搜索用戶潛在的感興趣的項(xiàng)目,完成推薦。主要包括基于模型的協(xié)同過(guò)濾推薦算法和基于記憶的協(xié)同過(guò)濾推薦算法,而基于記憶的協(xié)同過(guò)濾算法又可以分為基于物品的協(xié)同過(guò)濾推薦算法和基于用戶的協(xié)同過(guò)濾推薦算法,但是目前傳統(tǒng)的協(xié)同過(guò)濾推薦算法大部分是基于矩陣運(yùn)算,維度高、復(fù)雜性大,導(dǎo)致推薦準(zhǔn)確度低,推薦效果較差。本文主要研究基于用戶的協(xié)同過(guò)濾推薦算法,引入模糊聚類(lèi)降低計(jì)算復(fù)雜性,提高推薦效果;同時(shí)通過(guò)SMOTE過(guò)采樣技術(shù)改善數(shù)據(jù)的稀疏性,利用不同用戶的歷史數(shù)據(jù)構(gòu)建用戶-項(xiàng)目矩陣,通過(guò)對(duì)物品的評(píng)分計(jì)算用戶之間的相似性,根據(jù)用戶之間的相似性預(yù)測(cè)用戶對(duì)感興趣商品的評(píng)分,優(yōu)化時(shí)間因子,進(jìn)而實(shí)現(xiàn)推薦。
表1所示為協(xié)同過(guò)濾推薦算法中的用戶-項(xiàng)目評(píng)分矩陣R,包含一個(gè)用戶的集合U=(u1,u2,…,um)和一個(gè)項(xiàng)目的集合I=(i1,i2,…,in),m個(gè)用戶針對(duì)n個(gè)項(xiàng)目的評(píng)分形成m×n階評(píng)分矩陣,用戶uk對(duì)項(xiàng)目ij的評(píng)分記為rkj。
Table 1 User-item scoring matrix R表1 用戶-項(xiàng)目評(píng)分矩陣R
表2所示為協(xié)同過(guò)濾推薦算法中項(xiàng)目的評(píng)分-時(shí)間矩陣T,包含一個(gè)用戶的集合U=(u1,u2,…,um)和一個(gè)項(xiàng)目的集合I=(i1,i2,…,in),m個(gè)用戶針對(duì)n個(gè)項(xiàng)目的評(píng)分時(shí)間形成m×n階評(píng)分時(shí)間矩陣,用戶uk對(duì)項(xiàng)目ij的評(píng)分時(shí)間表示為tkj。
Table 2 User-project time matrix T表2 用戶-項(xiàng)目時(shí)間矩陣T
在用戶項(xiàng)目評(píng)分矩陣中,為每名用戶尋找“特性相同”即有相同評(píng)分項(xiàng)的用戶,計(jì)算用戶間的相似性。常用的相似度評(píng)價(jià)指標(biāo)有杰卡德系數(shù)、歐氏距離、余弦相似度和皮爾遜相關(guān)系數(shù)等。杰卡德系數(shù)通常用于衡量集合間的相似性;歐氏距離注重計(jì)算絕對(duì)距離,不能體現(xiàn)數(shù)據(jù)的整體性;余弦相似度側(cè)重方向差異;皮爾遜相關(guān)系數(shù)解決了各維度量綱的差異性,計(jì)算相似度時(shí)更側(cè)重于考慮整體性,通過(guò)減去用戶的均值,實(shí)現(xiàn)了對(duì)于同一個(gè)用戶多維度的考察,計(jì)算公式如式(1)所示:
sim(uu,uv)=
(1)
表3所示為用戶-用戶相似矩陣S。本文應(yīng)用皮爾遜相關(guān)系數(shù)法計(jì)算用戶之間的相似度。
Table 3 User-user similarity matrix S表3 用戶-用戶相似矩陣S
“物以類(lèi)聚,人以群分”,人們總是尋找和自己興趣相同的用戶,把用戶分成幾個(gè)類(lèi)型。本文選擇使用一種基于模糊聚類(lèi)FCCF(Fuzzy Clustering Collaborative Filtering)的算法,根據(jù)用戶對(duì)項(xiàng)目的評(píng)分把用戶分成不同的類(lèi),每類(lèi)對(duì)應(yīng)相同興趣愛(ài)好的用戶。但是,由于用戶評(píng)分?jǐn)?shù)據(jù)存在嚴(yán)重的數(shù)據(jù)稀疏問(wèn)題,使得模糊聚類(lèi)效果很差。
本文應(yīng)用SMOTE過(guò)采樣技術(shù)對(duì)原數(shù)據(jù)進(jìn)行填充,有效解決了稀疏問(wèn)題。在此基礎(chǔ)上提出伴隨時(shí)間因子的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法,首先構(gòu)造項(xiàng)目評(píng)分矩陣,并計(jì)算用戶相似矩陣,采用模糊聚類(lèi)對(duì)用戶進(jìn)行聚類(lèi)操作;然后引入時(shí)間因子,對(duì)用戶感興趣的商品評(píng)分進(jìn)行預(yù)測(cè),使得推薦信息更具有實(shí)時(shí)性。伴隨時(shí)間因子的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法流程圖如圖1所示。
Figure 1 Fuzzy cluster collaborative filtering recommendation algorithm with time of SMOTE圖1 伴隨時(shí)間因子的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法
不平衡數(shù)據(jù)集是指數(shù)據(jù)集中某些類(lèi)樣本明顯少于其他類(lèi)[18]。在實(shí)際問(wèn)題中不平衡問(wèn)題普遍存在,比如文本分類(lèi)、醫(yī)療診斷和天氣預(yù)測(cè)等。SMOTE利用K近鄰和線性插值,在相距較近的2個(gè)少數(shù)類(lèi)樣本間按照一定規(guī)則人工插入新樣本,使少數(shù)類(lèi)樣本增加達(dá)到數(shù)據(jù)平衡,傳統(tǒng)的隨機(jī)采樣容易導(dǎo)致過(guò)擬合現(xiàn)象,SMOTE針對(duì)該現(xiàn)象有很好的改善作用。這種填補(bǔ)缺項(xiàng)數(shù)據(jù)的技術(shù)能夠很好地解決數(shù)據(jù)稀疏問(wèn)題,同時(shí)不影響模糊聚類(lèi)的分類(lèi)性質(zhì),所以本文應(yīng)用SMOTE過(guò)采樣技術(shù)對(duì)原始數(shù)據(jù)集進(jìn)行預(yù)處理,生成用戶-項(xiàng)目評(píng)分矩陣。
SMOTE處理數(shù)據(jù)的基本思想:數(shù)據(jù)預(yù)處理階段,為降低數(shù)據(jù)不平衡度,應(yīng)用K近鄰合成新的數(shù)據(jù)加入到數(shù)據(jù)集中,以此填補(bǔ)空白缺項(xiàng)。推薦系統(tǒng)的原始用戶評(píng)分?jǐn)?shù)據(jù)中,給定的評(píng)分?jǐn)?shù)據(jù)很少,大部分評(píng)分缺項(xiàng),造成嚴(yán)重的矩陣稀疏問(wèn)題。為了便于討論,本文規(guī)定已評(píng)分樣本為少數(shù)類(lèi)樣本,未評(píng)分樣本為多數(shù)類(lèi)樣本,使用SMOTE過(guò)采樣技術(shù)填充稀疏數(shù)據(jù)的算法步驟如下所示:
(1)對(duì)于少數(shù)類(lèi)樣本rui,以歐氏距離(式(2))計(jì)算K近鄰。針對(duì)某一用戶的項(xiàng)目ii,計(jì)算少數(shù)類(lèi)樣本中和項(xiàng)目ii有公共評(píng)分的所有用戶間的距離,得到K近鄰,其中K值默認(rèn)為5。
(2)
其中,i=1,2,…,n;uu,uv為2個(gè)不同的用戶
(2)根據(jù)項(xiàng)目評(píng)分中樣本的不平衡比確定采樣倍率。對(duì)于每一個(gè)少數(shù)類(lèi)樣本rui,從其K近鄰中隨機(jī)選擇L條用戶交互記錄,并根據(jù)式(3)生成新樣本ruj:
ruj=rui+rand(0,1)*(rvi-rui)
(3)
其中,u,v=1,2,…,m;i=1,2,…,n;rand(0,1) 表示0~1的隨機(jī)數(shù)。
(3)將新生成的樣本全部加入原始數(shù)據(jù)集中,解決數(shù)據(jù)的稀疏問(wèn)題。
模糊聚類(lèi)是利用模糊等價(jià)關(guān)系將給定對(duì)象進(jìn)行等價(jià)類(lèi)劃分,和其他聚類(lèi)方法不同的是其不需要提前確定聚類(lèi)數(shù)目,通過(guò)對(duì)分類(lèi)對(duì)象設(shè)置閾值進(jìn)行對(duì)象的屬性劃分,該矩陣滿足自反性、對(duì)稱(chēng)性和傳遞性。根據(jù)平方法合成傳遞閉包對(duì)元素進(jìn)行編排,確定閾值,當(dāng)劃分類(lèi)的數(shù)目趨于穩(wěn)定時(shí)確定項(xiàng)目的最終分類(lèi)。模糊聚類(lèi)算法FCCF的聚類(lèi)過(guò)程描述如算法1所示:
算法1模糊聚類(lèi)算法FCCF
輸入:用戶評(píng)分矩陣R。
輸出:模糊聚類(lèi)簇(C1,C2,…,Cx)。
步驟1建立用戶評(píng)分矩陣。
設(shè)用戶為論域U={u1,u2,…,um},每個(gè)用戶對(duì)應(yīng)n種類(lèi)型電影的評(píng)分(表示其愛(ài)好)rui,i∈1,2,…,m,得到原始用戶有效評(píng)分矩陣R=(rui)m×n。
步驟2構(gòu)建模糊相似矩陣可以采用貼近度法、距離法和相似系數(shù)法,本文采用相似系數(shù)法中的皮爾遜相關(guān)系數(shù)建立模糊相似矩陣M,主對(duì)角線上的元素都為1,其他位置元素用皮爾遜相關(guān)系數(shù)計(jì)算得到,構(gòu)成的對(duì)角矩陣如式(4)所示:
u≠v
(4)
步驟3用平方法合成傳遞閉包,建立模糊等價(jià)矩陣t(M),M°M=M2,M2°M2=M4,…,總能找到一個(gè)q使得Mq°Mq=M2q。
(5)
式(5)是M的傳遞閉包,并將t(M)中的元素從大到小編排為a1>a2>a3>…>ai,ai為傳遞閉包中的元素。
步驟4計(jì)算當(dāng)閾值λ=a1,a2,…,ai時(shí),對(duì)應(yīng)不同的截集,即模糊聚類(lèi)簇(C1,C2,…,Cx)。
傳統(tǒng)的協(xié)同過(guò)濾推薦算法根據(jù)用戶的偏好,通過(guò)用戶的歷史記錄進(jìn)行推薦,此過(guò)程離線進(jìn)行[19],忽略了人的興趣會(huì)受到時(shí)間影響,但現(xiàn)實(shí)生活中用戶對(duì)物品的喜愛(ài)會(huì)隨時(shí)間發(fā)生改變,歷史記錄與當(dāng)前評(píng)分時(shí)間越近,越能代表最近的愛(ài)好[20,21]。用戶興趣不斷變化但在傳統(tǒng)的協(xié)同過(guò)濾推薦算法中不能體現(xiàn)出來(lái),對(duì)用戶評(píng)分設(shè)置統(tǒng)一權(quán)重推薦的實(shí)時(shí)性問(wèn)題在此時(shí)顯得尤為重要。根據(jù)用戶的評(píng)價(jià)歷史,對(duì)用戶進(jìn)行實(shí)時(shí)推薦,王永貴等[22]根據(jù)不同的時(shí)間段用戶的興趣可能發(fā)生變化,引入時(shí)間因子TF1(Time Factor 1)(如式(6)所示),提高了推薦效果。本文在此基礎(chǔ)上結(jié)合艾賓浩斯遺忘曲線,針對(duì)用戶歷史記錄間隔較長(zhǎng)的問(wèn)題,平衡評(píng)分時(shí)間差,模擬人類(lèi)興趣變化改進(jìn)式(6),將時(shí)間因子TF1優(yōu)化為T(mén)F2(Time Factor 2),如式(7)所示。使時(shí)間因子參與預(yù)測(cè)評(píng)分,不同的評(píng)分時(shí)刻將會(huì)被賦予不同的時(shí)間權(quán)重,這樣可以模擬用戶偏好變化,實(shí)現(xiàn)實(shí)時(shí)推薦,為了描述清晰,將公式中參數(shù)進(jìn)行統(tǒng)一。
(6)
(7)
其中,Ti為用戶對(duì)項(xiàng)目ii評(píng)分時(shí)對(duì)應(yīng)的時(shí)間,T0為用戶初次進(jìn)行項(xiàng)目評(píng)分對(duì)應(yīng)的時(shí)間,Tn表示用戶使用推薦系統(tǒng)的總時(shí)長(zhǎng),2種時(shí)間因子TF1和TF2都記為函數(shù)f(t),取值為(0,1)。
式(8)所示為用戶評(píng)分預(yù)測(cè)計(jì)算式,其中加入了時(shí)間因子f(t)。
(8)
針對(duì)用戶ui,只要對(duì)ui所在的聚類(lèi)簇利用式(8),就可以計(jì)算出該用戶對(duì)感興趣商品的評(píng)分預(yù)測(cè)值,把預(yù)測(cè)值高的商品推薦給該用戶??梢?jiàn),經(jīng)過(guò)聚類(lèi)的協(xié)同過(guò)濾大大降低了計(jì)算量。
為了描述方便,將文獻(xiàn)[9]基于云模型相似度的用戶推薦算法改進(jìn)記為CM-CF(Cloud Model Collaborative Filtering)算法;將文獻(xiàn)[16]改進(jìn)模糊劃分聚類(lèi)的協(xié)同過(guò)濾推薦算法記為FCCF算法;使用SMOTE過(guò)采樣技術(shù)預(yù)處理的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法記為SMOTE-FCCF算法;代入時(shí)間因子TF1的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法記為SMOTE-TF1-FCCF算法;使用SMOTE過(guò)采樣技術(shù)預(yù)處理,代入時(shí)間因子TF2的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法記為SMOTE-TF2-FCCF算法。下面通過(guò)實(shí)驗(yàn)進(jìn)行對(duì)比研究,以驗(yàn)證模糊聚類(lèi)和時(shí)間因子對(duì)推薦算法的效果。
通過(guò)平均絕對(duì)誤差MAE(Mean Absolute Error )和均方根誤差RMSE(Root Mean Square Error)指標(biāo),檢驗(yàn)近鄰個(gè)數(shù)k和推薦個(gè)數(shù)N對(duì)推薦效果的影響?;谀:垲?lèi)簇(C1,C2,…,Cx),在聚類(lèi)簇中確定近鄰個(gè)數(shù)的最優(yōu)值,進(jìn)而確定推薦個(gè)數(shù)。
實(shí)驗(yàn)使用的數(shù)據(jù)集是由美國(guó)明尼蘇達(dá)州大學(xué)GroupLens項(xiàng)目組創(chuàng)建,其中包括100 KB、1 MB、10 MB 3個(gè)規(guī)模的數(shù)據(jù)集。本文使用MovieLens-100k數(shù)據(jù)集驗(yàn)證推薦效果。數(shù)據(jù)集包含943名用戶對(duì)1 682部電影的1 000 000條評(píng)分,且數(shù)據(jù)集的每個(gè)用戶對(duì)電影的評(píng)分都是1~5分。數(shù)據(jù)集上每個(gè)評(píng)分?jǐn)?shù)據(jù)都帶有評(píng)分時(shí)的時(shí)間戳(時(shí)刻序列值),用戶是初次評(píng)價(jià)即為T(mén)0,對(duì)第i個(gè)項(xiàng)目評(píng)價(jià)即為T(mén)i,直接代入公式參與運(yùn)算。本文構(gòu)建的數(shù)據(jù)集用戶項(xiàng)目評(píng)分矩陣稀疏度為93.7%。
本文采用檢驗(yàn)推薦方法最常用的MAE(平均絕對(duì)誤差)、RMSE(均方根誤差)指標(biāo):
(9)
(10)
其中,pi表示預(yù)測(cè)評(píng)分,qi表示實(shí)際評(píng)分,N表示有N個(gè)項(xiàng)目。值越小說(shuō)明算法性能越好。
為驗(yàn)證SMOTE-TF2-FCCF算法的有效性,本文基于控制變量法設(shè)計(jì)了2組實(shí)驗(yàn)進(jìn)行測(cè)試,同時(shí)對(duì)過(guò)采樣倍率進(jìn)行設(shè)置,如果過(guò)采樣倍率過(guò)大,新增樣本點(diǎn)的選取范圍也會(huì)增大,難以尋找真正的近鄰用戶;如果過(guò)采樣倍率過(guò)小,數(shù)據(jù)的稀疏度依然很大,難以起到數(shù)據(jù)填充的效果,因此設(shè)置過(guò)采樣倍率為500%。
除了考慮算法的準(zhǔn)確性,算法的時(shí)間效率也是不容忽視的衡量指標(biāo)。5種算法計(jì)算相似度的時(shí)間復(fù)雜度都為Ο(m×m),m為用戶數(shù)目,相差不大;但加入模糊聚類(lèi)后評(píng)分過(guò)程的復(fù)雜度為Ο(nk)(n為項(xiàng)目數(shù),k為用戶的近鄰個(gè)數(shù)),其余4種傳統(tǒng)的項(xiàng)目評(píng)分過(guò)程的復(fù)雜度為Ο(m×n),一般地有m>>k,所以本文算法通過(guò)模糊聚類(lèi)搜索近鄰用戶,大大縮短了推薦的時(shí)間,保證了推薦的效率。
實(shí)驗(yàn)環(huán)境為:
操作系統(tǒng)為Windows 10 x64,處理器為Intel(R) Core(TM) i5-8250U CPU @ 1.60 GHz 1.80 GHz,RAM為12 GB。
語(yǔ)言環(huán)境為gcc version 8.2.0, Python 3.7.5。
4.4.1 CM-CF算法、FCCF算法和SMOTE-FCCF算法的對(duì)比
A組實(shí)驗(yàn)是CM-CF算法、FCCF算法和SMOTE-FCCF算法在MovieLens-100k數(shù)據(jù)集上測(cè)試模糊聚類(lèi)的效果,分別通過(guò)云模型、模糊聚類(lèi)和加入SMOTE過(guò)采樣技術(shù)填充的模糊聚類(lèi),以MAE和RMSE作為檢驗(yàn)算法準(zhǔn)確性的評(píng)價(jià)指標(biāo),進(jìn)行3種算法的對(duì)比。
A組實(shí)驗(yàn)結(jié)果如表4所示,設(shè)置聚類(lèi)數(shù)的取值為1~500,間隔為1,在MAE值最低點(diǎn)時(shí)確定聚類(lèi)數(shù),求得RMSE值。觀察類(lèi)簇中用戶的個(gè)數(shù)多集中于[20,60],以遞增間隔為2,此時(shí)3種算法的最近鄰k的最優(yōu)取值分別為40,50,26。推薦個(gè)數(shù)N的最優(yōu)取值分別為8,5,7。
Table 4 Experimental comparison of cloud model recommendation and fuzzy cluster recommendation表4 云模型推薦與模糊聚類(lèi)推薦實(shí)驗(yàn)對(duì)比
可以看出CM-CF算法的MAE值最小,為0.75,RMSE為0.96;FCCF算法在聚類(lèi)數(shù)為20時(shí),MAE值最小,為0.63,RMSE為0.91;FCCF算法較CM-CF算法的MAE、RMSE和聚類(lèi)數(shù)均相對(duì)較小,表明模糊聚類(lèi)確實(shí)可以提高推薦的準(zhǔn)確性。SMOTE-FCCF算法在聚類(lèi)數(shù)為30時(shí),MAE值最小,為0.62,RMSE為0.89,SMOTE-FCCF算法的MAE、RMSE比FCCF算法的也小,說(shuō)明SMOTE過(guò)采樣填充優(yōu)于平均值填充,本文提出的經(jīng)過(guò)數(shù)據(jù)預(yù)處理后的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法SMOTE-FCCF優(yōu)于文獻(xiàn)[9]和文獻(xiàn)[16]提出的算法。
4.4.2 SMOTE-FCCF算法、SMOTE-TF1-FCCF算法和SMOTE-TF2-FCCF算法對(duì)比
為了驗(yàn)證加入時(shí)間因子和改進(jìn)時(shí)間因子的有效性,將SMOTE-FCCF、SMOTE-TF1-FCCF和SMOTE-TF2-FCCF算法進(jìn)行對(duì)比,采用MAE和RMSE檢驗(yàn)算法準(zhǔn)確性。B組實(shí)驗(yàn)結(jié)果如表5所示。聚類(lèi)數(shù)目通過(guò)數(shù)據(jù)預(yù)處理進(jìn)行模糊聚類(lèi)確定,與時(shí)間因子無(wú)關(guān),所以B組實(shí)驗(yàn)和A組實(shí)驗(yàn)中SMOTE-TF2-FCCF的聚類(lèi)數(shù)目相同,都為30,3種算法只是驗(yàn)證時(shí)間因子的效果,故聚類(lèi)數(shù)、最近鄰數(shù)k、推薦個(gè)數(shù)N的最優(yōu)取值都為30,26,7。
Table 5 Experimental comparison of influence of time factor表5 時(shí)間因子影響實(shí)驗(yàn)對(duì)比
橫向比較,SMOTE-FCCF的MAE和RMSE分別為0.62和0.89。加入時(shí)間因子TF1,SMOTE-TF1-FCCF的MAE和RMSE分別為0.61和0.88,MAE和RMSE較SMOTE-FCCF算法明顯降低,可以發(fā)現(xiàn),加入時(shí)間因子TF1可以提升推薦效果,而加入時(shí)間因子TF2后,SMOTE-TF2-FCCF算法的MAE和RMSE分別為0.60和0.76,該值優(yōu)于SMOTE-TF1-FCCF算法的,推薦效果大大提高。
縱向比較3種算法的MAE和RMSE值,SMOTE-TF1-FCCF和SMOTE-TF2-FCCF算法的結(jié)果都優(yōu)于SMOTE-FCCF算法的,說(shuō)明人們的興趣會(huì)隨時(shí)間的遷移而發(fā)生變化,改進(jìn)的時(shí)間因子TF2明顯優(yōu)于TF1,說(shuō)明改進(jìn)平衡時(shí)間因子有效,可進(jìn)一步提高推薦算法的推薦性能。
協(xié)同過(guò)濾推薦算法最大的優(yōu)點(diǎn)是對(duì)推薦對(duì)象沒(méi)有特殊的要求,能夠有效地使用其他相似用戶的反饋信息?;谀:垲?lèi)的協(xié)同過(guò)濾推薦算法大大減少了運(yùn)算量,但也帶來(lái)了數(shù)據(jù)稀疏問(wèn)題。
本文提出伴隨時(shí)間的模糊聚類(lèi)協(xié)同過(guò)濾推薦算法SMOTE-TF2-FCCF,根據(jù)用戶之間的評(píng)分差異,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,采用SMOTE過(guò)采樣技術(shù)進(jìn)行填充,有效解決了數(shù)據(jù)稀疏性問(wèn)題;利用模糊聚類(lèi)減小相似用戶集合,降低計(jì)算復(fù)雜度,同時(shí)在聚類(lèi)簇上加入用戶評(píng)級(jí)項(xiàng)目的時(shí)間因子,考慮了推薦的實(shí)時(shí)性。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)SMOTE過(guò)采樣預(yù)處理的模糊聚類(lèi)協(xié)同過(guò)濾算法優(yōu)于其他數(shù)據(jù)預(yù)處理方法,伴隨時(shí)間的模糊聚類(lèi)協(xié)同過(guò)濾算法優(yōu)于沒(méi)有時(shí)間因子的推薦算法,而本文改進(jìn)的SMOTE-TF2-FCCF算法性能最好。
模糊聚類(lèi)算法對(duì)數(shù)據(jù)稀疏性非常敏感,在未來(lái)的工作中,將對(duì)改進(jìn)稀疏度的方法做進(jìn)一步研究,或者使用對(duì)數(shù)據(jù)沒(méi)有限制的新的聚類(lèi)方法,以進(jìn)一步提高推薦算法的性能。