劉錦濤,謝穎華
(東華大學 信息科學與技術(shù)學院,上海 201620)
推薦系統(tǒng)中用戶已交互的項目相對于系統(tǒng)中的所有項目來說是冰山一角,這導(dǎo)致用戶-項目交互矩陣的元素極度稀疏,而協(xié)同過濾推薦算法是根據(jù)交互數(shù)據(jù)分析用戶潛在的興趣和需求來為用戶提供個性化的資源推薦服務(wù)[1].由于傳統(tǒng)的協(xié)同過濾算法沒有充分利用輔助信息,當數(shù)據(jù)稀疏時,對用戶和項目的信息提取能力有限,相似度的計算不夠準確,無法準確地建立用戶的偏好模型.因此緩解數(shù)據(jù)稀疏問題一直以來都是推薦算法研究的重點.
隨著深度學習的發(fā)展,使用深度學習方法緩解推薦系統(tǒng)的數(shù)據(jù)稀疏問題得到了廣泛研究[2-4].基于深度學習的推薦模型主要是利用矩陣分解思想或網(wǎng)絡(luò)表示學習方法來得到用戶和項目的嵌入特征向量,然后將學習到的用戶和項目的嵌入特征向量通過深度學習方法獲得推薦結(jié)果[5-8].如何向南等人考慮到內(nèi)積運算對傳統(tǒng)矩陣分解模型表達能力的限制,將廣義矩陣分解模型和多層感知機模型進行融合,提出了神經(jīng)協(xié)同過濾模型[9].李同歡等人考慮到在不同維度空間中用戶和項目的潛向量表示的意義不同,在隱藏層設(shè)計了一種多交互的網(wǎng)絡(luò)結(jié)構(gòu),即利用塔式結(jié)構(gòu)的神經(jīng)傳播網(wǎng)絡(luò)學習不同維度空間中用戶和項目的潛向量表示,并通過內(nèi)積操作表示每一層用戶潛向量和項目潛向量的交互結(jié)果,最后綜合所有的交互結(jié)果作為最終的預(yù)測結(jié)果[10].
隨著圖神經(jīng)網(wǎng)絡(luò)研究的發(fā)展,將網(wǎng)絡(luò)表示學習方法運用到推薦系統(tǒng)中成為推薦領(lǐng)域研究的熱點.如Alibaba 的商品推薦系統(tǒng)根據(jù)用戶的行為歷史構(gòu)建項目圖,然后通過帶權(quán)重邊信息的圖嵌入模型學習圖中所有項目的嵌入表示,項目嵌入表示用于計算項目之間的成對相似性,并將其用于推薦過程[11].劉峰等人提出的基于網(wǎng)絡(luò)表示學習與深度學習的推薦算法使用無監(jiān)督的GraphSAGE 算法在用戶圖和項目圖上學習節(jié)點的網(wǎng)絡(luò)嵌入表示,并通過外積建模嵌入向量間的交互關(guān)系以作為后續(xù)卷積網(wǎng)絡(luò)推薦模型的輸入[12].Shi 等人提出的基于異構(gòu)網(wǎng)絡(luò)嵌入的推薦模型通過設(shè)計一種基于元路徑的隨機游走策略,為網(wǎng)絡(luò)嵌入生成元路徑相關(guān)的節(jié)點序列,然后根據(jù)由節(jié)點序列確定的鄰域來學習節(jié)點的相關(guān)元路徑嵌入,并通過融合函數(shù)對學習到的元路徑嵌入進行聚合,最后將聚合后的節(jié)點嵌入集成到擴展的矩陣分解模型中[13].
本文考慮到不同鄰居節(jié)點的屬性信息不同,對學習目標節(jié)點的嵌入表示應(yīng)該有不同的貢獻.圖注意力模型通過注意力機制獲得鄰居節(jié)點的注意力權(quán)重,并按權(quán)重聚合鄰居節(jié)點的特征,從而可以更準確地學習目標節(jié)點的嵌入表示.因此,本文設(shè)計了一種基于圖注意力網(wǎng)絡(luò)表示學習的推薦模型,該模型通過圖注意力網(wǎng)絡(luò)學習用戶和項目的網(wǎng)絡(luò)嵌入表示,并用其改善傳統(tǒng)的基于模型的協(xié)同過濾算法的推薦性能.
矩陣分解模型(matrix factorization,MF)是將用戶-項目交互矩陣分解成用戶潛特征矩陣與項目潛特征矩陣相乘的形式[14].用pu和qi分別表示用戶u和項目i的潛特征向量,對pu和qi進行內(nèi)積運算得到用戶對項目預(yù)測得分.
K表示用戶和項目潛向量的維度大小.從式(1)可以看出,矩陣分解使用潛向量內(nèi)積作為用戶和項目的交互結(jié)果,并假設(shè)維度之間特征彼此獨立且權(quán)重相等.但在實際中,用戶和項目的潛特征向量的各個維度之間可能不是彼此獨立的,并且每個維度的特征權(quán)重也有所不同,簡單的線性疊加限制了模型的表征能力.因此,在矩陣分解的基礎(chǔ)上,有學者提出了其廣義的神經(jīng)網(wǎng)絡(luò)實現(xiàn).
從圖1 中可以看到,神經(jīng)網(wǎng)絡(luò)實現(xiàn)的廣義矩陣分解模型(generalized matrix factorization,GMF)將用戶和項目的One-hot 編碼作為模型的輸入,通過嵌入層將用戶和項目的稀疏輸入向量映射為稠密的潛特征向量,接著在矩陣分解層對用戶和項目的潛特征向量進行對應(yīng)元素積操作,最后通過一層全連接操作得到模型最終的預(yù)測得分.
圖1 廣義矩陣分解模型
圖注意力網(wǎng)絡(luò)(graph attention network,GAT)將注意力機制引入到基于空間域的圖神經(jīng)網(wǎng)絡(luò)中[15],優(yōu)化了基于頻譜域的圖卷積網(wǎng)絡(luò)不能處理動態(tài)圖和不能表示鄰居節(jié)點重要性程度的缺陷.GAT 通過聚合鄰居節(jié)點的特征來更新目標節(jié)點的特征表示,不需要使用依賴完整的圖的結(jié)構(gòu)的拉普拉斯矩陣,提高了模型的泛化能力,并且通過注意力機制,GAT 可以為每個鄰居節(jié)點學習不同的注意力權(quán)重,實現(xiàn)對鄰居節(jié)點特征的有效聚合以提高對目標節(jié)點的特征提取能力.
不同鄰居節(jié)點的重要性不同,對目標節(jié)點特征表示的貢獻也不同.GAT 通過計算注意力權(quán)重來區(qū)分鄰居節(jié)點的重要程度,并聚合按不同注意力權(quán)重縮放后的鄰居節(jié)點特征表示得到更新后的目標節(jié)點特征表示計算公式如下:
GAT 可以使用多頭注意力機制從不同方面學習節(jié)點的特征表示,豐富模型的數(shù)據(jù)表達能力并穩(wěn)定學習過程.多頭注意力機制是指通過多個獨立的注意力機制執(zhí)行式(3)的轉(zhuǎn)換,從而獲得目標節(jié)點的多個不同特征表示.考慮到每個注意力機制的學習能力不同,學習到的特征表示的意義也不同,多頭注意力機制的輸出有兩種組合方式,一是連接(Concatenation),二是均值(Average).
Concatenation:
Average:
式(4)為連接組合方式,將多頭注意力機制獲得的多個特征表示直接連接起來,這種組合方式會增加特征的維度.式(5)為均值組合方式,對多頭注意力機制獲得的多個特征表示取平均值.
知識圖譜可以通過結(jié)合輔助信息和交互數(shù)據(jù)來更加立體地展現(xiàn)用戶和項目之間復(fù)雜的關(guān)系結(jié)構(gòu),而傳統(tǒng)的基于模型的協(xié)同過濾推薦算法根據(jù)用戶與項目之間的交互信息來優(yōu)化模型參數(shù),學習用戶與項目的潛向量表示,對用戶和項目的信息提取能力有限,沒有考慮到用戶與用戶之間以及項目與項目之間的關(guān)系結(jié)構(gòu)信息,這些信息可以在一定程度上對推薦提供有用的幫助.網(wǎng)絡(luò)表示學習方法在處理圖譜數(shù)據(jù)上有著很大優(yōu)勢,可以通過提取圖中重要的網(wǎng)絡(luò)結(jié)構(gòu)特征和節(jié)點屬性特征,學習圖中節(jié)點的嵌入表示.因此,本文提出一種基于圖注意力網(wǎng)絡(luò)表示學習的協(xié)同過濾推薦算法.算法的流程示意圖如圖2所示.
圖2 算法流程示意圖
本文算法的整體流程如下:首先根據(jù)用戶的行為歷史構(gòu)建用戶-項目二分網(wǎng)絡(luò),并由計算出的用戶之間、項目之間的相似度將二分網(wǎng)絡(luò)分解成用戶與用戶的同質(zhì)網(wǎng)絡(luò)以及項目與項目的同質(zhì)網(wǎng)絡(luò).然后在同質(zhì)網(wǎng)絡(luò)上進行節(jié)點的網(wǎng)絡(luò)表示學習,利用圖注意力網(wǎng)絡(luò)融合節(jié)點的屬性信息和網(wǎng)絡(luò)結(jié)構(gòu)信息,學習用戶與項目的網(wǎng)絡(luò)嵌入特征表示.最后將用戶與項目的網(wǎng)絡(luò)嵌入信息通過多層感知機融入到廣義矩陣分解模型中,綜合兩個部分的預(yù)測結(jié)果,構(gòu)建出融合網(wǎng)絡(luò)嵌入信息的神經(jīng)矩陣分解模型.
推薦系統(tǒng)收集有用戶與項目之間的交互記錄以及他們各自的屬性信息,因此可以通過知識圖譜來建模用戶和項目之間的關(guān)聯(lián)信息.圖中有兩類節(jié)點,分別表示用戶和項目,節(jié)點特征為用戶和項目的屬性特征信息.圖中有一類邊,表示用戶與項目的交互行為.根據(jù)這些映射構(gòu)成用戶-項目二分網(wǎng)絡(luò)G=(U,V,E).用戶節(jié)點集合用U={u1,u2,···,uN}表示,項目節(jié)點集合用V={v1,v2,···,vM}表示,邊的集合用E表示,eij∈E表示用戶和項目之間存在交互.
用戶-項目二分網(wǎng)絡(luò)是一個由用戶和項目之間交互信息構(gòu)建的異構(gòu)網(wǎng)絡(luò),對于用戶、項目的同質(zhì)網(wǎng)絡(luò)來說,用戶-用戶之間、項目-項目之間也有著各自的聯(lián)系.以項目同質(zhì)網(wǎng)絡(luò)為例,不同的項目可能有著相似的受眾群體,因此可以根據(jù)相似度將用戶-項目二分網(wǎng)絡(luò)分解為兩個同質(zhì)網(wǎng)絡(luò).定義用戶節(jié)點之間和項目節(jié)點之間的相似度計算公式如下:
用戶相似度:
項目相似度:
其中,wij對應(yīng)邊eij的權(quán)重,不存在邊則為0.計算獲得項目相似度矩陣與用戶相似度矩陣接著根據(jù)WV和WU對相似度大于閾(值的)節(jié)點之間添加邊,從而建立項目同質(zhì)網(wǎng)絡(luò)和用戶同質(zhì)圖.
在用戶同質(zhì)網(wǎng)絡(luò)GU和項目同質(zhì)網(wǎng)絡(luò)GV上,我們分別進行用戶和項目的網(wǎng)絡(luò)表示學習.通過圖注意力網(wǎng)絡(luò)模型學習目標節(jié)點與鄰居節(jié)點之間的注意力權(quán)重,并根據(jù)權(quán)重值聚合鄰居節(jié)點的特征表示來更新目標節(jié)點的嵌入特征表示.為了提高模型的數(shù)據(jù)表達能力,本文使用雙頭注意力機制學習節(jié)點的特征表示,并通過均值組合方式綜合這兩種特征表示.
用戶網(wǎng)絡(luò)嵌入表示:
項目網(wǎng)絡(luò)嵌入表示:
其中,FU為用戶節(jié)點的屬性特征矩陣,FV為項目節(jié)點的屬性特征矩陣,AU為用戶鄰接矩陣,AV為項目鄰接矩陣,為采用均值組合方式的雙頭圖注意力網(wǎng)絡(luò)模型,XU和XV分別為GAT網(wǎng)絡(luò)學習的用戶網(wǎng)絡(luò)嵌入特征矩陣和項目網(wǎng)絡(luò)嵌入特征矩陣.
網(wǎng)絡(luò)表示學習分為無監(jiān)督學習和有監(jiān)督學習兩種方式.無監(jiān)督學習采用基于圖的損失函數(shù)作為模型優(yōu)化的目標函數(shù),即希望相鄰節(jié)點具有相似的嵌入特征表示,同時讓相離節(jié)點的嵌入特征表示之間盡可能區(qū)分.有監(jiān)督學習可以根據(jù)任務(wù)的不同來設(shè)置相應(yīng)的目標函數(shù).本文使用有監(jiān)督的圖注意力網(wǎng)絡(luò)模型學習節(jié)點的嵌入表示,將節(jié)點之間的相似度作為模型訓練的目標值,使用均方誤差作為模型優(yōu)化的目標函數(shù).
其中,xi和xj為節(jié)點i和節(jié)點j的網(wǎng)絡(luò)嵌入特征向量,wij表示節(jié)點之間相似度,模型學習的目標是使得節(jié)點的網(wǎng)絡(luò)嵌入特征向量之間的夾角余弦盡可能接近計算出的相似度值.
MF 模型將用戶和項目映射到相同的潛空間,使用潛向量間的內(nèi)積作為用戶和項目的交互結(jié)果,然后對用戶-項目交互矩陣使用基于點的目標函數(shù)來優(yōu)化模型參數(shù),學習用戶和項目的潛特征矩陣,用戶或項目潛特征向量之間的夾角余弦反映出他們之間的相似性.在實際中,我們使用皮爾遜系數(shù)作為用戶或項目之間的真實相似度,簡單內(nèi)積操作對用戶和項目的信息提取能力有限,在恢復(fù)用戶之間和項目之間的真實相似度上存在缺陷.因此本文通過圖注意力網(wǎng)絡(luò)模型來學習用戶和項目的網(wǎng)絡(luò)嵌入特征表示,擬合真實相似度,并將在網(wǎng)絡(luò)表示學習中獲得的用戶和項目的網(wǎng)絡(luò)嵌入信息通過多層感知機融入到廣義矩陣分解模型中,構(gòu)建一種融合網(wǎng)絡(luò)嵌入信息的神經(jīng)矩陣分解模型(GATNMF),緩解MF 模型存在的缺陷.GAT-NMF 網(wǎng)絡(luò)模型如圖3所示.
圖3 融合網(wǎng)絡(luò)嵌入信息的神經(jīng)矩陣分解模型
GAT-NMF 由圖注意力網(wǎng)絡(luò)信息嵌入的多層感知機模型(GAT-MLP)和廣義矩陣分解模型(GMF)這兩部分組成.輸入層為用戶和項目的one-hot 向量.GMF的嵌入層通過單層神經(jīng)網(wǎng)絡(luò)映射得到用戶和項目的潛特征矩陣.GAT-MLP 的嵌入層通過圖注意力網(wǎng)絡(luò)表示學習獲得用戶和項目的網(wǎng)絡(luò)嵌入特征矩陣.
GMF 部分將用戶和項目的潛特征向量進行對應(yīng)元素積,最后通過權(quán)值向量映射得到預(yù)測得分.
其中,pGMF表示GMF 模型的用戶潛特征向量,qGMF表示GMF 模型的項目潛特征向量,⊙表示對應(yīng)元素積,為全連接層的權(quán)值向量.
GAT-MLP 部分將GAT 網(wǎng)絡(luò)學習的用戶和項目的網(wǎng)絡(luò)嵌入特征表示拼接后通過多層感知機得到預(yù)測得分,MLP 采用3 層的塔式網(wǎng)絡(luò)結(jié)構(gòu).
其中,pGAT表示用戶的網(wǎng)絡(luò)嵌入特征表示,qGAT表示項目的網(wǎng)絡(luò)嵌入特征表示,Wl和bl分別表示網(wǎng)絡(luò)層l的權(quán)重矩陣和偏差向量,為全連接層的權(quán)值向量,激活函數(shù) σ選擇tanh 函數(shù).
使用邏輯回歸中的對數(shù)似然函數(shù)作為GMF 模型和GAT-MLP 模型優(yōu)化的損失函數(shù).yui表示用戶u與項目i之間的交互信息,存在交互關(guān)系為1,不存在為表示模型的預(yù)測值,表示用戶與預(yù)測項目存在交互的可能性,Y表示與用戶存在交互的項目集合,Y-表示在用戶沒有交互的項目集合中采樣的負樣本,在全連接層使用Sigmoid 函數(shù)將其取值范圍限制在[0,1],損失函數(shù)定義如下:
Movielens 100 K 是提供電影推薦的數(shù)據(jù)集[16],它包含943 位用戶對1 682 部電影的10 萬條評分信息,以及用戶的性別、年齡、職業(yè),電影的類別、上映時間等屬性信息.本文按9:1 的比例隨機地將原數(shù)據(jù)集劃分為訓練集和測試集.
圖注意力網(wǎng)絡(luò)表示學習在訓練時需要構(gòu)建用戶和項目的同質(zhì)網(wǎng)絡(luò),因此需要根據(jù)相似度閾值確定節(jié)點的鄰居節(jié)點.本文在實驗中設(shè)置用戶同質(zhì)網(wǎng)絡(luò)的相似度閾值為0.2,項目同質(zhì)網(wǎng)絡(luò)的相似度閾值為0.1,將相似度大于閾值的節(jié)點添加為鄰居節(jié)點.在學習節(jié)點嵌入時,采樣鄰居節(jié)點中相似度最高的前5 個節(jié)點進行特征聚合.GAT 的其它參數(shù)設(shè)置如下:嵌入特征維度d1=32,聚合深度為1,注意力頭數(shù)為2,batchSize 為512,學習率為0.000 1.
GAT-NMF 模型訓練時需要擴展訓練集,定義用戶交互的項目構(gòu)成其訓練正樣本,假設(shè)用戶的訓練正樣本數(shù)為m,從其未交互的項目中隨機抽取s×m個項目作為該用戶的訓練負樣本.在測試時,對于用戶的每一個正樣本,同樣隨機抽取該用戶t個負樣本并與正樣本一起構(gòu)成一組測試樣本.本文在實驗中設(shè)置訓練負采樣系數(shù)s為4,測試負采樣數(shù)t為99.GAT-NMF 的其它參數(shù)設(shè)置如下:GMF 的潛向量維度d2=32,權(quán)衡參數(shù)α=0.5,batchSize 為128,學習率為0.001.
在基于排序Top-N 的推薦系統(tǒng)中,推薦的質(zhì)量與推薦列表中用戶真正發(fā)生交互的項目數(shù)呈正相關(guān).為驗證本文算法的有效性,使用召回率與歸一化折損累計增益作為評估指標.
(1)召回率
在推薦系統(tǒng)中,對于用戶u,設(shè)R(u)為其推薦列表,T(u)為其真實交互列表.召回率為系統(tǒng)推薦且用戶真正交互的項目在交互列表中的比值.公式如下:
召回率值越大,推薦算法命中用戶感興趣項目的概率越大,推薦性能越優(yōu).此外召回率的大小與推薦列表的長度緊密相關(guān),通常表示為HR@K 以表明推薦列表長度的條件設(shè)置.
(2)歸一化折損累計增益(NDCG)
累計增益(CG)表示為推薦列表中的項目相關(guān)性程度的總和,缺乏對項目排序的位置因素的考量.而折損累計增益(DCG)對推薦結(jié)果在列表中的排名增加了懲罰,公式如下:
其中,reli表示位于位置i的推薦結(jié)果的相關(guān)性,若與用戶存在交互關(guān)系則為1,否則為0.K為推薦列表的長度.由于評估指標衡量的是算法對整體用戶的推薦效果,因此使用歸一化折損累計增益(NDCG)作為推薦結(jié)果的評估指標,公式如下:
其中,IDCG為理想情況下最大DCG值,即推薦算法為某一用戶返回的推薦結(jié)果為按照相關(guān)性從大到小的順序排序的前K個結(jié)果組成的集合,也就是最優(yōu)推薦列表.NDCG@K用作排序結(jié)果的評價指標,評價排序的準確性,與推薦列表的長度相關(guān),取值范圍在0~1 之間,且其值越接近于1,推薦效果越好.
3.3.1 推薦性能分析
為驗證本文算法的有效性,實驗選取了較為有代表性的ItemKNN[16]、GMF[9]、MLP[9]、和NeuMF[9]模型進行對比實驗.
圖4 顯示了在Movielens 數(shù)據(jù)集中本文模型和其它幾種模型在不同推薦列表長度K下召回率HR@K的對比情況.從圖中可以看出,在相同的推薦列表長度下,對于無序評價指標,本文模型的召回率高于其它幾種模型,其推薦的項目為用戶所喜好的概率最大.且在推薦列表長度K=5 時,本文GAT-NMF 模型的召回率較NeuMF 模型提升了1.02%,較GMF 模型提升了2.21%,較MLP 模型提升了6.53%.
圖4 HR 對比情況
圖5 顯示了在Movielens 數(shù)據(jù)集中本文模型和其它幾種模型在不同推薦列表長度K下的歸一化折損累計增益NDCG@K 的對比情況.從圖中可以看出,在相同的推薦列表長度下,對于有序評價指標,本文模型的歸一化折損累計增益高于其它幾種模型,其推薦列表中真正為用戶所喜好的項目在列表中的排序更靠前,即排序的準確性最高.且在推薦列表長度K=5 時,本文GAT-NMF 模型的歸一化折損累計增益較NeuMF模型提升了1.26%,較GMF 模型提升了2.17%,較MLP 模型提升了6.11%.
圖5 NDCG 對比情況
此外,實驗還將本文GAT-MLP 模型和MLP 模型的推薦性能隨迭代次數(shù)的變化情況進行了對比,推薦列表長度設(shè)置為10,實驗結(jié)果如圖6、圖7所示.
圖7 NDCG 的迭代次數(shù)對比實驗
圖6 顯示了本文GAT-MLP 模型和MLP 模型的召回率隨迭代次數(shù)的變化情況.從圖6 中可以看出,經(jīng)過圖注意力網(wǎng)絡(luò)表示學習的GAT-MLP 模型的召回率高于MLP 模型,較MLP 模型提升了2.18%,并且GAT-MLP 模型的收斂速度也快于MLP 模型.
圖6 HR 的迭代次數(shù)對比實驗
圖7 顯示了本文GAT-MLP 模型和MLP 模型的歸一化折損累計增益隨迭代次數(shù)的變化情況.從圖7中可以看出,經(jīng)過圖注意力網(wǎng)絡(luò)表示學習的GAT-MLP模型的歸一化折損累計增益優(yōu)于MLP 模型,較MLP模型提升了2.03%.
表1 顯示了本文算法GAT-NMF 和其它幾種算法在不同推薦列表長度K下的HR@K 和NDCG@K 的具體得分情況.
表1 Movielens 數(shù)據(jù)集對比實驗結(jié)果
傳統(tǒng)的基于模型的協(xié)同過濾推薦算法根據(jù)用戶與項目之間的交互信息來學習用戶與項目的潛特征矩陣,使用潛向量間的內(nèi)積表示用戶和項目的發(fā)生交互的可能性,沒有考慮到用戶與用戶之間以及項目與項目之間的關(guān)系結(jié)構(gòu)信息,對用戶和項目的信息提取能力有限,在恢復(fù)用戶之間和項目之間真實相似度上存在缺陷.因此本文使用知識圖譜來表示用戶與項目之間的復(fù)雜關(guān)系結(jié)構(gòu),根據(jù)用戶-項目二分網(wǎng)絡(luò)計算用戶之間、項目之間的相似度來構(gòu)建用戶與項目的同質(zhì)網(wǎng)絡(luò),并在各自的同質(zhì)網(wǎng)絡(luò)上進行節(jié)點的圖注意力網(wǎng)絡(luò)表示學習,最后構(gòu)建融合網(wǎng)絡(luò)嵌入信息的神經(jīng)矩陣分解模型獲得推薦結(jié)果.與相關(guān)算法進行對比實驗,本文算法提高了推薦的HR@K 和NDCG@K.