图神经网络
消息传递框架
图神经网络(graph neural network, GNN)通过在邻居之间反复“传递消息”学习节点、边或整张图的表示。与浅层嵌入不同,GNN 的参数在所有节点间共享,可以使用节点和边的特征,并能对训练时未见过的节点或新的图做预测(归纳式学习)。大多数 GNN 可以写成消息传递的形式:第 层中,节点 的表示 更新为
其中 AGG 是对邻居顺序不敏感的聚合(求和、平均、最大值、注意力加权)。 层之后,每个节点的表示汇集了它 步邻域内的信息。做图级任务(如分子性质预测、按脑网络分类被试)时,再用一个读出(readout)函数把所有节点表示汇总成整张图的表示。
几种代表性模型
| 模型 | 聚合方式 | 特点 |
|---|---|---|
| GCN(Kipf 与 Welling,2017) | , | 对称归一化的邻居平均;可由谱图卷积的一阶近似推出(见数学推导与算法) |
| GraphSAGE(Hamilton 等,2017) | 采样固定数目的邻居,自身表示与邻居聚合结果拼接 | 归纳式,适合大图与新节点 |
| GAT(Veličković 等,2018) | 用注意力系数 对邻居加权 | 不同邻居的贡献可学习 |
| GIN(Xu 等,2019) | 求和聚合 + 多层感知机,区分能力达到 1-WL 检验的上限 | |
| MPNN(Gilmer 等,2017) | 消息函数依赖边特征 | 分子图(原子为节点、化学键为边)上的通用框架 |
算例:GCN 的传播矩阵。路径图 加自环后度为 ,于是
若只有节点 1 带特征 ,一层传播后 :信息到达了一步邻居;两层后才到达节点 3。
表达能力与过平滑
- 表达能力:Xu 等(2019)证明,消息传递 GNN 区分两张图的能力不超过 1 维 Weisfeiler–Lehman(1-WL)图同构检验。例如两个三角形与一个六元环,每个节点度都是 2,1-WL 与标准消息传递 GNN 都无法区分;而在分子中,环的大小与化学性质密切相关。加入子结构计数、高阶 GNN 或位置编码是常见的改进方向。
- 过平滑(over-smoothing):Li 等(2018)指出,GCN 的图卷积本质上是一种拉普拉斯平滑。 的最大特征值为 1,对应特征向量与 成正比,其余特征值绝对值小于 1,所以 随 增大收敛到只由度决定的秩 1 结构,节点之间可区分的信息指数衰减。这是 GCN 一般只用 2–3 层的原因。代码示例直接展示了这一衰减。
- 过度挤压(over-squashing):远距离节点的信息要经过少数“瓶颈”边压缩到固定维度的向量里,长程依赖难以学习。
生物医学中的应用
药物组合副作用:Decagon(Zitnik、Agrawal 与 Leskovec,2018)构建蛋白–蛋白、药物–靶点和药物–药物三类关系组成的多模态图,其中每一种多药联用副作用是一种不同类型的药物–药物边,用面向多关系链接预测的图卷积网络预测某一对药物会引起哪种副作用。它代表了把网络药理学中的异质网络转化为端到端学习问题的思路。
分子与抗生素发现:把分子表示为图(原子为节点、化学键为边),用消息传递网络预测分子性质。Stokes 等(2020)用这类有向消息传递神经网络学习化合物对大肠杆菌的生长抑制,在大规模化合物库中筛选,发现了结构上不同于已知抗生素的候选分子 halicin,并做了实验验证。这一例子的关键不在模型本身,而在“模型预测 → 湿实验验证”的闭环。
蛋白质结构与功能:DeepFRI(Gligorijević 等,2021)以蛋白质的残基接触图为图、以蛋白质语言模型提取的序列特征为节点特征,用图卷积网络预测基因本体(GO)功能和酶分类号;用类激活映射可以把预测定位到残基水平。AlphaFold2(Jumper 等,2021)把结构预测看作三维空间中的图推断问题,其 Evoformer 模块在残基对表示上进行基于三角形关系的更新——虽然它不是标准的 GNN,但体现了“在残基关系图上迭代推理”的思想。
脑网络分类:BrainNetCNN(Kawahara 等,2017)为连接矩阵设计了边到边、边到节点的卷积滤波器,用早产儿的弥散 MRI 结构连接组预测神经发育结局;BrainGNN(Li 等,2021)在 fMRI 功能连接图上使用脑区感知的图卷积和脑区选择池化,在自闭症谱系障碍等分类任务中同时给出与分类相关的脑区。这类研究面临的主要问题是样本量(通常为数百到数千名被试)、扫描站点效应以及与简单模型(如对连接矩阵上三角做正则化线性模型)的比较。
更系统的综述见:Zitnik 等(2019)关于整合多种生物医学数据的机器学习原则;Gaudelet 等(2021)关于图机器学习在药物发现中的应用;Li、Huang 与 Zitnik(2022)关于生物医学与医疗中的图表示学习。
局限与评估要点
GNN 研究的常见问题
- 数据划分与泄漏:链接预测中按边随机划分时,测试药物的近似药物(或同一药物的其他边)已在训练集中,性能被高估。应根据应用场景采用更严格的划分:按药物或按蛋白划分(冷启动)、按分子骨架划分、按时间划分(用早期数据训练、预测后来发现的关系)、按站点划分(脑影像)。
- 研究偏倚:知识图谱和 PPI 网络中被深入研究的节点连边多,模型可能学到“热门程度”而不是机制;应与度基线(只按节点度打分)比较。
- 简单基线:与网络邻近度、共同邻居、标签传播、逻辑回归等方法比较;在小数据或只有拓扑信息时,简单方法常常同样好(代码示例中,GCN 在空手道网络上并不比标签传播更准)。
- 方差与可复现:报告多个随机种子、多次划分的均值与离散程度;超参数在验证集而不是测试集上选择。
- 输入图的质量:GNN 把输入图当作“真实”结构,但生物网络本身是有噪声、有缺失、有偏倚的测量结果(见测量误差、缺失与偏倚)。
- 外部验证:预测性能好不等于生物学上正确;关键预测应有独立数据集或实验的验证。