3.4 把谱卷积离散化,得到"邻域平均、线性变换、非线性"三层折叠的图卷积层,节末留下两个接口问题:聚合为什么取平均,还能取什么?一轮轮更新之后得到的是原子级向量,分子级的预测从哪里来?本节沿第一个问题展开消息传递的一般框架,把各家模型放进同一张图纸;再沿第二个问题梳理读出函数,并在收尾处回答"要多少层"。
3.5.1 消息传递的一般框架
分子图没有网格那样的平移结构,也没有固定的节点次序;图上的计算只能采取一种形态——每个原子反复"收消息、算新态"。Gilmer 等(2017)把这一形态提炼为消息传递神经网络(message passing neural network, MPNN)。设分子图 G = (V, E),原子 v 在第 t 轮的表示为 hv(t) ∈ Rd,其邻居集为 N(v),边 euv 携带键特征。一轮包含三步:
三步的可学习性分工明确。M 与 U 通常是小型神经网络——一层线性映射,或一个门控循环单元(gated recurrent unit, GRU)——参数端到端训练;AGG 一般不设参数,由设计者从求和、均值、逐维最大值中选定。分工并非偶然:聚合承担一项学习无法可靠完成的约束——置换不变性(permutation invariance)。分子图本无节点次序,"邻居列表"的顺序只是存储的产物;同一原子的邻居无论按什么顺序送入,聚合结果必须逐位相同。求和、均值、最大值天然满足;按列表顺序拼接邻居向量则不满足——一次任意的顺序变动就改变输出。原则上可以用数据增广逼近期望意义下的不变,但逐点相等无法靠学习保证。不变性应由结构免费提供,而不是靠训练去逼近。
MPNN 框架。在图 G = (V, E) 上,给定初始状态 hv(0) 与边特征 euv,按式 (3.5-1)–(3.5-3) 迭代 T 轮,再以置换不变的读出函数 R 把 { hv(T) } 映为图级向量。其中 M、U 可学习;AGG 与 R 必须对输入顺序不变,即都是多重集上的函数。GCN 式层、Duvenaud 神经指纹、D-MPNN、GGNN 与 3.6 的 AttentiveFP 都是该框架的特例——差别只在三个槽位上放了什么零件。
回看 3.4 末尾的 GCN 式层,它恰是框架里最省零件的一种装法:
框架的收纳力由此显形:各家模型并非各奔东西,而是在 M、AGG、U 三个槽位上替换零件。表 3.5-1 让三个代表对号入座,图 3.5-1 则把最简装法落到一条三原子链的具体数值上。
| 模型 | 消息 M | 聚合 AGG | 更新 U |
|---|---|---|---|
| GCN 式(3.4) | 恒等:m = hu,不用边特征 | 度归一化平均 | 线性 W +非线性 σ |
| Duvenaud 神经指纹 | 线性:m = Wt hu | 求和(含自身) | 逐点 σ;每轮另作软落位,逐层拼进指纹(3.5.3) |
| D-MPNN(Chemprop) | GRU 合并"上一轮本边消息+发送端收到的其余消息",消息在边上(3.5.4) | 求和(发送端收到的有向消息) | GRU 输出即新状态,T 轮共享权重 |
3.5.2 聚合算子:sum、mean 与 max
聚合算子一旦选定,模型的"计数学"随之确定。三个无参数候选的差别,用一组最小多重集即可显影:{1, 1} 与 {1, 1, 1}。求和得 2 与 3——可分,"有多少个"被保留下来;均值得 1 与 1——塌缩,只剩"平均是什么样";逐维最大得 1 与 1——同样塌缩,只剩"最显著的是什么"。三个算子对应三种读法:求和聚合保留计数信息,能区分仅重数不同的多重集;均值聚合对规模不敏感;最大值聚合是特征检测器,回答"邻居里有没有谁带有此特征"。
化学里的对应并不抽象。初始特征相同的原子在分子各处不可区分——若初始嵌入只含元素种类,一条全碳链上所有节点同值,则任何由均值堆出的模型都把甲烷到三十烷映到同一个分子向量:尺寸信息第一轮就被平均掉。而同系物的 LogP、沸点随碳数单调爬升,计数恰是主要信号。均值的用处也在另一侧:它抹平规模,性质若接近"强度量"——平均每原子的贡献、比例型描述符——均值反而是正确的归纳偏置。没有免费的午餐,只有匹配与否。
Xu 等(2019)把这条界线划成了定理:单射是分水岭。特征空间可数时,求和配以合适的 MLP 可以做到对多重集单射——不同多重集必得不同表示;均值与最大值不能,上例即反例。由此得到图同构网络(graph isomorphism network, GIN):
习题 3.5-1
三原子链 A—B—C,一维初始表示 h(0) = (1, 2, 3)。聚合取闭邻域(自身+邻居)求和,更新取 h′ = 0.5 × 聚合值(W = 0.5 为全体共享的标量,激活取恒等)。(1) 求 h(1) 与 h(2)。(2) 改用图 3.5-1 的闭邻域均值,写出 h(1),比较两种聚合下三个原子的区分度。(3) 对求和版的 h(1) 分别计算 sum、mean、max 三种读出。
参考解答(1) 闭邻域求和:hA(1) = 0.5×(1+2) = 1.5;hB(1) = 0.5×(1+2+3) = 3.0;hC(1) = 0.5×(2+3) = 2.5。第二轮:hA(2) = 0.5×(1.5+3.0) = 2.25;hB(2) = 0.5×(1.5+3.0+2.5) = 3.5;hC(2) = 0.5×(3.0+2.5) = 2.75。(2) 均值版即图 3.5-1:h(1) = (0.75, 1.00, 1.25)。区分度以极差计:求和版 3.0 − 1.5 = 1.5,均值版 1.25 − 0.75 = 0.5。均值把状态拉向邻域中心;求和保留计数——B 的两个邻居使其聚合值独高,拓扑位置转化为数值差异。(3) sum:1.5 + 3.0 + 2.5 = 7.0;mean:7.0/3 ≈ 2.33;max:3.0。三种读出给出三个不同的分子向量,偏置各异(3.5.5)。
习题 3.5-2
(1) 证明求和池化区分多重集 {1, 1} 与 {1, 1, 1},而均值池化不能;并各举一个求和也无法区分的实数多重集对,说明 GIN 的单射结论为何要把特征空间限制在可数集。(2) 证明:任何对输入顺序不变的聚合算子 F,都存在定义在多重集上的函数 G,使 F(x1, …, xn) = G({{ x1, …, xn }}),其中 {{ · }} 记多重集。
参考解答(1) 求和:1+1 = 2 ≠ 3 = 1+1+1,可分;均值:2/2 = 1 = 3/3,塌缩。更一般地,均值只保留经验分布的一阶信息,一切平均相同的多重集(如 {1, 3} 与 {1, 1, 3, 3})都映到同值。求和的盲区在连续空间:{2} 与 {1, 1} 之和同为 2,{1, 2} 与 {3}? 3 = 1+2 亦同。若特征取自可数集(离散的原子特征即是),可先把每个特征嵌入为线性无关的向量,此时多重集的和唯一确定各特征的重数——单射成立;GIN 的单射结论因此把讨论限制在可数特征空间,分子初始特征天然满足这一条件。(2) 定义 G({{ x1, …, xn }}) := F(x1, …, xn)。若两个输入序列给出同一多重集,则二者互为置换,由 F 的置换不变性知 F 取值相同,故 G 与代表元的选取无关、定义无歧义,且对一切输入有 F = G∘{{ · }}。逆方向显然。结论:置换不变的聚合就是多重集函数;一个模型"能分辨什么",完全由它作用的多重集函数是否单射决定。
3.5.3 神经指纹:把 ECFP 的哈希软化
2.5 的 ECFP 是一条全硬的流水线:原子特征哈希成整数标识符,每轮"新标识符 = 哈希(自身标识符, 邻居标识符)",迭代若干轮后收集全部出现过的标识符,模 F 折叠成 0/1 位向量。每一步都不可微,梯度无从穿过。Duvenaud 等(2015)没有另起炉灶,而是给每个硬步骤配一个形状相同的软步骤,得到神经指纹(neural fingerprint):整数标识符换成连续向量,哈希换成可学习映射,"落进哪一位"换成概率摊开。传播层为
逐条对照见表 3.5-2,直观对照见图 3.5-2。指纹每一位的含义由此改变:ECFP 的位是"某子结构出现与否"的布尔值,神经指纹的位是若干软标识符的期望计数——实值、连续可分。收集不再折叠:每轮占 F 维,T 轮共 F(T+1) 维,省去模折叠的确定性碰撞,代价是指纹长度随深度线性增长。
| 环节 | ECFP(硬哈希) | 神经指纹(软化) |
|---|---|---|
| 初始标识符 | 原子特征哈希成整数 id | 原子特征经嵌入成连续向量 hv(0) |
| 迭代 | 新 id = H(自身 id, 邻居 id),整数进整数出 | hv(t+1) = σ(Σ Wt hu(t)),实数进实数出 |
| 收集 | 出现过的 id 全部进集合 | 各原子 softmax 摊到 F 维,对原子求和 |
| 折叠 / 拼接 | id mod F 折叠成 0/1 位,碰撞确定 | 各轮片段直接拼接,实值软计数,无折叠 |
| 产物性质 | 与模型无关、可复算、位有子结构词典 | 随权重而变、可微、端到端、跨模型不可比 |
可微换来端到端,确定换来可复算。ECFP 与任何模型无关,任何项目、任何时刻对同一分子算出的指纹逐位相同,可直接入库、跨论文比对,位与子结构之间有词典可查。神经指纹把"什么算相似子结构"交给任务损失去打磨,换来端到端;代价是同一分子在不同训练好的模型下向量不同,跨模型不可比,位的可解释性也随之稀释。DeepChem 的 GraphConv 层属这一谱系:按邻居度数分桶设置一组 W,传播—求和—软落位的机理不变,只是不同连接度的原子各用各的线性映射。
3.5.4 以边为中心:D-MPNN
节点中心的传递在环上有一处毛病。设苯环上相邻两原子 A、B:第 t 轮 A 收 B 的消息,第 t+1 轮 B 又把刚从 A 收到的消息原样送回——同一份信息在一条键上原地往返,反复冲淡新消息的份额,训练随之震荡。Chemprop 的有向消息传递神经网络(directed message passing neural network, D-MPNN)(Yang et al., 2019)把消息从节点搬到"边"上:每条键拆成方向相反的两条有向边,各带一个隐藏状态 muv(初值由两端原子特征与键特征线性组合而来),每轮按
T 轮之后,把进入每个节点的边消息求和,回收为原子表示,再照常读出:
代价与收益都清楚。隐藏状态从 |V| 个增到 2|E| 个,一步计算更贵;GRU 跨轮共享权重,内存占用得到控制。Yang 等在 MoleculeNet 上的系统比较显示,D-MPNN 对 Morgan 指纹基线的优势随训练集增大而扩大——固定指纹的子结构词典一旦写死便不再生长,学习式表示随样本继续打磨(Yang et al., 2019)。一步额外开销,换来环上更稳的信息流动与随数据增长的表示能力。
3.5.5 读出函数:从原子表示到分子表示
末轮之后得到一袋原子向量 { hv(T) },袋子的尺寸就是原子数,随分子不同而不同。分子级预测——毒性、溶解度——要求把这袋向量变成定长的分子向量,这一步是读出函数(readout)。约束是硬的:分子不因原子编号改变而改变,R 必须对节点次序置换不变。违反它的读出会把同一个分子(仅编号不同)映到不同向量、给出不同预测——这不是精度缺陷,是定义错误。与聚合一样,读出的自变量又是多重集。
选项谱系见表 3.5-3。最朴素的三个是求和池化(sum pooling)、均值池化(mean pooling)与最大池化(max pooling),它们把 3.5.2 的三选一原样搬到分子级;拼接全部原子向量虽能保留全部信息,但长度随分子变化且不置换不变(须先排序),仅对小图成立。往上一级是分层聚合——先在官能团或环的层面归拢,再聚成全分子表示,把"子结构—全分子"的两级结构写进读出(3.6 的伏笔)。最灵活的一支是可学习加权:
| 读出 | 直觉 | 主要偏置 |
|---|---|---|
| 求和池化 | 累计每个原子的贡献 | 保留尺寸与计数;与大小相关的任务易走捷径 |
| 均值池化 | 平均每个原子的贡献 | 归一掉尺寸;同系物等计数信号一并丢掉 |
| 最大池化 | 最显著的原子说了算 | 存在性检测器;无视其余原子提供的语境 |
| 注意力池化 | 学出"看哪里"的权重 | 灵活、可解释;权重本身可能学到捷径 |
| Set2Set | LSTM 对集合带注意力读两遍 | 表达力最强;训练与调参成本最高 |
偏置各有着力的任务,失效模式也各有形状。sum 读出让分子大小直接进入预测头:任务若与大小强相关——大分子更可能难溶、更可能触发某类毒性——模型可以只凭尺寸拿分,成绩体面而机理全无。mean 读出把尺寸归一,代价是同系物信号消失。更隐蔽的失效在聚合与读出的组合处:邻居 {蓝} 与 {蓝, 蓝} 经均值聚合得到相同的节点状态,此后读出无论多讲究,两个分子已不可区分——层间丢掉的计数,读出找不回来。选型的次序应是:先问性质对尺寸敏感与否,再问信号在局部还是全分子。
为任务选聚合与读出。① 近似原子贡献加和的广延量(LogP、摩尔折射率、分子量)——sum 读出,层数可浅,0 层加特征求和已是合格基线;② 强度量或比例型性质——mean 聚合配 mean 读出,把规模归一写进结构;③ "有则改判"的局部信号(毒性警示子结构、反应软点)——浅层配 max 或注意力读出,存在性检测正合题意;④ 信号位置不明或跨尺度——注意力、Set2Set 或分层聚合(3.6);⑤ 判别力至上、特征离散——sum 聚合(GIN 式)打底。免费单元测试:把同一分子的原子编号任意置换后重算,输出必须逐位不变。
习题 3.5-3
三个性质预测任务:(i) LogP(近似原子贡献加和的广延量);(ii) 代谢软点判别——标出分子中哪个原子最易被代谢(位点型局部性质);(iii) 一个与分子大小强相关的聚集倾向数据集。为每个任务给出层数、聚合、读出的建议并说明理由;对 (iii) 额外说明 sum 读出的捷径风险与检查办法。
参考解答(i) 一至两层足够,0 层加原子特征求和即合理基线;聚合 sum 或 mean 皆可,读出 sum——性质本身是加和结构,让归纳偏置与任务结构对齐,深混合无益。(ii) 层数取软点邻域半径量级(两三层);聚合 sum 保计数;输出宜在原子级直接给出(读出退化为逐节点判别),若必须分子级则 max 或注意力读出——"哪个原子最像软点"是存在性判别,max 即存在性检测器。(iii) sum 读出会把 |V| 直接送进预测头,模型可凭大小拿分;先建"只用分子量或原子数"的哑基线,若其成绩接近完整模型,捷径成立;再以 mean 读出或对尺寸去偏后重比,确认增益不来自大小。
3.5.6 感受野与信息瓶颈
T 轮消息传递后,hv(T) 只依赖 v 的 T 跳邻域内的原子与键——这是 GNN 的感受野(receptive field)。三四层的常见配置下,一个原子看到的是三五根键以内的片段,不是全分子。药物类分子的图直径常有十几个键:链端两个原子互相看不见,除非层数过半直径。读出能汇总的,也只是各原子局部视野的并集。
任务对感受野的要求差别很大。近似加和的全局性质——LogP、摩尔折射率——本来就是原子贡献之和,浅层加 sum 读出即可逼近,堆层无益;位点性质——某原子的反应活性——信号就在局部几键之内,浅即是够。真正需要远程的是另一类:共轭贯穿全分子的电子效应、取代基对远端位点的影响、环系如何拼在一起这类拓扑整体性。层数安排应与任务的特征相互作用半径对齐,而非一味求深。
层数不是免费的旋钮。反复的均值型更新把相邻状态拉近,多轮之后全图状态趋同——过平滑(oversmoothing):图 3.5-1 里 (1, 2, 3) 一轮就挤进 (0.75, 1.00, 1.25) 的窄带,趋同的势头随轮数加深;节点状态彼此无异,读出再精巧也无米下锅。同时参数随深度增长,小数据集上过拟合先于远程效应到来。两条出路:跳跃连接(skip connection)把初始特征与浅层状态直通读出,远程靠直达而非堆层;更粗的图——以官能团与环为节点的 junction tree——把图距离缩短,少数几轮覆盖全分子。
感受野不足与层数迷信。① 报告 GNN 配置时,连同给出层数与数据集分子直径的分布——"三层"意味着三键视野,远程效应看不见并非模型学不会,而是结构上不可见;② 加层之前先问任务信号的作用半径:加和型性质上堆层,多半只收获过拟合与过平滑;③ 确需远程信息,优先考虑跳跃连接、粗粒化图或原子级直出,而非加深。感受野是预算,按任务的相互作用半径花。
本节把"怎么发消息、怎么聚邻居、怎么读分子"拆成三个可单独选型的槽位;但所有聚合与读出仍是固定算子,权重相等或写死。3.6 的 AttentiveFP 把"听谁的、看谁的"也交给学习:注意力既做聚合又做读出,同一机理贯通原子级与分子级。
关键术语
- 消息传递神经网络 (message passing neural network, MPNN)
- 以"消息—聚合—更新"三步循环在图上传播信息的一般框架,各家图模型皆其特例。
- 消息函数 (message function)
- 由两端点状态与边特征生成一条邻居消息的可学习函数。
- 聚合算子 (aggregation operator)
- 把收到的全部消息并为一个向量的算子,必须对邻居顺序置换不变。
- 更新函数 (update function)
- 合并旧状态与聚合结果、产生下一轮节点状态的函数。
- 多重集 (multiset)
- 允许元素重复、不记顺序的集合;置换不变算子的天然定义域。
- 置换不变性 (permutation invariance)
- 输出不随输入排列顺序改变的性质,图模型的硬约束。
- 图同构网络 (graph isomorphism network, GIN)
- 以 sum 聚合配 MLP 取到 WL 测试判别力上界的消息传递模型。
- 神经指纹 (neural fingerprint)
- 把 ECFP 的哈希与折叠软化成可学习映射的连续指纹,可微、随权重而变。
- 有向消息传递神经网络 (directed message passing neural network, D-MPNN)
- 消息在有向边上传递、反向边不参与下一消息的变体,Chemprop 的核心。
- 读出函数 (readout)
- 把节点表示多重集映为定长图级向量的置换不变函数。
- 感受野 (receptive field)
- T 轮传递后单个节点所能依赖的 T 跳子图范围。
- 过平滑 (oversmoothing)
- 多轮均值型更新使全图节点状态趋同、判别力衰减的现象。
参考文献与延伸阅读
- Duvenaud DK, Maclaurin J, Iparraguirre J, et al. 2015. Convolutional networks on graphs for learning molecular fingerprints. In: Advances in Neural Information Processing Systems 28 (NeurIPS 2015).
- Gilmer J, Schoenholz SS, Riley PF, Vinyals O, Dahl GE. 2017. Neural message passing for quantum chemistry. In: Proceedings of the 34th International Conference on Machine Learning, PMLR 70:1263–1272.
- Kearnes S, McCloskey K, Berndl M, Pande V, Riley P. 2016. Molecular graph convolutions: moving beyond fingerprints. Journal of Computer-Aided Molecular Design 30:595–608.
- Kipf TN, Welling M. 2017. Semi-supervised classification with graph convolutional networks. In: International Conference on Learning Representations (ICLR).
- Li Y, Tarlow D, Brockschmidt M, Zemel R. 2016. Gated graph sequence neural networks. In: International Conference on Learning Representations (ICLR).
- Vinyals O, Bengio S, Kudlur M. 2015. Order matters: sequence to sequence for sets. arXiv:1511.06391.
- Xu K, Hu W, Leskovec J, Jegelka S. 2019. How powerful are graph neural networks? In: International Conference on Learning Representations (ICLR).
- Yang K, Swersky K, Zou J, Rush AM, Leskovec J. 2019. Analyzing learned molecular representations for property prediction. Journal of Chemical Information and Modeling 59:3370–3388.