顧嘉靜,楊丹*,聶鐵錚,寇月
(1.遼寧科技大學計算機與軟件工程學院,遼寧鞍山 114051;2.東北大學計算機科學與工程學院,遼寧 沈陽 110169)
圖神經網絡(GNN)技術由于在圖數據學習方面的良好表現,被廣泛應用于自然語言處理[1-2]、計算機視覺[3-4]、生物醫療[5]等領域。圖神經網絡在具有圖結構的推薦信息上展現了優越的表示學習能力,采用嵌入傳播的方法迭代地聚合鄰域嵌入,通過疊加層,每個節點可以訪問高階鄰居的信息。當前,基于圖神經網絡的推薦模型多用于解決數據稀疏和數據分布不均等問題。
對比學習可以應用于計算機視覺、自然語言處理等領域的各種任務中[6-8],其中,應用于圖表示學習任務中的對比學習技術被稱為圖對比學習。由于圖對比學習可以有效解決推薦系統中圖結構數據標簽稀缺的問題,因此大量研究嘗試將其應用于推薦系統。圖對比學習由數據增強和對比學習2 個關鍵組件構成,前者為每個節點生成多個視圖,后者研究視圖之間的一致性問題。現有研究大多致力于數據增強部分,例如文獻[9-11]提出基于結構的圖數據增強方法,文獻[12]提出基于特征的圖數據增強方法,都取得了較好的效果。雖然現有基于圖對比學習的模型實現了較好的推薦性能,但是依舊存在如下問題:
1)現有的推薦模型通常只使用一種視圖增強方法,而單一的方法存在局限性,當不適用于給定的圖數據時,會導致其丟失本身的特性,因而影響推薦結果的準確性。
2)現有的對比學習只對比同一節點的一對視圖,并沒有很好地利用各視圖中不同的層嵌入,且很少有研究嘗試改進對比學習,僅著力于視圖增強的研究,限制了模型的性能提升。
為了解決上述問題,本文提出一種基于多視圖融合跨層對比學習的推薦算法框架(MFCCL)。該框架首先采用3 種視圖增強方法增強用戶-項目交互圖,其中,基于結構的增強方法和基于特征的增強方法分別用于構建2 個全局視圖,前者為隨機邊丟棄,通過對圖結構的擾動來降低高度節點的影響力;后者為隨機添加噪聲,對學習到的表征添加均勻隨機噪聲,平滑地調節學習到的表征的均勻性。第3 種視圖增強方法為奇異值分解,從全局視角提取協同信號,構建局部視圖。然后,使用所提多視圖融合跨層對比學習方法,最大化圖卷積網絡聚合得到的2 個視圖不同層嵌入之和間表示的一致性,與局部-全局視圖對比學習相結合,從而優化模型。最后,根據學習得到的節點嵌入預測推薦列表。本文的主要工作如下:
1)基于現有研究闡述視圖增強在圖對比學習中的有效性,引入3 種不同的視圖增強方法構建全局和局部共3 個視圖,以避免單個增強方法造成的負面影響,更好地學習節點表示。
2)提出一種新的對比學習方法,即多視圖融合跨層對比學習,采用2 種方式融合2 個視圖的不同層嵌入后進行對比,與現有方法相比可以獲取更多的特征信息。
3)提出一個新的基于圖對比學習的推薦框架MFCCL,以提高推薦算法的性能。
GNN 在圖拓撲上使用神經網絡來學習節點表示。文獻[13]提出最初始的GNN,通過反復交換鄰域信息直到收斂來表示節點。文獻[14]提出一種使用頻譜圖論中的傅里葉基在圖域上執行卷積的神經網絡。文獻[15]提出了幾種預訓練GNN 的策略,如屬性掩蔽和上下文預測。文獻[16]提出圖卷積網絡(GCN),將卷積運算推廣到了圖數據。
現有的GNN 被廣泛用于學習非歐幾里得圖結構,已經被證明在許多任務中具有有效性,如節點分類[17]、鏈路預測[18]和圖分類[19]。因為推薦系統中的大多數信息本質上都具有圖結構,使得GNN 在圖形表示學習方面具有優勢,所以GNN 技術在推薦系統中得到了廣泛應用。HashGNN[20]模型利用哈希方法和連續網絡嵌入方法學習節點嵌入的表示。NGCF[21]模型通過顯式建模用戶-項目之間的高階連接性來提升嵌入能力,解決了用戶和項目的交互信息傳播信號無法在嵌入層中表現的問題。DCCF[22]模型采用局部和全局卷積通道嵌入向量,獲取不同類型的連接信息,挖掘節點間的潛在聯系。
對比學習是一種有效的自監督框架,其核心思想是將正樣本和負樣本在特征空間進行對比,捕獲不同視圖下的特征表示一致性。SGL 模型[9]使用3 種集中在圖上的數據增強方法,得到多視圖后用對比學習來最大化不同節點表示之間的差距,這樣的數據增強和預訓練方式能夠從原始的圖數據中發掘出更多的監督信號。DHCN 模型[23]通過構建Transformed 超圖和線圖2 張圖,將模型的總流程分為2 個通道,結合得到的2 個會話嵌入,然后使用對比學習進行預測。KGCL 模型[24]使用對比學習減輕噪聲對基于知識圖譜的推薦系統的影響,并利用來自知識圖譜增強過程的額外監督信號指導跨視圖對比學習范式,在梯度下降中為無偏差的用戶-商品交互提供更大的權重,進一步抑制噪音。CLCRec 模型[25]從信息論的角度重新制定了冷啟動項目表示學習,并用對比學習最大化項目內容和協作信號之間的相互依賴性,以緩解數據稀疏性問題。
本文所提推薦算法框架MFCCL 結構如圖1 所示,采用3 種不同的視圖增強方法構建2 個全局視圖和1 個局部視圖,將多視圖融合跨層對比學習與局部-全局視圖對比學習相結合,從而提升推薦性能。
使用協同過濾的常見做法,為每個用戶ui和項目vj分配一個嵌入的向量?Rd,其中,d是嵌入的尺寸。所有用戶和項目嵌入的集合分別定義為Ε(u)?RI×d和Ε(v)?RJ×d,其中,I和J分別是用戶和項目的數量。在之前的研究中,通常使用GCN 來聚合每個節點的相鄰信息,本文采用2 層GCN,在第l層中,聚合過程表示如下:
在聚合的過程中采用基于結構和基于特征的方法增強視圖,以得到2 個全局視圖。
2.1.1 隨機邊丟棄
隨機邊丟棄通過圖結構擾動來增強視圖,即以一定的概率丟掉部分邊。文獻[9]通過實驗證明,當采用2 層GCN 時,隨機邊丟棄的變體取得了最好的性能,因此,選擇隨機邊丟棄可以減少模型對某些邊的過度依賴,同時減少耗時,提高模型運行效率。第l層的聚合過程變為:
其中:ρ(?)表示邊舍棄操作。
為了保留節點的原始信息,在每層中實現殘差連接,表示如下:
2.1.2 隨機添加噪聲
隨機添加噪聲是一種基于特征的視圖增強方法,即在原始表示中隨機添加均勻噪聲,以實現表示層的數據增強。這種基于噪聲的增強可以直接將嵌入空間正則化為更均勻的分布表示,并通過調整噪聲的大小平滑地調整表示的一致性。第l 層的聚合在執行式(1)后增加一個過程,表示如下:
其中:?u表示隨機生成后添加在用戶嵌入上的噪聲,與有相同的維度,?v同理;p和?為標準化計算的參數,分別使用默認值2 和1×10-12。
同樣在每層中實現殘差連接,表示如下:
最終計算所有層的節點嵌入之和以及用戶ui和項目vj最終嵌入的內積:
采用奇異值分解這一視圖增強方法構建局部視圖。奇異值分解是一種矩陣分解算法,將Μ×Ν的鄰接矩陣Α分解得到Α=UΣVT,其中,U和VT分別是由正交向量構成的Μ×Μ和Ν×Ν的方陣,Σ是一個除對角線元素外都是0 的Μ×Ν矩陣。基于SVD 的圖結構學習有2 個優點:它通過識別對用戶偏好表示重要的用戶-項目交互來強調圖的主要組成部分;生成的新圖形結構通過考慮每個用戶-項目的交互來保留全局協作信號。但是,傳統的SVD 需要分解原始矩陣,而推薦系統的數據集大多由上萬個用戶-項目交互構成,會構造出一個巨大的原始矩陣。為了節約用戶-項目矩陣的計算成本和降低數據傳輸量,本文采用文獻[26]提出的隨機SVD 算法,計算過程分為兩步,首先生成一個高斯隨機矩陣構建樣本矩陣,分解樣本矩陣得到正交矩陣,其次通過正交矩陣將原始矩陣降維后進行SVD,表示如下:
其中:k是分解矩陣需要的秩;?RJ×k是Uk、Σk、Vk的近似版本。將得到的近似矩陣和嵌入放入GCN 中,第l 層的聚合公式表示如下:
MFCCL 采用2 種多視圖對比學習方法,即多視圖融合跨層對比學習和局部-全局視圖對比學習。
2.3.1 多視圖融合跨層對比學習
現有的圖對比學習方法只考慮對比同一節點的一對視圖,而忽略了聚合過程中各個視圖不同的層嵌入。考慮到各視圖不同的層嵌入之間共享了一些信息,而在聚合的鄰居和視圖增強方面又具有各自的特性,現有方法并沒有對它們進行充分利用,因此,本文提出一種新的對比學習方法——多視圖融合跨層對比學習,以獲得更多的特征信息。
多視圖融合跨層對比學習使用平行和交叉2 種方式融合2 個來自不同視圖的層嵌入再進行對比,如圖2 所示。融合在多視圖融合跨層對比學習中起到了重要作用,放大2 個來自不同視圖的層嵌入的共享信息。同時使用2 種融合方式的操作同樣具有重要作用,對比2 個采用2 層GCN 聚合的嵌入表示,如局部-全局視圖對比學習,需要循環對比n次,若去掉2 種融合方式中的1 種,只是平行或是交叉融合某2 個層嵌入后再進行對比,需要循環的次數僅為n/2,造成嚴重的不對等,以至于得到的損失與局部-全局視圖對比學習得到的損失不在一個數量級上,對總損失函數的影響微乎其微,無法起到優化模型的效果。

