Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks
?#paper/GFM/GNN-BASED#? #paper/???#?
注意:這篇文章是每個圖一個GCN模型,而不是所有圖一個GCN 模型
算是最早的涉及異配圖的prompt了
貢獻和動機:
-
非對稱圖對比學習(GraphACL)
提出一種預訓練方法,通過非對稱對比學習捕獲節點間的高階相似性,避免傳統方法對同質圖(homophily)的依賴,有效處理異質圖。 -
統一任務模板
將預訓練與下游任務(如節點分類、鏈接預測)統一為相似性計算模板,減少目標差異導致的負遷移問題。例如,節點分類通過類原型(class prototype)與節點的相似性進行預測。 -
自適配器與參數重用
重用預訓練階段的投影器(projector)作為下游任務的適配器(self-adapter),無需額外參數,顯著提升調優效率。 -
自提示機制
- 結構提示:通過添加兩跳鄰居等結構信息增強上下文表示。
- 語義提示:利用節點屬性(如替換鄰接矩陣為單位矩陣)保留語義信息。
提示生成基于圖自身信息,而非隨機初始化,提升穩定性和泛化能力。
方法:
對比學習的三種方法:
??
作者使用了第三種方法,并認為 g ( ? ) g(\cdot) g(?)可以引入語義信息
方法框架:
??
由于對應上面第三種方法,其對比損失可以為:
L = ? 1 ∣ V ∣ ∑ v ∈ V 1 ∣ N ( v ) ∣ ∑ v + ∈ N ( v ) log ? exp ? ( z v T h v + / τ ) exp ? ( z v T h v + / τ ) + ∑ v ? ∈ V ? exp ? ( h v T h v ? / τ ) , \mathcal{L}=-\frac{1}{|\mathcal{V}|}\sum_{v\in\mathcal{V}}\frac{1}{|\mathcal{N}(v)|}\sum_{v^+\in\mathcal{N}(v)}\log\frac{\exp(\mathbf{z}_v{}^\mathsf{T}\mathbf{h}_{v^+}/\tau)}{\exp(\mathbf{z}_v{}^\mathsf{T}\mathbf{h}_{v^+}/\tau)+\sum_{v^-\in\mathcal{V}^-}\exp(\mathbf{h}_v{}^\mathsf{T}\mathbf{h}_{v^-}/\tau)}, L=?∣V∣1?∑v∈V?∣N(v)∣1?∑v+∈N(v)?logexp(zv?Thv+?/τ)+∑v?∈V??exp(hv?Thv??/τ)exp(zv?Thv+?/τ)?,
其中,z是映射頭g的輸出。
節點分類任務
節點分類任務的話,作者采用了原型向量(prototype: C = { t 1 , t 2 , … , t C } \mathcal{C}=\{\mathbf{t}_1,\mathbf{t}_2,\ldots,\mathbf{t}_C\} C={t1?,t2?,…,tC?}。作者通過labeled節點的token均值來初始化原型向量。
t c = 1 N c ∑ v ∈ V L , y v = c t v , ? c ∈ 1 , 2 , … C , \mathbf{t}_c=\frac{1}{N_c}\sum_{v\in\mathcal{V}_L,y_v=c}\mathbf{t}_v,\forall c\in1,2,\ldots C, tc?=Nc?1?∑v∈VL?,yv?=c?tv?,?c∈1,2,…C,
Self-prompt結構:
-
預訓練的架構: θ ? , ? ? = arg ? min ? θ , ? L p r e ( f θ , g ? , G ) \theta^*,\phi^*=\arg\min_{\theta,\phi}\mathcal{L}_{pre}(f_\theta,g_\phi,\mathcal{G}) θ?,??=argminθ,??Lpre?(fθ?,g??,G)
-
prompt時,GNN backbone應該是凍結的。作者認為 g ? g_{\phi} g??可以包含更多的語義,應該用于下游訓練。因此下游任務的優化可以表示為: ? ? ? = arg ? min ? ? ? L d o w ( g ? ? , V L , Y ) \phi^{**}=\arg\min_{\phi^*}\mathcal{L}_{dow}(g_{\phi^*},\mathcal{V}_L,\mathcal{Y}) ???=argmin???Ldow?(g???,VL?,Y)
-
自結構語義的構建:作者認為2-hop代表同配性,并包含豐富的語義信息。因此: t v = f θ ( G 2 ) [ v ] = f θ ( A 2 , X ) [ v ] \mathbf{t}_v=f_\theta(\mathcal{G}_2)[v]=f_\theta(\mathbf{A}_2,\mathbf{X})[v] tv?=fθ?(G2?)[v]=fθ?(A2?,X)[v]
-
子語義提示:
s v = f θ ( G I ) [ v ] = f θ ( I , X ) [ v ] . \mathbf{s}_{v}=f_{\theta}(\mathcal{G}_{I})[v]=f_{\theta}(\mathbf{I},\mathbf{X})[v]. sv?=fθ?(GI?)[v]=fθ?(I,X)[v].
h v = f θ ( G ) [ v ] = f θ ( A , X ) [ v ] . \mathbf{h}_v=f_\theta(\mathcal{G})[v]=f_\theta(\mathbf{A},\mathbf{X})[v]. hv?=fθ?(G)[v]=fθ?(A,X)[v].?
t v = w v s v + ( 1 ? w v ) h v , w v = s i m ( h v , s v ) , \mathbf{t}_v=w_v\mathbf{s}_v+(1-w_v)\mathbf{h}_v,w_v=sim(h_v,s_v), tv?=wv?sv?+(1?wv?)hv?,wv?=sim(hv?,sv?),
-
Prompt tuning:節點分類: L d o w = ? ∑ v ∈ V L log ? exp ? ( t ′ v t ′ y v / τ ) exp ? ( t ′ v T t ′ y v / τ ) + ∑ c = 1 , c ≠ y v C exp ? ( t ′ v T t ′ c / τ ) , \mathcal{L}_{dow}=-\sum_{v\in\mathcal{V}_{L}}\log\frac{\exp(\mathbf{t^{\prime}}_{v}\mathbf{t^{\prime}}_{y_{v}}/\tau)}{\exp(\mathbf{t^{\prime}}_{v}^{\mathsf{T}}\mathbf{t^{\prime}}_{y_{v}}/\tau)+\sum_{c=1,c\neq y_{v}}^{C}\exp(\mathbf{t^{\prime}}_{v}^{\mathsf{T}}\mathbf{t^{\prime}}_{c}/\tau)}, Ldow?=?∑v∈VL??logexp(t′vT?t′yv??/τ)+∑c=1,c=yv?C?exp(t′vT?t′c?/τ)exp(t′v?t′yv??/τ)?,其中, t ′ v = q ? ( t v ) \mathbf{t^{\prime}}_{v}=q_{\phi}(\mathbf{t}_{v}) t′v?=q??(tv?)
-
L d o w = ? ∑ ( v , a , b ) ∈ T log ? exp ? ( t ′ v T t ′ a / τ ) exp ? ( t ′ v T t ′ a / τ ) + exp ? ( t ′ v T t ′ b / τ ) \mathcal{L}_{dow}=-\sum_{(v,a,b)\in\mathcal{T}}\log\frac{\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_a/\tau)}{\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_a/\tau)+\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_b/\tau)} Ldow?=?∑(v,a,b)∈T?logexp(t′vT?t′a?/τ)+exp(t′vT?t′b?/τ)exp(t′vT?t′a?/τ)?
結果:
??
??