鐘裔靈,朵 琳
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
針對推薦系統(tǒng)的研究,對于提升用戶的使用體驗(yàn)和企業(yè)的經(jīng)濟(jì)效益具有重要意義。如果將與用戶存在交互行為的項(xiàng)目定義為正項(xiàng)目,不存在交互行為的項(xiàng)目定義為負(fù)項(xiàng)目,那么推薦實(shí)際上就是利用用戶的正項(xiàng)目獲取用戶偏好,從而為用戶推薦合適的負(fù)項(xiàng)目。對于用戶而言,不同的項(xiàng)目具有的價(jià)值是不一樣的,高價(jià)值的項(xiàng)目可以理解為通信領(lǐng)域里的信號,低價(jià)值的項(xiàng)目可以理解為通信領(lǐng)域里的噪聲。噪聲數(shù)據(jù)會影響推薦模型的參數(shù)優(yōu)化,從而降低推薦的準(zhǔn)確性。又因?yàn)檫@種價(jià)值差異必然存在,所以將低價(jià)值的項(xiàng)目對于推薦質(zhì)量的影響稱為自然噪聲問題。緩解這個(gè)問題,主要有兩個(gè)思路:一是對負(fù)項(xiàng)目執(zhí)行負(fù)采樣,通過提升負(fù)樣本的價(jià)值,來提高推薦的準(zhǔn)確性;二是利用特征學(xué)習(xí),通過挖掘用戶和項(xiàng)目的深層次本質(zhì)特征,來提升推薦的準(zhǔn)確性。
隨機(jī)采樣[1]是按照一定的采樣比從沒有觀察到交互行為的項(xiàng)目中隨機(jī)均勻地進(jìn)行采樣?;陧?xiàng)目流行度的采樣[2]是根據(jù)項(xiàng)目的流行度來進(jìn)行隨機(jī)非均勻的采樣。這種隨機(jī)的采樣策略,可能把用戶知道但不喜歡的項(xiàng)目篩選出來,而排除了用戶不知道但可能喜歡的項(xiàng)目。雖然執(zhí)行了負(fù)采樣,但對推薦性能的提升非常有限。一些研究者利用其他的輔助數(shù)據(jù)來改進(jìn)采樣器,如查看但未點(diǎn)擊和點(diǎn)擊但未購買的數(shù)據(jù)[3]。但由于這類數(shù)據(jù)規(guī)模有限,因此對推薦性能的提升效果不佳,甚至比上述隨機(jī)的采樣策略效果更差。有研究者利用采樣器與推薦器之間的對抗訓(xùn)練[4]來獲取高質(zhì)量的負(fù)樣本,在參數(shù)優(yōu)化上表現(xiàn)出比隨機(jī)采樣更好的性能。但該方法的缺陷在于可能把正例誤認(rèn)為是高質(zhì)量的負(fù)例。
自編碼器對于特征學(xué)習(xí)的有效性,在推薦系統(tǒng)中具有重要應(yīng)用。針對推薦系統(tǒng)的特征學(xué)習(xí)問題,RAMA K 等人提出了一種深度自編碼器[5],通過結(jié)合自編碼器的特征和嵌入,再利用深度神經(jīng)網(wǎng)絡(luò)來獲取預(yù)測評分。該算法分別構(gòu)建了用戶和項(xiàng)目自編碼器,用于學(xué)習(xí)用戶和項(xiàng)目的潛在特征,然后以最內(nèi)層的激活作為深度神經(jīng)網(wǎng)絡(luò)的輸入來預(yù)測評分。實(shí)驗(yàn)表明,該算法具有高度靈活的模型,對不同數(shù)據(jù)都具有較強(qiáng)的適用性。針對移動應(yīng)用的測試任務(wù),CHENG J 等人提出了一種基于深度學(xué)習(xí)的測試任務(wù)推薦算法[6]。該算法對測試人員和測試任務(wù)進(jìn)行特征分析,將特征數(shù)據(jù)輸入到棧式邊緣降噪自編碼器,從而學(xué)習(xí)更深層次的特征,然后利用深度神經(jīng)網(wǎng)絡(luò)來預(yù)測評分。實(shí)驗(yàn)表明,該算法在推薦準(zhǔn)確性和算法運(yùn)行效率方面都有不俗的表現(xiàn)。
受相關(guān)研究成果的啟發(fā),針對自然噪聲問題,基于自編碼器理論,本文提出一種基于棧式降噪自編碼器的深度推薦算法。該算法的創(chuàng)新點(diǎn)主要有3 個(gè):
(1)針對負(fù)采樣問題,利用隱式反饋和項(xiàng)目信息構(gòu)建知識圖譜,利用正、負(fù)項(xiàng)目共同的知識實(shí)體來執(zhí)行負(fù)采樣,從而避免誤采樣問題;
(2)針對特征學(xué)習(xí)問題,利用棧式降噪自編碼器重構(gòu)用戶和項(xiàng)目評分向量,學(xué)習(xí)用戶和項(xiàng)目的深層隱表示,從而提升推薦的準(zhǔn)確性;
(3)將隱表示與輔助信息結(jié)合,共同參與推薦。
針對推薦系統(tǒng)中的自然噪聲問題,本文提出一種基于棧式降噪自編碼器的深度推薦算法。該推薦框架包含3 個(gè)模塊,分別是采樣模塊、重構(gòu)模塊及推薦模塊。采樣模塊利用交互矩陣中的隱式反饋和項(xiàng)目的屬性信息構(gòu)建知識圖譜,利用知識圖譜中項(xiàng)目之間共同的知識實(shí)體來執(zhí)行負(fù)采樣,通過提高負(fù)樣本的質(zhì)量,來提升推薦的準(zhǔn)確性。重構(gòu)模塊利用采樣模塊初步篩選的數(shù)據(jù)獲得用戶和項(xiàng)目評分向量,利用棧式降噪自編碼器對數(shù)據(jù)進(jìn)行重構(gòu),從而獲得用戶和項(xiàng)目的隱表示,通過挖掘用戶和項(xiàng)目的深層次本質(zhì)特征,來提升推薦的準(zhǔn)確性。推薦模塊利用用戶信息和項(xiàng)目信息分別獲取用戶和項(xiàng)目特征向量,再與重構(gòu)模塊獲得的隱表示結(jié)合,通過多層感知機(jī)來獲得預(yù)測評分,進(jìn)一步提升推薦的準(zhǔn)確性。
本文利用交互矩陣中用戶對項(xiàng)目的隱式反饋F={(u,i)|u∈U,i∈I}和項(xiàng)目的知識信息N={(i,k)|i∈I,k∈K}來構(gòu)建知識圖譜。知識圖譜中的每一個(gè)節(jié)點(diǎn)代表一個(gè)用戶u、項(xiàng)目i或知識實(shí)體k,圖譜中的每一條邊代表用戶與項(xiàng)目存在交互行為或項(xiàng)目具有某個(gè)知識實(shí)體。在第l個(gè)圖卷積層中,更新公式為式(1)。
在采樣模塊中,本文利用用戶對項(xiàng)目的隱式反饋和項(xiàng)目的屬性信息來構(gòu)建知識圖譜,再根據(jù)知識圖譜中項(xiàng)目之間共同的知識實(shí)體來進(jìn)行采樣,對訓(xùn)練數(shù)據(jù)進(jìn)行了初步的篩選。但由于交互矩陣中的隱式反饋數(shù)據(jù)本身存在一些自然噪聲,在推薦模型優(yōu)化過程中對參數(shù)優(yōu)化造成了數(shù)據(jù)干擾,影響了推薦模型的準(zhǔn)確性和泛化能力。相關(guān)研究成果表明,自編碼器具有強(qiáng)大的表示學(xué)習(xí)能力,可用于學(xué)習(xí)用戶和項(xiàng)目的隱表示。
于是,本文利用降噪自編碼器對交互矩陣中用戶評分向量和項(xiàng)目評分向量進(jìn)行重構(gòu),來獲取用戶和項(xiàng)目的隱表示,作為后續(xù)推薦模塊的輸入,從而緩解推薦系統(tǒng)的自然噪聲問題。重構(gòu)公式參考式(4)。
通過式(4)即可實(shí)現(xiàn)用戶評分向量和項(xiàng)目評分向量的重構(gòu),獲取用戶和項(xiàng)目的隱表示。由于單個(gè)降噪自編碼器對推薦性能的提升有限,本文使用棧式降噪自編碼器對用戶評分向量和項(xiàng)目評分向量進(jìn)行多次重構(gòu),并在后續(xù)實(shí)驗(yàn)中評估其對于推薦性能的影響。對于利用多層降噪自編碼器對用戶和項(xiàng)目評分向量進(jìn)行重構(gòu)的情況,利用最后一層降噪自編碼器獲得的用戶和項(xiàng)目的隱表示,作為后續(xù)推薦模塊的輸入。
在重構(gòu)模塊,利用多個(gè)自編碼器對交互矩陣中的用戶評分向量和項(xiàng)目評分向量進(jìn)行了重構(gòu),得到了用戶和項(xiàng)目的隱表示。但是,用戶和項(xiàng)目的隱表示僅來源于用戶對項(xiàng)目的隱式反饋。已經(jīng)有許多推薦系統(tǒng)的相關(guān)成果表明,將更多的輔助數(shù)據(jù)融入推薦算法,可以有效提高推薦的準(zhǔn)確性。從用戶角度看,比如用戶的性別、年齡、職業(yè)等信息;從項(xiàng)目角度看,比如項(xiàng)目的品牌、價(jià)格、類別等信息。
于是,在推薦模塊,利用用戶信息和項(xiàng)目信息,分別獲取用戶特征向量和項(xiàng)目特征向量,再與重構(gòu)模塊中用戶和項(xiàng)目的隱表示以向量拼接的方式結(jié)合,從而充分利用用戶信息、項(xiàng)目信息、用戶對項(xiàng)目的隱式反饋三個(gè)維度的數(shù)據(jù)信息。將三個(gè)維度數(shù)據(jù)結(jié)合后,輸入到多層感知機(jī)中,獲取用戶對項(xiàng)目的預(yù)測評分。
推薦模塊中,將用戶的隱表示、項(xiàng)目的隱表示、用戶的特征向量、項(xiàng)目的特征向量結(jié)合的公式為:
式中:Wx是x層的權(quán)重,bx是x層的偏移,ax是激活函數(shù)ReLU,h為連接權(quán)重,σ為激活函數(shù)Relu。
將基于隱式反饋的推薦問題視為二分類問題,通過最小化預(yù)測評分與實(shí)際評分之間的二分類交叉熵?fù)p失來優(yōu)化推薦模型,優(yōu)化方式為隨機(jī)梯度下降(Stochastic Gradient Descent,SGD),損失函數(shù)的計(jì)算公式為:
2.1.1 數(shù)據(jù)集描述
本文利用網(wǎng)上公開的Amazon-book 數(shù)據(jù)集來進(jìn)行SDAE-DR 算法的驗(yàn)證實(shí)驗(yàn)。Amazon-book 是亞馬遜電商平臺上關(guān)于書籍的電商數(shù)據(jù),其中包含了70 679 個(gè)用戶對24 985 個(gè)項(xiàng)目的847 733 條交互數(shù)據(jù)。使用的用戶輔助信息為年齡、性別及職業(yè)等,項(xiàng)目輔助信息為作者、類別及出版社等。
2.1.2 基準(zhǔn)線
參與對比的推薦模型有:
(1)GMF,對隱式反饋進(jìn)行線性建模的推薦模型;
(2)MLP,對隱式反饋進(jìn)行非線性建模的推薦模型;
(3)NCF,利用GMF 對隱式反饋進(jìn)行線性建模,利用MLP 對隱式反饋進(jìn)行非線性建模,將兩者融合,并采用隨機(jī)采樣(RS)的推薦模型;
(4)NCF-KAS,利用GMF 對隱式反饋進(jìn)行線性建模,利用MLP 對隱式反饋進(jìn)行非線性建模,將兩者融合,并利用隱式反饋和項(xiàng)目信息構(gòu)建知識圖譜,利用知識圖譜中項(xiàng)目間共同的知識實(shí)體進(jìn)行知識感知采樣(KAS)的推薦模型;
(5)SDAE-DR,利用隱式反饋和項(xiàng)目信息構(gòu)建知識圖譜,利用知識圖譜中項(xiàng)目共同的知識實(shí)體進(jìn)行靜態(tài)知識感知采樣(Static Knowledgeaware Sampling,SKAS),利 用 棧 式 自 編 碼 器(Stacked Denoising Auto-encoder,SDAE)重 構(gòu) 用戶和項(xiàng)目評分向量,并與用戶和項(xiàng)目的輔助信息(Supplementary Information,SI)結(jié)合,利用MLP 進(jìn)行非線性建模的推薦模型。
2.1.3 性能指標(biāo)
本文使用命中率(HR@K)和歸一化折扣累積增益(NDCG@K)來評估推薦算法的準(zhǔn)確性,利用平均迭代時(shí)間(Average Iteration Time,AIT)來評估算法的運(yùn)行效率。其中,K代表的是推薦列表的長度,取K=10,則對應(yīng)實(shí)際推薦場景中的top-10 推薦。
命中率的含義是推薦算法生成的推薦項(xiàng)目用戶是否喜歡。命中率的計(jì)算公式為:
2.1.4 參數(shù)設(shè)置
對于SDAE-DR 算法,固定負(fù)樣本數(shù)為4,自編碼器層數(shù)為4,感知機(jī)層數(shù)為4,預(yù)測因子為64,推薦列表長度K=10,迭代次數(shù)為100 次,進(jìn)行SDAE-DR算法的消融實(shí)驗(yàn)以及與其他推薦模型(GMF、MLP、NCF 及NCF-KAS)的對比實(shí)驗(yàn)。
2.2.1 SDAE-DR 的消融實(shí)驗(yàn)
這組實(shí)驗(yàn)用于驗(yàn)證利用SKAS 進(jìn)行采樣、利用SDAE 重構(gòu)數(shù)據(jù)、利用用戶和項(xiàng)目的輔助數(shù)據(jù)SI 對于提升SDAE-DR 推薦性能的有效性。本文分別考察了MLP、MLP+SI、MLP+SI+SDAE、MLP+SI+SDAE+SKAS(SDAE-DR)的命中率和歸一化折扣累積增益,實(shí)驗(yàn)結(jié)果如表1 所示。
表1 SDAE-DR 的消融實(shí)驗(yàn)結(jié)果
當(dāng)僅采用多層感知機(jī)對隱式反饋進(jìn)行非線性建模時(shí),推薦系統(tǒng)的推薦性能表現(xiàn)最差,HR@10和NDCG@10 分別是0.159 2,0.109 5。融入用戶和項(xiàng)目的輔助信息后,推薦系統(tǒng)的推薦性能有所提升,HR@10 和NDCG@10 分別是0.162 1,0.112 2,相比MLP,HR@10和NDCG@10分別相對改進(jìn)1.82%,2.47%。當(dāng)加入自編碼器重構(gòu)用戶和項(xiàng)目評分向量,推薦系統(tǒng)的推薦性能再次提升,HR@10 和NDCG@10 分 別 是0.166 6,0.116 8,相 比MLP,HR@10 和NDCG@10 分別相對改進(jìn)4.65%,6.67%。當(dāng)使用靜態(tài)知識感知采樣來執(zhí)行負(fù)采樣時(shí),推薦系統(tǒng)的推薦性能達(dá)到最佳,HR@10 和NDCG@10分 別 是0.170 5,0.120 5,相 比MLP,HR@10 和NDCG@10 分別相對改進(jìn)7.10%,10.05%。
實(shí)驗(yàn)結(jié)果表明:使用SKAS 執(zhí)行負(fù)采樣,使用SDAE 重構(gòu)數(shù)據(jù),融合用戶和項(xiàng)目輔助信息SI,可以有效提升SDAE-SR 的推薦性能。首先,采樣模塊利用用戶對項(xiàng)目的隱式反饋和項(xiàng)目的屬性信息來構(gòu)建知識圖譜,利用知識圖譜中項(xiàng)目之間共同的知識實(shí)體來進(jìn)行靜態(tài)知識感知采樣,通過提高負(fù)樣本的質(zhì)量,在一定程度上提升了推薦的準(zhǔn)確性;其次,重構(gòu)模塊利用棧式自編碼器對用戶和項(xiàng)目評分向量進(jìn)行重構(gòu),挖掘了用戶和項(xiàng)目的深層次本質(zhì)特征,再次提升了推薦的準(zhǔn)確性;最后,推薦模塊不僅使用了用戶對項(xiàng)目的隱式反饋,更結(jié)合了用戶和項(xiàng)目的輔助信息,進(jìn)一步提升了推薦的準(zhǔn)確性。
2.2.2 SDAE-DR 與其他推薦模型的對比實(shí)驗(yàn)
這組實(shí)驗(yàn)通過SDAE-DR 與其他推薦模型的性能對比來驗(yàn)證SDAE-DR 的優(yōu)越性。本文分別考察了GMF,MLP,NCF,NCF-KAS 及SDAE-DR 的命中率、歸一化折扣累積增益以及平均迭代時(shí)間,實(shí)驗(yàn)結(jié)果如表2 所示。
表2 SDAE-DR 與其他推薦模型的對比實(shí)驗(yàn)結(jié)果
可以看到,僅對用戶和項(xiàng)目的隱式反饋進(jìn)行線性建模的GMF,平均迭代時(shí)間為82 s,運(yùn)行效率最高,但推薦的準(zhǔn)確性也最差,HR@10 和NDCG@10僅為0.158 8,0.109 2。對用戶和項(xiàng)目的隱式反饋進(jìn)行非線性建模的MLP,HR@10 和NDCG@10 分別為0.159 2,0.109 5,與GMF 相比,推薦的準(zhǔn)確性提升較小,而平均迭代時(shí)間為156 s,幾乎加倍,但MLP 的優(yōu)勢在于,非線性建模的方式具有較高的靈活性,可以更好地與其他輔助數(shù)據(jù)結(jié)合起來。將GMF 和MLP 結(jié)合的NCF,推薦的準(zhǔn)確性有所提升,但由于算法復(fù)雜度的提升,運(yùn)行效率有所下降。利用推薦器NCF 和采樣器KAS 進(jìn)行交互強(qiáng)化學(xué)習(xí)的NCF-KAS,與NCF 相比,推薦的準(zhǔn)確性有較大的提升,但平均迭代時(shí)間幾乎加倍,算法運(yùn)行效率大幅下降。利用SKAS 進(jìn)行負(fù)采樣、利用SDAE 來重構(gòu)數(shù)據(jù)、融入用戶和項(xiàng)目輔助信息SI 的SDAE-DR,與NCF-KAS 相比,推薦的準(zhǔn)確性和算法運(yùn)行效率均有較大提升。
實(shí)驗(yàn)結(jié)果表明:SDAE-DR 相比于前四種算法中推薦準(zhǔn)確性最高的NCF-KAS,具有更高的推薦準(zhǔn)確性,并且,算法的運(yùn)行效率也大幅提升。NCFKAS 利用推薦器和采樣器之間的交互強(qiáng)化學(xué)習(xí)來提升推薦的準(zhǔn)確性,但推薦器和采樣器的反復(fù)交互也大大地增加了算法復(fù)雜度,導(dǎo)致算法運(yùn)行效率低下。SDAE-SR 的采樣、重構(gòu)、推薦三個(gè)模塊之間是級聯(lián)結(jié)構(gòu),降低了算法復(fù)雜度,提高了算法運(yùn)行效率,并且由于重構(gòu)模塊對隱式反饋的重構(gòu),緩解了自然噪聲問題,加上推薦模塊融入的輔助信息,使得SDAE-DR 獲得了比NCF-KAS 更高的推薦準(zhǔn)確性和運(yùn)行效率。
針對推薦系統(tǒng)的自然噪聲問題,本文提出了SDAE-DR 算法。該算法包含采樣、重構(gòu)、推薦三個(gè)模塊。采樣模塊利用知識感知采樣,通過提升負(fù)樣本的質(zhì)量,提升推薦的準(zhǔn)確性。重構(gòu)模塊利用自編碼器重構(gòu)用戶和項(xiàng)目評分,獲取用戶和項(xiàng)目的深層隱表示,從而提升推薦的準(zhǔn)確性。推薦模塊通過隱表示與輔助信息的結(jié)合,來提升推薦的準(zhǔn)確性。三個(gè)模塊之間采用級聯(lián)結(jié)構(gòu),從而提升了算法的運(yùn)行效率。該算法的不足之處在于,面對增量數(shù)據(jù)時(shí),擴(kuò)展性較差。利用分布式計(jì)算技術(shù),對該算法進(jìn)行并行化擴(kuò)展,以提升算法的擴(kuò)展性,是后續(xù)研究的主要工作。