1. 程式人生 > 其它 >自監督-SelfGNN: Self-supervised Graph Neural Networks without explicit negative sampling

自監督-SelfGNN: Self-supervised Graph Neural Networks without explicit negative sampling

自監督-SelfGNN: Self-supervised Graph Neural Networks without explicit negative sampling

標籤:自監督、圖神經網路、對比學習

動機

  • 在真實世界中許多資料大部分是有沒有標籤的,而打上標籤的是需要很大花費的

  • 現存的對比學習框架關鍵主要是對資料加強並生成正負樣本對,而最近在 CV 中提出了隱式對比學習,沒有明確需要負樣本對,而在 GNN 中目前還沒有進行探索

貢獻

  • 主要提出了隱式的對比學習,沒有明確需要負樣本對,其主要參考的是 Siamese network 設計方式進行對圖神經的設計,大大減少了負樣本對的設計
  • 介紹了四種特徵增強方式和一種拓撲增強方式

思想

核心

兩個方面---資料加強(分別在圖結構和屬性方面做了增強)和網路設計(模仿 Siamese network 設計方式,目的丟棄負樣本)

框架

對於一個原圖 \(G\),我們分別進行資料增強得到兩個加強圖 \(G_1, G_2\),分別利用兩個 GNN encoder (\(f_{\theta}、f_{\phi}\) 其編碼器的引數分別是 \(\theta、\phi\))進行對兩個增強圖資料進行編碼。並在 \(f_{\theta}\) 在應用一個 prediction block \(g_{\theta}\)(MLP ),對於 \({\theta}\)

的更行主要用到對比損失函式,對比的經過 prediction block得到的 \(X_1\) 和 經過編碼器 \(f_{\phi}\) 得到的 \(X_2\)。而對於 \(\phi\) 主要是通過 \(\theta\) 進行 EMA(指數移動平均)進行更新。(假設左邊部分為 student network,用 s-n 表示,右邊部分為 teacher network,用 t-n 表示)

資料增強

Topology augmentation

​ 拓撲資料擴充的目的是通過利用圖結構的屬性來揭示原始圖的不同拓撲檢視,在本文中,主要引用了兩種 pageRank 演算法,一種是 pageRank 基於隨機遊走的 pageRank-PPR 和 熱核 (head-kernel) pageRank-HK, 並且提出了第三種基於卡茲索引的高階網路構建技術

pageRank-PPR\(H^{PPR} = \alpha(I - (1 - \alpha) \widetilde{A})^{-1}\)

pageRank-HK\(H^{HK} = exp(tAD^{-1}-t)\)

pageRank-KATZ\(H^{katz} = (I-\beta\widetilde{A})\beta \widetilde{A}\)

feature augmentation

  • split (切分):將特徵進行切分,在資料增強成為兩個檢視時,將特徵分成兩部分分別分到兩個檢視中
  • Stadardize (標準化):將特徵進行放縮,\(X' = (\frac{X^T-\bar{x}}{s})\)\(\bar{x}\)\(s\) 分別時特徵的平均值和方差
  • Local degree Profile (圖度分佈):在一些沒有特徵的圖中我們根據度分佈構造 \(5\) 個統計量為節點的特徵
  • paste (擴充):利用度分佈的 \(5\) 個統計量對原本節點的屬性進行擴充

encoder and prediction

encoder

上圖為一個 encoder \(f\) , 其主要目的是為了增廣後的圖進行編碼,用於下游任務(並行 GNN)

prediction

prediction 或者是一個 projection head,其主要對 encoder 後的進行一個對映

在這個架構中主要有兩個不同點,一個是 s-n 中有投影頭,而 t-n 中沒有投影頭,對於 s-n 來說,投影頭相當於大腦,去學習 t-n 中對圖的表示 \(g(X_1) ≈ X_2\),另一個就是對於編碼器引數的更新,s-n 中的引數 \(\theta\) 使用最小化 Loss function 進行 BP 更新引數 \(\theta\) ,而 t-n 中對於並沒有利用 BP 更新引數 \(\phi\) ,而是用 s_n 的引數 \(\theta\) 做一個 EMA 去更新 t-n中的引數 \(\phi\)

Loss function and EMA update

Loss function

\[L_{\theta} = 2 - 2 · \frac{<g_{\theta}(X_1),X_2>}{||g_{\theta}(X_1) ||_F ·||(X_2)||_F} \]

EMA update

\[\phi = \tau\phi + (1 - \tau)\theta \]

實驗

在 7 個數據集中進行節點分類任務,對比結果如上圖。前三個引文資料網路資料之所以比較好是因為標籤部分少,相對於原始模型。本文提出的自監督方法 Self-GNN 更好,而後面四個資料集不好的原因是對於訓練集部分都有標籤,相當於完全監督學習,所以對於本文方法沒有原始模型的好。