PA-GNN Parameter-Adaptive Graph Neural Networks
概
一个自适应学习 GNN layer weights 的方法.
符号说明
- \(\mathcal{G} = (\mathcal{V}, \mathcal{E})\), graph;
- \(n = |\mathcal{V}|\);
- \(A \in \mathbb{R}^{n \times n}\), adjacency matrix;
- \(\tilde{A} = A + I\);
- \(\tilde{D}\), degree matrix of \(\tilde{A}\);
- \(\tilde{A}_{sym} = \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2}\), normalized adjacency matrix with self loops;
- \(X \in \mathbb{R}^{n \times d}\), node feature matrix.
PA-GNN
-
一般的基于谱的方法形如
\[ Z = \sum_{k=0}^K \gamma_k \tilde{A}_{sym}^k H^{(0)}, \]其中 \(H^{(0)} = X\). \(\gamma_k, k=0, \ldots, K\) 为固定的系数.
-
GPR-GNN 将这些系数替换为可训练的参数, 从而能够自动地学习. 但是这种简单的设计方式略微有些粗暴了.
-
PA-GNN 采用稍复杂的方式. 首先, PA-GNN 最终的形式为
\[ Z_i = \sum_{k=0}^K \gamma_{ik} [\tilde{A}_{sym}^k H^{(0)}], \]其中 \(Z_i\) 为 \(Z\) 的 \(i\)-th 行向量. 注意到, PA-GNN 为每个结点赋予了一组不同的系数, 这使得它能够更容易抓住不同的局部特征.
-
特别地, PA-GNN 设计了一个 Parameter Network 来得到参数 \(\gamma_{ik}\) (见下图的上半部分):
-
具体的, \(\gamma_{ik}\) 的计算方式如下:
- 计算输入:\[ H_p^{(0)} = f_{\theta_1}(X) \oplus \xi, \]其中 \(f_{\theta_1}\) 为 MLP, \(\xi\) 表示通过 DeepWalk 得到的表示向量, \(\oplus\) 表示向量拼接操作;
- 通过 Parameter Network 进行转换 (实际上就是一个 GPR-GNN):\[ Z_p = \sum_{k=0}^M \varphi_k \tilde{A}_{sym}^k H_p^{(0)} \in \mathbb{R}^{n \times d'}, \]
- 计算 \(\Delta \gamma_{ik}\):\[ \Delta \gamma_{ik} = f_{\theta_3}([Z_p]_i), \]这里 \(f_{\theta_3}\) 也是 MLP, \([Z_p]_i\) 表示 \(Z_p\) 的第 \(i\)-th 个行向量.
- 最后\[ \gamma_{ik} = \underbrace{\gamma_k}_{global} + \underbrace{\Delta \gamma_{ik}}_{local}, \]其中 \(\gamma_k\) 同样是可训练的参数.
- 计算输入:
-
训练的时候, 作者 \(\gamma_{ik}\) 添加了 \(L_1\)-norm 的惩罚, 防止不同的结点的系数差异过大.