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

?

基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法

2018-11-28 05:42:48孫克雷沈華理
關(guān)鍵詞:聚類矩陣算法

孫克雷,沈華理

(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)

隨著科學(xué)技術(shù)的不斷進(jìn)步,網(wǎng)絡(luò)已經(jīng)慢慢變成人們獲取外界信息的重要工具,使得網(wǎng)絡(luò)信息正以噴井式的方式增長(zhǎng),大量的網(wǎng)絡(luò)用戶在面對(duì)巨大的網(wǎng)絡(luò)信息時(shí),很難快速方便查詢到自己的需求信息。為了解決用戶需求很難得到滿足的現(xiàn)象,研究者們提出了很多的應(yīng)對(duì)方案,推薦系統(tǒng)就是其中的一種。推薦系統(tǒng)[1-3]的目標(biāo)是排除掉大量地?zé)o用信息,為用戶帶來個(gè)性化的推薦效果。其主要的過程是通過分析用戶的歷史行為信息,提取出用戶的偏好標(biāo)簽,得到一組標(biāo)簽集合,將與用戶偏好標(biāo)簽集合相匹配的信息推薦給用戶,從而可以過濾掉大量跟用戶需求無關(guān)地?cái)?shù)據(jù),極大地提升了用戶體驗(yàn)。

目前推薦技術(shù)主要采用基于關(guān)聯(lián)規(guī)則的推薦[4]、基于內(nèi)容的推薦[5]、基于協(xié)同過濾推薦(CF)[6]和混合推薦[7]等。幾種常用的技術(shù)中協(xié)同過濾技術(shù)運(yùn)用的最為普遍,傳統(tǒng)的協(xié)同過濾技術(shù)主要由兩部分組成:基于數(shù)據(jù)的協(xié)同過濾和基于模型的協(xié)同過濾?;谀P偷腃F通常根據(jù)數(shù)據(jù)進(jìn)行建模,然后利用模型實(shí)現(xiàn)推薦?;跀?shù)據(jù)的協(xié)同過濾又可以分為:基于用戶(User-Based CF)[8]和基于項(xiàng)目(Item-Base CF)。隨著信息量的不斷增加,現(xiàn)在的推薦系統(tǒng)包含有大量的用戶和項(xiàng)目,并且系統(tǒng)中的項(xiàng)目和用戶數(shù)量還在持續(xù)的擴(kuò)大,從而使得評(píng)分矩陣變得越來越稀疏,同時(shí)還存在新用戶的冷啟動(dòng)問題[9]。

對(duì)于上述方法存在的不足,研究者們從各個(gè)方面來對(duì)其進(jìn)行改善。例如文獻(xiàn)[10]提出的一種奇異值分解方法來降低推薦系統(tǒng)數(shù)據(jù)庫的維度,通過減小輸入矩陣的維度緩解數(shù)據(jù)稀疏性。文獻(xiàn)[11]采用計(jì)算項(xiàng)目相似度的方案用于填充評(píng)分矩陣,可以有效減小輸入矩陣的稀疏性。文獻(xiàn)[12]采用基于項(xiàng)目特征聚類的方法,其主要是按照用戶評(píng)價(jià)過的項(xiàng)目,找到與這些項(xiàng)目最近鄰的若干個(gè)聚類,并依據(jù)聚類結(jié)果進(jìn)行推薦,有效地解決了稀疏性。文獻(xiàn)[13]利用k-means算法對(duì)項(xiàng)目聚類,找出目標(biāo)項(xiàng)目的相似近鄰項(xiàng)目進(jìn)行推薦,可以有效降低稀疏性。以上這些解決方案主要通過利用項(xiàng)目屬性進(jìn)行評(píng)分矩陣數(shù)據(jù)填充,可以在有效降低稀疏性問題,但是其目的性主要都放在了解決數(shù)據(jù)稀疏性。

