ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

分子几何表征:从生成模型到等变神经网络的进阶之路

分子几何表征:从生成模型到等变神经网络的进阶之路 1. 从能生成到懂几何一个被低估的分水岭做分子生成模型这几年我有一个越来越强烈的感受生成能力只是入场券几何表征才是真正的分水岭。早期我们用SMILES字符串跑RNN后来换成分子图跑GNN再后来大家一窝蜂涌向扩散模型。每次模型架构升级我们都会欢呼生成成功率又涨了几个点但真正让模型从玩具变成工具的往往是它在内部对分子几何结构理解的深度——也就是所谓的分子几何表征。为什么这么说因为下游任务根本不吃生成这一套。你想预测一个分子的结合亲和力想知道它在蛋白口袋里的优势构象想计算它在凝聚相中的堆积行为这些任务对模型的要求不是你能不能画出一个合法的分子而是你的内部表征有没有真正捕捉到三维空间里的原子排列、化学键取向、非键相互作用。一个在生成任务上刷到SOTA的模型很可能在性质预测上远不如一个专门为几何感知设计的表征模型。这不是玄学是我在多个项目里反复验证过的结论。这篇文章想聊的正是不止生成这四个字背后的完整逻辑好的分子几何表征到底长什么样为什么生成式框架撑不起这个目标以及在实际项目里我们该如何构建、评估、使用这种表征。适合正在做分子生成、性质预测或者构象分析的读者也适合刚进入AI for Science领域、想搞清楚Geometric Deep Learning和分子建模结合点的同学。先说一个可能会颠覆你认知的事实分子几何表征的核心挑战不在模型容量而在对称性。一个分子在三维空间里旋转、平移它的物理性质完全不变但它的原子坐标全都变了。如果你的表征在分子旋转后就剧烈变化模型就不得不浪费大量容量去学习旋转不变性这件事本身而不是去学习真正的物理规律。这就是为什么这几年等变神经网络Equivariant Neural Network、SE(3)不变表征、以及各种基于三维坐标的预训练方法会集中爆发——它们本质上是在回答同一个问题怎么让模型天生就理解分子的空间对称性而不是靠堆数据硬学。2. 几何表征不是把坐标塞进网络那么简单2.1 一维、二维与三维表征的根本差异我们先把分子表征这件事拆开看。历史上分子表征经历了几个清晰的阶段每个阶段都是对分子信息的一次降维或升维。最早是一维表征典型代表是SMILES字符串、InChI等线性表示法。SMILES的好处是紧凑、易存储、天然适配序列模型但它有一个致命问题同一个分子可以有多个等价SMILES而且SMILES本身不包含任何三维信息连手性中心都只能靠特殊标记去补。用SMILES训练模型等于强迫模型从一行残缺的字符串里去反推分子的物理化学性质信息瓶颈太大了。后来是二维表征也就是分子图Molecular Graph。原子是节点化学键是边节点特征可以是原子类型、电荷、杂化状态边特征可以是键级、共轭性。GNN在这类表征上取得了巨大成功因为它们天然具有排列不变性——无论你把分子图里原子的编号顺序怎么打乱GNN的输出都不变这正好匹配了分子本身的物理对称性。但分子图仍然丢掉了最重要的东西原子在三维空间中的相对位置。顺式/反式异构体在图上完全一样但物理性质可能天差地别这个信息在图表征里是隐式的、甚至根本不存在。再往后就是三维几何表征。这里我们直接把每个原子的三维坐标放进模型输入让模型能看到键长、键角、二面角甚至范德华接触。从信息量上看三维表征毫无疑问是最大的——它包含了二维图和一维序列的所有信息还额外包含了空间构象信息。但问题也随之而来坐标本身是任意坐标系下的数值分子旋转一下坐标全变模型该怎么办2.2 E(3)对称性三维表征绕不过去的坎这就要引入E(3)群的概念了。简单说E(3)群包含了三维空间中的所有旋转、平移和镜像操作。一个分子的能量、偶极矩、极化率所有这些物理量在E(3)变换下都满足特定的变换规则——标量不变矢量跟着转高阶张量有更复杂的变换规律。一个好的几何表征必须让模型的内部状态和输出在这些变换下表现出正确的一致性。如果你用一个普通的MLP去处理原始坐标分子旋转45度后网络内部的隐藏层激活值会完全不同但你应该输出的那个标量性质是稳定不变的。这时候MLP只好靠大量数据去强行学出一个近似不变的映射但接近不变不等于不变而且这种近似非常脆弱——稍微超出训练分布的旋转、稍微复杂的构象变化模型就崩。等变网络如SE(3)-Transformer、EGNN、GemNet等解决的就是这个问题它们把模型内部的特征设计成携带变换规则的数学对象网络每一层都保证输入怎么变换、输出就怎么变换逻辑上锁死了对称性。这样模型不需要浪费容量去学对称性所有参数都在专心学物理化学规律训练效率和数据效率都会高出一大截。这里我想强调一个关键点等变性不是锦上添花它是几何表征的底层约束。如果你要构建一个能用于力场拟合、分子动力学模拟或结合亲和力预测的表征等变性是硬性要求不是可选的高级特性。这也是为什么所有严肃的几何表征工作都必须把等边变换行为放在第一位来设计。3. 为什么生成模型撑不起理想的几何表征3.1 生成目标和表征目标的分叉标题里不止生成的关键含义就是要把生成和表征这两件事从目标层面彻底分开。它们在数学上是两个不同的问题只是常常被笼统地塞进同一个框架里。生成模型的目标是从某个分布中采样出新的、合理的分子。无论你是用VAE、GAN还是扩散模型最终评价标准都是生成出来的分子合法吗多样吗有针对性吗这个目标是采样导向的。为了采样顺利进行模型往往需要把表征空间和采样空间耦合在一起——比如VAE的潜在空间必须是连续同胚的扩散模型必须有一个从噪声到数据的马尔可夫链。这些数学结构限制恰恰是表征学习的大敌。表征学习的目标是让特征空间尽可能忠实地反映分子的几何与物理本质。理想情况下相似几何构型的分子在表征空间里应该相近不同物理性质的分子应该在表征空间里被清晰区分而且这种区分应该线性可解释。但生成模型为了采样的方便会迫使表征空间变形——它优先保证从潜变量能解码出好分子而非潜变量本身有物理意义。我举一个具体的例子。在VAE框架下如果你把分子的三维坐标作为解码目标那潜变量空间必须容忍解码器对坐标的微小扰动不敏感因为坐标噪声在重构损失里通常被均方差惩罚得很轻。但这会导致一个结果两个物理性质差别很大的构象在潜空间里的距离可能非常近因为它们都能解码出合法的分子。这在生成任务里完全没问题但在性质预测任务里这就是灾难——下游模型根本没有足够的分辨率去区分这两类分子。3.2 生成框架简化了几何却牺牲了物理另一个被严重低估的问题是生成框架在构造训练目标时会不可避免地对几何进行可生成化处理而这种处理往往以牺牲物理精度为代价。以扩散模型为例最经典的分子扩散生成框架是把原子坐标当作连续变量逐步加噪再逐步去噪。这个数学过程需要坐标空间具有良好的测度性质——高斯噪声要和坐标系匹配。于是你会不可避免地遇到一个问题分子性怎么定义在去噪过程中模型必须学会猜测这里应该是一个碳原子还是氮原子这个猜测是离散的而坐标扩散是连续的两者之间的耦合非常别扭。为了解决这个问题很多工作的做法是把原子类型从坐标扩散中剥离开单独做离散扩散——这在工程上简化了问题但也等于明确承认生成框架并没有一个自然的几何表征可以同时承载原子类型在哪和原子之间的空间关系这两件事。对比之下纯表征学习就没有这些包袱。你可以直接用等变图网络把分子的三维结构编码成一个不变表征向量然后用这个向量去回归物理性质、去分类作用模式、去对齐分子间的相似性。目标函数里不需要任何采样路径不需要可逆变换不需要重参数化。所有数学设计都可以服务于一个目的把几何信息提炼成最能区分物理差异的表征形式。3.3 一张表格看懂生成与表征的冲突我用一张表来归纳这个分叉方便你对照理解。维度生成模型几何表征模型核心目标从分布中采样新分子提炼几何-物理对应规律空间性质要求连续、可采样、易解码忠实、紧凑、线性可分对称性处理常被采样机制削弱作为底层硬约束评价指标合法性、多样性、定向成功率性质预测误差、表征迁移能力几何信息角色解码目标编码来源最经典的失败模式生成合法但性质不可控表征全面但下游难用你在实际项目中如果发现生成模型做性质预测效果差千万别急着质疑模型容量或数据量大概率就是这两类目标在架构层面打架了。4. 构建更好的分子几何表征三条行之有效的技术路径接下来这部分是实操中的干货。根据我的项目经验目前有三条技术路径被验证在构建更好的分子几何表征这件事上特别有效而且它们之间可以互相组合使用。4.1 路径一把等变性写进网络骨架第一条路径也是最基础的一条直接用等变神经网络作为编码器主干。具体到你代码里的操作就是选择SE(3)-Transformer、EGNN、GemNet-OC这类模型来替代普通的GNN或MLP。以EGNN为例它的核心思想非常优雅节点特征原子类型等通过标准的MLP进行更新但每层消息传递之后模型会显式地根据原子坐标计算相对位移向量利用这些向量来更新坐标特征并且让坐标特征以E(3)等变的方式参与节点特征聚合。换句话说EGNN内部既有一个不变的特征通道也有一个等变的坐标通道两条通道协同更新。在实际使用中我建议你注意两个细节。第一输入特征里不要只放原子类型把原子序数、孤对电子数、形式电荷、杂化态都作为节点特征补充进去这些信息对几何表征的丰富度有很大帮助几乎是无成本的性能提升。第二初始坐标的规范化处理很关键不同分子的尺度差异很大从小分子到配体-蛋白复合物建议在进入模型前做一个居中和尺度归一化让坐标分布的均值归零、方差稳定这能显著提升训练稳定性。从我的实测来看在性质预测任务上EGNN相比普通GNN通常能带来15%-30%的误差下降尤其在偶极矩、极化率这类对空间方向敏感的物理性质上增益几乎是压倒性的。但这个增益不是免费的EGNN的计算复杂度比普通GNN高尤其在分子尺寸较大时你需要对邻居采样或图稀疏化做调整否则显存会先扛不住。4.2 路径二用几何去噪目标做预训练第二条路径是近两年最热门的方向通过自监督的几何去噪目标来预训练一个通用的几何表征模型。这个思路来自扩散模型但目标完全不同——我们不是为了生成分子而是为了让编码器学会什么样的几何结构才是物理合理的。具体操作是这样的你拿大量无标签分子的三维构象可以从实验晶体结构、构象搜索工具生成的构象库中收集在训练时对原子的坐标添加一定程度的噪声扰动然后把带噪坐标原子类型输入编码器让编码器输出一个等变的坐标修正量也就是去噪方向同时编码器学习一个不变的表征。训练目标就是让预测的坐标修正量尽可能接近真实的噪声偏差。这个预训练目标的美妙之处在于它迫使模型理解原子之间的几何约束关系。模型必须学会判断这个键长被拉得太长了这个二面角转到了不该转的角度这本质上就是在学习分子力场的基本规则只是没有显式使用力场参数。当预训练完成后你可以把编码器输出的不变表征拿下来接到任意下游任务上加一个简单的回归头或分类头就能获得非常好的效果。在具体工程实现上我建议参考Uni-Mol框架的设计原则噪声尺度采用多尺度策略模型在不同噪声级别下都要能够重构出正确的分子几何。这个多尺度设计特别重要因为单尺度训练容易让模型只对某一级别的噪声敏感导致表征不够稳健。此外预训练时不要用太小的分子尽量让预训练数据集的分子尺寸分布覆盖下游任务的目标范围否则迁移时会出现明显的尺寸偏移size shift问题。我自己的一个线上项目里用这种几何去噪预训练的表征做药物分子活性预测相比直接用RDKit指纹或SMILES序列特征AUC提升了约8个百分点。这个提升主要来自预训练表征对三维构象差异的敏感性——很多活性差异恰恰由分子能否形成某种特定三维形状决定这个信息在二维指纹里根本不存在。4.3 路径三把表征对齐到物理合理的潜在空间第三条路径比较进阶适合已经能跑通基础管线的团队在表征学习的目标函数中引入物理约束强制潜在空间具有可解释的物理结构。比如你可以在训练性质预测模型时额外加入一个构象一致性的对比学习损失。具体做法是同一个分子的多个不同构象从MD采样或构象搜索获得应该被编码到相近的位置而不同分子的构象应该互相远离。这种对比目标能让表征自动对齐不同构象之间的共享几何模式而不是被构象细节干扰。更进一步你还可以把已知的物理不变量直接嵌入到表征的结构里。举个例子对于二面角描述你可以把分子的手性信息编码成一个标量符号特征叠加到节点特征上让模型区分互变异构体和手性对应体。这些物理先验在生成任务里往往会被忽略但在表征学习里它们几乎免费的——你只是在损失函数或特征构造里加了一行代码却能让模型少走很多弯路。这个方向的注意点是对比学习的负样本选择要非常小心。如果你把一对构象差异很大的同分异构体当作负样本模型会学到分子骨架不同则远离这没错但如果你把一对物理性质几乎相同的构象比如两个相邻的能量极小点也当作负样本模型就会困惑——这实际上是在强迫模型忽略它应该保留的物理相似性。我的建议是负样本最好从不同分子中采样而同一分子的不同构象之间不要用对比损失强行推远可以用一个温和的正则项让它们保持在合理距离内。5. 好的几何表征如何在真实任务里显形理论知识讲完了你可能会问我怎么知道我的几何表征到底好不好这里的关键是好表征不会直接表现在生成指标上而是表现在下游任务里。接下来我用三个我在实际项目中做过的任务来演示评测思路。5.1 任务一QM9上的多目标性质预测QM9是一个经典的小分子性质数据集包含约13万个分子每个分子附带多种量子化学计算的物理性质标签。用几何表征做QM9性质预测几乎是检验表征是否理解几何的试金石。在这个任务里我推荐用HOMO-LUMO能隙和偶极矩作为主要评测指标。前者对分子整体电子结构敏感后者对空间电荷分布敏感。如果你用等变几何表征加一个简单的MLP回归头能隙的MAE通常可以做到40-60 meV左右取决于训练集划分和模型规模这个数字比用2D图网络通常要低20%以上。一个评测的细节QM9官方划分有一个随机化的参考划分但很多论文会用不同的划分导致结果不可直接比。我建议严格使用官方参考划分80962个训练分子并且报告三折交叉验证的均值和标准差——几何表征对训练集划分的敏感性很高单次划分的结果容易误导你对模型真实水平的判断。另外QM9里的分子都很小最多9个重原子如果你的表征在这个简单场景下都无法显著超越2D基线那大概率是表征设计本身的问题而不是下游任务太难。5.2 任务二蛋白-配体结合姿态的区辨能力第二个任务更接近真实药物发现场景给定一个蛋白口袋和一个配体分子判断配体采用不同空间姿态pose时的结合优劣。这个任务考验的是表征对非键相互作用和空间互补性的理解完全不是生成能力能覆盖的。实际操作时我们把蛋白口袋原子集合配体原子坐标作为输入用等变图网络编码整个复合物输出一个标量分数可以用对比学习或排序学习来训练。在测试时对每个配体准备一系列候选姿态——包括正解构象和若干诱饵构象——然后用模型打分看能否把正解排进前几位。这里一个合理的评测指标是Top-1命中率也叫pose selection accuracy以及平均排名倒数。我踩过的坑是蛋白口袋的原子数量动辄上千如果全量建模图网络的显存和计算量会指数级上涨。解决办法是用预计算的空间邻居图截断——只保留配体原子附近10埃范围内的蛋白残基原子超过这个范围的长程相互作用用距离衰减权重近似。这个截断对结果的影响非常小但能使训练时间缩短5-10倍。根据我的实测好的几何表征在这个任务上Top-1命中率能做到60%-75%而用2D指纹做同样的任务只能达到40%甚至更低——差距几乎全来自模型对三维空间关系的感知。5.3 任务三构象生成后的排序与筛选第三个场景是构象生成和排序conformation ranking这个任务对几何表征的要求极高你需要给同一个分子的多个三维构象打分排序找出能量最低的优势构象。这里有个关键技巧如果你直接用生成模型给出的构象做输入表征会学到生成模型的偏好而不是物理能量面。为了避免这个偏差我在项目里会用两种数据混合训练一是从力场如MMFF94优化过的构象集合二是从量子化学计算中获得的高精度构象集合并且让表征同时看到低能构象和高能构象的配对用对比排名损失学习排序能力。最终表征在这个任务上的表现为区分低能构象和高能构象的AUC能够达到0.85以上越好越高平均来看模型能够从100个构象中选出排名前3的低能构象成功率超过80%。我认为这个水平的几何表征已经具备直接用于构象系综生成的筛选器条件可以显著节省下游的QH计算成本。6. 真实项目中踩过的坑希望你别再踩最后这个部分我想毫无保留地分享一些我在做几何表征项目中踩过的坑。这些坑在论文里是看不到的但它们几乎决定了项目的成败。6.1 坑一数据坐标的来源和质量参差很多人在一开始就掉进这个坑用了不同来源的分子坐标混合训练但不同来源的坐标质量差异极大——有的是X射线晶体结构精度高有的是CSD数据库质量层次不齐有的是RDKit用ETKDG生成的构象精度低但覆盖广。模型在这种混合数据上会学到平均化的几何模式既学不到高精度数据的锐利特征又会被低精度数据的噪声拖累。解决方法是分层抽样策略先在高质量晶体结构数据上预训练再用大规模低精度构象数据做领域自适应。我在项目中采取的具体方案是第一阶段用CSD清洗后的约25万晶体结构做几何去噪预训练第二阶段再用RDKit批量生成的构象库做对比学习微调。这个两阶段策略比混合训练的结果稳定得多。6.2 坑二等变网络的计算开销失控等变网络在享受对称性红利的同时计算开销比普通网络大得多。尤其是SE(3)-Transformer它要对每个边都做张量积运算边数一多内存直接爆炸。这不是调参能解决的而是架构选择的必然结果。我的经验是在项目初期先不要用最复杂的等变层。建议先用EGNN这种相对轻量的模型验证数据管线、loss设计和下游评测流程确认一切顺畅后再考虑升级到更强大的架构。升级时也要配合点云稀疏化策略——比如用FPSFarthest Point Sampling把大分子系统抽稀到核心原子集然后通过上采样恢复细粒度信息。这样既保留了等变几何处理能力又把复杂度控制在可训练的范围内。6.3 坑三迁移到周期体系时表征失效这个坑尤其隐蔽。你的几何表征在小分子体系上表现极好可一旦用于材料或晶体体系周期性边界条件立刻失效。原因是你在小分子场景里学到的表征假设了有限原子集合、无周期性但晶体体系里的原子是有周期性重复的分子内相互作用和分子间相互作用在表征里没有清晰区分。如果你要做周期体系相关的工作有几个调整方向一是把晶胞参数a、b、c、α、β、γ作为额外输入特征补充给模型二是在邻居构建时考虑周期性镜像原子minimum image convention三是同时提供分子内连接关系通过周期图索引和分子间距离信息让模型区分这两种相互作用模式。这些调整逻辑简单但很多人因为根本没想到这一步而在迁移时吃大亏。6.4 坑四过度关注表征指标忽视了最终任务最后这个坑最普遍也最致命团队花大量精力优化表征质量指标——比如对比学习损失、重构误差、等变一致性但最后在下游真实任务上没有提升。我在管理多个项目时发现表征指标和下游任务指标之间经常存在明显的GAP甚至有些优化表征的手段会损害下游任务性能。根本原因很简单下游任务可能只依赖表征的某一小部分信息维度而你优化的表征损失分散在了所有信息维度上。优化表征损失等于在参数空间里做一个全局调整但这个调整的方向未必与下游任务所需的方向一致。解决的办法是不要让表征学习完全脱离下游任务自嗨至少保留一个下游任务的代理任务作为早停和模型选择的依据并且在表征预训练的同时周期性插入下游评测——这不是推荐选项而是必须选项。7. 从模型到应用几何表征该怎么嵌入你的现有管线讲完了踩坑经验我来聊聊更实际的问题如果你的项目里已经有了一套现成的分子处理管线该怎么把更好的几何表征嵌进去。这里有两个策略一个激进一个保守分别适用于不同阶段。7.1 策略一全套替换——直接换表征主干如果你的项目还处于早期阶段没有很深的既有技术债我建议直接以几何表征为轴心重构管线。具体来说是四步第一步构建统一的三维坐标数据管线确保每个分子都能拿到合理的起始构象第二步选择等变网络作为编码器并配合几何去噪预训练获得通用表征第三步把下游任务head接到表征输出上用端到端的方式微调第四步在不同下游任务之间共享同一套预训练表征通过轻量微调来适配。这套方案的成本是初期开发量大但长期收益极高。尤其当你需要同时解决多个任务——例如既要预测溶解度、又要预测毒性、还要做构象排序——共享一个预训练几何表征会极大减少重复训练的开销而且每一个任务的微调数据都会反过来增强通用表征的质量形成正向飞轮。7.2 策略二特征拼接——最小侵入式集成如果你的项目已经上线有稳定的2D指纹或GNN管线不敢轻易替换主体那么最小侵入式方案是把几何表征输出作为额外特征拼接到现有特征里。具体操作是用预训练好的几何编码器对分子编码输出一个固定维度的表征向量通常128-256维然后把这个向量和现有指纹特征如ECFP4/ECFP6拼接在一起喂给下游的GBDT或浅层MLP。这个方案的实际增益我见过很多在活性预测任务上仅靠添加几何表征特征AUC提升1-2个百分点是常态在ADMET性质预测上某些任务可以提升3-5个百分点。这个收益来自几何表征对现有指纹特征空间之外的信息补充——尤其是对三维构象依赖性的性质2D指纹完全无感而几何表征天生敏锐。但有一个注意点直接拼接会导致特征维度膨胀且几何表征特征域和指纹特征域的尺度差异很大你用L2正则或树模型还好如果用线性模型就必须做特征标准化。我的做法是拼接前对几何表征向量做L2归一化然后逐年法则做个PCA降维到32-64维再加进现有特征空间——既保留了主要信息又不干扰原有特征的主导地位。7.3 一个完整的端到端示例配置最后给一个可直接参考的配置模板这是我最近一个项目里实际用过的组合可以作为你的起点数据QM9 ZINC20构象搜索生成的多种构象预处理RDKit生成3D构象ETKDG v2做质心居中、尺度归一化编码器EGNN4层隐藏维度128邻居采样数16预训练几何去噪目标噪声尺度σ从0.02到0.6多尺度采样对比学习同一分子不同构象为正样本对不同分子为负样本对下游head: 性质回归用2层MLP128→64→1分类任务用2层MLP128→64→2优化器AdamW学习率1e-4预训练300 epoch下游微调50 epoch关键超参批量大小32梯度裁剪1.0EMA指数移动平均因子0.999这个配置在NVIDIA A100上的训练时间大约是预训练12小时微调单个下游任务不超过1小时。运行起来后你可以用这个配置作为基准逐步替换更强的编码器或者更复杂的训练目标观察下游任务的变化。EEUU我在实际项目中体会到把几何表征当作基础设施来建设之后的每个下游任务都能享受红利而如果只是把它当作某个模型的附属品它永远只能发挥一小部分价值。希望这篇文章能帮你少走一些弯路尽快搭起属于你自己的分子几何表征管线。
返回列表