ICLR 2020 | 利用深度展開算法尋找RNA的二級結構

Chen, Xinshi, et al. "RNA Secondary Structure Prediction By Learning Unrolled Algorithms."  ICLR (2020).

閱讀更多,歡迎關注公衆號:論文收割機(paper_reader)
因爲排版問題,很多圖片和公式無法直接顯示,歡迎關注我們的公衆號點擊目錄來閱讀原文。

引言


 

衆所周知,RNA(核糖核酸) 是生物體內重要的遺傳信息載體。構成RNA的鹼基主要有4種,即A(腺嘌呤)、G(鳥嘌呤)、C(胞嘧啶)、U(尿嘧啶) 。雖然RNA是單鏈結構的,但在我們的身體裏,RNA中的部分鹼基往往會相互配對,形成複雜的二級結構。如圖一所示,一條長長的RNA單鏈,其內部互相配對形成複雜的網絡結構。

 

圖一 RNA的二級結構 (via Wikipedia)

 

那麼,如果給定了某個RNA的鹼基順序,又應該如何來預測該RNA的二級結構呢?對於這一問題,傳統的解決方法是將它看做一個類似於字符串匹配的問題,並用類似動態規劃一類的算法解決。而這篇ICLR文章採用深度學習和優化問題相結合的方式設計模型,其效果遠超傳統方法。下面就讓我們一起來學習一下文中解決問題的具體方法和設計思路。

 

 

背景與挑戰


 

RNA單鏈作爲由四種鹼基(A,G,C,U)構成的單鏈,可以被看做一個一維序列。而它的二級結構可以被看做一張圖,配對的節點之間互相連邊。模型需要預測的,就是這張圖的鄰接矩陣。在過去,這一類問題往往是用動態規劃算法來解決的。然而,動態規劃算法面臨着兩個明顯的問題。

圖二 一段RNA和它對應的鄰接矩陣


第一,這一類算法速度太慢。如果用動態規劃解決這一問題,容易知道,當RNA的長度爲L時,算法的時間和空間複雜度應都爲O(L2)左右。某些優化算法可能可以達到線性複雜度,可這必定以犧牲準確度爲代價。

 

第二,動態規劃算法計算的結果往往不是完全正確的,因爲現實中RNA的二級結構可以頗爲複雜。比如圖二中,兩個環之間的鹼基又互相配對,形成複雜的三維結構。

 

圖三 一種複雜的鹼基配對模式

 

而另一方面,如果用一個深度學習模型來預測RNA的結構呢?很容易想到,深度學習模型也會遇到諸多挑戰。

 

首先,模型的損失函數難以確定。如果用深度學習模型來解決這一問題的話,模型應當接受一維的RNA序列(假設長度爲L)作爲輸入,輸出則應是一個二維的鄰接矩陣(大小爲L*L)。可以看出,這一問題和傳統的分類或迴歸任務皆不同,因而傳統的損失函數難以適應這一任務。

第二,RNA鹼基之間的配對是遵循一定規則的。比如只有A與U,C與G和G與U之間纔有可能存在配對關係。還有,如果兩個鹼基之間相隔比較近時,它們就算互相匹配也不會生成穩定的氫鍵,因爲整條RNA長鏈不會在中間有尖銳的彎折。在這麼多的規則約束下,如何訓練一個更高效的神經網絡,使得它的每一個輸出都符合上面的這些規則呢?

 

今年的ICLR 2020 中,佐治亞理工大學和阿卜杜拉國王科技大學合作提出了一個深度模型E2Efold,來解決以上這些問題。下面就讓我們來一起看看,這篇文章裏是如何定位這些挑戰的。

 

模型


 

這篇論文中提出的端到端模型由兩部分模塊構成:深度評分模型(Deep score model)和後處理神經網絡(Post-processing network)。前者用來生成一個矩陣輸出,其中的每個值描述了序列中兩個節點的關聯強弱,後者對這個矩陣進行處理,使得最終結果中矩陣的每個值接近0 或1 (無連接或有連接),且符合以下一系列規則約束。

 

 

  • 規則一  只有三種鹼基對可以結合:B = {AU, UA}U{GC, CG}U{GU, UG},若xi ,xj不屬於B, 則 Aij = 0。

  • 規則二 鹼基配對形成的環中不存在尖角。若 |i - j| < 4,則Aij = 0。

  • 規則三 每個鹼基至多隻能與一個其他鹼基配對。對任意i,∑jAij <= 1。

 