本文提出一種基于User-Based CF改進(jìn)算法。該算法不僅將用戶自身固有的屬性,如用戶的年齡、性別、職業(yè),作為計(jì)算相似用戶的因素,并且通過分析用戶與項(xiàng)目間的關(guān)聯(lián)信息,得到用戶偏愛項(xiàng)目和用戶評(píng)價(jià)過的項(xiàng)目數(shù)量等用戶非自身固有屬性也作為計(jì)算相似用戶的因素,以此來排除干擾近鄰用戶,提高用戶間相似度地準(zhǔn)確度。通過用戶最近鄰對(duì)項(xiàng)目的評(píng)分,預(yù)測(cè)未評(píng)分項(xiàng)目的預(yù)評(píng)分。然后將預(yù)測(cè)評(píng)分填充到稀疏評(píng)分矩陣,再利用協(xié)同過濾算法計(jì)算得到目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目地最終預(yù)評(píng)分。最后依據(jù)最終預(yù)評(píng)分結(jié)合項(xiàng)目聚類產(chǎn)生Top-N推薦。

1 基于用戶的協(xié)同過濾算法

User-Based CF算法主要依據(jù)用戶的歷史行為數(shù)據(jù)產(chǎn)生推薦,如果一個(gè)用戶不存在任何歷史行為數(shù)據(jù),那么該算法將不能計(jì)算出該用戶地相似近鄰用戶,也就不能實(shí)現(xiàn)對(duì)該用戶進(jìn)行項(xiàng)目推薦,這種缺陷稱為新用戶的冷啟動(dòng)現(xiàn)象。如果一個(gè)用戶存在歷史行為數(shù)據(jù),那么就可以利用相似度的計(jì)算公式得到與該用戶歷史行為相似的最近鄰,依據(jù)最近鄰對(duì)項(xiàng)目地評(píng)分?jǐn)?shù)據(jù)來給目標(biāo)用戶未評(píng)分地項(xiàng)目進(jìn)行預(yù)評(píng)分,按照預(yù)評(píng)分為目標(biāo)用戶產(chǎn)生Top-N推薦。User-Based CF算法實(shí)現(xiàn)比較簡(jiǎn)單,可分為三步進(jìn)行描述:構(gòu)建稀疏評(píng)分矩陣模型、計(jì)算得到最近鄰、預(yù)測(cè)評(píng)分并且產(chǎn)生Top-N推薦。

(1)構(gòu)建用戶-項(xiàng)目評(píng)分矩陣模型

首先根據(jù)用戶歷史行為數(shù)據(jù),可以建立稀疏評(píng)分矩陣Rm×n,如表1所示。其中,m代表用戶個(gè)數(shù),n代表項(xiàng)目個(gè)數(shù)。

表1 用戶-項(xiàng)目評(píng)分矩陣

其中UX是用戶X,Ii是項(xiàng)目i,RX,i是用戶X對(duì)項(xiàng)目i的評(píng)分,null表示用戶還沒有評(píng)分的項(xiàng)目,一般初始化為0。從表1可以容易看出,該矩陣存在大量的數(shù)據(jù)冗余,數(shù)據(jù)稀疏性嚴(yán)重。

(2) 計(jì)算得到最近鄰

利用Rm,n矩陣,通過相似度計(jì)算公式得到用戶之間的相似度,從而構(gòu)建出用戶相似度矩陣Sm,m,計(jì)算相似度的常見方法有很多種,例如歐幾里得距離公式、曼哈頓距離公式、余弦相似性、修正余弦相似性和Pearson相關(guān)系數(shù)。此處采用的是Pearson相關(guān)系數(shù)[14]計(jì)算法,計(jì)算方法如下

sim(X,Y)=

(1)

(3) 預(yù)測(cè)評(píng)分并且產(chǎn)生Top-N推薦

按照用戶之間的相似度,可以選擇出與目標(biāo)用戶最相似地前k個(gè)近鄰用戶,利用近鄰用戶地歷史行為數(shù)據(jù)預(yù)判出目標(biāo)用戶未評(píng)分項(xiàng)目地預(yù)評(píng)分,按照預(yù)評(píng)分向用戶進(jìn)行Top-N推薦。此處計(jì)算預(yù)評(píng)分的方法為加權(quán)均值法[15],公式如下

(2)

2 推薦算法的改進(jìn)

