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

?

基于改進(jìn)聚類和矩陣分解的協(xié)同過濾推薦算法

2018-06-20 09:30王永貴宋真真肖成龍
計(jì)算機(jī)應(yīng)用 2018年4期
關(guān)鍵詞:聚類向量矩陣

王永貴,宋真真,肖成龍

0 引言

在互聯(lián)網(wǎng)時(shí)代,用戶對信息的需求數(shù)量得到了滿足,但是用戶在搜索信息時(shí)無法直接有效地獲取到他們真正想要的信息,其實(shí)質(zhì)反而是降低了用戶對信息的使用效率,即人們由信息匱乏的時(shí)代進(jìn)入到了信息過載的時(shí)代。推薦系統(tǒng)作為一種能有效解決信息過載問題的信息過濾手段[1],自20世紀(jì)90年代初,一經(jīng)提出便受到了越來越多的關(guān)注。Tapestry郵件過濾系統(tǒng)[2]被認(rèn)為是最早提出的協(xié)同過濾推薦系統(tǒng),其主要目的是盡可能地產(chǎn)生有限的、滿足用戶喜好的項(xiàng)目推薦列表,為用戶產(chǎn)生推薦。推薦系統(tǒng)在亞馬遜、淘寶、新聞和游戲網(wǎng)站中的使用,在滿足用戶個(gè)性化需求的同時(shí),自身也收益頗豐。

協(xié)同過濾推薦算法是推薦系統(tǒng)中應(yīng)用最廣泛、最成功的個(gè)性化推薦技術(shù)之一[3]。該算法的推薦思想首先是利用用戶的評分信息及其歷史興趣來計(jì)算用戶之間的相似度,使用與該用戶最相近的鄰居的喜好來預(yù)測該用戶對某商品感興趣的程度,然后根據(jù)該用戶對商品的興趣程度將商品進(jìn)行排序,最后將排好序的商品推薦給該用戶[4]??梢蕴幚砣缫纛l、視頻這種非結(jié)構(gòu)化的復(fù)雜對象[5],但在大數(shù)據(jù)時(shí)代下,該傳統(tǒng)算法在實(shí)際的推薦系統(tǒng)中準(zhǔn)確度并不高,而造成這種的情況的主要因素有:大量的稀疏數(shù)據(jù)、推薦實(shí)時(shí)性不強(qiáng)和算法的可擴(kuò)展性較差等。

為此許多學(xué)者作了更加深入的研究,提出了一些改進(jìn)方法并取得了一些成就,例如,在文獻(xiàn)[6-8]中提出了改進(jìn)的相似度計(jì)算方法,提高了推薦系統(tǒng)的精度;使用基于矩陣分解(如奇異值分解[9-10]和非負(fù)矩陣分解[11-12]等)的協(xié)同過濾算法有效地解決了數(shù)據(jù)稀疏問題;在協(xié)同過濾算法中加入聚類方法,使推薦系統(tǒng)的實(shí)時(shí)性不足的問題得到了改善[13]。文獻(xiàn)[14-15]使用k-means聚類對用戶或項(xiàng)目(商品)分別進(jìn)行一定簇?cái)?shù)的劃分,降低了查找最相似近鄰的成本。文獻(xiàn)[16]考慮到用戶的評分具有主觀性,容易受周圍環(huán)境的影響,基于項(xiàng)目信息具有較為穩(wěn)定的特性,提出了基于項(xiàng)目信息進(jìn)行預(yù)測的協(xié)同過濾推薦算法;在計(jì)算用戶或者項(xiàng)目的相似度時(shí),用項(xiàng)目屬性來來表征項(xiàng)目,反映了用戶對項(xiàng)目屬性的興趣點(diǎn),提高了推薦的準(zhǔn)確性。文獻(xiàn)[17]中提出了項(xiàng)目屬性集,把用戶評分和項(xiàng)目屬性相結(jié)合,使得聚類效果更加可靠,可以在一個(gè)簇中顯示用戶的興趣,降低了相似度計(jì)算時(shí)間;但算法沒有考慮到用戶的主觀興趣隨著時(shí)間有改變的可能,這種情況下對用戶進(jìn)行分簇聚類不能真實(shí)地反映用戶的興趣變化,同時(shí)冷啟動(dòng)中的新項(xiàng)目問題也得不到解決。

