劉宏生,周 威,張 力
(1.遼寧大學 藥學院,遼寧 沈陽110036;2.遼寧大學 信息學院,遼寧 沈陽110036; 3.遼寧大學 生命科學院,遼寧 沈陽110036)
在目前的社會生存環(huán)境中,有大量毒性物質對人類生存發(fā)展產(chǎn)生很大的危害,這些毒性物質存在于人類生活的各個方面,以各種各樣的方式對人類的生存產(chǎn)生影響.另一方面化合物的毒性預測對于藥物研發(fā)來說也至關重要[1],化合物毒性和副作用等安全性因素成為了使藥物研發(fā)失敗的最主要原因.由于收集大量具有生物活性和毒性信息的化學物質是一項艱巨的任務,因此化合物數(shù)據(jù)中有標簽的數(shù)據(jù)是嚴重不足的,而且這些有標簽的數(shù)據(jù)存在類別不平衡現(xiàn)象[2],這將不利于模型的預測,為了解決化合物數(shù)據(jù)的類比不平衡問題,可以使用分子生成模型生成少數(shù)類化合物分子,進而擴充數(shù)據(jù)從而達到類別平衡.
近年來,無論是在理論上還是在實驗證據(jù)上,深度生成神經(jīng)網(wǎng)絡已成為分子生成非?;钴S的研究領域,為自動分子生成和優(yōu)化開辟了新方向,到目前為止,模型通?;赟MILES和分子圖形表示來創(chuàng)建具有所需特性的分子.Blaschke等[3]提出基于SMILES的生成對抗性自編碼器(Adversarial Autoencoder,AAE)分子生成模型.Samanta等[4]提出了一種新的分子圖變分自編碼器,解碼器能夠提供生成分子的空間坐標,同時使用基于梯度的算法優(yōu)化解碼器并用來生成分子.Grechishnikova[5]提出了一種只依賴目標蛋白的氨基酸序列的分子生成模型,并將變壓器神經(jīng)網(wǎng)絡體系結構應用于序列傳導任務.Pereira等[6]提出的模型在強化訓練過程中應用探索性策略,為生成的化合物增加了新穎性.
現(xiàn)有基于自編碼器的生成模型與基于生成對抗網(wǎng)絡的生成模型各有優(yōu)缺點,自編碼器可以很好地重構數(shù)據(jù),而且編碼器部分可以將高維的數(shù)據(jù)映射成低維的表征,起到良好的降維效果,但是生成的數(shù)據(jù)缺乏多樣性.而對于輔助分類器的生成對抗網(wǎng)絡(Auxiliary Classifier GAN,ACGAN)來說,雖然其具有良好的生成效果,并且能夠在生成數(shù)據(jù)的同時使其帶有標簽信息,但是模型本身卻存在過擬合和梯度消失的隱患.因此,為了能夠達到生成指定類型的數(shù)據(jù),從而進行數(shù)據(jù)擴充解決數(shù)據(jù)不平衡的目的,本研究結合2類模型的優(yōu)點,提出了一種新型化合物分子的生成模型.
自編碼器(Autoencoder,AE)是Rumelhart提出的一種深度學習中的前向神經(jīng)網(wǎng)絡[7],它可以使用無標簽的數(shù)據(jù)訓練來進行無監(jiān)督的學習,從而獲取更多的信息.自編碼器由2個部分組成:一部分可以輸入數(shù)據(jù)轉換為隱藏層中低維表示,稱之為編碼器;另一部分將隱藏層中的低維表示映射成重構數(shù)據(jù),稱之為解碼器.因此AE包括3層,其結構圖如圖1所示.對于輸入數(shù)據(jù)和重構數(shù)據(jù)的接近程度,可以使用重構誤差函數(shù)來進行衡量,從而盡可能地對輸入數(shù)據(jù)進行復現(xiàn),因此具有提取有效特征和降維的效果,就降維作用來說AE與主成分分析(PCA)相似,但是又有著更好的性能.
圖1 AE模型結構
在AE架構圖中,輸入數(shù)據(jù)為X=(x1,x2,…,xm),其中x∈Rn,每個分量x都是一個n維的矢量,一共有m個數(shù)據(jù).h=(h1,h2,…,hn)表示隱藏層向量,其中n表示隱藏層中單元的個數(shù),應小于輸入數(shù)據(jù)的數(shù)量m.輸入層到隱藏層的編碼過程可以通過式(1)表示:
h=s(Wxx+bx)
(1)
輸出數(shù)據(jù)為y=(y1,y,…ym),隱藏層到輸出層的解碼階段可以通過式(2)表示:
y=s(Wyh+bh)
(2)
公式中的Wx和Wy分別表示輸入層到隱藏層以及隱藏層到輸出層之間的連接權重矩陣,維度分別為n×m和m×s;bx和bh分別表示隱藏層和輸出層中每個單元的偏置向量;各神經(jīng)元一般選擇sigmoid函數(shù)作為激活函數(shù),其函數(shù)域的取值范圍為0到1,公式中用s表示.
AE模型的訓練其實就是尋找目標函數(shù)最優(yōu)解的過程,在這一過程中權重及偏置向量得到了調(diào)節(jié),進而能夠最小化輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的誤差.
ACGAN[8]是在生成對抗網(wǎng)絡(GAN)的基礎上改進得到的一種生成對抗網(wǎng)絡模型,最早由Augustus等在2017年提出,ACGAN模型結構如圖2所示.
圖2 ACGAN模型結構
ACGAN與GAN在模型結構有所區(qū)別,原始的GAN模型中生成器的輸入變量只有一個隨機噪聲z,而ACGAN模型中生成器的輸入變量為2個,除了隨機噪聲z以外還加入了標簽信息C,生成器通過使用2個變量可以生成類條件的假樣本,用Xfake=G(c,z)來進行表示.ACGAN模型的判別器和GAN模型也有所區(qū)別,原始的GAN模型中的判別器只進行二分類判斷真假,它的輸出會被sigmoid激活函數(shù)映射到0,1之間,0代表假,1代表真,從而對數(shù)據(jù)的真假性進行判別,ACGAN模型中的判別器在此基礎上增加了一個輔助分類器C,因此它的判別器還有另外一個輸出,這個輸出通過softmax分類器可以得到類別的后驗概率,從而對類別進行預測.正因如此ACGAN模型中判別器的目標函數(shù)由2部分組成,即正確源的對數(shù)似然Ls和正確類別的對數(shù)似然Lc,兩部分的公式分別如式(3)和式(4)所示:
Ls=E[lgP(S=real|Xreal)]+E[lgP(S=fake|Xfake)]
(3)
Lc=E[lgP(C=c|Xreal)]+E[lgP(C=c|Xfake)]
(4)
式(3)、(4)中的Ls是準確分類的真實樣本和生成樣本的損失,Lc是準確對樣本類別進行分類的損失.在模型的訓練過程中,判別器的目標是最大化Ls+Lc,生成器的目標是最大化Ls-Lc.
新提出的化合物分子生成模型主要包括2個部分,分別是AE和ACGAN,其中AE的主要功能包括2部分,編碼器部分將高維度的化合物分子結構進行編碼得到其低維的特征表示,而解碼器部分則是對ACGAN生成的新化合物分子的潛在表示進行采樣而后進行解碼,最終得到新型的化合物分子結構.而ACGAN模塊的功能則是利用AE提取的低維特征進行訓練,從而生成新的化合物分子結構.此方法與以前的GAN方法之間的區(qū)別在于,生成器和判別器不使用簡化分子輸入行輸入系統(tǒng)(SMILES)字符串作為輸入,而是從訓練SMILES字符串的AE中得出的n維向量作為輸入[9].這使模型可以專注于優(yōu)化采樣,而不必擔心SMILES語法問題.AE-ACGAN模型結構圖如圖3所示.
圖3 AE-ACGAN模型結構
此方法先在一組化合物分子數(shù)據(jù)上對AE模型進行了預訓練,通過AE的編碼得到化合物分子的低維特征向量,然后通過解碼器進行重構,通過重構誤差不斷地對自編碼器的參數(shù)進行調(diào)整,最后得到最佳的低維特征表示h,然后,將其用作判別器的真實數(shù)據(jù)輸入,一同放進判別器中的還有數(shù)據(jù)帶有的分類信息,也就是數(shù)據(jù)本身的標簽,同時將從均勻分布中采樣的一組隨機矢量作為偽數(shù)據(jù)和標簽信息一同輸入到生成器中.判別器中的輔助分類器可以更好地提高判別器的性能,這樣判別器不僅能輸出數(shù)據(jù)的真假信息,還能輸出數(shù)據(jù)的類別.對于判別器的每5批訓練,都會分配一批來訓練生成器,以便判別器在向生成器提供更高梯度的同時保持領先地位.在ACGAN訓練完成后,會對生成器進行多次采樣,并將生成的潛在矢量輸入解碼器中,以獲取新型的SMILES字符串.
對于AE部分的構造和訓練,最初,本文將one-hot編碼的SMILES字符串通過每層512個長短期記憶網(wǎng)絡(LSTM)單元的2層雙向編碼器輸出,其中一半用于正向,一半用于反向,然后將2個方向的輸出連接起來,并輸入到512大小的前饋層,作為訓練期間的正則化步驟,通過應用標準偏差為0.1的加性零中心高斯噪聲來擾動所得向量.分子的潛在表示被饋送到前饋層,其輸出被復制并以隱藏狀態(tài)和單元狀態(tài)插入到具有與編碼器相同規(guī)格的4層單向LSTM解碼器.最后1層的輸出由具有softmax激活的前饋層處理,以返回對數(shù)據(jù)集中已知字符集的每個字符進行采樣的概率.動量值為0.9的批量歸一化應用于除高斯噪聲層以外的每個隱藏層的輸出.
本文對AE網(wǎng)絡進行了100個epoch的訓練,批處理大小為128,對于前50個epoch使用恒定的學習率10-3,隨后以指數(shù)衰減,在最后1個epoch中達到10-6的值.解碼器是使用teacher forcing訓練機制進行訓練,使用解碼和訓練SMILES之間的分類交叉熵的解碼損失函數(shù)來訓練模型,訓練完AE后,將禁用噪聲層,從而完成對ACGAN訓練和采樣集合的確定性編碼和解碼.
2.3.1 引入wasserstein距離
原始ACGAN真假判別目標函數(shù)存在一定的缺陷,即當判別器最優(yōu)時,若真實和生成樣本的2個分布沒有交集,就會導致生成器梯度消失.而使用wasserstein距離衡量時即使2個分布沒有重疊部分,它也可以反映二者的遠近.因此本文選擇使用wasserstein距離衡量分布距離,與原始ACGAN真假判別中的sigmod函數(shù)相比較,使用wasserstein距離衡量分布距離同樣屬于回歸任務,所以將對sigmoid函數(shù)進行替換,這樣一來在判別器對數(shù)據(jù)進行判別真假的功能上,使用wasserstein距離來對數(shù)據(jù)進行真假的判斷,而在對數(shù)據(jù)進行標簽分類上,與原始的ACGAN相同,依然使用softmax激活函數(shù)進行分類.
在原始的ACGAN上以wasserstein距離作為判別器的目標函數(shù),雖然能夠很好地解決在訓練中存在的不穩(wěn)定問題,那是因為樣本在處于任何情形下,wasserstein距離都可以對樣本之間的距離進行度量,這是Jenson′s Shannon(JS)散度所不具備的能力,因為JS散度的值是突變的,只有最大值和最小值2種情況,所以不能提供梯度信息.與JS散度相比wasserstein距離相對來說是平滑的,其中參數(shù)θ可以傳遞梯度信息,并且可以利用梯度下降法進行優(yōu)化[10],正因如此生成器的參數(shù)才能得到更新從而擬合出真實分布.但wasserstein距離受Lipschitz連續(xù)條件的限制,即導函數(shù)不能超過Lipschitz的常數(shù)K,通過權重裁剪(weight clipping)將判別器的權重限制到某個范圍,強制滿足Lipschitz條件,這樣容易產(chǎn)生2種不好的后果,即梯度消失或者梯度爆炸.正是由于這種方式過于粗暴,使得判別器的擬合能力受到了限制,從而對網(wǎng)絡的表現(xiàn)產(chǎn)生一定的影響.為了對判別器的梯度進行限制,使它的值不超過K,在ACGAN判別器的損失函數(shù)上使用1種可替代的權重剪切方法——梯度懲罰(Gradient Penalty,GP)[11],以此來提高訓練過程的穩(wěn)定性,其本質是通過設置1個額外的損失項來實現(xiàn)梯度與常數(shù)K之間的聯(lián)系,可以通過下面的公式(5)來對梯度懲罰項進行定義:
Relu([‖?xD(x)‖p-K]2)
(5)
由于式(5)中K的取值對梯度下降的方向并不產(chǎn)生影響,因此可以將K的值設為1從而得到式(6):
(6)
(7)
另一部分是數(shù)據(jù)分類正確的概率Lc與原始ACGAN相同,依然是式(8):
Lc=Ec~Pdata[lgD(c)]+Ec~Pz[lg(1-D(G(c)))]
(8)
因此總的判別器能被訓練的最大值為新的Ls與Lc之和,生成器能被訓練的最大值為Lc與新的Ls之差.
圖4 判別器結構
此外本文在原始ACGAN的基礎上對其判別器結構進行改動,原始的ACGAN的判別器中包含著批歸一化(Batch Normalization)層[12],但是由于本文在原有的ACGAN上進行了改動,在判別器中引入了wasserstein距離對2個分布之間的距離進行衡量同時使用了梯度懲罰,所以判別器的模型結構較原始ACGAN發(fā)生相應的改變,其中不再使用批歸一化層,這是因為每個batch中的每個樣本都獨立地施加了梯度懲罰.因此改進后ACGAN模型中的判別器網(wǎng)絡基本與生成器網(wǎng)絡一致,不同的是判別器中各層之間不再使用批歸一化層,本文模型中的判別器結構如圖4所示.對于ACGAN中優(yōu)化器的選擇也進行了相應的調(diào)整,不再用基于動量的優(yōu)化算法Adam,選擇使用RMSProp[13]進行替代,這一調(diào)整也可以對訓練過程中產(chǎn)生的不穩(wěn)定問題起到一定的改善作用.
2.3.2 利用無標簽數(shù)據(jù)
由于原始的ACGAN模型屬于深度學習中的有監(jiān)督學習,因此只能使用有標簽的數(shù)據(jù)作為輸入,這樣就使得大量的無標簽化合物數(shù)據(jù)沒有得到很好的利用,與此同時小樣本的數(shù)據(jù)對于GAN來說不太友好,因此GAN需要足夠的數(shù)據(jù)來訓練網(wǎng)絡以達到收斂,作為GAN的一種衍生模型,ACGAN一般情況下也需要大量的數(shù)據(jù)樣本,但是對于化合物數(shù)據(jù)而言,并沒有足夠的有標簽樣本供ACGAN訓練,因此就要想辦法使得ACGAN可以不單單只使用有標簽的數(shù)據(jù)進行訓練,也可以將大量的無標簽的化合物數(shù)據(jù)樣本作為輸入.
圖5 改進ACGAN模型結構
為了能更好地利用大量的無標簽化合物數(shù)據(jù),本文同樣使用其作為ACGAN模型的輸入.通過前面對ACGAN的介紹以及改進可以知道,ACGAN模型中判別器的目標函數(shù)由2部分組成,即正確源的對數(shù)似然Ls和正確類別的對數(shù)似然Lc,在將無標簽的數(shù)據(jù)加入到ACGAN模型的輸入時,現(xiàn)在ACGAN的輸入數(shù)據(jù)就包括了2部分,有標簽的化合物數(shù)據(jù)和無標簽的化合物數(shù)據(jù).有標簽的化合物數(shù)據(jù)跟之前完全使用有標簽的數(shù)據(jù)作為輸入時沒有區(qū)別,判別器對這部分樣本的損失函數(shù)仍然是由2部分組成,一部分是對數(shù)據(jù)的真實性進行判斷得到損失函數(shù)Ls,其表達式同式(7),另一部分是對數(shù)據(jù)的類別進行判斷得到的損失函數(shù)Lc,其表達式同式(8),對于生成器通過輸入隨機的噪聲以及添加的標簽信息生成的偽數(shù)據(jù)來說,判別器的損失函數(shù)依然是這2部分.對于無標簽的真實化合物數(shù)據(jù),當其作為ACGAN模型的輸入時,判別器的損失函數(shù)就發(fā)生了改變,無標簽的化合物數(shù)據(jù)不包含類別信息,所以判別器不能使用這些數(shù)據(jù)進行類別判斷,但是這些數(shù)據(jù)依然是真實的數(shù)據(jù),因此判別器只使用這些數(shù)據(jù)和生成器生成的數(shù)據(jù)進行判斷,來訓練判別器鑒別真假的能力,這樣一來判別器的損失函數(shù)就只包含一部分也就是只對數(shù)據(jù)的真實性進行判斷得到損失函數(shù)Ls,3種不同數(shù)據(jù)的損失函數(shù)構成了整個網(wǎng)絡的損失函數(shù).輸入數(shù)據(jù)的改變使得模型的結構圖也發(fā)生了改變,利用無標簽數(shù)據(jù)的ACGAN模型結構如圖5所示.
通過與原始ACGAN模型的對比可以發(fā)現(xiàn),改進后模型的輸入數(shù)據(jù)除了有標簽的數(shù)據(jù)之外還包括無標簽的數(shù)據(jù),當無標簽的數(shù)據(jù)輸入到判別器中的時候,判別器中的wasserstein距離可以對數(shù)據(jù)進行真假的判斷,由于不包含標簽信息所以無法對其進行分類,但是無標簽的數(shù)據(jù)仍然是真實數(shù)據(jù),仍然可以訓練判別器的鑒別能力.
分子必須以字符序列表示,例如“SMILES”字符串.SMILES經(jīng)常被用作生成型AE模型的輸入,并且事實證明可以利用其生成新的化合物分子,對SMILES字符串應用seq2seq模型以提取數(shù)據(jù)驅動的分子描述符[14].盡管原則上,1個規(guī)范的SMILES字符串足以對分子進行明確的描述,但實際上,不同的規(guī)范化算法產(chǎn)生不同的規(guī)范表示.在這項研究中,本文使用了RDKit.
由于神經(jīng)網(wǎng)絡只能處理數(shù)字數(shù)據(jù),因此需要對SMILES字符串進行一些初始預處理.“one-hot”編碼是1種將分類變量轉換為二進制值(“1”和“0”)的數(shù)組,每個二進制值中都嚴格帶有單個“1”.在這種情況下,每個SMILES字符串都可以表示為二進制值的矩陣,其中每一行對應于有效符號字典中的1個項目,每一列對應于SMILES字符串中的1個字符,并且在它們的對應位置為“1”,相交表示它們之間的對應關系.
本文通過以下標準對新生成的化合物分子進行評價.
1)有效性:有效SMILES的比例,即有效SMILES的數(shù)量除以生成的SMILES的總數(shù).
2)獨特性:唯一SMILES的比例,即唯一SMILES的數(shù)量除以有效SMILES的總數(shù).
3)新穎性:用于轉移學習的數(shù)據(jù)集中不存在的生成分子的比例,即新穎(未重復數(shù)據(jù)刪除)SMILES的數(shù)量除以有效SMILES的數(shù)量.
為了驗證本文所提出的分子生成模型的效果,本文與常用的幾種生成模型進行比較,并使用生成分子的評價標準進行評估,如圖6所示,通過與現(xiàn)有的一些模型在有效性方面的對比,可以發(fā)現(xiàn)本文所提出的AE-ACGAN模型生成的分子具有較高的有效性,并且相較于現(xiàn)有的模型有了一定的提高,同時這也表明生成的序列符合化合物分子的規(guī)則.
生成的化合物分子的獨特性和新穎性如圖7所示,本文所提出的化合物分子生成模型在獨特性和新穎性上也有所提升,這是由于模型中的ACGAN有著更好的生成效果,使得所生成化合物分子的多樣性更強,從而進一步說明了所生成化合物分子的質量比較高,能夠用來很好地擴充原始數(shù)據(jù).
圖6 有效性對比
圖7 獨特性與新穎性對比
圖8 無毒與有毒化合物不同比率的ACC
本文提出的新型分子生成模型,生成了與原始數(shù)據(jù)具有相同特點的新分子,按照標簽的要求生成了指定類型的有毒化合物分子,新生成的有毒化合物分子可以用于增強原始的類別不平衡數(shù)據(jù)集,然后再使用化合物毒性預測模型進行訓練.新的訓練集樣本包括原始數(shù)據(jù)和新生成的有毒化合物分子,通過添加不同數(shù)量的有毒化合物分子改變原始數(shù)據(jù)中有毒化合物分子和無毒化合物分子類別之間的比率,然后進行預測,通過準確率可以發(fā)現(xiàn)增強后的類別平衡數(shù)據(jù)對于模型有著更好的訓練效果.
通過圖8可以看出,隨著數(shù)據(jù)集中無毒化合物與有毒化合物的比率越來越接近于1∶1,測試集的準確率得到了明顯的提升,這說明在數(shù)據(jù)不平衡的條件下化合物毒性預測模型的預測效果受到了一定的限制,當數(shù)據(jù)集中無毒化合物分子與有毒化合物分子的類別達到平衡時,預測模型能夠達到比較好的預測效果,說明通過少數(shù)類數(shù)據(jù)進行數(shù)據(jù)擴充對解決數(shù)據(jù)不平衡問題起到了良好的效果,這樣也證明了本文提出的新型的化合物分子生成模型有著很好的生成效果,所生成的新型的化合物分子能夠起到很好的數(shù)據(jù)擴充作用.
本文通過結合AE和改進后的ACGAN,提出了一種新的分子生成的模型AE-ACGAN.結果表明,該模型生成的化合物分子相對于訓練集而言,絕大部分采樣化合物是新穎的而且質量比較高,通過將新生成的有毒化合物分子增加到原始數(shù)據(jù)集中,使原來類別不平衡的數(shù)據(jù)變得平衡,從而使得分類模型的預測準確率有了進一步的提升,證明新提出的分子生成模型能夠生成指定的少數(shù)類化合物分子,對原始的化合物數(shù)據(jù)進行擴充,從而改善數(shù)據(jù)類別不平衡問題.