根據(jù)上一節(jié)分析,基于用戶的協(xié)同過濾算法主要存在兩個(gè)問題:沒有最大化利用與用戶有關(guān)的關(guān)聯(lián)信息和準(zhǔn)確度偏低。 為了解決上述問題,在基于用戶的協(xié)同過濾算法的基礎(chǔ)上進(jìn)行了改進(jìn),提出一種基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法。該算法主要分為兩部分,第一部分是利用用戶歷史行為信息和用戶關(guān)聯(lián)信息,構(gòu)建用戶-項(xiàng)目評(píng)分矩陣、用戶相似度矩陣、填充后的用戶-項(xiàng)目評(píng)分矩陣。第二部分根據(jù)填充后的評(píng)分矩陣,結(jié)合User-Based CF算法,產(chǎn)生目標(biāo)用戶的最終預(yù)評(píng)分,并且利用最終預(yù)評(píng)分通過項(xiàng)目聚類產(chǎn)生Top-N推薦列表。

2.1 填充用戶項(xiàng)目評(píng)分矩陣

根據(jù)用戶關(guān)聯(lián)信息能夠挖掘出用戶間共性,進(jìn)而可以確定與其相似的近鄰用戶。因?yàn)橛脩粲行┳陨砉逃袑傩蕴卣魇情L(zhǎng)期不變的,例如,地理位置、職業(yè)、年齡、性別等,這些屬性特征本身是沒有特殊含義的,但是如果和一些場(chǎng)景聯(lián)系起來,就能夠通過這些特征反應(yīng)出一個(gè)群體的興趣偏好。除了用戶自身固有屬性可以產(chǎn)生用戶間相似性關(guān)聯(lián)外,還有一些用戶非固有屬性也可以挖掘出用戶之間的關(guān)聯(lián),例如,本文將用戶偏愛項(xiàng)目屬性和用戶評(píng)價(jià)過的項(xiàng)目數(shù)量也作為計(jì)算用戶間相似度的屬性。利用用戶的屬性信息,計(jì)算出用戶之間的相似度,構(gòu)建用戶相似度矩陣,然后得到用戶預(yù)評(píng)分,最后將預(yù)評(píng)分填充到稀疏評(píng)分矩陣中。

本文將計(jì)算用戶間相似度分為三部分:計(jì)算用戶固有屬性間的相似度、計(jì)算用戶非固有屬性間的相似度、計(jì)算用戶總的相似度。

2.1.1計(jì)算用戶固有屬性間的相似度

用戶各個(gè)固有屬性Ak之間的取值類型可能是不同的,一般可分為數(shù)值屬性、二元屬性、分類屬性。各個(gè)屬性間相似度的計(jì)算方法如下

1) 當(dāng)Ak為二元屬性時(shí)

(3)

式中:AXk代表用戶X第k屬性地取值,AYk代表用戶Y第k屬性地取值。

2) 當(dāng)Ak為數(shù)值屬性時(shí)

(4)

經(jīng)過多次實(shí)驗(yàn),用戶年齡相差在5歲之內(nèi)定義相似度為1比較合適。

3) 當(dāng)Ak為分類屬性時(shí)

例如Ak為職業(yè)屬性時(shí),各個(gè)職業(yè)之間具有語義上的關(guān)聯(lián),為了獲取分類屬性間關(guān)聯(lián)度的大小,本文根據(jù)分類詞典構(gòu)建出分類屬性層次樹,樹的結(jié)構(gòu)圖如下

圖1 分類屬性層次樹

如圖1可知,將分類屬性按照層次劃分為4類,從上到下為包含關(guān)系,分類屬性Ak的值對(duì)應(yīng)為樹中葉子結(jié)點(diǎn),也就是細(xì)類。屬性間的相似度的計(jì)算思想為:對(duì)任意兩兩屬性進(jìn)行深度和廣度相結(jié)合的遍歷,并且在遍歷過程中進(jìn)行結(jié)點(diǎn)的比較,先進(jìn)行樹的廣度遍歷,如果在同一層存在相同的結(jié)點(diǎn),則跳轉(zhuǎn)到下一層進(jìn)行樹的深度遍歷,直到在樹的某一層所有結(jié)點(diǎn)都不相同時(shí),停止遍歷,記錄此時(shí)的遍歷深度,最后用遍歷深度除以樹的深度得到屬性間的相似度,計(jì)算公式如下