鑒于推薦算法中存在的上述問題,本文提出一種改進(jìn)聚類和矩陣分解的協(xié)同過濾推薦算法(Collaborative Filtering recommendation algorithm based on Improved Clustering and Matrix Factorization, ICMF-CF)。該算法使用矩陣分解來降低維度以及進(jìn)行矩陣填充,引入時(shí)間衰減函數(shù)預(yù)處理用戶評分,引入多維的項(xiàng)目屬性來表征項(xiàng)目,通過k-means聚類算法對用戶和項(xiàng)目分別進(jìn)行聚類。

1 協(xié)同過濾推薦算法

1.1 基于近鄰的協(xié)同過濾推薦算法

基于近鄰的協(xié)同過濾包括兩種:一種是基于用戶的,即如果有和目標(biāo)用戶興趣愛好相似的人購買了某個(gè)商品(或者項(xiàng)目),那么此用戶就有較大概率購買該商品(或者該項(xiàng)目);另一種是基于項(xiàng)目的,即如果某用戶喜歡某個(gè)商品,當(dāng)該用戶看到與此商品類似的其他商品,并且該商品獲得的評分也很高時(shí),該用戶購買該商品的概率會(huì)很大。

1.2 相似度計(jì)算

用戶的評分?jǐn)?shù)據(jù)通常矩陣Rmn表示,用戶集合U={u1,u2,…,um}和項(xiàng)目集合I={i1,i2,…,in}。其中:rui表示用戶u對項(xiàng)目(或者商品)i的評分值,分值范圍是1~5的整數(shù)。

(1)

傳統(tǒng)的協(xié)同過濾推薦算法首先根據(jù)用戶評分矩陣計(jì)算用戶之間的相似度,將相似度高的候選集生成Top-N推薦列表推薦給用戶。最近鄰選擇的精準(zhǔn)度在一定程度上決定了推薦算法的質(zhì)量,即相似度測量方法對于協(xié)同過濾算法非常重要。目前,被用在協(xié)同過濾推薦算法中的相似度測量方法[16]有:矢量余弦相似性、調(diào)整的余弦相似性和皮爾遜相關(guān)相似性。各相似度計(jì)算方法如下。

矢量余弦相似性:

(2)

調(diào)整的余弦相似性:

(3)

皮爾遜相關(guān)相似性:

(4)

(5)

傳統(tǒng)的相似度計(jì)算方法過程主要取決于用戶-項(xiàng)目評分矩陣。但是,實(shí)際的評分矩陣往往是極其稀疏的,依照原有的用戶-項(xiàng)目相似度測量模式無法反映其實(shí)際的相似度,找到的最近鄰是不可靠的,會(huì)導(dǎo)致最終的推薦結(jié)果不準(zhǔn)確。

1.3 k-means聚類算法

聚類是一個(gè)物理集合或?qū)ο蟪橄蟪上嗨频念?對象類盡可能多,且類與類之間不相交。聚類模型被引入到協(xié)同過濾算法中,將類似的用戶或項(xiàng)目聚集到相同的簇中,直接在每個(gè)簇內(nèi)部進(jìn)行最近鄰的查詢,不必像傳統(tǒng)的協(xié)同過濾算法要在整個(gè)數(shù)據(jù)集中進(jìn)行查詢,大大降低了搜索范圍和計(jì)算量。

實(shí)際上,聚類算法已被廣泛應(yīng)用于推薦系統(tǒng),但是到目前為止,還沒有一個(gè)聚類算法可以完成各種數(shù)據(jù)的聚類,不同的應(yīng)用程序有不同的聚類算法。k-means聚類算法[8]被廣泛地使用,其核心是找出k個(gè)聚類中心點(diǎn){f1,f2,…,fk},使得每個(gè)數(shù)據(jù)點(diǎn)xi和它最近的聚類中心fv的平方距離以及(偏差E)最小化,確保相似度高的盡可能聚集在同一個(gè)簇中。由于k-means聚類算法簡單有效,適用大數(shù)據(jù)集,可以很好地滿足協(xié)同過濾算法的需求,其具體步驟如算法1。

算法1k-means聚類算法。

1)初始化:隨機(jī)指定k個(gè)聚類中心{f1,f2,…,fk}。

