158

AI 分子生成模型:VAE、GAN、RL、Diffusion 不是同一种工具

VAE、GAN、RL、扩散不是同一种工具,各自适合不同的生成任务。这篇给出选型框架与共同的实践要点。

分子生成模型常被笼统讨论,但 VAE、GAN、强化学习、扩散模型解决的是不同的问题。选错工具会让项目在错误的方向上花费大量时间。

五类方法的对比

方法 核心机制 最适合的任务 主要弱点
VAE / 隐空间 编码到连续空间 局部优化、插值 后验坍缩;生成质量一般
GAN 对抗训练 分布匹配 训练不稳定;模式崩溃
自回归 + RL 逐步生成 + 奖励 目标导向优化 依赖奖励函数质量
扩散模型 去噪生成 三维/条件生成 慢;需要更多数据
遗传算法 化学操作的进化 可合成性有保证的优化 搜索效率取决于算子设计

选型框架

# 问自己三个问题:
#
# 【问题一】:有没有明确的优化目标?
#   有(如「提高活性、降低 logP」)
#     → 强化学习(REINVENT,见 137)
#     → 或隐空间优化(见 149)
#     → 或遗传算法
#   没有(只想「生成一批多样的分子」)
#     → 分布学习模型(VAE、自回归)
#
# 【问题二】:有没有起始分子?
#   有
#     → Mol2Mol、隐空间局部搜索、遗传算法
#     → 【成功率最高的场景】
#   没有(只有靶点)
#     → de novo 生成 + 对接约束(见 351)
#     → 或基于结构的生成(见 162)
#     → 【难度高得多】
#
# 【问题三】:有没有三维结构信息要用?
#   有(口袋结构)
#     → 【扩散模型】:可以在三维空间生成
#       并直接约束与口袋的互补
#   没有
#     → 二维方法即可
#
# 【一个常被忽略的选项】:
#   如果任务是「在已知骨架上枚举取代基」,
#   那么【规则枚举 + 过滤】比任何生成模型都好:
#     - 完全可控
#     - 可合成性有保证(用已有的砌块)
#     - 不需要训练
#     - 结果可复现
#   → 【很多项目其实不需要生成模型】

各方法的实践要点

# ---- VAE / 隐空间 ----
# 关键问题:后验坍缩
#   KL 项把后验推向先验,隐变量不编码信息
# 应对:
#   - KL 退火(训练初期降低 KL 权重)
#   - 自由比特(free bits)
#   - 用 MIM 等替代目标(见 149)
# 判断是否坍缩:
#   把两个分子编码,在隐空间插值,解码中间点
#   → 如果中间的分子与两端毫无关系,说明有问题

# ---- GAN ----
# 分子生成中【用得越来越少】
# 原因:
#   - 离散数据的梯度传递困难(需要 REINFORCE 或 Gumbel-softmax)
#   - 训练不稳定
#   - 模式崩溃严重(见 136)
#   - 没有明显优于其它方法的场景
# → 除非有特殊理由,【不建议作为首选】

# ---- 自回归 + RL ----
# 关键:奖励函数(见 137)
# 要点:
#   - 先验模型作为化学合理性的锚
#   - 多样性过滤防止模式崩溃
#   - 分阶段增加目标难度
#   - 【小规模跑 + 人工检查】的迭代循环

# ---- 扩散模型 ----
# 关键:在什么空间上扩散
#   二维图上:节点类型 + 邻接矩阵(离散扩散)
#   三维坐标上:需要等变架构(见 160)
#   隐空间上:先编码再扩散
# 优势:
#   - 【可以条件生成】:给定口袋生成配体
#   - 天然支持多样性
#   - 训练比 GAN 稳定得多
# 局限:
#   - 采样慢(需要多步去噪)
#   - 【物理有效性需要额外保证】(见 101)

# ---- 遗传算法 ----
# 关键:变异与交叉算子的设计
#   好的算子 = 化学上有意义的操作
#     换取代基、换环、加/减片段、
#     生物电子等排体替换
# 优势:
#   - 【不需要训练】
#   - 可用任意黑盒打分函数
#   - 【可合成性天然更好】(操作基于真实的化学变换)
#   - 易于加入约束
# → 【性价比常常被低估】
#   在很多实际项目中,
#   精心设计的遗传算法优于深度生成模型

所有生成方法的共同要求

要求 说明
有效性检查 RDKit 能否解析;价键是否合理
去重 规范 SMILES 去重
结构警示过滤 PAINS、Brenk、反应性基团(见 069《Brenk Alert》
性质范围过滤 MW、logP、TPSA 等
可合成性评估 SA score、RAscore 或逆合成规划
多样性检查 骨架数、内部多样性(见 136《MOSES 论文精读》
专利检索 工业项目必需(见 153《Chemistry42 JCIM 论文精读》
化学家审阅 不可省略的一步

现实的期望管理

  • 生成不是瓶颈:现在生成一百万个「看起来合理」的分子是容易的。难的是判断哪些值得合成
  • 模型无法超越它的打分函数:这是所有目标导向生成的天花板(见 137《REINVENT 论文精读》);
  • 可合成性是最常被低估的约束:SA score 只是粗糙估计,真正的判断需要逆合成规划或化学家评估
  • 「新颖」不等于「好」:生成的分子与已知分子差别大,可能是因为那片化学空间本来就不好;
  • 实验验证的案例仍然有限:阅读论文时应特别关注有没有实际合成与测试(见 170《AI 制药论文阅读框架》);
  • 合理的定位生成模型是「扩大探索范围、加速迭代」的工具,人在环路中的筛选与实验验证仍是必需的。

务实的项目建议

# 如果要在项目中引入分子生成:
#
# 第 1 步:【先确认打分函数】
#   你有可靠的活性预测模型吗?
#   没有 → 先做这个,生成模型没有意义
#
# 第 2 步:【从最受约束的场景开始】
#   先做 Mol2Mol(已有分子的改造)
#   而非 de novo
#   → 成功率高,能建立信心与流程
#
# 第 3 步:【建立完整的过滤管线】
#   生成 → 过滤 → 排序 → 人工审查
#   记录每一步的通过率
#
# 第 4 步:【小规模实验验证】
#   合成 5~10 个,测活性
#   → 校准整个流程
#
# 第 5 步:【迭代】
#   用实验数据改进打分函数
#   → 【这个闭环才是价值所在】
#
# 【常见的错误路径】:
#   直接上最新的生成模型 →
#   生成一万个分子 →
#   发现没法判断哪个好 →
#   项目停滞

关键要点

  • 先问「有没有明确目标、有没有起始分子、有没有三维结构」,再选方法;
  • 遗传算法的性价比常被低估——不需训练、可合成性天然更好、可用黑盒打分;
  • GAN 在分子生成中已基本被淘汰;很多项目其实规则枚举就够了
  • 生成不是瓶颈,判断哪些值得合成才是——没有可靠打分函数就不要上生成模型。

延伸资源