一种结合聚类和双key值的高维向量检索方法

文档序号:6508464阅读:158来源:国知局
一种结合聚类和双key值的高维向量检索方法
【专利摘要】本发明是一种结合聚类和双key值的高维向量检索方法。在本发明中,提出了一种结合聚类的双key值索引结构CDKB-tree,它首先采用聚类算法对高维向量集进行簇划分,然后为各簇数据构建双key值扩展B+-tree,形成CDKB-tree。进行检索时,只需对与查询范围相交的簇数据进行搜索,通过聚类实现第一次过滤,并通过主key和辅key(双key值),实现两次key值过滤,只需对主key和辅key均在搜索范围内的那些高维向量与查询向量间进行相似度匹配计算。本发明提出的索引结构通过聚类及简单的双key值大小比较,大大地减少了相似度匹配的运算量,极大地加快了检索速度。
【专利说明】一种结合聚类和双key值的高维向量检索方法
【技术领域】
[0001]本发明属于多媒体信息检索、智能信息处理、数据挖掘等数据处理领域,具体涉及 的是一种结合聚类和双key值的高维向量检索方法。
【背景技术】
[0002]随着计算机和信息技术的发展,产生了海量的多媒体数据,如何在海量的多媒体 数据库中快速找到所需的信息是当前多媒体数据库领域研究的一个重点问题。传统的方法 是由人工对多媒体数据进行标注,然后通过文本检索来实现多媒体信息检索。然而人工标 注存在工作量大和主观性强的缺陷,对于爆炸式增长的多媒体数据来说,完全人工标注是 不可实现的,因此需要研究基于内容的多媒体信息检索技术。
[0003]实现基于内容的多媒体信息检索的技术路线是:通过特征变换,将多媒体数据映 射到高维空间中的点——特征向量,用该特征向量来描述多媒体对象,得到特征库;然后用 同样的特征变换方法来提取查询对象的特征向量,最后通过特征向量间的相似度匹配来实 现多媒体信息的相似检索。因此多媒体信息的相似检索转变为在高维特征空间中寻找与给 定查询点最近的点集的过程。
[0004]要在高维空间中寻找与给定查询点最相近的点集,最简单直观的方法就是顺序扫 描,即依次将特征库中的每个特征(高维向量)与查询点进行相似度匹配,返回最匹配的那 些特征点集,得到检索结果。顺序扫描随着特征库中特征数目和特征维度的增加,计算消耗 时间线性增大,当特征库中的特征数目很大时,顺序扫描将不能满足实时性需求。为了加快 检索速度,最常用的方法就是借助于高维索引技术。
[0005]为了实现对海量高维向量的管理,研究者们提出了大量的索引结构,其中最为经 典的是以R-tree为代表的R-tree家族系列索引结构。R-tree是20世纪80年代由Guttman 提出的,用于管理多维矩形块数据而设计的一种索引结构,它是一种利用树结构管理数据 的高度平衡树,每个节点用该节点中所有数据的最小外接矩形(MBR:Minimal Bounding Rectangle)来表示,实际数据仅出现在叶子节点中。该索引结构通过扩展也可用于高维空 间中点数据的管理。在查询过程中,从根节点层到叶子节点层进行向下搜索,通过计算查询 向量和各节点MBR之间的最小距离来判断查询范围是否与某节点相交来实现剪枝过滤,仅 搜索可能包含结果的子树,从而加快检索速度。该索引结构允许节点之间的空间重叠,影响 了其查询效率。为了提高R-tree的性能,研究者们相续提出了 R+-tree、R*-tree、SS-tree、 SR-tree、X-tree、A-tree等索引结构。但这些树型索引结构随着特征维度的增加,查询效 率急剧下降,甚至不如顺序扫描,这就是所谓的“维数灾难”。
[0006]除了树型结构之外,还存在高维到一维转换的索引结构,例如:金字塔技术、 NB-tree、iDistance、iMinMax等等。高维到一维转换的索引结构通过某种规则,将高维向 量映射为一维数据(称为key值),然后采用一维的B+_tree来管理这些key值,key值在 B+-tree的叶子节点层有序排列。进行查询时,首先通过相同的高维到一维转换规则计算查 询向量的查询key值,最后根据查询范围,确定搜索的key值起始位置和结束位置,并依次扫描这些key值对应的高维向量,计算查询向量与这些高维向量间的相似性,返回那些最 相似的高维向量集,得到检索结果。由查询过程可知,高维到一维转换的索引结构在任何情 况下性能均优于或等效于顺序扫描,且基于前人的大量实验表明,这类索引结构随维数和 数据量的增加,性能降低缓慢。
[0007]金字塔技术、NB-tree、iDistance、iMinMax等这些高维到一维转换索引结构通 过单一 key值的简单比较实现过滤剪枝,虽然不需要复杂的距离计算且具有较高的检索效 率,但高维到一维转换的过程能够引起大量的数据信息丢失,引起不同向量可能具有相同 的一维key值,通过单一 key值仅能过滤掉比例不大的一部分数据,导致最终的相似度匹配 过程的运算量仍然很大,查询开销依然不小。