2)賦值xi:為每個(gè)樣本xi找到最近的聚類中心fv并將其分配給該類。

3)固定fw:將每個(gè)樣本fw移動(dòng)到其所屬的簇中。

5)驗(yàn)證E是否收斂:如果E收斂,則算法終止并返回{f1,f2,…,fk};否則返回2)。

1.4 矩陣分解

奇異值分解(Singular Value Decomposition, SVD)法很難用在實(shí)際推薦系統(tǒng)中的原因體現(xiàn)在兩個(gè)方面:一方面,在使用SVD時(shí),要求對于存在缺失值的用戶評分矩陣進(jìn)行簡單的補(bǔ)全,而補(bǔ)全后的評分矩陣需要巨大的存儲(chǔ)服務(wù)器空間,在實(shí)際的系統(tǒng)中很難滿足如此大的空間需求;另一方面,SVD在大規(guī)模密集矩陣中的計(jì)算復(fù)雜度非常高,而實(shí)際的系統(tǒng)中很多都是千萬的用戶和幾百萬的項(xiàng)目,這就使得SVD在這種情況下會(huì)很慢。

矩陣分解中,每個(gè)用戶和項(xiàng)目(或者商品)都被描述成一個(gè)特征向量,記為:qu,pi∈Rd,用戶在對項(xiàng)目評分的過程中往往是一個(gè)主觀的過程,會(huì)受到一些潛在因素的影響;根據(jù)這種實(shí)際情況,用戶u對項(xiàng)目i的預(yù)測分值可表示為式(6):

(6)

2 本文算法

本文引入了矩陣分解來對矩陣進(jìn)行降維以及矩陣的填充以解決矩陣稀疏的問題;引入時(shí)間衰減函數(shù)提高預(yù)測用戶興趣的變化情況;引入k-means聚類通過項(xiàng)目屬性和用戶評分對項(xiàng)目屬性進(jìn)行劃簇,減少最近鄰查詢范圍和解決新項(xiàng)目的問題。這里的新項(xiàng)目是指那些還沒有被評分的新出現(xiàn)的項(xiàng)目(或新的商品)。

2.1 算法描述

設(shè)用戶集U={u1,u2,…,uk},項(xiàng)目集H={h1,h2,…,hk},項(xiàng)目屬性集N={a1,a2,…,ak}。項(xiàng)目屬性矩陣Ay×n為:

(7)

當(dāng)Aij=1時(shí),表示項(xiàng)目hi包含屬性aj;Aij=0時(shí)表示項(xiàng)目hi不包括屬性aj。

文獻(xiàn)[19]已經(jīng)研究發(fā)現(xiàn),用戶興趣和評分時(shí)間呈負(fù)相關(guān),或著說時(shí)間越長評分的有效性越弱,因此,本文引入時(shí)間損失函數(shù)來反映用戶興趣隨時(shí)間的變化趨勢。時(shí)間損失函數(shù)如式(8)所示:

f(t)=e-λt;t≥0

(8)

其中:λ表示損失因子,它的值是不固定的,根據(jù)不同的情況來定。

假設(shè)用戶ui對s個(gè)項(xiàng)目有評分,這s個(gè)項(xiàng)目的屬性矩陣可以按照式(7)得到,并記為(Ai)sr。用戶ui對s個(gè)項(xiàng)目的評分,可以用如下的對角矩陣來表示:

(Ai)ss=diag(rij,ri2,…,ris)

(9)

考慮到用戶評分中特征的貢獻(xiàn)度,以及用戶興趣隨著時(shí)間的推移而下降的情況,用戶ui加入時(shí)間損失的評分矩陣可以表示為:

(Bi)ss=diag(f(t1)rij,f(t2)ri2,…,f(ts)ris)

(10)

其中:ti表示項(xiàng)目pi得到評分的時(shí)間與項(xiàng)目pi被選擇的時(shí)間的差值。

用戶ui的興趣特征矩陣可以綜合式(9)~(10)得到:

(Ci)sr=(Bi)ss×(Ai)sr

(11)

將興趣特征矩陣(Ci)sr轉(zhuǎn)換成興趣向量(Di)lr:

(12)

項(xiàng)目pi的屬性向量Ej可以從式(7)得到:

Ej=[Aj1,Aj2,…,Ajr]