(5)

式中:father(AXk,AYk)代表兩個(gè)用戶AXk,AYk屬性對(duì)應(yīng)樹中葉子結(jié)點(diǎn)地共同父節(jié)點(diǎn),depth(father(AXk,AYk))代表該結(jié)點(diǎn)地深度,depth(T)代表樹地深度。

2.1.2計(jì)算用戶非固有屬性間的相似度

根據(jù)本文采用的數(shù)據(jù)集選取用戶偏愛的項(xiàng)目屬性和用戶評(píng)價(jià)過的項(xiàng)目數(shù)量為用戶非固有屬性。用I表示項(xiàng)目集合,I={i1,i2,i3,…,in},n代表項(xiàng)目個(gè)數(shù)。用item-A表示項(xiàng)目屬性集合,item-AI={a1,a2,a3,…,ap},p代表項(xiàng)目屬性個(gè)數(shù),則項(xiàng)目-屬性矩陣Attr=|I|×|item-A|如表2所示。

表2 項(xiàng)目-屬性矩陣

在項(xiàng)目-屬性矩陣中如果項(xiàng)目ij具有屬性ak則將該屬性對(duì)應(yīng)的值設(shè)置成1,否則設(shè)置成0,其中ij表示項(xiàng)目集合中的第j個(gè)項(xiàng)目,其中ak代表項(xiàng)目屬性集合中第k個(gè)屬性。

接下來根據(jù)用戶-項(xiàng)目評(píng)分矩陣和項(xiàng)目-屬性矩陣,通過計(jì)算提取出用戶偏愛電影項(xiàng)目屬性集合。主要推導(dǎo)過程如下:

1) 根據(jù)用戶X的歷史電影評(píng)分記錄,計(jì)算出用戶X對(duì)項(xiàng)目屬性集合中各個(gè)屬性的偏愛值(Bias Value),計(jì)算公式如下

(6)

2) 計(jì)算出用戶X對(duì)項(xiàng)目屬性集合中各個(gè)屬性偏愛值的最大值,計(jì)算公式如下

(7)

3) 計(jì)算出用戶X對(duì)項(xiàng)目屬性集合中各個(gè)屬性的偏愛因子。

(8)

式中:I′表示用戶X評(píng)價(jià)過的項(xiàng)目集合;ak表示項(xiàng)目屬性集合中的第k屬性;iak表示項(xiàng)目i的第k個(gè)屬性,取值為0時(shí)表示該項(xiàng)目不具有該屬性,取值為1時(shí)表示該項(xiàng)目具有該屬性;B(X,ak)表示用戶X對(duì)項(xiàng)目屬性集合中各個(gè)屬性的偏愛值;max-B(X, item-A)表示用戶X對(duì)項(xiàng)目屬性偏愛值中的最大值。

用T表示用戶偏愛的項(xiàng)目屬性集合,定義T={t1,t2,t3,t4,…,tk,…,tp}。當(dāng)γ(X,tk)≥ε舽時(shí),則tk=1。 當(dāng)γ(X,tk)<ε舽時(shí), 則tk=0。 其中tk=1表示用戶偏愛項(xiàng)目屬性集合中的第k個(gè)屬性;其中tk=0表示用戶不喜歡項(xiàng)目屬性集合中的第k個(gè)屬性;ε舽為預(yù)設(shè)定的閾值。上述用戶非固有屬性可分為兩種:集合屬性和數(shù)值屬性。各個(gè)屬性相似度計(jì)算方法如下

1) 當(dāng)Ak為集合屬性時(shí)

定義:AXk={tX1,tX2,…,tXk,…,tXp}

AYk={tY1,tY2,…,tYk,…,tYp}

式中:tXk代表用戶X是否偏愛項(xiàng)目屬性集合中第k個(gè)屬性,tYk代表用戶Y是否偏愛項(xiàng)目屬性集合中第k個(gè)屬性,tXk和tYk值為0或1,值為1表示偏愛,值為0表示不偏愛,相似度的計(jì)算方法如下

