3. 图神经网络基础与分子图适配
分子图与普通图数据最大的区别在于:节点和边都携带明确的化学语义。原子是节点,化学键是边,而原子类型、杂化方式、形式电荷、芳香性、键级、立体构型等信息必须被编码成向量,才能进入图神经网络。本节围绕“消息传递”这一统一视角,说明 GCN、GAT、MPNN 在分子图上的输入输出设计,以及节点与边特征嵌入的具体做法。
一、消息传递框架:把分子图计算拆成三步
消息传递(Message Passing)是绝大多数图神经网络的共同骨架。对分子图中的每个原子节点 v,其第 l 层更新可概括为三步:
- 消息生成:对每条边 (u, v),用邻居节点 u 的特征、边特征 euv 和可学习参数生成消息 muv。
- 消息聚合:把节点 v 所有邻居的消息按某种置换不变方式(求和、均值、最大值)聚合为 mv。
- 节点更新:用聚合结果和节点自身特征更新 hv,通常配合残差连接与层归一化。
这三步决定了不同模型的差异:GCN 把边权固定为归一化系数,GAT 用注意力动态计算边权,MPNN 则显式引入边网络,让边特征参与消息生成。分子图适配的关键,是把化学键信息放进“边特征”而不是只放在邻接矩阵里。
二、GCN:固定归一化的邻域平均
GCN 的核心是把邻接矩阵做对称归一化:Â = D̃-1/2(A+I)D̃-1/2,其中 A+I 表示加入自环,D̃ 是度矩阵。第 l 层更新为 H(l+1) = σ(Â H(l) W(l))。在分子图上,这意味着每个原子把自己的特征与邻居特征按度数加权平均,再经过线性变换和非线性激活。
GCN 的优点是简单、参数少、训练稳定;缺点是边权固定,无法区分单键、双键、芳香键的差异。若把键级直接编码进邻接矩阵权重,虽然能部分缓解,但会破坏归一化的对称性,且无法处理方向性。因此 GCN 更适合作为分子图基线模型,或用于键类型较单一的骨架筛选任务。
三、GAT:用注意力区分邻居重要性
GAT 在聚合前先计算邻居对中心原子的注意力系数。对边 (u, v),先拼接两端特征 [Whu || Whv],再与可学习向量 a 做内积,经 LeakyReLU 和 softmax 归一化得到 αuv,最后加权求和。多头注意力可以并行学习多种邻域模式。
在分子图上,GAT 的注意力权重具有可解释性:例如在预测某原子是否参与氢键时,模型可能给极性邻居更高权重。但要注意,GAT 默认只使用节点特征,边特征需要额外拼接进注意力计算,否则键级信息会丢失。常见做法是把边嵌入 euv 拼接到 [Whu || Whv || euv] 中,再计算注意力。
四、MPNN:显式边网络与消息函数
MPNN 把消息传递写成更一般的形式:muv = Ml(hu, hv, euv),其中 Ml 通常是一个小 MLP。聚合后,节点更新为 hv' = Ul(hv, mv)。读出阶段用置换不变函数(求和、均值、注意力池化)得到图级表示。
MPNN 对分子图最友好,因为它把边特征放在与节点特征同等重要的位置。一个典型的分子 MPNN 配置如下:
节点特征维度 d_node = 64
边特征维度 d_edge = 32
隐藏层维度 d_hidden = 128
消息网络 M = Linear(64+64+32 → 128) + ReLU + Linear(128 → 128)
更新网络 U = GRU(128, 128) 或 Linear(128+128 → 128)
聚合方式 sum
层数 T = 3
读出 sum pooling + Linear(128 → 1)
训练时,输入是一批分子图,每个图包含节点特征矩阵 X ∈ RN×d_node、边索引 E ∈ Z2×M、边特征矩阵 Ef ∈ RM×d_edge,以及可选的图级标签。输出根据任务选择节点级、边级或图级张量。损失函数常用 MSE(回归)或交叉熵(分类)。
五、节点与边特征嵌入的工程细节
特征嵌入的质量直接决定模型上限。原子特征通常包括:元素类型(one-hot,覆盖 C、N、O、S、P、卤素等)、杂化方式(sp、sp²、sp³)、形式电荷、是否芳香、手性标签、成键数、是否在环中、是否共轭。边特征包括:键级(单、双、三、芳香)、是否共轭、是否在环中、立体构型(顺反、E/Z)、键长(若构象可用)。
连续值如电荷、键长建议先做标准化或分桶离散化,再与 one-hot 拼接后送入线性层。对于缺失的立体信息,应显式增加“未知”类别,而不是用零向量代替,否则模型无法区分“无手性”和“信息缺失”。
六、三种模型的选型对照
| 模型 | 边权处理 | 边特征支持 | 适合的分子任务 |
|---|---|---|---|
| GCN | 固定归一化 | 弱(需改邻接矩阵) | 骨架筛选、快速基线 |
| GAT | 注意力动态加权 | 中(需拼接) | 反应位点、可解释性分析 |
| MPNN | 边网络显式建模 | 强(原生支持) | 键级敏感、构象相关性质 |
实际工程中,建议先用 GCN 建立基线,确认数据管道和评估指标无误;再切换到 GAT 观察注意力是否集中在化学上合理的邻居;最后用 MPNN 处理需要精细键信息的任务。无论选择哪种模型,输入输出设计都应保持统一:节点特征矩阵、边索引、边特征矩阵、图级标签四件套,这样模型替换时只需改动消息函数和聚合方式,数据层无需重写。