陳子健,李俊,岳兆娟,趙澤方
1.中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190
2.中國(guó)科學(xué)院大學(xué),北京 100049
隨著互聯(lián)網(wǎng)的普及與發(fā)展,各類(lèi)數(shù)據(jù)信息在網(wǎng)絡(luò)空間內(nèi)呈爆炸式的增長(zhǎng),如何讓用戶在海量的信息中尋找到自己感興趣的信息成為了一個(gè)亟待解決的問(wèn)題。為了解決這一問(wèn)題,推薦系統(tǒng)應(yīng)運(yùn)而生,它通過(guò)用戶的交互歷史為用戶提供個(gè)性化的信息推薦,滿足用戶對(duì)信息的需要。近年來(lái),推薦系統(tǒng)在電影、音樂(lè)、新聞、電商、短視頻等領(lǐng)域都發(fā)揮著巨大的作用,在為用戶帶來(lái)便利的同時(shí)也具有相當(dāng)大的商業(yè)價(jià)值。
傳統(tǒng)的推薦方法可以分為三大類(lèi):基于內(nèi)容的推薦、協(xié)同過(guò)濾推薦以及混合推薦?;趦?nèi)容的推薦是最簡(jiǎn)單有效的推薦算法,基本思想是從項(xiàng)目?jī)?nèi)容相似性方面進(jìn)行推薦,為用戶推薦與其交互過(guò)的項(xiàng)目?jī)?nèi)容相似的項(xiàng)目?;趨f(xié)同過(guò)濾的推薦算法利用群體智慧的思想,推薦結(jié)果更具新穎性。混合推薦算法則是將多種不同的推薦算法融合起來(lái),發(fā)揮各自的優(yōu)勢(shì)。
目前使用最為廣泛的推薦模型當(dāng)屬協(xié)同過(guò)濾推薦模型。具體可分為基于鄰域的協(xié)同過(guò)濾與基于模型的協(xié)同過(guò)濾。其中基于鄰域的協(xié)同過(guò)濾根據(jù)用戶與項(xiàng)目的交互歷史信息,如評(píng)分矩陣,通過(guò)相似度的計(jì)算,計(jì)算出用戶之間的相似度或項(xiàng)目之間的相似度,從而進(jìn)行基于用戶或基于項(xiàng)目的推薦?;谀P偷膮f(xié)同過(guò)濾則是通過(guò)構(gòu)建偏好模型,提取用戶和項(xiàng)目的隱式空間表示,預(yù)測(cè)用戶對(duì)項(xiàng)目的潛在偏好從而進(jìn)行推薦。這其中最為著名的模型為矩陣分解推薦模型,將用戶的評(píng)分矩陣分解成為兩個(gè)規(guī)模較小的矩陣,用兩個(gè)矩陣相乘得到的結(jié)果對(duì)原始的評(píng)分矩陣進(jìn)行補(bǔ)全從而得到用戶未評(píng)分區(qū)域的預(yù)測(cè)的評(píng)分。協(xié)同過(guò)濾的優(yōu)勢(shì)在于僅使用交互矩陣就可以進(jìn)行推薦,不依賴于其他信息,而且相比較于基于內(nèi)容的推薦可以提供更加多樣化的推薦結(jié)果,因此受到了廣泛的關(guān)注。然而協(xié)同過(guò)濾方法也存在著一些問(wèn)題,以矩陣分解推薦模型為例,它只能提取用戶和項(xiàng)目的淺層次特征,無(wú)法提取到深層次的非線性特征;此外,交互矩陣的數(shù)據(jù)稀疏性也使得矩陣分解模型容易出現(xiàn)過(guò)擬合等問(wèn)題,對(duì)推薦的效果造成了不良的影響。
近年來(lái),深度學(xué)習(xí)在圖像處理、自然語(yǔ)言處理、語(yǔ)音識(shí)別等許多領(lǐng)域都展現(xiàn)出了強(qiáng)大的能力。得益于其在特征提取與特征融合方面的優(yōu)勢(shì),推薦系統(tǒng)領(lǐng)域的研究人員可以通過(guò)深度學(xué)習(xí)的方式將更多有效信息引入到推薦過(guò)程中來(lái),提升推薦準(zhǔn)確率的同時(shí),緩解傳統(tǒng)協(xié)同過(guò)濾推薦算法的數(shù)據(jù)稀疏性與冷啟動(dòng)問(wèn)題。
針對(duì)協(xié)同過(guò)濾存在的上述問(wèn)題,本文使用深度學(xué)習(xí)技術(shù),提出了一種混合推薦模型以提升推薦效果,本文的工作如下:
(1)使用降噪自編碼器代替?zhèn)鹘y(tǒng)矩陣分解方法,從評(píng)分矩陣中獲取到用戶和項(xiàng)目魯棒性的非線性特征表示。
(2)將屬性信息融合到特征表示中去,構(gòu)建一種混合推薦模型,通過(guò)訓(xùn)練確定模型參數(shù),得到用戶對(duì)項(xiàng)目的預(yù)測(cè)評(píng)分。
(3)通過(guò)實(shí)驗(yàn)進(jìn)行對(duì)比驗(yàn)證,證明本文提出的模型相較于傳統(tǒng)的推薦模型可以取得更好的評(píng)分預(yù)測(cè)效果。
自編碼器是一種經(jīng)典的自監(jiān)督機(jī)器學(xué)習(xí)模型,一個(gè)最基本的自編碼器由輸入層、隱藏層和輸出層三部分組成,其中輸入層和輸出層的維度相同,隱藏層的維度較小。輸入層到隱藏層的計(jì)算過(guò)程被稱為編碼過(guò)程,隱藏層到輸出層的計(jì)算過(guò)程則被稱為解碼過(guò)程。通過(guò)最小化輸出層與輸入層的重構(gòu)誤差訓(xùn)練網(wǎng)絡(luò)使得解碼后的數(shù)據(jù)盡可能地接近輸入層的原始數(shù)據(jù)。近年來(lái)許多研究將自編碼器應(yīng)用到推薦領(lǐng)域。Sedhain等[1]將自編碼器與協(xié)同過(guò)濾推薦結(jié)合起來(lái),提出了AutoRec模型,使用一個(gè)單隱藏層的自編碼器對(duì)評(píng)分矩陣進(jìn)行編碼與解碼,在輸出層獲得重構(gòu)后的評(píng)分向量,以此得到用戶對(duì)項(xiàng)目的預(yù)測(cè)評(píng)分,這是自編碼器與推薦系統(tǒng)的第一次結(jié)合。Strub等[2]在此基礎(chǔ)上,使用棧式降噪自編碼器學(xué)習(xí)用戶和項(xiàng)目的特征表示,對(duì)缺失的評(píng)分進(jìn)行預(yù)測(cè),增強(qiáng)了模型的表示能力和魯棒性。Zhou等[3]使用棧式降噪自編碼器處理電影評(píng)分矩陣,得到電影的潛在特征表示,利用基于項(xiàng)目的協(xié)同過(guò)濾計(jì)算電影之間的相似度進(jìn)行電影推薦。
自編碼器中隱層的輸出向量可以看作是原始輸入向量的降維壓縮表示,其在最大程度地保留了輸入向量中的關(guān)鍵特征信息的同時(shí),也可以提取到交互矩陣中的非線性特征。由于用戶和項(xiàng)目之間存在著復(fù)雜的交互關(guān)系,相較于單純地使用自編碼器的重構(gòu)輸出作為預(yù)測(cè)結(jié)果,將用戶與項(xiàng)目的隱式空間中的基于交互過(guò)程的特征表示提取出來(lái),更有利于下游任務(wù)對(duì)用戶和項(xiàng)目之間復(fù)雜交互關(guān)系進(jìn)行建模。
由于評(píng)分矩陣的稀疏性,僅使用評(píng)分矩陣的推薦已經(jīng)很難取得令人滿意的效果,隨著大數(shù)據(jù)時(shí)代的到來(lái),各類(lèi)屬性信息的獲取變得越來(lái)越容易,但是由于屬性信息具有多模態(tài)、異構(gòu)性、分布不均勻等問(wèn)題,如何有效地構(gòu)建模型,提取和利用屬性信息提高推薦的準(zhǔn)確性也成為了推薦領(lǐng)域的熱門(mén)研究問(wèn)題[4]。Shan等[5]提出了Deep-Crossing推薦模型用于廣告領(lǐng)域,從搜索詞、廣告標(biāo)題、點(diǎn)擊率、落地頁(yè)等屬性信息中提取特征,使用多層神經(jīng)網(wǎng)絡(luò)進(jìn)行特征融合完成點(diǎn)擊率預(yù)測(cè)任務(wù)實(shí)現(xiàn)廣告推薦。Cheng等[6]提出了Wide&Deep模型,對(duì)提取到的屬性信息采用不同的融合方式,使用多層神經(jīng)網(wǎng)絡(luò)構(gòu)建Deep部分讓模型具有“泛化能力”,使用單輸入層構(gòu)建Wide部分讓模型具有“記憶能力”,通過(guò)這樣的結(jié)構(gòu)兼顧了用戶興趣的專一性與發(fā)散性,完成推薦任務(wù)。Zhang等[7]使用知識(shí)圖譜、電影摘要、電影海報(bào)等作為屬性信息,分別提取知識(shí)圖譜中實(shí)體的結(jié)構(gòu)化表示、電影摘要中的文本表示以及海報(bào)中的視覺(jué)表示,對(duì)多模態(tài)的特征進(jìn)行整合,從而提升推薦的效果。
基于以上的研究分析,本文提出一種基于自編碼器與屬性信息的混合推薦模型DAAI,使用兩個(gè)降噪自編碼器處理評(píng)分矩陣,分別提取出評(píng)分矩陣中蘊(yùn)含的用戶特征與項(xiàng)目特征;同時(shí)將用戶和項(xiàng)目的各類(lèi)屬性信息通過(guò)DNN、CNN等方式處理得到基于屬性信息的用戶特征與項(xiàng)目特征。將兩種特征融合之后,通過(guò)MLP層進(jìn)行特征融合并輸出預(yù)測(cè)評(píng)分。最后使用真實(shí)評(píng)分與預(yù)測(cè)評(píng)分的誤差訓(xùn)練整個(gè)網(wǎng)絡(luò)的參數(shù)。推薦模型結(jié)構(gòu)如圖1所示。
圖1 DAAI推薦模型結(jié)構(gòu)圖Fig.1 Structure of DAAI recommendation system
不同于現(xiàn)有的基于深度學(xué)習(xí)的推薦模型,DAAI使用評(píng)分矩陣的目的是提取矩陣中的非線性特征,而不是單純地將評(píng)分作為模型訓(xùn)練的監(jiān)督信號(hào)或直接重構(gòu)矩陣。而相較于協(xié)同過(guò)濾推薦模型,DAAI加入了屬性信息以提高推薦效果。DAAI與現(xiàn)有的一些推薦模型的對(duì)比如表1所示。
表1 DAAI與其他模型的對(duì)比Table 1 Comparison between DAAI and other models
由于傳統(tǒng)的自編碼器存在過(guò)擬合,泛化能力差等缺點(diǎn),所以本文使用降噪自編碼器進(jìn)行特征提取。區(qū)別于普通的自編碼器,降噪自編碼器在輸入層隨機(jī)地將一部分原始數(shù)據(jù)替換為噪聲數(shù)據(jù),而在輸出層使用原始數(shù)據(jù)進(jìn)行誤差計(jì)算訓(xùn)練模型,通過(guò)這種方式提高了自編碼器的泛化能力,緩解了交互矩陣的數(shù)據(jù)噪音問(wèn)題[8]。
本文使用兩個(gè)降噪自編碼器在用戶項(xiàng)目交互矩陣上進(jìn)行特征提取,分別是提取用戶特征的模塊與提取項(xiàng)目特征的模塊,以為例,自編碼器的訓(xùn)練過(guò)程如圖2所示。
圖2 降噪自編碼器的訓(xùn)練過(guò)程Fig.2 Training process of denoising autoencoder
l是具體所在的隱藏層,W代表權(quán)重矩陣,b代表偏置項(xiàng),設(shè)隱藏層的總數(shù)為L(zhǎng),將L/2層之前看作是編碼部分,L/2層之后看作是解碼部分,是隱藏層神經(jīng)元的非線性激活函數(shù);模型的最后一層為輸出層,輸出層的表示為,最小化均方誤差作為訓(xùn)練目標(biāo):,使用反向傳播將輸出層的誤差反向傳播至各層,調(diào)整各權(quán)重和偏置的值。訓(xùn)練的目的是從用戶矩陣中提取用戶的特征表示,即第L/2層的隱層輸出。將用戶的評(píng)分向量通過(guò)網(wǎng)絡(luò)的正向傳播可以獲取到L/2層的輸出即用戶基于評(píng)分的特征向量u*。
同理,將評(píng)分矩陣轉(zhuǎn)置后,將項(xiàng)目的評(píng)分向量輸入到ItemDAE模塊獲得ItemDAE的L/2層的輸出即項(xiàng)目基于評(píng)分的特征向量i*。
為了進(jìn)一步提升推薦效果,本文將用戶與項(xiàng)目的屬性信息加以利用,在上一節(jié)通過(guò)評(píng)分矩陣得到的特征表示的基礎(chǔ)上,結(jié)合基于屬性信息的特征表示。一般來(lái)說(shuō),用戶的屬性包括用戶ID、性別、年齡、職業(yè)、地區(qū)等,而項(xiàng)目的屬性包括項(xiàng)目ID、類(lèi)型、標(biāo)題、摘要等。為了在推薦模型中使用這些信息,首先需要將各類(lèi)屬性信息經(jīng)過(guò)一定的預(yù)處理。在本文中,將用戶性別、職業(yè)、項(xiàng)目類(lèi)型等信息通過(guò)構(gòu)建字典的方式映射為數(shù)字信息。設(shè)用戶的屬性信息向量為項(xiàng)目的非文本屬性信息向量為在輸入層之后通過(guò)嵌入層將屬性信息中高維稀疏的編碼表示映射為低維稠密的編碼表示。將得到的嵌入表示輸入到隱藏層中對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,隱藏層的輸出即為用戶基于屬性信息的特征表示和項(xiàng)目的基于非文本屬性的特征表示,計(jì)算過(guò)程如下:
其中f為激活函數(shù),這里采用ReLu激活函數(shù),w為神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣,b代表偏置值。
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),被廣泛應(yīng)用于圖像音頻等領(lǐng)域的特征提取,通過(guò)多個(gè)卷積核在特征矩陣上的移動(dòng)來(lái)提取多重局部特征,聚合局部特征來(lái)得到原始數(shù)據(jù)的特征表示[9]。最近的研究證明,卷積神經(jīng)網(wǎng)絡(luò)在文本處理方面也可以取得良好的效果。在本文的工作中,采用CNN-Rand的方式對(duì)項(xiàng)目的文本信息進(jìn)行特征抽取[10-11],文本的詞匯部分被隨機(jī)初始化,并在訓(xùn)練的過(guò)程中進(jìn)行調(diào)整,得到每個(gè)詞的嵌入向量。在整體模型訓(xùn)練的過(guò)程中,從嵌入層中得到電影標(biāo)題的向量集合T=[t1,t2,t3,…,tn],其中t表示每個(gè)詞的嵌入向量,n表示標(biāo)題中詞的個(gè)數(shù)。在卷積層,將矩陣T作為卷積神經(jīng)網(wǎng)絡(luò)的輸入進(jìn)行卷積操作。使用大小為k×d的卷積核Fi對(duì)矩陣從上至下進(jìn)行卷積操作,k為卷積核的寬度,即每次卷積覆蓋的單詞數(shù)量,d為每個(gè)單詞的維度。第i個(gè)卷積核在矩陣T上得到的第j個(gè)特征為eji,可以通過(guò)下面的公式得到:
每個(gè)卷積核對(duì)應(yīng)著不同的特征信息,且由于卷積核大小不同,得到的特征向量的長(zhǎng)度也是不同的,為了從每個(gè)卷積核中得到最有價(jià)值的信息,卷積層之后在池化層采用最大池化max-pooling操作提取每個(gè)向量中特征值最大的特征,去除冗余信息,組成該文本的完整文本語(yǔ)義向量z。
將池化后的向量輸入到全連接層,得到項(xiàng)目的文本特征表示it:
通過(guò)以上的工作,我們得到了用戶和項(xiàng)目基于評(píng)分矩陣的特征表示u*,i*,基于屬性信息的特征表示,將這兩種特征拼接在一起,得到用戶特征向量和項(xiàng)目特征向量,同樣使用concat操作。通過(guò)多層感知機(jī)對(duì)特征進(jìn)行交叉融合,輸出最后的預(yù)測(cè)評(píng)分。
推薦任務(wù)的最終目標(biāo)是盡可能準(zhǔn)確預(yù)測(cè)用戶對(duì)項(xiàng)目的評(píng)分,即使得逼近于,所以將模型的損失函數(shù)定義為:
實(shí)驗(yàn)編程環(huán)境為Python 3.6,深度學(xué)習(xí)計(jì)算框架為T(mén)ensorFlow 1.4,實(shí)驗(yàn)平臺(tái)為Google Colaboratory。
本實(shí)驗(yàn)采用在推薦系統(tǒng)實(shí)驗(yàn)中被廣泛使用的MovieLens數(shù)據(jù)集,該數(shù)據(jù)集由美國(guó)明尼蘇達(dá)大學(xué)的GroupLens研究小組收集提供。選用MovieLens-100K和MovieLens-1M兩個(gè)版本,數(shù)據(jù)集具體情況如表2所示。
表2 數(shù)據(jù)集信息統(tǒng)計(jì)Table 2 Information statistics of data sets
統(tǒng)一數(shù)據(jù)集的數(shù)據(jù)格式,去掉數(shù)據(jù)集中電影鏈接、電影題目中的發(fā)行年份等信息,將數(shù)據(jù)集按照80%、20%的比例劃分為訓(xùn)練集和測(cè)試集。由于本文將推薦問(wèn)題轉(zhuǎn)換為了評(píng)分預(yù)測(cè)問(wèn)題,所以采用均方根誤差RMSE作為實(shí)驗(yàn)的評(píng)價(jià)指標(biāo),RMSE的計(jì)算公式如下:
模型的結(jié)構(gòu)包括三部分,在降噪自編碼器部分,隱藏層的層數(shù)設(shè)置為3,中間隱層維度為200,采用sigmoid激活函數(shù),噪聲率設(shè)置為0.2;在屬性特征提取部分,文本卷積核的規(guī)模分別為{2,3,4,5},卷積核數(shù)目為8,用戶與項(xiàng)目的屬性信息表示維度均設(shè)置為200;評(píng)分?jǐn)M合部分全連接層數(shù)設(shè)置為3,激活函數(shù)為Relu,dropout為0.5,batch_size為128。整體采用Adam優(yōu)化器進(jìn)行訓(xùn)練。模型訓(xùn)練的過(guò)程中,學(xué)習(xí)率的選擇會(huì)對(duì)最終的實(shí)驗(yàn)效果造成較大的影響,實(shí)驗(yàn)表明學(xué)習(xí)率為0.0001時(shí)模型效果最好,在ML-100K數(shù)據(jù)集上誤差值隨學(xué)習(xí)率的變化趨勢(shì)如圖3所示。
圖3 不同學(xué)習(xí)率下RMSE的比較Fig.3 RMSE comparison with different learning rates
實(shí)驗(yàn)選用的對(duì)比模型包括:
(1)SVD[12]:經(jīng)典的基于用戶和項(xiàng)目的奇異值矩陣分解模型,將評(píng)分矩陣分解為奇異矩陣和奇異值。
(2)PMF[13]:概率矩陣分解模型,假設(shè)用戶隱向量、項(xiàng)目隱向量以及評(píng)分的分布都服從高斯分布。
(3)NMF[14]:非負(fù)矩陣分解模型,分解后的矩陣元素均為正值,符合實(shí)際打分的情況。
(4)U-AutoRec:基于用戶角度的自編碼器推薦模型,輸入用戶對(duì)項(xiàng)目的評(píng)分矩陣,通過(guò)編碼解碼預(yù)測(cè)缺失的評(píng)分值,對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行補(bǔ)全。
通過(guò)實(shí)驗(yàn)我們發(fā)現(xiàn),在ML-100K數(shù)據(jù)集上NMF模型的準(zhǔn)確率最高,DAAI模型的準(zhǔn)確率相較于其他三種模型均有提高,略低于NMF模型;而在數(shù)據(jù)更加稀疏的ML-1M數(shù)據(jù)集上面,DAAI模型可以取得最好的預(yù)測(cè)準(zhǔn)確率,相較于對(duì)比模型最多提升了2.9%。這意味著我們的模型在稀疏數(shù)據(jù)集上依然能取得良好的效果。實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同推薦模型的RMSE對(duì)比Table 3 RMSE comparison with different models
本文使用降噪自編碼器對(duì)評(píng)分矩陣進(jìn)行特征提取,使用DNN、CNN等方式結(jié)合屬性信息構(gòu)建推薦模型,通過(guò)實(shí)驗(yàn)證明相比較于傳統(tǒng)的基于評(píng)分矩陣的推薦模型可以取得更好的推薦效果。屬性信息的加入意味著在數(shù)據(jù)稀疏的情況下可以依靠屬性信息進(jìn)行推薦,在緩解數(shù)據(jù)稀疏性問(wèn)題方面起到了一定的作用。下一步可以將注意力機(jī)制和更多的屬性信息等加入推薦模型中,進(jìn)一步提升推薦的準(zhǔn)確度。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。