(13)

使用k-means聚類算法對用戶興趣向量進(jìn)行聚類,同時(shí)根據(jù)屬性向量Ej對項(xiàng)目進(jìn)行聚類,具體步驟如下:

1)預(yù)處理數(shù)據(jù)集,并根據(jù)式(7)~(13),分別構(gòu)建用戶ui的興趣向量(Di)lr和項(xiàng)目hi的屬性向量Ej。

2)采用k-means聚類算法聚類用戶向量,得到Ku(用戶u的K個(gè)簇)并記為FU。

3)采用k-means聚類算法聚類屬性向量,得到Ki(項(xiàng)目i的K個(gè)簇)并記為FI。

2.2 改進(jìn)的聚類

使用(Di)lr來表征用戶興趣,基于用戶的聚類算法如算法2所示。

算法2 基于用戶的聚類算法。

輸入 用戶集U,項(xiàng)目集I,用戶評分矩陣Rmy,項(xiàng)目屬性矩陣Ayr,時(shí)間損失函數(shù)f(t),聚類簇?cái)?shù)Ku。

輸出Ku的聚類,記為FU。

1)任取一個(gè)用戶:ui∈U,用戶ui已評分的項(xiàng)目集記為S。

2)根據(jù)用戶評分矩陣Rmy和項(xiàng)目集S,為用戶ui構(gòu)建對角矩陣(Λi)ss=diag(ri1,ri2,…,ris)。

3)結(jié)合用戶ui和項(xiàng)目的評分時(shí)間,構(gòu)建用戶ui的時(shí)間衰減矩陣:(φi)ss=diag(f(t1)ri1,f(t2)ri2,…,f(ts)ris)。

4)根據(jù)項(xiàng)目屬性矩陣Ayr和項(xiàng)目集S,為用戶ui構(gòu)建評估項(xiàng)目屬性矩陣(Ai)sr。

5)用戶ui的興趣特征矩陣為:(ψi)sr=(Φi)ss·(Ai)sr。

7)對任意的ui∈U,執(zhí)行步驟1)~6)。

8)用戶興趣向量(Di)lr用于表征用戶,并使用算法1進(jìn)行用戶聚類。

9)聚類中心不再改變時(shí)輸出結(jié)果FU。

算法2完成了用戶的聚類,項(xiàng)目聚類是相似的,也更加簡潔,僅僅使用項(xiàng)目的特征向量θj代替用戶的興趣向量(Di)lr,然后完成聚類,再通過算法1輸出結(jié)果FI。

2.3 改進(jìn)的相似度計(jì)算方法

在一般的情況下用戶之間的共同評分項(xiàng)是很少的,由于用戶的評分是相近的,這就導(dǎo)致最終計(jì)算的相似度依然很高。本文在計(jì)算用戶之間的相似度時(shí),使用用戶興趣向量取代用戶評分向量;考慮到項(xiàng)目屬性一般是固定不變的,可以在高維中表示項(xiàng)目,因此,在計(jì)算項(xiàng)目之間的相似度時(shí),使用項(xiàng)目屬性矩陣取代用戶評分矩陣。

本文用皮爾遜相關(guān)系數(shù)來計(jì)算用戶相似度,同時(shí)使用用戶興趣向量(Di)l×r取代用戶評分向量,公式如下:

(14)

在計(jì)算項(xiàng)目間相似度時(shí),本文用余弦相似度來計(jì)算,同時(shí)使用屬性向量Ej取代用戶評分向量,公式如下:

(15)

其中:Aii和Aji分別表示項(xiàng)目hi和項(xiàng)目hj是否包含項(xiàng)目屬性ax,值為1時(shí),表示包含;值為0時(shí),表示不包含。

2.4 本文算法的實(shí)現(xiàn)步驟

本文算法ICMF-CF的實(shí)現(xiàn)步驟可以分為以下兩個(gè)階段:推薦項(xiàng)目候選集的選擇和在線Top-N推薦。

2.4.1 推薦項(xiàng)目候選集的選擇

通過用戶聚類將相似的用戶聚到一個(gè)簇,用戶的最近鄰就可以直接在簇中進(jìn)行搜索,推薦項(xiàng)目候選集的選擇建立在用戶項(xiàng)目聚類的基礎(chǔ)上會(huì)更加可靠,詳細(xì)步驟如算法3所示。

