常见图神经网络
图神经网络的核心思想是一个节点的表示不仅由自身特征决定,还由邻居节点和边关系共同决定。在第
其中
对节点
再更新节点表示:
其中:
| 符号 | 含义 |
|---|---|
| 节点 | |
| 消息函数,通常是线性层或 MLP | |
| 聚合函数,如求和、平均、最大值。聚合函数必须对邻居顺序不敏感。因为图中邻居没有固定顺序,所以常用: | |
| 更新函数,通常是线性层、MLP、GRU 等 |
GCN
GCN 即图卷积网络。它可以看作在图结构上的卷积操作:节点从邻居接收信息,并用节点度进行归一化。
设加入自环后的邻接矩阵为:
其中
GCN 的矩阵形式为:
其中:
| 符号 | 含义 |
|---|---|
| 第 | |
| 第 | |
| 非线性激活函数 | |
| 对邻居消息做对称归一化 |
写成单个节点的形式:
这里的
GCN 适合处理同质图、节点分类、图分类等任务。它的结构简洁,但当网络层数太深时,节点表示可能变得过于相似,这称为过平滑。
GraphSAGE
GraphSAGE 的核心思想是采样和聚合。它不一定聚合全部邻居,而是可以采样一部分邻居,因此更适合大规模图。
先聚合邻居:
再把自身表示和邻居表示拼接:
其中
GraphSAGE 常见聚合方式:
| 聚合器 | 表达式 | 说明 |
|---|---|---|
| Mean | $\frac{1}{ | \mathcal{N}(v) |
| Max Pooling | 先变换再取最大值 | |
| LSTM | 表达能力强,但需要处理顺序 |
GraphSAGE 适合节点数量很大、无法一次读取完整邻接矩阵的场景,例如社交网络、推荐系统和大规模知识图谱。
GIN
GIN 的全称是 Graph Isomorphism Network。它的设计目标是增强 GNN 区分不同图结构的能力。
GIN 的节点更新公式为:
其中
GIN 使用求和聚合,是因为求和比平均或最大值更容易保留邻居多重集合的信息。
例如两个节点的邻居特征分别为:
如果使用平均值,两者可能更难区分;而求和可以保留更多数量信息。
GIN 常用于图分类任务,例如分子性质预测。因为分子性质往往与局部子结构密切相关,而 GIN 对结构差异比较敏感。
GAT
GAT 的全称是 Graph Attention Network,即图注意力网络。它的核心思想是:不同邻居对中心节点的重要性不同,因此应该学习注意力权重。
先对节点特征做线性变换:
对边
其中
再对节点
最后聚合邻居表示:
GAT 可以扩展为多头注意力:
其中
GAT 适合邻居重要性差异明显的图,例如社交关系图、知识图谱和分子图中不同化学环境的重要性判断。
MPNN
MPNN 的全称是 Message Passing Neural Network。它是一类更通用的消息传递模型,很多分子图神经网络都可以归入 MPNN 框架。
边消息为:
节点聚合为:
节点更新为:
图级读出为:
其中
在分子任务中,边特征
SchNet
SchNet 是一种面向原子体系的连续滤波卷积网络,常用于分子能量、原子力、量子化学性质预测等任务。与普通 GNN 只使用离散边不同,SchNet 直接使用原子间距离构造连续滤波器,因此适合处理三维分子结构。
设第
原子间距离为:
SchNet 的核心更新可以写成:
其中:
| 符号 | 含义 |
|---|---|
| 第 | |
| 原子 | |
| 由距离生成的连续滤波器 | |
| 按元素相乘 |
由于神经网络不擅长直接处理单个距离标量,SchNet 通常先用径向基函数把距离展开为高维向量:
其中
距离展开后得到:
再输入 MLP 生成滤波器:
因此 SchNet 的消息可以写为:
节点更新为:
因为 SchNet 使用的是距离
EGNN
EGNN 的全称是 E(n)-Equivariant Graph Neural Network,即对
EGNN 同时更新节点特征和节点坐标。设节点
坐标为:
首先计算距离平方:
然后构造边消息:
其中
EGNN 的坐标更新为:
其中
节点消息聚合为:
节点特征更新为:
EGNN 的关键在于:
- 消息函数使用距离平方
,这是旋转和平移不变的量。 - 坐标更新只使用相对方向
,这个方向会随着坐标一起旋转。 - 控制坐标变化幅度的
是标量,不会引入新的坐标轴方向。
因此,如果输入坐标发生欧氏变换:
EGNN 更新后的坐标也满足:
这就是坐标等变性。相比 SchNet,EGNN 不仅能预测图级标量,也适合处理坐标生成、构象更新、动力学模拟等需要向量输出的任务。
R-GCN
R-GCN 的全称是 Relational Graph Convolutional Network,适合处理多关系图或异质图。
在知识图谱中,不同边有不同关系类型,例如:
药物 --治疗--> 疾病
蛋白 --参与--> 通路
基因 --编码--> 蛋白设关系类型集合为
其中:
| 符号 | 含义 |
|---|---|
| 关系类型集合 | |
| 通过关系 | |
| 第 | |
| 自环权重 | |
| 归一化常数 |
R-GCN 的特点是为不同关系类型使用不同参数,因此能表达边语义差异。
图级读出层
很多任务不是预测单个节点,而是预测整个图的性质。例如分子毒性、分子溶解度、图分类标签等。
经过多层 GNN 后,需要把所有节点表示汇总成一个图向量:
常见读出方式:
得到图向量后,再用 MLP 预测:
在分子性质预测中,常见流程是:
常见模型对比
| 模型 | 核心思想 | 优点 | 常见应用 |
|---|---|---|---|
| GCN | 度归一化邻居聚合 | 简洁稳定 | 节点分类、图分类 |
| GraphSAGE | 采样邻居并聚合 | 适合大图 | 推荐系统、社交网络 |
| GIN | 求和聚合 + MLP | 图结构区分能力强 | 分子性质预测 |
| GAT | 学习邻居注意力权重 | 可解释邻居重要性 | 知识图谱、分子图 |
| MPNN | 显式消息函数和更新函数 | 可使用边特征 | 化学分子图 |
| SchNet | 距离生成连续滤波器 | 适合三维原子体系标量预测 | 分子能量、量子化学性质 |
| EGNN | 距离消息 + 相对坐标更新 | 保持坐标等变性 | 构象建模、分子动力学 |
| R-GCN | 按关系类型聚合 | 适合多关系图 | 知识图谱、异质图 |
这些模型并不是互相割裂的。它们都可以理解为消息传递框架下的不同设计:区别主要在于消息如何生成、邻居如何聚合、节点如何更新,以及是否使用边特征或关系类型。