用于近似查询的长序列数据降维方法

文档序号:6615705阅读:148来源:国知局
专利名称:用于近似查询的长序列数据降维方法
技术领域
本发明涉及一种用于近似性查询的长序列数据降维方法,尤其是一种支持高效长序列近似性查询的序列嵌入(Sequential Embedding)方法,属于计算机数据管理技术领域。

背景技术
长序列数据存在于各个科学研究和应用领域,如互联网上的文本数据、生物领域的基因序列数据等。面向这些长序列数据的近似性查询,具有十分广泛的应用需求。如互联网文本数据的搜索、基因数据库中基因的相似性探索,以及多媒体领域的序列查询等。基于长序列数据的近似性查询已经成为国际数据管理研究领域关注的问题。
目前已存在一些方法和技术支持序列的近似性查询,但是这些技术在处理序列数据之间的相似性时,多采用传统的编辑距离度量方法,其效率很低(O(n2)级),一般而言仅适用于短序列数据集上的近似性查询。目前,长序列数据之间的相似性度量已经成为制约长序列数据集近似性查询性能提高的最主要瓶颈问题之一。在传统的查询领域,降维技术(如PCA方法)被认为是解决高维数值数据空间近似性查询效率问题的重要途径,但该方法并不适用于序列数值环境。目前为止,尚无文献提出面向长序列数据领域的降维方法,用于支持高效的长序列数据相似性查询问题。
现有的技术还不能有效解决长序列数据近似性查询所需要的降维问题,具体如下 首先,传统的面向高维矢量数据空间的降维(如PCA)方法无法应用于长序列数据集,因为序列数据没有清晰明确的维度定义; 其次,目前虽然提出了基于参考点的序列数据集空间缩减方法[Reference-based Indexing of Sequence Databases,VLDB’06],但其本质是通过参考序列数据构造索引查询空间,从而降低索引查询空间的范围,提高查询的效率,并没有从序列的本身解决降维的问题。而且这类方法依然无法避免序列之间相似性度量复杂性高的问题,不具有解决问题的普遍性和本质性特征。
传统索引方法不能有效解决序列相似性查询问题。文献[The X-treeAn indexStructure for High-Dimensional Data,VLDB’96]提出了利用索引树支持相似性查询,但是这类方法只在序列长度小于20时才有效,无法解决长序列查询的问题。
文献[Linear Pattern Matching Algorithms,IEEE Symposium on Switching andAutomata Theory]提出了通过建立后缀树提高序列近似性查询的效率,该方法目前在很多领域得到广泛应用。但是,该方法的最大缺点是耗费大量的空间,不具有降维方法所特有的空间压缩性特点。
文献[Fast MapA fast algorithm for indexing,data mining and visualization oftraditional and multimedia datasets,SIGMOD’95]提出了通过扫描所有序列数据集构造嵌入空间来构造索引支持近似性查询。但是由于在原始序列空间的距离相似性度量的复杂性,使得构造该嵌入空间的复杂性过高而不可行。
从上面的分析可以看出,目前存在的支持长序列数据进行相似性查询的方法不能很好的解决当前实际应用中面临的技术难题,迫切需要提供一种高效的、面向长序列数据的高效降维方法,用于支持长序列数据的相似性查询。


发明内容
本发明所要解决的技术问题在于提供一种与传统降维方法功能类似、但却能服务于长序列数据的高效降维方法,基于该方法可以构造出高效的面向长序列数据近似性查询的索引结构和查询方法,填补目前长序列数据近似查询中面临的“降维”难题。
本发明解决其技术问题所采用的技术方案是 步骤一、利用序列嵌入技术,把一个输入的长序列数据转化为一棵序列嵌入树(Sequence Embedding Tree); 步骤二、从序列嵌入树中,从每一层抽取出由字符序列所组成的字符多集集合,并利用所提出的距离收敛性质,构造多集空间所对应的主成份; 步骤三、在所提出的多集主成份和距离收敛性质的基础上,构造一个与多集主成份对应的索引结构; 步骤四、基于所提出索引结构基础上,提出序列距离的双边界(距离上界和下界)原理,并提出相应的近似性查询算法,完成基于序列降维的长序列高效查询。
本发明提出基于序列嵌入的长序列降维方法,通过构造一棵序列嵌入树,把长序列从有序的序列空间转换到了无序的多集集合空间。并根据嵌入树构造序列降维所需的各个多集主成份,并提出了主成份间距离计算的收敛性质。基于序列降维基础上构造的索引结构和近似性查询算法,可以高效的完成长序列的近似性计算问题。
长序列数据的广泛存在和基于长序列数据近似查询的广泛应用,为本专利提供了很广阔的应用前景和市场空间。目前,随着基因技术和互联网技术的快速发展,都迫切需要解决长序列数据的近似查询问题,如从海量的互联网文本数据中通过相似性搜索找到查找的目标,从大规模基因数据中对基因片段进行的相似性查询与分析等。本发明在这些新兴高产值领域中的应用,不仅能解决目前遇到的相似性查询性能瓶颈的难题,而且预见能够取得明显的经济效益和社会效益。



