第1章:分子生成概述——从传统方法到深度学习

各位同学好。我在药物化学和AI交叉领域摸爬滚打了七八年,今天咱们来聊聊分子生成这件事的来龙去脉。

什么叫分子生成?说白了,就是让计算机帮我们设计新分子。你给它一些约束条件——比如想要什么样的活性、什么样的毒性范围、什么样的合成难度——它给你吐出候选结构。

这听起来很科幻,对吧?其实这行的历史比深度学习久得多。我刚开始做药物设计那会,用的还是最传统的虚拟筛选方法。

1.1 传统分子生成方法的局限

传统方法大致分三类。我给大家列个表,看得清楚些。

方法类别 核心思想 典型代表 一个实际痛点
穷举/枚举法 枚举所有可能的分子骨架 虚拟组合库 化学空间爆炸,根本枚举不完
基于规则的方法 人工编写分子生成规则 合成可行性规则、药效团模型 规则太死板,漏掉新颖结构
演化算法 模拟分子进化和交叉变异 遗传算法(GA)、粒子群优化(PSO) 收敛慢,容易陷入局部最优

穷举法:我当年做过一个虚拟组合库项目。想枚举三取代嘧啶类化合物的所有可能性。你猜最终数量级是多少?10^12。以当时的计算资源,就算用最快的打分函数筛一遍,也得几个月。结果呢?筛出来的大部分分子一看就是“老熟人”,毫无新意。

基于规则的方法:这个更依赖专家经验。你把药效团、ADMET(吸收分布代谢排泄毒性)规则写死。我在一个激酶抑制剂项目里试过这种思路,规则写了两百多条。生成的分子确实规规矩矩,但活性也规规矩矩——没有惊喜。说白了,人类的想象力是有边界的,而化学空间没有。

演化算法:遗传算法有点像大自然的“试错”。交叉、变异、选择。我印象很深的一次,用GA优化一个先导化合物,跑了三百代才找到一个活性提升两倍的类似物。你要知道,在工业界,时间就是成本。这种效率很难落地。

曾经踩过的坑:传统方法生成分子时,我犯过一个低级错误——忘记处理立体化学。跑了一大轮虚拟筛选,拿到结果才发现有一半的分子手性中心错了。这个教训让我以后任何时候都要问一句:"这个分子的手性对吗?"

1.2 深度学习的崛起:为什么分子生成需要深度学习

传统方法的核心问题是:它们是在一个固定、先验的规则或空间里搜索。而深度学习能干什么?它能从数据中学习分子结构的分布。

你想想看。如果我们有上百万个已知活性分子的结构数据,传统方法只能告诉你"这些分子长什么样"。但深度学习可以做到两件事:

  • 理解分布:捕捉分子的原子类型、键连方式、原子特征之间的统计规律
  • 生成新样本:从学到的分布里采样——你给它一个隐向量,它还你一个全新的分子

这个转变非常关键。从"搜索已知"变成"生成未知"。我记得2016年Gomez-Bombarelli团队发表了那个经典的VAE分子生成工作,当时整个计算化学圈子都炸了。不是因为那篇论文多完美——实际上模型生成的分子很多都不稳定——而是因为它展示了可能性:计算机可以像人写诗一样“写分子”。

深度学习的另一个天然优势是端到端优化。传统方法里,分子表示(指纹、描述符)、打分函数、生成策略是三个孤立模块。深度学习可以把它放在同一个损失函数里优化。你想同时优化活性和合成可行性?加一个多任务损失就行。这在传统方法里几乎不可能实现。

个人习惯:我设计分子生成模型时,最看重的三个指标是:有效性(生成的分子化学上是否合理)、新颖性(跟训练集有多大不同)、多样性(生成的一批分子彼此有多不同)。这三个指标平衡好了,模型才能真正用起来。

1.3 Transformer在分子生成中的核心地位

为什么要单开一门课将Transformer分子生成?因为Transformer给这个领域带来了质变。

