馬驍烊,張 謐
(復(fù)旦大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201203)
當(dāng)用戶在查找文章或者論文的時候,他們會更多的考慮和自己興趣愛好、學(xué)術(shù)研究等的相關(guān)性,比如在citeulike或者Netflix網(wǎng)站中,一個正在學(xué)習(xí)深度學(xué)習(xí)的用戶,會更多的查找關(guān)于回歸、神經(jīng)網(wǎng)絡(luò)等相關(guān)的文章.通常,用戶會借助一些搜索引擎工具來幫助查找文章,但是這仍然需要不少時間.自動化推薦用戶感興趣的文章,目前已經(jīng)成為研究中的熱點(diǎn)問題.
在這篇文章中,我們研究的對象是在一個特定的系統(tǒng)中即面向用戶的文章在線收集系統(tǒng),比如citeulike等.在這樣的系統(tǒng)中,我們擁有用戶、文章和標(biāo)簽等相關(guān)實(shí)體.每個用戶都有自己已經(jīng)收集的文章集合,同時,用戶和文章共享相同標(biāo)簽集合,用以表明用戶或者文章的相關(guān)屬性信息.
傳統(tǒng)的推薦算法可以大致分為三類:基于內(nèi)容的方法[1]、基于協(xié)同過濾[2,3]的方法以及兩者結(jié)合[4,5]的方法.然而實(shí)際情況中,由于用戶和文章之間的交互關(guān)系通常來說十分的稀疏,傳統(tǒng)的推薦算法比如協(xié)同過濾很難很好的應(yīng)用[6,7].為了解決這個問題,通常的做法是通過挖掘更多的輔助信息,充分利用這些信息來提高算法的效果.在面向用戶的文章收集系統(tǒng)中,不但擁有交互信息,如用戶對于文章的收集等,還有文章中包含的文本信息以及標(biāo)簽信息可以充分利用.
為了做出更好的推薦,學(xué)習(xí)到一個準(zhǔn)確的、完整的特征表示將會十分的有用.而在最近的研究中表明,不論是有監(jiān)督還是無監(jiān)督的情況下,深度學(xué)習(xí)模型都在特征表示學(xué)習(xí)中展示出了其強(qiáng)大的能力,尤其在計算機(jī)視覺[8,9]和自然語言處理領(lǐng)域[10].然而,單純利用深度學(xué)習(xí)雖然可以很好的學(xué)習(xí)到特征的表示,但是無法捕捉到用戶和文章之間的交互關(guān)系,從而難以形成一個良好的文章推薦系統(tǒng).綜上所述,結(jié)合深度學(xué)習(xí)和協(xié)同過濾算法將會是最佳的選擇.
盡管已經(jīng)有很多關(guān)于協(xié)同過濾結(jié)合深度學(xué)習(xí)模型的工作,并且獲得了效果上的提升[11,12].但是大部分工作在特征表示的學(xué)習(xí)過程中都忽視了存在于文章和標(biāo)簽中的具體語義信息.我們知道,不同領(lǐng)域的文章不論是在寫法還是詞語使用上都有很大的差別,利用同樣的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)并不能很好的捕捉這其中的差別.不同于之前的工作,在這篇文章中,我們設(shè)計了一個新穎的推薦算法框架—標(biāo)簽卷積神經(jīng)網(wǎng)絡(luò)(Tagged Convolutional AutoEncoder,TCAE).在這個框架中,我們對文本信息進(jìn)行編碼以挖掘語義信息,同時利用標(biāo)簽信息對卷積神經(jīng)網(wǎng)絡(luò)的卷積核進(jìn)行分組,使得具有不同標(biāo)簽的文章會使用不同的卷積核進(jìn)行特征的學(xué)習(xí).通過這樣的設(shè)計,我們可以保證不同的卷積核可以學(xué)習(xí)到不同的語言提取模式,從而保證特征的準(zhǔn)確性.
本文在真實(shí)的數(shù)據(jù)集citeulike進(jìn)行試驗(yàn)證明TCAE算法對比其他算法在效果上有著顯著的提升.
推薦系統(tǒng)的本質(zhì)是利用用戶的歷史數(shù)據(jù),預(yù)測用戶在特定商品上的偏好程度.目前研究表明,基于內(nèi)容的推薦算法獲得了廣泛的應(yīng)用和成功[13].越來越多基于內(nèi)容的推薦算法被設(shè)計出來,核心部分的設(shè)計都比較類似,即利用一些算法表示出用戶和商品的畫像,然后進(jìn)行比較.然而僅僅基于內(nèi)容的推薦算法面臨一些本質(zhì)上的問題,比如無法挖掘新類型的用戶喜好等.一個良好的解決辦法就是結(jié)合協(xié)同過濾和基于內(nèi)容的推薦算法[12],有效的結(jié)合用戶-商品矩陣和他們的基本信息可以獲得更好的推薦效果.
目前推薦系統(tǒng)更多的應(yīng)用在商品上,比如電影,音樂,生活用品等.最近,推薦系統(tǒng)已經(jīng)擴(kuò)展到學(xué)術(shù)文章的推薦上來,大多數(shù)工作都著眼于引用的推薦[14].Sugiyama[15]則利用引用關(guān)系等直接進(jìn)行學(xué)術(shù)文章的推薦.
最近,深度學(xué)習(xí)方法已經(jīng)被廣泛的應(yīng)用到推薦系統(tǒng)中,而且很多有很多工作[11,12,16,17]發(fā)表出來.Wang[12]提出CDL(Collaboration Deep Learning)算法,把深度學(xué)習(xí)和推薦系統(tǒng)有效的結(jié)合起來,基于CDL,可以很好的將輔助信息利用到推薦模型中來,但是一個嚴(yán)重的問題是,該算法利用詞袋模型來表示文章,這樣是設(shè)計忽視了文章中詞語和語句的順序,無法捕捉到詞語和詞語之間的關(guān)系,從而導(dǎo)致信息的缺失.Zhang[11]提出了CKE(Collaborative Knowledge based Embedding)模型,該模型同時對結(jié)構(gòu)化和非結(jié)構(gòu)化的信息進(jìn)行編碼以用來特征提取.同樣的,該模型存在語義信息缺失的問題.
同時,標(biāo)簽包含了豐富的信息,高耀東[18]等則將文本標(biāo)簽作為普通標(biāo)注,丟失掉其中的語義信息,還有一些工作則大多簡單的把標(biāo)簽當(dāng)做普通文本來處理,利用相同的結(jié)構(gòu)處理具有不同標(biāo)簽集合的文章[19–21],盡管不同類別的文章共享一些相同的信息或者語言模式,但是每個不同類別同樣擁有自己獨(dú)特的語言模式.Simon[22]利用對于不同分組的用戶分別訓(xùn)練了不同的回歸模型,受啟發(fā)于此,我們設(shè)計標(biāo)簽神經(jīng)網(wǎng)絡(luò),利用標(biāo)簽將卷積神經(jīng)網(wǎng)絡(luò)中的卷積核進(jìn)行分組,充分利用標(biāo)簽中包含的語義信息,從而獲得更好的推薦效果.
在本文中,我們推薦任務(wù)是為特定的用戶推薦其可能喜歡的文章.這該部分,我們首先聲明一些符號的定義,然后明確的定義我們?nèi)蝿?wù).
一個面向用戶的文章收集系統(tǒng)通常具有文本信息和標(biāo)簽信息,該數(shù)據(jù)可以被定義為集合{U,A,T},其中分別表示用戶集合,文章集合和標(biāo)簽集合.
如圖1所示,用戶收集文章構(gòu)成了用戶和文章之間的交互矩陣Ru,a∈RM×N,M和N分別表示用戶和文章的總體數(shù)目,R的取值區(qū)間{0,1},0表示用戶沒有收集該文章,1表示用戶收集了該文章.同時,文章和用戶同時有用自己的標(biāo)簽集合,分別用Tu、Ta表示.文章/用戶的內(nèi)容信息我們利用一個矩陣Xa/u∈Rd×l,該表示我們會在后面的內(nèi)容詳細(xì)講解.

