GCC¶
GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training (arxiv.org)
-
motivation: 现有的图表示学习(graph representation learning)主要关注特定领域的问题,对于特定的图数据集训练一个模型,但是通常不能迁移到领域外,难点在于是否可以得到一个可迁移的图表征嵌入;同时受到 NLP 和 CV 中预训练(pre-training)方法的最新进展启发,作者希望设计一个自监督图神经网络预训练框架,做一个良好的初始化,捕捉跨多个网络的通用网络拓扑特性
-
主要增强方法:
-
pretraining: 作者将图的pre-training的任务定义为子图实例区分(subgraph instance discrimination)只利用图结构而不借助特征和label,来学习将顶点映射到低维特征向量的函数,其满足结构相似性(即具有相似图局部结构的点距离应该相近)和可迁移性(与预训练时没有见过的节点和图也要兼容)
-
定义subgraph instance:选择一个顶点以及与他距离r以内的邻居构成一个subgraph(作者叫做r-ego network)
-
data augmentation: 作者采用的增强方法是 图采样(subgraph sampling) 通过随机游走采样子图,之后重新标记下标以实现图匿名化(因为只需要结构信息);重复上面的增强过程两次即得到一个相似样本对;如果是两个不同的子图采样得到的就构成一个不相似的样本对
-
输入到两个encoder(任意GNNs,作者采用的是GIN)得到embedding
-
利用loss:
\[ \mathcal{L} = -\log\frac{\exp (\mathbf{q}^\top\mathbf{k}_+/\tau )}{\sum_{i = 0}^K \exp (\mathbf{q}^\top\mathbf{k}_i/\tau)} \]即鼓励模型将同一个子图增强出来的,经过encoder后的embedding识别为相似样本对,而不同子图的embedding识别为不相似的样本对
-
-
fine-tuning:针对不同任务进行微调,对于graph-level的,则针对输入图本身进行embedding;对于node-level的,则针对输入图的节点扩充子图进行embedding
-
-
方法评价:通过pre-training有效地学习了图结构的通用表征,并且学习到可迁移性的图的结构化信息;但是在实验部分,模型表现其实不佳,可能是为了可迁移性而丢失一部分性能;且若对于稀疏图,子图采样进行比较的方法可能无法很好的比较结构信息进行学习;