圖2 多視圖融合跨層對比學習Fig.2 Multi-view fusion cross-layer contrastive learning
本文提出多視圖融合跨層對比學習,主要計算步驟如下:
其中:τ是一個溫度超參數;s(?)是余弦相似度。
步驟3將上述兩者相加得到的計算方式同理,因此,多視圖融合跨層對比損失如下:
2.3.2 局部-全局視圖對比學習
局部-全局視圖對比學習將使用2 種視圖增強方法構建的2 個全局視圖依次與SVD 構建的局部視圖進行對比,這種對比學習可以增強節點表示,降低噪聲對數據的影響。同樣使用InfoNCE 損失函數:
以上為所有對比損失的計算過程,將對比損失與主損失函數相結合,以聯合優化模型:
其中:λ是超參數;Lr是主損失函數。Lr使用推薦系統中最常用的經典損失函數BPR-pairwise Loss,公式表示如下:
在Yelp、Tmall 和Amazon-book 這3 個公開數據集上評估MFCCL 模型和基線模型的性能。表1 所示為3 個數據集的統計數據。Yelp 數據集包含從Yelp 平臺收集的商業場所的用戶評分,將用戶評分過的場所視為交互項目,未評分的場所視為非交互項目。Tmall 數據集包含用戶在天貓平臺上的購買記錄。Amazon-book 數據集包含亞馬遜平臺收集的用戶對圖書的評分記錄。

