孫華成 王永利 趙 亮 陳廣生
(1.南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)(2.華電能源股份有限公司佳木斯熱電廠 佳木斯 154000)
推薦系統(tǒng)越來(lái)越受歡迎,因?yàn)榭梢詭椭脩粽业礁信d趣的項(xiàng)目(比如電影、書(shū)籍、音樂(lè)等)所以可以緩解信息過(guò)載問(wèn)題。一些通用的推薦系統(tǒng)比如Amazon,LastFm,MovieLens。這些系統(tǒng)推薦在線商品,電影和音樂(lè)給用戶。在過(guò)去的十幾年,很多研究人員開(kāi)發(fā)了一些推薦系統(tǒng)[1~2],但是仍然有些挑戰(zhàn)比如冷啟動(dòng)[3~5]和數(shù)據(jù)稀疏性問(wèn)題[6]。
大量推薦系統(tǒng)提供的推薦結(jié)果只是單領(lǐng)域的,事實(shí)上,在不同的領(lǐng)域之間存在很多依賴和相關(guān)關(guān)系。一個(gè)領(lǐng)域的信息可以通過(guò)轉(zhuǎn)化到其他領(lǐng)域提高推薦效果,而不是單純的獨(dú)立考慮。比如,如果一些用戶喜歡歌手的歌(音樂(lè)作為源領(lǐng)域),一些電影(作為目標(biāo)領(lǐng)域)由該歌手出演的可以推薦該用戶。這樣,可以解決目標(biāo)領(lǐng)域冷啟動(dòng)問(wèn)題[7],和數(shù)據(jù)稀疏性問(wèn)題[8]。因此,跨領(lǐng)域推薦最近在推薦系統(tǒng)領(lǐng)域成為熱門(mén)研究。
目前相關(guān)的跨領(lǐng)域推薦通常需要不同領(lǐng)域的評(píng)分信息共享用戶和項(xiàng)目,現(xiàn)實(shí)場(chǎng)景中很少存在。本文專注于沒(méi)有共同用戶和項(xiàng)目的跨領(lǐng)域推薦系統(tǒng)研究。本文提出了一種跨領(lǐng)域推薦方法,可以利用不同領(lǐng)域之間用戶對(duì)項(xiàng)目的偏好即評(píng)分模式構(gòu)建關(guān)聯(lián)。本文首先從輔助領(lǐng)域進(jìn)行聚類取出冗余信息,利用聚類后的信息構(gòu)建張量,提取評(píng)分模式。下一步,將從源領(lǐng)域獲取的評(píng)分模式遷移到目標(biāo)領(lǐng)域,填補(bǔ)目標(biāo)領(lǐng)域空缺值。最終,本文利用填補(bǔ)空缺值后的評(píng)分張量推薦。
本文的主要貢獻(xiàn)如下:
1)在聚類基礎(chǔ)上進(jìn)行張量分解提取評(píng)分模式。
2)提出了一種推薦方法利用輔助領(lǐng)域評(píng)分模式遷移學(xué)習(xí)至目標(biāo)領(lǐng)域。
3)使用相關(guān)實(shí)驗(yàn)驗(yàn)證方法的可行性。
跨領(lǐng)域推薦已經(jīng)成為解決冷啟動(dòng)和減輕稀疏性問(wèn)題的重要手段。一些研究人員調(diào)研了跨領(lǐng)域的相關(guān)工作如文獻(xiàn)[9]中定義的,這里有兩個(gè)跨領(lǐng)域推薦的任務(wù)。
第一個(gè)任務(wù)就是利用源領(lǐng)域的知識(shí)提高目標(biāo)領(lǐng)域項(xiàng)目推薦質(zhì)量。Li[10]等提出了一種跨領(lǐng)域協(xié)同濾波降低稀疏性。他們通過(guò)聚類壓縮得到用戶項(xiàng)目間的評(píng)分模式,然后他們以codebook的形式將其他領(lǐng)域的知識(shí)轉(zhuǎn)移到目標(biāo)領(lǐng)域。Kumar[11~12]等提出了一種跨領(lǐng)域話題模型來(lái)緩解數(shù)據(jù)稀疏性問(wèn)題。他們假設(shè)每個(gè)領(lǐng)域有N個(gè)不同的話題,每個(gè)用戶在這些話題服從某種分布。利用話題匹配進(jìn)行跨領(lǐng)域協(xié)同推薦而不是傳統(tǒng)的根據(jù)共享作者匹配。Karatzoglou[13]等提出了一種使用機(jī)器學(xué)習(xí)的方法將稠密的源領(lǐng)域知識(shí)遷移到稀疏的目標(biāo)領(lǐng)域用來(lái)解決數(shù)據(jù)稀疏問(wèn)題的方法。他們開(kāi)發(fā)了一種遷移學(xué)習(xí)技術(shù)從包含豐富數(shù)據(jù)的多個(gè)領(lǐng)域提取知識(shí),然后對(duì)稀疏目標(biāo)領(lǐng)域生成推薦。這項(xiàng)技術(shù)學(xué)習(xí)了相關(guān)性和線性整合所有源領(lǐng)域的評(píng)分模式到一個(gè)模型中使得可以預(yù)測(cè)目標(biāo)領(lǐng)域未知的評(píng)分模式。Enrich[14]等提出了使用用戶標(biāo)簽作為不同領(lǐng)域之間的橋梁,他們從源領(lǐng)域中學(xué)習(xí)用戶的評(píng)分模式(例如,用戶如何在源領(lǐng)域進(jìn)行評(píng)分,這些標(biāo)簽和評(píng)分之間的關(guān)系)來(lái)提高目標(biāo)領(lǐng)域的預(yù)測(cè)表現(xiàn)。
第二個(gè)任務(wù)就是對(duì)不同領(lǐng)域的項(xiàng)目進(jìn)行聯(lián)合推薦。Li[15]等提出了一種通過(guò)將多任務(wù)的評(píng)分?jǐn)?shù)據(jù)池化的方式共享知識(shí)。他們創(chuàng)建了一種多領(lǐng)域共享隱含評(píng)分因子聚類評(píng)分矩陣,然后這個(gè)共享評(píng)分矩陣被擴(kuò)展為通用聚類評(píng)分模型,稱為評(píng)分矩陣生成模型。任何相關(guān)用戶的評(píng)分矩陣可以通過(guò)這個(gè)生成模型和user-item 聯(lián)合混合模型進(jìn)行生成或者預(yù)測(cè)。Shi[16]等提出了一種標(biāo)簽推導(dǎo)的協(xié)同濾波跨領(lǐng)域推薦。他們利用用戶產(chǎn)生的標(biāo)簽作為跨領(lǐng)域的紐帶。這些標(biāo)簽可以用來(lái)計(jì)算跨領(lǐng)域用戶之間的相似性和項(xiàng)目之間的相似性,并且這種相似性被整合到一個(gè)矩陣分解模型可用于矩陣分解過(guò)程從而提高推薦的效果。Gao[17]等提出了一種聚類的潛在因子模型(CLFM)基于聯(lián)合非負(fù)矩陣框架。跟文獻(xiàn)[10]不同的是,他們使用CLFM 不只是學(xué)習(xí)多領(lǐng)域的共享評(píng)分模式,還從每個(gè)包含重要信息的領(lǐng)域?qū)W習(xí)特定領(lǐng)域聚類評(píng)分模式。Hu[18]提出了對(duì)于user-item-domain進(jìn)行建模三元關(guān)系作為一個(gè)三階張量。然后,他們利用標(biāo)準(zhǔn)的CANDECOMP/PARAFAC(CP)張量分解模型來(lái)提取不同領(lǐng)域用戶因子和項(xiàng)目因子之間的關(guān)系,這樣就可以預(yù)測(cè)每個(gè)領(lǐng)域的評(píng)分了。
本文專注于第一種跨領(lǐng)域推薦任務(wù)。通過(guò)跨領(lǐng)域遷移多維評(píng)分模式來(lái)解決第一個(gè)任務(wù)。
跨領(lǐng)域推薦目前主要解決的問(wèn)題就是沒(méi)有共享覆蓋信息如文獻(xiàn)[19]的情況,本文借助于張量分解提取兩個(gè)領(lǐng)域的評(píng)分模式再結(jié)合遷移模式的跨領(lǐng)域方法來(lái)解決稀疏性問(wèn)題和冷啟動(dòng)問(wèn)題[20]。本節(jié)主要介紹張量分解和跨領(lǐng)域遷移學(xué)習(xí)的相關(guān)定義[21~23]。
形式上,張量是個(gè)多維矩陣。一個(gè)張量的階數(shù)就是維度的數(shù)目,也稱為模式。本文中張量用粗體腳本字母表示,比如X 。矩陣使用粗體大寫(xiě)字母表示,如X 。向量使用粗體小寫(xiě)字母表示,比如x 。元素使用小寫(xiě)字母下標(biāo)表示,比如xi,j,k。矩陣 X 的第i 行表示為 Xi,*,第 j 列表示為 X*,j,元素(i,j)表示為 Xi,j。
定義 1(矩陣展開(kāi),matrix unfolding)張量的模展開(kāi)操作就是將張量映射成矩陣形式,比如X(2)表示 將 XI×J×K→ XJ×(IK)。 一 個(gè) N 階 張 量 A 設(shè) 為A ? RI1…IN,擁有元素a,以三階張量為例就需i1,…,iN要在三個(gè)方向上模展卡 A?RI1×(I2I3),A? RI2×( I2I3),(1)(2)A(3)?R( I1I2)×I3這 里 的 A(1),A(2),A(3)就 是 A 的mode-1,mod e-2,mode-3 展開(kāi)。
圖1 張量mode-n矩陣展開(kāi)
定義 2(模式乘積,mode product)n 模式乘積為張量 A ? RI1×I2×…×IN,與矩陣 U ? RJn×In在第n 模式上的乘積,表示為 A×nU ,結(jié)果大小為RI1×…×Jn×…×IN,簡(jiǎn)稱模乘。并且模乘滿足交換律和結(jié)合律[23]:
張量分解有很多種方式,本文使用的是HOSVD。高階奇異值分解(HOSVD)是在矩陣奇異值分解(SVD)的概念上的延伸。對(duì)于一個(gè)mode-n 展開(kāi)式,二維上的奇異值分解可以重寫(xiě)如下:
通過(guò)擴(kuò)展,三階的張量HOSVD可以寫(xiě)成如下:
HOSVD 分解可以將N 階張量分解為一個(gè)核心張量和N 個(gè)因子矩陣乘積的形式如圖1。圖1 中是一個(gè)三階張量分解一個(gè)張量核和三個(gè)因子矩陣,這個(gè)張量核心S 可以看作是對(duì)原始張量A 的壓縮。
圖2 三階張量的HOSVD分解圖示
當(dāng)因子矩陣確定時(shí),核心張量可以通過(guò)張量和因子矩陣計(jì)算得到:
再使用式(1)可以得到張量A 的低秩近似,達(dá)到填補(bǔ)空缺值和數(shù)據(jù)壓縮的效果。
對(duì)于含有標(biāo)簽的評(píng)分預(yù)測(cè)系統(tǒng),可以定義為如下關(guān)系結(jié)構(gòu)F ?(U ,I,T,Y )。
1)U,I,T 非空有限集合,元素分別稱為用戶,項(xiàng)目,標(biāo)簽。
2)Y 是三元組的可觀測(cè)關(guān)系,Y ?U×I×T 。
3)三元組(u,i,Tu,i)表示一個(gè)用戶對(duì)于一個(gè)項(xiàng)目的標(biāo)簽這里的 u ?U,i ?I 和一個(gè)非空集合Tu,i?{t ? T|(u ,i,t )?Y}。
Y 表示用戶,項(xiàng)目與標(biāo)簽的三元關(guān)系,可以用二值張量表示A=(au,i,t) ? R|U|×|I|×|T|,這里有標(biāo)簽的值為1缺失值為0。
此時(shí),張量分解表示為
HOSVD[22]的基礎(chǔ)思想就是最小化估計(jì)誤差,可以利用均方差做為優(yōu)化函數(shù):
當(dāng)參數(shù)優(yōu)化后,可以利用下面公式進(jìn)行預(yù)測(cè)推薦:
表2 本節(jié)用到的符號(hào)表
在跨領(lǐng)域遷移學(xué)習(xí)方面目前公認(rèn)的有四種不同的跨領(lǐng)域情景,如圖3。
圖3 跨領(lǐng)域情景
1)用戶重疊。這里有一些用戶跨越不同領(lǐng)域而且這些用戶在兩個(gè)領(lǐng)域都有評(píng)分,比如UST≠?。
2)項(xiàng)目重疊。這里有一些項(xiàng)目跨越不同領(lǐng)域而且這些項(xiàng)目在兩個(gè)領(lǐng)域都被評(píng)分過(guò)如IST≠?。
3)全重疊。這兩個(gè)領(lǐng)域同時(shí)有重疊的用戶和項(xiàng)目,如UST≠? and IST≠? 。
4)無(wú)重疊。就是在兩個(gè)領(lǐng)域中既沒(méi)有用戶重疊也沒(méi)有項(xiàng)目重疊如,UST=? and IST=?。
任何的協(xié)同濾波算法可以應(yīng)用在前三個(gè)場(chǎng)景來(lái)解決跨領(lǐng)域問(wèn)題。大體上這些場(chǎng)景下的跨領(lǐng)域問(wèn)題通過(guò)將兩個(gè)領(lǐng)域的評(píng)分信息整合到統(tǒng)一的數(shù)據(jù)集使其轉(zhuǎn)化為單領(lǐng)域。但是,最后一個(gè)場(chǎng)景由于缺少共有用戶和項(xiàng)目所以很少被解決。下一步,我們將主要集中在最后一種情境下的跨領(lǐng)域推薦,跨領(lǐng)域的推薦目前公認(rèn)的分為兩類:
1)整合知識(shí)。知識(shí)從多個(gè)源領(lǐng)域被整合到目標(biāo)領(lǐng)域。
合并用戶偏好。將用戶的偏好進(jìn)行整合,如評(píng)分、標(biāo)簽、交易記錄等。
調(diào)和用戶建模數(shù)據(jù)。整合的知識(shí)來(lái)自用戶建模數(shù)據(jù)如用戶相似性和用戶領(lǐng)域。
組合推薦。整合的知識(shí)是由單領(lǐng)域推薦組合,如評(píng)分評(píng)估和評(píng)分概率分布。
2)知識(shí)遷移與關(guān)聯(lián),知識(shí)通過(guò)關(guān)聯(lián)或者遷移來(lái)進(jìn)行推薦。
關(guān)聯(lián)領(lǐng)域。通過(guò)共享知識(shí)關(guān)聯(lián)領(lǐng)域。如項(xiàng)目屬性、關(guān)聯(lián)規(guī)則、語(yǔ)義網(wǎng)絡(luò)和領(lǐng)域間相關(guān)性。
共享潛在特征。源領(lǐng)域和目標(biāo)領(lǐng)域通過(guò)潛在的特征進(jìn)行關(guān)聯(lián)。
遷移評(píng)分模式。源領(lǐng)域顯式或隱式的評(píng)分模式用于目標(biāo)領(lǐng)域。
圖4 跨領(lǐng)域推薦分類
當(dāng)和矩陣分解或張量分解結(jié)合時(shí)一般使用共享潛在特征或遷移評(píng)分模式。
潛在因子模型是協(xié)同濾波(CF)領(lǐng)域比較流行的方法。這些模型中的用戶偏好和項(xiàng)目屬性通常都非常的稀疏,可以通過(guò)數(shù)據(jù)中潛在因子進(jìn)行壓縮表示。在基于潛在因子分析的協(xié)同濾波系統(tǒng)中,潛在的用戶偏好和項(xiàng)目屬性可以更好地捕捉和匹配。在潛在因子遷移學(xué)習(xí)方面有兩種方法:適應(yīng)模型和聯(lián)合模型。前者是將源領(lǐng)域?qū)W習(xí)到的潛在因子,整合到目標(biāo)領(lǐng)域的推薦模型中。后者是將兩個(gè)領(lǐng)域整合來(lái)學(xué)習(xí)出潛在因子。
除了通過(guò)共享用戶或項(xiàng)目的潛在因子還有另一種主流的方式用于知識(shí)遷移。在很多現(xiàn)實(shí)場(chǎng)景中,即使用戶和項(xiàng)目不同,相近的領(lǐng)域也會(huì)有相似的用戶偏好與流行度。因此潛在關(guān)聯(lián)可以是一組用戶對(duì)一組項(xiàng)目的偏好,稱為評(píng)分模式??梢詫⑦@個(gè)評(píng)分模式里結(jié)果兩個(gè)領(lǐng)域間的橋梁,這樣知識(shí)的遷移可以不需要適配或整合。本文提出的方法就是基于從源領(lǐng)域提取出評(píng)分模式遷移至目標(biāo)領(lǐng)域進(jìn)行推薦。如圖6 所示,圖中展示的源領(lǐng)域和目標(biāo)領(lǐng)域?qū)?yīng)的是用戶項(xiàng)目的評(píng)分矩陣,模式提取是通過(guò)張量分解完成的,對(duì)應(yīng)本文的方法就是利用張量分解提取三元關(guān)系模式,保留更多的信息達(dá)到提高準(zhǔn)確率的效果。
圖5 共享評(píng)分模式的跨領(lǐng)域推薦
本文提出的方法張量評(píng)分模式跨領(lǐng)域遷移主要分為兩個(gè)階段,第一階段從輔助領(lǐng)域提取出聚類后評(píng)分模式,第二階段將第一階段的評(píng)分模式遷移到目標(biāo)領(lǐng)域填補(bǔ)目標(biāo)領(lǐng)域的空缺值。
在協(xié)同過(guò)濾系統(tǒng)中,相同偏好的用戶和擁有相似屬性的項(xiàng)目行為表現(xiàn)上是相似的。因此可以將用戶和項(xiàng)目進(jìn)行聚類分組,聚類后的評(píng)分張量只包含了用戶和項(xiàng)目的簇信息很好地去除原評(píng)分張量的冗余信息。在此基礎(chǔ)上,只需要保留聚類的ID無(wú)需考慮其他信息就可以表示原評(píng)分張量。
定義3(評(píng)分模式,RatingKernel)。RatingKernel 是一個(gè)大小為kU×kI×kT的張量,壓縮表示原評(píng)分張量上kU個(gè)用戶聚類和kI個(gè)項(xiàng)目聚類和kT個(gè)標(biāo)簽聚類上的聚類層次上的評(píng)分模式。類比文獻(xiàn)[10]中的codebook,不同的是本文的評(píng)分模式基于張量核,保留更多信息,并且在模式提取和遷移方面適用范圍更廣。
理想情況下,如果user/item/tag 在同一個(gè)簇中是相同的,只需要從user/item/tag 簇中選擇一個(gè)user/item/tag 對(duì)即可構(gòu)建RatingKernel。但是,在現(xiàn)實(shí)情況下,同一個(gè)簇中的user/item/tag 不可能完全相同。普遍的做法是選擇每個(gè)簇的聚類中心來(lái)表示該簇。這種情況下,需要同時(shí)對(duì)評(píng)分張量中的第一維(user)、第二維(item)和第三維(tag)進(jìn)行聚類。對(duì)于RatingKernel 的構(gòu)建,只需要保留用戶和項(xiàng)目的聚類編號(hào),這種情況下就可以選擇任意的聚類算法。輔助評(píng)分張量Xaux可以分解如下:
當(dāng)前用戶/項(xiàng)目的聚類編號(hào)表示形式,U、I和T不能表示user/item/tag 的字面意思。為了簡(jiǎn)化,本文中使用二值數(shù)據(jù)表示U,I,T ,通過(guò)設(shè)置每行非負(fù)元素為1其余為0。這些來(lái)自輔助評(píng)分矩陣的二值user/item/tag 聚類編號(hào)記為Uaux、Iaux和Taux。
構(gòu)建評(píng)分模式S 的方式如下:
算法1 提取評(píng)分模式
Input:The initial tensor Xaux? RI1×I2×I3with user,tag,and item dimensions.
kU,kIand kT:The approximate tensor X?auxleft leading eigenvectors of each dimension,respectively。
Output:S
1:Initialize core tensor S and left singular vectorsof A1,A2andA3,respectively。
2:repeat
3:S=Xaux×
9:return S
算法1 第3 行張量核與第4 行計(jì)算近似張量的的復(fù)雜度相同為O(I )。算法 1 第 5、6、7 行為i每次循環(huán)過(guò)程中SVD 展開(kāi),復(fù)雜度為O(I1+I2+I3) ,所以整體復(fù)雜度為O(T (2Π1Ii+I1+I2+I3) ),T 表示迭代次數(shù),幾次迭代即可收斂。因此可以多次隨機(jī)初始化獲取更優(yōu)的局部最小值。由于張量維度遠(yuǎn)遠(yuǎn)大于共享模式的維度,近似記為O(TIi),取決于張量維度。
剩余的任務(wù)是選擇user/item/tag 的聚類數(shù)目kU、kI和kT。聚類數(shù)目即隱藏因子數(shù)目過(guò)多會(huì)包含冗余信息容易產(chǎn)生過(guò)擬合,較高的特征維度會(huì)增加計(jì)算復(fù)雜度。聚類的數(shù)目過(guò)少時(shí),構(gòu)建user/item/tag 數(shù)據(jù)不足,導(dǎo)致算法丟失過(guò)多有效信息。因此選擇合適的RatingKernel大小不僅需要充分壓縮以便計(jì)算也能充分表示大部分原信息,實(shí)驗(yàn)部分會(huì)針對(duì)實(shí)驗(yàn)場(chǎng)景驗(yàn)證聚類數(shù)目即隱藏因子數(shù)目的影響。
在獲取評(píng)分模式S 之后,可以將評(píng)分模式從Xaux遷移到Xtgt假設(shè)輔助領(lǐng)域任務(wù)中的user/item/tag 類簇與目標(biāo)領(lǐng)域任務(wù)之間存在隱含關(guān)系,Xtgt可以通過(guò)擴(kuò)展評(píng)分模式重構(gòu)出來(lái),例如,通過(guò)評(píng)分模式中3 維矩陣因子作為基底組合。評(píng)分模式中,表示 Xtgt中的user/item/tag 組合行為類似Xaux中 user/item/tag 類簇原型。
Xtgt的重構(gòu)過(guò)程就是將RatingKernel 擴(kuò)展,因?yàn)檫@樣可以減少觀察評(píng)分Xtgt與重構(gòu)評(píng)分張量之間在損失函數(shù)上(本文使用的平方損失函數(shù))的差異。這里,我們應(yīng)用大小等同于Xtgt的二值權(quán)重矩陣W 來(lái)遮蓋未觀察到的元素,當(dāng)[ ]Xtgtijk已評(píng)分Wijk=1,否則Wijk=0 。最后,目標(biāo)函數(shù)中只包括Xtgt中觀察到的元素的平方差。
類比 MF(Matrix Factorization)方法,定義損失函數(shù)如下:
直接最小化損失函數(shù)會(huì)導(dǎo)致過(guò)擬合,因此考慮目標(biāo)函數(shù)中添加正則項(xiàng),對(duì)于給定的矩陣因子Utgt,Itgt,Ttgt的F范數(shù)正則項(xiàng)表示如下:
添加正則項(xiàng)后的目標(biāo)函數(shù)為
算法2 遷移評(píng)分模式
Input Xtgt? Rp×q×r, kU,kI,kT,S
對(duì)于目標(biāo)函數(shù)的優(yōu)化,為了面對(duì)不斷增長(zhǎng)的數(shù)據(jù)集時(shí)能盡快收斂使用隨機(jī)梯度下降(SGD)進(jìn)行優(yōu)化。
算法2 中第5 行求解近似張量復(fù)雜度近似為O( )
pqr ,第6、7、8 行使用的是隨機(jī)梯度下降方法,每遍歷一個(gè)元素更新一次復(fù)雜度為O( )pkU+qkI+rkT,所以可以在一次元素遍歷的過(guò)程中完成。 因此總體的計(jì)算復(fù)雜度O( )pqr(pqr+pkU+qkI+rkT) ,因?yàn)樗惴ㄒ淮伪闅v即可完成,所以多次實(shí)驗(yàn)取均值。
目標(biāo)函數(shù)的值表示的是目標(biāo)領(lǐng)域和輔助領(lǐng)域相關(guān)性。值越小,兩者的評(píng)分模式越相關(guān)。相比較而言,較大的值以為弱相關(guān)性導(dǎo)致了負(fù)遷移。獲取填補(bǔ)空缺值后的推薦函數(shù)利用填補(bǔ)空缺值后的評(píng)分張量進(jìn)行推薦。
對(duì)于目標(biāo)函數(shù)的優(yōu)化,為了面對(duì)不斷增長(zhǎng)的數(shù)據(jù)集時(shí)能盡快收斂使用隨機(jī)梯度下降(SGD)進(jìn)行優(yōu)化。
算法2 中第5 行求解近似張量復(fù)雜度近似為O(p qr ),第6、7、8 行使用的是隨機(jī)梯度下降方法,每遍歷一個(gè)元素更新一次復(fù)雜度為O(p kU+qkI+rkT),所以可以在一次元素遍歷的過(guò)程中完成。 因此總體的計(jì)算復(fù)雜度O(p qr(pqr+pkU+qkI+rkT)) ,因?yàn)樗惴ㄒ淮伪闅v即可完成,所以多次實(shí)驗(yàn)取均值。
目標(biāo)函數(shù)的值表示的是目標(biāo)領(lǐng)域和輔助領(lǐng)域相關(guān)性。值越小,兩者的評(píng)分模式越相關(guān)。相比較而言,較大的值意味著弱相關(guān)性導(dǎo)致了負(fù)遷移。獲取填補(bǔ)空缺值后的推薦函數(shù)利用填補(bǔ)空缺值后的評(píng)分張量進(jìn)行推薦。
為了驗(yàn)證本文所提出的張量分解評(píng)分模式遷移模型的高效性,將進(jìn)行一組大范圍實(shí)驗(yàn),驗(yàn)證在三個(gè)數(shù)據(jù)集上的表現(xiàn),同時(shí)與幾個(gè)先進(jìn)的推薦方法進(jìn)行比較。本實(shí)驗(yàn)擬從MAE(Mean Absolute Error,平均絕對(duì)誤差)作為衡量標(biāo)準(zhǔn)來(lái)評(píng)估算法的性能。我們利用Matlab語(yǔ)言實(shí)現(xiàn)了本文算法,實(shí)驗(yàn)使用的是實(shí)驗(yàn)室集群環(huán)境如表3所示。
表3 集群實(shí)驗(yàn)環(huán)境
我們基于下面三個(gè)公用的真實(shí)數(shù)據(jù)集進(jìn)行試驗(yàn)評(píng)估:MovieLens 數(shù)據(jù)集,含有 270,000 個(gè)用戶、45,000 部電影和超過(guò)26,000,000 個(gè)評(píng)分?jǐn)?shù)據(jù)(取值范圍 1~5 分),750,000 個(gè)標(biāo)簽;EachMovie 數(shù)據(jù)集,含有 72916 個(gè)用戶、1628 部電影和超過(guò) 2,811,983 個(gè)評(píng)分?jǐn)?shù)據(jù)(取值范圍1~6 分,本文將其映射到 1~5 分);Book-Crossing 數(shù)據(jù)集,含有 278858 個(gè)用戶、271379 本書(shū)和 1,149,780 個(gè)評(píng)分?jǐn)?shù)據(jù)(取值范圍0~9分,本文將其映射到1~5分)。實(shí)驗(yàn)中將上述數(shù)據(jù)集中70%的用戶及其評(píng)分作為訓(xùn)練數(shù)據(jù)樣本,剩余部分作為測(cè)試樣本。針對(duì)跨領(lǐng)域?qū)嶒?yàn),設(shè)定 EachMovie 作為源領(lǐng)域,MovieLens 與Book-Crossing作為目標(biāo)領(lǐng)域的測(cè)試環(huán)境,驗(yàn)證跨領(lǐng)域推薦算法,在每個(gè)測(cè)試環(huán)境下重復(fù)實(shí)驗(yàn)10 次并計(jì)算其平均值作為實(shí)驗(yàn)結(jié)果。
本文選擇了其他3 中相關(guān)算法與本文算法進(jìn)行比較:
UPCC 算法,通過(guò)皮爾森相關(guān)系數(shù)對(duì)相似的用戶進(jìn)行推薦;
RMGM(rating-matrix generative model,評(píng)分矩陣生成模型)算法,作為當(dāng)前跨領(lǐng)域推薦的最好算法來(lái)測(cè)試跨領(lǐng)域的推薦性能。
CBT(codebook transfer,密碼本遷移模型)算法,一種先進(jìn)的跨領(lǐng)域協(xié)同過(guò)濾模型,假設(shè)領(lǐng)域間完全共享一個(gè)評(píng)分模式,并利用聚類層次的密碼本描述共享的評(píng)分模式,然后基于密碼本進(jìn)行跨領(lǐng)域的信息遷移。
TKT(Tensor kernel transfer,張量模式遷移)本文提出的方法,利用聚類層次的張量核作為共享模式進(jìn)行跨領(lǐng)域遷移。
所有的實(shí)驗(yàn)測(cè)試均采用MAE(mean absolute error,平均絕對(duì)誤差)作為衡量標(biāo)準(zhǔn),MAE 的值越小,算法的性能越好。MAE的計(jì)算方式如下:
本文通過(guò)實(shí)驗(yàn)對(duì)比驗(yàn)證本文算法在跨領(lǐng)域推薦中的效果。隨機(jī)從每個(gè)數(shù)據(jù)集中選取300 個(gè)用戶和評(píng)分作為訓(xùn)練集(ML300 表示從MovieLens 數(shù)據(jù)集中取300,BC300表示從Book-Crossing取300),再選200 個(gè)作為測(cè)試集。對(duì)于每個(gè)測(cè)試用戶,初始化時(shí)考慮不同的評(píng)分?jǐn)?shù)量,比如5、10、15 個(gè)評(píng)分記為(Given5、Given10、Given15),其他的評(píng)分用來(lái)評(píng)估。參考RMGM,CBT 等實(shí)驗(yàn)隱藏因子空間(即聚類數(shù)目)的設(shè)置為50,在本文中為了簡(jiǎn)化實(shí)驗(yàn)過(guò)程,實(shí)驗(yàn)中聚類后隱藏因子空間設(shè)置相同,R=kU=kI=kT=50。后面將進(jìn)行實(shí)驗(yàn)分析R的取值。
表4 10次實(shí)驗(yàn)不同目標(biāo)領(lǐng)域的MAE平均值
通過(guò)表4 結(jié)果可以看出,本文的方法效果在所有目標(biāo)數(shù)據(jù)測(cè)試集上效果好于其他對(duì)比的方法。由CBT,RMGM 效果優(yōu)于UPCC 可見(jiàn),跨領(lǐng)域知識(shí)遷移可以提高推薦準(zhǔn)確率,RMGM、CBT 提取不同領(lǐng)域中二維矩陣評(píng)分模式分別進(jìn)行整合與遷移推薦。TKT 充分利用標(biāo)簽信息和用戶項(xiàng)目的三元關(guān)系,從源領(lǐng)域?qū)W習(xí)到的模式在目標(biāo)領(lǐng)域上進(jìn)行學(xué)習(xí),使其適應(yīng)目標(biāo)領(lǐng)域的一些特殊性。從試驗(yàn)結(jié)果可知,通過(guò)增加共享模式的隱藏因子維度可以提高推薦準(zhǔn)確率,緩解目標(biāo)領(lǐng)域稀疏性等問(wèn)題。
R 的取值不同對(duì)算法影響不同。本文針對(duì)不同的隱藏特征空間選取進(jìn)行了試驗(yàn)結(jié)果如圖7。
圖6 隱藏因子數(shù)目對(duì)MAE的影響
圖7 超參數(shù)λ 對(duì)MAE影響
從圖7 可以看出,推薦結(jié)果的平均絕對(duì)誤差MAE 隨著隱藏因子數(shù)目先減少后增加,在因子數(shù)在50 左右達(dá)到最優(yōu)效果,后面隨著因子數(shù)目增多,MAE 上升可能原因是產(chǎn)生了過(guò)擬合導(dǎo)致推薦效果下降。
λ 的取值,反映了目標(biāo)領(lǐng)域的特殊性,選取合適的λ 避免過(guò)擬合或者欠擬合。圖7 是以Eachmovie 為源領(lǐng)域 MovieLens 為目標(biāo)領(lǐng)域,R=50,選取Given10的實(shí)驗(yàn)結(jié)果。從圖中可以看出較λ 越大則弱化了源領(lǐng)域的模式,λ 越小便會(huì)產(chǎn)生較大的誤差,在此實(shí)驗(yàn)設(shè)定中,λ 取15 可以取得良好的實(shí)驗(yàn)結(jié)果。
在本文中,我們提出了一種新穎的跨領(lǐng)域協(xié)同過(guò)濾方法,通過(guò)共享張量的評(píng)分模式進(jìn)行推薦系統(tǒng),可以從輔助評(píng)分張量中傳遞有用的知識(shí),以補(bǔ)充其他一些評(píng)分稀疏的目標(biāo)域。知識(shí)以評(píng)分模式的形式轉(zhuǎn)移,評(píng)分模式則是通過(guò)從輔助領(lǐng)域中學(xué)習(xí)聚類后的用戶評(píng)分模式壓縮為信息豐富且緊湊的表示。因此,可以通過(guò)擴(kuò)展評(píng)分模式來(lái)重構(gòu)稀疏目標(biāo)領(lǐng)域。實(shí)驗(yàn)結(jié)果表明,評(píng)分模式遷移可以明顯優(yōu)于許多最先進(jìn)的方法。這可以證實(shí),在協(xié)同過(guò)濾中,確實(shí)可以從其他域中的輔助領(lǐng)域獲得額外的有用信息來(lái)幫助目標(biāo)領(lǐng)域。
在未來(lái)的工作中可以使用多種優(yōu)化技術(shù)優(yōu)化聚類過(guò)程和張量分解的過(guò)程??梢試L試使用不同的相似性度量方法來(lái)提高推薦結(jié)果。