彭昀磊,牛 耘
(南京航空航天大學 計算機科學與技術學院,江蘇 南京 210016)
蛋白質是實現生命機能的基本單位,是生物細胞最重要的成分。細胞中的蛋白質通過相互作用完成細胞中的大部分過程,比如細胞內通訊。因而,蛋白質交互信息(protein- protein interaction,PPI)成為了解決大量醫學難題的關鍵信息。目前,生物學家通過人工閱讀大量的醫學文獻識別其中的PPI,并以統一的格式將這些重要的信息錄入數據庫,如HPRD[1]、IntAct[2]、MINT[3]。然而以上數據庫中的PPI信息并不全面,而且隨著生物醫學的迅速發展,相關科學文獻的數量正以每年千萬篇的速度遞增,新的蛋白質之間的關系也在產生。因此,手工地從醫學文獻中收集PPI信息難以滿足現實的需求。
在此背景下,基于自然語言處理的PPI識別技術取得了很大進展。研究PPI關系識別的技術主要是基于有監督的機器學習方法,這種方法需要依賴于數量大且質量高的標注了蛋白質交互信息的文本集合,而構造此集合需要耗費大量的人力和時間。因此,文中提出了一種基于弱監督的蛋白質交互識別方法,只需利用少量已有的標注信息進行蛋白質交互關系的識別。該方法對蛋白質關系描述的上下文進行聚類,提取出交互關系描述的模式,利用模式對交互關系進行判斷。最后通過實驗對該方法進行了驗證。
近年來,研究者們越來越多地采用基于機器學習的方法進行PPI的識別[4-6],該方法主要是以單個句子為研究對象的,并且是有監督的。基于機器學習的方法主要包括兩大類:基于特征的方法和基于核函數的方法。基于特征的方法試圖從標注有交互關系的蛋白質對的句子中提取出對PPI識別有效的特征來建立模型,進而判斷蛋白質對是否存在交互關系。例如,文獻[7-8]從句子中的詞匯形式、位置以及蛋白質的上下文等信息中提取特征。Yang等[9-10]使用了詞匯、關鍵詞、蛋白質實體間距離、鏈接等豐富的特征。基于核函數的方法首先深入研究句子結構,通過設計核函數衡量不同蛋白質對間的相似度,然后使用支持核函數的分類器進行PPI關系識別。例如,Bunescu R C等[11]提出了最短依賴路徑核,將句子以樹的形式表示,用兩個實體之間的最短路徑表示實體之間的關系;文獻[12]使用圖核,文獻[13]使用多核,文獻[14]使用基于樹核的學習方法進行PPI信息的抽取。但是,有監督的方法需要大量有標注的數據,另外以單個句子為研究對象的方法只能依賴一個句子中的線索,對于句子復雜描述很難判斷。
與上述方法不同,文中采用弱監督方式,只需利用少量的標注數據,利用與交互關系的模式的相似性對交互關系進行判斷。
文中是從文本中識別出有交互關系的蛋白質對,主要分為四個模塊,下面詳述之。
該模塊找到文本庫中包含種子的句子,其中每個句子對應一個關系實例,然后生成關系實例的向量表示。因為一個句子中的上下文在表達交互關系上起了重要作用,所以提取上下文作為關系表達的特征。每個句子的上下文都分為三個部分:第一個蛋白質左邊n個單詞(BEF),兩蛋白質之間的單詞(BET),第二個蛋白質右邊n個單詞(AFT)。因為動詞和名詞通常有實際含義,所以只取出上下文中的動詞和名詞。對三個上下文,找每個單詞的詞根,構成其對應的特征集合f_bef、f_bet和f_aft。根據特征集合,得到關系實例的向量表示。其中向量采用0/1權重,即特征集合中的特征在上下文中出現,則權值為1,否則為0。
PPI的文本描述存在相似性,比如interact、bind等詞常用來描述PPI。本節根據PPI描述的相似性對PPI描述的上下文進行聚類,形成PPI描述的提取模式。
算法1描述了單次聚類算法的過程,該算法的輸入是包含種子蛋白質對的關系實例的向量集合。下面詳細說明聚類算法。
算法1:Single-Pass Clustering
輸入:Instances={i1,i2,…,in}
輸出:Patterns={}
1:Sort(instances)
2:cl1={i1}
3:Patterns={cl1}
4:for in∈Instances do
5:map={}//簇號和相似性值的映射
6:for cli∈Patterns do
7:simVal=Sim(in,cli)
8:if simVal>=Tsimthen
9:map=map∪{cli: simVal}
10:end if
11:end for
12:if map is not NULL then
13:sort(map,simVal)
14:index=map1[pattern]
15:clindex=clindex∪{in}
16:else
17:clm={in}
18:Patterns=Patterns∪{clm}
19:end if
20:end for
21:return Patterns
2.2.1 對實例排序
算法1的第1行是對實例排序。由于單次聚類算法具有明顯的次序依賴特性,因此需要根據實例表示交互關系可能性的大小對實例進行排序。存在交互關系可能性大的實例越靠前,聚類效果越好。因此,文中先用f_bef,f_bet,f_aft對PPI的表達進行評估。
假設出現在多個交互關系描述中的單詞對于表達交互關系比較重要。因此,統計一個單詞在種子蛋白質對描述中出現的頻率,用頻率映射表來表示。頻率映射表包含鍵和鍵值兩個域。鍵表示一個上下文中出現的單詞的詞根,鍵值即為該詞根的頻率,即該詞根出現在幾個種子蛋白質對的描述中。然后,按鍵值從大到小的順序排序。值越大,其對應的鍵描述PPI的重要性越大。相對f_bef和f_aft,f_bet對于關系的表達更重要,所以評分只根據f_bet。
對f_bet中的動詞產生頻率映射表,根據頻率映射表來計算實例的f_bet得分。對f_bet中的每個詞,如果其詞根出現在頻率映射表中,則找到其在映射表中對應的鍵值。然后采用兩種方式對f_bet打分。(1)取所有詞對應的最大鍵值作為f_bet得分;(2)取所有詞對應鍵值的和作為f_bet得分。最后,根據實例中f_bet的得分,對實例從大到小排序。
2.2.2 對實例進行聚類
算法1的第2和第3行表示將排序后的實例集合中的第一個實例作為第一個簇中的第一個元素,第二個實例和它作相似性比較。若相似性滿足閾值條件,則將第二個實例加入到第一個簇中,否則,創建一個新的簇,將第二個實例加入之。算法1的第4~20行表示依次計算實例in和每一個簇clj之間的相似性,選出實例和任意簇之間相似性最大的那個簇clindex,并且實例和該簇滿足閾值條件,則將實例in添加到簇clindex中。如果實例in和最大相似性的簇都不滿足閾值條件,那么創建一個新的空簇,將實例in添加進去。算法1的第21行輸出所生成的簇,也即PPI關系的提取模式。
一個實例和一個提取模式之間的相似性是通過算法1第7行中的Sim(in,clj)來計算的,也就是計算實例in和簇clj內的各個成員實例之間的相似性。對Sim(in,clj),如果實例in和簇clj中半數以上實例的相似性都滿足閾值條件,那么返回最大的相似性值,否則返回0。兩個實例的相似性依賴于BEF、BET和AFT,計算實例與實例的相似性時采用如下公式:
Sim(im,in)=α·cos(v_befm,v_befn)+
β·cos(v_betm,v_betn)+
γ·cos(v_aftm,v_aftn)
(1)
(2)
其中,v_befm、v_betm和v_aftm表示組成實例im的三個上下文向量;α、β和γ分別代表了各自的權值,且β最大。文中設置α、β和γ分別為0.2,0.6,0.2。
根據2.2節產生的提取模式,利用算法2尋找候選關系實例。對待判斷關系的蛋白質對集中的每對蛋白質,和種子類似,在文本庫中掃描包含該對蛋白質的句子。對每個句子,生成該句子對應實例的向量表示(算法第3行)。從所有關系實例中選出可能存在交互關系的實例,即候選關系實例。
算法2的輸入為文本庫,已知交互關系和待判斷關系的蛋白質對集合,提取模式。
算法2的第1行表示初始化“模式-實例”映射表mapp-i,為空。“模式-實例”映射表的結構是一一對應的鍵值對,鍵的內容是提取模式,鍵值的內容是該模式提取出的所有候選實例組成的集合。
算法2:尋找候選實例
輸入:Sentences ={s1,s2,…,sn};AllTupleSet={t1,t2,…,tn};Patterns={cl1,cl2,…,cln}
輸出:candidateInstances CI
1:mapp-i={}
2:for si∈Sentences do
3:i=create_instance(si)
4:for cli∈Patterns do
5:simVal=Sim(i,cli)
6:if simVal>=Tsimthen
7:update(mapp-i)
8:end if
9:end for
10:end for
11:conf(Patterns)
12:conf(Instances)
13:return CI
每個實例都和提取模式逐個進行相似性計算,其運算方式和2.2.2節中計算實例和提取模式之間相似性的方式相同。如果某個實例i和某個模式j之間的相似性值滿足閾值條件,表示該實例i成為了一個候選實例,稱該模式提取出該實例,更新“模式-實例”映射表mapp-i(算法2第3~7行)。
不同的模式對表達交互關系的重要性不同,算法2第11行表示對模式的重要性打分。該得分反映了模式的可靠程度,得分越高,模式越可靠。模式得分公式如下:
patternScore=(|K|+|U|×wu)×|ACS|×|AIS|
(3)
其中,|K|表示“known”的數量;|U|表示“unknown”的數量。根據“模式-實例”映射表,由模式得到該模式提取出的所有實例,將這些實例和種子蛋白質對集合進行比較,若實例對應的蛋白質對出現在種子集合中,那么該蛋白質對被認為是“known”,否則認為是“unknown”。wu表示|U|的權值,因為unknown的可靠性不如known高,所以wu介于0~1之間,文中設置其為0.7。
在2.2.1節中,計算了每個實例的上下文得分,|ACS|表示一個模式提取出的所有實例的上下文得分的平均值,|AIS|表示組成模式的實例的平均相似性,即對組成該模式的實例,計算任意兩個實例之間的相似性,并計算這些相似性的平均值。由此得到所有提取模式的得分,再將每個提取模式得分都除以其中的最高分,得到最終的得分。
文中對候選實例打分以評估一個候選實例的可靠性(算法2第12行)。該得分反映了實例對應的蛋白質對存在交互關系可能性的大小,實例得分越高,其對應的蛋白質對越有可能存在交互關系。候選實例的得分則根據如下公式:

