張文龍,錢付蘭*,陳 潔,趙 姝,張燕平
(1.安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230601;2.計(jì)算智能與信號(hào)處理教育部重點(diǎn)實(shí)驗(yàn)室(安徽大學(xué)),合肥 230601)
(?通信作者電子郵箱qianfulan@hotmail.com)
互聯(lián)網(wǎng)和移動(dòng)技術(shù)的出現(xiàn)使人們可以隨時(shí)隨地獲取信息。隨著社交媒體、電子商務(wù)和各種生活服務(wù)應(yīng)用等網(wǎng)絡(luò)服務(wù)的普及,人們的生活方式發(fā)生了深刻的變化。為了能夠在海量數(shù)據(jù)中快速有效地獲取對(duì)用戶最有價(jià)值的數(shù)據(jù),推薦系統(tǒng)應(yīng)運(yùn)而生[1]。個(gè)性化推薦的目標(biāo)是從歷史的用戶-項(xiàng)目交互(例如評(píng)分和瀏覽等)中了解用戶偏好,并根據(jù)這些用戶-項(xiàng)目交互推薦相關(guān)的項(xiàng)目,這種方法被稱為協(xié)同過(guò)濾(Collaborative Filtering,CF)[2-3]。
在基于協(xié)同過(guò)濾的方法中,最成功的就是通過(guò)矩陣分解(Matrix Factorization,MF)[4]的方法,將用戶和項(xiàng)目映射到同一個(gè)潛在空間中,使用潛在特征向量來(lái)表示用戶或項(xiàng)目。然后,將用戶對(duì)項(xiàng)目的交互建模為其潛在向量的內(nèi)積。然而,實(shí)際中的評(píng)分矩陣往往是非常稀疏的,這導(dǎo)致基于協(xié)同過(guò)濾的方法在學(xué)習(xí)合適的潛在表示時(shí)性能顯著下降。最近,學(xué)習(xí)有效表征的強(qiáng)大方法之一便是深度學(xué)習(xí)(Deep Learning,DL)。因此,隨著大規(guī)模評(píng)分和豐富的附加信息,將深度學(xué)習(xí)與協(xié)同過(guò)濾算法相結(jié)合,來(lái)學(xué)習(xí)用戶和項(xiàng)目的潛在表示,可以充分挖掘數(shù)據(jù)的有效信息。由此,一些研究已經(jīng)開始在傳統(tǒng)協(xié)同過(guò)濾方法的基礎(chǔ)上利用深度學(xué)習(xí)來(lái)進(jìn)行推薦任務(wù)。Wang 等[5]提出協(xié)同深度學(xué)習(xí)(Collaborative Deep Learning,CDL)算法結(jié)合用戶交互數(shù)據(jù)與項(xiàng)目?jī)?nèi)容輔助信息來(lái)學(xué)習(xí)隱式表示,緩解了協(xié)同過(guò)濾類方法學(xué)習(xí)用戶與項(xiàng)目的交互往往過(guò)于稀疏導(dǎo)致推薦效果不好的問(wèn)題。He等[6]用神經(jīng)網(wǎng)絡(luò)來(lái)代替內(nèi)積形式來(lái)學(xué)習(xí)用戶和項(xiàng)目之間的交互,從而實(shí)現(xiàn)了矩陣分解類方法的擴(kuò)展。Barkan 等[7]使用表示學(xué)習(xí)的方法,將每個(gè)項(xiàng)目表示為一個(gè)固定維度的向量,從而隱式地得到項(xiàng)目間的相互關(guān)系,使得在計(jì)算項(xiàng)目相似性方面更加高效,進(jìn)而提升了模型的泛化能力。Zheng等[8]引入光譜圖理論結(jié)合在用戶-項(xiàng)目二分圖上進(jìn)行光譜卷積操作來(lái)提升協(xié)同過(guò)濾算法的推薦效果。
盡管上述方法在推薦的準(zhǔn)確性上取得了良好的性能,但它忽略了用戶不同歷史交互項(xiàng)目的重要性,并且缺乏對(duì)歷史項(xiàng)目與目標(biāo)項(xiàng)目之間交互關(guān)聯(lián)度的區(qū)分,導(dǎo)致無(wú)法實(shí)現(xiàn)用戶偏好的細(xì)粒度建模。直觀地說(shuō),對(duì)于每個(gè)用戶,他對(duì)所交互的一組歷史項(xiàng)目中不同項(xiàng)目的偏好應(yīng)該是不同的。例如,用戶分別購(gòu)買了衣服、手機(jī)和相機(jī)三種產(chǎn)品,并不意味著用戶對(duì)這三種產(chǎn)品有著相同的偏好。同樣,假定用戶交互過(guò)的所有歷史項(xiàng)目對(duì)目標(biāo)項(xiàng)目的預(yù)測(cè)都有同等的貢獻(xiàn)也是不現(xiàn)實(shí)的。通常,用戶以前與幾個(gè)項(xiàng)目交互過(guò),這將直接影響用戶對(duì)某個(gè)項(xiàng)目的決策。例如,當(dāng)用戶決定是否購(gòu)買手機(jī)套時(shí),影響最大的應(yīng)該是先前購(gòu)買的手機(jī),而不是相機(jī)或服裝產(chǎn)品。于是,引入深度學(xué)習(xí)中的注意力機(jī)制[9]。注意力機(jī)制已在眾多領(lǐng)域中取得了成功的應(yīng)用,其核心思想便是從原始信息中捕獲與當(dāng)前任務(wù)最相關(guān)的部分并進(jìn)行強(qiáng)化。因此,通過(guò)注意力機(jī)制可以為較重要的項(xiàng)目和項(xiàng)目交互關(guān)系分配更大的權(quán)重來(lái)解決上述提到的兩個(gè)問(wèn)題,進(jìn)而提升模型的推薦效果。
本文為了解決協(xié)同過(guò)濾類算法將所有項(xiàng)目看作同等重要的限制,利用注意力機(jī)制可有效區(qū)分不同項(xiàng)目重要性的特性,將項(xiàng)目因子相似模型(Factored Item Similarity Model,F(xiàn)ISM)[10]與注意力網(wǎng)絡(luò)進(jìn)行深度融合,提出了一種基于雙重最相關(guān)注意力網(wǎng)絡(luò)的協(xié)同過(guò)濾(Dual Most Relevant Attention Collaborative Filtering,DMRACF)算法。該算法利用深度神經(jīng)網(wǎng)絡(luò)來(lái)自動(dòng)學(xué)習(xí)項(xiàng)目之間的復(fù)雜交互函數(shù),并設(shè)計(jì)一個(gè)由項(xiàng)目級(jí)注意力和項(xiàng)目交互級(jí)注意力組成的雙重最相關(guān)注意力網(wǎng)絡(luò),為較重要的項(xiàng)目和項(xiàng)目交互關(guān)系分配更大的權(quán)重,進(jìn)而捕獲用戶更細(xì)粒度下的偏好,實(shí)現(xiàn)對(duì)用戶偏好的細(xì)粒度建模,這有利于推薦效果的提升。
基于項(xiàng)目的協(xié)同過(guò)濾以其優(yōu)異的性能在推薦系統(tǒng)的構(gòu)建中得到了廣泛的應(yīng)用。早期的模型,如基于項(xiàng)目的K 近鄰(Item-based K-Nearest Neighbors,ItemKNN)[2]只是簡(jiǎn)單地使用統(tǒng)計(jì)方法來(lái)估計(jì)項(xiàng)目之間的相似度,如余弦相似度和皮爾遜相關(guān)系數(shù)。但是,這些方法需要針對(duì)特定數(shù)據(jù)集進(jìn)行手動(dòng)調(diào)優(yōu),導(dǎo)致算法可擴(kuò)展性方面受限。為了彌補(bǔ)這些方法的不足,出現(xiàn)了一些基于機(jī)器學(xué)習(xí)的方法,通過(guò)構(gòu)造目標(biāo)函數(shù)來(lái)自動(dòng)學(xué)習(xí)項(xiàng)目之間的相似關(guān)系。在這些基于機(jī)器學(xué)習(xí)的方法中,最具代表性的模型是稀疏線性方法(Sparse LInear Method,SLIM)[11]和FISM。具體來(lái)說(shuō),SLIM 構(gòu)造了一個(gè)基于回歸的目標(biāo)函數(shù),并對(duì)其進(jìn)行優(yōu)化以學(xué)習(xí)項(xiàng)目相似度矩陣;但其訓(xùn)練成本較高,不可能挖掘項(xiàng)目之間的傳遞關(guān)系。與SLIM不同,F(xiàn)ISM 將兩個(gè)項(xiàng)目之間的相似性表示為它們的低維向量的內(nèi)積。盡管FISM 實(shí)現(xiàn)了最先進(jìn)的推薦性能,但它有一個(gè)限制,即假設(shè)與用戶交互的所有歷史項(xiàng)目在建模用戶對(duì)目標(biāo)項(xiàng)目的偏好時(shí)有同等的貢獻(xiàn)。
隨著深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理方面取得了巨大的成功[12],人們正在努力將深度學(xué)習(xí)技術(shù)引入到推薦系統(tǒng)中。通常,深度學(xué)習(xí)被應(yīng)用于特征提取和預(yù)測(cè)。Xue等[13]利用深度神經(jīng)網(wǎng)絡(luò)來(lái)捕獲項(xiàng)目間的高階交互關(guān)系,提出了一個(gè)基于深度學(xué)習(xí)的項(xiàng)目協(xié)同過(guò)濾(Deep Item-based Collaborative Filtering,DeepICF)算法。鄧凱等[14]將物品相似性因子模型與深度神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了一個(gè)基于物品的同一協(xié)同過(guò)濾(Item-based Unified Collaborative Filtering,UICF)推薦模型。最近深度學(xué)習(xí)中的注意機(jī)制的有效性在機(jī)器翻譯中被證明是非常有效的[15],它的成功主要是基于一個(gè)合理的假設(shè),即人類的識(shí)別并不傾向于一次性處理整個(gè)信號(hào),相反,人們只關(guān)注整個(gè)感知空間中有選擇性的部分。事實(shí)上,這一假設(shè)不僅適用于計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理領(lǐng)域,在許多現(xiàn)實(shí)世界的情況下都是合理的。于是基于注意力機(jī)制的推薦模型近年來(lái)得到了發(fā)展,并且取得了突出的表現(xiàn)。He等[16]提出了一個(gè)神經(jīng)注意力項(xiàng)目相似性(Neural Attentive Item Similarity,NAIS)模型,該模型在學(xué)習(xí)項(xiàng)目-項(xiàng)目之間的相似性方面使用注意力機(jī)制進(jìn)行建模。Chen 等[17]將隱因子模型與組件級(jí)注意力機(jī)制相結(jié)合對(duì)多媒體推薦中的隱式反饋建模,效果良好。Zhuang 等[18]提出了一個(gè)注意力驅(qū)動(dòng)的推薦算法,使用注意力機(jī)制來(lái)估計(jì)用戶對(duì)不同項(xiàng)目特征的注意力分布,提高了模型的可解釋性。
首先,本文提出的基于雙重最相關(guān)注意力網(wǎng)絡(luò)的協(xié)同過(guò)濾算法框架如圖1 所示。整個(gè)模型包括輸入層、嵌入層、對(duì)交互層、池化層、深度交互層、輸出層,以及由項(xiàng)目級(jí)注意力和項(xiàng)目交互級(jí)注意力組成的雙重最相關(guān)注意力網(wǎng)絡(luò)。
在輸入層中,目標(biāo)項(xiàng)目i的表示是使用ID 特征的one-hot編碼xitem_input=[0,0,1,…,0,0]m,用戶u的表示是對(duì)u的交互項(xiàng)目集的ID 特征進(jìn)行multi-hot 編碼xuser_input=[1,0,1,…,0,1]m。其中,m表示編碼的維數(shù),其大小為項(xiàng)目的總個(gè)數(shù)。由于此編碼方式產(chǎn)生的特征空間非常大,容易造成維度過(guò)大。因此,在輸入層之上引入一個(gè)嵌入層,它是一個(gè)全連接神經(jīng)網(wǎng)絡(luò),用于將輸入層稀疏的特征向量轉(zhuǎn)換成稠密的特征向量,有效地降低了特征空間的維數(shù)。通過(guò)式(1)將目標(biāo)項(xiàng)i映射到一個(gè)嵌入向量pi∈Ak上來(lái)表示目標(biāo)項(xiàng)目,其中k?m為嵌入向量的維數(shù)。對(duì)于用戶u與之交互的每個(gè)歷史項(xiàng)j∈,將其映射到一個(gè)嵌入向量qj∈Ak。最后,根據(jù)嵌入層的輸出,可以得到一組向量,一個(gè)向量pi分別表示用戶u和目標(biāo)項(xiàng)i。
其中:xitem_input、xuser_input分別表示項(xiàng)目和用戶的one-hot 編碼輸入;embedded表示全連接神經(jīng)網(wǎng)絡(luò)。
圖1 DMRACF算法框架Fig.1 Framework of DMRACF algorithm
在得到一組表示用戶u的向量Qu之后,為了獲得用戶對(duì)歷史交互項(xiàng)目的偏好,使用一維注意力機(jī)制來(lái)為不同的歷史交互項(xiàng)目分配不同的權(quán)重,計(jì)算方法如下:
其中:W和b分別是將輸入映射到隱層的權(quán)值矩陣和偏置向量;hT是將隱層映射到輸出注意力權(quán)值的映射向量;αj可抽象地看作是用戶u對(duì)其交互過(guò)的歷史項(xiàng)目j的偏好。
為了捕獲任意一個(gè)歷史項(xiàng)目和目標(biāo)項(xiàng)目之間的特征交互,通過(guò)對(duì)用戶u的歷史交互項(xiàng)與目標(biāo)項(xiàng)i之間的嵌入向量進(jìn)行簡(jiǎn)單的元素乘積運(yùn)算來(lái)獲取項(xiàng)目對(duì)交互向量集Vui=,獲取用戶u的歷史交互項(xiàng)目與目標(biāo)項(xiàng)目i的二階特征交互關(guān)系。
直觀地說(shuō),不同的歷史項(xiàng)目對(duì)目標(biāo)項(xiàng)目的預(yù)測(cè)有不同的貢獻(xiàn)。因此,將這組兩兩交互的向量輸入到一個(gè)注意力網(wǎng)絡(luò)中。通過(guò)學(xué)習(xí),對(duì)較重要的項(xiàng)目對(duì)給予較大的交互權(quán)重,以感知?dú)v史項(xiàng)目與目標(biāo)項(xiàng)目交互關(guān)系的不同重要性,計(jì)算方法如下:
其中,hT為將隱層映射到輸出注意權(quán)值的映射向量。由于不同用戶的歷史交互項(xiàng)目數(shù)量變化很大,使用一個(gè)超參數(shù)β用于平滑softmax 函數(shù)中的分母項(xiàng),其取值范圍在[0,1],從而平衡了一些活躍用戶交互的歷史項(xiàng)目數(shù)過(guò)多導(dǎo)致注意力權(quán)值過(guò)小的問(wèn)題,同時(shí)使得注意力權(quán)值能在一個(gè)比較小的方差內(nèi)。αij為歷史項(xiàng)目j對(duì)目標(biāo)項(xiàng)目i的注意力權(quán)值,可視為用戶u對(duì)項(xiàng)目i興趣的抽象表示。
由于用戶的歷史交互項(xiàng)目的數(shù)量(用戶的歷史評(píng)分項(xiàng)的數(shù)量)變化很大,對(duì)特征交互層的輸出是一個(gè)可變大小的向量集。為了便于后續(xù)處理,使用池化層對(duì)可變大小的向量進(jìn)行操作,生成一個(gè)固定大小的向量。這里,為了表示不同的池化方式,使用了一個(gè)超參數(shù)來(lái)控制,計(jì)算方法如下:
其中:γ是一個(gè)控制池化方式的超參數(shù),其取值范圍為[0,1]。當(dāng)γ設(shè)置為0 時(shí),就變成標(biāo)準(zhǔn)的和值池化;當(dāng)γ設(shè)置為1 時(shí),就變成了標(biāo)準(zhǔn)的平均池化。
前一個(gè)池化層的輸出是一個(gè)k維的向量=fpooling(Vui)),其中包含歷史項(xiàng)目和目標(biāo)項(xiàng)目之間的二階交互。為了對(duì)歷史項(xiàng)目和目標(biāo)項(xiàng)目之間的高階特征交互進(jìn)行建模,在其上疊加了一個(gè)多層感知器(MultiLayer Perceptron,MLP),實(shí)現(xiàn)了高階建模,獲得了更深層次的復(fù)雜交互信息,計(jì)算方法如下:
其中:WL、bL、eL分別表示第L層的權(quán)重矩陣、偏置向量、激活函數(shù)和輸出向量。使用ReLU 作為激活函數(shù),當(dāng)網(wǎng)絡(luò)變深時(shí),更能抵抗飽和問(wèn)題[19],并在本文的實(shí)驗(yàn)中顯示出良好的性能。
作為深度交互層的輸出,所得到的深度交互向量eL包含了項(xiàng)目從二階到高階之間的特征交互信息,然后用簡(jiǎn)單的線性回歸模型預(yù)測(cè)最終結(jié)果:
其中hT和b分別表示權(quán)值矩陣和偏置向量。
為了學(xué)習(xí)推薦模型,指定了一個(gè)目標(biāo)函數(shù)進(jìn)行優(yōu)化。當(dāng)前主要存在的兩種方法,分別是平方損失和對(duì)數(shù)損失,我們認(rèn)為平方損失可能與隱式反饋數(shù)據(jù)不太吻合。這是因?yàn)閷?duì)于隱式反饋數(shù)據(jù),目標(biāo)值yui是一個(gè)二值化的1 或0,表示u是否與i交互??梢詫ui的值看作一個(gè)標(biāo)簽1 表示項(xiàng)目i與u相關(guān),0表示項(xiàng)目i與u不相關(guān)。預(yù)測(cè)分?jǐn)?shù)表示i與u相關(guān)的可能性有多大。要賦予這樣的概率解釋,需要將輸出限制在[0,1],這可以很容易通過(guò)概率函數(shù)來(lái)實(shí)現(xiàn)。
通過(guò)以上的說(shuō)明可知,當(dāng)處理問(wèn)題是二值數(shù)據(jù)1或0的隱式反饋時(shí),學(xué)習(xí)推薦模型可以看作是一個(gè)二分類任務(wù),因此使用式(12)所示的對(duì)數(shù)損失作為目標(biāo)函數(shù)。通過(guò)最小化目標(biāo)函數(shù)學(xué)習(xí)模型參數(shù):
其中:N表示整個(gè)訓(xùn)練集的總數(shù),包括正樣本R+和負(fù)樣本R-;σ表示sigmoid 函數(shù),它將預(yù)測(cè)值約束在[0,1];為預(yù)測(cè)結(jié)果,其值表示用戶u與項(xiàng)目i交互的可能性;λ為防止過(guò)擬合的正則化參數(shù);Θ為整個(gè)模型的可訓(xùn)練參數(shù)。
綜上所述,得到算法1所示的DMRACF算法。
由式(5)、(6)計(jì)算用戶u對(duì)項(xiàng)目i的注意力權(quán)值αij;
算法中,R表示項(xiàng)目集,U表示項(xiàng)目級(jí)注意力和項(xiàng)目交互級(jí)注意力的參數(shù)集。
為了驗(yàn)證本文所提方法的性能,在兩個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了評(píng)估。MovieLens 是一個(gè)被廣泛用于研究協(xié)同過(guò)濾算法性能的電影評(píng)分?jǐn)?shù)據(jù)集[20]。在本文實(shí)驗(yàn)中,選擇的是MovieLens-1M,包含100萬(wàn)個(gè)評(píng)分,其中每個(gè)用戶至少有20個(gè)評(píng)分。Pinterest 是一個(gè)用于圖像推薦的數(shù)據(jù)集,其中包含9 916名用戶對(duì)55 187張圖像的評(píng)分。數(shù)據(jù)集詳細(xì)信息如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集的描述Tab.1 Description of datasets used in experiments
本文中使用一種被廣泛使用的leave-one-out 評(píng)價(jià)方法來(lái)研究項(xiàng)目推薦的性能[21]。首先,根據(jù)每個(gè)用戶的時(shí)間戳對(duì)用戶-項(xiàng)目交互進(jìn)行排序。然后,將最新的交互作為每個(gè)用戶的測(cè)試數(shù)據(jù),并利用與用戶對(duì)應(yīng)的其余交互進(jìn)行訓(xùn)練。對(duì)每個(gè)測(cè)試項(xiàng)目(正樣本)隨機(jī)抽取99 個(gè)沒(méi)有被相應(yīng)用戶交互的項(xiàng)目(負(fù)樣本)進(jìn)行抽樣,以便在這100 個(gè)項(xiàng)目構(gòu)成的集合進(jìn)行模型的評(píng)估。因此,可以減輕在評(píng)估期間為每個(gè)用戶對(duì)所有項(xiàng)目進(jìn)行排序的耗時(shí)問(wèn)題。
在評(píng)價(jià)指標(biāo)方面,采用命中率(Hit Ratio@k,HR@k)和歸一化折損累積增益(Normalized Discounted Cumulative Gain@k,NDCG@k)來(lái)評(píng)估本文的模型生成的排名列表的性能[22]。在實(shí)驗(yàn)部分,設(shè)置兩個(gè)指標(biāo)的k=10。如果測(cè)試項(xiàng)目出現(xiàn)在排名前10 的列表中,那么HR@10 的度量就能夠直觀地進(jìn)行度量,并且NDCG@10 說(shuō)明了排名的質(zhì)量,即為命中位置靠前的分配更高的分?jǐn)?shù)。兩個(gè)指標(biāo)越高,推薦性能越好。
為了評(píng)估本文所提出算法的有效性,研究對(duì)比了以下幾種協(xié)同過(guò)濾類方法的性能。
1)ItemPop(Item Popularity)。該算法是一個(gè)非個(gè)性化的推薦算法,因?yàn)樗鶕?jù)商品的受歡迎程度(通過(guò)交互次數(shù)的數(shù)量來(lái)衡量)來(lái)對(duì)商品進(jìn)行排名。
2)ItemKNN。該方法是最基本的基于項(xiàng)目的協(xié)同過(guò)濾,通過(guò)歷史項(xiàng)目與目標(biāo)項(xiàng)目之間的相似性來(lái)給出推薦,在實(shí)驗(yàn)中采用余弦相似度來(lái)計(jì)算項(xiàng)目之間的相似性。
3)BPR(Bayesian Personalized Ranking)[23]。該方法利用貝葉斯個(gè)性化排序損失來(lái)優(yōu)化MF 模型,從而實(shí)現(xiàn)了對(duì)MF 模型的優(yōu)化。
4)eALS(element-wise Alternating Least Square)[20]。該方法也學(xué)習(xí)了一個(gè)MF 模型,但優(yōu)化了一個(gè)不同的點(diǎn)態(tài)回歸損失,該損失將所有缺失的數(shù)據(jù)視為具有較小權(quán)重的負(fù)反饋。
5)MLP[6]。該方法利用深度神經(jīng)網(wǎng)絡(luò)代替簡(jiǎn)單的內(nèi)積,從數(shù)據(jù)中學(xué)習(xí)用戶與項(xiàng)目之間的非線性交互。
6)FISM。該方法是當(dāng)前最先進(jìn)的基于項(xiàng)目的協(xié)同過(guò)濾算法,其為每個(gè)項(xiàng)目都生成兩個(gè)向量表示,分別用來(lái)表示歷史交互項(xiàng)目和目標(biāo)項(xiàng)目。
7)NAIS。該方法利用注意力機(jī)制來(lái)學(xué)習(xí)物品相似度,進(jìn)而對(duì)FISM進(jìn)行擴(kuò)展。
8)DeepICF。該方法使用深度神經(jīng)網(wǎng)絡(luò)來(lái)同時(shí)捕獲項(xiàng)目間二階和高階交互關(guān)系,是一種基于深度學(xué)習(xí)的項(xiàng)目協(xié)同過(guò)濾方法。
用高斯分布隨機(jī)初始化模型參數(shù),其中均值和標(biāo)準(zhǔn)差分別為0和0.01。對(duì)于嵌入大小k,在實(shí)驗(yàn)中對(duì)(8,16,32,64)的值進(jìn)行了評(píng)估。注意力因子尺寸與每次的嵌入尺寸相同。超參數(shù)β和γ的取值范圍在[0,1],在實(shí)驗(yàn)中β和γ的取值分別為0.5 和0。防止模型過(guò)擬合的L2 正則化系數(shù)λ在(1E?5,1E?4,1E?3,0)進(jìn)行調(diào)整。使用優(yōu)化器Adagrad對(duì)目標(biāo)函數(shù)進(jìn)行優(yōu)化,從而完成對(duì)整個(gè)模型參數(shù)的訓(xùn)練。學(xué)習(xí)率設(shè)置為0.01,迭代次數(shù)為80。整個(gè)模型的實(shí)現(xiàn)是基于TensorFlow,所有的實(shí)驗(yàn)都是在NVIDIA的Tesla GPU上進(jìn)行。
由于嵌入尺寸控制基于嵌入的方法的建模能力,為基于嵌入的方法(BPR、eALS、MLP、FISM)設(shè)置了相同的嵌入尺寸16進(jìn)行實(shí)驗(yàn)結(jié)果的比較。表2展示了不同推薦算法在兩個(gè)數(shù)據(jù)集上的準(zhǔn)確性。
表2 不同方法在嵌入尺寸為16時(shí)的推薦準(zhǔn)確度Tab.2 Recommendation accuracy of different methods at embedding size 16
觀察表2 可以發(fā)現(xiàn),與其他方法相比,DMRACF 在兩個(gè)數(shù)據(jù)集上都取得了最好的性能。NAIS 和DMRACF 均在模型中使用了注意力機(jī)制,MovieLens 數(shù)據(jù)集上NAIS 的兩種評(píng)價(jià)指標(biāo)相較于當(dāng)前最先進(jìn)的算法FISM 分別提高了4.8 個(gè)百分點(diǎn)、6.2個(gè)百分點(diǎn),而本文提出的DMRACF提升的結(jié)果則是6個(gè)百分點(diǎn)和8.7 個(gè)百分點(diǎn)。這表明引入注意機(jī)制可以幫助模型進(jìn)一步提取數(shù)據(jù)中更為復(fù)雜的特征信息,進(jìn)而提升模型的表達(dá)性和準(zhǔn)確率。其中,DMRACF的準(zhǔn)確率最高,說(shuō)明設(shè)計(jì)的雙重最相關(guān)注意力網(wǎng)絡(luò)可以有效地捕捉到更細(xì)粒度的用戶偏好,使得本文的模型具有更強(qiáng)大的表示能力。兩種基于項(xiàng)目的協(xié)同過(guò)濾方法FISM 和ItemKNN 使用相同的預(yù)測(cè)模型,但FISM的預(yù)測(cè)結(jié)果遠(yuǎn)遠(yuǎn)超過(guò)了ItemKNN,在MovieLens 上的HR 和NDCG 分別提高了6.7 個(gè)百分點(diǎn)和10.1 個(gè)百分點(diǎn)。兩種方法的關(guān)鍵區(qū)別在于項(xiàng)目相似度的估計(jì)方法不同,導(dǎo)致FISM 方法的結(jié)果優(yōu)于ItemKNN 方法?;谟脩舻膮f(xié)同過(guò)濾模型(BPR、eALS和MLP)與基于項(xiàng)目的協(xié)同過(guò)濾模型(FISM)在不同數(shù)據(jù)集上具有不同的表現(xiàn)。具體來(lái)說(shuō),基于用戶的協(xié)同過(guò)濾模型在MovieLens 數(shù)據(jù)集上的性能優(yōu)于FISM,而FISM 在Pinterest數(shù)據(jù)集上的性能優(yōu)于基于用戶的協(xié)同過(guò)濾模型。觀察表1 可知,Pinterest 數(shù)據(jù)集具有較高的稀疏性(相較于MovieLens 數(shù)據(jù)集),本文認(rèn)為基于項(xiàng)目的協(xié)同過(guò)濾方法在高度稀疏的數(shù)據(jù)集上相較基于用戶的協(xié)同過(guò)濾方法表現(xiàn)得更好。
雙重最相關(guān)注意力網(wǎng)絡(luò)的設(shè)計(jì)是本文模型的核心部分,為了驗(yàn)證不同層級(jí)注意力模塊對(duì)本文模型的影響,將DMRACF 與它的兩個(gè)變體進(jìn)行比較,即DMRACF_IT(只具有項(xiàng)目級(jí)注意力)和DMRACF_II(只具有項(xiàng)目交互級(jí)注意力),結(jié)果如表3 所示。從表3 可以看出,與DMRACF_IT 相比,DMRACF_II 具有更優(yōu)的性能。據(jù)統(tǒng)計(jì),DMRACF_II 相較于DMRACF_IT 在MovieLens 上的HR 和NDCG 分別提高了1.4個(gè)百分點(diǎn)和3.5 個(gè)百分點(diǎn)。這表明項(xiàng)目交互級(jí)的注意力比項(xiàng)目級(jí)的注意力對(duì)本文的模型貢獻(xiàn)更大。另外,DMRACF 借助雙重最相關(guān)注意力網(wǎng)絡(luò),最終取得了最優(yōu)的效果(與DMRACF_IT、DMRACF_II 相比)。這進(jìn)一步驗(yàn)證了注意力機(jī)制的引入和雙重最相關(guān)注意力網(wǎng)絡(luò)的設(shè)計(jì)對(duì)模型的有效性。
表3 DMRACF和它兩個(gè)變體的實(shí)驗(yàn)結(jié)果比較Tab.3 Comparison of experimental results of DMRACF and its two variants
圖2和圖3給出了在兩個(gè)數(shù)據(jù)集上HR和NDCG對(duì)于不同嵌入尺寸的性能表現(xiàn)。
圖2 MovieLens數(shù)據(jù)集上基于嵌入的方法在不同嵌入尺寸上的性能比較Fig.2 Performance comparison of embedding-based methods at different embedding sizes on MovieLens dataset
圖3 Pinterest數(shù)據(jù)集上基于嵌入的方法在不同嵌入尺寸上的性能比較Fig.3 Performance comparison of embedding-based methods at different embedding sizes on Pinterest dataset
從圖2 和圖3 中可以看出,一般情況下,嵌入尺寸為8、32和64的推薦性能趨勢(shì)與嵌入尺寸為16的推薦性能趨勢(shì)相似。本文所提的DMRACF 算法在大多數(shù)情況下都取得了最優(yōu)的表現(xiàn),除了嵌入尺寸為8 時(shí),MLP 在MovieLens 上的性能優(yōu)于DMRACF。在MovieLens 這個(gè)相對(duì)密集的數(shù)據(jù)集上(與Pinterest 相比),基于用戶的非線性方法(在本例中為MLP)能夠在較小的嵌入尺寸下取得更強(qiáng)的表示能力。
本文提出了一種新的基于雙重最相關(guān)注意力網(wǎng)絡(luò)的協(xié)同過(guò)濾(DMRACF)算法,用于Top-N推薦。DMRACF 通過(guò)設(shè)計(jì)一個(gè)雙重最相關(guān)注意力網(wǎng)絡(luò),不僅強(qiáng)化了與用戶最相關(guān)的歷史項(xiàng)目,而且還挑選出了對(duì)預(yù)測(cè)最重要的歷史項(xiàng)與目標(biāo)項(xiàng)之間的交互關(guān)系,進(jìn)而解決了協(xié)同過(guò)濾類算法將所有歷史項(xiàng)目看作同等重要的限制,提高了推薦的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,DMRACF 的性能優(yōu)于其他協(xié)同過(guò)濾類方法。接下來(lái),我們計(jì)劃將DMRACF 從以下方向進(jìn)行擴(kuò)展。首先,這項(xiàng)工作的重點(diǎn)是純協(xié)同過(guò)濾系統(tǒng),只使用了用戶和項(xiàng)目的ID 屬性進(jìn)行建模,但實(shí)際上存在許多用戶和項(xiàng)目的其他可用屬性(如類別、職業(yè))。未來(lái)將研究DMRACF 在使用這些可用輔助信息時(shí)的有效性。