この論文を読んだ理由
GNN-to-MLPの知識蒸留(KD)手法をサーベイしている際に見つけた論文.
GLNN(Graph-Less Neural Network)を発展させた手法であるから.
解いている課題
-
タスク:ノード分類
-
既存のGNN-to-MLPでの知識蒸留で,蒸留される知識と蒸留されない知識を分析
$\rightarrow$低周波情報は蒸留されやすく,高周波情報は蒸留されにくいことを発見以下,自分の理解
低周波情報:グラフ全体で変化する情報$\rightarrow$ GNNの出力(全体)という情報
高周波情報:グラフの局所的な部分で変化する情報$\rightarrow$ 局所構造の情報(隣接ノード同士で特徴量がどれくらい変わるかGLNNでは,MLPの出力をGNNの出力に似せていたので,これは低周波情報を使っていることになる.
$\rightarrow$この論文では,高周波成分も蒸留させて精度を高める
提案手法のアプローチ
-
GLNNで用いられていない高周波情報(隣接ノード間の相対的な情報)を使う
-
損失関数
-
低周波情報のロス,$z$はMLPの出力,$h$はMLPの出力,$\tau_1$は温度パラメータ
$$
L_{\text{LFD}} = \frac{1}{|\mathcal{E}|} \sum_{i \in \mathcal{V}} \sum_{j \in \mathcal{N}i, u_i} D_{\text{KL}}\left( \sigma \left( \frac{z_j^{(L)}}{\tau_1} \right), \sigma \left( \frac{h_i^{(L)}}{\tau_1} \right) \right)
$$
$\rightarrow$これはGLNNと同様に,GNNの出力に似せることを目的としている
-
高周波情報のロス,$\tau_2$は温度パラメータ,$N_i$は隣接ノード集合
\mathcal{K}(s_i, s_j) = |s_i - s_j|
$\rightarrow$GNNにおける隣接ノードとの特徴量の差を似せる,局所構造を捉えるためのロスL_{\text{HFD}} = \frac{1}{|\mathcal{E}|} \sum_{i \in \mathcal{V}} \sum_{j \in \mathcal{N}i} D_{\text{KL}}\left( \sigma \left( \mathcal{K} (z_j^{(L)}, z_j^{(L)})/\tau_2 \right), \sigma \left( \mathcal{K} (h_i^{(L)}, h_j^{(L)})/\tau_2 \right) \right)
-
全体のロス関数,$\lambda$はバランスパラメータ
$\rightarrow$クロスエントロピーロスと知識蒸留のロスを組み合わせる
L_{\text{total}} = \frac{\lambda}{|\mathcal{V}_L|} \sum_{i \in \mathcal{V}_L} \mathcal{H} (y_i, \sigma (h_i^{(L)})) + (1 - \lambda) \left( L_{\text{LFD}} + L_{\text{HFD}} \right)
-
低周波情報のロス,$z$はMLPの出力,$h$はMLPの出力,$\tau_1$は温度パラメータ