于 旭,王前龍,徐凌偉,田 甜,徐其江,崔煥慶
1(青島科技大學(xué) 信息科學(xué)與技術(shù)學(xué)院,青島 266061)
2(山東科技大學(xué) 山東省智慧礦山信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,青島 266590)
3(山東建筑大學(xué),濟(jì)南 250101)
4(山東信息職業(yè)技術(shù)學(xué)院 軟件系,濰坊 261061)
隨著互聯(lián)網(wǎng)的快速發(fā)展,人們正處于一個(gè)信息爆炸性增長(zhǎng)的時(shí)代.人們從海量信息中獲取對(duì)自己有價(jià)值的信息越來(lái)越困難.推薦系統(tǒng)[1,2]正是當(dāng)前解決這一問(wèn)題最有效的技術(shù)之一.當(dāng)前在電子商務(wù)[3]、餐飲[4]、交通運(yùn)輸[5]等領(lǐng)域都存在著各種形式的推薦系統(tǒng),但人們對(duì)當(dāng)前推薦系統(tǒng)的效果還不能完全滿意,而且大部分推薦系統(tǒng)僅服務(wù)于單一領(lǐng)域.協(xié)同過(guò)濾(collaborative filtering)算法[6]是推薦系統(tǒng)中使用最廣泛、最成功的方法之一,它可以歸結(jié)為分析表格數(shù)據(jù),即用戶項(xiàng)目評(píng)分矩陣.
然而,在現(xiàn)實(shí)生活中,人們往往很少對(duì)項(xiàng)目進(jìn)行評(píng)分,這導(dǎo)致了用戶項(xiàng)目評(píng)分矩陣非常稀疏.稀疏化情況的加劇,使得近鄰尋找的復(fù)雜度急劇增加,推薦系統(tǒng)的性能顯著下降,稀疏性已經(jīng)成為大多數(shù)單領(lǐng)域域協(xié)同過(guò)濾算法的一個(gè)瓶頸[7].為了緩解這一問(wèn)題,最近人們提出了一些跨域推薦方法.跨域推薦是將多個(gè)領(lǐng)域的數(shù)據(jù)聯(lián)合起來(lái),共同作用于目標(biāo)域的推薦系統(tǒng).這些方法有效的緩解了目標(biāo)域的稀疏性問(wèn)題.目前對(duì)此方面的研究主要有:Berkovsky 等人[8]提到一個(gè)基于鄰居的CDCF(N-CDCF),可以被視為基于內(nèi)存的方法的跨領(lǐng)域擴(kuò)展,即N-CF.Hu 等[9]提到基于矩陣分解的CDCF(MF-CDCF),其可以被視為矩陣分解方法的跨領(lǐng)域版本.Singh 和Gordon[10]提出了一種集體矩陣分解(CMF)模型.CMF 將用戶維度上所有域的評(píng)估矩陣相結(jié)合,以便通過(guò)普通用戶因子矩陣傳遞知識(shí).Li 等人[11]提出了一種用于推薦系統(tǒng)的基于碼本的知識(shí)轉(zhuǎn)移(CBT).他們首先將輔助評(píng)級(jí)矩陣中的評(píng)級(jí)壓縮為被稱為碼本的信息豐富且緊湊的集群級(jí)評(píng)分模式表示.香港科技大學(xué)潘微科等人提出了一種對(duì)二元信息矩陣(喜歡與不喜歡,購(gòu)買與不購(gòu)買等)和評(píng)分矩陣進(jìn)行聯(lián)合分解的方案[12],也有效地降低了目標(biāo)領(lǐng)域數(shù)據(jù)稀疏所帶來(lái)了的問(wèn)題,但是該模型要求兩個(gè)矩陣中的用戶、項(xiàng)目必須嚴(yán)格一致.文獻(xiàn)[13]則同時(shí)對(duì)兩個(gè)領(lǐng)域中的二元信息矩陣和用戶評(píng)論信息進(jìn)行聯(lián)合簡(jiǎn)歷模型,得到用戶的特征向量;并訓(xùn)練得到兩個(gè)非線性的映射函數(shù),一個(gè)用于將源領(lǐng)域中的用戶偏好信息映射到目標(biāo)領(lǐng)域中,另一個(gè)則用于將源領(lǐng)域中的用戶興趣轉(zhuǎn)換為目標(biāo)領(lǐng)域中用戶的興趣.然而,他們僅僅是對(duì)特征進(jìn)行隨機(jī)或者是簡(jiǎn)單的選取,并沒(méi)有對(duì)選取的特征進(jìn)行有效的評(píng)判.
但由于每個(gè)領(lǐng)域都有大量的評(píng)分?jǐn)?shù)據(jù),當(dāng)我們將這些領(lǐng)域聯(lián)合進(jìn)行處理的時(shí)候,會(huì)有更高維度的特征空間,這不僅產(chǎn)生高額的計(jì)算開(kāi)銷,甚至可能會(huì)導(dǎo)致推薦系統(tǒng)崩潰.因此進(jìn)行合理有效的特征子集選取成為跨域推薦系統(tǒng)必須要解決的問(wèn)題.
在本文的研究中,我們假設(shè)兩個(gè)具有強(qiáng)相關(guān)性的領(lǐng)域,比如圖書(shū)和電影,他們具有相似的體裁和特性,所以我偶們認(rèn)為圖書(shū)和電影是具有高相關(guān)性的領(lǐng)域.本文我們采用在不同領(lǐng)域上共享用戶的亞馬遜數(shù)據(jù)集,基于特征之間的相關(guān)性分析,對(duì)輔助域特征以無(wú)監(jiān)督聚類的方式進(jìn)行特征子集選取,刪除掉相關(guān)性較大和冗余的特征,篩選出對(duì)目標(biāo)域最有價(jià)值的信息,來(lái)提高推薦的準(zhǔn)確率和效率.實(shí)驗(yàn)結(jié)果表明,我們提出的基于有效特征子集選取的高效推薦算法比目前的推薦算法有更好的性能.
本文的安排如下:第2 節(jié)我們介紹相關(guān)的背景知識(shí),第3 節(jié)來(lái)詳細(xì)闡述本文提出的基于有效子集提取的高效推薦算法,第4 節(jié)我們做了一些實(shí)驗(yàn)來(lái)測(cè)試我們提出的模型的性能,我們將在第5 節(jié)中給出結(jié)論.
特征選擇[14,15](feature selection)也稱特征子集選擇(Feature Subset Selection,FSS),或?qū)傩赃x擇(attribute selection).是指從已有的M個(gè)特征(feature)中選擇N個(gè)特征使得系統(tǒng)的特定指標(biāo)最優(yōu)化,是從原始特征中選擇出一些最有效特征以降低數(shù)據(jù)集維度的過(guò)程,是提高學(xué)習(xí)算法性能的一個(gè)重要手段,也是模式識(shí)別中關(guān)鍵的數(shù)據(jù)預(yù)處理步驟.目前已有不少文獻(xiàn)中提出了有監(jiān)督學(xué)習(xí)的特征選擇算法,但是僅有少數(shù)文章對(duì)于無(wú)監(jiān)督學(xué)習(xí)的特征選擇問(wèn)題做了研究.無(wú)監(jiān)督學(xué)習(xí)的特征選擇問(wèn)題就是依據(jù)一定的判斷準(zhǔn)則,選擇一個(gè)特征子集能夠最好地覆蓋數(shù)據(jù)的自然分類.目前的方法有基于遺傳算法的特征選擇方法[16]、基于模式相似性判斷的特征選擇方法[17]和信息增益的特征選擇方法[18],這幾種方法沒(méi)有考慮特征之間的相關(guān)性和特征對(duì)分類的影響.
矩陣的UV 分解技術(shù)[19]是將原始用戶-項(xiàng)目評(píng)分矩陣R分解為用戶特征矩陣P和項(xiàng)目特征矩陣Q,即每個(gè)用戶u(或者項(xiàng)目i)由一個(gè)實(shí)數(shù)向量pu(或者qi)表示,而這個(gè)向量的維度遠(yuǎn)遠(yuǎn)小于用戶或者商品的個(gè)數(shù).對(duì)于用戶u來(lái)說(shuō),pu代表用戶u的用戶的喜好,類似,對(duì)于項(xiàng)目i,qi代表項(xiàng)目i的特性.他們的內(nèi)積qTipu表示用戶u對(duì)項(xiàng)目i的評(píng)分,所以,用戶的評(píng)分可以用如下公式表示:
是模型的預(yù)測(cè)評(píng)分矩陣.
為了得到P和Q,我們采用最小化的方法為:
其中,rui是評(píng)分矩陣R的第u行、第i列的已知打分值,pu是用戶特征矩陣P的第u行;qi是項(xiàng)目特征矩陣Q的第i行;是為了避免過(guò)擬合而附加的正則項(xiàng).
由于輔助域是稀疏度相對(duì)較低,所以我們可以利用UV 分解技術(shù)對(duì)輔助域進(jìn)行數(shù)據(jù)的填充,這非常有利于對(duì)輔助域進(jìn)行聚類,提取更好的有用信息.
我們采用基于用戶的協(xié)同過(guò)濾算法[20]進(jìn)行推薦,首先要計(jì)算出用戶(項(xiàng)目)之間的相似度.常用的計(jì)算相似度的方法主要有歐式距離、余弦相似度和皮爾遜相關(guān)系數(shù)等.本文采用的皮爾遜相關(guān)系數(shù)作為用戶相似度的度量方法.皮爾遜相關(guān)系數(shù)其度量方法表示為:
其中,Iuv表示用戶u和v共同評(píng)分的項(xiàng)目,rui,rvi分別表示用戶u和v對(duì)項(xiàng)目i的評(píng)分,和分別表示用戶u和v對(duì)項(xiàng)目的平均評(píng)分.
推薦系統(tǒng)就是為用戶提供可靠準(zhǔn)確的服務(wù),使用戶可以高效的從海量信息中快速得到自己想要的信息.推薦系統(tǒng)算法常用的標(biāo)準(zhǔn)之一就是平均絕對(duì)誤差MAE,它通過(guò)計(jì)算真實(shí)評(píng)價(jià)與預(yù)測(cè)評(píng)價(jià)之間的誤差來(lái)衡量推薦結(jié)果的準(zhǔn)確性.平均絕對(duì)誤差越小,推薦結(jié)果的準(zhǔn)確性就越高.假設(shè)用戶的評(píng)分集合表示為{v1,v2,…,vN},對(duì)應(yīng)的預(yù)測(cè)評(píng)分集合為{p1,p2,…,pN}則具體的MAE計(jì)算公式為:
傳統(tǒng)的跨域推薦系統(tǒng)在進(jìn)行特征選擇時(shí),往往是將輔助域和目標(biāo)域特征進(jìn)行聯(lián)合選取,這樣會(huì)使得在目標(biāo)域上稀疏數(shù)據(jù)的有效信息進(jìn)一步減少,這將會(huì)大大降低推薦精度.為了保護(hù)目標(biāo)域數(shù)據(jù),我們的模型僅對(duì)輔助域進(jìn)行特征選取,盡可能的提取輔助域上對(duì)目標(biāo)域有用的信息,提高推薦的準(zhǔn)確率和效率.由于目標(biāo)域和輔助域不存在明顯的指標(biāo),所以我們要進(jìn)行無(wú)監(jiān)督的特征提取.為了獲取輔助域上最有效的信息,最大限度的降低冗余和相關(guān)特征,我們采用K-means 算法來(lái)獲取特征子集.
2.1.1 填充輔助域的缺失值
由于提取的輔助域信息存在有很多缺失值,如果對(duì)這些數(shù)據(jù)直接進(jìn)行聚類會(huì)大大降低聚類的效果,所以我們要對(duì)缺失值進(jìn)行填充,處理缺失值的方法有很多,本文采用矩陣UV 分解的方法對(duì)缺失值進(jìn)行填充.將填充后的矩陣進(jìn)行下一步的處理.
2.1.2 估計(jì)聚類趨勢(shì)
聚類趨勢(shì)度量指數(shù)據(jù)集是否有聚類的價(jià)值,如果數(shù)據(jù)集是隨機(jī)均勻地分布,則聚類的價(jià)值很低.我們常用空間隨機(jī)性的統(tǒng)計(jì)檢驗(yàn)來(lái)實(shí)現(xiàn),基于這種思想,我們采用一種簡(jiǎn)單有效的統(tǒng)計(jì)量,霍普金斯統(tǒng)計(jì)量.計(jì)算霍普金斯統(tǒng)計(jì)量的步驟是:
(1)均勻的從D的空間中抽到n個(gè)點(diǎn)p1,…,pn.也就是說(shuō),D空間中的每個(gè)點(diǎn)都以相同的概率包含在這個(gè)樣本中,對(duì)于每個(gè)點(diǎn)pi(1<=i<=n),我們找出pi在D中的最近鄰,并令xi為pi與它在D中的最近鄰之間的距離,即xi=min(dist(pi,v)),v屬于D.
(2)均勻地從D中抽到n個(gè)點(diǎn)q1,…,qn.對(duì)于每個(gè)點(diǎn)qi(1<=i<=n),我們找出qi在D-{qi}中的最近鄰之間的距離,即yi=min(dist(qi,v)),v屬于D,v不等于qi.
(3)計(jì)算霍普金斯統(tǒng)計(jì)量:
2.1.3 確定聚類簇?cái)?shù)k的大致區(qū)間
對(duì)于K-means 算法來(lái)說(shuō),聚類數(shù)k的確定無(wú)疑是最重要的一個(gè)步驟.為了得到更好的分類簇?cái)?shù),我們將選用肘方法來(lái)得到k,獲取對(duì)目標(biāo)域最有價(jià)值的信息.肘方法的原理是,當(dāng)我們?cè)黾哟財(cái)?shù)的時(shí)候,數(shù)據(jù)集的簇內(nèi)方差之和會(huì)降低,以簇?cái)?shù)為自變量,簇內(nèi)方差為因變量做一條曲線,這條曲線會(huì)隨簇?cái)?shù)的增加而下降.生成的這條曲線會(huì)有一個(gè)明顯的拐點(diǎn),這個(gè)拐點(diǎn)附近就是我們要找的k.
2.1.4 利用K-means 算法進(jìn)行特征子集選取
為了最大可能的減少輔助域的相關(guān)特征,提取對(duì)目標(biāo)域最有價(jià)值的信息,我們首先對(duì)輔助域進(jìn)行聚類.因?yàn)槟繕?biāo)域和輔助域雖然在具體項(xiàng)目上可能不同,比如圖書(shū)和電影,但是他們?cè)陬}材標(biāo)簽上是非常相似的.所以我們首先通過(guò)聚類方法來(lái)獲取題材標(biāo)簽tag={t1,t2,…,tm},然后用每個(gè)標(biāo)簽的平均值作為用戶ui對(duì)此標(biāo)簽tj的評(píng)分vij.
對(duì)于初始點(diǎn)k的選取,我們應(yīng)做到盡可能的選擇相互距離較遠(yuǎn)的點(diǎn).在選擇k個(gè)初始點(diǎn)的時(shí)候,首先隨機(jī)選擇一個(gè)點(diǎn)作為初始簇中心,然后選擇距離該點(diǎn)相對(duì)較遠(yuǎn)的那個(gè)店作為第二個(gè)初始類簇中心,然后選擇距離該兩點(diǎn)相對(duì)較遠(yuǎn)的點(diǎn)作為第三個(gè)初始類簇中心,以此類推,直至找到k個(gè)初始類簇中心.
K-means 算法產(chǎn)生聚類簇的過(guò)程:
1)在所有的項(xiàng)目中挑選k個(gè)項(xiàng)目作為初始聚類點(diǎn);
2)計(jì)算每個(gè)聚類中心與其他項(xiàng)目的相似度,依據(jù)相似度將項(xiàng)目分配到相應(yīng)的類簇;
3)計(jì)算生成的類簇的中心點(diǎn).
重復(fù)2),3)操作,直到各個(gè)類簇的中心點(diǎn)不再發(fā)生變化.
在圖1中我們假設(shè)輔助域中用戶u對(duì)項(xiàng)目I的評(píng)分為rij,{I1,I3,…,In}為一類,我們通過(guò)聚類生成標(biāo)簽t1,對(duì)于用戶ui對(duì)標(biāo)簽t1的評(píng)分為vi1,vi1是ui對(duì)I1,I3,…,In的平均值,也就是說(shuō)聚類后的項(xiàng)目標(biāo)簽評(píng)分矩陣為U×T->V,用戶對(duì)標(biāo)簽的評(píng)分計(jì)算公式為:
這里t表示生成的標(biāo)簽,N 表示屬于第j個(gè)標(biāo)簽的項(xiàng)目數(shù).
為了得到用戶標(biāo)簽評(píng)分矩陣,我們首先將用戶項(xiàng)目評(píng)分矩陣進(jìn)行轉(zhuǎn)置,得到項(xiàng)目用戶矩陣,然后對(duì)項(xiàng)目進(jìn)行聚類,得到項(xiàng)目標(biāo)簽,我們對(duì)提取的項(xiàng)目標(biāo)簽用這一標(biāo)簽內(nèi)的項(xiàng)目評(píng)分均值作為標(biāo)簽矩陣,也就是標(biāo)簽用戶矩陣,最后將用戶標(biāo)簽矩陣對(duì)目標(biāo)矩陣進(jìn)行擴(kuò)展,作為推薦算法的輸入數(shù)據(jù).
圖1 Kmeans 聚類模型
我們將得到的輔助域特征子集對(duì)目標(biāo)域進(jìn)行擴(kuò)展,得到擴(kuò)展的用戶項(xiàng)目評(píng)分矩陣,用戶還是{u1,u2,…,um},我們對(duì)項(xiàng)目進(jìn)行了擴(kuò)展{i1,i2,…,in,t1,t2,…,tk}共有m+k個(gè)項(xiàng)目,用戶ui對(duì)項(xiàng)目j的評(píng)分為vij,分值在0-5 之間.
得到擴(kuò)展的用戶評(píng)分矩陣之后,我們用式(1)來(lái)計(jì)算用戶之間的相似度,最后選擇與目標(biāo)用戶最相似的n個(gè)用戶為最近鄰集合.通過(guò)擴(kuò)展后的用戶項(xiàng)目評(píng)分矩陣獲取最近鄰之后,我們對(duì)目標(biāo)用戶進(jìn)行評(píng)分預(yù)測(cè),并向目標(biāo)用戶推薦前N項(xiàng)結(jié)果.評(píng)分預(yù)測(cè)公式為:
其中,sim(a,b) 表示用戶a和b的相似性,是用戶b的平均分,N表示用戶a的近鄰集合.這個(gè)公式考慮了與用戶a最相似的N個(gè)近鄰的評(píng)分偏差.
從算法的復(fù)雜度來(lái)看,如果將未處理的目標(biāo)域和輔助域進(jìn)行聯(lián)合,那么我們采用基于用戶的協(xié)同過(guò)濾方法來(lái)進(jìn)行實(shí)驗(yàn)的算法復(fù)雜度為O(m2×(n+L)),其中m為用戶數(shù),n為目標(biāo)域的項(xiàng)目數(shù),L為輔助域的項(xiàng)目數(shù).本文將輔助域的項(xiàng)目進(jìn)行了提取,輔助域提取信息時(shí),矩陣分解的復(fù)雜度為O(m×L×k),其中L為輔助域的項(xiàng)目數(shù),k為聚類的簇?cái)?shù),可以視為常數(shù).輔助域進(jìn)行K-means 聚類的復(fù)雜度為O(m×L),進(jìn)行輔助域的特征提取之后,與目標(biāo)域聯(lián)合進(jìn)行協(xié)同過(guò)濾的復(fù)雜度為O(m2×(n+k)),其中k為聚類的簇?cái)?shù),視為常數(shù),所以復(fù)雜度為O(m2×n).綜上本文的計(jì)算復(fù)雜度為O(m2×n).所以本文在計(jì)算復(fù)雜度上與已有的跨域推薦算法有一定的降低.
本文提出了基于有效特征子集選取的高效推薦算法,該算法有效的解決了推薦算法常見(jiàn)的數(shù)據(jù)稀疏性和特征冗余問(wèn)題,不僅提高了系統(tǒng)的運(yùn)算效率而且也提高了推薦的準(zhǔn)確率.具體步驟如下:
1)根據(jù)原始文本數(shù)據(jù)中提取目標(biāo)域和輔助域的用戶項(xiàng)目評(píng)分矩陣.
2)對(duì)輔助域數(shù)據(jù)進(jìn)行缺失值的填充.
3)在輔助域上進(jìn)行聚類并獲得標(biāo)簽數(shù)據(jù)和評(píng)分,并對(duì)目標(biāo)域數(shù)據(jù)進(jìn)行擴(kuò)充.
4)根據(jù)用戶項(xiàng)目評(píng)分矩陣進(jìn)行相似度計(jì)算,創(chuàng)建目標(biāo)用戶的最近鄰集合.
5)對(duì)目標(biāo)用戶項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè).
6)對(duì)推薦結(jié)果進(jìn)行分析,計(jì)算得到MAE.算法流程圖,如下所示:
圖2 算法流程圖
數(shù)據(jù)的完整性和真實(shí)性對(duì)實(shí)驗(yàn)的成功至關(guān)重要.本文最終采用爬取的亞馬遜數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù).亞馬遜數(shù)據(jù)集包含1555 多萬(wàn)個(gè)用戶對(duì)753 243 個(gè)項(xiàng)目的評(píng)分,其中項(xiàng)目包含圖書(shū),電影,音樂(lè)等方面.這其中包含物品的ID,分類號(hào)(ASIN),標(biāo)題(title),分類(group),用戶的評(píng)分等信息.
我們對(duì)以上文本類數(shù)據(jù)進(jìn)行了提取并合并了用戶在每個(gè)領(lǐng)域的評(píng)分,得到用戶-項(xiàng)目評(píng)分矩陣(u,i,r),r是用戶u對(duì)項(xiàng)目i的評(píng)分.本實(shí)驗(yàn)的前提是數(shù)據(jù)集之間需要有較強(qiáng)的相關(guān)性,所以我們采用評(píng)分?jǐn)?shù)據(jù)相對(duì)較多的圖書(shū)作為輔助域,較稀疏的DVD 作為目標(biāo)域.
本文篩選出1410 個(gè)用戶1000 本圖書(shū)作為輔助域,稀疏度為23.3%,DVD 則選擇1410 個(gè)用戶和3000 個(gè)項(xiàng)目作為目標(biāo)域,稀疏度為2.667%,將以上數(shù)據(jù)作為本 文的實(shí)驗(yàn)數(shù)據(jù).
圖3 實(shí)驗(yàn)源數(shù)據(jù)格式
實(shí)驗(yàn)使用10 折交叉驗(yàn)證的方法,我們將數(shù)據(jù)集的75%作為訓(xùn)練集,25%作為測(cè)試集.訓(xùn)練集的數(shù)據(jù)用來(lái)對(duì)算法各個(gè)步驟的參數(shù)進(jìn)行計(jì)算和對(duì)測(cè)試集的評(píng)分進(jìn)行預(yù)測(cè);測(cè)試集則用來(lái)衡量算法的推薦質(zhì)量.
我們對(duì)輔助域進(jìn)行聚類,首先來(lái)估計(jì)輔助域的聚類趨勢(shì).通過(guò)對(duì)輔助域的計(jì)算得到霍普金斯統(tǒng)計(jì)量為0.2185<0.5,說(shuō)明輔助域的數(shù)據(jù)分布是不均勻的,可以對(duì)輔助域進(jìn)行聚類分析.
本實(shí)驗(yàn)采用肘方法來(lái)確定聚類數(shù)k的大致聚類區(qū)間 ,最終我們得到如圖4所示.
圖4 聚類數(shù)k 的大致區(qū)間
由圖4可以看出,k的大致取值范圍在10 左右,所以我們?cè)诰垲悤r(shí),在k=10 周圍進(jìn)行選取最佳的值,并與其他數(shù)據(jù)點(diǎn)進(jìn)行比較.
本實(shí)驗(yàn)的目的是結(jié)合輔助域的信息標(biāo)簽,對(duì)目標(biāo)域采用協(xié)同過(guò)濾方法對(duì)目標(biāo)用戶進(jìn)行推薦,并與單域上基于用戶的協(xié)同過(guò)濾(CF-U),傳統(tǒng)的跨域協(xié)同過(guò)濾(CDCF)和基于矩陣分解的協(xié)同過(guò)濾方法做比較.我們分別選取聚類數(shù)k={8,10,15,25,35},近鄰數(shù)N={5,10,20,30,40,50,60,70,80}來(lái)進(jìn)行實(shí)驗(yàn),最終平均絕對(duì)偏差(MAE)隨我們選擇不同的近鄰用戶數(shù)N和聚類數(shù)k的變化如表1所示.
表1 亞馬遜數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果
我們選擇表1中具有代表性的結(jié)果以折線圖的形式展現(xiàn),我們可以直觀的看到MAE 隨著k和N值的變化曲線:
圖5 實(shí)驗(yàn)結(jié)果折線圖
從圖5看出,單域上基于用戶的協(xié)同過(guò)濾(CFU)算法隨著近鄰數(shù)N 的增加先減小后增加,但是整體上,單域的協(xié)同過(guò)濾算法MAE 高于跨域的協(xié)同過(guò)濾算法.說(shuō)明引入輔助域信息可以提高推薦系統(tǒng)的準(zhǔn)確率.傳統(tǒng)的跨域協(xié)同過(guò)濾算法CDCF 和基于矩陣分解的跨域推薦算法MF-CDCF 雖然比單域的推薦效果好,但是MAE 值還是較高.從圖4中可以看出,本文所提出的算法依賴于所選擇的聚類數(shù)k值,如果k值選取不合適,可能會(huì)使得推薦算法的質(zhì)量下降.基于有效子集選取的高效推薦算法(FSERA)只要選取合適的k值,本系統(tǒng)的MAE 值就遠(yuǎn)遠(yuǎn)低于其他算法,這也表明了FSERA 可以為用戶提供較好的推薦.
隨著聚類數(shù)k值的增加,改進(jìn)的協(xié)同過(guò)濾MAE 會(huì)逐漸上升,當(dāng)k=10 時(shí),MAE 的曲線最低,此時(shí)的算法質(zhì)量最好;當(dāng)選取的近鄰數(shù)N 逐漸增加時(shí),跨域推薦系統(tǒng)的MAE 值在不斷增加.我們從圖5中也可以看出,當(dāng)引入輔助域后,協(xié)同過(guò)濾的MAE 會(huì)減小,引入輔助域增加了系統(tǒng)的信息,使得協(xié)同過(guò)濾算法在計(jì)算相似度時(shí)有了更多的有用數(shù)據(jù).輔助域聚類數(shù)為10 時(shí),本文提出的FSERA 算法的推薦質(zhì)量最高.
從圖5中我們可以看出,基于有效子集提取的高效推薦算法在選取合適的參數(shù)時(shí),MAE 可以達(dá)到0.77 左右,這說(shuō)明本文的方案是可行的.但是從特征選的的角度來(lái)看,本文所采用的K-means 方法來(lái)提取特征,具有一定的局限性,特征提取的方法有很多種,在本文提取特征中,選取K-means 聚類方法有很好的效果,但是也有一定的不足,比如輔助域的數(shù)據(jù)也很稀疏,聚類效果不佳,可以考慮加入這種缺失信息的方法來(lái)達(dá)到更好的效果.
通過(guò)與其他推薦算法的比較可以看出,本文所提出的FSERA 在推薦質(zhì)量上略優(yōu)于其他算法,但是此算法對(duì)輔助域進(jìn)行了特征選擇,使得算法的復(fù)雜度大大降低,極大的提高了系統(tǒng)的運(yùn)算速度,使推薦效率有了大幅度的提升.
傳統(tǒng)的協(xié)同過(guò)濾方法在應(yīng)用于推薦系統(tǒng)時(shí),存在著若干問(wèn)題,比如數(shù)據(jù)稀疏,數(shù)據(jù)冗余等問(wèn)題.本文提出了基于有效特征子集選取的高效推薦算法,有效的將輔助域信息遷移到目標(biāo)域中,對(duì)目標(biāo)域數(shù)據(jù)進(jìn)行了擴(kuò)展.并解決了豐富的輔助域信息直接對(duì)目標(biāo)域進(jìn)行擴(kuò)展帶來(lái)的數(shù)據(jù)冗余等問(wèn)題.不僅降低了運(yùn)算的復(fù)雜度,并且提高了推薦效率.在amazon 數(shù)據(jù)集上的實(shí)驗(yàn)表明,該算法很好的挖掘了用戶的興趣,有效的降低了平均絕對(duì)偏差,在一定程度上緩解了數(shù)據(jù)稀疏性問(wèn)題,該方法在電子商務(wù)系統(tǒng)中有一定的實(shí)用價(jià)值.但是本文在特征選取時(shí)采用了K-means 聚類方法有一定的局限性,我們可以嘗試更多的特征選擇方法來(lái)進(jìn)行選擇,找到更多能提高推薦效果的方法,這也將是我以后研究的工作.