计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1070|回复 Reply: 8
打印 Print 上一主题 Last thread 下一主题 Next thread

[算法与编程] 用于性质预测的分子编码方式简介

[复制链接 Copy URL]

36

帖子

4

威望

352

eV
积分
468

Level 3 能力者

本帖最后由 王纪峰 于 2025-10-31 16:58 编辑

摘要:分子设计作为化学与材料科学中的一项核心任务,面临着在庞大的化学空间中高效筛选并开发具备特定功能的分子的问题,传统方法在效率和探索性方面存在明显局限。近年来,人工智能的兴起为分子设计与性质预测提供了自动化与智能化的新路径。本文简单综述了用于性质预测的不同分子编码方法(如SMILES、Sequence、2D/3D分子图等)进行比较,分析了各自的优缺点,并探讨了不同编码方式适合的模型。最后,展望计算化学与人工智能的交叉研究方向。


1. 简介

当前AI在计算化学/材料方向的应用,可以简单归类为“数据->表示->模型->筛选->应用”这5部分,本文将重点介绍分子表示(编码)部分的相关技术,探讨不同编码的优缺点,并分析不同编码方式适合的模型。首先,AI4Materials等领域目前存在2类主流的任务,分别是性质预测以及分子生成,前者以回归任务为主,而后者以反向设计结构(即条件生成)为主。在这两类任务中,分子的表示方式至关重要,不同的表示方式会直接影响模型的输入处理方式以及模型效果。根据不同标准,分子表示方法具有不同的分类方式。例如,根据下游任务的不同,分子编码方式可以分为(1)专为生成式模型服务的编码;(2)专为性质预测模型服务的编码;根据适用模型的不同,分子编码方式也可以分为(1)专为回归头(MLP)或传统机器学习模型(XGBoost)的编码;(2)图神经网络(GNN)专用编码(节点与边索引);(3)Transformer模型专用编码(序列)等。在本帖中,将以下游任务的不同分别介绍不同的编码方式。限于篇幅,本文仅介绍性质预测模型的编码方式。


2. 性质预测模型的编码方式

性质预测是当今AI领域最为活跃的研究领域之一,任务主要集中于回归任务(也有少量的分类任务以及序列预测任务等),包含(1)宏观性质预测,例如预测材料的力学强度、介电常数等;(2)微观性质预测,例如能量,HOMO-LUMO,静电势ESP等。下图展示了性质预测常用的编码方式,分别是(1)基于分子指纹或手工描述符的特征编码;(2)基于节点与边的2D 分子图编码;(3)基于坐标的3D分子图编码;(4)基于Sequence的序列编码。


(1)“基于分子指纹或手工描述符的特征编码”

专用于传统机器学习模型以及MLP等模型,优点为编码方式十分迅速,通过RDKit等即可根据SMILES式快速计算分子指纹(个人最喜欢用Morgan分子指纹,2048维,radius=2),非常适合用于toy model或者快速预测,虽然这种方法简单,但已有不少研究表明在训练数据稀缺的情况下,这种简单的编码方式结合XGBoost等往往表现出更好的性能。(例如我之前发表的nature communications 14.1 (2023): 2789.,Journal of Chemical Information and Modeling 65. 20 (2025): 10961–10976,Chinese Journal of Polymer Science 43.10 (2025): 1749-1760.等论文)均证明了简单的编码配上简单的模型也能够具有超越深度学习模型的表现。


(2)“2D GNN特征编码

专用于2维的GNN模型,仅需要分子的SMILES(节点与连接关系)即可进行编码,从本质上来说,2D GNN将分子编码为了节点矩阵(尺寸为[N, M])与边索引(尺寸为[2, E])的分子图。其中:

  • N代表分子中原子数量,
  • M代表节点特征的种类,节点特征可以嵌入任意多数量,例如原子序号就是最常用的特征之一。除此之外,还可根据任务的不同制定不同的特征,例如预测化学反应位点,可以向节点特征中嵌入简缩fukui函数以提高预测性能。
  • 对于一个分子,有10个原子,节点特征设定为2个(原子序号与简缩fukui函数),那么节点特征尺寸张量为[10,2]
  • E代表无向边的数量,例如10个原子一共有9条边,那么边索引尺寸为[2,E],其中2代表一对节点(一对节点才能构成连接关系)。



2D GNN特征编码本质上就是无向图的编码,特别适用于传统GCN(图卷积神经网络),GAT(图自注意力神经网络),GIN(图同构神经网络)等,这类编码方式的优点在于(1)能够根据分子结构自动学习特征(2)构型无关,但缺点在于(1)如果要取得更好的性能,需要针对不同任务制作节点特征或者边特征;(2)构型无关(也可以算作缺点),尤其是原子电荷这类受构型影响巨大的参数,2D GNN往往不能取得好的效果。


(3)“3D GNN特征编码”

