137

REINVENT 论文精读:强化学习生成分子的本质是奖励函数工程

REINVENT 用强化学习做分子生成,但真正决定成败的是奖励函数设计。这篇讲清算法机制与奖励工程的实践。

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 模型的质量是能力上限。

延伸资源