喬羽, 姚舒威
(復旦大學 計算機科學技術學院, 上海 200433)
蛋白質是人體細胞的重要組成成分,與人體各項生命活動息息相關,研究蛋白質的功能對生物制藥,疾病預測等眾多領域有著重要的意義。基因本體(Gene Ontology, GO)是描述蛋白質功能最常用的標準之一,包含生物學的3個不同類別:分子功能(Molecular Function Ontology, MFO)、生物進程(Biological Process Ontology, BPO)、細胞組成(Cellular Component Ontology, CCO)。基于生化實驗確定蛋白功能,雖然標注精準,但是對時間和資源的耗費卻十分巨大,無法進行大規模的標注。這也使得UniProt數據庫中擁有實驗標注的蛋白質還不足總量的1%,如何低成本且高效地確定大量蛋白質的功能成為了研究瓶頸。利用機器學習的方法進行自動的蛋白質功能預測(Automatic Function Prediction, AFP)成為研究熱點[1-2]。
為了評估蛋白質功能預測方法的效果,CAFA(The Critical Assessment of protein Function Annotation algorithms)提供了一個公平且統一的評測平臺。CAFA按照一種延時評估的方式進行評測:即先選出測試集(T0時刻),經過幾個月的時間累積實驗標注(T1時刻),最后用這些新的標注去評估預測方法。目前已經舉辦了3次比賽:CAFA1(2010-2011),CAFA2(2013-2014)和CAFA3(2016-2017),結果中絕大多數的優秀方法都利用了序列信息,這證明了蛋白序列的重要作用[3-4]。
為了提高蛋白質功能預測的精度,我們希望能夠充分利用除了蛋白質序列以外的其它信息源。事實上,負責蛋白功能標注的管理員也常常通過閱讀蛋白質的相關文獻來進行功能標注。許多學者已經將文本分類方法應用于蛋白質功能預測的領域,如Wong等人[5]提出了一個基于詞袋模型的文本稀疏表示的蛋白質功能預測方法。對于給定的蛋白質,從PubMed中提取相關文檔。然后利用詞袋模型得到相關文檔的特征向量,并使用KNN進行GO預測打分。該模型效果明顯好于兩個基準方法:Naive(Base-Prior)和BLAST(Base-Seq)。但是該模型只對出現次數最頻繁的GO進行打分,而沒有對所有GO進行預測。與基于文本的蛋白質功能預測任務類似,對PubMed文檔進行MeSH(Medical Subject Headings)標注也是一個多標簽分類問題。Peng等人[6]在MeSHLabeler的基礎上提出了DeepMeSH模型,更好的解決了MeSH標注問題。DeepMeSH同時結合了含有深度語義信息的稠密表示(D2V)和基于詞袋模型的稀疏表示(TFIDF),將二者拼接得到了含有二者優點的D2V-TFIDF表示,比只使用稀疏表示的MeSHLabeler效果有顯著的提高。我們小組的You等人[7]基于DeepMeSH類似的思想,在蛋白質功能預測任務中,提出了DeepText2GO模型。DeepText2GO同樣利用蛋白質相關PubMed文檔信息,使用類似的D2V-TFIDF表示,同時還集成了基于同源信息的預測方法(BLAST-KNN)的預測結果。雖然DeepText2GO比基于傳統文本稀疏表示的方法效果有了很大提升,但是DeepText2GO直接使用的是D2V-TFIDF這個DeepMeSH中效果較好的文本表示方法,沒有嘗試其他的主流文本表示方法。
為了進一步探究在蛋白質功能預測任務中不同的文本表示對預測效果的影響,本文針對近年來主流的文本表示方法(TFIDF, W2V, GloVe, D2V)做了大量的實驗和分析。其中,TFIDF表示是一種傳統的基于詞袋模型的稀疏向量表示。它忽略了詞序與上下文語義信息,突出了特定單詞的作用。得益于近年來興起的無監督神經網絡模型(Word2Vec, GloVe),我們可以輕松得到含有豐富深度語義信息的稠密詞向量,對文本中的詞向量進行平均就可以得到文本的稠密向量表示(W2V, GloVe)。同時利用基于Word2Vec模型改進的Doc2Vec模型可以直接得到文本的稠密向量表示(D2V),相比由詞向量得到的文本表示,Doc2Vec得到的文本表示能夠更加充分地利用文本的上下文與深度語義信息。
同時我們還進行了兩方面的拓展:一是通過詞向量得到文本表示時考慮使用IDF加權平均(WW2V, WGloVe);二是將稀疏表示與稠密表示整合(WW2V-TFIDF, WGloVe-TFIDF, D2V-TFIDF),希望能夠利用它們的互補性,結合兩者的優點。不同的文本表示方法直接決定基于文本信息的蛋白質功能預測的效果,因此我們希望通過實驗與分析不同的文本表示,找到最適合的文本表示方法,提高預測效果。
對于給定的蛋白質,找到它在PubMed中的相關文檔。通過這些相關文檔,得到不同的文本表示。利用這些文本表示,KNN與邏輯回歸會對每個GO進行打分預測。本文方法的流程圖,如圖1所示。

