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