1. 图神经网络概述:深度学习与图数据的交汇

1.1 从深度学习到图数据:为什么要学 GNN?

深度学习这些年横扫了图像、语音、文本。但**图数据**是个例外——社交关系、分子结构、知识图谱,这些数据天生就不是规整的网格或序列。你用 CNN 或 RNN 去处理图,就像拿梳子去梳一团乱麻,根本使不上劲。

我最早接触 GNN,是因为一个推荐系统项目。用户和商品之间是交互关系,天然就是图。我当时尝试把用户向量拼接后扔进 MLP,效果惨不忍睹。后来换成图神经网络,第一次跑通时,AUC 直接涨了 5 个点。说白了,图数据需要图专用的神经网络,这就是 GNN 存在的理由。

你可能会问:为什么不直接提取特征,比如用图论指标(度、聚类系数)喂给传统模型?嗯,可以,但人工特征有限,而且丢失了图的结构信息。GNN 能自动学习节点、边甚至全图的表示,这才是真正的端到端。

一句话总结:图神经网络 = 深度学习 + 图结构。它让模型“看懂”关系。

1.2 图论基础回顾

别慌,我带你快速过一遍。图论在大学可能学过,但这里只捡 GNN 最常用的概念讲。

  • 节点:图里的基本单元,比如用户、原子、论文。
  • 边:节点之间的连接,可以是无向/有向、加权/无权。
  • 邻接矩阵 A:n×n 矩阵,A[i][j]=1 表示 i 和 j 有边。我记得第一次处理百万节点图时,A 直接占了几个 G 内存,不得不换稀疏格式。
  • 度矩阵 D:对角矩阵,D[i][i] = sum(A[i])。
  • 特征矩阵 X:n×d,每个节点有 d 维特征,比如用户年龄、性别。

为了让你直观理解,我整理了一张表,对比图、图像和序列数据:

数据形式结构传统模型GNN 的优势
图像欧几里得网格CNN不需要,因为 CNN 已经自带局部感受野
文本/序列线性排列RNN / Transformer图有分支,序列模型处理不了环
社交网络/分子任意拓扑手工特征 + MLP自动学习邻居聚合,适应不同结构
核心观念:图是非欧几里得数据,邻居数量和顺序都不固定。GNN 通过“消息传递”统一处理这种不规整性。

1.3 GNN 的核心思想:消息传递

GNN 为什么能工作?因为它反复做一件事——消息传递。每个节点汇集邻居的信息,更新自己的表示,多次迭代后全图信息交融。

你可以把它想象成一个“八卦扩散”过程:每个人听听隔壁邻居说了啥,再结合自己的信息更新一下,几轮后整个社区都知道发生了什么。我曾经把消息传递层数从 2 层加到 5 层,结果节点表示过于平滑,所有节点变得一模一样——这就是著名的“过平滑”问题。后面我会专门讲怎么躲坑。

消息传递的伪代码大致是这样:

for each layer in L:
    for each node v:
        # 聚合邻居消息
        m_v = aggregate({h_u for u in N(v)})
        # 更新节点表示
        h_v = update(h_v, m_v)

实际实现中,aggregate 可以是 sum、mean、max 或更复杂的注意力机制;update 通常是一个 MLP + 非线性。别小看这简单循环,正是它支撑起了推荐、分子、社交等各类任务。

避坑提醒:邻居数量差异大时,sum 聚合容易偏向高度节点。我曾在社交网络项目里用 sum,结果头部大 V 的表示被自己的度数淹没。换成 mean 或归一化后才稳定。

1.4 应用场景

我挑三个最典型的场景展开说说,你在课程后面会反复碰到。

推荐系统

用户和物品构成二部图。GNN 学习用户偏好和物品属性,再预测边(是否交互)。

  • 协同过滤:只利用交互矩阵,GNN 做节点 Embedding。
  • 社交推荐:加入用户好友关系,GNN 同时聚合社交邻居和物品邻居。
  • 我参与过一个电商推荐,使用 LightGCN(一种简化 GCN),离线 HR@10 提升 8%,线上点击率升 12%。

分子性质预测

原子是节点,化学键是边。任务:预测分子是否有毒性、溶解性等。

  • 图级别任务:整图分类或回归。
  • GNN 自动从原子类型、键长等特征出发,揉合出分子指纹。
  • 我曾经用 GIN(图同构网络)在 MoleculeNet 上做分类,比传统分子指纹(ECFP)准确率高 15 个百分点。注意:数据量小的时候 GNN 容易过拟合,我用了几何增强才压住。

社交网络分析

节点分类(预测用户兴趣)、链接预测(推荐好友)、社区检测。

  • 比如预测某个用户是否会被广告转化,GNN 利用他的社交圈信息。
  • 链接预测常用:编码器(GNN)输出节点嵌入,解码器(点积)预测边存在概率。
  • 坑:正负样本极度不平衡。我一般用负采样 + 加权损失来训练。

下图把本章的知识脉络串起来,你可以当思维导图用:

图神经网络特征提取:第1章知识体系 深度学习 图数据(非欧几里得) 图论基础(节点/边/邻接矩阵) 消息传递(聚合+更新) 推荐系统(二部图/协同) 分子性质预测(图分类) 社交网络分析(节点/边) GNN 的关键:把深度学习拓展到图结构 通过消息传递学习节点嵌入,再适配不同任务(节点/边/图级别)

这张图你看一遍就行:深度学习是底座,图数据和图论是输入基础,消息传递是引擎,最终落地三个场景。后面的章节会逐一深入每个技术细节。