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