Sim(i,ξj))
(4)
其中,ξ表示該實例i對應的所有提取模式的集合;patternScore(ξj)表示第i個模式的得分;Sim(i,ξj)表示該實例i和模式j的相似性得分。
每一個候選實例對應的蛋白質對,稱為候選蛋白質對。本節對候選蛋白質對打分,得分越高,該蛋白質對越有可能存在交互關系。采用如下公式評分:
(5)
其中,ξ表示一個蛋白質對所對應的候選實例的集合。
最后,將滿足tupleScore≥Ttuple(Ttuple是候選蛋白質對得分的閾值)的蛋白質對添加到種子集中,以用于下一輪的迭代,直到滿足迭代的終止條件。
實驗中有交互關系的蛋白質對是直接從HPRD數據庫中查詢獲取,并且只保留被PubMed數據庫中一篇以上摘要包含的那些蛋白質對。而對于無交互關系的蛋白質對,將HPRD中的蛋白質隨機組合成蛋白質對,去除已被HPRD數據庫包含的蛋白質對以及未被PubMed數據庫記載的蛋白質對。以一對蛋白質為查詢參數,從文獻中檢索出描述這兩個蛋白質的所有句子,作為該蛋白質對的簽名檔。設置一個句子中BET上下文的有效單詞個數為6(有效單詞個數是指不包括標點在內的單詞個數,不夠6個則取BET中所有的單詞)。滿足此要求的有交互和無交互關系的蛋白質對分別有964和870對,總共1 834對。這些蛋白質對對應的簽名檔構成文本庫。從有交互關系的蛋白質對中隨機選出50對作為種子。
使用精度(P)、召回率(R)和F值(F)作為評價標準,它們的計算公式為:
(6)
算法1和算法2使用的相似性閾值Tsim相同。為設定合理閾值,從種子對應的實例中取2 000個實例,根據式(1),得到這2 000個實例兩兩之間的相似性值的分布。從分布值中發現,相似性值集中在0.22以下,從而確定Tsim為0.22。每一個Tsim的取值對應一個識別結果。
首先,比較兩種上下文得分的計算方式。這里采用2.2.1節的兩種打分方式計算實例的上下文得分,并將識別方法運算一次,獲得識別結果。精度-召回率曲線(P-R圖)如圖1所示,其中候選蛋白質對得分的閾值Tsim在[0,5]范圍內變化,以0.1為間隔,Tsim越小,對應的召回率recall越高。