圖1 面向用戶的文章收集系統(tǒng)
然后本文中我們的主要任務(wù)就是在一個面向用戶的文章收集系統(tǒng)中,給定用戶u的文章集合,文章的文本信息、及標(biāo)簽信息,去預(yù)測該用戶可能喜歡的文章列表.
在該部分,我們將詳細(xì)介紹我們我們的模型設(shè)計.首先我們介紹基于標(biāo)簽的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計用以學(xué)習(xí)用戶和文章的特征表示,然后介紹和協(xié)同過濾結(jié)合進(jìn)行最后的推薦設(shè)計.
正如之前我們我們所說的,我們擁有用戶和文章的文本信息(在這里我們把用戶的文章集合作為用戶的文本信息),我們模型的核心就是去學(xué)習(xí)用戶和文章的特征表示.一個良好的特征可以用于多種監(jiān)督學(xué)習(xí)的任務(wù)比如用戶做推薦.
對于文本信息的特征提取工作,最常用的方法就是自編碼器(AutoEncoder),自編碼器通過重構(gòu)輸入獲得對于輸入的編碼.Wang等[12,23,24]采用降噪自編碼器用來學(xué)習(xí)文章的特征表示,該文章采用詞袋模型作為自編碼器的輸入,然后利用前饋神經(jīng)網(wǎng)絡(luò)構(gòu)建模型.然而這樣的設(shè)計存在一些問題,首先,利用詞袋模型的輸入會損文章中詞語之間的順序信息,這個對于理解語義十分重要.而且,線性的神經(jīng)網(wǎng)絡(luò)模型不適合文本信息的特征提取.最近一些研究表明,卷積神經(jīng)網(wǎng)絡(luò)(本文選擇的方法)和循環(huán)神經(jīng)網(wǎng)絡(luò)可以很好的應(yīng)對文本信息的處理.
為了解決上述問題,我們改進(jìn)之前的降噪自編碼器.首先,我們將文章表示成詞語的序列{w1,w2,···,wl}每個wi都是從單詞表矩陣V中獲得,矩陣V我們通過預(yù)訓(xùn)練的word2vec模型獲得.所以,對于每一篇文章,我們可以構(gòu)建編碼矩陣Xa/u如下所示:

其中,wi表示每個詞的編碼形式,長度為d,l表示文本中詞語的數(shù)目.
然后,我們將簡單的前饋神經(jīng)網(wǎng)絡(luò)改進(jìn)為已經(jīng)被證實(shí)對于處理文本信息具有良好效果的卷積神經(jīng)網(wǎng)絡(luò).最后,為了充分利用標(biāo)簽信息,我們將標(biāo)簽加入到神經(jīng)網(wǎng)絡(luò)的設(shè)計中去,我們把其命名為標(biāo)簽卷積自編碼(Tagged Convolutional AutoEncoder,TCAE).標(biāo)簽卷積自編碼也是一個自編碼器的變種,它將標(biāo)簽信息引入作為卷積核設(shè)計標(biāo)準(zhǔn),從而可以學(xué)習(xí)到更加精準(zhǔn)的特征表示.
如圖2所示,自編碼器的本質(zhì)是通過重構(gòu)輸入獲得良好的編碼表示,所以可以分為編碼和解碼兩個部分.同時為了增加提取特征的魯棒性,在輸入端加入噪聲.自編碼器的目標(biāo)即優(yōu)化式(1):


圖2 基于標(biāo)簽的卷積自編碼器
其中,X′是加入噪聲的版本,X是真實(shí)輸入的數(shù)據(jù),W是權(quán)重矩陣.
圖3展示了我們?nèi)绾螌?biāo)簽應(yīng)用到編碼器的設(shè)計細(xì)節(jié).在卷積層,卷積操作可以表示為式(2):

其中,m是卷積核寬度,標(biāo)簽用t表示,Tu,Ti是用戶或者文章的標(biāo)簽集合.激活函數(shù)在這里我們選擇ReLU,定義為max(0,x),保證我們的特征圖總是正數(shù).Nair[25]表明利用ReLU激活函數(shù)比sigmoid和tanh效果要好.
從式(2)我們可以看到,我們將每一個卷積核和一個特定的標(biāo)簽t綁定,當(dāng)用戶/文章?lián)碛袠?biāo)簽t的時候,該卷積通道則正常進(jìn)行,否則該通道輸出為0.所以我們可以保證每個卷積核可以提取該標(biāo)簽下特定的特征模式.當(dāng)然,我們?nèi)匀槐A粢恍┩ㄓ玫木矸e核,保證一些泛化的特征的提取,而且可以在標(biāo)簽稀疏的情況下改善實(shí)驗(yàn)的結(jié)果.

圖3 編碼過程細(xì)節(jié)
在卷積層之后,得到的特征圖作為池化層的輸入,實(shí)驗(yàn)表明,選擇最大化池化層,在這里可以獲得最好的效果.最后,我們加了3層全連接層去捕獲各個特征圖之間的關(guān)系.
在解碼過程中,我們選擇反卷積操作,并且取消上采樣操作,因?yàn)門urchenko[26]表明,無論我們采用復(fù)制或者變量開關(guān)的方式,都會導(dǎo)致很多0變量的產(chǎn)生,所以我們采用和Masci[27]一樣的操作:

其中,fmt是特征圖,bt是偏置項,是卷積核的逆.
最終標(biāo)簽卷積自編碼的中間層fXu/fXa就是我們學(xué)習(xí)到的用戶和文章的特征表示.
通過標(biāo)簽卷積自編碼器,我們可以獲得用戶和文章的特征表示fXu/fXa,然后,我們可以根據(jù)以下幾步對于特定用戶做出預(yù)測:
(1)對于每個用戶u
1)通過TCAE,我們得到用戶的特征表示fXu

(2)對于每篇文章a
1)通過TCAE,我們得到用戶的特征表示fXa
2)文章的隱藏偏置向量?a~N(0,λ?a1Ia),然后文章a的隱藏變量可以表示為:

(3)對于每個二元組(u,a)∈R,偏好預(yù)測可以表示為:

參數(shù)學(xué)習(xí):我們利用最大后驗(yàn)概率來進(jìn)行參數(shù)的更新和學(xué)習(xí).
我們在兩個真實(shí)的數(shù)據(jù)集(citeulike-a,citeulike-t)上進(jìn)行了我們的實(shí)驗(yàn).這兩個數(shù)據(jù)集都來自citeulike.citeulike是一個社交化的文章收集系統(tǒng),可以幫助用戶管理感興趣的文章.citeulike-a數(shù)據(jù)集有約5551用戶和16 980篇文章,用戶和文章的交互數(shù)為210 537,而citeulike-t分別是7947用戶,25 975文章和134 860交互數(shù).可以看出,兩個數(shù)據(jù)集都非常稀疏,這使得傳統(tǒng)的基于協(xié)同過濾算法的推薦系統(tǒng)很難生效.同時,我們可以看出,citeulike-t比citeulike-a 要更加稀疏,兩個數(shù)據(jù)集的有效數(shù)據(jù)分別為0.07%和0.22%,后面的實(shí)驗(yàn)也驗(yàn)證了以上數(shù)據(jù).合理地利用數(shù)據(jù)集中包含的文章文本信息以及標(biāo)簽信息,可以幫助我們的推薦系統(tǒng)設(shè)計獲得更好的效果.
我們選擇80%數(shù)據(jù)作為我們的訓(xùn)練集,把剩下的部分作為測試集.為了評價推薦算法的效果,我們選擇準(zhǔn)確率(Precision)和NDCG.和所有的推薦算法預(yù)測一樣,我們把預(yù)測結(jié)果進(jìn)行排序,并選擇最高的M個作為我們的推薦結(jié)果.
準(zhǔn)確率(Precision):在評價推薦算法的時候,準(zhǔn)確率是一種十分常見的評價標(biāo)準(zhǔn),和大多數(shù)推薦算法一樣,我們返回偏好程度最高的M篇文章作為我們的推薦結(jié)果.
NDCG:NDCG(Normalized Discounted Cumulative Gain)也是一種常見的評價指標(biāo),不同于準(zhǔn)確率,NDCG更加注重排序的準(zhǔn)確性.NDCG的值是DCG和Ideal CDG的比值.

