REINVENT(AstraZeneca,Olivecrona 等 2017;Blaschke 等 2020)是应用最广的强化学习分子生成框架。它的算法本身并不复杂——真正决定项目成败的是奖励函数的设计,这也是论文标题之外最重要的实践知识。
基本机制
# 三个组件:
#
# 1) 先验模型(Prior)
# 在大量类药分子(如 ChEMBL)上训练的 SMILES 生成模型
# → 学会了「什么样的 SMILES 是合理的分子」
# → 【训练好后冻结,不再更新】
#
# 2) 智能体(Agent)
# 从先验模型初始化,通过强化学习不断更新
# → 逐渐偏向生成高奖励的分子
#
# 3) 打分函数(Scoring Function)
# 评价生成的分子有多「好」
# → 【这是真正的设计工作】
#
# 核心的损失函数(DAP,Differentiable Augmented Prior):
#
# 增强似然 = log P_prior(分子) + σ × Score(分子)
# 损失 = (增强似然 - log P_agent(分子))²
#
# 直觉理解:
# 智能体的目标不是「最大化奖励」,
# 而是「匹配一个被奖励调整过的先验分布」
#
# σ 控制偏离先验的程度:
# σ 小 → 接近先验,分子合理但优化不足
# σ 大 → 强烈追求高分,【容易生成怪异分子】
#
# 【这个设计是 REINVENT 的关键】:
# 它用先验模型作为「化学合理性的锚」,
# 防止 RL 完全脱缰
# —— 这比纯粹的策略梯度稳定得多
奖励函数工程:真正的工作
# 一个典型的多目标打分函数
#
# 组件示例:
# 1) 活性预测模型(QSAR)
# → 主要目标
# 2) 选择性(对脱靶的预测活性要低)
# 3) 对接分数(见 351)
# 4) 类药性质:MW、logP、TPSA、HBD/HBA
# 5) 可合成性:SA score 或 RAscore
# 6) 结构警示:PAINS、Brenk(见 069)
# 7) 与已知分子的相似性(或不相似性)
# 8) 骨架约束
#
# 聚合方式:
# 加权求和:Σ w_i × s_i
# 简单,但一个组件很差可以被其它组件补偿
# 加权几何平均:Π s_i^{w_i}
# 【任一组件接近 0 则总分接近 0】
# → 更适合「必须同时满足」的场景
#
# 【经验教训】:
#
# 1) 【几乎所有失败都源于奖励函数】
# 模型总能找到钻空子的方式
# → 生成的分子高分但荒谬
#
# 2) 必须加「防作弊」的约束
# - 分子量上限(防止无限增大)
# - 环数、可旋转键数限制
# - 结构警示过滤
# - 与训练集的相似性下限(防止太离谱)
#
# 3) 【先小规模跑,看生成什么】
# 跑 100 步,人工看一批分子
# → 几乎总能发现意料之外的钻空子方式
# → 修正奖励函数,再跑
# → 这个循环通常要重复多次
#
# 4) 分数的尺度要归一化
# 各组件应映射到 0~1,否则权重失去意义
# REINVENT 提供 sigmoid、reverse_sigmoid、
# step 等变换函数
#
# 5) QSAR 模型的适用域是硬约束
# 生成的分子如果远离 QSAR 训练数据,
# 预测值不可信 —— 而 RL 恰恰会往那里走
# → 【必须加适用域检查】(见 166)
探索与利用的平衡
| 机制 | 作用 |
|---|---|
| 经验回放 | 保存高分分子并重复学习,加速收敛 |
| 多样性过滤 | 对已生成过的骨架降低奖励,强制探索 |
| σ 参数 | 控制偏离先验的强度 |
| 课程学习 | 逐步增加目标难度 |
「多样性过滤」是实践中最重要的一个机制:没有它,RL 会迅速收敛到少数几个高分骨架并不断微调——生成一万个分子却只有几个骨架。开启后,模型被迫探索新区域。
论文与实践的差距
- 论文的基准任务是简化的:优化单一 QSAR 模型的预测值,而实际项目有十几个约束;
- 「优化成功」不等于「分子有用」:模型能把 QSAR 预测值推到很高,但那可能只是找到了 QSAR 模型的对抗样本;
- QSAR 模型的质量是上限:生成模型不可能超越它的奖励函数——如果活性预测模型不准,生成的分子也不会真的有活性;
- 需要人在环路中:实践中通常是「生成一批 → 化学家筛选 → 调整奖励函数 → 再生成」的迭代,而非一次性自动完成;
- 实验验证的案例仍然有限:公开发表的、经实验验证有活性的 REINVENT 生成分子案例存在但不多。
典型的应用模式
# 模式一:先导优化(最常见)
# 起点:已有活性分子
# 目标:保持活性,改善某个性质(如降低 logP)
# 做法:
# - 用相似性约束保持在原骨架附近
# - 奖励函数包含活性预测 + 目标性质
# → 【成功率最高的应用场景】
#
# 模式二:骨架跃迁(见 352)
# 起点:已有活性分子
# 目标:换骨架但保持药效团
# 做法:
# - 奖励函数包含药效团匹配 + 骨架不相似性
#
# 模式三:从头设计
# 起点:只有靶点结构
# 目标:生成全新的结合分子
# 做法:
# - 奖励函数以对接分数为主(见 351)
# → 【最难,也最容易钻空子】
# → 对接分数本身就不可靠(见 095)
#
# 模式四:库设计
# 目标:生成一批多样的、满足性质约束的分子供筛选
# → 多样性过滤是核心
#
# 现实的期望值:
# 生成模型的价值是【扩大探索范围与加速迭代】,
# 而非「自动发现药物」
# 实际流程中它产生候选,仍需人工筛选与实验验证
关键要点
- 先验模型作为「化学合理性的锚」,防止 RL 完全脱缰——这是 REINVENT 的关键设计;
- 几乎所有失败都源于奖励函数,模型总能找到钻空子的方式;
- 先小规模跑并人工检查生成的分子,这个修正循环通常要重复多次;
- 生成模型不可能超越它的奖励函数——QSAR 模型的质量是能力上限。
延伸资源
- REINVENT4:138《REINVENT4 文档精读》;实战:347《用 REINVENT4 生成新分子》;对接约束生成:351《在分子生成中加入 Docking Score 约束》;
- GuacaMol:135《GuacaMol 论文精读》;分子生成模型:158《AI 分子生成模型》;不确定性:166《不确定性估计》。