表1 實驗數據集的統計數據Table 1 Statistics of the experimental datasets 單位:個
將數據集以7∶2∶1 的比率劃分為訓練集、驗證集和測試集。采用Recall@N和歸一化折損累計增益(NDCG)@N作為評價指標評估推薦性能,其中,N={20,40}。Recall@N(R@N)用于評估預測的覆蓋率,即真實交互過的項目有多少被預測出來。NDCG@N(N@N)是針對排序結果的評價指標,用于評估排序的準確性。
本文選用10 個基線模型與MFCCL 進行比較,具體如下:
1)MLP 增強的協同過濾。
NCF[21]:一種利用神經網絡結構代替內積操作的協作過濾模型,在本文實驗評估中使用2 個隱藏層。
2)基于GNN 的協同過濾。
(1)GCCF[27]:通過實施獨立網絡和減少非線性變換,加強基于GNN 的協同過濾。
(2)LightGCN[28]:采用簡化的GCN 結構,無須嵌入權重矩陣和非線性投影。
3)離散圖協同過濾。
DGCF[29]:通過分割嵌入向量來表示多個潛在意圖,學習更復雜的表示。
4)基于Hypergraph 的協同過濾。
HyRec[30]:利用超圖對用戶和項目之間的多階信息進行編碼。
5)自監督學習推薦系統。
(1)MHCN[31]:通過多通道超圖卷積網絡為圖表示學習創建自監督信號。
(2)SGL[9]:采用隨機游走采樣和隨機邊/節點丟失來構造用于對比學習的增強視圖。
(3)HCCF[32]:用超圖編碼全局圖信息,并與用GCN 編碼的局部信息進行對比。
(4)SHT[33]:采用超圖Transformer 框架來開發全局協作關系,并提取全局信息以生成交叉視圖自監督信號。
(5)SimGCL[34]:提出通過將隨機噪聲直接注入特征表示中以簡化對比學習的圖增強過程。
為了公平比較,將所有基線模型的參數設置為其原始論文中的最佳值,但是以下為固定設置:嵌入大小為32;批量大小為256;epoch 為100;都使用2 層GCN。對于本文提出的MFCCL 框架,損失函數中的超參數λ設置為1×10-7,溫度超參數τ設置為0.5,隨機邊丟棄ρ(?)中的丟棄率設置為0.25,SVD 中的秩設置為5。MFCCL 在PyTorch 中使用Adam 優化器,其學習率為0.001。
實驗結果如表2 所示,最優結果加粗標注,最后一列括號中的數值為MFCCL 模型與性能最好的基線模型(SimGCL)相比的提升值。從中可以看出:

表2 3 種數據集上本文模型與基線模型的性能比較Table 2 Comparison of performance between the model proposed in this paper and the baseline models on three datasets
1)與其他4 類模型相比,基于自監督學習的模型顯示出了明顯的優勢,而圖對比學習加入后的模型(SGL、HCCF、SHT、SimGCL)比其他自監督模型(MHCN)表現更好,體現了對比學習在提升模型性能上的重要作用。
2)本文提出的MFCCL 模型始終優于所有基線模型,評價指標結果大幅提升,表明3 種方式的視圖增強和多視圖融合跨層對比學習可以有效優化模型,提高模型的推薦性能。其他基于圖對比學習的推薦模型沒有考慮到單一增強方式可能帶來的負面影響,并忽略了不同視圖的層嵌入在提升模型性能上的作用。
3.4.1 數據稀疏性實驗
為了驗證MFCCL 是否對推薦系統中普遍存在的數據稀疏性問題具有魯棒性,根據用戶的交互數量將Yelp 和Amazon-book 數據集中測試集的用戶劃分為5 組,如交互15~20 次為一組、交互20~25 次為一組。由圖3 所示的實驗結果可以看出,MFCCL在數據極度稀疏的情況下Recall@N和NDCG@N的值依舊遠優于基線模型,表明MFCCL 僅依靠稀疏的交互數據也可以較好地學習節點表示,保持預測性能。

圖3 數據稀疏性實驗結果Fig.3 Experimental results of data sparsity
3.4.2 過度平滑和過度均勻實驗
模型在學習嵌入時會出現過度平滑或過度均勻的問題,為了驗證MFCCL 可以學習到適度分散的嵌入分布,隨機采樣Yelp 數據集中的2 000 個用戶節點,使用T-SNE 將它們的嵌入映射到二維空間,如圖4 所示,并計算嵌入的平均距離均值(MAD),結果如表3 所示。MAD 通過計算從節點到其他節點的平均距離均值來反映圖表示的平滑性,當MAD 較小時,節點表示變得難以區分。從圖4 和表3 可以看出:MHCN 的嵌入在二維空間表現出不可區分的簇,且MAD 小于其余兩者,這表明MHCN 無法避免過度平滑問題;SGL 雖然在MAD 上取得了較好的結果,但是映射到二維空間的嵌入分布是一個均勻的整體,沒有聚集成簇,表明SGL 沒有捕獲用戶間的協作關系,出現了過度均勻的問題;本文提出的MFCCL 不僅取得了最優的MAD,同時在二維空間中的嵌入分布呈現簇狀且每個簇的內部結構清晰,表明MFCCL 學習到的嵌入是合理分散的,在過度平滑和過度均勻中取得了平衡,能夠較好地反映用戶的特定偏好。

