J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

621次阅读
没有评论

今天为大家介绍的是来自Charles J. McGill团队的一篇论文。深度学习在分子性质预测中有了广泛的应用。目前非专家用户对开源、多功能软件解决方案有着急切的需求。定向消息传递神经网络(D-MPNNs)是一种有效的深度学习方法,它在多种性质预测任务中表现出色。因此作者发布了他们的方法,Chemprop,它实现了D-MPNN架构,并且提供了简单、易用、快速访问机器学习分子性质的方法。

J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

机器学习,特别是深度学习在化学领域有着广泛的应用。研究范围涵盖了从预测分子的物理化学和药理特性,到设计具有特定属性的分子或材料,探索化学合成路径,以及预测对化学分析重要的特性,如红外光谱、紫外/可见光谱或质谱等。为了从分子中提取特征并预测分子属性,研究人员开发了许多分子表示和模型架构的组合。分子可以被表示为图形、字符串、预计算的特征向量或原子坐标集,并使用图卷积神经网络、transformer或前馈神经网络来处理,从而训练预测模型。尽管早期的研究重点是手工特征或简单的指纹方法与核回归或神经网络的结合,但目前的先进技术已经转向可以端到端训练的模型,这些模型直接学习提取自己的特征。

文章的重点是介绍一种名为Chemprop的图卷积神经网络,这是一种从Gilmer等人的开创性工作衍生出来的定向消息传递算法。Chemprop在早期版本之后得到了显著的发展,现在包括了众多新特性。例如,Chemprop现在能够预测包含多个分子的系统的属性,如溶质/溶剂组合或有无溶剂的反应。它可以训练针对分子目标、光谱或原子/键级目标,并输出潜在表示,以分析学习到的特征嵌入。Chemprop还包括了一些常见的不确定性度量方法,如集成、均值-方差估计等。

模型结构

J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

图 1

Chemprop(图1)包含四个主要模块:1.局部特征编码模块:这个模块负责对分子的局部特征进行编码。局部特征是指分子中每个原子或原子团的具体特征,如电荷、原子类型等。2.定向消息传递神经网络(D-MPNN):这个部分用于从局部特征中学习原子嵌入。所谓原子嵌入,是指将原子的化学性质转换成数值形式的表示,这样计算机就能更好地理解和处理这些化学信息。D-MPNN是图卷积神经网络(GCNN)的一种,它根据分子局部特征更新图中顶点和边的隐藏表示。3.聚合函数:该函数的作用是将原子嵌入汇总成分子嵌入。分子嵌入是指将整个分子的化学性质转化为一种数值形式的总体表示。4.标准前馈神经网络(FFN):这个网络负责将分子嵌入转换为目标属性。目标属性可能包括分子的物理化学性质、药理性质等。

Chemprop的特点

J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

表 1

表1列出了基于Chemprop的一系列研究案例。这些案例展示了Chemprop在预测各种化学性质方面的多功能性和适用性,同时也突出了其易用性。使用Chemprop构建和测试模型可以通过命令行上的单行指令(或几行Python代码)以及用户提供的CSV文件来实现。接下来,论文讨论了自Chemprop首次发布以来引入的一些特殊选项。

额外特征的输入:Chemprop能够接受分子级、原子级或键级的附加特征作为输入。虽然Chemprop常常能够仅凭SMILES(一种化合物的文本表示法)生成准确的模型,但研究表明,添加额外信息作为附加特征可以进一步提高性能。用户可以通过在数据文件中添加关键词和路径来提供他们的自定义附加特征。

多分子模型:Chemprop还能够针对包含多个分子输入的数据集进行训练。例如,在需要预测与溶解相关的属性时,模型的输入需要同时包括溶质和溶剂。用户可以向Chemprop提供多个分子作为输入。默认情况下,Chemprop会为每个分子单独训练一个D-MPNN,但如果指定了–mpn_shared选项,所有分子将使用同一个D-MPNN。不同分子的嵌入在进入前馈神经网络(FFN)之前会被拼接起来。需要注意的是,Chemprop当前处理多分子输入的方式并不保证输入分子的排列不变性。

J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

图 2

反应支持:Chemprop支持原子映射反应的输入,即通过“≫”符号连接的反应物和产物SMILES对(如图2)。反应物和产物对被转换为一个单一的伪分子,即反应的缩合图(CGR),然后传递给常规的D-MPNN模块。一般来说,输入反应与分子只影响图对象及其初始特征的设置,而不影响架构的其他部分。反应的图与分子的图具有不同的边集。为了构建CGR伪分子,模型将反应物和产物中的原子集和键集合并。一旦构建完成,CGR就像分子图一样通过D-MPNN和其他模型架构组件进行处理。此外,Chemprop还可以接受额外的分子对象作为输入(例如溶剂、试剂等),类似于多分子模型中的处理方式。反应D-MPNN和分子D-MPNN的输出在原子聚合后、在进入FFN之前被拼接起来。