圖1 本文方法的流程示意圖
我們用D表示一個給定的訓練集,用ND表示訓練集內蛋白質數量,即|D|=ND。我們用Gi表示第i個GO標注,用NGi表示D中有Gi標注的蛋白質數量。需要注意的是,如果一個蛋白質有GO標注Gi,那么我們認為在GO結構中Gi的所有祖先GO都是這條蛋白的標注。我們用T表示一個給定的測試集,用NT表示測試集內蛋白質數量,即|T|=NT,并且用Pj表示測試集中第j個蛋白。I(Gj,p)是個二值函數,表示蛋白質p是否有GO標注Gi(1表示有,0表示沒有)。S(Pi,Gj)表示蛋白質Pi有GO標注Gj的打分。
文本預處理參照了Shatkay等人[8]的處理方法。對于給定的蛋白質,通過它的UniProt ID在Swiss-prot數據庫中查找相關文檔,得到這些文檔的PMID(PubMed ID)。通過這些PMID,提取每篇文檔的摘要。如果給定的蛋白質有超過一篇的相關文檔,那么我們就將所有文檔的摘要拼接起來,作為這條蛋白的相關文檔。
1.3.1 TFIDF表示
TFIDF(term frequency-inverse document frequency)是一種傳統的基于詞袋模型的文本稀疏向量表示,在文本挖掘中有著廣泛的應用。TFIDF使用一個詞典大小的向量表示文本。對于給定文本中的每個單詞,TFIDF使用詞頻TF和逆向文檔詞頻IDF的乘積來表示這個單詞的權重。TFIDF強調的是在文檔中出現次數較多以及在整個語料庫中出現次數較少的單詞。顯然,TFIDF將給定文本表示成了一個高維稀疏向量,并且忽略了文本中的語義信息與單詞順序。
1.3.2 W2V表示與WW2V表示
Word2Vec(Word to Vector)是Mikolov等人[9]在2013年提出的一種基于神經網絡模型的詞向量模型。通過上下文單詞預測當前單詞(CBOW)或當前單詞預測上下文單詞(Skip-Gram)的概率來訓練神經網絡,之后得到每個單詞的稠密向量表示。對于給定文本,將文本中所有單詞的詞向量進行平均,就得到了文本的W2V表示。而類似TFIDF的思想,每個單詞的重要性不同,所以對于給定文本,將文本中所有單詞的詞向量使用IDF的加權平均,就可以得到文本的WW2V表示。顯然W2V與WW2V表示都是文本的稠密向量表示。
1.3.3 GloVe表示與WGloVe表示
GloVe[10]是另一種流行的詞向量模型。與Word2Vec不同,GloVe通過訓練神經網絡,逼近整個語料庫中單詞對之間的條件概率,得到詞向量。所以相比于Word2Vec,GloVe更加強調的是在整個語料庫中的整體統計信息與單詞之間的關系。類似W2V與WW2V表示之間的關系,GloVe與WGloVe表示也是在得到的GloVe詞向量基礎上通過文本內單詞詞向量的平均或者IDF加權平均得到它的文本表示。顯然GloVe和WGloVe表示都是文本的稠密向量表示。
1.3.4 D2V表示
Doc2Vec(Document to Vector)[11]是Le等人2014年提出的基于Word2Vec改進,直接得到文本深度稠密表示的方法。Doc2Vec在Word2Vec的模型基礎上,為每篇文檔增加了文檔向量,在訓練神經網絡的同時調整文檔與單詞的向量表示。通過這種方法得到的文本表示稱為D2V表示。顯然,D2V表示不僅是文本的稠密向量表示,相比上文提到的W2V與GloVe表示,更加充分的考慮了文本的深度語義信息。
1.3.5 表示的結合
因為TFIDF更強調指定的單詞,忽略了語義信息,而D2V等稠密表示恰好含有豐富的深度語義信息,而缺少了特定單詞的信息。為了利用兩者的互補性,結合兩者的優點,將TFIDF表示的向量和WW2V、WGloVe、D2V表示的向量分別拼接,得到WW2V-TFIDF、WGloVe-TFIDF以及D2V-TFIDF表示。同時為了因為不論是稀疏表示還是稠密表示,每個表示的優缺點,側重點都不同,所以我們也嘗試了將所有表示的向量拼接得到新的組合表示。
1.4.1K近鄰(KNN)
對于給定的蛋白質Pi,它使用KNN的打分計算,如式(1)。
(1)
式中,I(Gj,Pk)是一個二值指示函數表示蛋白質Pk是否已標注功能Gj,Sim函數表示兩個蛋白質的相似度,我們選用兩個文本表示的cosine距離作為相似度函數。
1.4.2 邏輯回歸(Logistic Regression)
對于每個GO,我們使用邏輯回歸模型以及所有正負樣本進行分類器的訓練。對于給定的蛋白質,直接將每個GO的邏輯回歸分類器的預測打分作為它的預測結果。
Naive是CAFA的基準之一。對于所有給定蛋白,直接用每個GO在訓練集中的頻率當做這個GO的預測分數。預測分數如式(2)。
(2)
我們從UniProt/Swiss-prot[10]蛋白質數據庫下載了2016.1與2016.10的標注文件。為了實驗更加準確,我們仿照CAFA按照時間劃分訓練集與測試集的設置。本文的實驗中,我們將關注那些之前沒有任何實驗標注信息(no-knowledge)的新蛋白。我們將2016年1月前的標注數據作為訓練集,將2016年1月前沒有實驗標注的蛋白質在2016.1~2016.10的標注作為測試集。為了使數據更加準確,我們只使用其中的生物實驗標注,即證據代碼為EXP,IDA,IPI,IMP,IGI,IEP,TAS,IC這8種類型的GO標注。統計訓練集和測試集的蛋白質數量。如表1所示。