(9)

其中:

F(AXk∩AYk)=(tX1∩tY1,tX2∩tY2,…,tXk∩tYk,…,tXp∩tYp)

(10)

F(AXk∪AYk)=(tX1∪tY1,tX2∪tY2,…,tXk∪tYk,…,tXp∪tYp)

(11)

sum(F)表示將集合中的元素進(jìn)行相加。

2) 當(dāng)Ak為數(shù)值屬性時(shí)

(12)

式中:min[Aik,Ajk]表示取兩個(gè)值中最小值,max[Aik,Ajk] 表示取兩個(gè)值中最大值。

2.1.3計(jì)算用戶總的相似度

在計(jì)算用戶總相似度前,需要確定用戶各個(gè)屬性在相似度計(jì)算中所占的權(quán)重w(Ak),在確定各個(gè)屬性權(quán)重后,用戶間相似度計(jì)算公式如下

(13)

式中:q代表用戶屬性地個(gè)數(shù),a-sim(AXk,AYk)代表用戶X和用戶Y在第k個(gè)屬性上地相似度。

按照上述公式(13)可以計(jì)算任意兩個(gè)用戶間的相似度來構(gòu)建用戶相似度矩陣Sm,m,依據(jù)Sm,m對(duì)目標(biāo)用戶未評(píng)價(jià)過的項(xiàng)目進(jìn)行預(yù)評(píng)分,并將用戶預(yù)評(píng)分填充到稀疏評(píng)分矩陣Rm,n中。用戶預(yù)評(píng)分的計(jì)算方法如下[16]

(14)

2.2 通過項(xiàng)目聚類構(gòu)建推薦列表

由2.1節(jié)可得到填充后的評(píng)分矩陣,然后結(jié)合User-Based CF算法,求出目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目的最終預(yù)評(píng)分。

接下來對(duì)數(shù)據(jù)集里所有的項(xiàng)目進(jìn)行聚類操作。通過表2的項(xiàng)目-屬性矩陣來求出項(xiàng)目間的相似度,進(jìn)而將相似或相同的項(xiàng)目進(jìn)行聚類。聚類操作需要設(shè)定項(xiàng)目間相似度的閾值β,即當(dāng)兩個(gè)項(xiàng)目相似度item-sim(iu,iv)≥β時(shí),就把這兩個(gè)項(xiàng)目聚為同一類。本文的項(xiàng)目相似度計(jì)算方法為

(15)

式中:p是項(xiàng)目屬性個(gè)數(shù);aiuk是iu項(xiàng)目第k個(gè)屬性值;aivk是iv項(xiàng)目第k個(gè)屬性值。

接下來通過利用已知的聚類結(jié)果產(chǎn)生初始推薦列表。根據(jù)目標(biāo)用戶的最終預(yù)評(píng)分,將預(yù)評(píng)分最高的項(xiàng)目按照公式(15)進(jìn)行聚類,統(tǒng)計(jì)出相似或相同項(xiàng)目所在最多的項(xiàng)目類,本文采用的評(píng)分標(biāo)準(zhǔn)為[1-5]分制,最高分為5分。最后在對(duì)應(yīng)的項(xiàng)目類中按照用戶預(yù)評(píng)分產(chǎn)生前Top-N個(gè)未評(píng)分的初始推薦項(xiàng)目。此時(shí)產(chǎn)生的推薦項(xiàng)目并不一定滿足推薦位越靠前推薦命中率越高的規(guī)則,所以本文引入了用戶評(píng)價(jià)項(xiàng)目的時(shí)間戳屬性,利用時(shí)間戳[17]屬性可以在一定程度上滿足上述規(guī)則。首先,尋找出目標(biāo)用戶在訓(xùn)練集里最近評(píng)價(jià)過的且喜歡的項(xiàng)目,然后將初始推薦列表中項(xiàng)目與該項(xiàng)目進(jìn)行相似度的比較,按照相似度高低進(jìn)行重排序[18]。經(jīng)過重排序后的項(xiàng)目列表在一定程度上滿足推薦位越靠前命中率越高的規(guī)則,進(jìn)而不僅可以使整個(gè)推薦列表準(zhǔn)確度提高,還可以使每個(gè)推薦位的命中率提高。

