图神经网络(GNN)中的图分类任务与图级表示学习详解
字数 1347 2025-11-15 15:19:59
图神经网络(GNN)中的图分类任务与图级表示学习详解
图分类任务是指对整张图进行类别预测,例如判断一个分子是否有毒、一个社交网络是否属于特定社区等。与节点分类(预测图中单个节点的标签)不同,图分类需要生成一个能够代表整张图结构的向量表示(即图嵌入),然后基于该表示进行分类。核心挑战在于如何将不规则的图数据转换为固定长度的向量,同时保留图的全局结构信息。
1. 图级表示学习的基本流程
图级表示学习通常遵循“节点嵌入→图读出(Readout)→图嵌入→分类”的流程:
- 步骤1:节点嵌入生成:通过图神经网络层(如GCN、GAT)聚合邻居信息,为每个节点生成嵌入向量。经过多层传播后,每个节点的嵌入都编码了其局部子图的结构信息。
- 步骤2:图读出操作:将图中所有节点的嵌入聚合为一个全局的图级表示。常用方法包括:
- 求和/均值/最大值池化:对节点嵌入按元素进行求和、取均值或取最大值。例如,求和池化:\(h_G = \sum_{v \in V} h_v\),其中 \(h_v\) 是节点 \(v\) 的嵌入,\(h_G\) 是图嵌入。
- 加权池化:根据节点重要性(如通过注意力机制)加权聚合节点嵌入。
- 步骤3:分类:将图嵌入输入全连接层和Softmax函数,输出图类别的概率分布。
2. 层次化池化与图粗化
简单池化(如求和)可能丢失图的结构信息。层次化池化通过逐步压缩图结构,保留多尺度特征:
- 图粗化(Coarsening):将图划分为若干子图(簇),每个子图收缩为一个超节点,形成更小的图。例如:
- 图聚类池化:用聚类算法(如谱聚类)将节点分组,每个簇嵌入通过池化(如求和)生成超节点表示,邻接矩阵根据簇间连接强度更新。
- 节点丢弃池化:根据重要性得分(如节点度或学习到的权重)保留关键节点,移除次要节点。
- 多层池化流程:原始图 → GNN层 → 池化层(图粗化) → 重复多次 → 最终得到单个节点的图嵌入。
3. 图同构与表达能力
图分类的关键是区分不同结构的图(即图同构问题)。若两个图结构相同但节点编号不同,GNN应生成相同的图嵌入。理论分析表明:
- WL图同构测试:经典的图同构算法,通过迭代聚合节点及其邻居的标签(哈希值)来比较图结构。若两个图在WL测试中无法区分,则大多数GNN也无法区分它们。
- GNN的表达能力上限:若GNN的聚合函数是单射的(即不同输入映射到不同输出),且图读出函数是排列不变性的,则其表达能力与WL测试相当。例如,图同构网络(GIN)通过可学习的加权求和逼近单射聚合,增强了表达能力。
4. 实际应用与优化技巧
- 图数据增强:通过对图进行扰动(如增加/删除边、掩蔽节点特征)扩充训练数据,提升模型鲁棒性。
- 跳连(Skip-Connection):在多层GNN中,将浅层和深层的节点嵌入拼接或求和,避免过度平滑问题(即所有节点嵌入趋于相同)。
- 图级归一化:对图嵌入进行批归一化或层归一化,稳定训练过程。
总结:图分类任务依赖图级表示学习,核心在于通过GNN和池化操作提取图的全局特征。层次化池化与图粗化能增强结构保留能力,而理论工具(如WL测试)帮助分析模型表达能力。实际中需结合数据增强和归一化技巧优化性能。