【发明内容】

[0008]本发明的目的在于提出了一种结合聚类和双key值的高维向量检索方法,该方法 采用聚类算法将高维空间进行簇划分,然后将各簇数据中的每个高维向量映射为双一维 key值。在查询过程中,通过聚类过滤掉一部分与查询区域不相交的簇数据,对于各簇数据 通过增加一层key值过滤层,进一步采用简单的key值比较实现再次过滤剪枝,极大地减少 了最终的向量相似度匹配的运算量,显著加快查询速度。
[0009]本发明的总体思想如下:首先采用聚类算法对高维向量集进行簇划分,然后为各 簇数据选取两个参考点,并对各簇数据采用高维向量对该簇数据两个参考点的距离将该簇 数据中的高维向量映射为双一维key值,统一选取该簇数据中某一采用相同参考点得到 的key值作为主key,另一作为辅key,最后,分别采用各簇数据的主key为各簇数据构建 B+_tree,同时各B+_tree叶子节点层的每个主key都绑定一个指向其对应辅key的指针,每 个辅key都绑定一个指向其对应高维向量的指针。进行检索时,首先只需对与查询范围相 交的各簇数据进行搜索,然后在与查询区域相交的各簇数据中使用相同的两个参考点和映 射方法将查询向量映射为查询主key和查询辅key,通过查询主key和查询范围确定在各簇 数据中的主key搜索范围,并通过查询辅key和查询范围确定辅key的搜索范围,最后只需 对经主key过滤后其辅key在辅key搜索范围内的那些高维向量与查询向量间进行相似度 匹配计算,返回那些最相似的向量集,得到检索结果。
[0010]具体创新点:对高维空间进行簇划分,为各簇数据中的每个高维向量选取两个参 考点得到双一维key值,通过聚类和两次简单的key值比较,极大地减少了最终参与相似度 匹配运算的高维向量数目,显著地加快了查询速度。
[0011]本发明的具体方法步骤为:(I)采用聚类算法对高维向量集进行簇划分,得到各 簇数据的聚类中心和聚类半径;(2)为各簇数据构建双key值扩展B+-tree,为每簇数据构 建双key值扩展B+-tree的过程为:首先为该簇数据选取两个参考点,并采用高维向量对这 两个参考点的距离将该簇数据中的高维向量映射为双一维key值,统一选取该簇数据中某 一采用相同参考点得到的key值为主key,另一作为辅key,然后采用该簇数据的主key为 该簇数据构建B+_tree,同时该B+_tree叶子节点层的每个主key都绑定一个指向其对应辅 key的指针,每个辅key都绑定一个指向其对应高维向量的指针,B+_tree叶子节点层的所 有主key形成主key层,所有辅key形成辅key层;(3)将各簇数据的聚类中心和聚类半径 都绑定一个指向其对应簇数据所构建双key值扩展B+_tree的指针,形成⑶KB-tree ; (4)进行检索时,通过查询范围过滤掉那些与查询区域不相交的各簇数据,对与查询范围相交的 各簇数据进行搜索,在各簇数据中的搜索方法为:使用相同的参考点和映射方法将查询向 量映射为查询主key和查询辅key,通过查询主key和查询范围确定在该簇数据主key层搜 索的起始位置和结束位置,然后通过查询辅key和查询范围确定在该簇数据辅key层的辅 key搜索范围,接着对主key层从搜索起始位置到结束位置间的每个主key逐一进行扫描, 判断该主key对应的辅key是否在辅key搜索范围内,若在搜索范围内,则对该辅key对应 的高维向量与查询向量间进行相似度匹配计算,将符合查询范围的高维向量返回,得到检 索结果。
[0012]更进一步,步骤I中所述的聚类算法包括Kmeans聚类。
[0013]更进一步,步骤2中所述的选取两个参考点,包括可选取原点和聚类中心为参考
[0014]更进一步,步骤2中所述的高维向量对这两个参考点的距离可采用欧式距离或街 区距离。
[0015]再进一步,步骤3中所述的⑶KB-tree进行高维向量插入时,首先根据该高维向量 到各簇数据聚类中心的距离值,选取距离该高维向量最近的簇数据进行插入操作,更新聚 类半径,然后根据待插入向量到该簇数据两个参考点的距离得到待插入向量的主key和辅 key值,根据该主key值的大小定位其应插入到该簇数据对应B+_tree的某一叶子节点中: 如果该叶子节点未满,则直接将该主key值插入到该叶子节点中,其辅key插入到该主key 对应的位置处,待插入特征向量插入到该辅key对应的位置处,并使主key产生指向其对应 辅key的指针,其对应辅key产生指向待插入高维向量的指针,更新该叶子父节点对应的 key值;如果该叶子节点已满,处理的方式如下:
[0016]I)如果该叶子节点的左右兄弟节点存在未满的情况,则结合其左右兄弟节点,进 行待插入主key、辅key和高维向量的插入,并更新其父节点对应的key值;
[0017]2)如果其左右兄弟节点均满,则结合待插入高维向量的主key值,直接对该叶子 节点进行分裂,将分裂后新产生的叶子节点插入到其父节点中,同时将其辅key和高维向 量插入到对应存储位置处,更新其父节点对应的key值,如果父节点也已满,分裂过程继续 向上传递,并更新对应的key值。
[0018]再进一步,步骤4中所述的进行检索时,采用的检索方式既包括范围查询也包括k 近邻查询。
[0019]再进一步,步骤4中所述的查询范围,对于范围查询来说,是由查询半径来确定 的,对于k近邻查询来说是由按某一步长递增的查询半径来确定的,直到第k个近邻到查询 向量的距离值小于查询半径为止。
【专利附图】