表1 訓練集與預測集的蛋白質數量
我們從Swiss-prot數據庫中提取訓練集與測試集中蛋白質的相關文檔的PMID,并且從PubMed數據庫中下載它們的摘要。其中訓練集中有144 842篇Pubmed相關文檔,測試集中有2 713篇相關文檔。預處理采用WordNet詞典和NLTK分詞工具進行分詞。參照Peng等[6]的參數設置,稠密表示的向量長度選擇200。
為了評估預測效果,我們選用Fmax和AUPR(The area under the precision-recall curve)作為評價指標。AUPR是評估分類問題的常用指標,因為比AUC對假陽性預測有更多懲罰,所以更適合用于高度不平衡的數據。因為打分靠前的GO更重要,所以我們在計算AUPR時只關注打分最靠前的100個GO。Fmax作為CAFA的評估指標之一,在蛋白質功能預測的效果評估中被廣泛應用。Fmax的定義如式(3)。
(3)
式中pr(τ)和rc(τ)分別表示在某個截斷值τ下的準確率和召回率,定義如式(4)、(5)。
(4)
(5)
其中h(τ)是至少有一個GO標注且分數大于等于τ的蛋白質個數,函數1(·)在括號內判斷為真時值為1,否則為0。對于給定的測試集,我們先計算每個蛋白質與每個GO的預測分數,并將此分數排序,再按照上述方法進行AUPR和Fmax的評估。
2.3.1 基于不同表示的KNN效果對比
基于不同表示的KNN效果對比,如表2所示。

表2 文本表示在KNN下的Fmax和AUPR結果
表2每列最好的結果用黑體表示,第二名用下劃線表示。我們對稠密表示(W2V, WW2V, GloVe, WGloVe, D2V)與稀疏表示(TFIDF)進行對比,發現對于所有指標,所有基于稠密表示的KNN效果都比基于稀疏表示(TFIDF)的KNN和Naive要好。例如,對于在MFO上的AUPR,基于稠密表示的KNN中效果最差的是KNNGloVe(0.248),最好的是KNNWW2V(0.292),明顯好于Naive(0.161)與KNNTFIDF(0.213)。對于基于詞向量的稠密表示(W2V, WW2V, GloVe, WGloVe),我們發現通常情況下使用IDF加權的(WW2V, WGloVe)要比直接求平均的(W2V, GloVe)效果好。例如在MFO的AUPR上,KNNWW2V明顯好于KNNW2V,而KNNWGloVe也明顯好于KNNGloVe。我們也嘗試了將稠密表示與稀疏表示進行拼接結合(D2V-TFIDF, WW2V-TFIDF, WGloVe-TFIDF),并且發現在KNN中,因為TFIDF效果比較差,這種拼接的表示比起單獨使用稠密表示并沒有提高,反而大多數時候都在下降。通過觀察可以看出,所有單個稠密表示的KNN中并不存在一個最好的。即沒有在所有類別(MFO, BPO, CCO)的所有指標(Fmax,AUPR)上都好于其他的。例如,對于MFO和BPO上的Fmax,KNNWW2V在所有稠密表示的KNN中效果最好(0.388, 0.380),而KNND2V則在CCO上的Fmax最好(0.646),且明顯高于KNNWW2V(0.610)。因此我們認為每個表示由于計算方法不同,側重點不同,應該具有互補性。所以我們嘗試選擇了3個最好稠密表示(WW2V, WGloVe, D2V)進行拼接,得到KNNCombined的效果。我們觀察到,在3個類別的兩個指標中,除了在BPO上的Fmax(0.377)稍次于KNNWW2V(0.380),其余的都取得了最好的效果。說明確實不同稠密表示是不一樣的,具有互補性。
2.3.2 基于不同表示的邏輯回歸效果對比
基于不同表示的邏輯回歸效果對比,如表3所示。