圖1 運算一次的P-R圖
圖中,maxCooccur表示取所有詞對應的最大鍵值作為f_bet得分,plusCooccur表示取所有詞對應鍵值的和作為f_bet得分。從圖1中可以發現兩種方式識別結果很接近;相同召回率下,maxCooccur方式的精度在大部分情況下比另一種高。說明取所有詞對應的最大鍵值作為f_bet得分的識別結果更好。
下面,在采用maxCooccur方式計算實例的上下文得分的情況下,考察迭代運算結果。為避免召回率過低,設置Tsim為0,0.1,得到迭代后的識別結果,如表1和表2所示。

表1 Tsim為0時的識別結果

表2 Tsim為0.1時的識別結果
從兩張表可以發現,隨著迭代次數的增加,種子集合增大,召回率上升,精度下降,總的F值上升。Tsim為0和0.1的識別結果相比,前者的精度明顯小于后者,召回率和F值明顯大于后者。
文中只采用了50個種子作為系統輸入,先對描述蛋白質交互關系的上下文進行聚類,而后提取出描述交互關系的模式,再用模式判斷交互關系。算法綜合考慮了單句和多個句子的線索,取得了較高的精度。
為減少對標注數據的依賴,提出了一種基于弱監督的蛋白質交互關系識別方法。該方法使用了少量的種子,取得了較好的識別效果。該方法在實例之間比較相似性時只考慮到了余弦相似性的計算,下一步的研究將嘗試其他相似性計算方法。
[1] PRASAD T S K,GOEL R,KANDASAMY K,et al.Human protein reference database-2009 update[J].Nucleic Acids Research,2009,37:767-772.
[2] KERRIEN S,ALAM-FARUQUE Y,ARANDA B,et al.IntAct-open source resource for molecular interaction data[J].Nucleic Acids Research,2007,35:561-565.
[3] CEOL A,ARYAMONTRI A C,LICATA L,et al.MINT,the molecular interaction database:2009 update[J].Nucleic Acids Research,2010,38:532-539.
[4] 崔寶今,林鴻飛,張 霄.基于半監督學習的蛋白質關系抽取研究[J].山東大學學報:工學版,2009,39(3):16-21.
[5] 董美豪.基于文本挖掘的蛋白質相互作用對抽取方法的研究[D].哈爾濱:哈爾濱工業大學,2015.
[6] 楊志豪,洪 莉,林鴻飛,等.基于支持向量機的生物醫學文獻蛋白質關系抽取[J].智能系統學報,2008,3(4):361-369.
[7] NIU Y,OTASEK D,JURISICA I.Evaluation of linguistic fe-atures useful in extraction of interactions from PubMed;application to annotating known, high-throughput and predicted interactions in I2D[J].Bioinformatics,2010,26(1):111-119.
[8] 高 飛.基于MapReduce的蛋白質相互作用信息抽取系統的設計與實現[D].楊凌:西北農林科技大學,2016.
[9] YANG Z H,HONG L,LIN H F,et al.Extraction of information on protein-protein interaction from biomedical literatures using an SVM[J].CAAI Transactions on Intelligent Systems,2008,3(4):361-369.
[10] 劉敏捷.基于組合學習和主動學習的蛋白質關系抽取[D].大連:大連理工大學,2015.
[11] BUNESCU R C,MOONEY R J.A shortest path dependency kernel for relation extraction[C]//Proceedings of the conference on human language technology and empirical methods in natural language processing.[s.l.]:Association for Computational Linguistics,2005:724-731.
[12] AIROLA A,PYYSALO S,PAHIKKALA T,et al.A graph kernel for protein-protein interaction extraction[C]//Workshop on current trends in biomedical natural language processing.[s.l.]:[s.n.],2008:1-9.
[13] 唐 楠,楊志豪,林鴻飛,等.基于多核學習的醫學文獻蛋白質關系抽取[J].計算機工程,2011,37(10):184-186.
[14] 劉 念,馬長林,張 勇,等.基于樹核的蛋白質相互作用關系提取的研究[J].華中科技大學學報:自然科學版,2013,41:232-236.