陳 偉,徐 云
1.中國科學技術(shù)大學 計算機科學與技術(shù)學院,合肥 230026
2.安徽省高性能計算重點實驗室,合肥 230026
在生物細胞中,整個機體的正常運轉(zhuǎn)是通過生物實體之間的相互作用共同完成的。如圖1所示,在代謝過程中,包含多種生物實體的相互作用,其中任何一個環(huán)節(jié)出現(xiàn)問題都可能導致機體紊亂。生物實體作用關(guān)系提取在生物醫(yī)學研究領域有著廣泛的應用。例如,蛋白質(zhì)-蛋白質(zhì)相互作用在許多生命過程中發(fā)揮重要作用,這些過程有助于發(fā)現(xiàn)治療疾病的藥物靶點[1]。同樣,藥物-藥物作用產(chǎn)生的不良反應對人們健康也有影響,國際醫(yī)學組織估計,每年有超過40 億美元用于治療可預防的藥物不良反應[2]。研究生物實體之間的相互作用關(guān)系對理解生命機制和醫(yī)藥研發(fā)至關(guān)重要。
圖1 細胞代謝過程中部分生物實體相互作用
如今,生命科學研究者通常將研究成果發(fā)表到科學文獻進行公布和傳播。與此同時,他們經(jīng)常檢索文獻,獲取領域相關(guān)的信息。目前生物醫(yī)學文獻數(shù)量巨大,增長速度遠遠超過其他科學領域。大量的生物醫(yī)學知識以非結(jié)構(gòu)化的形式存在于海量的文獻中,通過人工方式進行文獻檢索并提取信息成為了一個艱難的任務。例如,美國國家醫(yī)學圖書館建立的MEDLINE生物醫(yī)學文獻數(shù)據(jù)庫,收錄了從1950 年至今的5 639 個出版刊物,總計文獻記錄超過2 600 萬個,目前每年仍遞增30~35萬文獻[3]。如何在海量的生物醫(yī)學文獻中有效地獲取相關(guān)知識,是生物醫(yī)學領域?qū)W者面臨的嚴峻挑戰(zhàn)。隨著文本挖掘技術(shù)的發(fā)展,可以自動從海量生物醫(yī)學文獻中提取生物實體相互作用關(guān)系,進而方便生命科學研究者獲取信息,輔助他們的研究工作,這將對生命科學領域的研究具有廣泛的應用意義。
目前,隨著深度學習的發(fā)展,有較多工作借助深度方法提取生物實體關(guān)系,而現(xiàn)有基于深度學習方法的工作還處于初級階段。大部分工作仍然依靠領域經(jīng)驗手工設計特征,然后將手工特征結(jié)合詞向量,再通過傳統(tǒng)CNN 或者LSTM 等淺層模型來提取生物實體關(guān)系。由于這些特征大部分是在有限的訓練集上進行設計的,可能不適用其他數(shù)據(jù)集。另外,一些工作通過融合多種淺層模型來提升預測效果,但這種方法會使得模型變得龐大和復雜。所以本文目的是設計一種普適性更好的深層模型,通過模型自己學習出表達關(guān)系的語義,進而提取各種生物實體關(guān)系。本文方法未通過手工設計額外的特征,只利用動態(tài)詞向量和位置向量作為輸入,增強了模型的魯棒性,然后通過Attention 機制賦予詞匯權(quán)重,并利用殘差單元構(gòu)成深層多通道CNN模型,讓模型學習出表達關(guān)系的特征,最終通過實驗,驗證了本文的方法對生物實體關(guān)系提取任務的有效性。
生物實體作用關(guān)系提取是指在自由文本中找出任意實體(如,蛋白質(zhì)、藥物等)間的相互作用信息。當前大多數(shù)研究是提取句子級別的二元實體關(guān)系信息,即提取一個句子中任意兩個實體間的作用關(guān)系。
該領域普遍將關(guān)系提取任務抽象成分類問題。首先通過專家預定義一些關(guān)系類別,在進行關(guān)系提取時,需要設計方法識別出任意兩個實體間作用屬于哪一類[4]。例如,圖2 的化合物-蛋白質(zhì)關(guān)系提取,句子“We conclude that erg3 can be blocked by sertindole and pimozide.”包含三個生物實體,通過兩兩組合可形成三個實體對。研究者需要設計方法識別出這些實體對之間的關(guān)系,如:
圖2 化合物-蛋白質(zhì)關(guān)系提取示例
通過文本挖掘提取生物實體關(guān)系,一直受到研究者們關(guān)注。早在1988 年,Swanson 等[5]通過文獻挖掘發(fā)現(xiàn)了鎂缺失與偏頭痛的醫(yī)學關(guān)系?,F(xiàn)在越來越多的研究者和組織參與這項工作,如著名的文本挖掘組織,BioCreative(http://www.biocreative.org/),每年都會組織有關(guān)生物醫(yī)學文獻挖掘的競賽,積極推動了本領域研究的發(fā)展。生物實體作用關(guān)系提取的研究方法主要有以下四種:實體詞共現(xiàn)、模式匹配,機器學習和深度學習方法。
實體詞共現(xiàn)常用共現(xiàn)頻率來判別實體間是否有關(guān)系。文獻[6]開發(fā)的在線應用STITCH 就是一個例子。但是此方法不能提供關(guān)系的類型和證據(jù)。模式匹配方法,如,文獻[7]利用最大頻繁序列思想自動總結(jié)文本中的規(guī)則,進而挖掘?qū)嶓w關(guān)系。此方法往往獲得較高的準確率,但設計覆蓋全面的模式很難。而使用機器學習的方法,效果好壞和構(gòu)建的特征有很大關(guān)系。文獻[8-9]使用兩階段的方法提取藥物-藥物關(guān)系,通過設計豐富的語義特征,首先判斷實體間是否存在關(guān)系,然后再對關(guān)系進一步分類,該過程較為繁瑣。近來深度學習方法發(fā)展迅速,文獻[10]提出了句法CNN,使用句法詞嵌入提升了模型的性能。文獻[11]通過組合LSTM 和CNN 等模型,使用投票法識別了文獻中化合物-蛋白質(zhì)關(guān)系。
傳統(tǒng)基于實體詞共現(xiàn)和模式匹配的方法不能滿足目前大規(guī)模語料上的關(guān)系提取,基于機器學習的方法不僅需要設計大量專業(yè)特征,而且在多分類問題上需要訓練多個分類器,模型比較復雜。目前,采用深度學習的方法還有很大提升空間。這些使用深度學習的模型大多使用靜態(tài)詞向量,對于新詞、組合詞不能產(chǎn)生對應的詞向量。此外,由于語料中正負樣本不平衡影響模型的性能,以往的方法通常采用模型組合或過濾樣本來保證樣本平衡[10,12],但過濾樣本需要有較強的專業(yè)知識設計過濾規(guī)則,該過程不僅繁瑣,還會降低模型的泛化性。所以,本文提出MCCNN模型,它利用BERT[13]產(chǎn)生動態(tài)詞向量,使相同的詞匯在不同的句子中能夠根據(jù)上下文語境產(chǎn)生不同的向量表示,這可以克服靜態(tài)詞向量的缺點。為了提高對長句子的提取能力,設計了Attention機制,使模型能夠?qū)W習句子的內(nèi)部依賴特征。另外,在樣本不平衡問題上,為了保持數(shù)據(jù)原有分布,減少人工干預并降低成本,本文未過濾負樣本,而是設計損失函數(shù)來降低樣本不平衡的影響。最后,通過實驗驗證,表明提出模型具有較好效果。
本文的方法如圖3 所示。首先將語料庫分為訓練集、驗證集和測試集,并進行預處理;然后通過BERT產(chǎn)生動態(tài)詞向量;接著使用Attention機制計算詞匯之間的相關(guān)程度,學習詞匯的權(quán)重;進一步通過殘差層抽取高級別語義特征;然后使用多通道CNN 學習出表達關(guān)系的語義,最終通過預測層輸出模型預測的結(jié)果。
圖3 方法概述
本文研究的輸入是文本數(shù)據(jù),建模時需要轉(zhuǎn)換成數(shù)學語言。常用的方法是使用詞匯的分布式表示(又稱為詞嵌入、詞向量),即將輸入句子中的單詞用低維實值向量表示,進而把句子轉(zhuǎn)換成矩陣。詞嵌入是從大規(guī)模語料庫中學習的,它可以將意思相似的詞匯聚為一類。以往使用Word2Vec[14]等得到的詞嵌入是固定不變的,這樣無法解決單詞的歧義性問題。如,“Bank”即表示“銀行”又表示“河岸”。所以采用BRET產(chǎn)生動態(tài)詞嵌入,它通過對大規(guī)模語料進行建模,得到一個語言模型。當面對具體任務時,它可以根據(jù)輸入即時地產(chǎn)生詞嵌入。此時的詞嵌入結(jié)合了輸入的上下文信息,對同一個詞在不同的場景中會產(chǎn)生不同的詞嵌入,這樣很好地解決了一詞多義的問題。而且對于新詞和組合詞,BERT 將它們拆分成多個短詞的組合,這樣完全避免了新詞匯找不到對應詞嵌入的情況。
根據(jù)距離實體較近的詞匯對關(guān)系貢獻更大的假設,本文在詞嵌入的基礎上,對每個詞匯加入了相對位置信息。如圖2 例子,“blocked”相對于“erg3”和“sertindole”的距離分別為3和?2。
以往的模型在處理序列信息時只能做順序計算,較難捕捉長句子依賴信息,所以提取效果不佳。注意力機制(Attention)可以解決這個問題,本文的Attention 由Vaswani 等[15]提出,它使用向量內(nèi)積表示兩個詞匯的相關(guān)程度,消除了單詞之間的距離影響,不再受限于句子長度。Attention具體計算如下:
多頭Attention是上述Attention的變體,它將輸入拆分成多份,再重復上述計算,最后再將結(jié)果合并。本文的多頭Attention 輸入為每個樣本經(jīng)過BERT 轉(zhuǎn)換后的矩陣,記為矩陣X。如圖4計算過程,首先將輸入矩陣X分別通過3種不同的線性變換,得到的查詢Q和鍵值對K、V,然后分別拆分成若干份。接著每一份的Q和K進行矩陣乘法運算,再縮放倍(dk為詞嵌入的緯度),并通過softmax函數(shù)歸一化得到權(quán)重值,表示為詞匯之間的相關(guān)程度。然后將權(quán)重和對應的V加權(quán)求和,再合并起來。最后,將合并的輸出通過線性變換得到多頭Attention的計算結(jié)果。這樣進行拆分-合并的計算可以獲得更多樣本子空間的信息,而且在計算過程中可以并行執(zhí)行,提高運算效率。
圖4 多頭注意力機制的結(jié)構(gòu)
在圖像識別中,使用多通道提供不同子空間的信息,可以提升模型的識別能力。借鑒此觀點,本文提出多通道卷積神經(jīng)網(wǎng)絡來提取生物實體關(guān)系。大量研究表明,較深的網(wǎng)絡可以學習到更豐富的知識,但網(wǎng)絡的加深也會導致梯度消失和難以訓練的問題,而引入殘差單元可以避免上述問題。為此,通過殘差單元學習子空間的語義信息,來增加輸入通道。
如圖5,多通道輸入由注意力機制的輸出和殘差單元產(chǎn)生的子空間語義矩陣堆疊形成,每個通道具有不同粒度的語義信息。首先根據(jù)式(2)的多通道卷積計算模擬滑動窗口操作,得到窗口i內(nèi)短語的特征ci。接著使用式(3)所示的最大池化提取出能夠表達關(guān)系的短語特征p。其中,Vk為第k個通道的輸入,c為通道數(shù)量,W為卷積核參數(shù),h為窗口尺寸,b為偏置,f為激活函數(shù),L為卷積核滑動時產(chǎn)生的窗口數(shù)量。
圖5 多通道卷積神經(jīng)網(wǎng)絡
預測層需要計算出每個關(guān)系類別對應的概率,然后將概率最大的那個類別作為樣本的預測結(jié)果。如式(4),在多通道卷積神經(jīng)網(wǎng)絡中使用m個不同的卷積核計算會產(chǎn)生m個不同的輸出。而關(guān)系類別個數(shù)(記為n)與卷積核個數(shù)不相等,所以需要式(5)所示的變換操作,將m維的向量z變換為n維向量,然后再通過softmax函數(shù)歸一化得到輸出o,其中Wout為變換矩陣,o=[o1,o2,…,on]的每一維都是[0,1]的實數(shù),代表每個關(guān)系類別對應的概率。
在預處理階段,同一個句子的實體通過兩兩組合,會造成大量不含關(guān)系的實體對,導致正負樣本不平衡。為此本文采用如式(4)的基于Ranking的損失函數(shù)[16],它不將負樣本作為新的類別“OTHER”來訓練,而是通過改變邊緣因子來調(diào)節(jié)負樣本的梯度更新。在訓練過程中,當模型把正標簽預測成負標簽時,會對計算的梯度進行懲罰,使參數(shù)的更新的幅度大,這樣可以改善正負樣本嚴重失衡的問題。損失函數(shù)計算如下:
其中γ是縮放因子,m+和m-是邊緣因子,用于調(diào)節(jié)正負樣本的梯度更新。s表示模型預測函數(shù),y表示輸入樣本的真實標簽,c表示在預測時具有最高得分的負標簽。在訓練模型階段,設置γ 為2.5,m+和m-分別為3和0.5。此外,為了加速模型訓練和提高泛化性,在此損失函數(shù)上加入了L2 正則化。
為了測試本文方法的效果,選取了如表1所示的兩個常用的生物實體關(guān)系數(shù)據(jù)集。DDI數(shù)據(jù)集由DDIExtraction 2013 challenge提供,其中標注了藥物和藥物之間的5 類關(guān)系。其數(shù)據(jù)來源于PubMed 和DrugBank 兩種語料庫,前者是醫(yī)學文獻數(shù)據(jù)庫,后者是藥物化學資源庫。CHEMPROT 數(shù)據(jù)集是由BioCreative 組織提供,其中標注了化合物和蛋白質(zhì)之間的10 類關(guān)系,但官方只評測其中5 種常見關(guān)系,其數(shù)據(jù)均來源于PubMed 文獻數(shù)據(jù)庫。這兩種數(shù)據(jù)集中負樣本都明顯多于正樣本,其中,DDI 數(shù)據(jù)集的正負樣本比約為1∶5.7,CHEMPROT 數(shù)據(jù)集的正負樣本比約為1∶3.1,所以在訓練模型時需要考慮樣本不平衡帶來的問題。
表1 生物實體作用關(guān)系數(shù)據(jù)集
本領域常用于評價模型的指標有精確率P、召回率R和F值,它們的定義如下:
其中TP表示把正樣本預測為正類的個數(shù),F(xiàn)P表示把負樣本預測為正類的個數(shù),F(xiàn)N表示把正樣本預測為負類的個數(shù)。一般精確率和召回率會相互制約,所以常使用F值來衡量系統(tǒng)的整體性能。
本文提出的模型使用開源的深度學習框架Tensor-Flow實現(xiàn),實驗環(huán)境配置如表2所示。模型大部分的結(jié)構(gòu)為卷積神經(jīng)網(wǎng)絡,并行度較大,采用GPU 加速計算,可以明顯減少訓練時間。
表2 實驗環(huán)境配置
由于一些模型只在特定數(shù)據(jù)集上進行評估,分析比較時,在兩個數(shù)據(jù)集上分別進行。首先在兩個數(shù)據(jù)集上分別訓練提出的模型,然后利用測試集測試,計算相應的評估指標,最后比較并分析本文的模型與現(xiàn)有模型的性能。為了保證結(jié)果的嚴謹性,在測試時,取了5 次結(jié)果的平均值作為最終結(jié)果。其他模型的評測結(jié)果均來自其原文。
如表3所示,在DDI數(shù)據(jù)集上評測結(jié)果表明本文提出的方法較其他方法具有可比性。SCNN[10]通過將句子結(jié)構(gòu)解析,訓練句法詞向量,把句法信息引入了模型。這種做法取得了一定效果,但解析句子結(jié)構(gòu)時產(chǎn)生一些錯誤,會導致模型錯誤累積。Joint AB-LSTM[12]由兩種基于LSTM的子模型結(jié)合而成,該模型的精確率和F值都取得最好結(jié)果,說明模型結(jié)合能降低關(guān)系識別的錯誤率,但其文中指出預測錯誤的樣本中長句子所占比例更大,表明該模型對長句子提取效果有限。相比之下,本文方法的F值與效果最好的模型相差0.9%,但本文模型未通過模型融合來提升效果,所以具有可比性。進一步分析發(fā)現(xiàn)DDI數(shù)據(jù)集中來源于DrugBank的樣本句子較短,而來源于PubMed 的樣本句子較長。本文提出的Attention機制對長句子提取效果的提升較大,而對短句子提取效果的提升不明顯,這可能是本模型未能取得最高F值的主要原因。而本文模型召回率最高,且比最好的模型高2.2%,說明本文的方法能夠識別出更多的生物實體關(guān)系,證明了該方法在提取藥物-藥物關(guān)系任務上的有效性。
表3 DDI數(shù)據(jù)集上實驗結(jié)果對比%
在CHEMPROT 數(shù)據(jù)集上測試結(jié)果如表4 所示,Transfer Model[19]采用遷移學習方法,通過相關(guān)任務的網(wǎng)絡參數(shù)初始化模型,使F值達到61.5%。Ensemble Model[10]包括SVM、CNN 和Bi-LSTMs 這3 種獨立的模型,并加入手工構(gòu)造額外的特征,然后通過投票的方法取得最高的精確率,但該模型相對復雜,較難遷移到別的任務上。GA-BGRU[20]則利用雙向GRU 單元提取句子語義特征,并使用Swish 激活函數(shù)提升了模型效果。相比之下,本文的方法未使用模型集成,而是通過多通道卷積操作,在召回率和F值上都達到了最好的結(jié)果,其中F值比最好的方法高5.1%。相比于DDI 數(shù)據(jù)集,CHEMPROT 數(shù)據(jù)集中長句子較多,通過Attention 機制使總體效果提升的更明顯。由此說明本文的方法也能夠很好地提取化合物-蛋白質(zhì)之間的關(guān)系。
表4 CHEMPROT數(shù)據(jù)集上實驗結(jié)果對比%
總而言之,本文提出的模型在上述兩個生物數(shù)據(jù)集上表現(xiàn)較好,其中召回率都最高。主要是因為本文的方法通過動態(tài)詞向量和多通道卷積等機制,學習了更廣泛的關(guān)系表達語義,從而識別出更多的實體關(guān)系。本文的提出的多通道CNN 模型能夠明顯提高召回率,通過實驗發(fā)現(xiàn),召回率和多通道數(shù)量具有一定關(guān)系,當設置通道數(shù)量依次為1~4 時,召回率有明顯提升,而當繼續(xù)增加多通道時,召回率增加不明顯甚至出現(xiàn)下降的情況,而且通道數(shù)量過多時,模型參數(shù)增多,訓練時間增長。為此,本文最終設置多通道數(shù)目為4,然后進行訓練測試。
生物實體關(guān)系提取是實現(xiàn)智慧醫(yī)療的基礎,可以提升智能醫(yī)療問答的效果,推進精準醫(yī)療的發(fā)展。如何從海量的生物醫(yī)學文本中提取出生物實體之間的關(guān)系是當前生命科學專家面臨的難點,也是生物文本挖掘領域的熱點。因此,本文提出了一種新的多通道卷積神經(jīng)網(wǎng)絡模型(MCCNN)用于提取生物實體之間的關(guān)系。本文目標是建立一個具有普適性的系統(tǒng),用于提取各種生物實體關(guān)系,所以只給模型輸入動態(tài)詞嵌入和位置嵌入信息,讓模型自動提取表達關(guān)系的語義,而沒有通過手工設計特征和過濾負樣本的方式來提升模型的效果。通過實驗比較,表明本文方法在生物實體關(guān)系提取任務上是有效的。下一步的工作計劃是利用訓練好的模型挖掘海量生物醫(yī)學文獻,提取出結(jié)構(gòu)化的生物實體關(guān)系,并建立開源數(shù)據(jù)庫供生命科學研究者使用。