表3 文本表示在邏輯回歸下的Fmax和AUPR結果
表內每列最好的結果用黑體表示,第二名用下劃線。我們同樣對稠密表示(W2V, WW2V, GloVe, WGloVe , D2V)與稀疏表示(TFIDF)進行對比,同時也和KNNCombined與Naive進行比較。我們發現,基于稀疏表示的邏輯回歸比所有基于稠密表示的邏輯回歸效果更好,并且邏輯回歸的效果也明顯好于Naive與KNNCombined。例如對于MFO上的Fmax,LRTFIDF(0.461)好于稠密表示中最好的LRD2V(0.459),并且遠好于KNNCombined(0.398)與Naive(0.272)。其次,類似在KNN中的發現,在邏輯回歸中,用IDF加權平均的表示(WW2V, WGloVe)要比直接平均(W2V, GloVe)的效果更好。例如對于MFO上的AUPR,LRWW2V要明顯好于LRW2V,LRWGloVe也明顯好于LRGloVe。同樣考慮稀疏表示與稠密表示的互補性,我們在邏輯回歸中,也將稀疏與稠密兩種表示拼接結合后作為新的表示(WW2V-TFIDF, WGloVe-TFIDF, D2V-TFIDF)。我們發現,因為稀疏表示與稠密表示的效果差距沒有那么大,所以拼接后的效果達到預期,比單獨的稀疏和稠密表示的效果都更好。例如LRD2V-TFIDF在CCO上的AUPR(0.712),明顯好于LRTFIDF(0.696)和LRD2V(0.677)。這說明拼接的表示充分利用了兩者的互補性,結合了兩者的優點,提升了效果。同樣我們也發現在邏輯回歸中,LRD2V-TFIDF要比LRWW2V-TFIDF以及LRWGloVe-TFIDF的效果要更好。例如在MFO上的AUPR,LRD2V-TFIDF(0.458)明顯好于LRWW2V(0.428)與LRWGloVe(0.420),這說明了D2V確實比WW2V以及WGloVe表示含有更加豐富的深度語義信息,與TFIDF更具有互補性。最后我們嘗試將TFIDF, D2V, WW2V, WGloVe 4個表示進行拼接得到LRCombined。通過觀察可以發現,LRCombined確實比LRD2V-TFIDF有略微提高,在所有類別的所有指標上效果最好。例如在MFO上的Fmax,LRCombined(0.508)略微好于LRD2V-TFIDF(0.504),說明基于這種拼接后表示的邏輯回歸,還是可以利用它們的互補性來提高效果的。
文本信息作為序列信息以外的信息源,在蛋白質功能預測任務中同樣具有重要作用。在這篇文章中,我們在類似CAFA的實驗設置下,探究了在利用文本信息進行蛋白質功能預測時,使用不同文本表示的效果對比。我們嘗試了多種主流文本表示,包括傳統的基于詞袋模型的文本稀疏表示(TFIDF)和含有深度語義信息的文本稠密表示(W2V, GloVe, D2V)。同時我們還做了兩個拓展:針對基于詞向量的稠密表示,采用了IDF加權平均(WW2V, WGloVe),以及稀疏與稠密表示的拼接結合(WW2V-TFIDF, WGloVe-TFIDF, D2V-TFIDF, Combined)。實驗表明,總體上來看,邏輯回歸要比KNN的效果更好。在KNN中,稠密表示效果比稀疏表示更好;而在邏輯回歸中正相反。無論在KNN還是邏輯回歸中,比較不同的稠密表示都各有側重點,沒有最好的稠密表示。同時我們發現,稀疏表示更側重特定單詞,而稠密表示含有深度語義信息,兩者是互補的。實驗也證明了,將它們拼接結合,同時利用兩者的優點,效果會顯著提升。最后我們推薦基于Combined表示(同時拼接TFIDF, WW2V, WGloVe, D2V)的邏輯回歸,它在所有類別的所有指標中效果都是最好的。在今后的研究中,在使用文本信息進行蛋白質功能預測的基礎上,我們也會嘗試融合序列信息以及其他信息來提高預測精度。