2.3 算法的推薦步驟

算法 基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法

輸入 待推薦的用戶ID,需要推薦的項(xiàng)目個(gè)數(shù)N

輸出 推薦項(xiàng)目列表List(Top-N)

step1 根據(jù)用戶歷史行為數(shù)據(jù),建立稀疏評(píng)分矩陣Rm,n,利用用戶多種關(guān)聯(lián)信息依據(jù)公式(13)計(jì)算得到兩兩用戶間的相似度,建立用戶相似度矩陣Sm,m。

step2 利用Sm,m矩陣,依據(jù)公式(14)計(jì)算得到各個(gè)用戶未評(píng)分項(xiàng)目的預(yù)評(píng)分,并將預(yù)評(píng)分填充到Rm,n。

step3 利用填充后的評(píng)分矩陣,結(jié)合User-Based CF算法,產(chǎn)生目標(biāo)用戶的最終預(yù)評(píng)分。

step4 對(duì)數(shù)據(jù)集中所有項(xiàng)目進(jìn)行聚類操作,通過公式(15)求出項(xiàng)目間的相似度,然后按照給定的閾值β,將相似或相同的項(xiàng)目聚為同一類。

step5 根據(jù)得到的用戶最終預(yù)評(píng)分,將預(yù)評(píng)分最高的項(xiàng)目進(jìn)行聚類,統(tǒng)計(jì)出相似或相同項(xiàng)目所在最多的項(xiàng)目類,在對(duì)應(yīng)的項(xiàng)目類中按照用戶預(yù)評(píng)分產(chǎn)生Top-N個(gè)未評(píng)分的初始推薦項(xiàng)目。

step6 結(jié)合用戶評(píng)分的時(shí)間戳屬性對(duì)初始推薦項(xiàng)目列表重排列,產(chǎn)生最終推薦序列List(Top-N)。

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

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

本實(shí)驗(yàn)采用的是公共數(shù)據(jù)集,GroupLens-MovieLens數(shù)據(jù)集。該數(shù)據(jù)集中有項(xiàng)目信息表、用戶項(xiàng)目評(píng)分信息表、用戶信息表、電影的類型信息表、用戶職業(yè)信息表等。由于數(shù)據(jù)集中包含了一些與本實(shí)驗(yàn)無關(guān)的噪聲數(shù)據(jù)行預(yù)處理。需要將項(xiàng)目信息表中,所以在使用該數(shù)據(jù)集之前需要對(duì)其進(jìn)除項(xiàng)目屬性信息以外的其他所有信息過濾掉,并且使不同屬性值之間用空格隔開。

為了確保實(shí)驗(yàn)地合理性,選擇不少于被10個(gè)用戶共同打過分地項(xiàng)目并且每個(gè)用戶不少于對(duì)10個(gè)項(xiàng)目進(jìn)行評(píng)價(jià)過地用戶作為測(cè)試集合,總共選取100 000條用戶項(xiàng)目評(píng)分?jǐn)?shù)據(jù)。把100 000條數(shù)據(jù)進(jìn)行8/2劃分,80%用來作為訓(xùn)練數(shù)據(jù),20%用來作為測(cè)試數(shù)據(jù),訓(xùn)練數(shù)據(jù)中用戶評(píng)論數(shù)量為80 000條,測(cè)試數(shù)據(jù)中用戶評(píng)論數(shù)量為20 000條。為了驗(yàn)證本文提出方法的有效性,分別在平均絕對(duì)誤差MAE和準(zhǔn)確率評(píng)價(jià)標(biāo)準(zhǔn)上與其他推薦方法進(jìn)行比較。使用五交叉驗(yàn)證法來對(duì)上述兩種評(píng)測(cè)標(biāo)準(zhǔn)進(jìn)行實(shí)驗(yàn)論證,其中測(cè)試集數(shù)據(jù)互不相交。

3.2 測(cè)評(píng)指標(biāo)