算法3 基于改進(jìn)用戶相似度的算法。

1)假設(shè)用戶u所在的簇為Fu,對于任意的ui∈Fu,建立用戶興趣向量(Di)l×r(式(12))。

2)對于任意的ui∈Fu,使用改進(jìn)的相似度計(jì)算方法(式(14))計(jì)算用戶間的相似度,選擇相似度最高的Ku個(gè)用戶作為最近鄰,記為Fneiu。

3)根據(jù)Fuk和用戶u,從用戶評分矩陣Rmn得到已被用戶u評分的項(xiàng)目集pu。

4)任取一個(gè)項(xiàng)目hj∈pu,找到該項(xiàng)目所屬的簇Fhj,對任意的Ahj∈Fhj,構(gòu)建其項(xiàng)目屬性向量Ej(式(13))。

5)對于任意的ij∈Fhj,使用改進(jìn)的相似度計(jì)算方法(式(15))計(jì)算項(xiàng)目間的相似度,選擇相似度最高的Ki個(gè)項(xiàng)目作為最近鄰,記為Fneihj。

6)獲取步驟5)的結(jié)果集:Fneih=Fneih1∪Fneih2∪…∪Fneihn。

7)首先把在Fneih中用戶已經(jīng)評價(jià)過的項(xiàng)目去掉,然后將相似度最高的Kr個(gè)項(xiàng)目作為用戶u的推薦候選集,記為Wu。

2.4.2 在線Top-N推薦

為了給用戶u產(chǎn)生推薦結(jié)果,需要在用戶u的推薦候選集Wu中進(jìn)行評分預(yù)測,生成Top-N推薦列表。本文使用梯度下降法對評分矩陣進(jìn)行填充,由式(6)計(jì)算用戶u對項(xiàng)目i的評分預(yù)測,可以被簡寫成:

(16)

預(yù)測值接近實(shí)際評分值就是使其差值最小,即目標(biāo)函數(shù):

(17)

為了學(xué)習(xí)到所有的參數(shù),使得標(biāo)準(zhǔn)化的平方誤差最小,如下所示:

(18)

(19)

(20)

然后利用隨機(jī)梯度下降法對bi、qu分別進(jìn)行迭代更新:

(21)

其中:γ是學(xué)習(xí)率,迭代的終止條件是當(dāng)前后兩次函數(shù)值變化的絕對值小于指定閾值。通過這種方式完成了對矩陣的填充,矩陣的每一行都被量化來表征用戶評分,以用戶u為例,可以描述為:(ru1,ru2,…,rui,…,ruD),i是項(xiàng)目索引,產(chǎn)生推薦列表,對用戶u進(jìn)行推薦。本文使用余弦相似度式(2)進(jìn)行相似度計(jì)算。

設(shè)項(xiàng)目iv是一個(gè)沒有得到過評分的新項(xiàng)目,可以通過所有項(xiàng)目的平均評分值和項(xiàng)目的最近鄰集合Fneiiv進(jìn)行評分預(yù)測,如式(22)所示:

(22)

根據(jù)在項(xiàng)目推薦候選集上的預(yù)測評分,完成Top-N推薦過程。

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

實(shí)驗(yàn)平臺(tái)的配置:1)硬件配置:PC(Intel Core i5處理器,4 GB內(nèi)存,500 GB的硬盤);2)操作系統(tǒng):Windows 7操作系統(tǒng);3)編程環(huán)境:Matlab 2014a,Microsoft VC++2015。

3.1 數(shù)據(jù)集的選擇

采用美國明尼蘇達(dá)大學(xué)GroupLens項(xiàng)目組提供的MovieLens數(shù)據(jù)作為數(shù)據(jù)集[20],其中有三個(gè)規(guī)模的數(shù)據(jù)集:100 KB、1 MB、10 MB。本文用到的數(shù)據(jù)是大小為100 KB的數(shù)據(jù)集,包括943個(gè)用戶對1 682部電影的10萬條評分?jǐn)?shù)據(jù),每個(gè)用戶至少對其中的20部電影作出評分(分值范圍:1~5的整數(shù))。

3.2 評價(jià)指標(biāo)

