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