自監督學習-SLAPS: Self-Supervision Improves Structure Learning for Graph Neural Networks
標簽:自監督學習、圖神經網絡
動機&背景
- 當可用的圖結構表現出高度的同質性 (即連接的節點通常屬於同一類) 時, 圖神經網路在半監督分類上展現很好的性能
- 在研究圖神經在圖結構不容易獲得情況下對 (半監督) 分類問題的適用性, 這個問題的現有方法是在修復節點之間的相似圖或者同時學習
GNN
參數和圖結構相似, 在這兩種情況下, 一個主要目標時構建或學習一個與標簽具有高度同質性的圖結構, 以幫助GNN
分類, 后一種方法有時被稱為潛在圖學習 - 發現一個潛在圖學習方法的飢餓問題, 即距離標記節點較遠的節點對之間邊沒有得到足夠的監督, 這導致血虛原理標記節點的不良結構, 因此泛化能力差, 針對這一問題突出一種采用多任務學習的框架的解決方案, 在該框架中, 用自監督任務補充分類任務, 自監督任務基於假設: 適合預測節點特征的圖結構也適合預測節點標簽。 它的工作原理是屏蔽一些輸入特征(或向它們添加噪聲)並訓練一個單獨的
GNN
,旨在更新鄰接矩陣,使其能夠恢復被屏蔽(或噪聲)的特征。 該任務是通用的,可以與幾種現有的潛在圖學習方法結合使用
貢獻
- 發現潛在圖學習飢餓問題, 距離標記節點較遠的節點對之間的邊沒有得到足夠的監督
- 通過自監督對發現的問題突出一種解決方案
- 提出了
SLAPS
, 一個采用自監督解決方案的潛在圖學習模型 - 在多個數據集上綜合測試了該模型
思想
多任務學習框架, 對於正常的分類任務增加一個自監督任務 (也就是對於原特征矩陣加噪(掩蔽一些節點的信息)然后與鄰接矩陣一起進行輸入輸出一個沒有噪聲的矩陣最后最小化損失函數).
相關工作
Similarity graph
推斷圖結構的一種方法是選擇相似性度量,並將兩個節點之間的邊權重設置為它們的相似性。為了獲得稀疏結構,可以創建一個 kNN
相似度圖,只連接相似度超過某個預定閾值的節點對,或者進行采樣
Fully connected graph
另一種方法是從一個完全連通的圖開始,並使用可用的元數據分配邊權重,或者采用通過注意力機制為每個邊提供權重的 GNN
變體
Latent graph learning
代替基於初始特征的相似性圖,可以使用具有可學習參數的圖生成器 (比如:基於具有可學習參數的雙線性相似函數創建了完全連通圖; 為每個可能的邊學習伯努利分布,並通過從這些分布中采樣來創建圖結構; 輸入結構被更新以基於標簽和模型預測增加同質性; 提出了一種迭代方法,該方法多次迭代將節點投影到潛在空間,並從潛在表示構造鄰接矩陣; 通過學習每個輸入特征的權重,將節點投影到潛在空間; 多層感知器用於投影 ; GNN
用於投影;它使用節點特征和初始圖結構)
框架
對於特征矩陣, 首先經過生成器 \(G:~~\mathbb{R}^{n \times f} \rightarrow \mathbb{R}^{n \times n}\) , 生成一個鄰接矩陣 \(\widetilde{A}\), 經過一個邊處理器 \(A = \frac{1}{2} D^{-\frac{1}{2}}(P(\widetilde{A}) + P(\widetilde{A})^T)D^{-\frac{1}{2}}\), 得到對稱化和歸一化的鄰接矩陣 \(A\), 隨后經過一個分類器 $GNN_C:\mathbb{R}^{n×f} ×\mathbb{R}^{n×n} → \mathbb{R}^{n×| C |} $ 得到每個節點的對應標簽的概率值后最小化分類損失. 在應自監督方面, 向原特征矩陣添加噪聲得到一個含有噪聲的特征矩陣 \(\widetilde{X}\), 然后利用噪聲特征矩陣 \(\widetilde{X}\) 和對稱化和歸一化的矩陣 \(A\) 輸入到 \(GNN_{DAE}\) 中, 輸出一個沒有噪聲的特征矩陣 \(X\), 然后最小化損失函數 \(\mathcal{L} = L(X_{idx}, GNN_{DAE}(\widetilde{X},A;\theta_{GNN_{DAE}})_{idx})\)
算法
Generator
這個生成器是一個參數為 \(\theta_{G}\) 的函數 \(G:~\mathbb{R} ^{n \times f} \rightarrow \mathbb{R}^{n \times n}\) , 該函數以節點特征 \(X \in \mathbb{R} ^{n \times f}\) 為輸入輸出一個矩陣 \(\widetilde{A} \in \mathbb{R}^{n \times n}\) , 我們考慮一下兩個圖生成器 (把更復雜的圖生成器和具有易處理臨界計算的模型作為未來的工作)
Full parameterization
對於這個生成器, \(\theta_{G} \in \mathbb{R} ^ {n \times n}\) 和生成器函數被定義為 \(\widetilde{A}= G_{FP}(X; \theta_{G}) = \theta_{G}\), 這個生成器忽略輸入節點特征而是直接優化鄰接矩陣, FP
對於學習恩赫鄰接矩陣都是簡單而靈活的, 但是增加 \(n^2\) 的參數這限制了可伸縮性, 並且使得模型容易過擬合.
MLP-kNN
此時的 \(\theta_{G}\) 類似於多層感知機 (MLP
) 的權重, \(\widetilde{A} = G_{FP}(X, \theta_{G}) = kNN(MLP(X))\), $MLP:~\mathbb{R}^{n \times f} \rightarrow \mathbb{R}^{n \times f'} $ 用於更新節點的表示 \(X'\) (也是一個矩陣), \(kNN:~~\mathbb{R}^{n \times f'} \rightarrow \mathbb{R}^{n \times n}\) 生成一個稀疏矩陣.
Initialization and variants of MLP-kNN
讓 \(A^{kNN}\) 表示通過在初始節點特征上應用 kNN
函數創建的鄰接矩陣. 使用 \(\theta_{G}\) 去初始化然后生成初始的 \(A^{kNN}\) (比如 \(\widetilde{A} = A^{kNN}\) 在訓練前), 對於 FP
, 直接初始化 \(\theta_{G}\) 去初始化 \({A}^{kNN}\) . 對於 MLP-kNN
,考慮兩個版本. 第一個為 MLP
,我們保持輸入維度在所有層中相同. 另一個稱為 MLP-D
, 我們考慮具有對角權重矩陣的 MLP
(除了主對角線, 權重矩陣中的所有其他參數都為零). 對於這兩種變體, 我們用單位矩陣初始化 \(\theta_{G}\) 中的權重矩陣,以確保 MLP
的輸出最初與其輸入相同,並且在這些輸出上創建的 kNN
圖等效於 \(A^{kNN}\)(或者可以使用其他 MLP
變體, 但在主要訓練開始之前預訓練權重以輸出 \(A^{kNN}\)). MLP-D
可以認為是給不同的特征分配不同的權重,然后計算節點相似度
Adjacency processor
通過生成器生成的矩陣 \(\widetilde{A}\) 可能有負值也可能有正值或者是非對稱和沒有進行歸一化的, 所以我們設 \(A = \frac{1}{2} D^{-\frac{1}{2}}(P(\widetilde{A}) + P(\widetilde{A})^T)D^{-\frac{1}{2}}\), 子式 \(P(\widetilde{A}) + P(\widetilde{A})^T\) 的結果是使矩陣對稱
Classifier
分類器是一個函數 $GNN_C:\mathbb{R}^{n×f} ×\mathbb{R}^{n×n} → \mathbb{R}^{n×| C |} $ 參數為 \(θ_{GNN_C}\). 它將節點特征 \(X\) 和生成的鄰接矩陣 \(A\) 作為輸入,並為每個節點提供每個類的 logits
. \(C\) 對應於類,\(|C|\) 對應於類的數量。我們使用兩層 GCN
,\(θ_{GNN_C}= \{W^{(1)},W^{(2)}\}\) 並將我們的分類器定義為 \(GNN_C(A,X;θ_{GNN_C}) = AReLU(AXW^{(1)})W^{(2)}\). 但是也可以使用其他 GNN
變體。分類任務的訓練損失 \(\mathcal{L}_C\) 是通過取 softmax
最大值來產生每個節點的概率分布,然后計算交叉熵損失來計算
Using only the first three components leads to supervision starvation (僅用前三個組件會導致監督不夠充分問題 (飢餓問題))
在訓練中兩個沒有標簽的節點 \(v_i\) 和 \(v_j\) 根據生成的結構沒有直接相連任何有標簽的的節點, 然后由於兩層 GCN
基於節點的兩跳鄰居對節點進行預測, 分類損失不受 \(v_i\) 和 \(v_j\) 邊的影響, \(v_i\) 和 \(v_j\) 沒有受到監督, 把不影響損失函數 \(\mathcal{L}_C\) 的邊稱為飢餓邊, 這些邊是有問題的, 因為盡管他們可能不會影響訓練損失, 但是測試時的預測取決於這些邊, 如果沒有足夠監督的情況下學習他們的值, 模型可能會在測試時做出不佳的預測. 如下圖:
定理: 假設 \(\mathcal{G}(m, n)\) 是一個有 \(n\) 個節點和 \(m\) 條邊的 \(Erdos-Renyi\) 圖, 假設我們有隨機均勻選擇的 \(q\) 個節點的標簽。具有兩層 GCN
的邊是飢餓邊的概率等於: \((1 - \frac{q}{n})(1 - \frac{q}{n - 1})\prod_{i = 1}^{2q}(1 - \frac{m - 1}{\tbinom{n}{2} -i})\)
Self-supervision
自監督任務是基於自動編碼器, 設 \(GNN_{DAE}: \mathbb{R}^{n \times f} \times \mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n \times f}\), 是一個帶有參數 \(\theta_{GNN_{DAE}}\) 的 GNN
, 輸入節點特征和一個生成的矩陣然后更新節點特征后以相同的維度進行輸出, 訓練 \(GNN_{DAE}\) 是以帶有噪聲的特征向量 \(X\) 和作為輸入經過出力后輸出沒有草繩的特征向量 \(X\) , 讓 \(X_{idx}\) 代表於我們添加了噪聲的 \(X\) 元素對應的索引, \(idx\) 代表這些索引的值. 在訓練中, 我們最小化:
最后模型訓練最小化:
實驗
節點分類任務
總結
提出了SLAPS : 一種從數據中同時學習圖神經網絡的參數和節點連接的圖結構的模型。並且發現了圖結構學習中出現的監督飢餓問題,尤其是當訓練數據稀缺時。基於此提出了一種解決監督飢餓問題的方法,即在訓練目標的基礎上增加一個動機良好的自我監督任務