唐 詹 王龍鶴 郭旭超 周 晗 刁 磊 李 林
(中國農業大學信息與電氣工程學院 北京 100085)
蛋白質是生物體最基本的組成物質,在幾乎全部的生命活動中發揮著極其重要的作用。生物體中的蛋白質通常不是孤立存在的,大多數情況下,兩個不同的蛋白質會通過直接或間接的方式發生相互作用來完成生物學功能,這種相互作用被稱為蛋白質間相互作用(Protein-Protein Interaction,PPI)。對PPI的研究在發現生命規律、預測預防疾病和防治植物病蟲害等方面,具有十分重要的意義[1]。因此,有許多PPI數據庫被建立用于保存結構化、標準化的PPI關系,如DIP數據庫(Database of Interacting Proteins)、BIND數據庫(Bio-molecular Interactions Database)、MINT數據庫(molecular INTeraction database)和HPRD數據庫(Human Protein Reference Database)等。這些數據庫中的PPI關系通常是由專家學者從已發表的科學文獻中挖掘得到。隨著生物醫學研究的不斷進步,相關文獻的數量迅速增加,耗時費力的人工方式難以及時高效地實現PPI信息的收集和整理。如何準確、高效地自動化抽取出科學文獻中的PPI關系有著十分重要的研究意義,許多學者致力于這項研究[2]。隨著深度學習理論的發展,深度學習技術在自然語言處理領域得到了十分廣泛的應用[3-4],其中的一些新技術也被引入到PPI關系抽取任務中來,并且取得了很大進展。本文將對現有的一些基于深度學習的PPI關系抽取方法進行闡述和分析。
從20世紀90年代末開始,研究人員逐漸開展了對科學文獻中PPI關系自動化抽取的研究,至今已有多種方法被提出,主要分為三個階段:
第一,基于共現和規則方法的階段。主要利用描述PPI關系的語句所共有的語法模式來進行抽取。利用常用于描述PPI關系的描述性詞匯(如include、activate)等來人工定義或者自動抽取規則,再利用得到的規則對文本語句進行模式匹配,將其中的PPI關系抽取出來。如Sylvie等[5]通過交互作用詞匯構建規則來進行抽取的工作和Huang等[6]利用詞性標記來構建識別模式的工作。
第二,基于計算語言學方法的階段。主要通過句法分析等技術,用句法結構和語法規則抽取包含于文本語句中的PPI關系。如Matsuzaki等[7]的工作,基于中心語驅動的句法分析(HPSG parsing)技術,構建了生物醫學文獻的句法樹,然后根據句法樹實現了基于PPI特殊語義的語法特征搜索引擎,利用這個引擎來抽取PPI關系;還有Fundel等[8]的工作,通過依存關系來挖掘特定的語法規則,然后根據這些語法規則進行PPI系抽取。
第三,基于機器學習方法的階段。將PPI關系抽取視為一個二分類問題,首先,對語料進行預處理以及特征提取和篩選,然后,使用機器學習模型根據特征判斷給定的蛋白質對是否存在相互作用。機器學習方法中最為常用的是核函數和支持向量機結合的方法,利用特征核、樹核、圖核、語義核等多種核函數,把原空間中線性不可分的樣本映射到新的特征空間以使其線性可分,再結合支持向量機完成分類功能。此外貝葉斯模型和最大熵模型也廣泛使用。機器學習方法能夠整合語法規則特征,并能有效利用自然語言處理技術研究的相關成果,近年來成為了PPI關系抽取的主流方法[9]。
傳統的機器學習方法依賴于特征工程,抽取性能受到人為因素的制約,而深度學習方法作為機器學習的一個重要分支,由于其強大的學習能力和特征提取能力,在PPI關系抽取領域得到了廣大研究者的關注。深度學習方法主要由三個組件構成:詞語表示組件、文本建模組件和分類器組件。詞語表示組件將文本數據轉換為數值數據,作為深度學習模型的輸入;特征提取組件對詞語句子進行建模,提取用于分類的特征;分類器組件完成最終的分類功能。
為了方便廣大研究者研究PPI關系抽取問題,各機構提供了一系列標準的PPI關系抽取語料庫,在現有研究中使用較為廣泛的有:AIMed[10]、BioInfer[11]、HPRD50[8]、IEPA[12]和LLL[13]。每個語料庫中包含多條來自生物醫學相關文獻的語句,每條語句中包含一個或多個蛋白質對,每個蛋白質對為一個樣本,每個蛋白質對是否存在相互作用關系由相關領域專家進行標注,存在相互作用的蛋白質對為正例樣本,不存在的為負例樣本。各語料庫的詳細信息如表1所示。
對于PPI關系抽取問題,通常采用查準率P(Precision)、查全率R(Recall)、F1分數F1(F1_score)等指標來對性能進行評估[14]。以TP表示實際為正例、被分類為正例的樣本數,FN表示實際為正例、被分類為負例的樣本數,FP表示實際為負例、被分類為正例的樣本數,TN表示實際為負例、被分類為負例的樣本數。各指標計算方式如下:
(1)
(2)
(3)
Zhao等[16]首次嘗試將深度學習引入到PPI關系抽取領域中,提出了基于深度神經網絡(Deep Neural Network,DNN)的PPI關系抽取方法。該方法主要包括四個部分:基于FCG[17]的半監督命名實體識別(Named Entity Recognition,NER)系統、使用Enju解析工具[18]和主成分分析[19](Principal Component Analysis,PCA)的原始特征提取器、從原始特征學習復雜抽象特征的自編碼器(Auto-Encoder)、用于分類的DNN。其處理流程如圖1所示。