1) 平均絕對(duì)誤差(MAE)評(píng)價(jià)

MAE是指經(jīng)過算法計(jì)算得到地用戶預(yù)評(píng)分?jǐn)?shù)據(jù)與用戶地實(shí)際評(píng)分?jǐn)?shù)據(jù)的誤差值,誤差值越小,說明算法預(yù)評(píng)分越是接近用戶真實(shí)的評(píng)分,進(jìn)而就會(huì)使得推薦越符合用戶的興趣,準(zhǔn)確率就越高。MAE的計(jì)算公式[19]如下

(16)

式中:n是目標(biāo)用戶在測(cè)試集中評(píng)價(jià)地項(xiàng)目個(gè)數(shù);Pt是目標(biāo)用戶對(duì)第t個(gè)項(xiàng)目地預(yù)評(píng)分;Rt是目標(biāo)用戶對(duì)第t個(gè)項(xiàng)目地真實(shí)評(píng)分。

2) 準(zhǔn)確率評(píng)價(jià)

在推薦算法中準(zhǔn)確率是衡量算法性能的重要指標(biāo)之一,能夠反映出系統(tǒng)推薦的項(xiàng)目是否在一定程度上滿足用戶的需求。準(zhǔn)確率的計(jì)算公式[20]如下所示

(17)

式中:R(u)是推薦系統(tǒng)為目標(biāo)用戶u生成地項(xiàng)目群;T(u)是測(cè)試集中目標(biāo)用戶u對(duì)某個(gè)項(xiàng)目評(píng)分為4分以上地項(xiàng)目群;U是測(cè)試集中地用戶集。

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

本文選取2種對(duì)比算法如下:

1) 基于用戶的協(xié)同過濾算法(User-Based CF, UB-CF)。根據(jù)用戶評(píng)分矩陣信息,為用戶未評(píng)分的項(xiàng)目進(jìn)行預(yù)評(píng)分,最后生成推薦列表。

2) 基于評(píng)分矩陣填充與用戶興趣的協(xié)同過濾推薦算法(Collaboration Filtering Recommendation Algorithm Based on Score Matrix Filling and User Interest,SMFUI-CF)。該算法首先是計(jì)算出用戶對(duì)項(xiàng)目的偏好度,然后填充用戶項(xiàng)目評(píng)分矩陣,最后引入時(shí)間的興趣度權(quán)重函數(shù)進(jìn)和偏好度到項(xiàng)目相似度計(jì)算中,最終實(shí)現(xiàn)算法的推薦結(jié)果。

實(shí)驗(yàn)1 在本文為了計(jì)算用戶間偏愛的項(xiàng)目屬性相似度,首先需要得到用戶偏愛的項(xiàng)目屬性集合,在這個(gè)過程中需要預(yù)先設(shè)定用戶偏愛因子閾值ε,因?yàn)殚撝郸艜?huì)對(duì)算法的MAE值產(chǎn)生較大的影響。由于ε的取值范圍是[0,1],所以需要驗(yàn)證ε在取不同值時(shí)MAE值的變化,本文取ε的值為0.1~0.9,間隔為0.1。已有研究表明當(dāng)最近鄰k取[30,60]范圍內(nèi)的值時(shí)會(huì)有很好的推薦效果。因此,設(shè)置k=50。此外,進(jìn)過多次實(shí)驗(yàn)統(tǒng)計(jì)當(dāng)對(duì)應(yīng)的性別、年齡、職業(yè)、偏愛的項(xiàng)目屬性和評(píng)價(jià)的項(xiàng)目數(shù)量五種用戶屬性的權(quán)值為w1=0.1,w2=0.1,w3=0.3,w4=0.3,w5=0.2本文算法會(huì)有很好的推薦效果。如圖2所示,不同的ε的取值對(duì)MAE值產(chǎn)生了很大的印象。

偏愛因子閥值ε圖2 偏愛因子閾值ε與MAE的關(guān)系

