跳转至

GNN 应用

图神经网络(GNN)已经从学术研究走向了广泛的工业应用。本文梳理 GNN 在分子科学、推荐系统、知识图谱、交通预测、图生成和点云处理等领域的代表性工作,展现图学习的强大通用性。

学习路线: GNN 基础(GCN/GraphSAGE/GAT)→ 消息传递范式 → 领域特定图构建 → 代表性模型 → 工业实践


分子性质预测与药物发现

分子图的表示

分子天然具有图结构:原子是节点,化学键是边。分子图的节点特征通常包括原子类型、电荷、杂化状态等;边特征包括键的类型(单键/双键/三键/芳香键)、键长等。

要素 图表示 特征示例
原子 节点 原子序数、电荷、手性、氢原子数
化学键 键类型、是否共轭、是否在环中
分子 分子量、LogP、TPSA

MPNN(Message Passing Neural Network)

Gilmer et al. (2017) 提出了 MPNN 框架,将多种 GNN 统一为消息传递范式:

消息阶段

\[ \mathbf{m}_v^{(t+1)} = \sum_{u \in \mathcal{N}(v)} M_t(\mathbf{h}_v^{(t)}, \mathbf{h}_u^{(t)}, \mathbf{e}_{vu}) \]

更新阶段

\[ \mathbf{h}_v^{(t+1)} = U_t(\mathbf{h}_v^{(t)}, \mathbf{m}_v^{(t+1)}) \]

读出阶段(图级别预测):

\[ \hat{y} = R\left(\{\mathbf{h}_v^{(T)} \mid v \in G\}\right) \]

其中 \(M_t\) 是消息函数,\(U_t\) 是更新函数,\(R\) 是读出函数(如 sum pooling + MLP)。

SchNet

SchNet(Schutt et al., 2017)专为3D 分子设计,直接处理原子的空间坐标:

  • 使用原子间距离的径向基函数(RBF)作为边特征
  • 连续滤波卷积:核函数是原子间距离的连续函数
  • 满足旋转不变性和平移不变性
  • 广泛用于分子动力学模拟和能量预测

药物发现中的应用

任务 输入 输出 代表方法
分子性质预测 分子图 溶解度、毒性等 MPNN, AttentiveFP
虚拟筛选 药物-靶点对 结合亲和力 GraphDTA
分子生成 先验分布 新分子结构 JT-VAE, GraphAF
药物-药物交互 药物对图 交互类型 MHCADDI

推荐系统

PinSage

PinSage(Ying et al., 2018)是 Pinterest 开发的工业级 GNN 推荐系统,处理数十亿节点的大规模图:

核心技术

  • 随机游走采样:用 Personalized PageRank 对邻居进行重要性排序,选择最相关的邻居
  • 生产者-消费者架构:CPU 采样邻居和构建计算图,GPU 执行 GNN 前向/反向传播
  • 课程学习:训练早期使用随机负样本,后期使用硬负样本(embedding 空间中接近但非正样本的节点)
  • MapReduce 推断:离线批量生成所有节点的嵌入

LightGCN

LightGCN(He et al., 2020)通过极简设计在推荐场景中取得出色效果:

\[ \mathbf{e}_u^{(l+1)} = \sum_{i \in \mathcal{N}(u)} \frac{1}{\sqrt{|\mathcal{N}(u)|}\sqrt{|\mathcal{N}(i)|}} \mathbf{e}_i^{(l)} \]

关键简化:

  • 去掉特征变换矩阵:不使用 \(W^{(l)}\)
  • 去掉非线性激活函数:不使用 \(\sigma(\cdot)\)
  • 多层嵌入加权求和:最终嵌入为各层嵌入的加权平均
\[ \mathbf{e}_u = \sum_{l=0}^{L} \alpha_l \; \mathbf{e}_u^{(l)} \]
方法 核心思想 图类型 优势
PinSage GraphSAGE + 随机游走 二部图 工业规模可扩展
LightGCN 简化 GCN 用户-物品二部图 简洁高效,SOTA
NGCF GCN + 协同信号 用户-物品二部图 显式建模高阶交互
SR-GNN GNN + 会话图 会话序列构建图 捕捉会话内物品关系

知识图谱推理

R-GCN(Relational GCN)

知识图谱中的边具有多种类型(关系),标准 GCN 无法处理。R-GCN(Schlichtkrull et al., 2018)为每种关系学习不同的变换矩阵:

\[ \mathbf{h}_v^{(l+1)} = \sigma\left(\sum_{r \in \mathcal{R}} \sum_{u \in \mathcal{N}_r(v)} \frac{1}{c_{v,r}} W_r^{(l)} \mathbf{h}_u^{(l)} + W_0^{(l)} \mathbf{h}_v^{(l)}\right) \]

其中 \(\mathcal{R}\) 是关系类型集合,\(\mathcal{N}_r(v)\) 是关系 \(r\) 下节点 \(v\) 的邻居,\(c_{v,r}\) 是归一化常数。

