基于不同文本表示的大规模蛋白功能预测探究

2018-07-27 03:39乔羽姚舒威
微型电脑应用 2018年7期
关键词:文档逻辑向量

乔羽, 姚舒威

(复旦大学 计算机科学技术学院, 上海 200433)

0 引言

蛋白质是人体细胞的重要组成成分,与人体各项生命活动息息相关,研究蛋白质的功能对生物制药,疾病预测等众多领域有着重要的意义。基因本体(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),希望能够利用它们的互补性,结合两者的优点。不同的文本表示方法直接决定基于文本信息的蛋白质功能预测的效果,因此我们希望通过实验与分析不同的文本表示,找到最适合的文本表示方法,提高预测效果。

1 方法

对于给定的蛋白质,找到它在PubMed中的相关文档。通过这些相关文档,得到不同的文本表示。利用这些文本表示,KNN与逻辑回归会对每个GO进行打分预测。本文方法的流程图,如图1所示。

图1 本文方法的流程示意图

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的打分。

1.2 预处理

文本预处理参照了Shatkay等人[8]的处理方法。对于给定的蛋白质,通过它的UniProt ID在Swiss-prot数据库中查找相关文档,得到这些文档的PMID(PubMed ID)。通过这些PMID,提取每篇文档的摘要。如果给定的蛋白质有超过一篇的相关文档,那么我们就将所有文档的摘要拼接起来,作为这条蛋白的相关文档。

1.3 文本表示方法

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 预测方法

1.4.1K近邻(KNN)

对于给定的蛋白质Pi,它使用KNN的打分计算,如式(1)。

(1)

式中,I(Gj,Pk)是一个二值指示函数表示蛋白质Pk是否已标注功能Gj,Sim函数表示两个蛋白质的相似度,我们选用两个文本表示的cosine距离作为相似度函数。

1.4.2 逻辑回归(Logistic Regression)

对于每个GO,我们使用逻辑回归模型以及所有正负样本进行分类器的训练。对于给定的蛋白质,直接将每个GO的逻辑回归分类器的预测打分作为它的预测结果。

1.5 基准方法:Naive

Naive是CAFA的基准之一。对于所有给定蛋白,直接用每个GO在训练集中的频率当做这个GO的预测分数。预测分数如式(2)。

(2)

2 实验

2.1 实验数据集与参数设置

我们从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。

2.2 评估方法

为了评估预测效果,我们选用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 实验结果与分析

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),说明基于这种拼接后表示的逻辑回归,还是可以利用它们的互补性来提高效果的。

4 总结

文本信息作为序列信息以外的信息源,在蛋白质功能预测任务中同样具有重要作用。在这篇文章中,我们在类似CAFA的实验设置下,探究了在利用文本信息进行蛋白质功能预测时,使用不同文本表示的效果对比。我们尝试了多种主流文本表示,包括传统的基于词袋模型的文本稀疏表示(TFIDF)和含有深度语义信息的文本稠密表示(W2V, GloVe, D2V)。同时我们还做了两个拓展:针对基于词向量的稠密表示,采用了IDF加权平均(WW2V, WGloVe),以及稀疏与稠密表示的拼接结合(WW2V-TFIDF, WGloVe-TFIDF, D2V-TFIDF, Combined)。实验表明,总体上来看,逻辑回归要比KNN的效果更好。在KNN中,稠密表示效果比稀疏表示更好;而在逻辑回归中正相反。无论在KNN还是逻辑回归中,比较不同的稠密表示都各有侧重点,没有最好的稠密表示。同时我们发现,稀疏表示更侧重特定单词,而稠密表示含有深度语义信息,两者是互补的。实验也证明了,将它们拼接结合,同时利用两者的优点,效果会显著提升。最后我们推荐基于Combined表示(同时拼接TFIDF, WW2V, WGloVe, D2V)的逻辑回归,它在所有类别的所有指标中效果都是最好的。在今后的研究中,在使用文本信息进行蛋白质功能预测的基础上,我们也会尝试融合序列信息以及其他信息来提高预测精度。

猜你喜欢
文档逻辑向量
刑事印证证明准确达成的逻辑反思
浅谈Matlab与Word文档的应用接口
向量的分解
逻辑
创新的逻辑
有人一声不吭向你扔了个文档
聚焦“向量与三角”创新题
女人买买买的神逻辑
基于RI码计算的Word复制文档鉴别
向量垂直在解析几何中的应用