使用平均絕對偏差(Mean Absolute Error, MAE)來評價(jià)預(yù)測情況。MAE越小,表示預(yù)測性能越好。假設(shè)用戶u對項(xiàng)目的N個(gè)項(xiàng)目的預(yù)測評分值集合為P={P1,P2,…,PN},對應(yīng)的實(shí)際評分集合為Y={Y1,Y2,…,YN},MAE的公式被定義為(23):

(23)

準(zhǔn)確率是通過計(jì)算預(yù)測評分與實(shí)際評分相等的數(shù)量占整個(gè)測試集的比率來衡量推薦的準(zhǔn)確度;召回率反映了待推薦的項(xiàng)目被推薦的比率。設(shè)G(u)表示算法推薦列表的項(xiàng)目集;T(u)表示用戶實(shí)際評分的項(xiàng)目集。推薦結(jié)果的準(zhǔn)確率和召回率分別被定義為式(24)~(25):

(24)

(25)

然而,由于準(zhǔn)確率和召回率之間存在負(fù)相關(guān)關(guān)聯(lián),需要找到一個(gè)權(quán)衡量來綜合表示。為了解決這一問題,引入了另一個(gè)指標(biāo)F1-measure來調(diào)和準(zhǔn)確率和召回率,定義如式(26)所示:

(26)

當(dāng)a=1時(shí),就變成所熟知的F1,即本文用到的精度度量指標(biāo),如式(27)所示:

(27)

從公式中可以很明確地看出F1綜合考慮了準(zhǔn)確率和召回率兩方面因素,將F1的值作為推薦系統(tǒng)的推薦精度。

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

從數(shù)據(jù)集中隨機(jī)取80%作為訓(xùn)練集,其余20%作為測試集。實(shí)驗(yàn)分為兩個(gè)部分:

3.3.1 預(yù)測情況的準(zhǔn)確性實(shí)驗(yàn)

首先需要做的實(shí)驗(yàn)是優(yōu)化聚類的簇?cái)?shù)。將簇?cái)?shù)固定在4~15,并分別計(jì)算對應(yīng)的MAE值。在MAE值最小值時(shí),其所對應(yīng)的簇?cái)?shù)作為實(shí)驗(yàn)的聚類簇?cái)?shù)。實(shí)驗(yàn)結(jié)果如圖1所示。

圖1 ICMF-CF中不同簇?cái)?shù)對應(yīng)的MAE值

確定最佳簇?cái)?shù)之后,在該簇?cái)?shù)之下對比不同算法的MAE值。P-CF表示基于使用皮爾遜相關(guān)系數(shù)計(jì)算用戶相似度的傳統(tǒng)協(xié)同過濾推薦算法,PS-CF表示將用戶Pearson相似度與Salton結(jié)合的協(xié)同過濾算法,NMF-CF表示基于非負(fù)矩陣分解的協(xié)同過濾算法。結(jié)果如圖2所示,算法P-CF中的MAE值最大,算法PS-CF中的MAE值大于算法NMF-CF,算法ICMF-CF中的MAE值最小。實(shí)驗(yàn)結(jié)果表明,與P-CF、PS-CF和NMF-CF相比,本文算法ICMF-CF的MAE值分別低7.8、3.8和2.2個(gè)百分點(diǎn),本文算法ICMF-CF提升了預(yù)測評分的精確度。

圖2 四種協(xié)同過濾推薦算法在簇?cái)?shù)為8時(shí)的MAE值比較

3.3.2 Top-N推薦的準(zhǔn)確性實(shí)驗(yàn)

準(zhǔn)確率定義為推薦列表中用戶喜歡的項(xiàng)目所占的比例。另一方面,召回率定義為用戶所喜歡的項(xiàng)目被推薦的概率。選擇召回率和準(zhǔn)確率作為實(shí)驗(yàn)的基礎(chǔ)評價(jià)指標(biāo),F1作為實(shí)驗(yàn)的綜合指標(biāo),推薦列表的長度分別取30、40和50。實(shí)驗(yàn)對比情況如表1所示。

表1 不同推薦列表長度下四種算法的準(zhǔn)確率、召回率和 F1的比較