在下面的章節,本文將具體描述深度評分模型和後處理神經網絡中具體的技術細節,闡明模型是如何達到以上約束的。

 

模塊一 深度評分模型(Deep score model)


 

圖四介紹了深度評分模型(DEEP SCORE NETWORK)的結構。從圖中可以看出,深度評分模型接受RNA序列的one-hot表達作爲主要輸入,通過Transformer Encoder和2D 卷積層計算一個矩陣輸出 U。

除此之外,模型還使用了各個節點的位置表達作爲輔助輸入。方法是,把各個覈算的絕對位置(1, 2, 3, ..., L)和相對位置(1/L, 2/L, 3/L, .., 1)作爲輸入,其中L是輸入序列的長度。在經過一系列特徵映射(例如正弦函數,多項式函數等)和一個MLP之後,生成每個位置特定的表達。

經過深度評分模型後,輸出U是一個L*L的矩陣,其中每個值代表了兩個節點之間的關聯大小。

圖四 深度評分模型(Deep score model)的結構

 

模塊二 後處理神經網絡(Post-processing network)


 

深度評分模型的輸出U中每個值代表了兩個節點之間關聯大小。然而,這個值往往並不是0或1而是介於兩者之間的一個實數。另一方面,這個值的計算也並沒有考慮到上文中的三條約束規則。爲了輸出一個符合上面所述約束規則,其中的值又是非0即1的矩陣,文中採用了優化方法來解決這一問題。

 

 

爲了得到符合規則的結果,除了深度評分模型的輸出U外,文中引入了另外一個同樣大小爲L*L的矩陣A進行優化。優化目標爲:

max 1/2 <U - s, A>  s.t . A∈[0, 1]和上文的三條規則

其中< , >是矩陣內積運算,s是一個偏移量。很明顯,在這種情況下,想要達到最優化,需要在所有uij 大於s的情況下,令對應的 aij = 1。這樣的話,當模型達到最優化時,矩陣A就是我們想要得到的最終結果。

 

 

下一步,進一步將三條規則約束都嵌入到矩陣A的優化條件中。我們假定A = T(Â) = 1/2 (Â ◦ Â + (Â ◦ Â)T) ◦ M。其中,矩陣M也是一個L*L的矩陣,其定義爲:如果矩陣中某一位置對應的兩個鹼基可以配對(屬於集合B)且距離小於4,那麼該位置的值爲1,否則爲0。可以看出,矩陣M是常數。而且,A是M通過位乘計算得到的,這使得矩陣A也可以滿足規則一和規則二。

進一步地,通過對Â施加 l1 懲罰項,使得矩陣A的值變得稀疏。此時,優化目標爲:

max 1/2 <Uij - s, T(Â) > - ρ || Â ||1  s.t . 規則三

此時,引入Â的目的達到了,Â中的每個值都變成了無約束的任意實值,而整個問題變成了擁有L個不等式約束的規劃問題。由於規則三令RNA序列中的每個節點(總共L個)的度數不大於1,故而約束的數量爲L。很自然地,我們可以引入L個拉格朗日乘子 λ, 將一系列不等式約束轉化爲等式約束:

min λ maxA 1/2 <Uij - s, T(Â) > - < λ, ReLU(∑i Aj -1) > - ρ || Â ||1

其中,λ 是L個拉格朗日乘子構成的向量,其值不小於0。∑i Aj (在後文也寫作A1,即矩陣A與一個長度爲L的全1向量的乘積)是對矩陣A每一行求和的結果,是一個長度爲L的向量。對這個向量中的每一個元素減一,並讓其通過ReLU函數,其結果仍是長度爲L的向量。

 

利用主對偶方法,可以對上面的優化目標進行迭代優化。下圖給出了在第t次迭代時,計算第t+1次迭代值的方法。總的迭代次數T是超參,隨着迭代次數的增長,結果也會越來越接近最優。

圖五 各個參數的迭代更新公式

 

其中,α, β 是步長而γα, γβ 是 decaying coefficients。注意它們僅僅是這個優化問題中的參數而並非整個深度模型的參數!在下圖中,每一次迭代,都會根據這些參數重新計算相應的Â,A和拉格朗日乘子 λ的值。

 

技術介紹 展開算法(Unrolled algorithm)


 