图1为本发明的长序列嵌入过程图(嵌入树); 图2为本发明的索引结构图; 图3为本发明的索引树构造过程示意图; 图4为本发明的查询过程示意图; 图5(a)、(b)为本发明的基于距离双边界的查询过滤图; 图6为本发明的处理过程流程图。
下面结合附图和实施例对本发明进一步说明。

具体实施例方式 本发明是针对当前长序列数据近似性查询效率低下的瓶颈问题而提出的一种解决长序列数据之间相似性度量的序列数据降维方法,它是基于序列嵌入的原理把长序列从有序的序列空间转换到多集表示的集合空间,并利用所提出的多集主成份距离收敛性原理,给出了序列降维的方法。基于长序列降维原理基础上,定义了索引结构,并给出了高效的近似性查询算法。
本发明方法,首先利用序列嵌入技术,把一个输入的长序列数据转化为一棵序列嵌入树(Sequence Embedding Tree);然后从序列嵌入树中,从每一层抽取出由字符序列所组成的字符多集集合,并利用所提出的距离收敛性质,构造多集空间所对应的主成份;接下来在所提出的多集主成份和距离收敛性质的基础上,构造一个与多集主成份对应的索引结构;最后基于所提出索引结构基础上,提出序列距离的双边界(距离上界和下界)原理,并提出相应的近似性查询算法,从而实现了基于序列降维的长序列高效查询。
本发明所述的序列嵌入技术与序列嵌入树,结合图1为例描述如下对于一个序列S=cabagehcadbba,标记为ET1(S),通过一次迭代可以被分解为六个块,每个块由2到3个字符组成,标记为ET1(S)[cs,ce],cs和ce分别表示该块的开始和结束字符。每个块ET1(S)[cs,ce]可以通过一个一对一的Karp-Miller哈希函数映射为一个元素。因此,在ET1(S)中所有块经哈希映射所得到的元素所组成的序列得到一个新的序列,标记为ET2(S)。例如,块ET1(S)[ca]可以通过哈希函数映射为单个元素k,所有ET1(S)中的元素通过哈希函数映射可以得到新的序列ET2(S)=komkna。利用同样的原理,重复上述过程,可以得到图1所示的序列嵌入树。
基于嵌入树的基础上,可以得到相应的多集集合和相应的用于序列降维的多集主成份,描述如下对于给定的一个序列ET(S),在对应的序列嵌入树中的所有字符组成一个多集集合,标记为T(S)。序列嵌入树中第i层序列ETi(S)所组成的多集标记为Ti(S)。因此,对于图1中的序列嵌入树所对应的嵌入子序列和多集可表示为ET(S)={ET1(S),ET2(S),ET3(S),ET4(S)}={{cabagehcadbba},{komkno},{pqr},{z}},T(S)={T1(S),T2(S),T3(S),T4(S)}={{a4,b3,c2,d1,e1,g1,h1},{k2,m1,n1,o2},{p1,q1,r1},{z1}}。其中a4表示该集合中包含4个元素a,序列嵌入过程的复杂性是线性的。
基于多集的序列距离收敛性质定义如下对于任意给定的两个序列S1和S2,和任意两个整数i和j,i≤j,满足如下性质 其中, 基于多集距离收敛性质的基础上,可以构造出支持序列近似性查询的索引结构SEM-tree,如图2所示。SEM-tree结构描述如下SEM-tree是一个多层多节点的树形结构,每一层的每个索引节点采用相应的多集表示。越靠近根节点的索引节点对应的多集越小,靠近叶节点的索引节点对应的多集越大。也就是说索引中第i层索引节点对应的多集为Ti(S)。叶节点对应相应的序列S。SEM-tree可以整个序列空间划分成为若干小的聚类空间,然后随着索引向下递归进行,基于多集距离收敛性质的基础上,查找的索引空间越来越来,直至在叶节点找到所需的序列。
SEM-tree的构造过程如图3所示,描述如下 表1长序列数据集SD 步骤30把所有需要处理的序列集合SD(如表1所示),利用前述的序列嵌入技术转换成为多集集合MS,并初始化SEM-tree的根节点root; 步骤31、如果当前多集空间的规模可以被一个页块装下,则可以直接把该多集集合作为叶节点进行处理;否则把生成一个新的内部节点,并用聚类算法基于当前多集基础上进行聚类,把多集空间合理的划分为若干个小的子空间; 步骤32、对于每个经聚类得到的多集子空间,选取子空间中一个多集作为代表,作为该子类索引节点的索引键,以该聚类所对应的半径作为该索引空间的索引半径; 步骤33对于每个索引子集合,重复上述步骤,直至SEM-tree生成。
如图4所示,在所构造的索引结构SEM-tree的基础上,对于给定的查询序列q和查询半径r,序列查询的目的是在序列集合当中找到所有的距离序列q的距离小于r的序列的集合。查询过程可描述如下 步骤40首先,利用嵌入技术把序列q转化为具有多个主成份的多集集合; 步骤41、对于SEM-tree中当前访问的节点(假设为N)中的任意以cv(以多集主分表示)为中心点标识的子类而言,如果cv与Ti(q)之间距离的下界大于给定查询半径r,则该cv被过滤掉,如图5(a)所示; 步骤42、否则,如果cv与Ti(q)之间距离的上界小于等于给定查询半径r,则以cv为根的子树所对应的所有索引序列,都属于最终查询的结果,无序对该子树进行进一步的递归嵌套查询,如图5(b)所示; 步骤43、如果上述两个条件都没有满足,则需要对该序列递归嵌套查询,在以cv为根的子树的内部节点,继续利用上述方法进行递归查询; 步骤44如果当前访问的节点是叶子节点,则直接进行距离计算,确定该叶节点所对应的序列是否应该归属到最终的查询结果当中。
在步骤41和步骤42中所述的双边界采用如下的方法进行确定 根据序列嵌入理论,对于给定序列s1和s2,它们之间的距离满足如下关系 其中,n=max(|s1|,|s2|),m=max(card(T(s1)),card(T(s2))) 因此,对于给定的序列s1和s2,它们之间的真实距离

