|
隨著信息技術(shù)的不斷發(fā)展,藥物設(shè)計(jì)方法學(xué)的新概念、新方法和新思路持續(xù)更新,藥物發(fā)現(xiàn)范式也與時(shí)俱進(jìn)。人工智能作為新工具,已應(yīng)用于藥物發(fā)現(xiàn)過程的多個方面,引起了制藥行業(yè)的高度關(guān)注,也帶來了對藥物發(fā)現(xiàn)科學(xué)理論和方法學(xué)的新思考和新探索。 中山大學(xué)藥物分子設(shè)計(jì)研究中心徐峻教授是人工智能與藥物設(shè)計(jì)領(lǐng)域的知名學(xué)者。自上世紀(jì) 80 年代末,就長期在科研第一線從事分子信息學(xué)算法研究和藥物發(fā)現(xiàn)實(shí)驗(yàn)研究,研究領(lǐng)域橫跨化學(xué)、藥學(xué)和信息科學(xué)。在本文中,徐峻教授對人工智能與藥物設(shè)計(jì)學(xué)的發(fā)展進(jìn)行了系統(tǒng)的回顧、梳理和展望,對藥物發(fā)現(xiàn)新范式進(jìn)行了深入的分析、解讀和探討。 全文概要、目錄及前文見 徐峻|人工智能與藥物設(shè)計(jì)學(xué):新范式探索 (1) 徐峻|人工智能與藥物設(shè)計(jì)學(xué):新范式探索 (2) 本篇是第三節(jié)前半部分的內(nèi)容。 ![]() 3.1 傳統(tǒng)的藥物設(shè)計(jì)技術(shù) 傳統(tǒng)的基于靶標(biāo)的藥物分子設(shè)計(jì)技術(shù)中,小分子的調(diào)控對象主要是單個蛋白質(zhì)靶標(biāo) (亦稱受體)。基于天然配體與受體的結(jié)合模式,人們可以采用基于結(jié)構(gòu)的藥物設(shè)計(jì)(SBDD)或基于配體的藥物設(shè)計(jì)(LBDD)的方法發(fā)現(xiàn)和優(yōu)化藥物的先導(dǎo)化合物。 傳統(tǒng)的 LBDD 藥物設(shè)計(jì)方法建立在QSAR概念之上,其流程如圖 4-3-1 所示。 ![]() 天然藥物化學(xué)研究能夠鑒定活性成分的化學(xué)結(jié)構(gòu)圖,化學(xué)結(jié)構(gòu)有許多表示方法,化學(xué)信息學(xué)以圖論為基礎(chǔ)可以將化學(xué)結(jié)構(gòu)表示為拓?fù)浣Y(jié)構(gòu)(俗稱二維結(jié)構(gòu),用連接表或線性編碼表示)、或三維結(jié)構(gòu)。典型的分子拓?fù)浣Y(jié)構(gòu)的線性編碼是SMILES (Simplified Molecular Input Line Entry System, 有興趣的讀者可以訪問文末鏈接1)。分子表面有電荷分布,通過量子化學(xué)或其它理論計(jì)算,還可以把分子三維表面靜電荷的分布表示為分子的表面結(jié)構(gòu)?;瘜W(xué)信息學(xué)還可以選擇一組分子特性(可以是生物、化學(xué)、物理、數(shù)學(xué)特性,被稱為描述符 descriptors)來表示一個分子,這樣,分子可以用向量表示: 值得一提的是:QSAR 的本質(zhì)是要發(fā)現(xiàn)分子中的某部分,即“子結(jié)構(gòu)”,與活性的關(guān)系。尤其在生物醫(yī)藥領(lǐng)域,發(fā)現(xiàn)分子中與活性相關(guān)的關(guān)鍵“子結(jié)構(gòu)”非常重要。這樣,如何定義或劃分活性化合物中的子結(jié)構(gòu)成為 QSAR 的核心問題之一。半個多世紀(jì)以來,人們試了許多方法,例如,基于化學(xué)經(jīng)驗(yàn)的方法 (如 MACCS search keys) 、按照某種規(guī)則定義的方法 (如原子中心片段方法或 Daylight 的分子指紋方法)。前者符合“化學(xué)感覺”但有很多主觀偏見,后者避免“主觀偏見”但卻失去了化學(xué)或生物學(xué)意義。 3.2 傳統(tǒng)的機(jī)器學(xué)習(xí)方法 人工智能在藥物設(shè)計(jì)中的應(yīng)用一直是化學(xué)信息學(xué)的內(nèi)容。傳統(tǒng)的人工智能輔助 LBDD 方法流程如圖 4-3-2 所示。 ![]() 圖 4-3-2. 人工智能輔助 LBDD 方法流程。 在這個數(shù)據(jù)處理流程中,我們首先把分子結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)化為分子描述符,然后根據(jù)問題的性質(zhì)決定采用何種機(jī)器學(xué)習(xí)類型,如貝葉斯學(xué)習(xí)機(jī) (Bayesian learning)、支持向量機(jī) (support vector machine, SVM)、決策樹 (decision trees)、遺傳算法 (genetic algorithm, GA) 、自組織圖 (Kohonen's self-organization map, SOM), 人工神經(jīng)網(wǎng)絡(luò) (artificial neural network, ANN)等。這些學(xué)習(xí)類型又分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩大類。如果事先知道被分類的對象能分為幾類,則采用有監(jiān)督的學(xué)習(xí);否則,采用無監(jiān)督的學(xué)習(xí)。 傳統(tǒng)的人工智能方法的學(xué)習(xí)效果取決于對各種數(shù)據(jù)處理方法選擇: 傳統(tǒng)的人工智能方法的學(xué)習(xí)效果與數(shù)據(jù)處理方法選擇 (1) 分子的子結(jié)構(gòu)的劃分 (如基于經(jīng)驗(yàn)的子結(jié)構(gòu)枚舉方法、基于藥效團(tuán)的方法、基于天然產(chǎn)物骨架的方法、基于規(guī)則的各種圖論方法、基于分子場的方法); (2) 對分子描述符的選擇 (避免與活性無關(guān)的描述符、避免重復(fù)遴選高度相關(guān)的描述符、避免無區(qū)別活性與非活性能力的描述符等); (3) 數(shù)據(jù)預(yù)處理與數(shù)據(jù)采樣 (剔除不正確或非規(guī)范的數(shù)據(jù)表示、找出離群數(shù)據(jù)的原因、隨機(jī)采樣等); (4) 向量相似度或高維空間兩點(diǎn)間距離計(jì)算 (如歐幾里得距離、Tanimoto 系數(shù)、Soergel 距離、Tversky 系數(shù)、Dice 系數(shù))[23]; (5) 模式分類 (pattern classification) 算法 (如貝葉斯方法、非參數(shù)技術(shù)、線性判別函數(shù)、多層神經(jīng)網(wǎng)絡(luò)、隨機(jī)進(jìn)化、非度量方法、無監(jiān)督聚類) [24]; (6) 模型評價(jià)與訓(xùn)練集與測試集劃分 (如偏差/方差估計(jì)、數(shù)據(jù)劃分技術(shù)、交叉驗(yàn)證方法)。 3.3 深度學(xué)習(xí)方法概論 高通量合成和生物學(xué)篩選使實(shí)驗(yàn)數(shù)據(jù)爆炸性地增長,大數(shù)據(jù)時(shí)代到來了?;趥鹘y(tǒng)的機(jī)器學(xué)習(xí)方法越來越難以應(yīng)付大數(shù)據(jù)挖掘的需求。深度學(xué)習(xí)方法就是從傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò) (ANN) 發(fā)展起來的。 ANN 方法 如果把 ANN 作為一個輸入為 x 輸出為 y 的黑匣子的話,這個黑匣子就是以 x 為自變量,y 為應(yīng)變量的函數(shù)。函數(shù)的內(nèi)部機(jī)制可以是一個簡單的線性變換 (例如 w × x → y, w 是權(quán)重),也可以是其它變換 (transform)。我們可以不斷地向一個 ANN 發(fā)送具體數(shù)值給 x,讓 ANN 根據(jù) x 的各個具體數(shù)值總結(jié)并記住 x 的特征或性質(zhì)作為輸出 y 的值,這樣,ANN 就是一個最簡單的學(xué)習(xí)機(jī),因?yàn)樗鼜?x 的各個具體數(shù)值學(xué)會為 x 分類,所學(xué)到的“知識”存儲在權(quán)重矩陣 W= (w1, w2, …, wn) 中。單個神經(jīng)元的信號處理原理如圖 4-3-3 所示。 ![]() 圖 4-3-3. 單個神經(jīng)元的信號處理原理。 為了訓(xùn)練 ANN,需要先定義一個損耗函數(shù) (loss function) 評價(jià) ANN 預(yù)測值與實(shí)際結(jié)果之間的偏差,以找到最小化損耗函數(shù)的權(quán)重 W 和偏置 b。 神經(jīng)網(wǎng)絡(luò)與深度神經(jīng)網(wǎng)絡(luò) DNN (Deep Neural Network) 一個簡單神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層 (embedding layer)、輸出層組成。在輸出前有一個判別函數(shù) (又稱為激勵函數(shù)),如簡單的線性函數(shù)、正切函數(shù) (sigmoid)、或歸一化指數(shù)函數(shù) (softmax) 函數(shù) (圖 4-3-3)。隱含層由多個 (個數(shù)可調(diào)整) 神經(jīng)元 (neuron) 組成。在神經(jīng)網(wǎng)絡(luò)架構(gòu)中,如果每一個輸入都與神經(jīng)元相聯(lián)結(jié),則稱為全聯(lián)結(jié)神經(jīng)網(wǎng)絡(luò) (fully-connected neural network)。 簡單的 ANN 只有輸入層、中間層 (隱藏層) 和輸出層。為了學(xué)習(xí)復(fù)雜的事物 (例如,學(xué)習(xí)把中文翻譯成英語),可以把若干個 ANN 串聯(lián)起來,讓前一個 ANN (神經(jīng)元) 作為后面神經(jīng)元的輸入,就是說,把神經(jīng)元的隱藏層從一層擴(kuò)充為多層,最后歸結(jié)到輸出層,就構(gòu)成了深度神經(jīng)網(wǎng)絡(luò) (deep neural network),即深度學(xué)習(xí)模型[26]。構(gòu)建一個深度學(xué)習(xí)模型的步驟如下: 構(gòu)建一個深度學(xué)習(xí)模型的步驟 (1) 確定學(xué)習(xí)模型的輸入和輸出及其數(shù)據(jù)類型; (2) 確定神經(jīng)元的功能 (用于變換自變量的函數(shù)定義,權(quán)重等); (3) 確定神經(jīng)網(wǎng)絡(luò)的架構(gòu) (即確定輸出函數(shù)、輸入函數(shù)的拓?fù)渚W(wǎng)絡(luò)); ![]() 圖 4-3-4. ANN 與 DNN 的不同架構(gòu)。 因此,DNN 是有多個隱藏層的 ANN,其本質(zhì)是將從輸入中獲得的低級特征轉(zhuǎn)換為后續(xù)層中學(xué)到的更復(fù)雜的特征。每個神經(jīng)元上有一個非線性激活函數(shù) (其系數(shù)在訓(xùn)練過程中確定) 從前一層的多個連接神經(jīng)元獲取輸入信號,并在將其傳輸?shù)较乱粋€神經(jīng)元之前對其進(jìn)行修改。標(biāo)準(zhǔn)的前饋 DNN 有輸入層、隱藏層和輸出層,每層由多個并聯(lián)的神經(jīng)元組成。輸入信號直接進(jìn)入輸入層,隱藏層對輸入信號進(jìn)行非線性變換,在輸出層生成預(yù)測。每個輸出節(jié)點(diǎn)對應(yīng)于要預(yù)測的任務(wù) (分類)。單任務(wù) DNN 只輸出一個節(jié)點(diǎn),多任務(wù) DNN 輸出多個節(jié)點(diǎn)。 構(gòu)建 DNN 的必要性 DNN 的多個隱藏層有何必要呢?這要從用來訓(xùn)練的數(shù)據(jù)特點(diǎn)說起。在藥物化學(xué)中,任何小分子可以被分為天然產(chǎn)物和合成產(chǎn)物,對給定的藥物靶標(biāo) (或藥效) 而言,每一種產(chǎn)物又可以分為活性的和非活性的。如果用簡單的 ANN 構(gòu)建機(jī)器學(xué)習(xí)機(jī)的話,其架構(gòu)如圖 4-3-5 所示。 ![]() 圖 4-3-5. 簡單 ANN 學(xué)習(xí)機(jī)的的神經(jīng)網(wǎng)絡(luò)架構(gòu)。 該架構(gòu)的特點(diǎn)是簡單,缺點(diǎn)是預(yù)測效果可能差。一個藥物化學(xué)家如果發(fā)現(xiàn)一個活性化合物,就會圍繞著它的同系物測試更多的化合物,產(chǎn)生更多的同系物結(jié)構(gòu)和活性數(shù)據(jù);但是,如果他發(fā)現(xiàn)一個非活性化合物,是不會下大功夫調(diào)查該化合物為何沒有活性的。這樣,數(shù)據(jù)積累的結(jié)果,陽性化合物的結(jié)構(gòu)-活性數(shù)據(jù)量就會大大超過陰性化合物的結(jié)構(gòu)-活性數(shù)據(jù),造成陽性數(shù)據(jù)與陰性數(shù)據(jù)樣本量失衡。在圖 4-3-4 的例子中,天然產(chǎn)物所含的陽性/陰性樣本比例與合成產(chǎn)物所含的陽性/陰性樣本比例可能差別巨大,造成建模不正確。 另外,自然界的事物按層次分類是普遍現(xiàn)象,例如,天然產(chǎn)物分為無機(jī)物和有機(jī)物,有機(jī)物分為烴類化合物和非烴類化合物,如此可以成長為很多層次的分類樹;另一個例子是生命系統(tǒng)發(fā)育樹 (phylogenetic tree of life)。這些樹的分枝尺寸也是不平衡的,因此,數(shù)學(xué)上就有了各種不同的分類算法 (classifications)。在生物學(xué)普遍用來處理這類問題的算法就是簇分析算法 (clustering algorithms)。深度學(xué)習(xí)機(jī)制也是處理這類問題的。 把不同性質(zhì)的數(shù)據(jù)混合在一起進(jìn)行建模,是造成模型預(yù)測能力差的主要原因之一。為了擬自然事物按層次分類的規(guī)律,可以把頂層問題分解為若子問題,如果子問題還是太復(fù)雜,可以繼續(xù)分解,直至足夠簡化為止。這種方法被稱為分而治之 (divide and conquer) 策略,在程序設(shè)計(jì)方法學(xué)里,我們也稱之為模塊化 (modularization) 策略,如圖 4-3-6 所示。 ![]() 這樣,ANN 就演化為 DNN 技術(shù)了。DNN 首先用基本神經(jīng)網(wǎng)絡(luò)分類器 (classifier) 將化合物分為天然產(chǎn)物和非天然產(chǎn)物。然后再將兩種子類型化合物分為活性和非活性的化合物,讓同類數(shù)據(jù)進(jìn)行比較,可以提高模型的預(yù)測效果。 循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN,recurrent neural network) 訓(xùn)練神經(jīng)元的過程可以被視為成組地向神經(jīng)元發(fā)送信號,神經(jīng)元則處理這些信號組 (arrays)。每一組向量由若干信號數(shù)據(jù)單元組成。如果數(shù)據(jù)單元之間沒有相關(guān)關(guān)系 (即數(shù)據(jù)元素被發(fā)送的次序不影響對信號組的解釋,數(shù)學(xué)上稱各數(shù)據(jù)元素是彼此正交的),則上述機(jī)器學(xué)習(xí)模型能夠滿足需求。然而,很多學(xué)習(xí)過程,如理解句子,信號發(fā)送的次序很重要(數(shù)據(jù)元素彼此非正交)。只有少數(shù)“意思對稱的回文句”才可以忽略信號發(fā)送的次序。例如:“清水池里池水清”、“靜泉山上山泉靜”。雖然“潮隨暗浪雪山傾,遠(yuǎn)浦漁舟釣月明”是文學(xué)意義上的回文句,但是,正讀與倒讀仍然意義不同,信號發(fā)送次序仍很重要。由此可見,無論是自然語言理解,還是分子結(jié)構(gòu)編碼的解析,信號發(fā)送的次序都非常重要。我們要考慮句子中各種詞素的特性、詞義、與其它詞素的組合規(guī)則 (syntax and grammar)、和它們在句子中出現(xiàn)的時(shí)間次序。因此,需要將時(shí)序變量引入深度學(xué)習(xí)機(jī)制,即循環(huán)神經(jīng)網(wǎng)絡(luò) (recurrent neural network, RNN)技術(shù)。 圖 4-3-7 表示一個簡單的 RNN 架構(gòu)。RNN 也由輸入層 (紅色)、隱藏層 (黑色) 和輸出層 (藍(lán)色) 組成。這個創(chuàng)意的本質(zhì)是函數(shù)含有雙輸入與雙輸出變量:h’, f=(h, x)。輸入端變量 x 和 h 都會隨著時(shí)間演化而演化。x ![]() 圖 4-3-7. 簡單 RNN 的架構(gòu)和它的數(shù)學(xué)意義。Win 是輸入層到隱藏層的權(quán)重矩陣,Wout 是隱藏層到輸出層的權(quán)重矩陣,Wh 是上一時(shí)刻的隱藏層 st 作為下一時(shí)刻輸入的權(quán)重矩陣。 注意:圖 4-3-7 中的 RNN 只有一個循環(huán)單元是實(shí)際存在的,虛線部分只是該循環(huán)單元在不同時(shí)刻存在的數(shù)值狀態(tài),它的架構(gòu)沒有變化。訓(xùn)練完畢后,RNN 習(xí)得的知識存儲在權(quán)重參數(shù)矩陣W 里。這種簡單架構(gòu)又稱為 na?ve RNN(樸素 RNN)。 在訓(xùn)練時(shí),t 時(shí)刻向 RNN 發(fā)送 xt ,隱藏層此時(shí)刻的值是 st (st 的值從 xt 和 st-1 計(jì)算得出),最后輸出 yt 。這樣,模型習(xí)得前序輸入信號與后序輸入信號關(guān)聯(lián)起來,實(shí)現(xiàn)對句法的理解。因此,RNN 適合于研究子結(jié)構(gòu)與活性之間的關(guān)系,從分子結(jié)構(gòu)的 SMILES 編碼中提取與活性相關(guān)的子結(jié)構(gòu)。 雙向 RNN (bidirectional RNN) 簡單 RNN 解決了過去的信號單元對當(dāng)前的信號單元關(guān)聯(lián)的問題。然而,未來的信號單元對當(dāng)前的信號單元也會有關(guān)聯(lián)。因此,需要構(gòu)建雙向 RNN 以解決過去和未來兩個方向上的信號單元與當(dāng)前信號單元的關(guān)聯(lián)問題。在藥物設(shè)計(jì)中,例如,要預(yù)測兩個分子片段需要什么樣的分子片段 (化學(xué)基元 chemotype) 把它們聯(lián)結(jié)起來,需要查看前后兩個分子片段 (在句法分析中稱為上下文分析)。雙向 RNN 的本質(zhì)就是將兩個 RNN 串聯(lián)起來 (圖 4-3-8)。 ![]() 圖 4-3-8. 雙向 RNN 的架構(gòu)和它的數(shù)學(xué)意義。ha 和 hb 兩個函數(shù)在時(shí)序上正好相反。 圖 4-3-8 中的雙向 RNN 需要三個函數(shù),第三個函數(shù)合并前兩個函數(shù)的結(jié)果。而 ha 和 hb 兩個函數(shù)的形式可以不一樣,在藥物設(shè)計(jì)中,分子圖是無向圖,SMILES 表示的化學(xué)結(jié)構(gòu)中化學(xué)鍵沒有方向性 (配位鍵和氫鍵除外),ha 和 hb 兩個函數(shù)的形式應(yīng)該一樣。 長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò) (long-short-term memory, LSTM) 這種神經(jīng)網(wǎng)絡(luò)用來模擬大腦遺忘功能對學(xué)習(xí)效果的影響。藥物的分子結(jié)構(gòu)由分子結(jié)構(gòu)骨架和骨架上的取代基組成。骨架上的取代基對另一個取代基的影響有近程和遠(yuǎn)程影響之分,由骨架的特性 (例如芳環(huán)骨架與非芳環(huán)骨架不同) 決定,不能簡單粗暴地“一刀切”。在機(jī)器學(xué)習(xí)過程中,如果遺忘太快,就會因?yàn)椤疤荻认А倍荒堋皩W(xué)到”取代基對另一個取代基的遠(yuǎn)程影響;如果遺忘太慢,就會因?yàn)椤疤荻缺ā倍黾佑?jì)算成本,也會產(chǎn)生“過擬合”,太遠(yuǎn)程的影響也許微不足道。LSTM 的目的就是要解決這個問題。 LSTM 神經(jīng)網(wǎng)絡(luò)由細(xì)胞組成 (圖 4-3-9),它屬于 RNN,由 t 時(shí)刻的輸入 xt,細(xì)胞狀態(tài) ct,臨時(shí)細(xì)胞狀態(tài) ![]()
ht-1 與 ct-1 都攜帶上文的信息,進(jìn)入神經(jīng)元后,ct-1 與遺忘權(quán)重逐元素相乘,絕大多數(shù)取值為 0 或該位置上原來的值,像門一樣決定讓哪些 ct-1 的元素通過以及通過的比例,即選擇性地遺忘 ct-1 所攜帶的信息,或選擇性地通過 ct-1 所攜帶的信息。同理,輸入門選擇輸入信息 (即前向運(yùn)算 RNN 的結(jié)果) 。經(jīng)過輸入門處理后的信息就可以添加到經(jīng)過遺忘門處理的上文信息中去,這是 LSTM 神經(jīng)元中唯一的逐元素相加計(jì)算。這樣,上文的信息根據(jù)當(dāng)前的輸入遺忘了舊的信息,并添加了新的信息,就是新的 ct,它攜帶了上文的信息,如果當(dāng)前神經(jīng)元要輸出內(nèi)容,還要經(jīng)輸出門。即,經(jīng) Tanh 激活,與輸出權(quán)重 Wo 逐元素相乘,得到了當(dāng)前神經(jīng)元的輸出和 ht。 這樣 ct 攜帶長期記憶的信息,而 ht 攜帶短期記憶的信息,二者結(jié)合,LSTM 就有了長期和短期的記憶信息。 雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò) (bidirectional long-short-term memory, BiLSTM) 考慮到 RNN 有訓(xùn)練過程的時(shí)間前后的問題 (即上下文分析),因此,就有了雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)的架構(gòu) (圖 4-3-10)。 ![]() 圖 4-3-10. 雙向長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò) (BiLSTM) 架構(gòu)。 因此,BiLSTM 由兩個時(shí)序上正好相反的 LSTM 網(wǎng)絡(luò)在輸出端融合而成。如果輸入的是一個字符串 (句子),可以理解成 BiLSTM 由兩個 LSTM 層,一個從句子的開頭開始輸入訓(xùn)練,另一個從句子的尾端開始輸入訓(xùn)練,然后綜合兩個結(jié)果作為最后學(xué)習(xí)結(jié)果的輸出。BiLSTM 是及考慮了時(shí)序又考慮了長短期記憶的 RNN 學(xué)習(xí)機(jī)。 卷積神經(jīng)網(wǎng)絡(luò) (convolutional neural network, CNN) 我們以模仿人類視覺的模式識別為例解釋 CNN。為了從大尺寸信號源(數(shù)據(jù)矩陣)中提取信息,用小尺寸的矩陣,例如 m 維矩陣 (篩子 filter) 掃描 n 維矩陣 (信號源) 以提取想要識別的模式,過濾噪音,這里,m < n。例如,有經(jīng)驗(yàn)的化學(xué)家在判斷一個長鏈脂肪酸 (該分子的 SMILES 編碼可以長達(dá) 20 多個字符) 是飽和脂肪酸還是不飽和脂肪酸時(shí),不需要從頭到尾檢查分子中的每一個原子,而是快速檢查分子結(jié)構(gòu)中是否有雙鍵 (只有一個字符: “=”)!因此,CNN 不僅提高學(xué)習(xí)效率,也提高模式提取的能力,避免非決策性信息的干擾。 如圖 4-3-11 所示,CNN 主要由數(shù)據(jù)準(zhǔn)備、模式特征提取核模式識別三部分組成。在數(shù)據(jù)輸入層,首先對原始數(shù)據(jù)進(jìn)行預(yù)處理,包括去均值 (把輸入數(shù)據(jù)各個維度都中心化為 0,把樣本的中心拉回到坐標(biāo)系原點(diǎn))、歸一化 (將輸入數(shù)據(jù)值歸一化到確定的范圍,減少各維度數(shù)據(jù)取值范圍的差異而帶來的干擾);然后,用一個輸入為 m×n 維矩陣的核函數(shù) (kernel) 掃描原始數(shù)據(jù) (M×N 維矩陣,M>m, N>n),生成濾波后的數(shù)據(jù) (filtered data),枚舉出所有可能的子結(jié)構(gòu)模式。 ![]() 圖 4-3-11. 卷積神經(jīng)網(wǎng)絡(luò) (CNN) 的數(shù)據(jù)處理過程。 卷積層的任務(wù)是用神經(jīng)網(wǎng)絡(luò)將模式特征提取出來。首先,將核函數(shù)處理后的結(jié)果用激勵函數(shù) ReLU (rectified linear unit, 修正線性單元) 映射到神經(jīng)元。每個神經(jīng)元可視為一個濾波器 (filter)。這個過程可以反復(fù)進(jìn)行,把真正與性質(zhì)相關(guān)的“模式特征”提取出來。 反復(fù)卷積又稱為池化層 (pooling layer),去掉源數(shù)據(jù)中與特征判別無關(guān)的信息,留下最與性質(zhì)相關(guān)的、具有尺度不變性的特征;一般采用最大池化 (max pooling) 或均值池化 (average pooling) 策略。一般采用前者。 最后的輸出層就是普通的全連接層神經(jīng)網(wǎng)絡(luò),可以是單層或深度神經(jīng)網(wǎng)絡(luò)。 深度神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)的分子描述符應(yīng)用 起初,人們用傳統(tǒng)的分子描述符為輸入數(shù)據(jù)訓(xùn)練深度學(xué)習(xí)的模型,得到比傳統(tǒng)機(jī)器學(xué)習(xí)顯著優(yōu)秀的結(jié)果。例如,默克分子活動挑戰(zhàn)賽 (The Merck Molecular Activity Challenge) 的獲勝團(tuán)隊(duì)使用的多任務(wù)模型中包含大量基于分子描述符的預(yù)測模型,比隨機(jī)森林學(xué)習(xí)方法的效果提高了 15% [27]。用大量的分子描述符訓(xùn)練的大規(guī)模多任務(wù)網(wǎng)絡(luò)的確能顯著提高虛擬篩選和活性預(yù)測預(yù)測能力,但此類方法無法解析子結(jié)構(gòu)與活性之間的關(guān)系,對藥物設(shè)計(jì)的指導(dǎo)作用有限。 因此,人們重新考慮建立直接基于分子拓?fù)浣Y(jié)構(gòu)的深度學(xué)習(xí)模型?!吧窠?jīng)指紋” (neural fingerprints,NFP)就是早期努力的例子[28]。后來,人們提出了基于分子圖卷積的深度學(xué)習(xí)方法[29] 和它的改進(jìn)版 (graph convolution network, GCN),試圖動態(tài)提取分子子結(jié)構(gòu)特征,以客觀地建立子結(jié)構(gòu)與活性的關(guān)系[30]。然而,GCN 也沒有解決深度學(xué)習(xí)結(jié)果的直觀解析問題。 新的視角看待分子結(jié)構(gòu)線性編碼 分子結(jié)構(gòu)可以用SMILES 線性編碼表示(參見文末鏈接2)。雖然分子結(jié)構(gòu)的線性編碼在化學(xué)信息學(xué)中是老技術(shù),但是,我們可以用新的視角看待它:即,SMILES 編碼是描述分子中各個原子相互連接性的嚴(yán)謹(jǐn)?shù)淖匀徽Z言,有嚴(yán)格的句法 (syntax)。原子符號和化學(xué)鍵的符號都是嚴(yán)格定義的詞素 (元素符號為名詞,化學(xué)鍵符號為連接名詞的連詞,數(shù)字作為修飾詞描述名詞之間的環(huán)狀拓?fù)溥B結(jié)等)。因此,一個靶向化合物庫 (focused library) 就是一篇“文章”,其中的每一個分子用 SMILES 語句表示。整個“文章”蘊(yùn)涵了與靶標(biāo)結(jié)合的小分子應(yīng)該有的共同結(jié)構(gòu)特征。新視角與傳統(tǒng)的 QSAR 觀念的重大不同如下: 新視角與傳統(tǒng)的 QSAR 觀念的重大不同 (1) SMILES 語句蘊(yùn)涵的結(jié)構(gòu)特征不是事先預(yù)定義的子結(jié)構(gòu),沒有引入基于經(jīng)驗(yàn)的主觀偏見,而是隨著面向的靶標(biāo)不同而變化; (2) 這種蘊(yùn)涵的結(jié)構(gòu)特征表現(xiàn)的“結(jié)構(gòu)-活性”關(guān)系,可以通過機(jī)器學(xué)習(xí)算法自動發(fā)現(xiàn),并且可以有直觀的化學(xué)解釋。 因此,可以將原來處理自然語言的機(jī)器學(xué)習(xí)算法借來,用于發(fā)現(xiàn)化合物的子結(jié)構(gòu)與活性之間的關(guān)系研究。 注意機(jī)制 (attention mechanism) 與自注意機(jī)制 (self-attention mechanism) 注意機(jī)制是一種去除數(shù)據(jù)中背景噪音,以便從數(shù)據(jù)中提取有用信號模式的技術(shù),也是對人類或動物的注意力機(jī)制的模擬。人仰望天空時(shí),可以在大視野中發(fā)現(xiàn)飛翔的小鳥;鷹從幾千米高空發(fā)現(xiàn)地上的鼠;狗鼻從十幾萬種不同的氣味中聞出毒品;大象的象足能識別 15 公里外的超低頻震動;蛇舌能識別環(huán)境中微小的氣味和溫度的波動;啄木鳥從敲擊樹木的聲音確定樹干內(nèi)的蟲子的位置。這些注意力現(xiàn)象有共同的機(jī)制特征:即感知事物時(shí),不會對情景中的每一個數(shù)據(jù)點(diǎn)同等對待,而是注意特征性的 (如,變化快的、變化聯(lián)動的、與記憶的模式匹配的) 信息。 注意力的本質(zhì)是忽略無關(guān)信息而關(guān)注重點(diǎn)信息的能力。注意力缺失癥(attention deficit disorder,ADD;或attention deficit hyperactivity disorder,ADHD)會使人類失去學(xué)習(xí)能力。在前面的 CNN 方法的討論中,池化層也能去掉與特征判別無關(guān)的信息,可視為“粗放”型的注意機(jī)制。池化層的“贏者通吃” (winner takes all) 策略簡單粗暴,可能把偶爾強(qiáng)度高的噪音信號誤認(rèn)為有用信息 (假陽性),也可能把雖然強(qiáng)度不是最高,但確屬有用信息忽略 (假陰性)。而信號平均策略 (average pooling) 則可能使很多有用信息丟失,學(xué)習(xí)效果更差。 深度學(xué)習(xí)的注意機(jī)制主要是基于掩碼 (mask) 的注意機(jī)制,它通過加一層權(quán)重為關(guān)鍵特征作標(biāo)記,在訓(xùn)練過程中使深度神經(jīng)網(wǎng)絡(luò)習(xí)得需要關(guān)注的區(qū)域,即形成注意。 注意機(jī)制有分為軟注意 (soft attention) 和強(qiáng)注意 (reinforcement attention)。軟注意機(jī)制標(biāo)記數(shù)據(jù)區(qū)域或信號通道,是確定性的注意,具有可微性 (differentiability),即可以求得信號的變化率 (梯度),通過前向和后向反饋學(xué)習(xí)計(jì)算注意力的權(quán)重。 強(qiáng)注意是隨機(jī)預(yù)測過程,關(guān)注數(shù)據(jù)點(diǎn)的動態(tài)變化。強(qiáng)注意力具有離散性 (不可微),通過增強(qiáng)學(xué)習(xí) (reinforcement learning) 完成。 注意機(jī)制的計(jì)算由兩步組成:第一步計(jì)算輸入信號 (Q) 與以前習(xí)得的重要信號 (K) 的相似度或相關(guān)度;第二步對相似度加權(quán)求和并歸一化產(chǎn)生對給定的輸入信號賦注意力值。藥物化學(xué)中,重要信號 K 可以是優(yōu)勢子結(jié)構(gòu) (privileged substructures) 或骨架結(jié)構(gòu) (scaffolds)。例如,在研究小分子與靶標(biāo)共價(jià)結(jié)合時(shí),Michael 加成反應(yīng)的彈頭 (warheads) 受到關(guān)注,因?yàn)樗枪矁r(jià)結(jié)合的關(guān)鍵子結(jié)構(gòu)。如果把“結(jié)構(gòu)-活性”關(guān)系的發(fā)現(xiàn)過程理解為對 SMILES 化學(xué)結(jié)構(gòu)自然語言的處理過程,注意力機(jī)制可被表述為一個函數(shù),?? = ??(??,??,??),A 為注意力 (attention), 它的值表示詞素 Q 和 K 的相關(guān)度。如果詞素 Q 和 K 都是矩陣,則 A 也是相關(guān)度矩陣。輸入訓(xùn)練向量 X 時(shí),X 分別與三種權(quán)重向量 WQ, WK, WV, 叉乘變換為 Q,K,V 三個向量。 為了計(jì)算 A, 首先計(jì)算 Q 與 Ki 的相似度,i = 1,2,3,…n:
然后,計(jì)算相似度歸一化參數(shù): 因此,A 的值 (即詞素 Q 和 K 的相關(guān)度) 按下式計(jì)算: ![]() SMILES 數(shù)據(jù)訓(xùn)練結(jié)合自注意機(jī)制的 RNN 學(xué)習(xí)模型 SMILES 依據(jù)常見的化學(xué)鍵規(guī)則編碼分子結(jié)構(gòu)。例如,苯的結(jié)構(gòu)編碼是“c1ccccc1”。小寫字母“c”表示芳環(huán)碳原子,“1”表示環(huán)結(jié)構(gòu)結(jié)合處 (氫原子依照傳統(tǒng)的默認(rèn)規(guī)則,大寫的 C 代表非芳香碳原子)。深度學(xué)習(xí)算法從傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)模型發(fā)展而來。采用循環(huán)神經(jīng)網(wǎng)絡(luò) (recurrent neural network, RNN),將分子的 SMILES 編碼的字母依次序發(fā)送給 RNN 模型進(jìn)行訓(xùn)練。對 SMILES 進(jìn)行了預(yù)處理,以保留分子的手性中心、電荷、環(huán)等化學(xué)特征。 詞嵌入過程 (word embedding process) 詞嵌入源于自然語言處理研究,涉及各種語言模型和特征模型。效果上,它是將來自某個詞庫里的單詞 (或短語) 映射 (編碼) 到一個實(shí)數(shù)向量的過程。數(shù)學(xué)上,就是把一種數(shù)學(xué)結(jié)構(gòu)嵌入到另一種數(shù)學(xué)結(jié)構(gòu)中。例如,可以把一組整數(shù)集并入有理數(shù)集合中 (因?yàn)檎麛?shù)集是有理數(shù)集的子集合);也可以把一組有理數(shù)集并入實(shí)數(shù)集合中 (因?yàn)橛欣頂?shù)集是實(shí)數(shù)集的子集合)。 所以,這種技術(shù)被簡稱為 word2vec (即,words to a vector),通過神經(jīng)網(wǎng)絡(luò)技術(shù)可以實(shí)現(xiàn)。我們可以將詞嵌入技術(shù)擴(kuò)展到句子嵌入 (sentences to a vector, sen2vec),甚至全文嵌入 (articles to a vector, art2vec), 這類嵌入技術(shù)可以統(tǒng)稱為主題思想嵌入技術(shù) (thoughts to a vector, thought2vec),形成了現(xiàn)代機(jī)器翻譯的技術(shù)原理。翻譯就是將一篇外文文章從外文詞語/句子/文章空間映射 (或曰嵌入) 到本國語言的詞語/句子/文章空間之中。 同理,從大數(shù)據(jù)中提取規(guī)律或知識也可以用詞嵌入技術(shù)來實(shí)現(xiàn)。在生物信息學(xué),分析核酸序列或者氨基酸序列可以有 gene-vectors (GeneVec)或者 protein-vectors (ProtVec)技術(shù),它們是基于 n 元語法的詞嵌入技術(shù),統(tǒng)稱為 bio-vectors (BioVec) 技術(shù),可以用神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)。在化學(xué)信息學(xué),小分子結(jié)構(gòu)也可以用化學(xué)結(jié)構(gòu)編碼語言表示 (如,SMILES)。因此,從一組化合物庫的化學(xué)結(jié)構(gòu)集合提取出子結(jié)構(gòu)與活性的關(guān)系,也可以用詞嵌入技術(shù)來實(shí)現(xiàn) (chem-vectors, ChemVec,或者 molecules-vectors, MolVec)。其數(shù)學(xué)本質(zhì)可以表述為:針對一個生物靶標(biāo)的化合物庫 (a target-focused compound library),用 SMILES 語句組成的一篇“文章” (每一個 SMILES 語句表示一個能調(diào)控生物靶標(biāo)的分子),屬于某個化學(xué)分子多樣性空間。該“文章”的“主題思想”就是“含有一類化學(xué)子結(jié)構(gòu)的分子可以調(diào)控該生物靶標(biāo)”,屬于某個化學(xué)型 (chemotype) 空間?;瘜W(xué)型由“子結(jié)構(gòu)”集合和集合中子結(jié)構(gòu)的組合規(guī)則集合 (句法規(guī)則) 組成。結(jié)構(gòu)與活性的關(guān)系 (SAR) 的提取過程,就是用 ChemVec 詞嵌入技術(shù)將該化合物庫“翻譯”為能調(diào)控該生物靶標(biāo)的化學(xué)子結(jié)構(gòu)的組合。數(shù)學(xué)上,這也是把一組分子嵌入 (映射) 到另一組分子 (子結(jié)構(gòu)) 之中。 這樣,表示化合物庫分子結(jié)構(gòu)的 SMILES“語句”先被編碼成獨(dú)熱矩陣 (one-hot matrix),然后在嵌入層被變換成詞嵌入矩陣 (word embedding matrix)。對給定的分子的 SMILES 編碼,它有 n 種 SMILES 標(biāo)記符號 (令牌/詞素, token) ,其分子嵌入序列 (sequence of molecular embedding) 為: ![]() 其中 ??i 是 d 維令牌矩陣嵌入的第 i 個令牌向量。M 是代表一個分子的 n×d 的二維矩陣。 結(jié)構(gòu)-活性預(yù)測的深度學(xué)習(xí)模型架構(gòu) 如圖 4-3-12 所示,我們的模型由 BiLSTM、自注意機(jī)制 (為 BiLSTM 隱藏層提供權(quán)重向量)、完全連接屬性預(yù)測層組成。 ![]() 圖 4-3-12. 結(jié)構(gòu)-活性預(yù)測的深度學(xué)習(xí)模型架構(gòu)。 ![]()
如果每個單向 LSTM 的隱藏單元號為 u,則 H 的尺寸為 n×2u。 模型的預(yù)測值與分子的何種子結(jié)構(gòu)相關(guān)實(shí)際上就是確定令牌和活性的對應(yīng)關(guān)系,這可以用自注意機(jī)制來實(shí)現(xiàn)。注意機(jī)制將整個 LSTM 隱藏狀態(tài) H 作為輸入,并輸出標(biāo)注向量 (annotation vector) a: ![]() 式中 ??1 是維度為 da×2u 的權(quán)重矩陣, ??2 是長度為 da 的可調(diào)參數(shù)向量。向量 a 有 n 個分量, 與 H 的長度一致。激勵函數(shù) softmax 的值是歸一化的。LSTM 的隱藏態(tài) H 根據(jù) a 提供的權(quán)重求和而得。注意力系數(shù)通過相關(guān)令牌潛向量 hts,直接確定分子中的哪些部分與活性相關(guān)。注意到該向量指向分子的特定子結(jié)構(gòu),如特殊的氧原子或三鍵。然而,分子中可能有多個子結(jié)構(gòu)共同與活性相關(guān),例如,對特定靶標(biāo)而言,“c1ccccc1”(苯環(huán)) 和“CCCC”(丁烷基) 都是疏水基團(tuán),都與活性相關(guān)。因此,需要多個向量以實(shí)現(xiàn)對化學(xué)子結(jié)構(gòu)的多重關(guān)注。 將 ??2 擴(kuò)充為 r×da 矩陣 ??2, 就會將標(biāo)記向量 a 擴(kuò)充到標(biāo)記矩陣 A。其中 r 也是可調(diào)權(quán)重參數(shù)。A 按(10) 計(jì)算:
這樣,標(biāo)記結(jié)構(gòu)-活性關(guān)系的自關(guān)注的分子嵌入矩陣 Ma 可以按(11)式計(jì)算:
??a 是 r×2u 矩陣,它將全聯(lián)結(jié)層與性質(zhì)預(yù)測結(jié)合起來。 在輸入神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)機(jī)之前,分子的化學(xué)結(jié)構(gòu)數(shù)據(jù)變換成詞嵌入矩陣 (word embedding matrix) 的過程如圖 4-3-13 所示。 ![]() 圖 4-3-13. 分子的化學(xué)結(jié)構(gòu)數(shù)據(jù)變換成詞嵌入矩陣的流程。 結(jié)構(gòu)-活性關(guān)系的展示 上述學(xué)習(xí)過程的結(jié)果之一是注意力權(quán)重 (attention weights),它們反映了子結(jié)構(gòu)與活性或性質(zhì)的關(guān)系,而注釋矩陣 A 直接指明哪些原子和化學(xué)標(biāo)記與活性相關(guān)。注意嵌入矩陣 Ma 中的每一行對應(yīng)于注釋向量 ai。該向量中的每個元素對應(yīng)于該位置上的令牌 (token) 的 LSTM 隱藏狀態(tài)。根據(jù)這些數(shù)據(jù),可以繪制熱圖 (heat map) 以指示相應(yīng)的子結(jié)構(gòu)對活性的重要程度。通過對注釋向量進(jìn)行總體求和歸一化權(quán)重向量,解析學(xué)習(xí)模型所利用或忽略的子結(jié)構(gòu)標(biāo)記,最終可以將 SMILES 轉(zhuǎn)換為化學(xué)結(jié)構(gòu)圖,并標(biāo)記出子結(jié)構(gòu)中與活性/性質(zhì)相關(guān)原子的重要程度 (圖 4-3-14)。 ![]() 圖 4-3-14. 子結(jié)構(gòu)與活性關(guān)系的自動發(fā)掘與展示。 機(jī)器學(xué)習(xí)模型的實(shí)現(xiàn)、訓(xùn)練與效果評價(jià) 自關(guān)注機(jī)制和 BiLSTM 模型可以用深度學(xué)習(xí)開源代碼工具 Pytorch (https://pytorch.org/)實(shí)現(xiàn)。模型的預(yù)測結(jié)果用特征曲線下面積(the area under the receiver operating characteristic curve, AUC) 評價(jià)?;貧w模型用預(yù)測值與實(shí)驗(yàn)值均方誤差 (the mean squared errors, MSE) 評價(jià)。AUC 值在 1.0 (最佳模型) ~ 0.5 (接近隨機(jī)模型) 之間。訓(xùn)練集與測試集被隨機(jī)地按 7:3 劃分。最初的隨機(jī)參數(shù)設(shè)定至少應(yīng)該重復(fù)三次。機(jī)器學(xué)習(xí)模型的訓(xùn)練步驟依經(jīng)驗(yàn)而定,可達(dá) 1~2 千萬次步,學(xué)習(xí)率可按 0.001, 0.003, 0.005, 0.01 序列增加。 模型的訓(xùn)練與優(yōu)化過程如圖 4-3-15 所示。 ![]() 圖 4-3-15. 機(jī)器學(xué)習(xí)模型的實(shí)現(xiàn)、訓(xùn)練與驗(yàn)證。 第三節(jié)前半部分的內(nèi)容的關(guān)鍵點(diǎn) ANN 是函數(shù)單元,它有輸入端和輸出端;神經(jīng)網(wǎng)絡(luò)是函數(shù)單元經(jīng)輸入/輸出端的相互串聯(lián)或并聯(lián)而形成的網(wǎng)絡(luò) 擴(kuò)充 ANN 的隱藏層就形成了 DNN 以適應(yīng)自然規(guī)律的層次性 RNN 的必要性源于自然規(guī)律的遞歸性 BiLSTM 的必要性源于自然規(guī)律的時(shí)序性和非正交性 CNN 的必要性源于自然規(guī)律的模塊性和邏輯性 注意力機(jī)制的必要性源于任何數(shù)據(jù)信號有噪聲需要排除才能保障學(xué)習(xí)效果 SMILES 是描述小分子結(jié)構(gòu)的自然語言,QSAR 的問題可以借用自然語言處理算法予以解決 鏈接1: http://www./ncct/dsstox/MoreonSMILES.html#Tutorials 鏈接2: www.daylight.com/dayhtml/doc/theory/theory.smiles.html |
|
|