【附图说明】
[0020]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发 明的示意性实施实例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图 中:
[0021]图1 (a)本发明所述方法的流程图
[0022]图1(b)本发明所述索引结构的示例图[0023]图2在本发明所述索引结构上进行范围查询的框图
[0024]图3在本发明所述索引结构上进行k近邻查询的框图
【具体实施方式】
[0025]为了使本发明所需解决的技术问题、技术方案更加清楚、明白,下面结合附图和实 施实例对本发明的【具体实施方式】做进一步说明。
[0026]本发明实施实例提供的一种结合聚类和双key值的高维向量检索方法其索引结 构构建的流程图如图1(a)所示:
[0027]首先,采用聚类算法对高维向量集进行空间簇划分,得到各簇高维数据;其次计算 各簇数据的聚类中心和半径,并为每簇数据选取两个参考点;再次逐一计算各簇数据中的 每个高维向量与该簇数据两个参考点间的距离,得到每个高维向量对应的双一维key值; 然后选取各簇数据中某一采用相同参考点得到的key值作为主key,另一作为辅key,并 采用各簇数据的主key为该簇数据构建B+_tree,将各簇数据的主key对应的辅key和高 维向量数据插入到对应的辅key和高维向量存储位置处,各主key绑定指向其对应辅key 的指针,各辅key绑定指向其对应高维向量的指针,得到各簇数据对应的双key值扩展 B+-tree ;最后将各簇数据的聚类中心和聚类半径绑定该簇数据的双key值扩展B+-tree,形 成CDKB-tree索引结构。(如图1(b)所示,上层为聚类信息层,中间为由各簇数据主key构 建的各B+-tree,底层为存储辅key和高维向量的辅key层和特征向量层,各B+-tree叶子 节点层的每个主key都绑定一个指向其对应辅key的指针,其辅key绑定一个指向对应高 维向量的指针。)在进行检索时,通过查询向量和查询范围判断各簇数据是否与本次查询 相交,然后对于与本次查询相交的簇数据进行进一步搜索,搜索的方法为:首先采用相同的 参考点和映射规则,计算查询向量和该簇数据两个参考点间的距离,得到在该簇数据中的 查询主key和查询辅key ;然后根据查询主key和查询范围,确定在该簇数据对应的双key 值扩展B+_tree索引结构主key层(即B+_tree叶子节点层)的主key搜索范围,得到主 key层的扫描起始位置和结束位置,并根据查询辅key和查询范围,确定在该簇数据对应的 双key值扩展B+_tree索引结构辅key层的辅key搜索范围;最后,从主key层的扫描起始 位置到结束位置(主key搜索范围),逐一进行key值扫描,判断该主key对应的辅key是 否在辅key搜索范围之内,若在搜索范围之内,则计算该辅key对应的高维向量与查询向量 之间的距离,将满足检索结果的高维向量返回,得到相似向量集。
[0028]本发明所述的进行检索的检索方式包括范围查询和k近邻查询,范围查询的流程 图如图2所示,k近邻查询的流程图如图3所示。由图3可知,k近邻查询是通过范围查询 来实现。
[0029]上述高维向量可以是图像、视频、音频的特征向量。
[0030]应当理解的是,上述针对实施实例的描述较为具体,并不能因此而认为是对本发 明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
【权利要求】
1.一种结合聚类和双key值的高维向量检索方法,其特征在于具体步骤如下:.1)采用聚类算法对高维向量集进行簇划分,得到各簇数据的聚类中心和聚类半径;.2)为各簇数据构建双key值扩展B+-tree,为每簇数据构建双key值扩展B+-tree的过程为:首先为该簇数据选取两个参考点,并采用高维向量对这两个参考点的距离将该簇数据中的高维向量映射为双一维key值,统一选取该簇数据中某一采用相同参考点得到的 key值为主key,另一作为辅key,然后采用该簇数据的主key为该簇数据构建B+_tree,同时该B+_tree叶子节点层的每个主key都绑定一个指向其对应辅key的指针,每个辅key都绑定一个指向其对应高维向量的指针,B+_tree叶子节点层的所有主key形成主key层,所有辅key形成辅key层;.3)将各簇数据的聚类中心和聚类半径都绑定一个指向其对应簇数据所构建双key值扩展B+_tree的指针,形成CDKB-tree ;.4)进行检索时,通过查询范围过滤掉那些与查询区域不相交的各簇数据,对与查询范围相交的各簇数据进行搜索,在相交的各簇数据中的搜索方法为:使用相同的参考点和映射方法将查询向量映射为查询主key和查询辅key,通过查询主key和查询范围确定在该簇数据主key层搜索的起始位置和结束位置,然后通过查询辅key和查询范围确定在该簇数据辅key层的辅key搜索范围,接着对主key层从搜索起始位置到结束位置间的每个主key 逐一进行扫描,判断该主key对应的辅key是否在辅key搜索范围内,若在搜索范围内,贝U 对该辅key对应的高维向量与查询向量间进行相似度匹配计算,将符合查询范围的高维向量返回,得到检索结果。
2.如权利要求1所述的方法,其特征在于:步骤I中所述的聚类算法包括Kmeans聚类。
3.如权利要求1所述的方法,其特征在于:步骤2中所述的选取两个参考点,包括可选取原点和聚类中心为参考点。
4.如权利要求1所述的方法,其特征在于:步骤2中所述的高维向量对这两个参考点的距离可采用欧式距离或街区距离。
5.如权利要求1所述的方法,其特征在于:步骤3中所述的CDKB-tree进行高维向量插入时,首先根据该高维向量到各簇数据聚类中心的距离值,选取距离该高维向量最近的簇数据进行插入操作,更新聚类半径,然后根据待插入向量到该簇数据两个参考点的距离得到待插入向量的主key和辅key值,根据该主key值的大小定位其应插入到该簇数据对应B+_tree的某一叶子节点中:如果该叶子节点未满,贝U直接将该主key值插入到该叶子节点中,其辅key插入到该主key对应的位置处,待插入特征向量插入到该辅key对应的位置处,并使主key产生指向其对应辅key的指针,其对应辅key产生指向待插入高维向量的指针,更新该叶子节点父节点对应的key值;如果该叶子节点已满,处理的方式如下:步骤一:如果该叶子节点的左右兄弟节点存在未满的情况,则结合其左右兄弟节点,进行待插入主key、辅key和高维向量的插入,并更新其父节点对应的key值;步骤二:如果其左右兄弟节点均满,则结合待插入高维向量的主key值,直接对该叶子节点进行分裂,将分裂后新产生的叶子节点插入到其父节点中,同时将其辅key和高维向量插入到对应存储位置处,更新其父节点对应的key值,如果父节点也已满,分裂过程继续向上传递,并更新对应的key值。
6.如权利要求1所述的方法,其特征在于:步骤4中所述的进行检索时,采用的检索方式既包括范围查询也包括k近邻查询。
7.如权利要求1所述的方法,其特征在于:步骤4中所述的查询范围,对于范围查询来说,是由查询半径来确定的,对于k近邻查询来说是由按某一步长递增的查询半径来确定的,直到第k个近邻到查询向量的距离值小于查询半径为止。
【文档编号】G06F17/30GK103500165SQ201310365592
【公开日】2014年1月8日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】吕锐, 杨丽芳, 曹学会, 黄祥林, 成鹏, 龚昊, 史欣萍 申请人:新华通讯社, 中国传媒大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1