可以在索引树的第i层节点预测其距离的上界和下界,近似结果如下 图6给出了本发明的处理流程,描述如下接受输入的长序列数据集,基于序列嵌入技术进行序列嵌入处理,得到以多集形式表述的多集集合;然后在此基础上提取多集主成份,形成具有降维特性的序列距离收敛性质;在此基础上,构造索引结构,在用户的提供的参数基础上,执行近似性查询,输出最终的查询结果。
本发明用于对任意序列集合(尤其适用于长序列集合)进行高效的近似性查询,给出了用于长序列距离相似性度量的高效面向序列数据的高效降维方法,该方法的特征是把距离计算从有序的、代价昂贵的序列空间转化到了无序的、空间有效的、计算代价很低的集合空间,而且在以多集集合表示的主成份之间,发现了支持降维特征的距离计算收敛性质。基于该降维技术的基础上,发明了高效的索引结构和基于高效双边界过滤的查询方法,从而达到了序列数据高效近似性查询的目的。
最后所应说明的是以上实施例仅用于说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种面向近似性查询的长序列数据降维方法,其特征是包括如下步骤
步骤一、利用序列嵌入技术,把一个输入的长序列数据转化为一棵序列嵌入树;
步骤二、从序列嵌入树中,从每一层抽取出由字符序列所组成的字符多集集合,并利用所提出的距离收敛性质,构造多集空间所对应的主成份;
步骤三、在所提出的多集主成份和距离收敛性质的基础上,构造一个与多集主成份对应的索引结构;
步骤四、基于所提出索引结构基础上,提出序列距离的双边界距离上界和下界原理,并提出相应的近似性查询算法,完成基于序列降维的长序列高效查询。
2.根据权利要求1所述的一种面向近似性查询的长序列数据降维方法,其特征是对于一个序列S,标记为ET1(S),通过一次迭代可以被分解为6个块,每个块由2到3个字符组成,标记为ET1(S)[cs,ce],cs和ce分别表示该块的开始和结束字符;每个块ET1(S)[cs,ce]通过一个一对一的Karp-Miller哈希函数映射为一个元素;因此,在ET1(S)中所有块经哈希映射所得到的元素所组成的序列得到一个新的序列,标记为ET2(S);利用同样的原理,重复上述过程,可以得到最终的序列嵌入树。
3.根据权利要求1所述的一种面向近似性查询的长序列数据降维方法,其特征是所述步骤二,包括如下步骤
步骤21、把序列嵌入树中的所有字符组成一个多集集合,标记为T(S);
步骤22、把多集集合T(S)按照其元素在嵌入树中所述的层次,分拆成为h(h为嵌入树的高度)个子多集集合Ti(S),Ti(S)中的每个元素与嵌入树中第i层的每个元素一一对应,表示为{Ti(S)|Ti(S)T(S),i≤h};每个Ti(S)构成序列S的第i个主成份;
步骤23、利用得到的多集主成份,构造出支持序列降维的距离收敛性质。
4.根据权利要求3所述的一种面向近似性查询的长序列数据降维方法,其特征是所述步骤23,包括
基于多集主成份的距离收敛性质定义如下对于任意给定的两个序列S1和S2,和任意两个整数i和j,i≤j,满足如下性质
其中,
5.根据权利要求1所述的一种面向近似性查询的长序列数据降维方法,其特征是所述步骤三,包括如下步骤
步骤31把所要处理的序列集合SD利用序列嵌入技术转换成为具有多个主成份的多集集合MS,并初始化SEM-tree的根节点root;
步骤32、如果当前多集空间的规模可以被一个页块装下,则可以直接把该多集集合作为叶节点进行处理;否则把生成一个新的内部节点,并用聚类算法基于当前多集基础上进行聚类,把多集空间合理的划分为若干个小的子空间;
步骤33、对于每个经聚类得到的多集子空间,选取子空间中一个多集作为代表,作为该子类索引节点的索引键,以该聚类所对应的半径作为该索引空间的索引半径;
步骤34对于每个索引子集合,重复上述步骤,直至SEM-tree生成。
6.根据权利要求1所述的一种面向近似性查询的长序列数据降维方法,其特征是所述步骤四,包括如下步骤
步骤41对于给定的查询序列q和查询半径r,序列查询的目的是在序列集合当中找到所有的距离序列q的距离小于r的序列的集合;首先,利用嵌入技术把序列q转化为具有多个主成份的多集集合;
步骤42、对于SEM-tree中当前访问的节点(假设为N)中的任意以cv(以多集主分表示)为中心点标识的子类而言,如果cv与Ti(q)之间距离的下界大于给定查询半径r,则该cv被过滤掉;
步骤43、如果cv与Ti(q)之间距离的上界小于等于给定查询半径r,则以cv为根的子树所对应的所有索引序列,都属于最终查询的结果,无序对该子树进行进一步的递归嵌套查询;
步骤44、如果上述两个条件都没有满足,则需要对该序列递归嵌套查询,在以cv为根的子树的内部节点,继续利用上述方法进行递归查询;
步骤45如果当前访问的节点是叶子节点,则直接进行距离计算,确定该叶节点所对应的序列是否应该归属到最终的查询结果当中。
7.根据权利要求6所述的一种面向近似性查询的长序列数据降维方法,其特征是所述步骤42和步骤43,包括如下步骤根据序列嵌入理论,对于给定序列S1和S2,它们之间的距离满足如下关系
其中,n=max(|S1|,|S2|),m=max(card(T(S1)),card(T(S2)));
因此,对于给定的序列S1和S2,它们之间的真实距离
可以在索引树的第i层节点预测其距离的上界和下界,结果如下
全文摘要
一种面向近似性查询的长序列数据降维方法,包括利用序列嵌入技术把序列数据转化为嵌入树,并抽取出多集集合;根据嵌入树和多集集合提取出相应的多集主成份,并在此基础上提出了基于距离收敛的序列数据降维原理;基于降维性质的基础上,构造出了面向序列近似查询的索引结构,SEM-tree,并基于该索引结构基础上,利用序列距离双边界(最大上界和最小下界)原理,提出了高效的面向长序列数据的近似性查询方法。本发明可以广泛的应用于面向长序列数据的近似查询应用中,如从海量的互联网文本数据中通过相似性搜索找到查找的目标,从大规模基因数据中对基因片段进行的相似性查询与分析等。本发明而且预见能够取得明显的经济效益和社会效益。
文档编号G06F17/30GK101196921SQ20071030398
公开日2008年6月11日 申请日期2007年12月24日 优先权日2007年12月24日
发明者宋国杰, 谢昆青 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1