光谱数据支持:Chemprop支持对分子的全光谱属性进行预测。例如,它可以用于红外吸收光谱。目标光谱数据是由一系列在固定波段位置的强度值组成的数组。Chemprop采用了光谱信息差异作为损失函数。与传统的每个波段独立处理不同,这种方法考虑了整个光谱的偏差。

潜在表示:图神经网络使得从分子图直接学习分子表示和性质成为可能。如前文所述,学习到的节点表示在信息传递阶段后被聚合成分子级表示,称为“学习到的指纹”。这个嵌入接着被送入前馈神经网络(FFN)。在FFN中,考虑最后的隐藏表示,称为“ffn嵌入”。这些向量都是关于特定训练模型的分子的潜在表示。分子的潜在表示可用于数据聚类或作为其他模型中的附加特征。

损失函数选项:Chemprop可以根据多种常见的损失函数训练模型。可用的损失函数取决于数据集类型(回归、分类、多类或光谱)。回归模型可以使用均方误差(MSE)、有界MSE(允许目标为不等式)或基于预测不确定性分布的负对数似然(NLL)。分类任务默认使用二元交叉熵损失,并有额外的MCC相关系数和Dirichlet选项。光谱数据训练有光谱信息差异(SID)和一阶Wasserstein距离两种选项。损失函数必须是可微的,因为它们用于计算更新模型参数的梯度,但Chemprop还提供了几种非可微度量用于模型评估。

迁移学习:迁移学习是一种通用策略,通过利用一个模型的训练信息来指导和改进相关模型的训练。这种策略通常用于将大数据集的预训练模型信息转移到小数据集的模型上,以提高小数据集模型的性能。最简单的迁移学习方法是将一个模型的预测或潜在表示作为额外特征提供给另一个模型。在Chemprop中,可以采用不同策略将以前训练模型的学习参数迁移到新模型上,如图3所示。可以使用预训练模型来初始化新模型,并在训练中正常更新转移的权重。或者,可以冻结转移模型的参数,使其在训练过程中保持不变。冻结参数通常包括D-MPNN权重,但也可以指定包括一些FFN层。

J. Chem. Inf. Model. | Chemprop一个用于化学性质预测的机器学习软件包

图 3

超参数优化:Chemprop提供了一个命令行工具,用于简单地启动超参数优化任务。可以通过命令行参数指定超参数任务的选项,如进行多少次试验,以及在搜索中包括哪些超参数。优化过程首先使用随机抽样的试验,然后通过树结构算法进行有针对性的抽样。超参数优化通常是模型训练中最消耗资源的步骤。为了充分搜索大型参数空间,需要大量的试验。Chemprop支持多个超参数优化实例的并行操作,这样就不需要连续进行所有试验,从而显著减少了进行优化所需的时间。

不确定性工具:Chemprop包含了多种流行的不确定性估计、校准和评估工具。估计方法包括深度集成、dropout、均值-方差估计(MVE)等。在估计模型预测的不确定性后,校准这些不确定性通常有助于提高新预测的性能。Chemprop为回归任务提供了四种校准方法(z-scaling、t-scaling、Zelikman’s CRUDE和MVE加权)和分类任务的两种方法(single-parameter Platt scaling和 isotonic regression)。除了标准的评估预测指标(如RMSE、MAE等)外,Chemprop还包括一些专门用于评估不确定性估计质量的指标,如负对数似然等。用于评估预测的任何有效分类或多类指标也可用于评估不确定性。

原子/键级目标:Chemprop支持多任务约束的D-MPNN架构,用于预测原子和键级属性,如电荷密度或键长。这种模型允许D-MPNN同时训练多个原子和键属性,但与分子属性目标不同,它们不共享单一的FFN。用户可以使用基于注意力的约束方法来确保预测的原子或键属性总和为指定的分子净值,如分子的总电荷。

编译 | 曾全晨

审稿 | 王建民

参考资料

Heid, E., Greenman, K. P., Chung, Y., Li, S. C., Graff, D. E., Vermeire, F. H., … & McGill, C. J. (2023). Chemprop: A machine learning package for chemical property prediction. Journal of Chemical Information and Modeling.

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy