基于改进Attention Mask编解码器CPI的研究
2022-03-16李大舟陈思思于锦涛
李大舟,陈思思,高 巍,于锦涛
(沈阳化工大学 计算机科学与技术学院,辽宁 沈阳 110142)
0 引 言
近年来,药物发现的技术和水平在不断进步,促进了生物制剂技术和生物制药开发的不断发展。药物发现是人类发现潜在新型药物的过程,一般是通过将化合物库、天然物质或提取物的合成小分子在完整细胞或整个生物体上进行表型筛选,从而识别在过程中具有理想治疗效果的物质[1]。由于药物发现的进步,制成的药剂使得许多的疾病得以预防和治疗。然而,由于目前医学水平的限制,仍有许多疾病无法得以攻克,并且不断有新型的病症出现,所以进行新型药物的研究和开发的需求十分迫切。
药物中包含了特定的化合物分子,人体内的大部分化学反应都有蛋白质的参与,因此,掌握化合物-蛋白质相互作用(compound-protein Interaction,CPIs)在药物发现上有着重要的作用,研究人员可以通过CPI识别筛选出有效的化合物,并且可以了解药物产生副作用的原因。然而,通过生物实验的方法来确定CPI十分耗时且费用高昂[2]。人类已知的蛋白质类型和化合物类型众多,若通过生物实验的方法来一一验证它们之间是否存在相互作用,这几乎很难完成的。因此,人们提出通过计算预测方法辅助CPI的研究,让计算机来分析数据并进行预测,进而提高药物发现的速度。
随着人工智能的快速发展,机器学习(machine learning)已经应用于生活中的不同领域。使用传统机器学习识别CPI的研究在不断进步。2004年,Bredel和Jacoby[3]提出了一种从化学基因组学角度开发的预测方法,在统一的模型中同时考虑化合物和蛋白质的信息。在此之后,各种基于此想法的CPI预测模型不断被提出。例如,在2008年,Jacob和Vert[4]利用化学结构和蛋白质家族之间的张量积作为特征,应用成对核的支持向量机来预测CPI。在2009年,Bleakley和Yamanishi[5]提出二部局部模型(BLM),利用化学结构和蛋白质的氨基酸序列之间的相似性度量,应用具有已知相互作用的支持向量机来预测CPI。为了降低化学基因组学空间的维度,在2012年,Cheng[6]提出使用特征选择技术,使用选择后的特征训练支持向量机。在2013年,Tabei和Yamanishi[7]提出使用哈希算法改进线性支持向量机的预测性能,一次获得化合物-蛋白质对的指纹。
传统的机器学习往往由多个独立的模块组成,需要多个处理步骤,并且每一步的结果会影响下一步骤的好坏,而端到端的深度学习模型可以自动学习特征,且拥有学习海量数据的能力和强大的拟合能力,只需在输入端输入原始数据,模型自动在中间层提取数据的特征,最后在输出端得到预测结果。在2016年,Kipf等人[8]提出图神经网络(graph convolutional network,GCN),该网络能够处理具有广义拓扑图结构的数据,目前主要应用于图分类[9]、文本分类[10]、推荐系统[11]、疾病预测[12]等。在2018年,Öztürk等人[13]提出DeepDTA模型,利用卷积神经网络(convolutional neural network,CNN)提取化合物和蛋白质的特征,然后将两个特征向量拼接起来,经过全连接层输出CPI二分类结果。在2019年,Öztürk等人[14]提出WideDTA模型,该模型类似于DeepDTA模型,不同之处是利用了两个额外的特征以改善模型的性能,两个特征分别是配体最大公共结构(LMCS)和蛋白质基序和结构域(PDM)。同年,Tsubaki等人[15]和Nguyen[16]分别提出CPI-GNN模型和GraphDTA模型,分别使用图神经网络(graph neural network,GNN)和图卷积网络(graph convolutional network,GCN)学习化合物分子图的表示。在2019年,Schwaller等人[17]提出Transformer可用于化学反应预测,但是,仍局限于seq2seq任务。2019年,Yang等人[18]提出了XLNET模型,其基于自回归(autoregressive,AR)语言模型实现了新的双向编码,考虑到在训练过程中屏蔽的单词与未屏蔽的单词之间的关系。受XLNET在两个序列之间获得特征的强大能力的启发,该文提出基于改进Attention Mask编解码器模型,将化合物和蛋白质当作两种类型的序列输入到该模型中,最终得到化合物和蛋白质是否相互作用的预测结果。
1 算法设计
该文提出的基于改进Attention Mask编解码器的化合物与蛋白质预测模型的主体结构如图1所示。
图1 模型的基本框架
首先对原始化合物数据进行处理,得到原子矩阵和邻接矩阵,然后根据关系矩阵得到化合物的分子表示矩阵;同时对原始蛋白质数据的氨基酸序列进行处理,使用Item2vec技术得到蛋白质嵌入矩阵;将蛋白质嵌入矩阵输入到编码器,最后将化合物和经编码器处理的蛋白质表示矩阵输入到解码器中,得到相互作用的向量,经过线性变换,最终得到化合物和蛋白质是否相互作用的预测结果。
1.1 原始数据处理
1.1.1 蛋白质数据处理
蛋白质是构成细胞的基本有机物,氨基酸脱水缩合组成多肽链,多肽链经过折叠后组成的具有空间结构的物质就是蛋白质。蛋白质序列可以通过其物理性质或其氨基酸序列进行编码表示[19]。文中蛋白质原始数据表现形式为氨基酸首字母缩写字符串,根据生物信息学信息可知,蛋白质序列由20种基本氨基酸组成,部分氨基酸英文名、中文名称和首字母缩写实例如人免疫球蛋白,其蛋白质氨基酸序列表示为“MEFGLSWVFLVAILEGVQCEVQLVESGGGLVQPGGSLRL SCAASGFTFSSHWMTWVRQTPGKRLEWVANVKQD GSARYYADSVRGRFTISRDNAKNSLYLQMDSLRADD TAVYYCARSTGIDYWGQGTLVTVSS”。
Item2vec是由Barkan[20]提出的一种用于学习和描述复杂句法和语义单词关系的分布式向量表示技术,借鉴于Word2vec[21]的skip-gram with sampling (SGNS)的思路,将其运用于基于物品的协同过滤(item-based CF)上。Item2vec把原来蛋白质数据的高维稀疏的表示方式映射到低维稠密的向量空间中,然后用这个低维向量来表示该蛋白质,对于大量的蛋白质序列数据,可以通过Item2vec学习蛋白质序列的嵌入式表示,大大简化下游建模。
基于前人的工作,该文将UniProt[22]中的人类蛋白质氨基酸序列进行预处理,作为一个语料库,然后使用Item2vec训练语料,设置蛋白质嵌入向量维度为128维,经过20轮迭代训练了蛋白质嵌入模型。例如人免疫球蛋白中氨基酸序列长度为132,将其带入训练后的蛋白质嵌入模型中,通过嵌入算法将每一个氨基酸转换为向量,对应一个长度为128的向量,最终人免疫球蛋白表示为大小为(132,128)的矩阵形式。
PCA是由Pearson[23]提出的一种统计方法,主要思想是将原始数据沿最大方差方向投影,得到原始数据的低维特征表示,从而实现数据的降维。通过PCA方法得到蛋白质嵌入向量实现,实现蛋白质特征维度的转变,化合物的特征维度变换同理。以人免疫球蛋白为例,输入的表示矩阵大小为(132,128),经PCA处理后的表示矩阵大小为(132,64)。
1.1.2 化合物数据处理
化合物是由两种或两种以上的元素组成的纯净物。简化分子线性输入规范(simplified molecular-input line-entry system,SMILES)是一种用于输入和表示分子的线性符号,使用ASCII字符串来描述分子结构。文中化合物原始数据表现形式为SMILES字符串,例如吩噻嗪,其SMILES格式为C1=CC=C2SC3C=CC=CC3NC2=C1。依据化学特性划分原子特征,原子特征列表如表1所示,每种原子的特征可以使用34维的向量表示。
表1 原子特征列表
续表1
RDKit是开源化学信息学与机器学习的工具包,支持机器学习方面的分子描述符的产生。该文通过使用RDKit封装的函数对SMILES格式的化合物数据进行读取和处理,得到化合物的原子矩阵和带自环的邻接矩阵,然后利用关系矩阵,得到分子的矩阵表示。
1.2 改进Attention Mask编解码器架构
该文提出的模型沿用了经典的Encoder-Decoder结构,使用到并行化计算的自注意力机制,极大地缩短了训练时间。该整体架构如图2所示,其中编码器部分主要由多头自注意力层和前馈神经网络层组成,解码器部分主要由Attention Mask层、编码器-解码器注意力层和前馈神经网络层组成。
图2 编-解码器架构
1.2.1 编码器
编码器的结构如图2左侧虚线框内所示,由3个编码器块堆叠而成,每一个编码器块都由两个子层组成,并且每一个子层之间都使用了残差连接和层归一化操作。
编码器的第一个子层是多头自注意力层。自注意力的本质是通过当前词来引入上下文的信息,以此增强对当前词的表示。首先根据输入的化合物的原子序列,通过线性变换得到Q、K、V的向量表示,然后根据公式1计算注意力值。
(1)
多头自注意力层是包括了多个按比例缩放的自注意力层,可以在不改变参数量的情况下增强注意力的表现力,扩展模型专注不同位置的能力。多头自注意力是对Q、K、V进行分组计算注意力值,如公式2所示,然后拼接所有注意力头,计算过程如公式3所示。
(2)
MultiHead(Q,K,V)=Concat(head1,…,headn)Wo
(3)
编码器的第二个子层是前馈神经网络层。前馈神经网络层(feed forward layer,FFL)是由两层全连接神经网络组成的,选择ReLU作为激活函数,如公式4所示。该网络层对注意力的输出进行空间交换,增加了模型的表现能力。
FFN=Max(0,X*W4+b4)W5+b5
(4)
式中,X表示经多头自注意力层的输出矩阵,W4和W5表示权重矩阵,b4和b5表示网络的偏置。
由于网络不断加深,数据的分布也在不断地发生变化,同时可能会带来梯度消失或爆炸等问题。加入残差连接可以从一定程度上缓解因为梯度爆炸导致的网络退化问题,而加入层归一化可以保证数据的稳定分布,同时可以加速模型的优化速度。残差连接和层归一化操作如公式5所示。
Output=LN(X+(SubLayer(X)))
(5)
式中,X表示每个子层的输出,SubLayer()表示子层本身的输出,LN表示Layer Normalization,Layer Normalization的计算公式如下:
(6)
式中,μ、σ分别表示均值和方差,α表示缩放参数,β表示平移参数。
1.2.2 解码器
编码器的结构如图2右侧虚线框内所示,由3个解码器块堆叠而成,每一个解码器块都由三个子层组成,与编码层一样,每一个子层之间同样使用了残差连接和层归一化操作。
解码器的第一个子层是改进的Attention Mask层。传统的自回归模型的缺点是不能同时利用上文或者下文的信息,而传统的自编码模型的缺点是会导致预训练阶段和微调阶段出现不一致的问题。改进的Attention Mask层部分避免了二者的缺点,在传统的自回归模型的模式下,引入全排列语言模型(permutation language modeling,PLM),保持当前词的位置不变,对文本中的其他词进行重新编排,使得当前中心词的下文也有可能出现在中心词的上文中,然后将句尾的一定量的词进行遮掩,使用自回归方式预测被遮掩的词。全排列语言模型的优化目标最大似然化概率如公式7所示。
(7)
式中,T表示序列长度,ZT表示所有可能出现的排列序列,zt表示第t个元素。例如存在一个长度为T的序列,从序列的所有可能的排列序列中随机采样一个,然后通过计算来分解联合概率成条件概率,并加权求和得到预测当前词概率最大的参数θ,由此捕获双向的语境。具体的PLM操作是通过双流自注意力机制实现的,双流自注意力机制由内容流注意力机制和查询流注意力机制组成,同时引入了两个隐状态,分别是内容隐状态hzt和查询隐状态gzt。双流注意力机制的计算过程如公式8和公式9所示。
(8)
(9)
式8中,上标m表示层数,Q值、K值和V值分别代表注意力机制中的查询向量、键向量和值向量,zt表示z∈ZT的前t-1个元素。
例如原本输入的句子是“1,2,3,4”,若经过PLM操作后的排列序列为“3,2,4,1”,表明在预测“2”的时候,可以看到上文的“3”的信息;当预测“4”的时候,可以看到上文“3”和“2”的信息,并以此类推。内容流和查询流掩码矩阵如图3(c)右图所示,通过掩码矩阵,将句子改成随机的排列组合,实现同时利用上下文信息预测当前词。
图3 双流自注意力机制计算过程图示
解码器的第二个子层是编码器-解码器注意力层,它的输入由两部分构成,分别是掩码多头注意力层的输出Q和编码器的输出K、V,通过注意力机制增强对当前词的表示,并提取编码器和解码器间的交互信息。
解码器的第三个子层是前馈神经网络层,其工作原理与编码器中的前馈神经网络层一样。该子层的输入为编码器-解码器注意力层的输出。最后该层的输出是化合物和蛋白质相互作用的特征向量,将其经过softmax函数,最终得到化合物和蛋白质是否相互作用的概率。
2 实验设计
2.1 实验环境
本实验在windows10系统下进行,使用Intel@i5-8265U作为计算单元,内存为8 GB。模型使用Pytorch框架进行搭建,版本为1.6.0+cu101。构建模型所用的代码使用到RDKit库。
2.2 数据集
文中用于训练Item2vec模型的蛋白质数据来自于UniProt蛋白质数据库[22]。选取UniProt蛋白质数据库中Swiss-Prot子库里的所有人类蛋白质序列作为一个语料库,源数据格式如表3所示,总计20 413条,提取蛋白质的氨基酸序列数据,使用该数据对Item2vec模型进行预训练,学习蛋白质的嵌入式表示。
文中化合物和蛋白质数据主要来源于Lifan[24]构建的GPCR标签反转数据集,据实验验证,标记反转实验可以有效地评估隐藏的配体偏差对模型的影响,降低基于化学基因组的化合物和蛋白质相互作用任务的常见风险。GPCR数据集主要有化合物信息、蛋白质信息和表示是否相互作用的布尔值,数据集包含了356种蛋白质和5 459种化合物的15 343种作用对。
对于GPCR组,随机选择500个配体,并将所有涉及这些配体的CPI负样本汇集在一起。另外,选择了500个配体,并将所有相关正样本汇集在一起。在实验设计后,最终建立了1 537个相互作用的GPCR测试集,剩余的数据集被用来确定超参数。
2.3 评价指标
实验中,采用二分类交叉熵损失函数、ROC曲线下面积(AUC)以及精度-召回率曲线(PRC)作为模型的评估指标。
二分类交叉熵(Binary Cross Entropy):是多分类softmax_cross_entropy的一种特殊情况,当只有两类标签时,即0或者1,使用逻辑回归的损失函数,如公式10所示。
(10)
ROC(Receiver Operating Characteristic):以假正例率(FPR)为X轴、真正例率(TPR)为Y轴绘制的反映模型敏感性和精确性的趋势走向的曲线。
AUC(Area Under Curve):ROC曲线下的面积。若分类器的性能越好,则AUC值越接近1。
PRC(Precision Recall Curve):以查全率(Recall)为X轴、查准率(Precision)为Y轴绘制的图,可以对分类器的整体效果进行综合评价。该评估指标引入“平衡点”(BEP)概念,当查全率等于查准率时取的值越大时,表明该分类器的性能越好。
2.4 参 数
该模型的编码器和解码器的层数各为3层,多头注意力头数为8个,经PCA处理后的蛋白质表示和原子表示的维度为64,编码器和解码器完全连接的前馈神经网络层中隐藏单元数量为512,Dropout为0.2,学习率为1e-4,批尺寸大小为64。
2.5 实验结果分析及对比
该文使用GPCR测试集在模型上进行训练,采用接收机工作特性曲线下面积(AUC)、准确召回率曲线(PRC)作为模型的评估指标。
从图4中可以看出,随着迭代次数的增加,模型的Loss值在逐渐变小,且愈加接近饱和,在迭代50轮前,模型的AUC值和PRC值的变化明显,随着迭代次增加,模型训练愈加接近饱和,评估指标趋于平缓和稳定,模型的最优AUC值和PRC值分别为0.865和0.883。
图4 模型训练Loss变化和AUC值、PRC值变化
该文对模型进行调参试验,采用控制变量法进行调参。实验设置如表2所示,实验结果如图5所示。
表2 模型对比实验设置
图5 不同batchsize下Loss值、PRC值和AUC值变化
从图5中可以看出,在同样的迭代次数下,batchsize为64时,模型的Loss值相对于另外两个更低,batchsize为96时效果较差。在batchsize为64时,模型的PRC和AUC值优于另外两种情况,batchsize为96时效果较差。
该文对模型网络结构也进行了对比实验。实验设置如表3所示,实验结果如图6所示。
表3 结构对比实验设置
图6 拓宽网络和加深网络的PRC和AUC变化
从图6可以看出,在相同的迭代次数下,拓宽网络的PRC和AUC相较于原始网络在一开始处于较为落后的趋势,后来逐渐接近;在相同的迭代次数下,加深网络的PRC和AUC一直处于落后的趋势。在其他设置不变的情况下,原始网络的参数设定的PRC和AUC达到最优的情况。
该文选择了经典的机器学习模型和两种流行的行业常用模型与该文提出的模型进行对比,实验结果如表4所示。在GPCR测试集上,该文提出的模型在AUC和PRC方面均优于对比的模型,在数据集上取得了较好的性能,AUC值和PRC值均有提升,表明该模型具有更强的学习蛋白质和化合物之间相互作用的能力。
表4 GPCR测试集性能
3 结束语
该文尝试将深度学习技术应用于CPI预测的研究中,将该任务转换成标签二分类的问题进行解决。在使用传统的编解码器模型的基础上,在解码器中使用到改进的Attention Mask层,以此来处理蛋白质和化合物二分类任务。在AUC和PRC指标测评下,与其他模型相比,该文改进的模型在实验上拥有更好的性能表现。
实验结果表明,该模型可以学习期望的CPI特征,性能更稳定且准确率更高。如果将该模型应用于实际的药物发现研究中,可以为药物靶标选择提供一定的参考价值,加快药物发现的进程。同时深度学习不要求具备生物学和药理学等专业知识,就可以得到数据背后的隐藏信息,且对于数据量特别大的数据具有明显的优势。然而,该模型构造了一个注意力矩阵,需求与输入呈平方关系,因此,对内存和算力的需求非常高。