作者 | 庞超 编辑 | 李仲深
今天给大家介绍的是意大利比萨大学的Marco Podda等人在PMLR上发表的文章“A Deep Generative Model for Fragment-Based Molecule Generation”。在文章中,作者受基于片段的药物设计的启发,设计了一种使用分子片段的语言模型。该模型使用分子片段作为基本单位,而不是原子,从而解决了传统基于分子文本表示方法中的两个问题:产生无效分子和重复分子。为了提高产生分子的独特性,作者提出了一种基于频率的掩蔽策略,它有助于产生具有低频片段的分子。实验表明,该模型在很大程度上优于其他基于分子文本表示的模型,达到了基于图表示分子方法最先进的性能。此外,此方法生成的分子即使在没有明确监督时,仍然表现出类似于训练样本中的分子性质。

一、研究背景
分子生成是化学信息学中一个具有挑战性的开放问题。目前,应对这一挑战的深度生成方法以分子的表示方式不同,可以分为两大类。第一类模型使用分子的字符串表示,例如简化分子线性输入规范(Simplified molecular input line entry specification,SMILES),其中原子和化学键被表示为字符。通过这种表示,可以使用递归神经网络(Recurrent Neural Network,RNN)体系结构来训练基于字符的语言模型。第二类模型则直接基于分子的图表示,使用RNN顺序编码或图神经网络(Graph Neural Network,GNN)以排列不变的方式编码。这两种方法各有其优缺点:例如,基于图的模型在规则上更具表现力。然而,它们很难训练,而且效率较低。而基于字符串表示的方法训练与采样方面效率更高,但在生成时却往往产生大量化学无效与重复的分子。在本文中,作者解决了基于字符串表示的生成模型的两个主要缺点。避免了生成化学无效的分子和重复分子。
二、模型与方法
2.1 数据集
作者在ZINC数据集上进行了实验,该数据由250K类药物化合物组成。为了进一步评估LFM的影响,作者还使用了Pub Chem Bio Assay(PCBA)数据集测试了模型变体,该数据集包括约440k小分子。数据集统计数据见表1。

表1. 数据集统计数据
2.2 分子片段化
给定一个分子数据集,第一步需要将它们分解成有序的片段序列。为此,作者使用了Breaking of Retrosynthetically Interesting Chemical Substructure(BRICS)算法,它可以断开与一组化学反应相匹配的化学键。“Dummy”原子(原子序数为0)附着在断裂位点的每一端,标记两个碎片可以连接在一起的位置。BRICS断裂规则旨在保留有价值和功能的结构。算法按顺序扫描SMILES编码的原子。在扫描过程中,一旦遇到可断裂的键,分子就会在该键处断裂成两个片段。

图1. 左侧为分子片段化的实例,右侧为算法的伪代码
2.3 片段嵌入
作者将上一步提取出的一系列片段视为“句子”,构建了一个以片段作为“单词”的词汇表。作者通过将发生在相似上下文中的片段映射到嵌入空间中的相似区域来嵌入每个片段。给定一个SMILES编码的片段序列

,极小化下面的目标函数:

其中w是上下文窗口的大小,si是目标片段,si+j是上下文片段。在上式中,P为负采样的skip-gram模型。训练嵌入后,每个片段序列表示为

,其中xi是skip-gram嵌入矩阵的列向量。
2.4 模型训练
与其他语言模型相似,作者采用了一种编码器-解码器架构,两者之间有生成模型。体系结构和训练过程如下。
编码器 为了编码片段序列,作者使用了门控递归单元(GRU),将每个嵌入xi转换为隐表示hi=GRU(xi,hi-1)。如下所示:

其中h0是零向量。在上述公式中,ri是重置门向量,ui是更新门向量,W和U是权重矩阵。序列中最后一个片段的隐藏表示,称之为h,用作整个序列的潜在表示。编码器被训练以最小化以下Kullback-Leibler(KL)散度:

解码器 解码器是具有GRU单元的递归模型。它的隐藏状态是通过应用重新参数化技巧来初始化的。与编码器不同,解码器还计算与序列中的下一个元素相关联的输出概率:

在训练期间,作者使用强制教学,并将真实片段作为以下步骤的输入。解码器的训练目标是使片段序列的负对数似然最小化:

模型损失 本文的语言模型是在片段序列D的数据集上以端到端的方式训练的。总体损失是每个片段序列的编码器和解码器损失之和。与VAE框架相似,解码器损失可以看作是输入序列的重构误差,而编码器损失作为正则化,迫使编码分布为高斯分布。图2a概述了这一架构。
2.5 模型生成
采样一个潜在向量z~N(0,I)用作解码器的初始状态。解码器的第一个输入是SOS token。Token和递归状态通过GRU、Linear和Softmax层来产生下一个片段的输出概率。作者使用贪心策略并对最有可能的片段进行采样,这将成为下一个解码步骤的输入。每当采样EOS token时,生成过程就会中断。得到的片段序列最终被重新组装成一个分子。图2b说明了生成过程。

图2. 训练与生成过程
2.6 低频掩蔽
在分子中,少量的片段出现频率很高,而大量的片段却很少出现。在生成过程中取样取到低频片段的概率很低。为了解决这一问题,作者制定了一种策略,称之为低频掩蔽(LFM)。在训练过程中,作者用一个由其频率和连接数组成的token来屏蔽频率低于一定阈值k的碎片。在采样过程中,每当采样到掩蔽token时,就将其替换为从相应的一组掩蔽片段中以均匀概率采样的片段。这一策略具有双重目的。首先,它大大减少了训练过程中的词汇量,加快了计算速度。其次,它通过间接提高不频繁片段的概率来促进分子多样性,同时在采样过程中注入更多的随机性。
三、实验结果
实验的主要结果总结在表2中,模型在ZINC数据中获得了完美的有效性分数,大大优于基于LM的模型,并且在其他方面也表现出相当好的性能。在PCBA数据集上也同样如此。由于此方法的两个变体都优于基于LM的方法,因此可以安全地认为,基于片段的方法可以有效地提高效度。图3展示了从ZINC数据集与模型生成的分子中随机提取的30个分子,用于可视化比较。

表2. 文中模型与其他模型的性能比较

图3. 从ZINC数据集与模型生成的分子中随机提取的30个分子
评估生成模型的另一个基本方面是确定生成的样本在多大程度上类似于训练数据。图4展示了模型在ZINC和PCBA数据集上的生成样本与训练样本的几个结构特征和分子特性的分布。结构特征包括原子类型数、键型数和环型数。分子性质特征包括醇-水分配系数(logP)、药物相似性定量估计(QED)和综合可合成性评分(SAS)。

图4. 结构特征分布图与分子性质特征分布图
四、总结
在本文中,作者解决了基于LM的分子生成模型的两个主要问题,即产生化学无效化合物和重复化合物。关于第一个问题,作者介绍了基于片段的分子生成语言模型,它基于片段而不是原子。关于第二个问题,作者提出了一种促进分子多样性的低频掩蔽策略。实验表明,此工作可以提高生成分子的有效性和唯一性。
代码
https://github.com/marcopodda/fragment-based-dgm
参考文献
Podda, M., Bacciu, D. & Micheli,A.. (2020). A Deep Generative Model for Fragment-Based Molecule Generation.Proceedings of the Twenty Third International Conference on ArtificialIntelligence and Statistics, in PMLR 108:2240-2250