DropEdge: Towards Deep Graph Convolutional Networks on Node Classification
概
在图网络中 DropOut 常以 DropNode 的方式呈现, 本文提出的 DropEdge 会随机地把结点之间的边抹去, 即二者不再直接联系.
符号说明
- \(\mathcal{G} = (\mathbb{V}, \mathcal{E})\), 图;
- \(|\mathbb{V}| = N\);
- \(X = \{\bm{x}_1, \cdots, \bm{x}_N\}\), \(\bm{x}_i\) 表示结点 \(v_i\) 的特征;
- \(A \in \mathbb{R}^{N \times N}\), 邻接矩阵;
- \(\bm{d} = \{d_1, \cdots, d_N\}\), 度;
- \(D = \text{diag}(\bm{d})\), 度矩阵;
本文方法
-
一般的 GCN 通常采用如下方式进行更新 (每层):
\[H^{(l+1)} = \sigma(\hat{A}H^{(l)} W^{(l)}), \: H^{(0)} = X \]其中
\[\hat{A} = \hat{D}^{-1/2} (A + I) \hat{D}^{-1/2}, \]\(\hat{D}\) 为 \(A + I\) 的度矩阵;
-
这种方式很容易造成 over-smoothing, 即特征趋同;
-
为此, 作者采用
\[A_{\text{drop}} = A - A' \]来替代 \(A\). 其中 \(A'\) 是 \(A\) 中的边按照稀疏率 \(\rho\) 得到的子集, 则 \(A_{\text{drop}}\) 所构成的图中保留了 \(|\mathcal{E}| (1 - \rho)\) 数量的边; 该操作是可以每一层独立添加的, 就像 Dropout 一样;
注: 我看作者的实验里 \(\rho \in \{0.8, 0.95, 0.6, 0.5, 0.4, 0.9, 0.7\}\), 大概就是在 \((0, 1)\) 间 grid search 吧.
代码
[official]