從表1可以看出,當(dāng)推薦列表數(shù)在30~40時(shí),F1的值逐漸穩(wěn)定在一個(gè)常數(shù),實(shí)際上,存在一個(gè)推薦列表數(shù)的臨界值,當(dāng)推薦列表數(shù)目大于這個(gè)臨界值時(shí),推薦系統(tǒng)的表現(xiàn)并不會(huì)變得越來越好。對于不同的數(shù)據(jù)集,這個(gè)臨界值的選擇往往也是不同的。在本文中取N為40時(shí),將四種協(xié)同過濾推薦算法的召回率、準(zhǔn)確率和F1作一個(gè)綜合性的比較,NMF-CF是ICMF-CF的有力競爭者,然而,與NMF-CF相比,本文算法ICMF-CF的準(zhǔn)確率提升8個(gè)百分點(diǎn),召回率提升11個(gè)百分點(diǎn),綜合指標(biāo)F1值提升了9.4個(gè)百分點(diǎn)。本文算法ICMF-CF的效果明顯優(yōu)于其他三種算法,提高了推薦系統(tǒng)的推薦精確度。

4 結(jié)語

本文算法使用矩陣分解對評分矩陣進(jìn)行降維以及數(shù)據(jù)填充,使用時(shí)間衰減函數(shù)解決了實(shí)時(shí)性問題;然后,使用用戶興趣向量表征用戶,使用項(xiàng)目屬性表征項(xiàng)目,用k-means分別將用戶和項(xiàng)目進(jìn)行聚類;最后,使用改進(jìn)的相似度測量方法完成項(xiàng)目候選集,根據(jù)項(xiàng)目評分預(yù)測產(chǎn)生Top-N推薦。實(shí)驗(yàn)結(jié)果表明,本文算法不僅提高推薦精度,而且降低了計(jì)算的向量空間維度,推薦精度也得到提升。

參考文獻(xiàn)(References)

[1] 伍杰華,朱岸青, 蔡雪蓮, 等.基于隱樸素貝葉斯模型的社會(huì)關(guān)系推薦[J]. 計(jì)算機(jī)應(yīng)用研究, 2014, 31(5): 1381-1384, 1389.(WU J H, ZHU A Q, CAI X L, et al. Hidden naive Bayesian model for social relation recommendation [J]. Application Research of Computers, 2014, 31(5): 1381-1384, 1389.)

[2] GOLDBERG D, NICHOLS D, OKI B M, et al. Using collaborative filtering to weave an information tapestry [J]. Communications of the ACM, 1992, 35(12): 61-70.

[3] HERLOCKER L, KONSTAN A, BORCHERS A L, et al. An algorithmic framework for performing collaborative filtering [C]// SIGIR 1999: Proceedings of the 22nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. New York: ACM, 1999: 230-237.

[4] 肖文強(qiáng), 姚世軍, 吳善明. 一種改進(jìn)的Top-N協(xié)同過濾推薦算法[J].計(jì)算機(jī)應(yīng)用研究, 2018, 35(1): 105-112.(XIAO W Q, YAO S J, WU S M. Improved Top-Ncollaborative filtering recommendation algorithm[J]. Application Research of Computers, 2018, 35(1): 105-112.)

[5] 許海玲, 吳瀟, 李曉東, 等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J]. 軟件學(xué)報(bào), 2009, 20(2): 350-362.(XU H L, WU X, LI X D, et al. Comparison study of Internet recommendation system[J]. Journal of Software, 2009, 20(2): 350-362.)

[6] JEONG B, LEE J, CHO H. Improving memory-based collaborative filtering via similarity updating and prediction modulation[J]. Information Sciences, 2010, 180(5): 602-612.

[7] ZHAO C, PENG Q, LIU C. An improved structural equivalence weighted similarity for recommender systems[J]. Procedia Engineering, 2011, 15: 1869-1873.

