白話解讀:為什麼AI應用語言學觀點可以提早捉到病毒變異?

我們能不能將病毒蛋白的基因序列想像成類似人類的自然語言?這又跟快速掌握病毒變異有什麼關係?而人工智慧又能幫什麼忙?從這幾個問題出發,學者們透過自然語言處理(NLP, Natural Language Processing)生成蛋白質序列並縮短預測病毒突變的時間。這究竟是如何做到的?

在現代生物學裡,已經可以把DNA解析成四種元素的排列組合,也就是腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)和鳥嘌呤(G)。這四個字中文有點難,不過記成英文「G貓」(GCAT)就好記多了。生物的DNA,事實上就是由這四個符號代表,組成一個長長的字串來記錄的。像是 "-GCACCACGGCGCCGCGGTGCCATG-" 代表的就是 DNA 裡的一段序列。

雖然到目前為止還沒完全掌握正常DNA序列的排列方式,但生物學家已經知道對某種生物而言,健康正常的 DNA 序列,大概可以有某些排列方式。如果它不是這種排列方式,就表示這個生物可能受到輻射線或是病毒感染,(因為病毒需要把自己的DNA插入生物細胞裡,才能取得生物細胞的複製能力)等等,就很可能會產生不健康的生物個體」。

將文法相似度視為「感染力」

正因為我們還沒有完全掌握正常 DNA 能有哪些表現,但是我們手上有病例可以做為不健康DNA序列的資料源,因此研究這個議題的學者們定義「不健康的 DNA 序列,就是合文法的序列」而「健康的 DNA 序列,就是不合文法的序列」。這麼一來,就能利用NLP方法裡歸納文法的工具來分類,「某個序列,看起來比較像是合文法的模樣,看來它是被感染了;另一個序列,看起來比較像是不合文法的模樣,那麼它應該是健康的」。

要注意的是,因為NLP工具裡做的「文法」只是一個「相似度」的計算,其實並不能真正地一刀切下判斷「合文法」與「不合文法」,所以在研究中也是利用這個特性,把「相似度」當做「感染力」來看待。

但光是這樣是不夠的,生物是活體,因此它會「突變」。突變的序列會「藏」在看似正常的序列裡,可能就有點像是「藏頭詩」一樣,得要顧及「啊!這段看起來人畜無害的文字,其實是在罵當今聖上呀!」的上下文語境,才能把這個藏起來的片段抓出來。在這篇文章裡講的就是某些抗體 (antibody) 只會老實地照原文方向讀下去,因此就錯過了藏起來的突序訊號,免疫系統也就沒有抓到機會把這個生病的細胞殺掉了。

啊原來這是首藏頭詩!

從這些資料特性以及操作定義看來,這個研究的材料有幾個特性:

  1. 資料少 (「不健康的 DNA 序列」和「健康的 DNA 序列」兩種資料相比,不健康的樣本資料顯然少很多)
  2. 訊號有局部性的「不健康 DNA 序列」(local flag, 用 grammar 抓)
  3. 訊號有語境性的「突變 DNA 序列」(contextual flag, 用 semantics 抓)

這麼看來,不太有辦法利用太新的諸如 GPT-3 這類渴求大數據的多層類神經網路模型來做訓練。所以研究團隊就直接用 LSTM 這個牌子老,信用好,從「沒什麼資料,電腦速度又不快的時代」就開始使用的建模工具,來產生這個「文法」的模型。而且 LSTM 裡的 "L" 本就是 "long-term" 的意思,可以抓到語境性的上下文特徵 (semantics)。而 "S" 指的是 "short-term" 可以抓到局部性的特徵 (grammar)。

這麼一來,把模型映射到一個數學空間裡的話,就會發現「呀!剛好那些突變的序列,都有近似的上下文特徵呢!(就像藏頭詩表現都在講些無關緊要的事)」,而且呈現集中在某一區的分佈。然後,我們只要再確認「這一區裡的序列,的確也都符合文法 (也就是具有感染力)」,那麼就進一步可以肯定「這一段絕對是有感染力的序列,只是發生突變了」。或者用比喻說就是「這一段絕對是藏頭詩,只是偽裝成在稱讚大白菜好吃!」而已。

AI應用的「數學觀點」與「語言觀點」

和資料會說話,資料愈多、說得就愈清楚的大數據「數學觀點」稍有不同的是,從「語言觀點」來看,資料愈多,雜訊就愈多,因此,語言觀點會先定義「基礎結構是什麼」,如此一來,就變成規則愈強烈,想要發掘的現象就會愈清楚。

因此當你遇到「資料不多」的條件,或是特別期待「預測解釋性要很強烈」的時候,就很適合採用「語言觀點」這種方法。

這個研究漂亮的地方就在「每個星期收到的 COVID-19 病毒株都一直在突變,每個星期都變,就表示每一株的資料都不多」而醫學又是一個非常需要「解釋」的應用科學。因為知道前因後果,才能避免頭痛醫頭,腳痛醫腳。綜合這兩點,因此採用「Grammar / Semantics」的 NLP 方式,就能得到很亮眼的結果。

展望未來發展,因為我們對 DNA 序列的理解,還不到像語言學對「語言結構」的理解,因此還是要藉由 LSTM 進行建模與分類。如果有朝一日我們完全理解 DNA 哪一段是在序列會決定雙眼皮還是單眼皮,哪一段是決定尖下巴還是圓下巴時,我們甚至可以不用 LSTM。只要把 DNA 序列「套進這個已知的結構」,就會知道「咦?這段怎麼說人類會長個花枝狀的下巴?這一定是外來的病毒!」了!

附帶一提,因為現代生物學用 GCAT 符號來記載 DNA 序列。而在電腦裡 GCAT就像語言一樣,只是一個字串而已,因此幾乎所有處理自然語言的工具,現代生物學都能拿來用。可說是工具相通的兩個學門。

深入解析「如何利用機器學習演算法了解病毒」

看過語言學家對於病毒蛋白基因的有趣類比,你是否也好奇資料科學家的「數學觀點」會是什麼呢?原本是用來學習人類語言的 AI 語言模型,又要如何學習病毒變異的語言呢?想知道關於「病毒的語言模型是如何建立的」,可以看看資料科學家這一篇:《AI如何讀懂病毒「語言」協助防疫》