简介:这份PDF资料是Jon Paul Janet在AstraZeneca生物制药研发部门所做报告的整理稿,面向化学、药物研发与材料领域的科研人员及高年级学生,帮助读者理解机器学习如何介入化学研究并解决结构预测、分子设计等实际问题。全文围绕引言、案例研究、化学中的机器学习应用与结论四部分展开,以2018年CASP13蛋白质折叠预测竞赛中AlphaFold的突破为切入点,进而讨论多目标设计在药物筛选与早期候选物验证中的落地方式,并延伸至分子结构预测、材料设计、反应预测与数据驱动实验设计等场景,兼具综述性与案例细节。资源包共1个文件,为41.44MB的PDF文档,适合按章节顺序通读或按主题检索。目前已有222人学习,可作为了解机器学习与化学交叉领域的入门参考。
1. 化学空间里的搜索问题:为什么机器学习能插进化学家的实验台
化学家面对的第一个事实是:可能的小有机分子数量在 10^60 量级。这个数字不是修辞,它意味着任何穷举式探索都注定失败。传统路径只有两条——做实验,周期以天和周计;跑量子化学模拟,解薛定谔方程,周期以小时计。两条路都太慢,而机器学习给出的第三条路,是把「从结构到性质」的映射直接学出来,推理时间压到秒级。这份由 Jon Paul Janet 整理的《Machine Learning in Chemistry now and in the future》讲的就是这条路径为什么成立、在哪些环节已经跑通、以及多目标分子设计这类硬骨头该怎么啃。搞懂它,你才能判断一个化学 ML 模型到底是真在学结构-功能关系,还是只是在拟合数据集的偏置。
2. 从 Alphafold 到化学:结构-功能映射为什么能被学习
2.1 CASP 竞赛给出的信号:搜索空间被神经网络压缩了
2018 年 CASP 13 蛋白质折叠预测竞赛上,一个首次参赛的团队在无同源模板类别中拿下 43 项测试里的 25 项,第二名只赢了剩下的 3 项。2020 年 CASP 14 该团队继续拉开差距,竞赛联合创始人给出「某种意义上问题已解决」的判断。这个结果的技术含义不是「蛋白质折叠被彻底攻克」,而是:当一个问题的输入(氨基酸序列)和输出(三维结构)之间存在强规律、且训练数据足够覆盖分布时,深度网络可以把原本需要物理模拟逐帧搜索的过程,压缩成一次前向推理。
化学面对的是同一类问题结构。分子图、SMILES 字符串、蛋白质序列,本质上都是「结构表示」,而熔点、活性、毒性、结合亲和力是「功能标签」。化学科学的核心命题一直是结构与功能的关系,这恰好是监督学习最擅长的形式:给定表示,回归或分类目标性质。Alphafold 的意义在于给整个领域提供了一个存在性证明——高维结构到高维功能的映射,神经网络学得动。
2.2 三种表示对应三类网络:为什么化学能直接借用视觉和 NLP 的成果
化学 ML 能快速起步,一个被低估的原因是它不需要从零发明网络结构。常见的实现思路是按数据表示选骨干网络:
| 化学数据表示 | 借用自 | 典型网络 | 适用任务 |
|---|---|---|---|
| 分子图(原子为节点、键为边) | 图学习 | 图卷积网络 | 性质预测、原子级标注 |
| SMILES 字符串 | 自然语言处理 | Transformer | 反应预测、分子生成 |
| 二维/三维结构网格 | 计算机视觉 | 卷积神经网络 | 晶体性质、电子密度 |
图卷积之所以适配分子,是因为分子天然就是图:原子是节点,化学键是边,节点的邻居数由价键规则决定,不存在固定网格。图卷积在聚合邻居信息时,等价于在局部化学环境上做消息传递,几层堆叠就能覆盖几个键范围内的结构上下文。Transformer 适配 SMILES 则是因为 SMILES 是一种带语法规则的序列,字符之间的长程依赖对应分子中相距较远的官能团,注意力机制正好能捕捉这种非局部关系。
这里有个容易翻车的认知:不是「用了图网络就一定比指纹特征好」。分子图表示丢失了三维构象信息,SMILES 表示对同一分子有多种合法写法(需要做规范化),每种表示都有自己的信息损失。选表示的本质是选「哪些结构信息对当前任务有因果作用」,这一步选错,后面调参全是白费。
2.3 秒级推理背后的代价:训练分布决定了模型的有效边界
把推理时间从小时压到秒,代价转移到了训练阶段:需要大量带标签数据、需要覆盖目标化学空间、需要处理分布外泛化。化学数据的现实是标签昂贵——一次湿实验合成加表征可能耗费数天,公开数据集规模远小于视觉领域的百万级图像。这导致化学 ML 模型普遍面临小样本问题,常见的应对是迁移学习:先在大规模无标注分子数据上预训练表示,再在小规模标注数据上微调。
注意:模型在测试集上表现好,不等于在真实筛选场景中可靠。测试集通常与训练集同分布,而真实候选分子往往落在分布边缘。评估时必须做骨架拆分或时间拆分,而不是随机拆分。
3. 多目标分子设计:一个模型同时满足活性、选择性和成药性有多难
3.1 单目标回归不够用:药物分子是约束满足问题
药物发现中的分子设计从来不是「找一个活性最高的分子」。一个候选分子需要同时满足:对靶标有足够活性、对脱靶蛋白有足够选择性、水溶性和渗透性达标、代谢稳定性可接受、无明显毒性。这些目标之间经常冲突——提高亲脂性往往增强膜渗透但也增加脱靶风险和代谢负担。单目标优化会把这些约束压成一个加权分数,而权重怎么定本身就是玄学,不同项目组的血泪经验往往给出不同答案。
多目标设计的正确形式是帕累托优化:不追求单一最优解,而是找一组互不支配的解集,即不存在另一个分子在所有目标上都不差且至少一个目标更好。这样把「权重怎么定」的决策推迟到化学家看到帕累托前沿之后再做人机协同判断。
3.2 用机器学习代理模型替代湿实验循环
传统多目标优化的循环是:设计一批分子、合成、测活性、测选择性、根据结果调整下一批。每一轮以周计,且每轮只能测有限数量。ML 介入的方式是训练代理模型,在计算机里先做一轮虚拟筛选,把候选空间从百万级压到几十个,再交给湿实验验证。
一个典型的多目标工作流可以写成如下伪代码结构:
# 多目标分子设计的代理模型循环(示意) # 1. 用已有实验数据训练性质预测模型 property_models = train_models( X=train_molecules, # 分子表示(图或指纹) y={"activity": act, "selectivity": sel, "solubility": sol} ) # 2. 在候选空间中用代理模型预测,计算帕累托前沿 candidates = generate_candidates(chemical_space) preds = {name: model.predict(candidates) for name, model in property_models.items()} pareto_set = compute_pareto_front(preds) # 非支配解集 # 3. 用采集函数挑选下一批实验对象(兼顾高预测值与高不确定性) batch = acquisition(pareto_set, preds, strategy="expected_improvement") # 4. 湿实验验证 batch,结果回填训练集,进入下一轮 new_data = run_experiments(batch) train_molecules = concat(train_molecules, new_data)这段流程的关键不在模型本身,而在第 3 步的采集函数。如果只挑预测值最高的分子,模型会反复在已知区域采样,永远发现不了新骨架;如果只挑不确定性最高的分子,实验资源会浪费在明显不合理的结构上。常见的实现思路是用期望改进或置信上界,在「预测好」和「不确定」之间做权衡,本质上是把探索与利用的经典问题搬到了化学空间。
3.3 帕累托前沿的读法:化学家真正需要的是取舍依据
帕累托前沿的价值在于它把「哪个分子更好」变成「你愿意在活性上让多少,换多少选择性」。前沿上的每个点都是一个不可被支配的候选,化学家可以按项目阶段选点:早期探索阶段偏向活性,后期开发阶段偏向成药性。这种把决策权交还给领域专家的设计,比一个黑箱输出单一最优分子要可信得多。
提示:帕累托前沿的可靠性完全依赖代理模型的校准质量。模型预测的活性值如果有系统性偏移,前沿形状会整体扭曲。上线前必须做校准检查,看预测值与实测值的偏差是否随性质区间变化。
4. 避坑与排查:化学 ML 项目里最容易翻车的几件事
4.1 数据泄漏:随机拆分让模型看起来很强
现象:模型在测试集上 R² 达到 0.9,换一批真实候选分子后预测完全失准。原因:随机拆分把同一骨架的相似分子同时分进了训练集和测试集,模型实际上在记忆骨架而非学习结构-功能关系。解决:按骨架(Murcko scaffold)拆分或按时间拆分,确保测试集分子与训练集在结构上有实质差异。这一步不做,后面所有指标都不可信。
4.2 表示不一致:训练用 SMILES,推理用另一套规范化
现象:同一个分子在训练管道和推理管道中产生不同的特征向量,预测结果漂移。原因:SMILES 有多种合法写法,不同工具包的规范化规则不同,导致同一分子被编码成不同序列。解决:固定一套规范化流程(如统一用 RDKit 的 canonical SMILES),并在管道入口做一致性校验,训练和推理共用同一个预处理函数。
4.3 标签噪声被当成信号
现象:模型在某些性质上表现异常好,但实验复测发现原始数据本身测量误差很大。原因:化学实验数据来自不同批次、不同仪器、不同操作者,标签噪声不可忽略,模型可能在学习测量偏差而非真实性质。解决:建模前做标签质量审查,对同一分子的多次测量取统计量并记录方差,方差过大的样本降权或剔除。
4.4 分布外分子被静默预测
现象:模型对训练集中从未出现的官能团给出高置信预测,化学家误以为可靠。原因:大多数回归模型不输出不确定性,或输出的不确定性未校准。解决:引入不确定性估计(集成模型方差、贝叶斯最后一层),对高不确定性预测显式标记,并在界面上提示「该预测超出训练分布」。
4.5 多目标权重被悄悄固化
现象:项目初期设定的加权分数在后期被沿用,导致优化方向偏离实际需求。原因:单目标化把多目标取舍隐藏进了一个固定权重里,后续无人复查。解决:保留帕累托前沿输出,权重只用于排序展示,不用于训练目标;每个项目阶段重新审视前沿取舍。
5. 设计取舍:化学 ML 的可信度来自哪里
化学 ML 最容易被误解的一点是把它当成一个「更快的计算器」。计算器给出确定答案,而 ML 模型给出的是基于训练分布的统计推断。这两者的可信度来源完全不同:前者靠物理定律保证,后者靠数据覆盖和验证设计保证。理解这一点,才能理解为什么这份材料把大量篇幅放在案例和方法论上,而不是堆砌模型结构。
一个值得记住的取舍是:模型复杂度与可解释性之间的张力。图神经网络和 Transformer 在预测精度上通常优于传统描述符加树模型,但它们的决策过程对化学家是黑匣子。在药物发现这种高风险决策场景中,一个精度略低但能指出「哪个子结构贡献了活性」的模型,往往比一个精度高但无法解释的模型更有实际价值。常见的折中方案是用注意力权重或子结构归因做事后解释,但要清楚这类解释只是近似,不能当成因果结论。
另一个取舍是数据效率与表示能力的平衡。预训练大模型在小样本化学任务上表现好,但预训练数据与目标任务分布不匹配时,微调反而可能不如从零训练的小模型。我一般会这么理解:预训练提供的是「化学语言的语法」,目标任务需要的是「特定性质的口音」,语法有帮助,但口音必须靠目标任务数据自己学。
验证一个化学 ML 系统是否可信,我习惯走三步:先看拆分方式是否防泄漏,再看不确定性是否校准,最后看帕累托前沿上的候选分子是否经得起化学家的人工审查。三步里任何一步不过关,指标再漂亮也不上线。从那以后我每次评估化学模型都强制走一遍骨架拆分和校准检查,宁可指标难看,也不要一个在真实筛选里翻车的模型。希望帮到你。
本文还有配套的精品资源,点击获取