[8] 李克潮,藍(lán)冬梅.一種屬性和評分的協(xié)同過濾混合推薦算法[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2013, 23(7): 116-119.(LI K C, LAN D M. A collaborative filtering hybrid recommendation algorithm for attribute and rating[J]. Computer Technology and Development, 2013, 23(7): 116-119.)

[9] VOZALIS M G, MARGARITIS K G. Using SVD and demographic data for the enhancement of generalized collaborative filtering[J]. Information Sciences, 2007, 177(15): 3017-3037.

[10] 楊陽, 向陽, 熊磊.基于矩陣分解與用戶近鄰模型的協(xié)同過濾推薦算法[J]. 計(jì)算機(jī)應(yīng)用, 2012, 32(2): 395-398.(YANG Y, XIANG Y, XIONG L. Collaborative filtering and recommendation algorithm based on matrix factorization and user nearest neighbor model [J]. Journal of Computer Applications, 2012, 32(2): 395-398.)

[11] CHEN G, WANG F, ZHANG C. Collaborative filtering using orthogonal nonnegative matrix tri-factorization[J]. Information Processing & Management, 2009, 45(3): 368-379.

[12] 郁雪, 李敏強(qiáng).一種結(jié)合有效降維和K-means聚類的協(xié)同過濾推薦模型[J]. 計(jì)算機(jī)應(yīng)用研究, 2009, 26(10): 3718-3720.(YU X, LI M Q. Collaborative filtering recommendation model based on effective dimension reduction andK-means clustering[J]. Application Research of Computers, 2009, 26(10): 3718-3720.)

[13] 張林, 王曉東, 姚宇.基于項(xiàng)目聚類和時(shí)間因素改進(jìn)的推薦算法[J]. 計(jì)算機(jī)應(yīng)用, 2016, 36(增刊2): 235-238.(ZHANG L, WANG X D, YAO Y. Improved recommendation algorithm based on item clustering and time factor [J]. Journal of Computer Applications, 2016, 36(S2): 235-238.)

[14] TSI C F, HUNG C. Cluster ensembles in collaborative filtering recommendation[J]. Applied Soft Computing, 2012, 12(4): 1417-1425.

[15] 李振博, 徐桂瓊, 查九.基于用戶譜聚類的協(xié)同過濾推薦算法[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2014, 24(9): 59-67.(LI Z B, XU G Q, ZHA J. A collaborative filtering recommendation algorithm based on user spectral clustering[J]. Computer Technology and Development, 2014, 24(9): 59-67.)

[16] XU D, TIAN Y. A comprehensive survey of clustering algorithms[J]. Annals of Data Science, 2015, 2(2): 165-193.

[17] SEHGAL G, GRAG D K. Comparison of various clustering algorithms[J]. International Journal of Computer Science and Information Technology, 2014, 5(3): 3074-3076.

[18] XUE G R, LIN CH X, YANG Q, et al. Scalable collaborative filtering using cluster-based smoothing[C]// Proceeding of the 28th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. New York: ACM, 2005: 114-121.

[19] MARY S S, SELVI R T. A study ofK-means and cure clustering algorithms[J]. International Journal of Engineering Research and Technology, 2014, 3(2): 1985-1987.

[20] 奉國和, 梁曉婷.協(xié)同過濾推薦研究綜述[J]. 圖書情報(bào)工作, 2011, 55(16): 126-130.(FENG G H, LIANG X T. A summary of collaborative filtering recommendations[J]. Library and Information Service, 2011, 55(16): 126-130.)

This work is partially supported by the National Natural Science Foundation of China (61404069), the Liaoning Provincial Department of Education Scientific Research Project (LJYL048).

猜你喜歡
聚類向量矩陣
向量的分解
聚焦“向量與三角”創(chuàng)新題
數(shù)種基于SPSS統(tǒng)計(jì)工具的聚類算法效率對比
面向WSN的聚類頭選舉與維護(hù)協(xié)議的研究綜述
改進(jìn)K均值聚類算法
多項(xiàng)式理論在矩陣求逆中的應(yīng)用
向量垂直在解析幾何中的應(yīng)用
基于Spark平臺(tái)的K-means聚類算法改進(jìn)及并行化實(shí)現(xiàn)
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
矩陣
兰西县| 华阴市| 长白| 巩留县| 九寨沟县| 昌乐县| 两当县| 肇东市| 麻江县| 永春县| 泰和县| 甘洛县| 灵寿县| 肇东市| 惠东县| 盐边县| 凤山县| 斗六市| 礼泉县| 万源市| 那坡县| 崇义县| 新巴尔虎左旗| 林芝县| 谷城县| 凌海市| 个旧市| 万载县| 汾阳市| 吉首市| 海城市| 德阳市| 星座| 万载县| 潮州市| 霍州市| 保康县| 湛江市| 英德市| 营山县| 鹤峰县|