图神经网络(GNN)中的图自监督学习(Graph Self-Supervised Learning)方法详解
字数 1688 2025-11-09 06:36:18
图神经网络(GNN)中的图自监督学习(Graph Self-Supervised Learning)方法详解
1. 问题背景与定义
图自监督学习(Graph SSL)是一种无需人工标注标签的图表示学习方法,其核心思想是通过设计辅助任务(pretext tasks)从图数据本身挖掘监督信号,学习节点、子图或全图的低维向量表示。这些表示可用于下游任务(如节点分类、链接预测等)。图SSL解决了图数据标注成本高的问题,成为图神经网络领域的重要研究方向。
2. 图SSL的核心思想
- 核心问题:如何在不依赖外部标签的情况下,让GNN学习到有意义的图结构表示?
- 基本思路:利用图自身的结构特性(如节点连通性、邻居关系)或属性信息构造伪标签,通过预测这些伪标签来驱动模型学习。例如,如果两个节点在图上游走时接近,它们的表示应该相似。
3. 图SSL的典型方法分类
图SSL方法可分为两类:对比学习 和 生成式学习。
3.1 对比学习(Contrastive Learning)
- 目标:通过区分正样本对(相似实例)和负样本对(不相似实例)来学习表示。
- 关键步骤:
- 数据增强:对原图进行变换(如节点掩码、边扰动),生成多个视图。
- 正负样本对构造:
- 正样本:同一节点在不同视图中的表示。
- 负样本:不同节点的表示。
- 损失函数:常用InfoNCE损失,拉近正样本对的距离,推远负样本对的距离。
- 典型模型:DGI(Deep Graph Infomax)、GRACE。
- 示例(DGI):
- 步骤1:用GNN编码原图生成节点表示 \(h_i\)。
- 步骤2:对原图进行腐蚀(如随机扰动边)生成负图,编码得到 \(h_i'\)。
- 步骤3:定义全局图表示 \(s = \sigma(\frac{1}{N}\sum_i h_i)\)(读出的函数)。
- 步骤4:损失函数最大化原图节点表示与全局图表示的互信息:
\[ \mathcal{L} = -\frac{1}{N} \sum_{i=1}^N \left[ \log \sigma(h_i^T s) + \log (1 - \sigma(h_i'^T s)) \right] \]
3.2 生成式学习(Generative Learning)
- 目标:通过重建图数据本身的某些部分(如节点属性或边结构)来学习表示。
- 典型任务:
- 属性掩码:随机掩码节点属性,让GNN预测被掩码的属性。
- 边重建:掩码部分边,让模型预测边是否存在。
- 示例(属性掩码):
- 随机选择部分节点,将其特征向量置为零或随机向量。
- 用GNN编码全图,得到每个节点的表示 \(h_i\)。
- 通过解码器(如MLP)从 \(h_i\) 预测被掩码的特征:\(\hat{x}_i = \text{MLP}(h_i)\)。
- 损失函数为掩码特征的MSE损失:\(\mathcal{L} = \frac{1}{|\mathcal{M}|} \sum_{i \in \mathcal{M}} \| x_i - \hat{x}_i \|^2\),其中 \(\mathcal{M}\) 为掩码节点集合。
4. 图SSL的通用训练流程
- 输入:图 \(G = (V, E, X)\)(节点集 \(V\)、边集 \(E\)、特征矩阵 \(X\))。
- 预训练:
- 选择SSL方法(对比或生成式)。
- 构造辅助任务,用无标签数据训练GNN编码器。
- 下游任务微调(可选):
- 将预训练编码器用于节点分类等任务,可冻结编码器或联合微调。
5. 图SSL的优势与挑战
- 优势:
- 减少对标注数据的依赖。
- 学到的表示可迁移到多个下游任务。
- 挑战:
- 辅助任务的设计需与下游任务相关。
- 对比学习中负样本的选择可能影响性能。
6. 总结
图自监督学习通过挖掘图内在结构作为监督信号,扩展了GNN在无标注场景下的应用。核心方法包括对比学习(强调样本间区分)和生成式学习(强调数据重建),两者均需巧妙设计辅助任务以捕捉图语义信息。