張意靈,邵雄凱,高 榕,2+,王春枝,吳歆韻
(1.湖北工業(yè)大學(xué) 計算機學(xué)院,湖北 武漢 430068;2.南京大學(xué) 計算機軟件新技術(shù)國家重點實驗室,江蘇 南京 210093)
當(dāng)前,互聯(lián)網(wǎng)中的數(shù)據(jù)規(guī)模增速日趨加快,使得人們難以從海量候選產(chǎn)品中選擇自己中意的產(chǎn)品。因此,推薦系統(tǒng)應(yīng)運而生,并逐漸成為減輕信息過載問題的重要手段。
目前在基于內(nèi)容的推薦算法[1-4]方面的研究盡管取得了一定的成果,但仍存在一些不足:首先,以前的工作大多利用加權(quán)正則化項對多源信息的隱藏表示進行融合。然而,由于不同的數(shù)據(jù)源具有不同的統(tǒng)計特性和不同的數(shù)量級,這可能無法充分利用來自異構(gòu)數(shù)據(jù)源的數(shù)據(jù),并引發(fā)繁瑣的超參數(shù)調(diào)整。其次,現(xiàn)有的神經(jīng)推薦方法主要依靠負采樣策略,而負采樣對采樣分布和采樣數(shù)非常敏感[5]。因此,基于抽樣的策略很難收斂到最優(yōu)性能。
基于上述分析,本文提出一種基于改進門控神經(jīng)網(wǎng)絡(luò)的混合推薦模型(IGNN)。本文的主要創(chuàng)新點如下:
(1)提出一個改進的混合門控神經(jīng)網(wǎng)絡(luò),以增強對多源數(shù)據(jù)中隱藏特征的獲取。
(2)采用一種基于全局采樣策略來對損失函數(shù)進行優(yōu)化,以減少有用信息的損失,從而提供更加精準(zhǔn)的推薦服務(wù)。
在這一部分中,我們將闡述與所提出模型相關(guān)的研究工作:基于隱式反饋推薦和推薦模型中的優(yōu)化技術(shù)。
近幾年,基于隱式反饋的推薦方法的研究是推薦領(lǐng)域關(guān)注的重點[6]?;陔[式反饋的協(xié)同過濾(CF)通常被視為一個top-N的推薦任務(wù),其目標(biāo)是向用戶推薦可能感興趣的項目列表。與評分預(yù)測任務(wù)相比,項目推薦問題更具實際性和挑戰(zhàn)性[7],更符合現(xiàn)實世界的推薦場景。為了利用潛在因素模型進行項目推薦,早期的工作要么采用統(tǒng)一的加權(quán)方案,將所有缺失數(shù)據(jù)作為負樣本處理[8],要么從缺失數(shù)據(jù)中抽取負樣本[9]。最近,Bayer等[10]為基于特征的因子分解模型開發(fā)了隱式坐標(biāo)下降方法。由于具有學(xué)習(xí)顯著表征的能力,還采用了基于深度神經(jīng)網(wǎng)絡(luò)的方法。為了進一步提高性能,研究人員嘗試融合多源數(shù)據(jù)特征,以幫助減輕用戶-項目交互數(shù)據(jù)中的稀疏性和冷啟動問題。Kim等[11]將卷積神經(jīng)網(wǎng)絡(luò)集成到概率矩陣分解中,通過捕獲文檔的情境信息,使用戶項目評分?jǐn)?shù)據(jù)稀疏性對推薦系統(tǒng)的影響得到了一定的緩解,提高評分預(yù)測的準(zhǔn)確性。
推薦模型有兩種采樣策略:①負采樣策略[12],這種策略從缺失數(shù)據(jù)中抽取負實例;②基于全局采樣的采樣策略[13],將所有缺失的數(shù)據(jù)都視為負實例。如之前的研究工作[14]所示,這兩種策略都有其優(yōu)缺點:負采樣策略通過減少訓(xùn)練中的負面例子提高性能,但可能會降低模型的性能;基于全局采樣的策略可能更好地覆蓋完整全部數(shù)據(jù),保持模型性能不變。
本文提出的模型與上述工作的主要區(qū)別在于,本文利用改進的神經(jīng)門控網(wǎng)絡(luò)融合多源數(shù)據(jù),并有效減少了融合過程中的特征丟失;此外,為了提高模型的精確性,本文受到文獻[15]在遷移學(xué)習(xí)中采樣策略的啟發(fā),使用基于全局采樣策略,并繼而基于全局采樣策略的優(yōu)化損失函數(shù)從而提高推薦系統(tǒng)的性能。
在推薦系統(tǒng)中,整體項目D中通常包含m個用戶的用戶集合U={u1,u2,…,ui,…,um},n個項目的項目集合I={i1,i2,…,ij,…,in}, 用戶偏好R∈Rm×n。 項目之間的關(guān)系由鄰接矩陣N∈Rn×n表示,如果項目i和項目j相關(guān),則Nij=1。
通過對整體項目D, 項目之間的關(guān)系N以及訓(xùn)練集中用戶偏好R進行用戶行為建模,從而對測試集中的用戶偏好進行預(yù)測,并生成一個推薦列表。
在本節(jié)中,本文將介紹IGNN推薦模型。首先本文具體介紹特征提取模塊,對輸入的數(shù)據(jù)提取特征。然后,對數(shù)據(jù)融合模塊介紹,本文使用改進的神經(jīng)門控網(wǎng)絡(luò)對獲得的多源數(shù)據(jù)進行特征融合。接下來,對融合鄰域特征的用戶行為建模模塊進行介紹。最后,本文介紹一種基于全局采樣策略的損失函數(shù)以減少有用信息的丟失??傮w模型如圖1所示。
圖1 推薦模型總體框架
該模型從下到上分為4部分。第一部分:輸入用戶評分和項目描述;第二部分:特征提取模塊提取用戶評分和項目描述的潛在特征向量,并且采用詞級注意模塊從用戶評分和項目描述中學(xué)習(xí)項目的特征;第三部分:使用改進的門控神經(jīng)網(wǎng)絡(luò)對獲得的多源數(shù)據(jù)進行特征融合;同時,本文使用集成鄰域注意力和自動編碼器的學(xué)習(xí)框架對項目與項目之間的相關(guān)關(guān)系——這一重要的輔助信息進行學(xué)習(xí),然后對用戶偏好進行建模。第四部分:本文采用了一個基于全局采樣策略的損失函數(shù),以減少有用信息的丟失。最后給出計算公式,得到推薦列表。
本節(jié)中,介紹該模型框架的輸入層和特征提取模塊,通過輸入層為該模型提供必要的數(shù)據(jù)準(zhǔn)備。特征提取模塊模型如圖2所示。
圖2 特征提取模塊
3.1.1 項目描述的特征提取
在進行特征嵌入操作時,受Transformer[16]的啟發(fā),本文僅依賴于機器翻譯中的注意機制,在不使用復(fù)雜的遞歸或卷積神經(jīng)網(wǎng)絡(luò)的情況下,對單詞序列應(yīng)用多維注意機制進行學(xué)習(xí)項目的隱藏表示。由于在現(xiàn)實生活中,用戶可能更關(guān)心句子中的幾個重要詞語,而不是順序中的單詞關(guān)系。詞級注意的目標(biāo)是對單詞賦予不同的重要性,然后以加權(quán)的方式聚合單詞嵌入來表征項目。給定項目Di的單詞嵌入,計算注意權(quán)重的普通注意機制由兩層神經(jīng)網(wǎng)絡(luò)表示
(1)
式中:wa1∈Rh,Wa2∈Rh×h,ba2∈Rh是學(xué)習(xí)參數(shù), softmax(·) 可以確保所有計算的權(quán)重總和為1。然后本文根據(jù)ai提供的權(quán)重對Di中的嵌入進行匯總,得到項目的向量表示
(2)
然而,在進行嵌入時為一個單詞設(shè)置一個重要值通常會使模型關(guān)注于項目描述的一個特定方面[17]。它可以是項目描述中的多個方面共同表征這個項目,特別是當(dāng)字?jǐn)?shù)很多時尤其如此。因此,本文需要多個ai來關(guān)注項目描述的不同部分?;谶@一啟發(fā),本文采用矩陣來捕獲多維注意,并為每個詞的嵌入指定一個注意權(quán)重向量。注意權(quán)重向量的每一個維度表示Di中所有嵌入特征的某一個方面。假設(shè)本文希望從嵌入中提取的注意維度為da, 然后本文將wa擴展到Wa1∈Rda×h
Ai=softmax(Wa1tanh(Wa2Di+ba2)+ba1)
(3)
式中:Ai∈Rda×li是注意權(quán)重矩陣,ba1∈Rda是偏差項。
通過將注意力權(quán)重矩陣與單詞嵌入相乘,本文得到了項目的矩陣表示
(4)
(5)
式中:wt∈Rda是聚合層中的參數(shù),at(·) 是激活函數(shù)。
3.1.2 用戶評分的特征提取
(6)
本節(jié)使用混合神經(jīng)門控層,先對數(shù)據(jù)融合模塊進行闡述,然后對融合鄰域特征的用戶行為建模模塊進行闡述,建模層模塊如圖3所示。
圖3 建模層模塊
3.2.1 數(shù)據(jù)融合模塊
本文從兩個不同來源的數(shù)據(jù)——用戶評分和項目描述,分別得到了用戶和項目的相應(yīng)特征。本模塊的目標(biāo)是將這兩種多源異構(gòu)數(shù)據(jù)的特征結(jié)合起來,以便于對用戶的偏好進行預(yù)測。
(7)
(8)
(9)
(10)
式中:w1,w2是對隱藏表示合并進行加權(quán)的權(quán)重值。
3.2.2 融合鄰域特征模塊—集成鄰域注意力和自動編碼器的學(xué)習(xí)框架
(11)
式中:Wn∈Rh×h是在相鄰層中學(xué)習(xí)的參數(shù)。
(12)
在遷移學(xué)習(xí)中對損失函數(shù)優(yōu)化方法的啟發(fā),本文采用基于全局采樣策略的學(xué)習(xí)方法。
3.3.1 加權(quán)策略
本文首先給出了矩陣R中每個條目的權(quán)重策略:
(2)負采樣的權(quán)重計算如下,將較大的權(quán)重分配給頻率較高的項目
(13)
3.3.2 損失函數(shù)優(yōu)化
在以往的研究中往往會采用一個基于負反饋的損失函數(shù)
(14)
為了提高模型預(yù)測的準(zhǔn)確度,本文將基于式(14),推導(dǎo)出一個基于全局優(yōu)化的損失函數(shù)
(15)
式中:B和V分別是計算時的用戶批次和該批次中的用戶集。
在隱式數(shù)據(jù)中,由于Ruv∈{0,1} 表示用戶u是否點擊了項目v, 因此可以用一個常數(shù)來代替它以簡化方程。此外,缺失數(shù)據(jù)的丟失可以用所有數(shù)據(jù)丟失與正數(shù)據(jù)丟失之間的殘差表示
(16)
(17)
(18)
將Zn進行展開,可以獲得以下公式
(19)
通過將式(18)帶入式(16)并移除常量部分,可以得到最終的基于全局采樣策略的損失函數(shù)
(20)
為了驗證本文所提出模型的性能,本節(jié)主要展示在真實數(shù)據(jù)集下該模型與其它主流先進的推薦模型的實驗結(jié)果及其分析。首先介紹實驗采用的數(shù)據(jù)集和評估指標(biāo),然后設(shè)計了多組實驗從不同的角度對比分析了本模型的性能情況。
所提出的模型是在兩個真實世界數(shù)據(jù)集上進行評估的:Movielens-20M[21]和Amazon-CDs[22]。Movielens-20M是一個用戶電影數(shù)據(jù)集。Amazon-CDs數(shù)據(jù)集取自Amazon review dataset,它包含了大量的用戶和項目相交互數(shù)據(jù),如評論、評分、項目標(biāo)簽等。本文將評分不低于四(滿分五分)的評分作為正反饋,并將所有其它評分視為數(shù)據(jù)集中缺失的條目。本文從評分矩陣中計算項目-項目相似性,并將閾值設(shè)置為0.2,以選擇項目的鄰域。為了過濾噪音數(shù)據(jù),本文只保留至少10個等級的用戶和至少5個等級的項目。
預(yù)處理后的數(shù)據(jù)統(tǒng)計見表1。對于每個用戶,本文隨機選擇評分項目的20%作為測試集。其余部分構(gòu)成訓(xùn)練集。隨機選擇獨立進行5次。
表1 數(shù)據(jù)集的統(tǒng)計信息
(21)
NDCG是信息檢索領(lǐng)域中用于評測搜索引擎性能的重要指標(biāo)之一。對于目標(biāo)用戶u′, 其推薦列表中被推薦物品i的NDCG值計算公式
(22)
式中:λu′表示用戶u′的最大DCG的值。其中,reln表示第n個物品與用戶的相關(guān)度。
為了驗證本文模型的有效性,我們將本文提出的方法與如下幾種方法進行了對比:
ConvMF:卷積矩陣分解(ConvMF),它應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)(CNN)捕獲文檔的上下文信息,并將CNN集成到概率矩陣分解(PMF)中。
CVAE:協(xié)同變分自動編碼器(CVAE)是一種生成潛變量模型,它對項目描述和用戶評分的隱藏表示進行融合,并使用帶推理網(wǎng)絡(luò)的變分貝葉斯進行變分推理。
JRL[23]:聯(lián)合表示學(xué)習(xí)(JRL),是一個從不同信息源學(xué)習(xí)聯(lián)合表示的框架,用于top-N推薦。
GATE:門控自動編碼器(GATE)是一種多源數(shù)據(jù)融合模型,將不同信息源的隱藏特征提取并融合。
在實驗中,所有模型的潛在維數(shù)都設(shè)置為50。對于CVAE,本文參照原論文所設(shè)置的參數(shù)a=1,b=0.01, 當(dāng)λu=0.1,λv=10,λr=0.01時,CVAE能獲得良好的性能。對于ConvMF,本文將CNN配置設(shè)置為與原稿相同,當(dāng)a=1,b=0.01,λu=0.1,λv=10時,可以獲得較好的效果。對于JRL,本文按照原論文中的設(shè)置,將batch size設(shè)置為64,負樣本數(shù),λ1=1。 上述方法的網(wǎng)絡(luò)體系結(jié)構(gòu)也與原論文設(shè)置相同。對于GATE,本文按照原論文中的設(shè)置,將batch size設(shè)置為1024,激活函數(shù)設(shè)置為tanh(·)。 對于IGNN,項目的評分是來自所有用戶的評分向量;項目的描述是來自其描述的單詞序列。本文將字序列的最大長度設(shè)置為300,學(xué)習(xí)率和λ分別設(shè)置為0.01和0.001。激活函數(shù)同樣設(shè)置為tanh。 batch size設(shè)置為1024。本文的實驗是在Nvidia GeForce GTX 3070的GPU機器上運行的PyTorch(https://Pytorch.org/)。
本節(jié)將從3個方面:對比實驗結(jié)果分析、混合神經(jīng)門控層參數(shù)對實驗?zāi)P托Ч挠绊懞突谌植蓸硬呗缘膿p失函數(shù)對模型效果的影響對實驗結(jié)果進行分析。
4.5.1 對比實驗結(jié)果分析
在4.4節(jié)設(shè)置實驗條件的情況下,所有對比算法在2個數(shù)據(jù)集上的實驗結(jié)果見表2。
表2 在兩個數(shù)據(jù)集上各個模型的性能比較
從表2中可以發(fā)現(xiàn):首先,本文提出的模型IGNN在兩個數(shù)據(jù)集上都達到了最好的性能,說明了該模型性能處于優(yōu)勢。其次,IGNN相較于JRL和ConvMF有更好的結(jié)果。盡管JRL和ConvMF分別通過doc2vec模型和卷積神經(jīng)網(wǎng)絡(luò)捕獲項目描述中的上下文信息,但它們平等地對待項目的每個單詞,沒有考慮到信息詞帶來的影響,導(dǎo)致對項目描述的文本信息的理解不夠充分。第三,IGNN優(yōu)于CVAE的原因可能是,CVAE是通過詞袋來學(xué)習(xí)項目描述中的文本表示,忽略了重要詞對項目主題或概要的描述作用,同時這種方法通過正則化項將不同數(shù)據(jù)源的隱藏表示聯(lián)系起來,這可能無法平穩(wěn)地平衡各種數(shù)據(jù)表示的影響,并導(dǎo)致繁瑣的超參數(shù)調(diào)整。第四,IGNN性能優(yōu)于GATE的原因可能是,IGNN對門控神經(jīng)網(wǎng)絡(luò)進行了優(yōu)化,將被網(wǎng)絡(luò)“遺忘”的信息重新記憶入網(wǎng)絡(luò)中,同時使用了基于全局采樣的優(yōu)化方法,從而在對隱藏特征進行獲取方面表現(xiàn)的更優(yōu)秀。
4.5.2 混合神經(jīng)門控層參數(shù)對模型效果的影響
在式(9)中,兩個信息源的信息不一定是相同重要的,所以我們以一定比例進行混合,不妨將混合的比例設(shè)計為w1+w2=1。 其中,w1,w2是超參。為了研究不同的混合比例對模型的影響,我們在兩個數(shù)據(jù)集上進行了實驗。我們規(guī)定以w1為x軸,取Recall@10和NDCG@10為示例進行分析,如表3所示。
表3 在兩個數(shù)據(jù)集上不同比例混合對性能的影響
通過觀察實驗結(jié)果,我們可以發(fā)現(xiàn):當(dāng)w1為0或1時,模型變?yōu)槠胀ㄩT控網(wǎng)絡(luò),并且模型獲得的結(jié)果也不相同,說明傳統(tǒng)的門控神經(jīng)網(wǎng)絡(luò)對于多源數(shù)據(jù)融合確實出現(xiàn)特征丟失的情況。
4.5.3 基于全局的優(yōu)化損失函數(shù)對模型效果的影響
為了驗證本文的基于全局采樣策略的損失函數(shù)是否比原損失函數(shù)能更有效率地學(xué)習(xí),所以在本節(jié)中,我們將從損失函數(shù)的收斂性以及模型運行時間這兩個方面與原損失函數(shù)進行對比實驗。損失函數(shù)收斂趨勢對比見表4;模型運行時間對比見表5。
表4 損失函數(shù)收斂趨勢對比
表5 模型運行時間對比實驗
其中,IGNN-E表示使用了原本的損失函數(shù),IGNN表示使用了基于全局采樣的損失函數(shù)。表4中表頭表示訓(xùn)練批次,表的內(nèi)容表示當(dāng)前批次訓(xùn)練損失值;表5中的s、m分別表示秒和分鐘,S表示單個迭代的訓(xùn)練時間、I表示收斂所需的迭代次數(shù)、T表示總訓(xùn)練時間。
從表4中,我們發(fā)現(xiàn)IGNN收斂性優(yōu)于IGNN-E的收斂性;而從表5中,我們發(fā)現(xiàn)IGNN的訓(xùn)練時間開銷比IGNN-E小。這驗證了本文的損失函數(shù)的高效性與先進性。
本文中,我們提出一種基于全局采樣優(yōu)化策略的改進門控神經(jīng)網(wǎng)絡(luò)(IGNN)的混合推薦模型進行推薦。IGNN使用了改進的優(yōu)化門控神經(jīng)網(wǎng)絡(luò)將用戶評分和項目描述進行充分的特征融合。為了減少有用信息的丟失,我們采用了一個基于全局采樣的損失函數(shù)。實驗結(jié)果表明,我們的方法優(yōu)于其它主流先進的推薦模型。未來,我們將在多源數(shù)據(jù)融合方面開展進一步研究工作,以期減少特征丟失,讓推薦模型達到最佳性能。