圖1 DNN處理流程
Medline Abstracts是來自Medline數據庫的大量文獻摘要數據,用于訓練基于FCG的NER系統,NER系統的作用是識別蛋白質名稱。為了保證學習模型的泛化能力,將輸入文本中的蛋白質名稱進行替換,需要進行判斷的蛋白質對替換為PORT1和PORT2,其他蛋白質名稱替換為PORT,舉例如下:
Isolation of human PROT1 and its binding specificity with PROT2
大部分研究包括下文提及的所有工作中都采用了這種處理方法。
特征提取器用于產生原始特征,包括所有詞語的特征以及句法特征。然后用PCA對原始特征進行降維,保留了96%的方差,最終將特征空間的大小降至965。
自編碼器是一個非線性的單隱層神經網絡,它被訓練用于計算輸入的表示,從而盡可能準確地重建輸入。DNN使用自編碼器訓練得到的權重作為初始參數完成最終的分類,DNN和自編碼器都采用反向傳播算法進行訓練(Back Propagation,BP)。DNN的層數對性能有一定的影響,適當地增加DNN的深度能夠提高性能。
在五個標準語料庫上的實驗表明,這種方法能夠取得比傳統方法略好或相當的有效結果,但作為引入深度學習技術到PPI關系抽取問題的第一次嘗試,仍然存在著一些改進的空間。它雖然利用了深度學習模型,但本質上仍然是一種基于特征工程的方法。另外這種方法包含了NER系統,后續方法更多是專注于關系抽取問題,五個標準語料庫也給出了蛋白質命名實體,方便廣大研究者聚焦PPI關系抽取問題進行研究。
卷積神經網絡[20](Convolutional Neural Network,CNN)能夠自動提取基礎特征并組合為高級抽象特征,在圖像處理和自然語言處理的應用上都取得了很好的結果。CNN模型也被應用于PPI關系抽取問題上,其基本框架為:以預訓練詞向量作為主要輸入特征,經卷積池化操作后使用多層感知機[21](Multilayer Perceptron,MLP)作為全連接層,結合softmax或其他函數進行分類。改進的方法主要有三種:一是附加輸入特征,如與最短依存路徑[22](shortest dependency path,sdp)特征進行組合,以語義特征作為額外輸入;二是采用多通道的嵌入層結構,如Quan等[23]、Peng等[24]和Choi[25]的工作;三是采用更先進的卷積結構,如使用殘差CNN[26]。
2.2.1sdpCNN
Hua等[27]提出了sdpCNN,一種基于sdp的CNN模型,模型結構如圖2所示。

