ICML2020 《When Does Self-Supervision Help Graph Convolutional Networks?》 Reading Notes
Paper Introduction 本文是自监督方法在GCNs上首次系统的探索,设计了3种自监督任务来将分析自监督在GCN中起到的作用。自监督旨在充分利用unlabeled数据中的知识来设计前置任务(pretext task),来帮助模型学习更具迁移性和泛化能力的表示。前置任务可以认为是对目标任务有帮助的辅助正则化网络,设计用于帮助原任务学习到更多下游任务相关的语义信息。 GCN任务通常是直推半监督的(transductive semi-supervised),含有大量unlabeled数据,而self-supervision(SSL)可以充分利用unlabeled data, 那么就产生了一个值得探索的问题:将自监督学习应用到GCN上是否也可以达到提升泛化能力和鲁棒能力的效果? 先给结论 Q1: 自监督学习可否在分类任务中提升GCN? 如果可以,如何将其合并到 GCN 中以最大化增益? A1: 本文证明了通过多任务学习将自监督学习融入 GCN 是有效的,即多任务损失作为 GCN 训练中的正则化项。 这种作为自监督作为正则化项的方法,强于用自监督来预训练或者self-training。 Q2: 前置任务的设计重要吗? GCN 有哪些有用的自监督前置任务? A2: 本文研究了三个基于图属性的自监督任务。 分别是节点聚类node clustering, 图划分graph partitioning 和图补全graph completion。 并且进一步说明不同的模型和数据集倾向于不同的自监督任务。 Q3: 自监督也会影响 GCN 的对抗鲁棒性吗? 如果是,如何设计前置任务? A3: 本文进一步将上述发现推广到对抗性训练环境中。提供了广泛的结果,以表明自监督还可以提高 GCN 在各种攻击下的鲁棒性,而不需要更大的模型或额外的数据。 Method GCNs $\boldsymbol{Z}=\hat{\boldsymbol{A}} \operatorname{ReLU}\left(\hat{\boldsymbol{A}} \boldsymbol{X} \boldsymbol{W}_{0}\right) \boldsymbol{W}_{1}$可以分为两块来看 (1) 特征提取模块$f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) = \hat{\boldsymbol{A}} \operatorname{ReLU}\left(\hat{\boldsymbol{A}} \boldsymbol{X} \boldsymbol{W}_{0}\right)$ 参数为$\theta = \{\boldsymbol{W}_{0}\}$和(2)线性变换模块$\boldsymbol{Z}=f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) \boldsymbol{\Theta}$ 其中 参数$ \boldsymbol{\Theta} = \boldsymbol{W}_{1}$。 半监督GCN优化任务的目标函数为: $$ \begin{aligned} \boldsymbol{Z} &=f_{\theta}(\boldsymbol{X}, \hat{\boldsymbol{A}}) \boldsymbol{\Theta} \\ \theta^{*}, \boldsymbol{\Theta}^{} &=\arg \min_{\theta, \boldsymbol{\Theta}} \mathcal{L}_{\mathrm{sup}}(\theta, \boldsymbol{\Theta}) \\ &=\arg \min_{\theta, \boldsymbol{\Theta}} \frac{1}{\left|\mathcal{V}_{\text {label }}\right|} \sum_{v_{n} \in \mathcal{V}_{\text {label }}} L\left(\boldsymbol{z}_{n}, \boldsymbol{y}_{n}\right) \end{aligned} \tag{1} $$ 其中$L(\cdot, \cdot)$是每个labeled node的损失函数。 ...