張 維,黃 勃,2,張 娟,高永彬,劉 瑾,王忠震
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620;2.江西省經(jīng)濟(jì)犯罪偵查與防控技術(shù)協(xié)同創(chuàng)新中心,江西 南昌 330000)
信息化技術(shù)的快速發(fā)展沉淀了海量的數(shù)據(jù),加快了信息過(guò)濾技術(shù)的發(fā)展。推薦算法是信息過(guò)濾技術(shù)之一,它能夠自動(dòng)過(guò)濾與目標(biāo)用戶無(wú)關(guān)或用戶不感興趣的數(shù)據(jù)?;谀P偷耐扑]、基于協(xié)同過(guò)濾的推薦和基于內(nèi)容的推薦是主要的推薦算法[1]。其中,協(xié)同過(guò)濾算法應(yīng)用最為廣泛[2],但傳統(tǒng)協(xié)同過(guò)濾算法也存在著許多挑戰(zhàn),例如用戶和項(xiàng)目的冷啟動(dòng)挑戰(zhàn)、數(shù)據(jù)稀疏的挑戰(zhàn)和算法可擴(kuò)展的挑戰(zhàn)。同時(shí),以往的研究發(fā)現(xiàn),長(zhǎng)久推薦用戶感興趣的內(nèi)容,會(huì)使用戶處在自己的信息繭房[3]之中。大量用戶處于一種被自己興趣所包圍的環(huán)境,其認(rèn)知、興趣趨于窄化,形成一種認(rèn)知屏障,失去認(rèn)知和發(fā)現(xiàn)新事物的機(jī)會(huì)。為了能夠一定程度的緩解信息繭房對(duì)用戶所帶來(lái)的負(fù)面影響,文獻(xiàn)[4]提出了個(gè)性化算法優(yōu)化、平臺(tái)優(yōu)化、改進(jìn)信息供給側(cè)的理論方法。文獻(xiàn)[5]提出破除信息繭房所帶來(lái)的“個(gè)人回音室”、“群體極化”等影響個(gè)人和社會(huì)的負(fù)面效應(yīng),需要從“個(gè)性化推薦”轉(zhuǎn)變?yōu)椤叭诵曰扑]”。目前,在推薦算法的研究中,很少考慮信息繭房負(fù)效應(yīng)對(duì)用戶影響,特別是少數(shù)類用戶。少數(shù)類用戶是近鄰用戶數(shù)量很少的一類用戶,當(dāng)對(duì)這類用戶進(jìn)行推薦時(shí),如果不采取措施對(duì)用戶數(shù)量進(jìn)行平衡,將會(huì)使其興趣窄化,陷入信息繭房之中。
在傳統(tǒng)的協(xié)同過(guò)濾算法中,沒(méi)有考慮信息繭房效應(yīng)的發(fā)生。文獻(xiàn)[6]利用加權(quán)Slope One(Weighted slope one,WSO)算法對(duì)稀疏評(píng)分矩陣進(jìn)行填充,通過(guò)聚類算法對(duì)填充后的矩陣進(jìn)行用戶聚類,縮小目標(biāo)用戶搜索最近鄰的時(shí)間,提高了算法擴(kuò)展性。文獻(xiàn)[7]通過(guò)對(duì)用戶-項(xiàng)目矩陣進(jìn)行分析,采用K-means聚類算法把興趣偏好相似程度較高的用戶劃分到同一簇中,減少了推薦時(shí)用戶搜索最近鄰的時(shí)間。上述的聚類算法對(duì)用戶進(jìn)行聚類,提高了推薦的準(zhǔn)確度,但是隨機(jī)的聚類中心,會(huì)造成用戶的近鄰不穩(wěn)定,影響推薦的質(zhì)量。而且沒(méi)有對(duì)聚類結(jié)果中的少數(shù)類用戶進(jìn)行分析與深入考慮,很容易使這類用戶受困于信息繭房。
以往大量的實(shí)驗(yàn)研究表明,將用戶偏好因素考慮到算法中,能有效提高推薦的性能。Zhang等[8]提出一種將用戶偏好聚類的協(xié)同過(guò)濾算法,算法通過(guò)用戶對(duì)項(xiàng)目類型的平均評(píng)分構(gòu)造用戶偏好矩陣,并與用戶-項(xiàng)目矩陣合并,然后使用WSO算法填充評(píng)分?jǐn)?shù)據(jù)中的未評(píng)分項(xiàng)。王明佳等[9]提出了一種將用戶的顯式偏好和隱式偏好相融合的推薦算法,通過(guò)用戶評(píng)分抽象出用戶對(duì)項(xiàng)目的隱含偏好,最后將各個(gè)用戶在隱式和顯式偏好上的相似度加權(quán)。上述的算法能夠反映出用戶的興趣偏好,提高推薦的準(zhǔn)確度,但是忽略了時(shí)間對(duì)于用戶興趣的影響,用戶興趣隨時(shí)間的變化對(duì)用戶推薦的準(zhǔn)確度的影響很大。而且一味地探索用戶感興趣的項(xiàng)目,不采取應(yīng)對(duì)信息繭房負(fù)效應(yīng)的措施,不僅使少數(shù)類用戶受困于信息繭房,而且會(huì)加劇這個(gè)問(wèn)題。
基于以上分析,本文提出一種面向少數(shù)類用戶興趣演化的推薦算法,不僅提高對(duì)少數(shù)類用戶進(jìn)行推薦的準(zhǔn)確性,而且避免信息繭房負(fù)效應(yīng)產(chǎn)生。首先,本文利用用戶對(duì)項(xiàng)目類型的評(píng)分時(shí)間不同和評(píng)分的不同得到相應(yīng)的時(shí)間因子,將其融入到用戶對(duì)項(xiàng)目類型的偏好之中,并對(duì)興趣獨(dú)特或者興趣接觸面小的用戶采用興趣均值方式來(lái)緩解其興趣稀疏問(wèn)題。然后,利用均值的方式計(jì)算用戶對(duì)項(xiàng)目類型的興趣,通過(guò)計(jì)算用戶對(duì)項(xiàng)目各類型的興趣均值,結(jié)合項(xiàng)目評(píng)分均值和用戶自身評(píng)分均值來(lái)表示用戶的評(píng)分傾向,對(duì)未評(píng)分項(xiàng)進(jìn)行預(yù)測(cè),并填充到對(duì)應(yīng)的未評(píng)分項(xiàng)中。最后通過(guò)改進(jìn)的K-means聚類算法對(duì)具有不同興趣傾向的用戶進(jìn)行聚類,并對(duì)類簇中近鄰數(shù)量少的用戶(少數(shù)類用戶)進(jìn)行平衡處理,增加近鄰數(shù)量。
在推薦算法中,衡量用戶之間相似程度的方式通常是相似度計(jì)算。它能夠描述兩個(gè)同維度向量之間的相似程度。常用的相似度計(jì)算方式[10]包括余弦相似度計(jì)算、改進(jìn)的余弦相似度計(jì)算、皮爾遜相關(guān)系數(shù)計(jì)算。皮爾遜相關(guān)系數(shù)的計(jì)算方式如式(1)所示
(1)
評(píng)分預(yù)測(cè)是推薦算法中對(duì)用戶進(jìn)行預(yù)測(cè)推薦的一種有效方式[11]。通過(guò)評(píng)分預(yù)測(cè)可以預(yù)測(cè)出用戶潛在的興趣關(guān)注點(diǎn)。計(jì)算公式如式(2)所示
(2)
式中:sim(u,v) 表示用戶u、v之間的相似程度;Nu表示用戶u的最近鄰集合;|sim(u,v)|表示相似用戶數(shù)。
聚類是一種無(wú)監(jiān)督學(xué)習(xí),能夠根據(jù)規(guī)則自動(dòng)將數(shù)據(jù)分成若干類,在同一類中的數(shù)據(jù)對(duì)象之間的相似度高于在不同類中的數(shù)據(jù)對(duì)象之間的相似度。K-means算法采用歐式距離來(lái)度量數(shù)據(jù)對(duì)象之間的相似度,歐式距離d(x,y)計(jì)算方法如式(3)所示
(3)
式中:n表示數(shù)據(jù)對(duì)象的維度,d(x,y)的值越小表示數(shù)據(jù)對(duì)象之間的相似度越高。K-means算法雖然核心思想簡(jiǎn)明、容易實(shí)現(xiàn),但是也存在許多局限性。例如算法中的K值僅憑經(jīng)驗(yàn)來(lái)選取,很難找到最優(yōu)值;初始聚類的中心點(diǎn)選取不當(dāng),會(huì)導(dǎo)致聚類效果不穩(wěn)定。
針對(duì)以上問(wèn)題,文獻(xiàn)提出了改進(jìn)初始聚類中心的K-means聚類算法[11]。算法通過(guò)在數(shù)據(jù)空間分布上找到不同密度內(nèi)的K個(gè)點(diǎn)作為初始聚類中心。假設(shè)有數(shù)據(jù)集D,每個(gè)數(shù)據(jù)對(duì)象維度為n。改進(jìn)初始聚類中心的K-means聚類算法步驟如表1所示。
表1 改進(jìn)初始聚類中心的K-means聚類算法
本文提出的面向少數(shù)類用戶興趣演化的推薦算法由4個(gè)關(guān)鍵組成。
(1)解決原評(píng)分矩陣數(shù)據(jù)稀疏的問(wèn)題。通過(guò)用戶對(duì)項(xiàng)目的顯式行為把用戶對(duì)項(xiàng)目屬性的隱式偏好抽象出來(lái),得到用戶項(xiàng)目類型矩陣,然后以用戶對(duì)各項(xiàng)目類型的興趣均值來(lái)填充原評(píng)分矩陣中未評(píng)分項(xiàng)。
(2)捕捉用戶隨時(shí)間演化的興趣。利用用戶對(duì)事物遺忘的周期規(guī)律、興趣穩(wěn)定的時(shí)間窗口以及與項(xiàng)目的交互頻率得到用戶對(duì)不同項(xiàng)目類型的時(shí)間衰減因子,并與用戶項(xiàng)目類型矩陣融合,刻畫(huà)出不同用戶興趣演化的不同規(guī)律。
(3)解決少數(shù)類用戶數(shù)過(guò)少的問(wèn)題。通過(guò)改進(jìn)的K-means算法對(duì)興趣演化后的用戶進(jìn)行聚類,聚類結(jié)果中存在用戶數(shù)量極少的用戶。將以少數(shù)類的簇心為圓心,離其簇心最遠(yuǎn)的用戶的距離為半徑的圓作為少數(shù)類用戶的邊界。把包含在邊界內(nèi)的多數(shù)類用戶以有放回采樣的方式納入少數(shù)類,并逐漸增大邊界,直到少數(shù)類用戶數(shù)達(dá)到各類簇中用戶數(shù)的平均水平,從而達(dá)到平衡少數(shù)類用戶數(shù)量的效果。
(4)生成目標(biāo)用戶的推薦。將用戶數(shù)據(jù)預(yù)處理后的用戶評(píng)分矩陣與聚類得到的用戶近鄰結(jié)合,并利用協(xié)同過(guò)濾算法來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)項(xiàng)目的評(píng)分,選取預(yù)測(cè)評(píng)分值最高的N個(gè)項(xiàng)目推薦給用戶。
本文的算法整體框架圖如圖1所示。
圖1 推薦算法的整體框架圖
在傳統(tǒng)協(xié)同過(guò)濾算法中,用戶對(duì)項(xiàng)目的共同評(píng)分項(xiàng)目數(shù)對(duì)算法的性能影響很大。項(xiàng)目交集越多,算法的效果越好。實(shí)際上,用戶之間的項(xiàng)目交集很小。但是,可以根據(jù)用戶的顯式行為推測(cè)出用戶所隱含的偏好。比如用戶u1看過(guò)電影“復(fù)仇者聯(lián)盟”和“雷神”,并給出了不錯(cuò)的評(píng)價(jià),而用戶u2看過(guò)“蜘蛛俠”和“綠巨人”,同樣也給出了不錯(cuò)的評(píng)分。因?yàn)檫@4部電影類型很相似,都具有動(dòng)作、喜劇等元素,兩個(gè)用戶都表達(dá)出喜愛(ài)的態(tài)度。因此,從用戶隱式偏好的角度出發(fā),提取出用戶之間更多的交互數(shù)據(jù),提高推薦效果。
從用戶的對(duì)項(xiàng)目的評(píng)分(顯式行為)可以計(jì)算出用戶對(duì)項(xiàng)目類型(隱式行為)的評(píng)分。對(duì)于用戶u已評(píng)分的項(xiàng)目集合Iu,每個(gè)項(xiàng)目i具有多個(gè)類別Tt,用戶u對(duì)項(xiàng)目類別Tt平均評(píng)分為Rut,計(jì)算公式如式(4)所示
(4)
式中:it的值為1或者0,值為1表示項(xiàng)目i具有類型Tt,值為0表示項(xiàng)目i不含類型Tt;numt表示用戶u已評(píng)分項(xiàng)目具有的類別總數(shù)。
為了解決用戶-項(xiàng)目矩陣中數(shù)據(jù)稀疏的問(wèn)題,本文對(duì)用戶-項(xiàng)目矩陣進(jìn)行預(yù)處理。通過(guò)式(4)可以得到用戶對(duì)項(xiàng)目類型的均值偏好,通過(guò)均值偏好可以近似填充用戶未評(píng)分的項(xiàng)目,數(shù)據(jù)填充方式如式(5)所示
(5)
(6)
在給用戶推薦信息的時(shí)候,如果不考慮用戶的興趣隨時(shí)間變化就會(huì)導(dǎo)致推薦信息不準(zhǔn)確[12]。例如小時(shí)候喜歡看動(dòng)畫(huà)片的人群,在成長(zhǎng)的過(guò)程中,可能由喜歡動(dòng)畫(huà)片到愛(ài)情片再到科幻片。每個(gè)時(shí)期的興趣關(guān)注點(diǎn)都可能發(fā)生變化,一方面可能來(lái)自年齡的變化,對(duì)電影的關(guān)注點(diǎn)有所差異,另一方面則是因?yàn)樯磉吶巳旱呐d趣不同,逐漸去關(guān)注身邊環(huán)境中其他人的興趣,存在著從眾心理。但也會(huì)因?yàn)閭€(gè)人此刻的心情,而出現(xiàn)短暫式的興趣關(guān)注點(diǎn),就像剛剛度過(guò)疲勞期的用戶,就傾向于關(guān)注輕松愉快的主題。
有文獻(xiàn)表明,人的興趣演化是一種普遍現(xiàn)象,變化的趨向也各有不同。易受外界影響的興趣往往是比較短暫的,用戶更深層次的興趣才能經(jīng)受時(shí)間考驗(yàn)(即在很長(zhǎng)一段時(shí)間內(nèi),對(duì)某幾個(gè)類型電影的關(guān)注度絲毫沒(méi)有減弱)。例如很多經(jīng)歷過(guò)戰(zhàn)爭(zhēng)年代的人,很容易關(guān)注抗戰(zhàn)題材的電影,這種題材的質(zhì)量高低、上映時(shí)間,都不會(huì)影響其關(guān)注。與其說(shuō)興趣促使這類用戶關(guān)注這類型電影,不如說(shuō)情懷使他時(shí)刻關(guān)注。因此,在考慮影響用戶興趣演化的核心要素時(shí),除了考慮用戶興趣值隨時(shí)間衰減,還應(yīng)當(dāng)考慮興趣值穩(wěn)定時(shí)間和交互行為。
文獻(xiàn)[13]提出了一種融入時(shí)間窗口的指數(shù)衰減函數(shù),利用時(shí)間窗口來(lái)穩(wěn)定一段時(shí)間內(nèi)用戶對(duì)項(xiàng)目類型的興趣值。本文提出一種改進(jìn)融入時(shí)間窗口的指數(shù)衰減函數(shù)算法,讓用戶興趣受時(shí)間窗口和用戶項(xiàng)目交互信息共同影響,其計(jì)算方式如式(7)所示
(7)
利用式(4)得到的時(shí)間權(quán)重,融入到用戶對(duì)項(xiàng)目類型的興趣中,可以描述出用戶隨時(shí)間變化的興趣值。并且根據(jù)用戶與項(xiàng)目類型的接觸頻率和接觸時(shí)間,能夠表示出用戶對(duì)該項(xiàng)目類型不同時(shí)間段的興趣值。用戶隨時(shí)間推移的最終興趣數(shù)值如式(8)所示
(8)
式中:Nt表示用戶評(píng)價(jià)同一項(xiàng)目類型Tt的次數(shù);Put表示用戶對(duì)項(xiàng)目類型Tt的喜好程度,隨著接觸項(xiàng)目類型的次數(shù)多了,受時(shí)間的影響就越小;t表示項(xiàng)目類型總數(shù);rutj表示第j次對(duì)該項(xiàng)目類型的評(píng)分。用戶項(xiàng)目類型矩陣是以用戶和項(xiàng)目類型為行列標(biāo)識(shí)、Put為元素的矩陣。
通過(guò)改進(jìn)的K-means算法對(duì)融合用戶深層次興趣的用戶項(xiàng)目類型矩陣進(jìn)行用戶聚類。聚類得到的類簇中有大量近鄰數(shù)量的類簇,也有很少的近鄰數(shù)量的類簇。鄰居數(shù)量少的類簇中的用戶稱為少數(shù)類用戶。對(duì)于少數(shù)類用戶,其近鄰太少,最直接的影響就是在對(duì)其推薦的時(shí)候推薦選擇項(xiàng)少。選擇項(xiàng)是用戶是否會(huì)產(chǎn)生信息繭房負(fù)效應(yīng)的最重要的判斷依據(jù)。選擇項(xiàng)過(guò)少,這類用戶就會(huì)被禁錮在個(gè)性化推薦的信息繭房中,整個(gè)少數(shù)類用戶中的其他用戶也會(huì)產(chǎn)生類似的效應(yīng),不僅僅是產(chǎn)生群體極化現(xiàn)象,而且是產(chǎn)生信息繭房負(fù)效應(yīng)的群體極化,這樣會(huì)將一類人群禁錮在同一信息繭房之中。因此,為了避免此情況的產(chǎn)生,在進(jìn)行推薦之前再平衡數(shù)據(jù)集。
不平衡數(shù)據(jù)集是指數(shù)據(jù)集中的不同類別樣本數(shù)量極度不平衡,這與本文使用改進(jìn)的K-means算法得到的聚類結(jié)果中類簇用戶數(shù)量不平衡極其相似。在對(duì)用戶進(jìn)行推薦時(shí),近鄰數(shù)量多的用戶在達(dá)到一定的近鄰用戶數(shù)的時(shí)候其推薦準(zhǔn)確度趨于穩(wěn)定,但這并不表示,其余的近鄰就不會(huì)影響其推薦準(zhǔn)確度。推薦是多元化信息的結(jié)合,呈動(dòng)態(tài)化的,所以下一時(shí)間段對(duì)目標(biāo)用戶產(chǎn)生重要影響的可能是其他的近鄰。近鄰數(shù)量多的用戶,不僅少有可能困于信息繭房,還可適應(yīng)多元化世界的變化。而近鄰數(shù)量少的用戶則不同,近鄰數(shù)量過(guò)少,直接會(huì)導(dǎo)致推薦的選擇項(xiàng)少和信息繭房現(xiàn)象的產(chǎn)生。多數(shù)類用戶和少數(shù)類用戶之間是有一定聯(lián)系的,他們之間存在興趣面交叉的現(xiàn)象,例如少數(shù)類用戶感興趣的項(xiàng)目類型就幾個(gè),而多數(shù)類用戶中存在對(duì)少數(shù)類用戶感興趣的項(xiàng)目類型感興趣的用戶,所以將這類存在在多數(shù)類用戶中的與少數(shù)類用戶有交叉興趣面的用戶作為少數(shù)類用戶的增添鄰居最為合適。平衡少數(shù)類用戶的算法如表2所示,少數(shù)類中用戶數(shù)的平衡過(guò)程如圖2所示。
表2 平衡少數(shù)類用戶的算法
在預(yù)測(cè)評(píng)分時(shí),當(dāng)預(yù)測(cè)用戶存在于多個(gè)類中,選取該用戶到各類中心點(diǎn)距離最小的類,將該類中的用戶作為近鄰。如圖2所示,具有相同形狀的圖形屬于同一類簇,少數(shù)類1和少數(shù)類2按照上表的規(guī)則擴(kuò)大自身的邊界,將融入邊界的多數(shù)類用戶作為自己的擴(kuò)展近鄰,該近鄰用戶不會(huì)從多數(shù)類中移除,只是復(fù)制給少數(shù)類用戶,幫助少數(shù)類拓展興趣面的同時(shí)提高對(duì)其推薦的準(zhǔn)確性。
圖2 少數(shù)類中用戶數(shù)的平衡過(guò)程
本文算法在得到用戶近鄰平衡化結(jié)果和預(yù)處理的矩陣后,利用傳統(tǒng)協(xié)同過(guò)濾算法對(duì)目標(biāo)用戶進(jìn)行推薦。如式(1)所示,通過(guò)近鄰用戶和預(yù)處理后的矩陣,得到近鄰用戶之間的相似度。如式(2)所示,利用目標(biāo)用戶與近鄰的相似度以及用戶的平均評(píng)分來(lái)預(yù)測(cè)出目標(biāo)用戶對(duì)項(xiàng)目的評(píng)分,然后選取評(píng)分最高的N個(gè)物品給目標(biāo)用戶推薦。本文的推薦算法描述如表3所示。
表3 面向少數(shù)類用戶興趣演化的推薦算法
本文數(shù)據(jù)集來(lái)自GroupLens研究小組創(chuàng)建的電影評(píng)分?jǐn)?shù)據(jù)集。該數(shù)據(jù)集包含了若干規(guī)模大小不一的數(shù)據(jù)集。本文使用了MovieLens 100K的數(shù)據(jù)集進(jìn)行算法性能試驗(yàn)。該數(shù)據(jù)集包含了1 943名用戶對(duì)電影的評(píng)分,評(píng)分值范圍是1~5之間的整數(shù)。每個(gè)電影可能包含多個(gè)電影類型。本實(shí)驗(yàn)把數(shù)據(jù)集按照均勻分布隨機(jī)分成N組,其中N取10,挑選一組作為測(cè)試集,其余的數(shù)據(jù)作為訓(xùn)練集。為保證評(píng)測(cè)指標(biāo)不是過(guò)擬合或者誤差的結(jié)果,進(jìn)行了N次交叉實(shí)驗(yàn),并以N次實(shí)驗(yàn)所得評(píng)測(cè)指標(biāo)的平均值作為最終的評(píng)測(cè)標(biāo)準(zhǔn)。
本文采用平均絕對(duì)誤差(Mean absolute error,MAE)和均方根誤差(Root mean square error,RMSE)作為評(píng)價(jià)本文算法性能的指標(biāo)。MAE和RMSE的值越小,預(yù)測(cè)誤差就越小。計(jì)算公式分別如式(9)和式(10)所示
(9)
(10)
式中:用戶u對(duì)項(xiàng)目i的真實(shí)評(píng)分為rui,rui={ru1,ru2,ru3,…,run};用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分值為r′ui,r′ui={r′u1,r′u2,r′u3,…,r′un}。
本文首先對(duì)實(shí)驗(yàn)所涉及到的參數(shù)進(jìn)行討論,需要的參數(shù)有3個(gè),分別為:影響到改進(jìn)K-means算法的初始聚類中心和用戶聚類數(shù)的占比率α;反映興趣穩(wěn)定時(shí)間窗口的參數(shù)Tw;表示用戶興趣衰減權(quán)重的ω。
實(shí)驗(yàn)1通過(guò)占比率α=0.15和MAE的最小值來(lái)確定參數(shù)Tw值。占比率α=0.15是由改進(jìn)K-means算法中得到的最優(yōu)參數(shù)。如圖3所示,當(dāng)ω=1/50,Tw=8時(shí),得到最小MAE值;當(dāng)ω=1/60,Tw=7時(shí),得到最小MAE值;當(dāng)ω=1/70,Tw=7時(shí),得到最小MAE值。由此可知,當(dāng)Tw=7時(shí),最小MAE值樣本較多,所以本文算法選擇Tw=7作為標(biāo)準(zhǔn),表示一周內(nèi)用戶興趣不發(fā)生變化。
圖3 不同參數(shù)Tw和參數(shù)ω對(duì)應(yīng)的MAE值趨勢(shì)圖
實(shí)驗(yàn)2由穩(wěn)定時(shí)間窗口Tw和MAE的最小值來(lái)確定參數(shù)ω的值。當(dāng)Tw=7時(shí),通過(guò)改變?chǔ)氐闹祦?lái)推出Tw和ω的最優(yōu)組合,將ω的值分別設(shè)置為1/10、1/20、1/30、1/40、1/50、1/60、1/70、1/80,如圖4所示。當(dāng)Tw=7,ω=1/60時(shí),MAE值最優(yōu)。由此,本文算法設(shè)置Tw取值為7,ω取值為1/60。
圖4 不同ω值對(duì)應(yīng)的MAE值趨勢(shì)圖
實(shí)驗(yàn)3本文算法與基于用戶的協(xié)同過(guò)濾算法(UCF)[14]、基于K-means算法的協(xié)同過(guò)濾算法(KMUCF)[15]、基于用戶聚類和稀疏矩陣填充的推薦算法(CFUCF)[16]進(jìn)行了對(duì)比與分析,由此表明本文算法在基于用戶的協(xié)同過(guò)濾算法基礎(chǔ)上所做的改進(jìn)工作比UCF、KMUCF和CFUCF 3個(gè)算法得到的推薦效果好。為了比較各算法的MAE和RMSE穩(wěn)定值大小的差異,設(shè)置最近鄰個(gè)數(shù)從25遞增到45,遞增間隔為5。表4描述了MAE和RMSE的值隨用戶最近鄰個(gè)數(shù)逐漸趨于穩(wěn)定時(shí)的變化,N表示最近鄰個(gè)數(shù)。由表可知,本文算法相對(duì)于UCF算法的MAE值降低了2.07%,相對(duì)于KMUCF算法的MAE值降低了0.95%,相對(duì)于CFUCF算法的MAE值降低了0.14%。在RMSE評(píng)價(jià)標(biāo)準(zhǔn)上本文算法最好,相對(duì)于UCF算法降低了2.74%,相對(duì)于KMUCF算法降低了1.44%,相對(duì)于CFUCF算法降低了0.34%。
表4 MAE和RMSE值的變化
圖5反映了最近鄰個(gè)數(shù)的變化對(duì)MAE和RMSE值的影響,實(shí)驗(yàn)設(shè)置最近鄰個(gè)數(shù)從5遞增到45,遞增間隔為5。由實(shí)驗(yàn)可知,MAE和RMSE的值慢慢趨于穩(wěn)定狀態(tài),而且在不同的最近鄰個(gè)數(shù)下,本算法得出的MAE和RMSE值都明顯比其他算法的MAE和RMSE值低,且當(dāng)最近鄰個(gè)數(shù)為30時(shí),各算法的MAE和RMSE值都趨于穩(wěn)定。由此說(shuō)明本文算法在考慮用戶行為和時(shí)間因素影響的興趣演化時(shí)會(huì)得到更好的效果。
圖5 算法的MAE和RMSE值的趨勢(shì)圖
本文的算法針對(duì)傳統(tǒng)算法中忽略推薦的時(shí)效性而影響推薦的準(zhǔn)確性、用戶可能受困于信息繭房和聚類中心不穩(wěn)定導(dǎo)致的用戶鄰居不穩(wěn)定等問(wèn)題,提出一種面向少數(shù)類用戶興趣演化的推薦算法。利用時(shí)間因子和用戶行為頻率分析用戶深層次興趣,通過(guò)優(yōu)化初始聚類中心的K-means聚類算法對(duì)深層次興趣相似的用戶聚類,使得用戶鄰居極其穩(wěn)定。采用平衡數(shù)據(jù)集方法將少數(shù)類用戶與多數(shù)類用戶關(guān)聯(lián),生成更多少數(shù)類用戶的最近鄰集合,提高少數(shù)類用戶的推薦人性化。通過(guò)實(shí)驗(yàn)可知,本文的算法與傳統(tǒng)算法比較明顯提升了推薦的準(zhǔn)確度,同時(shí)也避免少數(shù)類用戶受困于信息繭房之中,使得算法面向的人群更加寬廣,更富有人性化。本文主要研究用戶與項(xiàng)目之間因交互而產(chǎn)生的隱含關(guān)系,但用戶的屬性和項(xiàng)目的屬性本身存在內(nèi)在的聯(lián)系。因此,后期需通過(guò)客觀事實(shí)和規(guī)律來(lái)捕捉用戶興趣與項(xiàng)目之間的關(guān)系,提高推薦的準(zhǔn)確性。