参数爆炸问题:关系类型多时,参数量巨大。解决方案:

  • 基分解(Basis Decomposition)\(W_r = \sum_{b=1}^{B} a_{rb} V_b\),用少量基矩阵的线性组合
  • 块对角分解(Block Diagonal):将 \(W_r\) 约束为块对角矩阵

典型任务

任务 描述 评估指标
链接预测 预测缺失的三元组 \((h, r, t)\) MRR, Hits@K
实体分类 预测实体的类型 Accuracy, F1
关系预测 预测两实体之间的关系类型 Accuracy

交通预测

STGCN(时空图卷积网络)

STGCN(Yu et al., 2018)是将 GNN 应用于交通预测的开创性工作,同时建模空间依赖时间依赖

空间维度:路网天然是图结构(路口为节点,道路为边),用图卷积捕捉空间相关性。

时间维度:使用一维因果卷积(而非 RNN)捕捉时序依赖,避免递归计算的效率问题。

架构:ST-Conv Block = 时间卷积 → 空间图卷积 → 时间卷积

\[ \text{ST-Conv}(\mathbf{X}) = \Gamma_1 * \left(\Theta * \left(\Gamma_0 * \mathbf{X}\right)\right) \]

其中 \(\Gamma\) 表示时间卷积,\(\Theta\) 表示图卷积,\(*\) 表示卷积操作。

交通预测方法 空间建模 时间建模 特点
STGCN ChebNet 图卷积 一维因果卷积 高效,并行计算
DCRNN 扩散卷积 GRU 捕捉有向扩散过程
Graph WaveNet 自适应邻接矩阵 空洞因果卷积 无需预定义图结构
ASTGCN 注意力图卷积 注意力时序 动态时空注意力

图生成

GraphRNN

GraphRNN(You et al., 2018)将图生成建模为序列生成问题:

  1. 图级 RNN:依次生成节点,每步输出一个节点的状态
  2. 边级 RNN:对每个新节点,生成它与已有节点之间的边

优势在于自回归地生成图结构,能建模复杂的图分布。

DiGress

DiGress(Vignac et al., 2023)是基于离散扩散的图生成模型:

  • 对节点类型和边类型定义离散噪声过程
  • 前向过程逐步将图"腐蚀"为随机图
  • 反向过程学习去噪,从随机图恢复目标图
  • 使用图 Transformer 作为去噪网络
方法 生成范式 优势 局限
GraphRNN 自回归 灵活,可处理任意大小图 生成顺序依赖,速度慢
GraphVAE VAE 一次性生成 受限于固定图大小
DiGress 离散扩散 高质量,不依赖节点排序 计算密集
GDSS 连续扩散 (SDE) 处理连续属性 需要连续松弛

点云处理

从点云到图

点云(Point Cloud)是 3D 空间中的离散点集合,广泛用于自动驾驶、机器人和 AR/VR。将点云转化为图的常见方法:

  • k-近邻图(k-NN Graph):每个点连接其 \(k\) 个最近邻
  • 半径图(Radius Graph):连接距离小于 \(r\) 的点对
  • Delaunay 三角化:基于三角化构建图

DGCNN(Dynamic Graph CNN)

DGCNN(Wang et al., 2019)在特征空间(而非仅在坐标空间)中动态构建 k-NN 图:

  • 每层网络根据当前特征重新构建图(动态图
  • EdgeConv 操作:将边特征定义为中心点与邻居的差异
\[ \mathbf{h}_v^{(l)} = \max_{u \in \mathcal{N}(v)} \text{MLP}\left(\mathbf{h}_v^{(l-1)} \| (\mathbf{h}_u^{(l-1)} - \mathbf{h}_v^{(l-1)})\right) \]

PointNet++ 与图的关系

PointNet++(Qi et al., 2017)虽然不是显式的 GNN,但其层次化采样-分组-聚合范式与 GraphSAGE 高度一致:

操作 PointNet++ GraphSAGE 类比
采样(Sampling) 最远点采样(FPS) 目标节点选择
分组(Grouping) Ball query / k-NN 邻居采样
聚合(Aggregation) PointNet(max pooling) 聚合函数(Pool)
方法 图构建 核心创新 应用场景
PointNet 无图结构(独立点) 置换不变的集合函数 分类、分割基线
PointNet++ 层次化局部区域 多尺度分组 不均匀点云
DGCNN 特征空间动态 k-NN 动态图 + EdgeConv 形状分类、分割
Point Transformer k-NN 图 + 注意力 向量注意力 大规模点云分割

总结与展望

GNN 的应用已经渗透到几乎所有涉及关系数据的领域。核心范式是:识别问题中的图结构 → 设计合适的消息传递机制 → 针对下游任务优化

趋势 描述
预训练 GNN 在大规模无标签图数据上预训练,迁移到下游任务
GNN + LLM 结合大语言模型处理图上的文本属性
等变 GNN 保持几何对称性(旋转/平移等变),用于分子和物理
可扩展性 更高效的采样和训练策略,支持百亿级图
异构图 处理多类型节点和边的真实世界图

图无处不在。掌握 GNN 的核心思想和应用范式,是理解现代 AI 系统的重要一环。


评论 #