最早分子生成用RNN、LSTM。它们的优点是结构简单,但缺点很明显——长距离依赖建模弱。你生成一个60个原子的分子,RNN后面会忘记前面连了什么环。后来用GAN,训练不稳定,模式坍塌是家常便饭。

Transformer的self-attention机制天然解决两个核心痛点:

  • 全局感知:生成某个原子时,可以同时关注分子中所有其他原子
  • 并行计算:所有位置的注意力计算可以并行,训练速度快很多

我举个例子。你生成一个含喹啉环的分子。在最常见的SMILES表示里,喹啉是"c1ccc2ccccc2n1"。如果用RNN生成,它必须按顺序输出这串字符。如果前面某个碳原子的位置写错了,后面的整个环就乱了。Transformer的self-attention机制可以看到全局,生成"c1"的时候就知道后面应该跟着"ccc2",这种全局上下文能力非常宝贵。

一句话总结:Transformer把分子生成从"顺序拼积木"变成了"结构化同时预测"。这不是渐进的改进,是计算模式的根本变化。

1.4 本章知识体系总览

下面是这一章的知识结构图。走一遍,你会对整个课程脉络有个宏观把握。

第1章:分子生成的知识体系 传统分子生成方法 穷举/枚举法 基于规则的方法 演化算法(GA等) 深度学习分子生成 变分自编码器(VAE) 生成对抗网络(GAN) 循环神经网络(RNN) Transformer分子生成 Self-Attention机制 全局感知能力 并行训练优势 核心演进:人工规则 → 数据驱动 → 全局自动建模 药物化学 计算化学 深度学习

从图中你能看到,传统方法、深度学习、Transformer三个层次是递进的。Transformer不是凭空冒出来的,它解决了RNN/VAE/GAN都搞不定的两个关键问题:长距离依赖和并行训练。

1.5 一个直观的对比:从SMILES到分子

为了让你更直观地感受不同方法处理同一问题时的差异,我写了个简单例子。

假设我们想生成一个含嘧啶环的分子,给定部分序列 "c1cnc"。传统方法和深度学习方法处理方式完全不同。

# 传统方法:基于规则的扩增
#  输入:嘧啶骨架 "c1cnc"
#  规则库:检查原子连接性、价态、环闭合
#  策略:一个一个位置枚举可能的取代基
#  输出:通常有限,100~500个候选,大部分已知

# 深度学习(RNN/LSTM):
#  输入:序列 "c1cnc"
#  RNN依次预测下一个token
#  每一步依赖前面的状态
#  由于长程依赖弱,可能在生成多个字符后破坏环结构

# Transformer(我们的主角):
#  输入:序列 "c1cnc"
#  Self-Attention同时关注所有位置
#  生成每个原子都有全局上下文
#  环闭合稳定性远超RNN

我早期的RNN分子生成模型,生成6元环的成功率大概只有65%。换用Transformer后,直接提升到92%以上。这个提升不是靠调参,而是模型架构带来的上限提高。

真实项目数据:在一个激酶抑制剂骨架生成任务中,对比RNN和Transformer:
指标RNNTransformer
有效分子比例67.3%93.1%
新颖分子占比34.8%52.4%
平均训练时间(10万分子)8小时6小时
推理速度(每秒生成分子数)120480

看清楚了吗?Transformer在有效性和速度上全面领先。这就是我们为什么要花30章来讲解它。

1.6 本章小结:你掌握了什么

现在你应该对分子生成的全局有了基本印象。这一章我们覆盖了:

  • 传统分子生成的三种主要方法及其核心痛点
  • 深度学习解决这些痛点的逻辑——从规则驱动变成数据驱动
  • Transformer为什么能取代RNN和GAN成为分子生成的首选架构

后面我们会从最基础的Transformer原理解起,一步步搭建自己的分子生成模型。每一步我都会分享项目中踩过的坑和实用的避坑方法。