专用于3维GNN模型,此时需要分子中每个原子类型以及xyz坐标,输入信息可从结构文件(pdb,xyz等)中获取,3D GNN在分子处理上要明显比2D GNN更加复杂,除了节点矩阵(尺寸为[N, M])与2D GNN完全相同外,对于连接关系的处理发生了较大的变化,具体而言,3D GNN不再考虑分子中所有边索引,而是引入了截断半径的概念(可类比分子动力学模拟中的截断半径),对于每个原子,只对截断半径内的信息进行聚合。

值得注意的是,根据消息聚合的方法不同,可以分为不变神经网络(IGNN)以及等变神经网络(EGNN),不变神经网络模型的代表为Schnet(2018-2019,JCP,第一代神经网络势,对于3D信息,只考虑了边的长度),Dimnet+(2020,ICLR,对于3D信息,考虑了边的长度与角度),Spherenet(2022,NeurIPS,对于3D信息,考虑了边的长度、角度与二面角),至此不变神经网络基本发展完全。不变神经网络简单来说,就是分子在三维空间中的进行旋转、平移等操作,虽然坐标发生了改变,但是本征性质,例如能量,却没有改变,不变神经网络在2022年左右,在预测量子化学性质等极度依赖构型的性质上一骑绝尘,是当时最好的预测模型之一。

不过,未来的研究方向逐渐转向EGNN,这是因为IGNN存在无法反应矢量性质的问题,例如分子在构型A受力F,IGNN只能给出F的模,无法给出F的方向(从本质上这是因为IGNN在编码时完全忽视了矢量的影响,导致矢量在消息聚合中完全丧失),为了解决这个问题,EGNN在IGNN的基础上分开编码了标量以及矢量,使得保留IGNN优点的同时,也能给出矢量性质,EGNN的发展直接导致了神经网络势能的大幅发展(代表性工作为NequIP以及E3GNN)。


最后,讨论3DGNN的编码的优缺点,其优点在于:(1)预测构型敏感的标量性质,EGNN与IGNN均具有最好的表现;(2)可训练神经网络势(EGNN专用),其缺点在于:(1)一旦性质与构型弱相关或提供了错误的构型,3D信息的引入反而成为噪音,性能大幅下降;(2)计算资源消耗极大,每多增加一层3D GNN层,消耗显存提高5~8 G,且训练速度远慢于上述其他2个模型;(3)模型上手难度高,模型在处理3D结构的计算方案复杂,需要花大量时间学习。


(4)基于Sequence的编码方式

Sequence编码可以视作Transformer独属的编码方式,从本质上来讲,是将文本(SMILES式是最常用的文本)tokenize到向量空间,从而实现编码。这种方式赋予了Transformer模型极大的灵活性,因为只要训练数据的信息充足且平均,可以编码任意多的文本内容,从而实现远大于分子指纹以及分子图的信息容量。虽然具有上述优点,Sequence编码也存在一个巨大的缺点,就是物理/化学意义同样远不如分子指纹以及分子图信息,因为SMILES本身并不是一个良好的物理化学信息载体,更何况还需要编码更多的其他文本信息(例如加工条件、测试条件等),这就需要大量的数据进行训练,让模型充分学习到内在的表达逻辑以及编码含义。

Sequence编码的应用可以分为3大类,分别是BERT模型(只使用Transformer中的Encoder,代表性工作PolyBERT),通过预训练以及下游任务微调,构建性质预测模型;GPT模型(只使用transformer中的Decoder),大部分情况下用于条件分子生成任务;Text2text 模型(T5架构,同时使用Transformer中的Encoder与Decoder),即可用于分子生成也可用于性质预测任务。

4. 结语与个人评价

本篇文章比较了性质预测模型中不同分子编码方式以及对应优缺点,现做简单总结,如果希望快速预测性质,数据集较少,“基于分子指纹或手工描述符的特征编码”是首选;如果希望模型自动学习分子结构关系,或者难以使用分子指纹或者手工描述符描述的情况(例如晶体),又或者需要预测节点级特征,2D GNN是首选;如果预测的性质受构型影响较大,或者希望训练神经网络势,又或者需要预测受构型影响大的节点级特征(例如原子电荷),3D GNN是首选(标量用IGNN,矢量用EGNN);如果希望编码尽可能多的性质,并且不想构建复杂的公式处理其中数学物理关系,Sequence编码是首选。


AI的高速发展不仅提供了许多科研机遇,也加剧了技术水平的不平等,本文旨在面向刚踏入AI4Materials的朋友,提供性质预测方面“分子表示”部分快速上手的指导。





评分 Rate

参与人数
Participants 6
威望 +1 eV +23 收起 理由
Reason
287192454 + 5 赞!
Huschein + 5 好物!
Alerbt + 3
sobereva + 1
student0618 + 5 好物!
Uus/pMeC6H4-/キ + 5 好物!

查看全部评分 View all ratings

复旦大学 高分子科学系 博士在读 理论计算与人工智能方向
谷歌学术:https://scholar.google.com/citations?user=s4Z-rWoAAAAJ&hl=zh-CN

