論文信息
論文標題:Multi-Level Graph Contrastive Learning
論文作者:Pengpeng Shao, Tong Liu, Dawei Zhang, J. Tao, Feihu Che, Guohua Yang
論文來源:2021, Neurocomputing
論文地址:download
論文代碼:download
1 Introduction
本文貢獻:
-
- 提出多層次圖對比學習框架:聯合節點級和圖級對比學習;
- 引入 KNN 圖提取語義信息;
本文開發了一個多層次的圖對比學習(MLGCL)框架,用於通過對比圖的拓撲視圖和特征空間視圖來學習圖數據的魯棒表示。如 Figure 2 所示,使用 KNN 算法對特征進行編碼,從而在特征空間中生成 KNN 視圖。KNN 視圖不僅提供了互補視圖,而且更適合GNN,將兩者對比學習結合,可以顯著提高 GNN 編碼器的魯棒性和適應性。
2 Method
整體框架:
框架流程
-
- 步驟一:從增強池 $\tau $ 中采樣一對圖增強函數 ${\tau }_{1}$ 和 ${\tau }_{2}$,並將其應用於輸入圖,生成兩個視圖的增廣圖;
- 步驟二:使用一對共享的 GNN 編碼器來提取節點表示,並進一步利用池化層來提取圖表示;
- 步驟三:利用一個共享參數的 MLP 層來將兩個視圖中的節點表示投影到計算節點級對比損失的空間中。類似地,還將來自兩個視圖的圖表示投影到計算圖級對比損失的空間中;
- 步驟四:通過優化所提出的多級損失函數來學習編碼器的參數;
2.1 KNN graph
給定 $G(A、X)$ 的圖結構,先利用 GNN 編碼器提取拓撲圖的編碼特征 $Z$,然后利用 $\text{KNN}$ 對 $Z$ 的近鄰構造 $\text{KNN}$ 圖($G_{f}\left(A_{f}, X\right)$),其中 $A_{f}$ 為 $\text{KNN}$ 圖的鄰接矩陣。
構建 $\text{KNN}$ 圖可以描述為兩個步驟:
-
- 首先,基於 $ N$ 個編碼特征 $ Z $ 計算相似度矩陣 $S$;
- 其次,為每個節點選擇前 $k$ 個相似的節點對來設置邊,最后得到 $\text{KNN}$ 圖的鄰接矩陣 $A_{f} $ ;
相似性計算常用方法:
- 馬氏距離
$S_{i j}=\sqrt{\left(x_{i}-x_{j}\right)^{T} M\left(x_{i}-x_{j}\right)}$
其中 $M$ 是一個正半定矩陣,它起着逆協方差矩陣的作用。 (如果 $M$ 是單位矩陣,則為歐氏距離)
正半定矩陣:設 $A$ 是 $n$ 階方陣,如果對任何非零向量 $X$,都有 $X ' A X \geq 0$ ,其中 $X ' $ 表示 $X$ 的轉置,就稱 $A$ 為半正定矩陣。
- 余弦相似性
使用兩個向量之間夾角的余弦值來度量相似性:
${\large S_{i j}=\frac{x_{i} \cdot x_{j}}{\left|x_{i}\right|\left|x_{j}\right|}} $
- 高斯核
${\large S_{i j}=e^{-\frac{\left\|x_{i}-x_{j}\right\|^{2}}{2 \sigma^{2}}}} $
其中, $\sigma$ 是高斯核的核寬度。
本文選擇余弦相似性來得到相似性矩陣 $S$ 。
2.2 Encoder and Readout
Encoder 使用雙層 GCN 獲得節點表示:
$Z^{l+1}=f(A, X)=\sigma\left(\widetilde{A} Z^{l} W^{l}\right)$
其中:$\widetilde{A}=\widehat{D}^{-1 / 2} \widehat{A} \widehat{D}{ }^{-1 / 2}$ 是對稱歸一化的鄰接矩陣。
對於每個視圖的節點表示 $Z_{a} $, $Z_{b} $ ,使用一個圖池化層 $ P(\cdot): \mathbb{R}^{N \times d} \rightarrow \mathbb{R}^{d}$ (即讀出函數),得到圖表示:
$c=P(H)=\sigma\left(\frac{1}{N} \sum_{i=1}^{N} h_{i}\right)$
此外,為了對兩個視圖進行相應的節點表示和圖表示對比,使用 MLP 層 $g_{\phi}(\cdot) 和 g_{\varphi}(\cdot): \mathbb{R}^{N \times d} \rightarrow \mathbb{R}^{N \times d}$ 將節點和圖表示分別投影到計算對比損失的空間中。
2.3 Loss function
多級損失函數,由兩部分組成:兩個視圖之間低級節點表示的對比,以及兩個視圖之間高級圖表示的對比。
低級節點表示的對比:給定正對 $(z_i、z_j)$,將節點級對比損失函數定義為
${\large \mathcal{L}_{\text {node }}\left(z_{i}^{a}, z_{i}^{b}\right)=\log \frac{\exp \left(\left(z_{i}^{a}\right)^{T} z_{i}^{b} / \tau\right)}{\sum_{j=1, j \neq i}^{K} \exp \left(\left(z_{i}^{a}\right)^{T} z_{i}^{b} / \tau\right)+\exp \left(\left(z_{i}^{a}\right)^{T} z_{j}^{a} / \tau\right)+\exp \left(\left(z_{i}^{a}\right)^{T} z_{j}^{b} / \tau\right)}} $
由於兩個視圖是對稱的,所以另一個視圖的損失被定義為 $L_{n o d e}\left(z_{i}^{b}, z_{i}^{a}\right)$ 。因此,通過優化以下內容,實現最大化兩個視圖之間的節點的一致性:
$\mathcal{L}_{n o d e}=\mathcal{L}_{n o d e}\left(z_{i}^{a}, z_{i}^{b}\right)+\mathcal{L}_{n o d e}\left(z_{i}^{b}, z_{i}^{a}\right)$
高級圖表示的對比:給定正例 $\left(s^{a}, s^{b}\right)$ 和負例 $\left(s^{a}, \tilde{s}^{a}\right)$ ,$\left(s^{a}, \tilde{s}^{b}\right)$ ,兩個視圖之間的圖表示對比被定義為:
${\large \mathcal{L}_{\text {graph }}\left(s^{a}, s^{b}\right)=\log \frac{\exp \left(\left(s^{a}\right)^{T} s^{b} / \tau\right)}{\exp \left(\left(s^{a}\right)^{T} s^{b} / \tau\right)+\exp \left(\left(s^{a}\right)^{T} \tilde{s}^{a} / \tau\right)+\exp \left(\left(s^{a}\right)^{T} \tilde{s}^{b} / \tau\right)}} $
本文為生成圖的負樣本,隨機 shuffle 特征以推導出負鄰接矩陣 $\widetilde{A}$ 和 $\widetilde{A}_{f}$ ,然后得到負樣本 $\left(s^{a}, \tilde{s}^{a}\right) ,\left(s^{a}, \tilde{s}^{b}\right) $ 。由於對稱性,另一個視圖的損失被定義為 $L_{g r a p h}\left(s^{b}, s^{a}\right) $ 。因此,整體圖表示對比為:
$\mathcal{L}_{g r a p h}=\mathcal{L}_{g r a p h}\left(s^{a}, s^{b}\right)+\mathcal{L}_{g r a p h}\left(s^{b}, s^{a}\right)$
最后,通過將節點級對比損失與圖級對比損失相結合,模型的多級損失為:
$\mathcal{L}=\mathcal{L}_{\text {node }}+\lambda \mathcal{L}_{\text {graph }}$
3 Experiment
數據集
節點分類
4 Conclusion
-
- 提出多層次圖對比學習框架:聯合節點級和圖級對比學習;
- 引入 $\text{KNN}$ 圖提取語義信息;