本文采用了如下算法作為我們實(shí)驗(yàn)的對照算法:
UB-CF:基于用戶的協(xié)同過濾算法.通過將于目標(biāo)用戶類似的近鄰信息進(jìn)行聚合,然后預(yù)測出目標(biāo)用戶的喜好.
CMF:集合矩陣分解是一種矩陣分解模型的擴(kuò)展[28],通過將不同的矩陣信息進(jìn)行同步分解,然后進(jìn)行最后的預(yù)測.在本文中,這些信息包括了用戶-文章矩陣和文章之間的引用矩陣.
DeepMusic:該模型是一個音樂推薦模型[29],利用音樂相關(guān)的信息進(jìn)行基于內(nèi)容的推薦算法設(shè)計.
CDL:基于神經(jīng)網(wǎng)絡(luò)的協(xié)同過濾算法[12],基本思想是利用自編碼器對文章進(jìn)行編碼,然后集合協(xié)同過濾進(jìn)行推薦算法.
CKE:基于知識編碼的協(xié)同過濾算法[11],和CDL大體類似,區(qū)別在于,CKE將包括結(jié)構(gòu)化和非結(jié)構(gòu)的信息統(tǒng)一進(jìn)行編碼,然后結(jié)合協(xié)同過濾進(jìn)行預(yù)測.
在實(shí)驗(yàn)過程中,我們首先將所有的文章通word2vec進(jìn)行編碼,編碼的長度我們設(shè)置為50.然后我們將這些編碼作為已知的知識,用以后面的模型訓(xùn)練的輸入.對于UB-CF對照算法,我們設(shè)置鄰居數(shù)目為10,然后利用近鄰信息進(jìn)行預(yù)測.對于CMF算法,我們設(shè)置對于不同上下文的隱藏變量的正則化超參數(shù)為10.對于DeepMusic,CDL和CKE,我們采用和發(fā)表文章中相同的設(shè)置.
本文在兩個數(shù)據(jù)集citeuliek-a和citeulike-t上將我們的模型和對照算法進(jìn)行了對比.
從圖4和圖5中可以看出,本文提出的TCAE算法在兩個數(shù)據(jù)集上均有明顯提升.例如在圖2中,TCAE模型在citeulike-a上相比于最好的對照實(shí)驗(yàn)CKE模型有著16%以上的提升,在圖3中,NDCG則有超過20%的效果提升.由于citeulike-t更加稀疏,整體效果比citeulike-a稍差.上述實(shí)驗(yàn)表面,有效的利用文本信息可以提高推薦系統(tǒng)的準(zhǔn)確性.相對于表現(xiàn)稍好的對照模型CDL和CKE,兩者都有文本信息結(jié)合神經(jīng)網(wǎng)絡(luò)的設(shè)計,CDL基于詞袋模型的設(shè)計不利于文本信息的挖掘,而CKE對所有的文本信息等同對待,同樣不能挖掘更加良好的文本特征表示.我們設(shè)計的TCAE,不但可以中分挖掘文本信息中語義知識,同時因?yàn)闃?biāo)簽卷積通道的設(shè)計,使得我們可以對不同的文本信息采用不同結(jié)構(gòu)的特征提取模型,保證了我們最后提取到的特征的準(zhǔn)確性,下一節(jié)的內(nèi)容也充分驗(yàn)證了我們設(shè)計具有如此效果.

圖4 各模型準(zhǔn)確率在citeulike-a,citeulike-t上結(jié)果

圖5 各模型NDCG在citeulike-a,citeulike-t上結(jié)果
同時為了驗(yàn)證我們我們的效果提升的確來源于標(biāo)簽的高效使用,我們同時在citeulike-a數(shù)據(jù)集上做了以下幾個實(shí)驗(yàn):1)使用普通的卷積神經(jīng)網(wǎng)絡(luò);2)使用普通的前饋神經(jīng)網(wǎng)絡(luò)分別代替標(biāo)簽卷積神經(jīng)網(wǎng)絡(luò).
從圖6中可以出,使用標(biāo)簽進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計可以有效的提升實(shí)驗(yàn)效果,這也說明標(biāo)簽的合理使用可以幫助我們提取到更加良好的特征,做出更好的推薦效果.同時可以看出,當(dāng)使用普通的前饋神經(jīng)網(wǎng)絡(luò)時,其效果和CDL模型效果類似.

圖6 標(biāo)簽在實(shí)驗(yàn)效果中的驗(yàn)證
本文主要研究了在面向用戶的文章收集系統(tǒng)中對特定用戶進(jìn)行文章偏好的預(yù)測從而進(jìn)行推薦.文中提出基于標(biāo)簽的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計,有效的將系統(tǒng)中的標(biāo)簽信息利用起來,而且將深度學(xué)習(xí)和協(xié)同過濾進(jìn)行有效的結(jié)合.同時在真實(shí)的數(shù)據(jù)集citeulike上進(jìn)行了實(shí)驗(yàn)驗(yàn)證,證明了本文提出的算法可以獲得更加優(yōu)秀的推薦結(jié)果.在未來的工作中,將會繼續(xù)關(guān)注關(guān)于學(xué)術(shù)文章的推薦算法,以及深度學(xué)習(xí)在推薦領(lǐng)域的應(yīng)用,尤其是結(jié)合自然語言處理相關(guān)內(nèi)容,來進(jìn)行更加有效的挖掘隱藏在文章中的潛在知識,設(shè)計效果更好的推薦系統(tǒng)算法.