實(shí)驗(yàn)2 參照實(shí)驗(yàn)1中的結(jié)果,可以確定偏愛因子閾值ε的最優(yōu)取值為ε=0.5,然后計(jì)算出本文提出的基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法在最近鄰數(shù)k取不同值時(shí)對(duì)應(yīng)的MAE值,并且分別與UB-CF算法和SMFUI-CF算法進(jìn)行比較,實(shí)驗(yàn)對(duì)比結(jié)果如圖3所示。

圖3 MAE與最近鄰數(shù)k的關(guān)系

實(shí)驗(yàn)3 在產(chǎn)生推薦結(jié)果的過程中需要進(jìn)行項(xiàng)目聚類,而進(jìn)行項(xiàng)目聚類需要預(yù)先確定項(xiàng)目相似度閾值β,因?yàn)棣聲?huì)對(duì)算法推薦的準(zhǔn)確率產(chǎn)生重要的影響。本文中β的取值范圍是[0.1,0.9],間隔為0.1,算法推薦項(xiàng)目個(gè)數(shù)取10,其他的參數(shù)設(shè)定與前兩個(gè)實(shí)驗(yàn)一致。如圖4所示,項(xiàng)目相似度閾值β取不同值時(shí),對(duì)算法準(zhǔn)確率的影響。

項(xiàng)目相似度閥值β圖4 準(zhǔn)確率與項(xiàng)目相似度閾值β的關(guān)系

實(shí)驗(yàn)4 參照實(shí)驗(yàn)3中的結(jié)果,可以確定項(xiàng)目相似度閾值β的最優(yōu)取值為β=0.9,然后計(jì)算出本文提出的基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法在算法推薦項(xiàng)目個(gè)數(shù)取不同值時(shí)對(duì)應(yīng)的準(zhǔn)確率值,并且分別與UB-CF算法和SMFUI-CF算法進(jìn)行比較,實(shí)驗(yàn)對(duì)比結(jié)果如圖5所示。

圖5 準(zhǔn)確率與推薦項(xiàng)目個(gè)數(shù)的關(guān)系

4 結(jié)論

本文提出一種基于用戶多種關(guān)聯(lián)信息和項(xiàng)目聚類的推薦算法,該算法可以有效的利用用戶關(guān)多種聯(lián)信息計(jì)算出兩兩用戶間地相似度,依據(jù)最近鄰計(jì)算出預(yù)評(píng)分并填入稀疏評(píng)分矩陣,其次通過協(xié)同過濾算法得到最終預(yù)評(píng)分,在此基礎(chǔ)上通過結(jié)合項(xiàng)目聚類產(chǎn)生初始推薦項(xiàng)目列表,最后融入時(shí)間戳屬性對(duì)推薦列表進(jìn)行重排列,產(chǎn)生最終Top-N推薦。本文在MovieLens數(shù)據(jù)集驗(yàn)證了該算法,實(shí)驗(yàn)結(jié)果表明該算法不僅可以有效的降低MAE值,還可以提升推薦系統(tǒng)的準(zhǔn)確率。

猜你喜歡
聚類矩陣算法
基于MapReduce的改進(jìn)Eclat算法
Travellng thg World Full—time for Rree
進(jìn)位加法的兩種算法
基于DBSACN聚類算法的XML文檔聚類
初等行變換與初等列變換并用求逆矩陣
一種改進(jìn)的整周模糊度去相關(guān)算法
基于改進(jìn)的遺傳算法的模糊聚類算法
矩陣
南都周刊(2015年4期)2015-09-10 07:22:44
矩陣
南都周刊(2015年3期)2015-09-10 07:22:44
矩陣
南都周刊(2015年1期)2015-09-10 07:22:44
青龙| 岳西县| 永德县| 兴业县| 遂川县| 中西区| 崇信县| 杭州市| 宁都县| 新宁县| 环江| 本溪市| 平阴县| 文山县| 温泉县| 德化县| 固原市| 江北区| 自治县| 分宜县| 上栗县| 建平县| 安庆市| 宝山区| 尚义县| 宁强县| 阳信县| 迁西县| 阳西县| 二手房| 犍为县| 四子王旗| 吉安县| 资中县| 青海省| 克什克腾旗| 宽甸| 晋中市| 巴青县| 德钦县| 五指山市|