表3 不同模型學習嵌入的平均距離均值Table 3 Mean average distance of the embeddings learned by different models

圖4 Yelp 數據集上嵌入分布的T-SNE 可視化Fig.4 T-SNE visualization of embedded distribution on Yelp dataset
3.4.3 消融實驗
為了驗證MFCCL 中視圖增強和多視圖融合跨層對比學習這2 個模塊對模型性能的有效性,本文進行消融實驗,分別刪除部分模塊,得到MFCCL-c、MFCCL-d和MFCCL-n這3 個變體。其中,MFCCL-c是MFCCL 去掉多視圖融合跨層對比學習后得到的變體。因為多視圖融合跨層對比學習需要對比2 個全局視圖的層嵌入之和,無法存在于只有1 個全局視圖的變體中,所以MFCCL-d和MFCCL-n是MFCCL-c分別去掉隨機邊丟棄和隨機添加噪聲后產生的變體。
將3 個變體放入Yelp 和Tmall 數據集中進行測試,結果如表4 所示,從中可以看出:

表4 消融實驗結果Table 4 Results of ablation experiment
1)移除掉多視圖融合跨層對比學習的變體(MFCCL-c)在2 個數據集上都顯示出性能下降,驗證了多視圖融合跨層對比學習對模型優化的積極作用。但是,與另外2 個變體(MFCCL-d和MFCCL-n)相比,MFCCL-c展現出了絕對的優勢,證明相較于單一的視圖增強方法,同時使用多種視圖增強在提升模型性能上更有效。
2)MFCCL-d和MFCCL-n在不同的數據集中各自占據優勢,造成這種結果的原因可能是視圖增強的效果受數據集中數據結構的影響,不同的增強方法適用于具有不同特征結構的數據集。MFCCL 使用多種視圖增強方法,避免了單一方法的局限性,增強了模型的通用能力。
3.4.4 參數討論
本節將討論MFCCL 的參數問題,主要涉及2 個重要的超參數λ和τ,前者連接主損失函數和對比損失,后者是InfoNCE 損失函數中的溫度超參數。通過保持其他設置不變,分別改變λ和τ的大小,觀察MFCCL 的性能變化。圖5 所示為改變λ時MFCCL在Yelp 數據集上的性能表現,圖6 所示為改變τ 時的性能表現。從圖5 可以觀察到,損失函數中的超參數λ對MFCCL 性能有較大影響,當λ過大時,模型性能急劇下降,當取值為1×10-7時模型性能最優。從圖6 可以觀察到,溫度超參數τ對MFCCL 性能影響較弱,當τ取值為0.5 時模型取得最優效果,當τ取值大于或者小于0.5 時,模型性能平緩下降。

圖5 λ 對模型性能的影響Fig.5 Effect of λ on model performance

圖6 τ 對模型性能的影響Fig.6 Effect of τ on model performance
本文提出一種基于多視圖融合跨層對比學習的推薦算法框架MFCCL,該框架通過3 種視圖增強方法構建多視圖,并引入一種新的多視圖融合跨層對比學習來解決推薦問題。MFCCL 在視圖增強時考慮到單一增強方法存在的局限性,采用隨機邊丟棄和隨機添加噪聲分別構建2 個全局視圖,采用SVD 構建包含全局協作信號的局部視圖。多視圖融合跨層對比學習充分利用不同視圖的層嵌入,使用2 種方法將2 個全局視圖不同的層嵌入融合后進行對比,計算得到對比損失并與其他損失相結合以訓練模型。在3 個公開數據集上進行實驗,結果表明,相比現有基線模型,MFCCL 取得了更好的推薦性能,且在抵抗數據稀疏和過度平滑方面表現出了良好的性能。下一步將繼續研究視圖增強和多視圖融合方法。