【論文メモ】Extract the Knowledge of Graph Neural Networks and Go Beyond it： An Effective Knowledge Distillation Framework

https://arxiv.org/abs/2103.02885

# この論文を読んだ理由
GNN-to-MLPの知識蒸留(KD)手法をサーベイしている際に見つけた論文．
調査中の推論対象のノード特徴量のみを使用して推論を行う手法ではないが，MLPを使用した知識蒸留手法として重要そうだったので．


# 解いている課題
- タスク：ノード分類

- GNNの問題点
  - GNNではメッセージパッシングによって近傍の特徴量を受け取っているが，**ラベル情報そのものは使用できていない**
  - **自身の特徴量のみで決定されるラベルが場合に対処できない**

  - 解釈が難しい


# 提案手法のアプローチ
  <img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583007/61465a22-dc81-7635-98b1-851030b454c0.png"">
**$\rightarrow$学習済みのGNNから知識を蒸留しつつ，ラベル伝搬や特徴量変換も活用する．**
<br>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583007/245df527-907d-0285-0ff9-9b3375a29d63.png)
**$\rightarrow$PLP (Parametrized Label Propagation)とFT (Feature Transformation)でK回の変換を行う．**


## 手順
- ラベルの初期化
  ```math
  \begin{equation}
  f^{0}_{\text{LP}}(v) =
  \begin{cases} 
  (0, \ldots, 1, \ldots, 0) \in \mathbb{R}^{|Y|}, & \forall v \in V_L \\
  \left( \frac{1}{|Y|}, \ldots, \frac{1}{|Y|} \right) \in \mathbb{R}^{|Y|}, & \forall v \in V_U 
  \end{cases}
  \end{equation}
  ```
  $\rightarrow$ラベルが無いノードは均一の値に設定しておく．

- FT (Feature Transformation)
  ```math
  \begin{equation}
  f_{\text{FT}}(v) = \text{softmax}(\text{MLP}(\mathbf{X}_v))
  \end{equation}
  ```
  $\rightarrow$シンプルにMLPでラベルの予測を行う

- PLP (Parametrized Label Propagation)
  - **信頼度スコア**$c_v$（どの程度，隣接ノードにラベルを伝搬させるか）を特徴量から計算
    ただし，$z$は学習可能なパラメータ．
    ```math
    \begin{equation}
    c_v = \mathbf{z}^\top \mathbf{X}_v
    \end{equation}
    ```
  
  - 信頼度に基づいて，エッジの重みを算出
    ```math
    \begin{equation}
    w_{uv} = \frac{\exp(c_u)}{\sum_{u' \in N_v \cup \{v\}} \exp(c_{u'})}
    \end{equation}
    ```
    $\rightarrow$信頼度が高いほどエッジの重みが大きい

  - 自分自身および近傍について，ラベルの重み付き和を計算
    注意：この式は実際には使用されず，次の式のように反復的に更新を行う．
    ```math
    \begin{equation}
    f^{k+1}_{\text{PLP}}(v) = \sum_{u \in N_v \cup \{v\}} w_{uv} f^{k}_{\text{PLP}}(u)
    \end{equation}
    ```

- FTとPLPを組み合わせる．
  ただし，**バランスパラメータ**$\alpha_v$は学習可能なパラメータで，ノードごとに用意される．
  ```math
  \begin{equation}
  f^{k+1}_{\text{CPF}}(v) = \alpha_v \sum_{u \in N_v \cup \{v\}} w_{uv} f^{k}_{\text{CPF}}(u) + (1 - \alpha_v) f_{\text{FT}}(v)
  \end{equation}
  ```
  ```math
  k = 0,1,2,..., K-1
  ```
  **$\rightarrow$FTから得られた予測結果とPLPから得られた予測結果をバランスよく組み合わせる．**

- 目的関数
  ```math
  \begin{equation}
  \mathcal{L} = \sum_{v \in V_U} \| f_{\text{GNN}}(v) - f^{K}_{\text{CPF}; \Theta}(v) \|^2
  \end{equation}
  ```
  $\rightarrow$GNNの出力と似るように学習を行う．


## 実験結果
- GNNより高いノード分類性能を発揮（GCNとGATとの比較のみ掲載）
  <img width="140%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583007/0994f6ac-9acc-7eca-f2fd-1d2b78119093.png">

- **バランスパラメータ$\alpha_v$と信頼度スコア$c_v$で解釈が可能**
  - バランスパラメータ$\alpha_v$で，ノード特徴量に対してラベル伝搬をどの程度重要視しているかがわかる．
    周りとラベルを持つような左側2つは$\alpha_v$が大きく，逆に周りとラベルが異なる右側2つは$\alpha_v$が小さい．
    <img width="140%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583007/ed5dc024-df3a-5108-0659-9b5fb3a60ab2.png">
  
  - 信頼度スコア$c_v$で，どの程度近傍ノードにラベルを伝搬させているかがわかる．
    次数が小さくラベルが周りと同じ左側2つは$c_v$が大きく，逆に近傍のラベルが多様なら$c_v$が小さい．
    <img width="140%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583007/b59483f9-a6d1-f5dd-d311-b2644595ed3f.png">


# この論文の問題点，発展させるとしたら
- FTとPLPでは近傍の特徴量を使用していないので，それらを活用するとさらに精度を高められそう．