圖2 sdpCNN模型結構
該模型使用詞語信息及詞語之間的sdp共同作為輸入,舉例如下。
原語句:Protein1 affects properties of Protein2
加入sdp后的輸入語句:Protein1 nsubj affects dobj properties prep_of Protein2
其中nsubj、dobj和prep代表sdp信息,這些sdp信息基于Fundel等[8]的工作獲得。加入sdp的輸入語句經過詞嵌入(Word embedding)轉換成矩陣,詞嵌入層采用了公共的300維預訓練詞向量,這些詞向量由word2vec工具通過Google News上的文本數據訓練生成,輸入語句中若包含預訓練詞向量中不存在的詞語,則使用隨機生成的詞向量表示這些詞語。卷積層采用了100個filter,每個filter用最大池化操作提取特征。最后使用神經元數量為500的全連接層進行分類。這種方法將詞嵌入向量、sdp和CNN整合到一起,相比于傳統方法性能有較大提升,發揮了CNN模型捕捉局部特征和結構信息的能力。
2.2.2基于多通道嵌入層的模型
Quan等[23]提出了MCCNN(Multichannel Convolutional Neural Network)模型,其結構也與sdpCNN類似,不同之處在于輸入的詞嵌入層采用了多通道結構,且輸入只有文本語句對應的詞向量,沒有加入sdp特征。詞嵌入層共有5個通道,分布對應5種預訓練詞向量,其中四種采用Pyysalo等[28]在PubMed、PMC和Wikipedia等語料庫上構建的詞向量,另外一種用CBOW模型在MedLine語料庫上訓練得到。單個過濾器的輸出由五個通道疊加得到,其計算方式為:
(4)
式中:m代表單個過濾器的輸出;xi代表單個通道的輸出;Wi和bi為其對應的權重和偏置;f為激活函數。然后用大小為3、4的過濾器進行卷積和最大池化操作,將提取到的特征拼接,經由全連接層進行分類。這種方法能獲得更準確的詞語表示特征,但缺乏對句子結構的建模,因此對較長語句的處理效果不好。
Peng等[24]提出了McDepCNN模型,在詞嵌入層采用了雙通道結構,一個通道使用文本語句對應的詞向量,另一個通道使用句子的依賴結構,這使得模型能夠更有效地捕獲全局信息,提高了泛化性能。
Choi[25]提出的基于DCNN的模型也采用了類似方法,將預訓練詞向量和位置信息作為嵌入層輸入,進行卷積池化操作后與語言特征向量進行拼接,然后再通過全連接層進行分類。
2.2.3DeepResidualCNN
Zhang等[26]提出了基于深度Residual CNN[29]的PPI關系抽取模型(DRCNN模型),該模型在卷積部分使用了多個殘差卷積塊,其結構如圖3所示。

圖3 DRCNN模型結構
首先用詞嵌入層表示文本語句,然后經過殘差卷積塊多次卷積池化操作后進行分類。“1 Conv,64”表示窗口大小為1、過濾器大小為64的卷積操作,“Pooling,/2”表示步長為2的最大池化操作,Pooling表示全局最大池化操作。Block_Num為殘差卷積塊的個數,單個殘差卷積塊Res_Conv的結構如圖4所示。其中BN表示批標準化操作(Batch Normalization),Conv_Num為卷積層數量。

圖4 殘差卷積塊結構
這種模型通過使用殘差連接加深架構而不是引入更多的語義信息來提高CNN的特征提取能力,避免了使用傳統生物醫學自然語言處理工具(如依賴解析器),并且通過對比實驗驗證了殘差連接的必要性。
循環神經網絡[30](Recurrent Neural Network,RNN)具有記憶功能,擅長對序列數據的非線性特征進行學習,在自然語言處理領域得到了廣泛應用。長短期記憶網絡[30](Long Short-Term Memory,LSTM)是RNN的一種變體,加入了門控機制能在很大程度上改善RNN的梯度消失問題,可以取得比原始RNN更好的效果[31]。LSTM模型也被應用于PPI關系抽取問題上,主要的方法有:使用雙向LSTM學習預訓練詞向量特征進行分類,加入sdp特征和注意力機制,使用樹形LSTM模型和結構化注意力機制。下文對幾種代表性的工作進行分析。
2.3.1雙向LSTM模型
Hsieh等[32]提出了一種基于雙向LSTM的PPI關系抽取模型,其結構如圖5所示。

