图神经网络(GNN)从入门到应用:节点分类、链接预测与图生成

m
marvis

一、图数据:无处不在的结构化信息

现实世界充满图结构数据:社交网络(用户-好友关系)、分子结构(原子-化学键)、知识图谱(实体-关系)、交通网络(路口-道路)、推荐系统(用户-商品交互图)。传统深度学习擅长处理网格结构(图像)和序列结构(文本),但对非欧几里得空间的图数据却束手无策。图神经网络(GNN)正是为处理图结构数据而生。

二、消息传递范式:GNN的数学核心

几乎所有GNN变体都遵循统一的消息传递范式(Message Passing)

h_v^(k+1) = UPDATE( h_v^(k), AGGREGATE({ MSG(h_v^(k), h_u^(k)) : u ∈ N(v) }) )

三个关键步骤拆解:

  • 消息计算(MSG):邻居节点u向中心节点v发送信息,通常是MLP变换后拼接或相加
  • 消息聚合(AGGREGATE):将邻居消息汇总为单个向量,常用Mean/Sum/Max Pooling或注意力加权
  • 状态更新(UPDATE):结合自身旧状态和聚合后的邻居消息,生成新状态

这种消息传递机制与人类社交中的"信息扩散"过程高度相似——你的观点会被朋友影响,而朋友又被他们的朋友影响。

三、经典GNN模型对比

模型核心创新聚合方式适用场景
GCN将CNN的卷积操作推广到图,使用归一化邻接矩阵对称归一化求和直推式节点分类
GAT引入注意力机制,自动学习邻居的重要性权重注意力加权求和异构图、噪声图
GraphSAGE采样固定数量邻居,支持归纳式学习Mean/LSTM/Pooling大规模图、动态图
GIN理论证明达到WL测试上限的表达能力SUM聚合 + MLP图分类、分子属性预测

四、四大核心任务

  • 节点分类:预测图中每个节点类别。应用:社交网络用户属性推断、论文领域分类
  • 链接预测:预测两个节点间是否存在边。应用:推荐系统召回、知识图谱补全、药物-靶点关系预测
  • 图分类:预测整个图的类别。应用:分子毒性预测、蛋白质功能分类
  • 图生成:生成具有特定属性的图结构。应用:药物分子设计、新材料发现

五、主流框架与实战建议

  • PyTorch Geometric(PyG):最流行的GNN框架,API简洁,与PyTorch生态无缝集成
  • DGL(Deep Graph Library):支持多后端(PyTorch/TF/MXNet),大规模图训练优化好
  • Spektral:基于TF/Keras,适合TensorFlow生态用户

实战建议:小规模实验用PyG,百万节点以上用DGL。入门最佳实践:先用GCN跑通Cora/CiteSeer基准数据集,再逐步尝试GAT和GraphSAGE。

相关阅读:计算机视觉技术演进 | NLP技术全景 | 深度学习图像处理最佳实践