僅僅有上面的優化算法是不夠的,我們需要把前面的深度學習模型和迭代優化算法結合起來,才能在模型計算出矩陣U之後,立刻計算出相應的A。Unrolled algorithm 就是深度模型中的一個重要技術,可以在端到端神經網絡之中嵌入迭代算法,並同時訓練神經網絡和迭代算法中的參數。

2010年,Karol Gregor 和 Yann LeCun最早提出了Unrolled algorithm技術,用Iterative Shrinkage and Thresholding Algorithm(ISTA)來快速估計稀疏編碼。其核心思想十分簡單:將輸入X反覆通過迭代模塊S來求得最終結果Z。

圖六 展開算法(Unrolled algorithm)流程

 

在本文中,根據上文的迭代公式,作者設計了PPcell模塊和相應的PP網絡。將上文深度神經網絡的輸出直接輸入到PP網絡中後,PP網絡會計算各個變量(Â,A和λ)的初始值,然後將其放入PPcell中反覆迭代,最終輸出的A即是我們想要的結果,符合各個約束的鄰接矩陣。

圖七 PPcell模塊和PP網絡

 

注意到上面的算法雖然是優化過程中的迭代公式,在字面上存在計算偏導數的過程,然而在事實上,上述算法僅僅是參數正向傳播的過程。在實現時,上述算法直接與深度評分網絡相連且一起訓練,而算法中的參數集合φ(其中包含迭代算法的步長,decaying coefficients等)也是可訓練的參數。而只有PPcell的迭代次數T是這個端到端模型真正的超參數。softsign(c) 是一個可微的符號函數近似,等於 1/(1 + exp(−kc)),其中 k是溫度值.

 

技術介紹 可微F1損失函數


 

由於這個神經網絡面對的任務既不是分類也不是迴歸,因而對於這個特殊的任務,我們需要一個特殊的損失函數。這篇文章中定義了可微F1損失函數,利用對每張圖預測結果的F1值的近似計算進行訓練。

假設模型得出的預測值是鄰接矩陣A而真實結果是A*,該文中近似計算真正例,假正例,真反例,假反例的值分別爲(〈 . , . 〉是兩矩陣的內積):

TP=〈A, A*〉, FP=〈A,1−A*〉, FN=〈1−A, A*〉, TN=〈1−A,1−A*〉.

由於 F1度量 = 2TP/(2TP + FP + FN),因此這篇文章提出了模仿F1度量的損失函數:

L−F1(A, A*) := −2〈A, A*〉/ (2〈A, A*〉 + 〈A, 1 − A*〉 + 〈1 − A, A*〉)

用來對每一條RNA計算預測結果的梯度。將一個batch中所有RNA計算出來的損失函數平均,就得到了模型優化的總體損失函數。

 

 

實驗


 

本文在ArchiveII及RNAStralign兩個數據集,共10類30451種RNA結構上進行了實驗。在實驗中,E2Efold取得了比主流極限模型更好的效果,其提升大約在20%左右。

 

爲什麼會取得這樣的效果提升呢?文中以在RNA中經常出現的“假結”現象爲例對模型結果進行了可視化。所謂“假結”(Pseudo-knot),就是在下圖(ii)中出現的情況。

 

圖八 各種RNA二級結構

 

下面我們選取文中的一個RNA實例,看看E2Efold和其他極限模型都給出了什麼樣的結果。

這是該RNA的真實二級結構

 

這是E2Efold模型給出的預測結果


 

這是其他基線模型給出的預測結果

 

結論


 

深度學習的革命性意義,在於它的表現遠超過去的非深度方法。因此,這類將深度學習方法應用到過去從未使用過機器學習方法來解決的領域,並與非深度方法相比較的文章,是有着很大意義的。

 

然而,在低處的果實已經被採摘完的今天,這樣的“處女地”問題往往充滿了挑戰。例如,數據規模不夠大,需要遵循某些規則約束,並非傳統的分類問題,或是對模型可解釋性有要求。在這種情況下,單純地應用過去的深度模型是遠遠不夠的,我們往往還需要進行某些數學上的推導,才能使模型更好地適應這些要求。

 

參考文章

Gregor, Karol, and Yann LeCun. "Learning fast approximations of sparse coding." Proceedings of the 27th International Conference on International Conference on Machine Learning. 2010.

閱讀更多,歡迎關注公衆號:論文收割機(paper_reader)
因爲排版問題,很多圖片和公式無法直接顯示,歡迎關注我們的公衆號點擊目錄來閱讀原文。


往期文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章