圖5 雙向LSTM模型結構
詞嵌入層采用了Chiu等[33]構建的200維預訓練詞向量,Bi-LSTM層采用400維的LSTM單元分別從正向和反向對詞向量進行編碼,然后將正向和反向的輸出拼接送入全連接層進行分類。這種方法首次將LSTM模型應用到PPI關系抽取問題上,性能較一些基于CNN的模型得到了較大提高。
2.3.2基于注意力機制和sdp的堆疊式LSTM模型
Yadav等[34]提出了Att-sdpLSTM模型,整合了一些常用于PPI關系抽取的語義特征。該模型同樣包括三個部分,詞嵌入層、Bi-LSTM層和全連接層。詞嵌入層由三個部分組成,加入sdp的預訓練詞向量、詞性特征和位置特征,三組特征向量采用連結(concatenation)的方式進行拼接。Bi-LSTM層采用了六層堆疊式(stacked)的雙向LSTM,然后通過Softmax計算堆疊后各隱藏輸出的標準化注意力權重并進行疊加,計算方式如下:
mk=tanh(WaZk+ba)
(5)
(6)
(7)
式中:Zk表示各隱層輸出;Wa和ba分別表示權重和偏置值;e為自然常數;c為上下文向量(context vector),c的值通過隨機初始化得到并且在訓練過程中進行學習。得到的最終輸出向量R送入全連接層使用Softmax進行分類。
2.3.3樹形LSTM結構
在自然語言處理中,一些依賴信息常用樹形結構表示,基礎的LSTM模型只能分析序列數據,無法對樹形結構的信息進行處理。為了更好地利用句子依存結構信息,Ahmed等[35]提出了基于樹形LSTM結構的tLSTM模型,并且應用了更適合復雜句子的注意力機制。
樹形LSTM單元和基本LSTM單元的主要區別在于,它擁有多個細胞狀態輸入和兩個隱層輸入,這意味著它能夠連接多個前一時間步的LSTM單元[36]。以常用的能連接兩個輸入的樹形LSTM單元為例,它和基本LSTM單元的結構對比如圖6所示。

圖6 基本LSTM單元與樹形LSTM單元結構對比
使用這種LSTM單元可以根據依存關系構造句子的樹形模型,圖7為句子“PROTX1 induces chemotaxis and adhesion by interacting with PROTX2 and PROTX0.”的表示示例。

圖7 句子建模示例
對文本輸入句子用樹形LSTM進行建模,得到輸出向量H,再對文本輸入句子用雙向LSTM進行建模,得到輸出向量O。對O采用Koo等[37]提出的框架進行結構化注意力計算:
γ=sAttn(O)
(8)
用可訓練的矩陣Sv計算上下文向量:
Cs=γSv
(9)

p(y|x,θ)=sigmoid(MLP(M))
(10)
(11)
式中:x表示模型輸入;θ表示模型參數;sigmoid為激活函數;MLP為多層感知機;yi為最終的分類標簽。這種模型在AIMed和BioInfer兩個數據集上性能取得了顯著提高,并且相比于傳統的RNN模型更為穩定。另外,作者在實驗中發現,對于某些數據集,不使用注意力機制反而能取得更好的效果,主要原因是訓練和測試集的分布不同,注意力機制在訓練集中捕捉到的句子依存結構在測試集中不能發揮作用。
上述模型中的DNN、sdpCNN、MCCNN、McDepCNN、DRCNN和LSTM使用了普通的Precision、Recall和F1分數指標進行評估,在AIMed和BioInfer數據集上,實驗結果如表2所示。

表2 AIMed和BioInfer數據集普通指標
僅DNN和DRCNN模型在HPRD50、IEPA和LLL數據集上進行了實驗,其結果如表3所示。

