彭昀磊,牛 耘
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016)
蛋白質(zhì)是實(shí)現(xiàn)生命機(jī)能的基本單位,是生物細(xì)胞最重要的成分。細(xì)胞中的蛋白質(zhì)通過相互作用完成細(xì)胞中的大部分過程,比如細(xì)胞內(nèi)通訊。因而,蛋白質(zhì)交互信息(protein- protein interaction,PPI)成為了解決大量醫(yī)學(xué)難題的關(guān)鍵信息。目前,生物學(xué)家通過人工閱讀大量的醫(yī)學(xué)文獻(xiàn)識別其中的PPI,并以統(tǒng)一的格式將這些重要的信息錄入數(shù)據(jù)庫,如HPRD[1]、IntAct[2]、MINT[3]。然而以上數(shù)據(jù)庫中的PPI信息并不全面,而且隨著生物醫(yī)學(xué)的迅速發(fā)展,相關(guān)科學(xué)文獻(xiàn)的數(shù)量正以每年千萬篇的速度遞增,新的蛋白質(zhì)之間的關(guān)系也在產(chǎn)生。因此,手工地從醫(yī)學(xué)文獻(xiàn)中收集PPI信息難以滿足現(xiàn)實(shí)的需求。
在此背景下,基于自然語言處理的PPI識別技術(shù)取得了很大進(jìn)展。研究PPI關(guān)系識別的技術(shù)主要是基于有監(jiān)督的機(jī)器學(xué)習(xí)方法,這種方法需要依賴于數(shù)量大且質(zhì)量高的標(biāo)注了蛋白質(zhì)交互信息的文本集合,而構(gòu)造此集合需要耗費(fèi)大量的人力和時(shí)間。因此,文中提出了一種基于弱監(jiān)督的蛋白質(zhì)交互識別方法,只需利用少量已有的標(biāo)注信息進(jìn)行蛋白質(zhì)交互關(guān)系的識別。該方法對蛋白質(zhì)關(guān)系描述的上下文進(jìn)行聚類,提取出交互關(guān)系描述的模式,利用模式對交互關(guān)系進(jìn)行判斷。最后通過實(shí)驗(yàn)對該方法進(jìn)行了驗(yàn)證。
近年來,研究者們越來越多地采用基于機(jī)器學(xué)習(xí)的方法進(jìn)行PPI的識別[4-6],該方法主要是以單個(gè)句子為研究對象的,并且是有監(jiān)督的。基于機(jī)器學(xué)習(xí)的方法主要包括兩大類:基于特征的方法和基于核函數(shù)的方法。基于特征的方法試圖從標(biāo)注有交互關(guān)系的蛋白質(zhì)對的句子中提取出對PPI識別有效的特征來建立模型,進(jìn)而判斷蛋白質(zhì)對是否存在交互關(guān)系。例如,文獻(xiàn)[7-8]從句子中的詞匯形式、位置以及蛋白質(zhì)的上下文等信息中提取特征。Yang等[9-10]使用了詞匯、關(guān)鍵詞、蛋白質(zhì)實(shí)體間距離、鏈接等豐富的特征?;诤撕瘮?shù)的方法首先深入研究句子結(jié)構(gòu),通過設(shè)計(jì)核函數(shù)衡量不同蛋白質(zhì)對間的相似度,然后使用支持核函數(shù)的分類器進(jìn)行PPI關(guān)系識別。例如,Bunescu R C等[11]提出了最短依賴路徑核,將句子以樹的形式表示,用兩個(gè)實(shí)體之間的最短路徑表示實(shí)體之間的關(guān)系;文獻(xiàn)[12]使用圖核,文獻(xiàn)[13]使用多核,文獻(xiàn)[14]使用基于樹核的學(xué)習(xí)方法進(jìn)行PPI信息的抽取。但是,有監(jiān)督的方法需要大量有標(biāo)注的數(shù)據(jù),另外以單個(gè)句子為研究對象的方法只能依賴一個(gè)句子中的線索,對于句子復(fù)雜描述很難判斷。
與上述方法不同,文中采用弱監(jiān)督方式,只需利用少量的標(biāo)注數(shù)據(jù),利用與交互關(guān)系的模式的相似性對交互關(guān)系進(jìn)行判斷。
文中是從文本中識別出有交互關(guān)系的蛋白質(zhì)對,主要分為四個(gè)模塊,下面詳述之。
該模塊找到文本庫中包含種子的句子,其中每個(gè)句子對應(yīng)一個(gè)關(guān)系實(shí)例,然后生成關(guān)系實(shí)例的向量表示。因?yàn)橐粋€(gè)句子中的上下文在表達(dá)交互關(guān)系上起了重要作用,所以提取上下文作為關(guān)系表達(dá)的特征。每個(gè)句子的上下文都分為三個(gè)部分:第一個(gè)蛋白質(zhì)左邊n個(gè)單詞(BEF),兩蛋白質(zhì)之間的單詞(BET),第二個(gè)蛋白質(zhì)右邊n個(gè)單詞(AFT)。因?yàn)閯?dòng)詞和名詞通常有實(shí)際含義,所以只取出上下文中的動(dòng)詞和名詞。對三個(gè)上下文,找每個(gè)單詞的詞根,構(gòu)成其對應(yīng)的特征集合f_bef、f_bet和f_aft。根據(jù)特征集合,得到關(guān)系實(shí)例的向量表示。其中向量采用0/1權(quán)重,即特征集合中的特征在上下文中出現(xiàn),則權(quán)值為1,否則為0。
PPI的文本描述存在相似性,比如interact、bind等詞常用來描述PPI。本節(jié)根據(jù)PPI描述的相似性對PPI描述的上下文進(jìn)行聚類,形成PPI描述的提取模式。
算法1描述了單次聚類算法的過程,該算法的輸入是包含種子蛋白質(zhì)對的關(guān)系實(shí)例的向量集合。下面詳細(xì)說明聚類算法。
算法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 對實(shí)例排序
算法1的第1行是對實(shí)例排序。由于單次聚類算法具有明顯的次序依賴特性,因此需要根據(jù)實(shí)例表示交互關(guān)系可能性的大小對實(shí)例進(jìn)行排序。存在交互關(guān)系可能性大的實(shí)例越靠前,聚類效果越好。因此,文中先用f_bef,f_bet,f_aft對PPI的表達(dá)進(jìn)行評估。
假設(shè)出現(xiàn)在多個(gè)交互關(guān)系描述中的單詞對于表達(dá)交互關(guān)系比較重要。因此,統(tǒng)計(jì)一個(gè)單詞在種子蛋白質(zhì)對描述中出現(xiàn)的頻率,用頻率映射表來表示。頻率映射表包含鍵和鍵值兩個(gè)域。鍵表示一個(gè)上下文中出現(xiàn)的單詞的詞根,鍵值即為該詞根的頻率,即該詞根出現(xiàn)在幾個(gè)種子蛋白質(zhì)對的描述中。然后,按鍵值從大到小的順序排序。值越大,其對應(yīng)的鍵描述PPI的重要性越大。相對f_bef和f_aft,f_bet對于關(guān)系的表達(dá)更重要,所以評分只根據(jù)f_bet。
對f_bet中的動(dòng)詞產(chǎn)生頻率映射表,根據(jù)頻率映射表來計(jì)算實(shí)例的f_bet得分。對f_bet中的每個(gè)詞,如果其詞根出現(xiàn)在頻率映射表中,則找到其在映射表中對應(yīng)的鍵值。然后采用兩種方式對f_bet打分。(1)取所有詞對應(yīng)的最大鍵值作為f_bet得分;(2)取所有詞對應(yīng)鍵值的和作為f_bet得分。最后,根據(jù)實(shí)例中f_bet的得分,對實(shí)例從大到小排序。
2.2.2 對實(shí)例進(jìn)行聚類
算法1的第2和第3行表示將排序后的實(shí)例集合中的第一個(gè)實(shí)例作為第一個(gè)簇中的第一個(gè)元素,第二個(gè)實(shí)例和它作相似性比較。若相似性滿足閾值條件,則將第二個(gè)實(shí)例加入到第一個(gè)簇中,否則,創(chuàng)建一個(gè)新的簇,將第二個(gè)實(shí)例加入之。算法1的第4~20行表示依次計(jì)算實(shí)例in和每一個(gè)簇clj之間的相似性,選出實(shí)例和任意簇之間相似性最大的那個(gè)簇clindex,并且實(shí)例和該簇滿足閾值條件,則將實(shí)例in添加到簇clindex中。如果實(shí)例in和最大相似性的簇都不滿足閾值條件,那么創(chuàng)建一個(gè)新的空簇,將實(shí)例in添加進(jìn)去。算法1的第21行輸出所生成的簇,也即PPI關(guān)系的提取模式。
一個(gè)實(shí)例和一個(gè)提取模式之間的相似性是通過算法1第7行中的Sim(in,clj)來計(jì)算的,也就是計(jì)算實(shí)例in和簇clj內(nèi)的各個(gè)成員實(shí)例之間的相似性。對Sim(in,clj),如果實(shí)例in和簇clj中半數(shù)以上實(shí)例的相似性都滿足閾值條件,那么返回最大的相似性值,否則返回0。兩個(gè)實(shí)例的相似性依賴于BEF、BET和AFT,計(jì)算實(shí)例與實(shí)例的相似性時(shí)采用如下公式:
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表示組成實(shí)例im的三個(gè)上下文向量;α、β和γ分別代表了各自的權(quán)值,且β最大。文中設(shè)置α、β和γ分別為0.2,0.6,0.2。
根據(jù)2.2節(jié)產(chǎn)生的提取模式,利用算法2尋找候選關(guān)系實(shí)例。對待判斷關(guān)系的蛋白質(zhì)對集中的每對蛋白質(zhì),和種子類似,在文本庫中掃描包含該對蛋白質(zhì)的句子。對每個(gè)句子,生成該句子對應(yīng)實(shí)例的向量表示(算法第3行)。從所有關(guān)系實(shí)例中選出可能存在交互關(guān)系的實(shí)例,即候選關(guān)系實(shí)例。
算法2的輸入為文本庫,已知交互關(guān)系和待判斷關(guān)系的蛋白質(zhì)對集合,提取模式。
算法2的第1行表示初始化“模式-實(shí)例”映射表mapp-i,為空?!澳J?實(shí)例”映射表的結(jié)構(gòu)是一一對應(yīng)的鍵值對,鍵的內(nèi)容是提取模式,鍵值的內(nèi)容是該模式提取出的所有候選實(shí)例組成的集合。
算法2:尋找候選實(shí)例
輸入: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
每個(gè)實(shí)例都和提取模式逐個(gè)進(jìn)行相似性計(jì)算,其運(yùn)算方式和2.2.2節(jié)中計(jì)算實(shí)例和提取模式之間相似性的方式相同。如果某個(gè)實(shí)例i和某個(gè)模式j(luò)之間的相似性值滿足閾值條件,表示該實(shí)例i成為了一個(gè)候選實(shí)例,稱該模式提取出該實(shí)例,更新“模式-實(shí)例”映射表mapp-i(算法2第3~7行)。
不同的模式對表達(dá)交互關(guān)系的重要性不同,算法2第11行表示對模式的重要性打分。該得分反映了模式的可靠程度,得分越高,模式越可靠。模式得分公式如下:
patternScore=(|K|+|U|×wu)×|ACS|×|AIS|
(3)
其中,|K|表示“known”的數(shù)量;|U|表示“unknown”的數(shù)量。根據(jù)“模式-實(shí)例”映射表,由模式得到該模式提取出的所有實(shí)例,將這些實(shí)例和種子蛋白質(zhì)對集合進(jìn)行比較,若實(shí)例對應(yīng)的蛋白質(zhì)對出現(xiàn)在種子集合中,那么該蛋白質(zhì)對被認(rèn)為是“known”,否則認(rèn)為是“unknown”。wu表示|U|的權(quán)值,因?yàn)閡nknown的可靠性不如known高,所以wu介于0~1之間,文中設(shè)置其為0.7。
在2.2.1節(jié)中,計(jì)算了每個(gè)實(shí)例的上下文得分,|ACS|表示一個(gè)模式提取出的所有實(shí)例的上下文得分的平均值,|AIS|表示組成模式的實(shí)例的平均相似性,即對組成該模式的實(shí)例,計(jì)算任意兩個(gè)實(shí)例之間的相似性,并計(jì)算這些相似性的平均值。由此得到所有提取模式的得分,再將每個(gè)提取模式得分都除以其中的最高分,得到最終的得分。
文中對候選實(shí)例打分以評估一個(gè)候選實(shí)例的可靠性(算法2第12行)。該得分反映了實(shí)例對應(yīng)的蛋白質(zhì)對存在交互關(guān)系可能性的大小,實(shí)例得分越高,其對應(yīng)的蛋白質(zhì)對越有可能存在交互關(guān)系。候選實(shí)例的得分則根據(jù)如下公式:
Sim(i,ξj))
(4)
其中,ξ表示該實(shí)例i對應(yīng)的所有提取模式的集合;patternScore(ξj)表示第i個(gè)模式的得分;Sim(i,ξj)表示該實(shí)例i和模式j(luò)的相似性得分。
每一個(gè)候選實(shí)例對應(yīng)的蛋白質(zhì)對,稱為候選蛋白質(zhì)對。本節(jié)對候選蛋白質(zhì)對打分,得分越高,該蛋白質(zhì)對越有可能存在交互關(guān)系。采用如下公式評分:
(5)
其中,ξ表示一個(gè)蛋白質(zhì)對所對應(yīng)的候選實(shí)例的集合。
最后,將滿足tupleScore≥Ttuple(Ttuple是候選蛋白質(zhì)對得分的閾值)的蛋白質(zhì)對添加到種子集中,以用于下一輪的迭代,直到滿足迭代的終止條件。
實(shí)驗(yàn)中有交互關(guān)系的蛋白質(zhì)對是直接從HPRD數(shù)據(jù)庫中查詢獲取,并且只保留被PubMed數(shù)據(jù)庫中一篇以上摘要包含的那些蛋白質(zhì)對。而對于無交互關(guān)系的蛋白質(zhì)對,將HPRD中的蛋白質(zhì)隨機(jī)組合成蛋白質(zhì)對,去除已被HPRD數(shù)據(jù)庫包含的蛋白質(zhì)對以及未被PubMed數(shù)據(jù)庫記載的蛋白質(zhì)對。以一對蛋白質(zhì)為查詢參數(shù),從文獻(xiàn)中檢索出描述這兩個(gè)蛋白質(zhì)的所有句子,作為該蛋白質(zhì)對的簽名檔。設(shè)置一個(gè)句子中BET上下文的有效單詞個(gè)數(shù)為6(有效單詞個(gè)數(shù)是指不包括標(biāo)點(diǎn)在內(nèi)的單詞個(gè)數(shù),不夠6個(gè)則取BET中所有的單詞)。滿足此要求的有交互和無交互關(guān)系的蛋白質(zhì)對分別有964和870對,總共1 834對。這些蛋白質(zhì)對對應(yīng)的簽名檔構(gòu)成文本庫。從有交互關(guān)系的蛋白質(zhì)對中隨機(jī)選出50對作為種子。
使用精度(P)、召回率(R)和F值(F)作為評價(jià)標(biāo)準(zhǔn),它們的計(jì)算公式為:
(6)
算法1和算法2使用的相似性閾值Tsim相同。為設(shè)定合理閾值,從種子對應(yīng)的實(shí)例中取2 000個(gè)實(shí)例,根據(jù)式(1),得到這2 000個(gè)實(shí)例兩兩之間的相似性值的分布。從分布值中發(fā)現(xiàn),相似性值集中在0.22以下,從而確定Tsim為0.22。每一個(gè)Tsim的取值對應(yīng)一個(gè)識別結(jié)果。
首先,比較兩種上下文得分的計(jì)算方式。這里采用2.2.1節(jié)的兩種打分方式計(jì)算實(shí)例的上下文得分,并將識別方法運(yùn)算一次,獲得識別結(jié)果。精度-召回率曲線(P-R圖)如圖1所示,其中候選蛋白質(zhì)對得分的閾值Tsim在[0,5]范圍內(nèi)變化,以0.1為間隔,Tsim越小,對應(yīng)的召回率recall越高。
圖1 運(yùn)算一次的P-R圖
圖中,maxCooccur表示取所有詞對應(yīng)的最大鍵值作為f_bet得分,plusCooccur表示取所有詞對應(yīng)鍵值的和作為f_bet得分。從圖1中可以發(fā)現(xiàn)兩種方式識別結(jié)果很接近;相同召回率下,maxCooccur方式的精度在大部分情況下比另一種高。說明取所有詞對應(yīng)的最大鍵值作為f_bet得分的識別結(jié)果更好。
下面,在采用maxCooccur方式計(jì)算實(shí)例的上下文得分的情況下,考察迭代運(yùn)算結(jié)果。為避免召回率過低,設(shè)置Tsim為0,0.1,得到迭代后的識別結(jié)果,如表1和表2所示。
表1 Tsim為0時(shí)的識別結(jié)果
表2 Tsim為0.1時(shí)的識別結(jié)果
從兩張表可以發(fā)現(xiàn),隨著迭代次數(shù)的增加,種子集合增大,召回率上升,精度下降,總的F值上升。Tsim為0和0.1的識別結(jié)果相比,前者的精度明顯小于后者,召回率和F值明顯大于后者。
文中只采用了50個(gè)種子作為系統(tǒng)輸入,先對描述蛋白質(zhì)交互關(guān)系的上下文進(jìn)行聚類,而后提取出描述交互關(guān)系的模式,再用模式判斷交互關(guān)系。算法綜合考慮了單句和多個(gè)句子的線索,取得了較高的精度。
為減少對標(biāo)注數(shù)據(jù)的依賴,提出了一種基于弱監(jiān)督的蛋白質(zhì)交互關(guān)系識別方法。該方法使用了少量的種子,取得了較好的識別效果。該方法在實(shí)例之間比較相似性時(shí)只考慮到了余弦相似性的計(jì)算,下一步的研究將嘗試其他相似性計(jì)算方法。
[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] 崔寶今,林鴻飛,張 霄.基于半監(jiān)督學(xué)習(xí)的蛋白質(zhì)關(guān)系抽取研究[J].山東大學(xué)學(xué)報(bào):工學(xué)版,2009,39(3):16-21.
[5] 董美豪.基于文本挖掘的蛋白質(zhì)相互作用對抽取方法的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[6] 楊志豪,洪 莉,林鴻飛,等.基于支持向量機(jī)的生物醫(yī)學(xué)文獻(xiàn)蛋白質(zhì)關(guān)系抽取[J].智能系統(tǒng)學(xué)報(bào),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的蛋白質(zhì)相互作用信息抽取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].楊凌:西北農(nóng)林科技大學(xué),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] 劉敏捷.基于組合學(xué)習(xí)和主動(dòng)學(xué)習(xí)的蛋白質(zhì)關(guān)系抽取[D].大連:大連理工大學(xué),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] 唐 楠,楊志豪,林鴻飛,等.基于多核學(xué)習(xí)的醫(yī)學(xué)文獻(xiàn)蛋白質(zhì)關(guān)系抽取[J].計(jì)算機(jī)工程,2011,37(10):184-186.
[14] 劉 念,馬長林,張 勇,等.基于樹核的蛋白質(zhì)相互作用關(guān)系提取的研究[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2013,41:232-236.