吳志強(qiáng),解慶,李琳,劉永堅(jiān),3
(1.武漢理工大學(xué)計(jì)算機(jī)與人工智能學(xué)院,湖北武漢 430070;2.數(shù)字出版智能服務(wù)技術(shù)教育部工程研究中心,湖北武漢 430070;3.武漢理工大學(xué)重慶研究院, 重慶 401135)
隨著信息量的快速增長,個(gè)性化推薦系統(tǒng)已成為大多數(shù)面向用戶服務(wù)平臺(tái)中的關(guān)鍵部分。推薦系統(tǒng)目標(biāo)在于給用戶提供可能感興趣的信息,如電影、書籍、商品等。目前有一系列的服務(wù)平臺(tái),如電商平臺(tái)(亞馬遜、淘寶和京東)、社交平臺(tái)(微信、推特)、短視頻平臺(tái)(抖音、快手)等。因此,能夠準(zhǔn)確地預(yù)測用戶對哪些信息感興趣至關(guān)重要。
早期的推薦系統(tǒng)主要通過學(xué)習(xí)用戶-項(xiàng)目歷史交互記錄進(jìn)行預(yù)測。這些模型大部分由表示學(xué)習(xí)模塊和預(yù)測模塊組成:表示學(xué)習(xí)模塊將用戶-項(xiàng)目對以及其輔助信息轉(zhuǎn)換為適當(dāng)?shù)南蛄勘硎?;預(yù)測模塊基于上一模塊學(xué)習(xí)到的向量進(jìn)行預(yù)測。傳統(tǒng)的協(xié)同過濾推薦算法如矩陣分解(MF)算法[1]、相似性模型(FISM)[2]、NAIS 模型[3]等,雖然從只考慮項(xiàng)目側(cè)信息到考慮用戶側(cè)信息,再到加入注意力機(jī)制,效果都有提升,但是無法處理復(fù)雜的用戶關(guān)系。為了解決這些問題,圖神經(jīng)網(wǎng)絡(luò)(GNN)聚合用戶-項(xiàng)目的高階鄰居信息可以增強(qiáng)表示學(xué)習(xí)的效果。相關(guān)算法模型將用戶-項(xiàng)目交互記錄關(guān)聯(lián)起來組成一個(gè)二部圖,在二部圖中,一階關(guān)系表示真實(shí)的用戶-項(xiàng)目交互記錄,而更高階的關(guān)聯(lián)可以反映出用戶行為的相似性、項(xiàng)目內(nèi)容的相似性以及一些協(xié)同過濾信號(hào)。受到GNN 信息傳播的啟發(fā),推薦系統(tǒng)也采用類似的方法去聚合用戶-項(xiàng)目的高階鄰居信息作為新的表示。例如文獻(xiàn)[4]提出NGCF 算法模型去編碼協(xié)同過濾(CF)信號(hào)到向量表示去增強(qiáng)推薦效果。文獻(xiàn)[5]提出一種LightGCN,簡化了NGCF 的網(wǎng)絡(luò)設(shè)計(jì),得到更好的表示效果。
雖然上述方法都取得了很大的成功,但是這些工作沒有充分地利用項(xiàng)目的多模態(tài)信息,例如:抖音短視頻有視頻、音頻等信息;淘寶商品有海報(bào)、文字描述等信息[6]。將多種模態(tài)信息和用戶交互記錄相結(jié)合,可以更深層次地捕獲用戶的偏好。此外,同一項(xiàng)目的不同模態(tài)信息可以存在語義歧義,如兩個(gè)不同主題電影的海報(bào)相似,但是通過文本描述可以區(qū)分。用戶可能對不同模態(tài)信息的偏好度不同,如選擇商品時(shí),相較于文字描述,用戶更想通過圖片去了解衣服視覺效果。最后通過將不同模態(tài)信息結(jié)合起來,可以從多方面去對用戶偏好建模。
已存在的多模態(tài)推薦算法模型主要將多模態(tài)信息作為一個(gè)整體并將它們?nèi)诤系絽f(xié)同過濾框架中。具體采用的方法是將多模態(tài)特征訓(xùn)練整合到一個(gè)特征表示,再將其附加到CF 框架(如文獻(xiàn)[7]提出的MF 模型)中的用戶和項(xiàng)目表示上。文獻(xiàn)[8]提出的VBPR 模型利用項(xiàng)目的視覺特征去豐富其嵌入向量(利用ID 生成)。文獻(xiàn)[9]提出ACF 模型基于多模態(tài)利用注意力機(jī)制在用戶-項(xiàng)目歷史交互圖上聚合鄰居的兩跳信息。雖然這些模型融入了多模態(tài)信息,取得很好的效果,但對用戶細(xì)粒度的模態(tài)偏好無法捕獲。
為解決上述問題,研究人員將不同模態(tài)信息細(xì)化并引入到GNN 框架模型中。前提是將多模態(tài)信息加入到圖中構(gòu)建多模態(tài)知識(shí)圖譜,在利用GNN傳播和聚合鄰居信息的同時(shí),去捕獲用戶模態(tài)偏好。文獻(xiàn)[10]提出MKGAT 模型,在KGAT 模型[11]的基礎(chǔ)上引入多模態(tài)節(jié)點(diǎn),將多模態(tài)特征作為項(xiàng)目的節(jié)點(diǎn)加入到知識(shí)圖譜中,利用圖注意力網(wǎng)絡(luò)(GAT)[12]去聚合高階鄰居信息,得到更好的特征表示。但是,這種構(gòu)建整體多模態(tài)知識(shí)圖譜可能引入噪聲信息,導(dǎo)致推薦效果提升受限。同時(shí),如果構(gòu)建文本-圖像的多模態(tài)知識(shí)圖譜進(jìn)行訓(xùn)練需要為每一個(gè)項(xiàng)目節(jié)點(diǎn)增加文本和圖片節(jié)點(diǎn)信息,這對信息要求較為苛刻。文獻(xiàn)[13]提出MGAT,針對單個(gè)模態(tài)構(gòu)建用戶-項(xiàng)目歷史交互圖,通過GNN 學(xué)習(xí)到用戶對單模態(tài)的偏好,最后融合到最終偏好表示向量中,推薦效果進(jìn)一步提升。但是其對不同模態(tài)特征的融合僅利用均值、拼接等方法,沒有很好地學(xué)習(xí)用戶的偏好。
本文提出一種基于輕注意力機(jī)制的多模態(tài)融合推薦算法。首先針對單個(gè)模態(tài)信息,通過用戶-項(xiàng)目交互記錄和模態(tài)預(yù)訓(xùn)練特征構(gòu)建單模態(tài)圖,然后利用GAT 和GRU 學(xué)習(xí)圖中高階鄰居信息,并捕獲局部語義信息,最后通過輕注意力模塊融合各個(gè)模態(tài)得到的用戶和項(xiàng)目特征,捕獲用戶對不同模態(tài)信息的細(xì)粒度偏好。
特征融合這個(gè)主題在很多方向上都有廣泛研究,如語義視頻分析、多視圖圖片分類以及VQA 等。目前在多模態(tài)推薦領(lǐng)域的研究較少,因?yàn)槎嗄B(tài)推薦任務(wù)中涉及各種模態(tài)信息,如視頻、圖片、文本、音頻等信息,可以從文本-視頻檢索相關(guān)工作中借鑒經(jīng)驗(yàn)。
對于視頻方向的特征融合,早期工作常使用向量拼接來合并多個(gè)特征[14]。文獻(xiàn)[15]探索基于學(xué)習(xí)的方法,其中特征由7 個(gè)不同的專家網(wǎng)絡(luò)組成。文獻(xiàn)[16]提出多模態(tài)Transformers 模型去聚合不同視頻幀的特征并組合不同特征空間的相似性。
對于文本端的特征融合,文獻(xiàn)[17]提出W2VV++模型,采用早期融合方法融合3 種文本預(yù)訓(xùn)練模型輸出特征,如詞袋模型、word2vec 和GRU。相反,文獻(xiàn)[18]提出SEA 模型采用晚融合方法,首先構(gòu)造統(tǒng)一的文本特征空間,然后對單個(gè)空間學(xué)習(xí)的特征進(jìn)行平均得到最終特征。
文獻(xiàn)[19]提出輕注意力特征融合(LAFF)聯(lián)合使用特征轉(zhuǎn)換層和注意力層,在模型早期和晚期都進(jìn)行融合,有效地解決了文本-視頻特征檢索的問題。
個(gè)性化推薦系統(tǒng)在很多應(yīng)用上都取得了很大的成功,如電商、短視頻、新聞等平臺(tái)。早期的多模態(tài)推薦算法主要基于CF 模型[20],CF 相關(guān)模型主要利用用戶的顯示反饋和隱式反饋去預(yù)測用戶-項(xiàng)目之間的交互。即使CF 模型取得了很好的效果,但是對于數(shù)據(jù)稀疏場景的推薦效果還有待提升。
隨著深度神經(jīng)網(wǎng)絡(luò)(DNN)在計(jì)算機(jī)視覺、自然語言處理和語音方向上發(fā)展,DNN 也被引入到多模態(tài)領(lǐng)域。一些工作嘗試用預(yù)訓(xùn)練模型提取多模態(tài)特征,再將這些特征融合到CF 模型中增強(qiáng)推薦效果,如文獻(xiàn)[21]提出CITING 模型,挖掘并融合文本特征,對社交媒體圖像語義建模進(jìn)行圖文推薦。文獻(xiàn)[22]利用動(dòng)態(tài)遞歸神經(jīng)網(wǎng)絡(luò)融合視頻語義和用戶興趣對用戶動(dòng)態(tài)偏好進(jìn)行建模。文獻(xiàn)[10]提出MKGAT 模型,在知識(shí)圖譜上加入多模態(tài)節(jié)點(diǎn)構(gòu)建協(xié)同知識(shí)圖譜,利用GAT 機(jī)制聚合高階鄰居信息,但是這樣直接在整個(gè)圖上增加多模態(tài)節(jié)點(diǎn)并進(jìn)行學(xué)習(xí)可能會(huì)引入噪聲信息。文獻(xiàn)[23]利用預(yù)訓(xùn)練模型和GAT 機(jī)制學(xué)習(xí)模態(tài)表示并進(jìn)行三模態(tài)融合,在數(shù)據(jù)稀疏下能很好地捕獲用戶興趣偏好。不同于上述方法,文獻(xiàn)[24]提出MMGCN 模型以及文獻(xiàn)[13]提出MGAT 模型,對單個(gè)模態(tài)構(gòu)建圖,利用GAT 和GRU 學(xué)習(xí)用戶單模態(tài)偏好再進(jìn)行融合,很好地解耦用戶多模態(tài)偏好,更細(xì)粒度地捕獲用戶興趣。
由于GCN 有效且便利,因此在當(dāng)前的工作中被大量使用。文獻(xiàn)[25]提出基于GCN 的模型PinSAGE,通過采樣和聚合鄰居信息得到節(jié)點(diǎn)表示,具有很好的效果。目前大部分工作都是利用圖神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),同時(shí)加上GAT、GRU 等機(jī)制,更細(xì)粒度地對用戶偏好建模。文獻(xiàn)[26]利用圖神經(jīng)網(wǎng)絡(luò)處理圖中復(fù)雜的結(jié)構(gòu)信息,考慮到用戶重復(fù)點(diǎn)擊行為和引入GAT 機(jī)制,提升了序列推薦的效果。NGCF模型在用戶-項(xiàng)目交互二部圖中將協(xié)同過濾信號(hào)加入向量嵌入過程,得到高階交互特征表示建模。
基于上述相關(guān)工作的分析,現(xiàn)有基于圖神經(jīng)網(wǎng)絡(luò)的多模態(tài)推薦算法沒有很好地區(qū)分用戶對模態(tài)的偏好。本文在圖神經(jīng)網(wǎng)絡(luò)推薦中引入多模態(tài)信息,并且在最后特征融合階段引入注意力機(jī)制以建模用戶對不同模態(tài)的偏好,從而更細(xì)粒度地捕獲用戶興趣,同時(shí)注意力模塊可擴(kuò)展性強(qiáng),便于加入其他模態(tài)信息。
首先詳細(xì)介紹文中涉及的一些基本概念和符號(hào)。用戶-項(xiàng)目二部圖由用戶和項(xiàng)目交互記錄構(gòu)成,其邊代表用戶和項(xiàng)目有交互,記用戶-項(xiàng)目二部圖為G=(V,E),其中,G是無向圖,V=U∪I代表節(jié)點(diǎn)集合,U表示用戶節(jié)點(diǎn),I表示項(xiàng)目節(jié)點(diǎn),E={(u,i)|u?U,i?I}代表邊集合,每條邊表示一條用戶-項(xiàng)目交互記錄。
多模態(tài)交互圖(見圖1)表示在用戶-項(xiàng)目交互二部圖G基礎(chǔ)上,除了用戶和項(xiàng)目的交互記錄外,一個(gè)項(xiàng)目還有其他模態(tài)信息(如文本、圖片等)。為每個(gè)模態(tài)都單獨(dú)構(gòu)建一個(gè)交互圖,用戶與項(xiàng)目之間的邊表示交互記錄,項(xiàng)目與多模態(tài)節(jié)點(diǎn)的邊表示項(xiàng)目擁有這個(gè)模態(tài)信息,記多模態(tài)圖集合為{Gk},k?{1,2}表示圖片和文本模態(tài)。
圖1 多模態(tài)項(xiàng)目示例Fig.1 Example of multimodal item
模型輸入:用戶-項(xiàng)目交互記錄、圖片、文本預(yù)訓(xùn)練特征。
模型輸出:一個(gè)可以預(yù)測用戶u和項(xiàng)目i交互可能性的推薦函數(shù)。
本文提出一個(gè)新的多模態(tài)模型方法MFGAT,模型框架如圖2 所示,MFGAT 主要由5 個(gè)部分組成:1)數(shù)據(jù)集模塊表示在用戶-項(xiàng)目歷史交互數(shù)據(jù)基礎(chǔ)上,為每個(gè)項(xiàng)目都引入圖像和文本信息,然后構(gòu)建單模態(tài)圖分別進(jìn)行訓(xùn)練;2)嵌入層利用用戶、項(xiàng)目的ID 信息初始化向量表示,同時(shí)項(xiàng)目的圖片、文本向量由預(yù)訓(xùn)練模型得到;3)信息傳播層在單個(gè)模態(tài)圖上利用信息傳播機(jī)制捕獲用戶在單模態(tài)下的偏好;4)特征融合層利用輕注意力機(jī)制將用戶對不同模態(tài)信息的偏好融合到最終表示向量中;5)預(yù)測層將基于最終融合得到的向量去評估用戶的交互興趣。
圖2 MFGAT 的總體框架Fig.2 The overall framework of MFGAT
用戶和項(xiàng)目都有自己唯一的ID 信息,利用用戶和項(xiàng)目ID 信息初始化用戶和項(xiàng)目的表示向量,分別記為eu和ei。
在第k個(gè)模態(tài)的交互圖中,每一個(gè)項(xiàng)目i都有一個(gè)預(yù)訓(xùn)練模型得到的模態(tài)特征向量ek,i,用于表示該項(xiàng)目在此模態(tài)的特征含義,如利用BERT[27]模型對項(xiàng)目的描述文本進(jìn)行訓(xùn)練得到文本特征向量。所有的嵌入表示向量如下:
其中:eu?R|U|×d,ei、ek,i?R|I|×d,d代表嵌入向量的長度,ei、eu在模型開始時(shí)隨機(jī)初始化,然后在計(jì)算過程中不斷被訓(xùn)練,ek,i由預(yù)訓(xùn)練網(wǎng)絡(luò)模型得到。
傳統(tǒng)推薦模型一般直接將用戶-項(xiàng)目對的表示向量送入預(yù)測模塊進(jìn)行訓(xùn)練,而基于GNN 的模型會(huì)從用戶-項(xiàng)目交互圖中學(xué)習(xí)新表示,可以在多模態(tài)圖上捕獲用戶在模態(tài)粒度上的偏好。
在交互圖中,信息傳播機(jī)制是節(jié)點(diǎn)利用圖注意力網(wǎng)絡(luò)聚合鄰居信息并遞歸進(jìn)行此步驟,以此來捕獲用戶-項(xiàng)目和項(xiàng)目-項(xiàng)目的關(guān)系。對于一個(gè)節(jié)點(diǎn)h,其相鄰的一跳鄰居節(jié)點(diǎn)集合可以定義為Nh={t|(h,t)?E}。信息從鄰居節(jié)點(diǎn)Nh傳播到節(jié)點(diǎn)h的公式可以表示為:
其中:k表示第k個(gè)模態(tài)特征;fg(h,t) 表示門控模塊的注意力機(jī)制,門控注意力機(jī)制決定鄰居信息是否被傳播到節(jié)點(diǎn)h;fa(h,t)表示GAT 模塊的注意力機(jī)制,決定鄰居信息對節(jié)點(diǎn)h的影響大小;Wk,1是一個(gè)可訓(xùn)練的權(quán)重矩陣。
對于門控組件,受到之前的工作如MKGAT 和MGAT 啟發(fā),有4 種不同的門控組合類型:
1)求和門控機(jī)制先將ek,h和ek,t相加,再乘上以處理鄰居信息,即:
其中:δ(?)是激活函數(shù);d是節(jié)點(diǎn)h的度。所以,門控參數(shù)依賴于節(jié)點(diǎn)h和節(jié)點(diǎn)t。
2)內(nèi)積門控機(jī)制將ek,h和ek,t相乘,即:
3)連接門控機(jī)制將兩個(gè)向量直接拼接,即:
其中:‖表示拼接操作;Wc表示可訓(xùn)練權(quán)重矩陣。
3)還可以組合式(4)和式(5)的形式,得到更好的表示。公式可以表示為:
其中:⊙表示元素相乘;Wb表示可訓(xùn)練權(quán)重矩陣。
對于聚合鄰居操作,引入注意力機(jī)制去學(xué)習(xí)不同鄰居的重要性,如式(7)所示:
其中:tanh 是一個(gè)非線性激活函數(shù);Wk,h和Wk,t是可訓(xùn)練權(quán)重矩陣。此后采用Softmax 函數(shù)對所有鄰居節(jié)點(diǎn)的注意力權(quán)重參數(shù)歸一化,如式(8)所示:
在獲得fg(h,t)和fa(h,t)后,對其進(jìn)行內(nèi)積,可以在模態(tài)粒度上捕獲用戶興趣偏好,即fg(h,t)決定是否將這個(gè)模態(tài)信息傳遞給節(jié)點(diǎn)h,而fa(h,t)決定這個(gè)模態(tài)信息對節(jié)點(diǎn)h的貢獻(xiàn)程度。
其中:Wk,2是可訓(xùn)練權(quán)重矩陣;eh是節(jié)點(diǎn)h的ID 表示向量。將和組合,如式(10)表示:
獲得節(jié)點(diǎn)h一階連接鄰居聚合表示后,可以堆疊連接層去探索高階連接表示來增強(qiáng)效果。通過遞歸進(jìn)行之前的聚合操作,節(jié)點(diǎn)h的高階表示如式(11)所示:
之前的多模態(tài)推薦工作如MGCN 和MGAT,對特征融合操作僅僅將多個(gè)模態(tài)向量相加再求平均,在融合層面上無法更好地區(qū)分用戶對不同模態(tài)信息的偏好。受到LAFF 工作的啟發(fā),利用注意力機(jī)制去區(qū)分用戶的偏好程度。如圖2(b)所示,本文的注意力模塊擴(kuò)展性更好,數(shù)據(jù)集只有文本描述和圖片海報(bào),當(dāng)引入音頻、視頻等模態(tài)信息時(shí),可以很方便地加入到模型中,并且此注意力模塊參數(shù)量較多頭注意力模塊要少很多,是一個(gè)輕量級模塊。
其中:σ是一個(gè)非線性激活函數(shù),本文工作采用tanh 函數(shù)以提高轉(zhuǎn)換層的學(xué)習(xí)能力;Lineardk×d表示全連接層,輸入大小為dk,輸出大小為d。每一個(gè)輸入向量有自己的線性層Linear。當(dāng)d=dk時(shí),線性層可以不加。
考慮到不同模態(tài)信息重要程度不同,對轉(zhuǎn)換后的特征加權(quán)融合,如式(13)所示:
其中:權(quán)重參數(shù){a1,a2,…,ak}由輕注意力層計(jì)算得出。如式(14)所示:
通過輕注意力層將不同模態(tài)特征融合,再送入預(yù)測層。同時(shí),本文工作將輕注意力用于晚期特征融合,也可以嘗試在預(yù)訓(xùn)練時(shí)對同一個(gè)模態(tài)信息,用不同預(yù)訓(xùn)練模型訓(xùn)練,然后利用輕注意力層進(jìn)行前期特征融合。
假設(shè)傳播跳數(shù)為L,為了保留所有跳的信息,同時(shí)考慮一定的有序性,將各跳得到的用戶和項(xiàng)目輸出向量進(jìn)行拼接得到最終向量,如式(15)、式(16)所示:
其中:‖表示拼接操作;L代表傳播層數(shù)。這樣不僅可以通過執(zhí)行傳播操作來豐富初始向量,還可以通過調(diào)整L來控制傳播的強(qiáng)度。
最終執(zhí)行用戶和項(xiàng)目向量的內(nèi)積,得到預(yù)測匹配分?jǐn)?shù),如式(17)所示:
然后使用貝葉斯個(gè)性化排序損失函數(shù)(BPR)去優(yōu)化推薦預(yù)測損失。具體來說,假設(shè)用戶喜歡之前交互過的項(xiàng)目,應(yīng)該比沒有交互過的項(xiàng)目預(yù)測得分更高,如式(18)所示:
其中:O?{(u,i,j)|(u,i)?R+,(u,j)?R-}是訓(xùn)練集;R+是用戶-項(xiàng)目有交互記錄的集合;R-是沒有交互記錄的集合;δ(?)是激活函數(shù);λ是一個(gè)超參數(shù),表示衰減因子;θ是一個(gè)超參數(shù)。
為了驗(yàn)證模型的有效性,在公共數(shù)據(jù)集MovieLens-20M 和H&M 上進(jìn)行了大量實(shí)驗(yàn)。
MovieLens 是推薦算法中常用的電影數(shù)據(jù)集,記錄了用戶對不同電影的顯式評分,評分等級范圍為1~5。本文工作使用MovieLens-20M 作為實(shí)驗(yàn)數(shù)據(jù)集,為了模擬用戶-項(xiàng)目二部圖,將評分轉(zhuǎn)換為隱式反饋,保留評分為5 的強(qiáng)相關(guān)交互記錄作為正樣本,用戶對該項(xiàng)目交互記為1,其余項(xiàng)目交互記為0。為了豐富電影數(shù)據(jù)的多模態(tài)信息,從IMDB 網(wǎng)站上爬取電影海報(bào)以及電影描述,并將電影名稱與電影描述合并作為文本描述。過濾掉沒有多模態(tài)信息的電影記錄之后,對電影數(shù)據(jù)進(jìn)行多模態(tài)特征提取,采用預(yù)訓(xùn)練模型ResNet50[28]從海報(bào)圖像中提取視覺特征,然后采用預(yù)訓(xùn)練模型BERT 從文本描述中提取文本特征。
H&M 是kaggle 多模態(tài)算法比賽公開的數(shù)據(jù)集。數(shù)據(jù)集本身提供了用戶購買商品的記錄、商品圖片以及商品各種屬性描述信息。因?yàn)閿?shù)據(jù)量太大,篩選有超過50 條交互記錄的用戶,同時(shí)篩選有多模態(tài)信息的商品;將商品名稱、商品描述以及一些屬性信息共同作為文本描述。同樣,采用預(yù)訓(xùn)練模型ResNet50 從商品圖片中提取視覺特征,然后采用預(yù)訓(xùn)練模型BERT 從商品描述、名稱、屬性中提取文本信息。
數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1 所示,其中,V和T表示視覺和文本特征向量長度。對于每個(gè)數(shù)據(jù)集,將預(yù)處理之后的數(shù)據(jù)集的80%作為訓(xùn)練集,10%作為測試集,10%作為驗(yàn)證集用于調(diào)整超參數(shù)。
表1 數(shù)據(jù)集統(tǒng)計(jì)數(shù)據(jù)Table 1 The statistics of datasets
本文采用3 種廣泛使用的評估指標(biāo):Precision@K,Recall@K,NDCG@K。其中,Precision@K指標(biāo)量化了排名前K的結(jié)果中有多少項(xiàng)是相關(guān)的,Recall@K指標(biāo)表示預(yù)測出的結(jié)果中相關(guān)結(jié)果占所有結(jié)果的比重,NDCG@K是歸一化折損累計(jì)增益,是一個(gè)與預(yù)測結(jié)果位置有關(guān)的指標(biāo),度量預(yù)測結(jié)果排名高低,值越大表示推薦系統(tǒng)推薦效果越好。本文設(shè)置K=10 并且取測試集中預(yù)測所有用戶的平均結(jié)果。每個(gè)用戶的負(fù)樣本被定義為未交互過的項(xiàng)目。所有實(shí)驗(yàn)代碼都使用PyTorch 框架實(shí)現(xiàn)。
選擇以下基線模型與本文模型進(jìn)行比較:
1)NGCF[4]:以一種顯式的方式將協(xié)作信號(hào)加到向量中,通過合并來自多跳鄰居信息來學(xué)習(xí)交互圖中的高階特征。本文將所有多模態(tài)特征向量連接作為項(xiàng)目的向量表示,用于后續(xù)的模型訓(xùn)練。
2)VBPR[8]:將視覺特征注入到項(xiàng)目向量表示中,然后利用矩陣分解來學(xué)習(xí)基于用戶和項(xiàng)目交互矩陣的表示向量。本文將數(shù)據(jù)集的多模態(tài)特征拼接成一個(gè)特征向量,并與ID 信息集成,用于后續(xù)預(yù)測用戶和項(xiàng)目之間的交互關(guān)系。
3)MMGCN[24]:是一個(gè)基于圖的算法。為了學(xué)習(xí)用戶對不同模態(tài)的偏好,分別對不同模態(tài)建立用戶-項(xiàng)目交互圖,最后再將不同圖中學(xué)習(xí)到的用戶-項(xiàng)目表示累加得到最終的用戶-項(xiàng)目表示,再送入預(yù)測模塊。
4)MGAT[13]:MGAT 與MMGCN 類似,也是一個(gè)基于圖的算法。同時(shí),也分別對不同模態(tài)建立用戶-項(xiàng)目交互二部圖,但與MMGCN 不同在于在單個(gè)模態(tài)圖訓(xùn)練過程中加入GRU 門控模塊,同時(shí)利用注意力機(jī)制聚合鄰居信息,得到更好的向量表示。本文采用Xavier 初始器來初始化所有模型參數(shù),然后使用Adam 優(yōu)化器優(yōu)化模型。利用網(wǎng)格搜索進(jìn)行超參數(shù)調(diào)優(yōu),其中學(xué)習(xí)率的值選擇分別為{10-1,10-2,10-3,10-4,10-5}。圖神經(jīng)網(wǎng)絡(luò)層數(shù)L的范圍為{1,2,3}。權(quán)重衰減因子和注意力Dropout比率值選擇范圍分別為{10-1,10-2,10-3,10-4,10-5}和{0.1,0.2,…,0.8}。節(jié)點(diǎn)Dropout 和消息Dropout 默認(rèn)為0。其他基線模型都使用原文中超參數(shù)。
將模型與基線方法進(jìn)行比較,結(jié)果如表2 所示,其中最佳結(jié)果用加粗?jǐn)?shù)字表示。從表2 可以看出,MFGAT 表現(xiàn)要優(yōu)于所有基線模型,證明了本文模型設(shè)計(jì)的合理性和有效性。與傳統(tǒng)考慮使用用戶-項(xiàng)目交互記錄的矩陣分解算法(如VBPR)相比,MFGAT 基于圖算法,同時(shí)利用高階連接性聚合鄰居信息可以提高表示學(xué)習(xí)的效果。與基于GNN 的推薦算法(如NGCF 在用戶-項(xiàng)目交互二部圖上僅將不同模態(tài)信息的特征統(tǒng)一為一個(gè)特征向量)相比,MFGAT 對不同模態(tài)分別建立圖,學(xué)習(xí)到不同通道特征向量再進(jìn)行預(yù)測,具有更好的表示能力。與MMGCN 和MGAT 相比,雖然都是分別對不同模態(tài)建立圖再通過高階傳播特征進(jìn)行學(xué)習(xí),但MMGCN沒有使用注意力機(jī)制區(qū)別不同鄰居信息的重要性,MGAT 雖然使用門控機(jī)制和注意力機(jī)制區(qū)分鄰居信息的重要性,但是在最后不同模態(tài)特征融合時(shí)并沒有區(qū)分不同模態(tài)重要性,僅僅取平均值。而MFGAT 通過在特征融合時(shí)加上輕注意力機(jī)制,可以區(qū)分不同模態(tài)信息的重要性,從而識(shí)別用戶的細(xì)粒度偏好。
表2 不同模型的實(shí)驗(yàn)結(jié)果Table 2 Experimental results of different models
基于GNN 的模型在MovieLens-20M 和H&M 上優(yōu)于基于CF 的模型。這些效果改進(jìn)歸因于圖卷積層和注意力機(jī)制,不僅捕獲了局部結(jié)構(gòu)信息,同時(shí)還學(xué)習(xí)了每個(gè)節(jié)點(diǎn)的鄰居特征的分布?;诙嗄B(tài)圖的模型(MFGAT,MGAT,MMGCN)優(yōu)于其他基線模型,與直接統(tǒng)一多模態(tài)特征相比,分別對不同模態(tài)進(jìn)行學(xué)習(xí)可以獲得更好的性能,這表明關(guān)注不同模態(tài)信息可以更好地建模用戶偏好。其中在H&M 數(shù)據(jù)集上NGCF 模型效果好于MMGCN,推測由于H&M 數(shù)據(jù)集是服裝數(shù)據(jù)集,用戶對于圖片更加關(guān)注,而且MMGCN 卷積層沒有注意力機(jī)制來區(qū)分不同模態(tài)信息的重要性,從而導(dǎo)致引入較多噪聲。使用注意力機(jī)制的模型(如MFGAT 和MGAT)效果優(yōu)于MMGCN,表示注意力機(jī)制有利于捕獲用戶更細(xì)粒度的偏好。
下文對模型進(jìn)行分析和討論,以分析可能對本文模型的性能產(chǎn)生影響的因素。
1)圖神經(jīng)網(wǎng)絡(luò)傳播層數(shù)的影響
為了評估傳播層數(shù)給MFGAT 性能帶來的影響,設(shè)計(jì)了3 種不同的傳播層數(shù)實(shí)驗(yàn),傳播層數(shù)分別是1、2、3,MFGAT_1 代表聚合一階鄰居。此外,在2 個(gè)數(shù)據(jù)集上嵌入向量長度都為64。如圖3 所示,對不同層數(shù)建模的MFGAT 性能進(jìn)行比較。從實(shí)驗(yàn)結(jié)果可以看到,MFGAT_2 的表現(xiàn)要優(yōu)于MFGAT_1 和MFGAT_3,這與MMGCN 和MGAT 觀察的結(jié)果一致,說明了圖神經(jīng)網(wǎng)絡(luò)過平滑的問題,即堆疊更多的圖卷積層或從高階鄰居聚合信息容易引入噪聲,導(dǎo)致效果下降。
圖3 不同層數(shù)對MFGAT 性能的影響Fig.3 The influence of different layers on MFGAT performance
2)不同門控機(jī)制的影響
為了評估由不同的門控注意力機(jī)制引起的影響,對門控機(jī)制的4 種變量進(jìn)行實(shí)驗(yàn),包括內(nèi)積(MFGAT_i)、求和(MFGAT_a)、拼接(MFGAT_c)和Bi-interaction(MFGAT_bi)。實(shí)驗(yàn)結(jié)果如表3 所示,其中,最佳結(jié)果用加粗?jǐn)?shù)字表示??梢钥闯鯩FGAT_i 的效果優(yōu)于其他3 種方法,這表明內(nèi)積方法可能更適合基于多模態(tài)圖模型中的關(guān)系建模。相比之下,其他方法可能由于參數(shù)過多導(dǎo)致過擬合。
表3 不同門控機(jī)制實(shí)驗(yàn)結(jié)果Table 3 Experimental results of different gating mechanisms
3)模態(tài)信息數(shù)量的影響
為了評估加入不同模態(tài)信息對實(shí)驗(yàn)結(jié)果的影響,設(shè)計(jì)了4 個(gè)實(shí)驗(yàn):即不添加文本和圖像、只添加文本、只添加圖像、同時(shí)添加文本和圖像。實(shí)驗(yàn)結(jié)果如圖4 所示。從圖4 可以看出,多模態(tài)信息的加入可以獲得更好的預(yù)測效果,并且模態(tài)信息種類累加有利于提高推薦性能;不同數(shù)據(jù)集中模態(tài)信息的重要性不同,如電影數(shù)據(jù)集中加入文本的效果比圖像效果好,可能是由于用戶更容易受文本描述影響,就像找電影會(huì)更傾向于看簡介,因?yàn)橥ㄟ^一張海報(bào)并不能更多地捕獲電影細(xì)節(jié),這個(gè)實(shí)驗(yàn)結(jié)果符合預(yù)期。
圖4 不同數(shù)據(jù)集上多模態(tài)類型的實(shí)驗(yàn)結(jié)果Fig.4 Experimental results of multimodal type on different datasets
4)模態(tài)融合中不同融合方法的影響
為了探索不同的融合方法對實(shí)驗(yàn)結(jié)果的影響,設(shè)計(jì)4 種融合方法,包括取最大值(Max)、拼接(Concat)、取均值(Mean)和注意力機(jī)制(Att)。模態(tài)融合中不同融合方法的實(shí)驗(yàn)結(jié)果如圖5 所示??梢钥吹?,加入注意力機(jī)制后能獲得更好的效果,說明注意力機(jī)制可以更好地對用戶興趣建模,更好地捕獲用戶興趣。
圖5 模態(tài)融合中不同融合方法的實(shí)驗(yàn)結(jié)果Fig.5 Experimental results of different fusion methods in modal fusion
為了探索用戶對不同模態(tài)的偏好程度,并直觀地展示用戶偏好和輕注意力機(jī)制的作用,本文給出一個(gè)案例研究,即從MovieLens-20M 數(shù)據(jù)集中隨機(jī)選擇10 個(gè)節(jié)點(diǎn)研究其在特征融合階段對文本和圖片模態(tài)的注意力權(quán)重。得益于輕注意力機(jī)制,可以計(jì)算注意力得分,并在圖6 中可視化相關(guān)得分。在MovieLens-20M 中,文本模態(tài)得分普遍偏高,說明用戶對于電影的文本描述更加關(guān)注。這與圖4 中加入文本模態(tài)相對于加入圖片模態(tài)性能提升更多的結(jié)果相符合,也證明了在多模態(tài)特征融合階段加入輕注意力機(jī)制的有效性。
圖6 注意力權(quán)重分布散點(diǎn)圖Fig.6 Scatter diagram of attention weight distribution
本文提出一種基于圖的多模態(tài)融合推薦算法MFGAT。該算法分別對不同模態(tài)建立交互圖,在單模態(tài)圖上聚合高階鄰居信息,同時(shí)利用注意力機(jī)制去除噪聲和區(qū)分鄰居信息重要性,以此進(jìn)行用戶偏好建模。最后在模態(tài)特征融合時(shí),設(shè)計(jì)輕注意力模塊去捕獲用戶對不同模態(tài)的偏好,模塊設(shè)計(jì)兼顧可擴(kuò)展性和便利性。實(shí)驗(yàn)結(jié)果證明了本文方法的有效性和合理性。下一步將對引入更多輔助信息帶來的影響進(jìn)行研究,以達(dá)到提升推薦準(zhǔn)確性和驗(yàn)證輕注意力模塊有效性的目的。