表3 HPRD50、IEPA和LLL數據集普通指標
上述模型中的DCNN、DRCNN、Att-sdpLSTM和tLSTM使用了宏形式的Precision、Recall和F1分數指標進行評估,在AIMed和BioInfer數據集上的實驗結果如表4所示。其中DCNN*的實驗數據來自于Yadav等[34]對DCNN的復現。

表4 AIMed和BioInfer數據集宏形式指標
僅DRCNN、Att-sdpLSTM(表5中簡寫為Att)和tLSTM模型在HPRD50、IEPA和LLL數據集上進行了實驗,其結果如表5所示。

表5 HPRD50、IEPA和LLL數據集宏形式指標
從表2與表3的實驗數據對比可以看出,DRCNN模型和基于LSTM的模型能夠取得較好的結果。DRCNN模型分別采用兩套指標進行了實驗,因此可以作為中間參考,從F1分數來看,在AIMed、BioInfer、HPRD50、IEPA和LLL五個語料庫上取得最好表現的模型分別是Att-sdpLSTM、LSTM、DRCNN、tLSTM和tLSTM。
DRCNN模型和Att-sdpLSTM模型都采用了堆疊式結構,DRCNN模型采用了多個殘差卷積塊堆疊,每個殘差卷積塊還包含數個卷積層,而Att-sdpLSTM模型采用了六層堆疊式的雙向LSTM。這兩種模型結構更深,網絡參數多,在訓練數據充足的情況下能學習到更多隱含文本特征,因此在AIMed和BioInfer兩個樣本量較大的語料庫上取得了更好的表現。這兩個模型的宏形式F1分數對比如圖8所示。

圖8 DRCNN和Att-sdpLSTM模型的macro F1對比
可以看出,在HPRD50、IEPA和LLL三個語料庫上DRCNN模型和Att-sdpLSTM模型表現相當,在AiMed語料庫上Att-sdpLSTM模型的macro F1分數高出DRCNN模型7百分點,而在BioInfer語料庫上DRCNN模型的macro F1高出Att-sdpLSTM模型9.4百分點。這說明雖然同為堆疊式的結構,但堆疊式CNN結構和堆疊式LSTM結構可能有著不同的學習側重點,這一點值得進一步地探索研究。
tLSTM模型在HPRD50、IEPA和LLL三個樣本數量較少的語料庫上取得了較好的表現,可能的原因是tLSTM模型能學習了足夠的句子結構,對于小樣本數據,能夠充分擬合。
總之,基于LSTM的模型相對于基于CNN的模型能通常取得更優的結果,因為LSTM模型的結構更擅長處理序列數據。但由于LSTM的門控機制涉及大量運算,基于LSTM的模型通常更為復雜,計算代價更大。
3.2.1詞表示組件對比
詞表示組件用于將文本數據轉換成數值數據供模型的后續組件使用,對模型的性能有著至關重要的影響。除DNN模型使用了傳統特征工程外,其他模型都是以word2vec為基礎構造詞表示組件,各模型的詞表示組件對比如表6所示。

表6 詞表示組件對比