246

帖子

7

威望

2022

eV
积分
2408

Level 5 (御坂)

2#
发表于 Post on 2025-11-1 14:09:37 | 只看该作者 Only view this author
吹的都挺好的,实际上我用下来,这些都不太行,刷分倒是挺强

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
不想飞的猫头鹰 + 3 233333

查看全部评分 View all ratings

849

帖子

4

威望

1920

eV
积分
2849

Level 5 (御坂)

A Student

3#
发表于 Post on 2025-11-1 17:06:32 | 只看该作者 Only view this author
本帖最后由 student0618 于 2025-11-2 00:18 编辑

就算没用AI,跑传统高通量虚拟筛选前先用来filter database、后续看QSPR/QSAR、clustering analysis等,了解各编码还是很有用的。

从当年用来学高通量筛选,很旧的Open3DQSAR教程、到后来试用的TeachOpenCADD教程、deepchem库、目的是优化分子的各类continuous latent representation (encoder based),等等,都用到分子编码相关知识。很多老教程最后现在还会用到的不是它们的工具或 Algorithm,而是用分子编码处理database或分析结果、设计新分子的思路及方法。
敬仰一针见血的指责,厌倦别有用心的赞美。

202

帖子

0

威望

3432

eV
积分
3634

Level 5 (御坂)

4#
发表于 Post on 2025-11-1 23:38:22 | 只看该作者 Only view this author
讲的很好,但是如果能给一些实操案例就更好了

45

帖子

0

威望

687

eV
积分
732

Level 4 (黑子)

5#
发表于 Post on 2025-11-3 09:21:09 | 只看该作者 Only view this author
所以AI会把计算化学饭碗给端走吗?可怕

849

帖子

4

威望

1920

eV
积分
2849

Level 5 (御坂)

A Student

6#
发表于 Post on 2025-11-3 11:07:25 | 只看该作者 Only view this author
本帖最后由 student0618 于 2025-11-3 11:08 编辑
287192454 发表于 2025-11-3 09:21
所以AI会把计算化学饭碗给端走吗?可怕

这没关係吧,真的有看一楼的文吗?用到分子编码的QSAR/QSPR等N年前就有了,25年前我博导第一位研究生就是和实验组合作用QSPR。

还有用来在database搜相似分子的方法都用到分子编码。

真要说AI不说分子编码的话,很多docking工具用到的 genetic algorithm 也可算是很早期有进化能力的AI。

利用AI结合研究或提高效率,还是把思考外包给AI,都取决于个人的。
敬仰一针见血的指责,厌倦别有用心的赞美。

45

帖子

0

威望

687

eV
积分
732

Level 4 (黑子)

7#
发表于 Post on 2025-11-3 14:33:20 | 只看该作者 Only view this author
student0618 发表于 2025-11-3 11:07
这没关係吧,真的有看一楼的文吗?用到分子编码的QSAR/QSPR等N年前就有了,25年前我博导第一位研究生就是 ...

看了,看不懂,所以感觉害怕

849

帖子

4

威望

1920

eV
积分
2849

Level 5 (御坂)

A Student

8#
发表于 Post on 2025-11-3 15:13:10 | 只看该作者 Only view this author
本帖最后由 student0618 于 2025-11-4 12:02 编辑
287192454 发表于 2025-11-3 14:33
看了,看不懂,所以感觉害怕

不用想得太复杂。

要作类比的话,想想二氧化碳可以叫CO2, SMILES 是C(=O)=O。这几个写法包含的资讯量都不同。
延伸开去,想想我们用分子力场给每个原子及分子定义“一大堆参数”、或者量化给某个原子的基组、或者用ChemDraw画二维的分子式、或者是用GaussView/Avogadro建立三维的分子模型。

像“二氧化碳”和“CO2”都是代表分子的方法,分子编码也是一种代表分子的表示方式,是让电脑模型更容易处理数据的表示方式。

一楼的帖子就是在介绍不同的、方便电脑模型(尤其是AI模型)使用的,代表分子的方法,用layman's terms套用二氧化碳的示例就是“几种告诉电脑模型什么是CO2的方式,不同写法更适合用于什么目的”。好比以下一句“考试时用CO2代表二氧化碳可以节省1秒时间”。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
287192454 + 5 赞!

查看全部评分 View all ratings

敬仰一针见血的指责,厌倦别有用心的赞美。

45

帖子

0

威望

687

eV
积分
732

Level 4 (黑子)

9#
发表于 Post on 2025-11-3 16:11:02 | 只看该作者 Only view this author
student0618 发表于 2025-11-3 15:13
不用想得太复杂。

要作类比的话,想想二氧化碳可以叫CO2, SMILES 是C(=O)=O。这几个写法包含的资讯量 ...

感谢你如此耐心的讲解!

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-25 07:33 , Processed in 0.189641 second(s), 29 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list