4.4.1 从五元组到分子环境:MDP 的逐项实例化
图卷积策略网络(graph convolutional policy network),通称 GCPN,出自 You 等人 2018 年的工作(You et al., 2018)。4.3 节把序贯决策写成马尔可夫决策过程(Markov decision process)的五元组 (S, A, P, R, γ),却没有指明这五个符号里装什么。GCPN 的第一步工作,就是把它们逐一换成化学对象——每个分子对应一个 episode(回合),分子长成的过程即决策轨迹。
状态 st 是第 t 步的中间分子图 Gt:节点携带原子类型与当前价态,边携带键级。状态空间是"不超过 38 个原子的全部合法中间图",规模随原子数指数增长,表格法无处安放——策略只能取参数化网络。4.3 节末尾"函数逼近"一语,在此有了着落。
动作是两阶段的复合决策,先定生长点,再定键合,详见下面的定义框。转移 P 是确定性的:环境按动作改图,不加随机噪声;随机性全部来自策略自身的采样。环境的另一职责是化学检查——每一步用 RDKit 核价态,这条边贯穿掩蔽与奖励两处。终止有两种:策略发出终止动作,episode 结束并交出成品;或者步数触及上限,环境强制截断。episode 长度上限取 38 个原子,恰为 ZINC250k 的最大原子数——搜索空间的上界由数据口径决定,不另设。折扣因子取 γ = 0.9(TorchDrug 口径),远视而不近视:中间图的"好底子"要在若干步之后才兑现为终局分数。
两阶段动作分解:一步生成动作 at 拆成两段。第一段在旧节点中选锚点(anchor node),并定新原子的类型(kekulize 后 9 类)——回答"在哪里生长、长什么原子"。第二段为新原子与旧节点逐个决定键型:不成键、单键、双键、三键,可连多条键,也可回连旧节点成环,直至本步收束。原论文把一步动作记作(首节点,次节点,键型,是否停止)的链接预测式组合,语义与此一致。另有一个独立的终止动作 stop,随时可选,选中即输出分子。
价约束动作掩码(action masking)的位置在 softmax 之前:锚点与键的 logits 先过价检查,非法项置 −∞,归一化后概率恰为零。4.2 节称这种做法为硬约束——合法性由动作空间的结构保证,而不是靠惩罚把概率慢慢压小。原论文给出另一变体:拒绝非法动作,状态原地不动,配小负奖励。两者化学上等价,训练动力学不同——掩蔽之下每步采样必合法,拒绝则把非法动作变成"空转步"。TorchDrug 的实现取掩蔽路线。
4.4.2 策略网络:图卷积编码与因子化的动作分布
策略网络只做一件事:给定图,给每个候选动作打分。
编码器是三层图卷积网络(Kipf & Welling, 2017),节点表示 64 维,逐层批归一化,求和聚合得到图表征。键级携带化学语义,实现上把不同键级当作不同关系,即关系图卷积——3.4 节从谱方法讲起的消息传递,3.5 节的 GraphConv 与读出函数,在这里各就各位。图卷积的参数与节点数无关,一套权重管所有尺寸的中间图,变长状态空间由此可处理。
节点表示之上接两个头。头一在旧节点集合上做 softmax,给出锚点分布 π(v|s):下一个原子长在哪里。头二以选中的锚点为条件,为新原子类型及其后的键合决策打分,给出 π(a|v,s)。两个头相乘,得一步复合动作的分布:
为什么因子化?算一笔账就清楚。联合动作是"锚点 × 新原子 × 与每个旧节点的键型",量级约 |V| × 9 × 4|V|;|V| = 10 时已近一亿行(习题 4.4-1)。对这样一张表做联合 softmax,打分器要么为每个组合单设参数,要么退回手工特征,两条路都随 |V| 爆炸。因子化把一步决策拆成两串小 softmax:锚点头与 |V| 同阶,键合头逐节点决策,打分成本只随图规模线性到平方级增长。附带的好处是语义分离——选哪里、放什么、怎么连,各自的非法动作各自掩蔽,出错时诊断也各归各。
习题 4.4-1
设某步的中间图有 |V| = 10 个旧节点,新原子有 9 类候选,每个"新原子—旧节点"对的键决策含"不成键"在内共 4 种。(1) 第一段的"锚点 × 新原子类型"共多少组合?(2) 若把整步动作摊平成一张联合表(第一段结果 × 十个键决策的全体组合),共多少行?(3) 因子化之后,同一步要做的 softmax 规模变成多少?(4) 若把键决策从 4 种减为 3 种(无/单/双),联合表缩小多少倍?
参考解答(1) 10 × 9 = 90 种。(2) 90 × 410 = 90 × 1 048 576 = 94 371 840 ≈ 9.4 × 107 行,尚未计终止动作——这正是不做联合 softmax 的理由。(3) 一次 90 类的 softmax(锚点 × 原子类型),随后至多 10 次各 4 类的顺序键决策;打分器的计算量只随 |V| 从线性到平方级增长,参数量与组合数无关。(4) 90 × 310 = 90 × 59 049 = 5 314 410 行,缩小 410 / 310 = (4/3)10 ≈ 17.8 倍。联合表的规模对键决策的类别数呈指数敏感,对锚点数只呈多项式敏感——因子化正是把指数项拆出联合表,摊到顺序决策里。
4.4.3 奖励设计:终局、合法性与类药先验的三路合成
奖励是 GCPN 里化学味最重的部件。先回答一个反面问题:只用终局奖励行不行?
不行,理由在 4.3 节已经埋好。策略梯度估计 ∇J = E[Σt ∇log π(at|st) · Gt] 里,稀疏奖励(sparse reward)意味着一个 episode 几十步共用同一个标量回报:分不清哪一步有功、哪一步有过——信用分配(credit assignment)失效;回报的方差随 episode 长度累积,梯度几乎不可用。GCPN 的对策是把奖励摊到时间轴上,三路合成。
第一路,终局性质分。episode 结束时对成品算目标分数——penalized LogP 或 QED,定义见 4.1.5 节,经线性缩放进区间 [−4, 4]。终局处另加化学过滤:MMFF94 力场优化后的角弯曲能超阈(空间位阻过大)、或含反应性官能团,直接扣进 [−2, 2]——给"分数高但合成不出来"的分子设一道门。这一路承载任务目标,也埋着 4.1.5 节警示框预告的隐患。
第二路,逐步合法性奖励。每步动作经 RDKit 价检查通过,立刻得一个小正奖励;违反则得小负。设计意图是把"合法"从惩罚项翻转成引导信号:合法的每一步马上有回报,奖励由稀疏变稠密(dense),信用分配的难题卸掉大半。掩蔽已保证采样必合法,这一路的真正角色是塑造梯度——在合法与非法动作之间持续制造回报差,把策略往"少碰壁"的区域推。
第三路,类药先验奖励。另训一个判别器(discriminator) Dφ——与策略网络同构的 GCN——以 ZINC 分子为真样本、以生成分子为假样本,做对抗训练(adversarial training);策略把 log Dφ(x) 当奖励领。机理一句话:判别器把"像不像训练集分布"折成一个标量,"像数据"从此可优化。步内与终局各给一次,缩放进 [−1, 1]。
| 成分 | 给出时机 | 机理 | 数值口径 |
|---|---|---|---|
| 性质分 rprop | 终局 | penalized LogP 或 QED,RDKit 计算;任务的真正目标 | 线性缩放至 [−4, 4] |
| 滤除罚 rfilter | 终局 | MMFF94 角弯曲能(空间位阻)与反应性官能团检查 | 线性缩放至 [−2, 2] |
| 对抗奖励 log Dφ | 步内与终局 | 判别器对"像 ZINC"打分,类药先验的载体 | 线性缩放至 [−1, 1] |
| 合法性奖励 | 每步 | 价检查通过给小正、违反给小负;稀疏变稠密 | 小正 / 小负(论文未给具体数值) |
奖励设计的目标错位。强化学习优化的是给定的奖励,不是设计者心里的意图。三路合成缓解了稀疏性,却改变不了这样的事实:性质分只度量"这一维好",判别器只度量"像训练集",滤除罚只拦两种特定的坏——三张网之外的盲区一概不设防。策略一旦发现某条路径能让 α 项持续走高而无网可拦(长链、稠环、高卤代),它就会忠实地走下去。目标错位不是工程失误,是目标导向范式的结构性风险:任何有限项的奖励都只是"好分子"的有损压缩。判读任何高分结果,先核对打分函数的边界,再看分子本身——多维报告的意义正在于此。
4.4.4 训练目标:策略梯度与专家模仿的混合
奖励定了,训练目标是两支相加:
第一支是 4.3 节的策略梯度,具体取近端策略优化(proximal policy optimization, PPO)的截断目标(Schulman et al., 2017):
第二支是模仿学习(imitation learning):从 ZINC 分子上随机切出连通子图当作 st,把训练集分子补全该子图的真实动作当作标签,做极大似然——
λ 的语义由此清楚。λ 大,策略贴着数据分布走,性质分进展慢;λ 小,目标推进快,代价是离开类药流形——模式坍缩(mode collapse)与作弊的风险同步上升。原论文全程保留模仿项,不做过完预训练就丢弃的安排;TorchDrug 把 QED 微调的准则设为 PPO 与似然的组合,同一思想的工程化。回到 4.1 节的范式地图:预训练承担分布学习,微调承担目标导向,λ 把两个阶段连续化为一个加权——混合范式不只是"先训后调",还可以"边训边调"。
习题 4.4-2
某批次上测得 JPPO = 2.4,Lim = 1.6(NLL 口径)。对某个"延长碳链"的动作,策略梯度想让其对数几率上升,∂JPPO/∂z = +0.3;模仿项想让它下降,∂Lim/∂z = +0.1(z 为该动作的 logit)。(1) 分别算 λ = 2 与 λ = 0.5 时的总损失。(2) λ = 2 时该动作 logit 的净更新方向?λ = 4 时呢?(3) 由此说明 λ 的语义,并讨论训练早期与后期各宜取大还是取小。
参考解答(1) λ = 2:L = −2.4 + 2 × 1.6 = 0.8;λ = 0.5:L = −2.4 + 0.5 × 1.6 = −1.6。两个 λ 下模仿项贡献分别为 3.2 与 0.8,可见 λ 直接决定先验项在总损失里的话语权。(2) 总损失对 z 的梯度为 −0.3 + λ × 0.1,梯度下降沿其负方向更新:λ = 2 时净梯度 −0.1,logit 上升(目标项胜出);λ = 4 时净梯度 +0.1,logit 下降(先验项胜出)。同一批数据,λ 跨过 0.3/0.1 = 3 这个门槛,动作的净走向即反转——λ 不是细节超参,而是方向的裁判。(3) λ 是"像数据"与"达目标"的权衡旋钮。训练早期策略尚未学会搭出合法分子,PPO 项的优势估计噪声大,宜取大 λ,先用模仿把策略放到类药流形上;后期策略已稳,逐步调小 λ,让目标分主导推进——这也正是 4.4.5 节两程训练的连续化版本。
4.4.5 课程与结果:先学分布,再追目标
训练按先易后难排课程(curriculum)。第一阶段纯模仿:在 ZINC250k 上学分布,目标只有似然——最容易,标签现成。第二阶段切入 PPO:先倚重逐步合法性与对抗奖励,性质分随后逐步加权——奖励结构本身构成时间上的课程(图 4.4-2)。两阶段的学习率也差着量级:TorchDrug 的口径里,预训练 10−3,微调 10−5,小两档。步幅小,策略才不会被稀疏而嘈杂的奖励推崩——与 PPO 截断的信任域思想一以贯之。
结果按论文口径核对两个目标。penalized LogP:GCPN 采样的最优三名为 7.98、7.85、7.80,训练集 ZINC 的最优三名只有 4.52、4.30、4.23——头部超出约 3.5,优化确实走出了训练分布。QED:GCPN 得 0.948,与训练集最优持平——QED 有上界且训练集已近饱和,本就没什么可优化。有效性 100%:这不是学出来的成绩,是掩蔽的结构性后果(4.4.1 节),报告时须注明口径,以免与"模型学得好"混同。
7.98 的分子长什么样。看一眼 GCPN 的最优解,4.1.5 节警示框预告的标本就在眼前:重复亚单元接成的长链、高度卤代的脂肪族骨架(另一类解走稠合大环),分子量远超类药上限。机理不复杂——LogP 随链长与卤代程度稳定上涨,SA 罚项的增长追不上,性质分一路走高;判别器项想把搜索摁回类药流形,但 α 的权重压不过性质梯度。分数与"有用"就此脱钩。责任不在策略:它把给定的奖励优化得很好;在打分函数的边界太窄——它只惩罚"难合成",不惩罚"不像药、不是药"。这一案例与 4.1 节"单一指标皆可作弊"的清算互为印证:混合范式能收窄作弊空间(判别器与滤除罚确实在拦),收不死;终审必须回到多维评估与人眼核查。
习题 4.4-3
论述:为某激酶设计三目标奖励——活性预测器分数、QED、SA 的负值。请写出合理的加权方案,逐一分析三对目标之间的冲突,指出策略最可能的作弊路径,并给出对策。
参考解答加权示例:r = α·p活性 + β·QED − γ·SA,α > β > γ(活性是任务核心,其余两维为护栏),三项各自归一到可比区间再加权。冲突一,活性对类药性:预测器常偏好大而疏水的结合口袋配体,分子量与 LogP 上推,QED 与五规则下坠——头两维天然拔河。冲突二,活性对合成可行性:复杂稠环与多取代基抬活性也抬 SA,第三维专拦这种"好看不好做"。冲突三,QED 对 SA:QED 奖励常见药物片段,通常不与 SA 冲突,但极端追求 QED 会把策略压进训练集高频区,新颖性受损——两个护栏彼此并不打架,却合谋扼杀探索。作弊路径:其一,预测器在训练数据之外的外推区可能给出虚高分数,策略专攻外推死角;其二,若 α 远大于 β、γ,重演 penalized LogP 的长链解。对策:活性预测器附不确定性估计,高不确定区打折;三目标联合报告而非单标量排名;保留掩蔽保证合法、判别器项守住类药流形;高分分子人工核验。核心认识与正文一致:任何加权标量都是"好分子"的有损压缩,护栏只能收窄盲区,不能消除盲区。
4.4.6 与 VAE 路线对照;TorchDrug 的实现位置
GCPN 与 Gómez-Bombarelli 等人的连续表示(Gómez-Bombarelli et al., 2018)是一对整齐的对照。VAE 路线先学分布:编码器把分子映入连续隐空间,解码器译回分子;优化在隐空间做——性质预测器架在隐变量上,沿近似梯度爬坡,爬到高点再解码。目标不可导,只好这样绕行。GCPN 把目标直接写进奖励:任何 RDKit 能算成标量的东西,无论可不可微,都能当目标;代价是把难题搬进了奖励设计。
GCPN:显式优化目标
- 目标进奖励:可含不可微的规则与过滤器
- 搜索由策略采样驱动,逐步可掩蔽,合法性 100%
- 失败面:奖励作弊、模式坍缩到高分解
- 训练不稳,须 PPO 截断与模仿项兜底
VAE:隐式学分布再采样
- 目标在隐空间绕行:近似梯度爬坡,再解码
- 似然全程可算,训练平稳、易监控
- 失败面:优化点解码不回、串不合法、目标峰分辨率受隐空间平滑度限制
- 合成可行性等硬约束无处安放
两条路线的失败模式恰好互补:一个败在"太听奖励的话",一个败在"够不着目标"。4.6 节的 GraphAF 会把两者的长处各取一半——流模型的可训似然,加上强化学习的目标微调。
TorchDrug 的实现位置一句话:编码器是关系图卷积(torchdrug.models 的 RGCN,承 3.5 节),训练任务封装在 torchdrug.tasks 的 GCPNGeneration——ZINC250k 预训练与 PPO 微调两程齐备。版本口径照旧:GCPN 代码在 TorchDrug 0.2.1 中仍可运行,需要 Python 3.10 与 PyTorch 2.0 以内的环境,工程细节 5.2 节交代。
GCPN 把 4.2 节的框架与 4.3 节的数学焊成了一个可运行的分子工厂,也把强化学习的脾气一并带来:奖励是新的主人,主人定错了,工人只负责把错事做到极致。4.5 节转向流模型——另一套把"逐步生成"变成可训似然的数学,变量替换与雅可比行列式将取代奖励,成为生成故事的下一任主角。
关键术语
- 图卷积策略网络 (graph convolutional policy network, GCPN)
- 以图卷积为策略网络、在分子图上做目标导向序贯生成的强化学习方法。
- 锚点 (anchor node)
- 两阶段动作的第一段所选的旧节点;新原子自此接入图。
- 动作掩码 (action masking)
- softmax 前把非法动作的 logits 置 −∞;合法性由动作空间结构保证。
- 稀疏奖励 (sparse reward)
- 只在 episode 末尾给出的奖励;梯度方差大、信用分配难。
- 稠密奖励 (dense reward)
- 逐步给出的奖励;把信号摊到时间轴上,缓解稀疏性。
- 信用分配 (credit assignment)
- 把终局回报归因到各步动作的问题;稀疏奖励下失效。
- 判别器 (discriminator)
- 区分训练集分子与生成分子的网络;其输出折算为"像数据"的奖励。
- 对抗奖励 (adversarial reward)
- 以 log D(x) 计的奖励项,把类药先验变成可优化标量。
- 模仿学习 (imitation learning)
- 以训练集分子的补全动作为标签的极大似然;混合目标中的先验项。
- 近端策略优化 (proximal policy optimization, PPO)
- 把新旧策略概率比截断在信任域内的策略梯度算法;GCPN 的 RL 引擎。
- 课程学习 (curriculum learning)
- 先易后难的训练编排;GCPN 中体现为模仿先行、目标奖励逐步加权。
参考文献与延伸阅读
- You J, Liu B, Ying R, Pande V, Leskovec J. 2018. Graph convolutional policy network for goal-directed molecular graph generation. Advances in Neural Information Processing Systems 31 (NeurIPS 2018):6410–6421.
- Kipf TN, Welling M. 2017. Semi-supervised classification with graph convolutional networks. International Conference on Learning Representations (ICLR 2017).
- Gómez-Bombarelli J, Wei JN, Duvenaud D, Hernández-Lobato JM, Sánchez-Lengeling B, Sheberla D, Aguilera-Iparraguirre J, Hirzel TD, Adams RP, Aspuru-Guzik A. 2018. Automatic chemical design using a data-driven continuous representation of molecules. ACS Central Science 4(3):268–276.
- Schulman J, Wolski F, Dhariwal P, Radford A, Klimov O. 2017. Proximal policy optimization algorithms. arXiv:1707.06347.
- Sutton RS, Barto AG. 2018. Reinforcement Learning: An Introduction. 2nd ed. Cambridge, MA: MIT Press.
- Ertl P, Schuffenhauer A. 2009. Estimation of the synthetic accessibility score of drug-like molecules based on molecular complexity and fragment contributions. Journal of Cheminformatics 1:8.
- Zhu Z, Zhang Z, Xhonneux L-P, Tang J. 2022. TorchDrug: a powerful and flexible machine learning platform for drug discovery. arXiv:2202.08320.