續表6
(1) DNN模型采用了傳統的特征工程,用Enju解析器等工具提取特征并進行篩選降維,這種方法創建的特征具有較高的可解釋性,但是由于人工選擇和多種第三方工具的應用,會使各部分產生的誤差和錯誤累積在一起,影響最終的效果。
(2) LSTM、tLSTM和DRCNN模型采用了word2vec預訓練詞向量,沒有附加其他語法特征,這樣做的優點是無須依賴第三方工具,缺點是無法顯式利用其他語法特征。DRCNN模型通過加深網絡結構提高了對文本特征的學習能力,因此取得了比較好的效果。
(3) DCNN、MCCNN和McDepCNN模型采用了多通道的詞嵌入層結構,MCCNN模型采用了五套不同的word2vec預訓練詞向量作為嵌入層,擴大了詞向量的覆蓋范圍。DCNN和McDepCNN模型分別將位置信息和依賴結構同word2vec預訓練詞向量一起作為輸入,能夠豐富詞嵌入層包含的特征信息。
(4) SdpCNN和Att-sdpLSTM模型先在文本語句中附加sdp特征,然后再通過詞嵌入層轉換為詞向量,sdp特征通常包含著一些識別實體關系的必要信息[27],利用這些信息可以提高PPI關系抽取的準確率。
3.2.2特征提取組件對比
sdpCNN、DCNN、MCCNN、McDepCNN和DRCNN模型采用了CNN結構來對文本進行建模,CNN結構可以識別出輸入數據中具有指示性的子結構,捕獲對預測任務貢獻最大的局部特征。一些關鍵的詞語或者語法信息有時會對整個句子是否包含PPI關系起決定性作用,CNN結構通過卷積池化操作生成的特征向量能較好地表示整個序列,可以直接用于后續層分類,也可以與位置信息等其他特征向量結合之后再進行分類。DRCNN模型采用了層次化的CNN結構,能夠捕獲句子中更有效的感受野,殘差連接的方式改善了深層網絡的梯度彌散問題,使從高層到低層的誤差仍能有效地反向傳播。
LSTM和Att-sdpLSTM模型采用了雙向LSTM結構,雙向LSTM結構放寬了固定窗口大小的假設,允許在序列內部向前或向后回顧任意長度的距離,并且可以不依賴于馬爾可夫假設對完整的句子進行建模。Att-sdpLSTM模型中對雙向LSTM結構進行了逐層堆疊(stacked),能學習到更多的復雜條件分布。tLSTM模型采用了樹形的LSTM結構,基于句子的依存關系連接LSTM單元來進行建模,能更好地學習到語義信息。
3.2.3分類器對比
DNN模型采用了DNN網絡作為分類器,而其他模型都采用了MLP,MLP能很好地通過提取到的特征進行分類。分類標簽的計算多采用softmax函數,tLSTM模型采用了sigmoid函數,對于二分類問題,采用softmax和sigmoid函數實質上是等價的。
近年來,深度學習的應用十分廣泛,并且在自然語言處理領域取得了令人矚目的成果。基于深度學習的PPI關系抽取方法主要是以詞向量或者詞向量與其他語法特征的組合作為輸入,用基于CNN或者RNN的結構提取特征,再用MLP進行分類。相比于一些傳統方法,深度學習方法取得了更為優異的效果,但還存在著一些問題有待進一步探索研究。
預訓練詞向量對PPI關系抽取模型的性能影響較大,如何構建質量更高、適應性更強的預訓練詞向量是一個巨大挑戰,采用多通道詞嵌入層、利用領域相關文本構建預訓練詞向量等方法能取得一些效果,但還存在著改進空間。可引入構建預訓練詞向量的新技術,如BERT模型[38]等。在通過word2vec構建預訓練詞向量的過程中,若采用公共語料構建的預訓練詞向量,如sdpCNN模型,會因缺乏領域相關信息而準確率較低,而采用任務相關的文本語料構建詞向量會難以學習到復雜文本之間的聯系,容易造成過擬合。BERT模型的Fine-tuning機制可以以大規模公共語料上構建的詞向量為基礎,使用任務相關文本對詞向量進行微調,以生成質量更高適應性更強的詞向量。
一些深度學習模型依賴傳統的自然語言處理工具,如依賴解析器、Enju解析工具等,這些工具中存在的不準確性可能會影響深度學習模型的訓練過程,造成誤差傳播。DRCNN模型不依賴任何語法分析工具就能取得非常滿意的效果,但其實驗表明,采用兩個卷積塊的效果明顯優于一個卷積塊,而增加到三個卷積塊時卻沒有明顯的提高。如何設計更深的有效結構,提高文本特征學習能力,減少或避免依賴自然語言處理工具,是一個值得探索的方向。
為了獲得更強的學習能力和特征表示能力,通常會使用參數更多、網絡結構更復雜的模型,這使得模型的訓練需要大量數據的支撐,才能獲得足夠的泛化性能,在實際應用中獲取足夠的PPI標注樣本是一項十分艱巨的工作,如何利用已有的標注樣本和大量未標注樣本構建泛化性能好的模型是一個重要問題,可引入非監督學習、半監督學習和遷移學習等技術來對此問題進行進一步探索。