CN105808631A - 一种数据依赖的多索引哈希算法 - Google Patents
一种数据依赖的多索引哈希算法 Download PDFInfo
- Publication number
- CN105808631A CN105808631A CN201510370171.8A CN201510370171A CN105808631A CN 105808631 A CN105808631 A CN 105808631A CN 201510370171 A CN201510370171 A CN 201510370171A CN 105808631 A CN105808631 A CN 105808631A
- Authority
- CN
- China
- Prior art keywords
- substring
- vector
- hash algorithm
- training set
- data dependence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种数据依赖的多索引哈希算法,涉及图像检索领域。本发明包括以下步骤:步骤1,构建一个训练集用于主成分分析PCA训练;步骤2,计算训练集T的均值向量μ和训练集T的协方差矩阵S;步骤3,对于每一个子串均获取其对应的协方差矩阵Sˊ,Sˊ是S的一个子矩阵,并对协方差矩阵Sˊ进行特征值分解,得到对应最大特征值的特征向量V,特征向量V即为子串的自适应投影向量;步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。本发明采用自适应投影的方法可以使得哈希表中的元素接近于均匀分布,进而提升查询速度,与多索引哈希算法相比数据依赖的多索引哈希算法可以使查询速度提升36.9%–87.4%。
Description
技术领域
本发明属于图像索引技术领域,尤其涉及一种数据依赖的多索引哈希算法。
背景技术
图像检索的过程通常为以下几个步骤:首先,利用计算机处理技术检测图像的视觉特征;其次,用数字表示检测到的特征并生成高维特征向量;然后,对高维特征向量建立索引;最后,利用索引对高维向量进行检索。其中图像检索是在线进行的,所以对实时性要求很高。由于二进制码特征计算快速、节省存储空间、特征之间的匹配操作仅需要几个机器指令就能完成,目前越来越多的研究采用二进制码特征来描述视觉内容。在一个具有百万规模的二进制码数据集中查找一个查询的最近邻可以在不到一秒的时间内完成。虽然二进制码之间的海明距离可以快速计算,但是线性查询只能处理小规模的数据集。因为计算机处理器的计算能力有限而数据集的规模是无限的,随着数据集的增长(数以百亿)线性查询将变得很慢。
为了提高大规模数据环境下二进制码的最近邻查询性能,研究者提出了二进制哈希方法。该方法在建索引时,直接使用二进制码作为哈希表的下标(存储地址)。在查询时,通过不断增加查询半径即可返回与查询相似的最近邻。但是随着查询半径的增加,该方法需要比对的待检测数据呈指数级的增长。当二进制码的位数大于32维时,即使采用一个很小的查询半径二进制哈希在理论上需要比对的数据规模可能比整个数据集的容量还要大。在这种情况下,二进制哈希比线性查询的速度还要慢。针对这一问题,研究者提出了多索引哈希算法。多索引哈希算法在建立索引时将二进制码划分为多个连续不重合的子串,并为每个子串建立一个哈希表。在查询时,按照同样的方式把待查询二进制码划分为多个子串,然后在相应的哈希表中进行查找以返回候选结果。最后,根据候选结果和查询之间的海明距离对候选结果排序从而得到最近邻。对每一个子串,其所需的查询半径与整个二进制码相比大大减小。因此,多索引哈希算法极大地降低了需要比对的待检测数据量,从而提高查找最近邻的速度。
但是,现有技术中由于多索引哈希算法基于数据集中的二进制码呈均匀分布这一假设,不能有效处理非均匀分布的数据集。在多媒体检索中,数据集的分布往往都是分均匀的,因此多索引哈希算法在处理这些数据集时,查询速度受到一定的影响和限制。
发明内容
为解决上述问题,本发明提供一种数据依赖的多索引哈希算法,其能够将哈希表中的元素接近于均匀分布,进而提升查询速度。
本发明提供一种数据依赖的多索引哈希算法,其包括以下步骤:
步骤1,构建一个训练集T=[x1,xi,…,xn]用于主成分分析PCA训练,所述xi是一个l维二进制码,用一个列向量表示;
步骤2,利用公式计算训练集T的均值向量μ,利用公式计算训练集T的协方差矩阵S;
步骤3,对于每一个子串均获取其对应的协方差矩阵S',所述S'是S的一个子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,所述特征向量V即为该子串的自适应投影向量;
步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。
有益效果:
本发明的数据依赖的多索引哈希算法能够将哈希表中的元素接近于均匀分布,进而提升查询速度。具体内容为:把二进制码划分为多个连续不重合的子串,以此构建一个训练集并计算二进制码每位之间的相关性,为每一个子串学习得到自适应投影向量;在为每个子串建立哈希表时,使用投影向量对子串进行投影从而得到哈希表中的下标。这种采用自适应投影的方法可以使得哈希表中的元素接近于均匀分布。
附图说明
图1为本发明的数据依赖的多索引哈希算法示意图。
具体实施方式
在介绍本发明的数据依赖的多索引哈希算法之前,先就本申请涉及的现有技术-二进制哈希方法和多索引哈希算法进行论述:
一、二进制哈希方法
虽然计算二进制码之间的海明距离只需要几个异或操作,但是线性查找不能有效地应对大规模的数据集,故而结合二进制码和哈希表提出了二进制哈希方法。二进制哈希方法把海明空间下的最近邻查询问题转化为R近邻问题:
其中q是查询向量,D是数据集,N是数据集中元素的个数,||·||H代表海明距离。通过不断增加查询半径r,二进制哈希算法可以返回查询向量q的R近邻。为了提高查询速度,二进制哈希算法建立一个哈希表,并直接使用二进制码作为数据元素在哈希表中的下标。这样,R近邻问题就可以通过不断增加查询半径r得到解决.此时,需要比对的待检测数据量为:
其中l是二进制码的维度。当二进制码的维数很长时,即使采用一个很小的查询半径r,二进制哈希在理论上需要比对的数据规模可能比整个数据集的容量还要大。比如当l=256,r=5,num≈1010。而在很多应用中,二进制码的长度都大于256维并且查询半径一般都大于10,以满足检索精度的需求。在这种情况下,二进制哈希比线性查找还要慢。
二、多索引哈希算法
针对上述问题,研究者提出多索引哈希算法。该算法在建立索引时将长度为l维的二进制码划分为m个连续不重合的子串,每个子串的长度为或者然后为每个子串建立一个哈希表。在查询时,按照同样的方式把待查询二进制码划分为m个子串,然后在相应的哈希表中进行查找以返回候选结果.最后根据候选结果和查询之间的海明距离对候选结果排序并得到最近邻。多索引哈希算法的理论基础是:当两个二进制码q和p有r位不相同时,那么至少它们的一个子串最多有位不同:
其中qk是q的第k个子串。通过这种方式,多索引哈希算法可以极大地降低了需要比对的待检测数据量。比如当l=256,r=5,m=2,需要比对的数据量为远远小于1010。因此多索引哈希算法在索引长二进制码时具有明显的优势。但是多索引哈希算法基于数据集中的二进制码呈均匀分布这一假设,不能有效处理非均匀分布的数据集。在多媒体检索中,数据集的分布往往都是分均匀的。因此多索引哈希算法具有两个缺点:
1.如果待检测区间分布的数据元素比较密集,那么在对候选结果计算距离并排序时需要很多额外的时间开销,从而增加计算量。
2.如果待检测区间分布的数据元素比较稀疏,那么候选结果太少。为了保证足够多的候选结果,不得不增加查询半径r,这样增加了索引查询时间。
三、本发明的数据依赖的多索引哈希算法
通过上面的分析可以看出,多索引哈希算法的时间性能依赖于数据集的分布.为了得到最优的时间性能,需要使哈希表中元素下标的分布尽可能呈均匀分布.因此,本发明在多索引哈希算法的基础上提出数据依赖的多索引哈希算法,如图1所示。通过构建一个训练集并计算二进制码每位之间的相关性,为每一个子串学习得到自适应投影向量;在为每个子串建立哈希表时,使用投影向量对子串进行投影从而得到哈希表中的下标;采用自适应投影的方法可以使得哈希表中的元素下标接近于均匀分布,进而提升查询速度。
数据集的非均匀分布是由于二进制码的各个位之间具有相关性造成的。主成分分析(PrincipalComponentAnalysis,PCA)是一种用来揭示复杂数据潜在的简单结构的数据分析技术。PCA通过计算新的一组基对原有数据进行线性变换,变换后的数据尽量揭示原有数据之间的关系,且具有线性不相关性。PCA的优点是简单有效且无参数设置,因此在计算机视觉领域应用广泛。基于这一理论基础,本发明采用PCA来生成投影向量,以得到分布均匀的投影数据。从而在尽量保留原始数据近邻关系的前提下,将索引均衡化。
具体的,本发明的数据依赖的多索引哈希算法执行步骤如下:
步骤1,构建一个训练集T=[x1,xi,…,xn]用于PCA训练;xi是一个l维二进制码,用一个列向量表示。为了算法的普适性,训练集和用于建立索引的基准数据集没有重合。
步骤2,计算训练集T的均值向量μ和协方差矩阵S:
步骤3,对于每一个子串,获取其对应的协方差矩阵S'。S'是S的一个子矩阵。然后对矩阵S'进行特征值分解,得到对应最大特征值的特征向量V。向量V即为该子串的自适应投影向量。
步骤4,在建立索引和查询时,使用投影向量对子串进行投影从而得到哈希表中的下标.假设某一子串为p=[p1,pi,...,pd],那么新的下标值为:
由于投影向量包含数据集的分布信息,并去除数据之间的相关性,生成的哈希表中元素下标接近于均匀分布,从而提升查询速度。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (3)
1.一种数据依赖的多索引哈希算法,其特征在于,
步骤1,构建一个训练集T=[x1,xi,…,xn]用于主成分分析PCA训练,所述xi是一个l维二进制码,用一个列向量表示;
步骤2,利用公式计算训练集T的均值向量μ,利用公式计算训练集T的协方差矩阵S;
步骤3,对于每一个子串均获取其对应的协方差矩阵S',所述S'是S的一个子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,所述特征向量V即为该子串的自适应投影向量;
步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。
2.如权利要求1所述的数据依赖的多索引哈希算法,其特征在于,所述步骤4中:
假设某一子串为p=[p1,pi,...,pd],那么新的下标值为:
3.如权利要求1所述的数据依赖的多索引哈希算法,其特征在于,所述步骤1中,所述训练集T和用于建立索引的基准数据集没有重合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510370171.8A CN105808631A (zh) | 2015-06-29 | 2015-06-29 | 一种数据依赖的多索引哈希算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510370171.8A CN105808631A (zh) | 2015-06-29 | 2015-06-29 | 一种数据依赖的多索引哈希算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105808631A true CN105808631A (zh) | 2016-07-27 |
Family
ID=56465559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510370171.8A Pending CN105808631A (zh) | 2015-06-29 | 2015-06-29 | 一种数据依赖的多索引哈希算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808631A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656989A (zh) * | 2017-09-13 | 2018-02-02 | 华中科技大学 | 云存储系统中基于数据分布感知的近邻查询方法 |
CN110134693A (zh) * | 2019-05-17 | 2019-08-16 | 南京大学 | 基于哈希和pca的时空索引建立方法 |
CN112836145A (zh) * | 2021-02-18 | 2021-05-25 | 沈阳航空航天大学 | 动态有向路网中面向移动对象的近邻查询方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310476A1 (en) * | 2013-04-12 | 2014-10-16 | Nec Laboratories America, Inc. | Bucketized multi-index low-memory data structures |
CN104317902A (zh) * | 2014-10-24 | 2015-01-28 | 西安电子科技大学 | 基于局部保持迭代量化哈希的图像检索方法 |
-
2015
- 2015-06-29 CN CN201510370171.8A patent/CN105808631A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310476A1 (en) * | 2013-04-12 | 2014-10-16 | Nec Laboratories America, Inc. | Bucketized multi-index low-memory data structures |
CN104317902A (zh) * | 2014-10-24 | 2015-01-28 | 西安电子科技大学 | 基于局部保持迭代量化哈希的图像检索方法 |
Non-Patent Citations (1)
Title |
---|
马艳萍等: "数据依赖的多索引哈希算法", 《西安电子科技大学学报(自然科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656989A (zh) * | 2017-09-13 | 2018-02-02 | 华中科技大学 | 云存储系统中基于数据分布感知的近邻查询方法 |
CN107656989B (zh) * | 2017-09-13 | 2019-09-13 | 华中科技大学 | 云存储系统中基于数据分布感知的近邻查询方法 |
CN110134693A (zh) * | 2019-05-17 | 2019-08-16 | 南京大学 | 基于哈希和pca的时空索引建立方法 |
CN110134693B (zh) * | 2019-05-17 | 2023-05-05 | 南京大学 | 基于哈希和pca的时空索引建立方法 |
CN112836145A (zh) * | 2021-02-18 | 2021-05-25 | 沈阳航空航天大学 | 动态有向路网中面向移动对象的近邻查询方法 |
CN112836145B (zh) * | 2021-02-18 | 2023-06-02 | 沈阳航空航天大学 | 动态有向路网中面向移动对象的近邻查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | KNN-BLOCK DBSCAN: Fast clustering for large-scale data | |
CN103744934A (zh) | 一种基于位置敏感哈希的分布式索引方法 | |
Song et al. | Solutions for processing k nearest neighbor joins for massive data on mapreduce | |
CN108460123B (zh) | 高维数据检索方法、计算机设备和存储介质 | |
CN103744886B (zh) | 一种直接提取的k个最近邻点搜索方法 | |
CN103279551A (zh) | 一种基于欧氏距离的高维数据准确近邻快速检索方法 | |
CN104899326A (zh) | 一种基于二进制多索引哈希技术的图像检索方法 | |
CN105808631A (zh) | 一种数据依赖的多索引哈希算法 | |
CN108459993B (zh) | 基于快速追峰采样的复杂高维系统优化方法 | |
Gulzar et al. | A framework for evaluating skyline queries over incomplete data | |
CN105740428A (zh) | 一种基于b+树的高维磁盘索引结构和图像检索方法 | |
CN104809210A (zh) | 一种基于分布式计算框架下海量数据加权top-k查询方法 | |
CN103336963A (zh) | 一种图像特征提取的方法及装置 | |
CN109446293A (zh) | 一种并行的高维近邻查询方法 | |
CN105302833A (zh) | 一种基于内容的视频检索数学模型建立方法 | |
CN104978729A (zh) | 一种基于数据感知的图像哈希方法 | |
Leal et al. | Towards an efficient top-k trajectory similarity query processing algorithm for big trajectory data on gpgpus | |
Li et al. | Efficient distributed data clustering on spark | |
Chauhan et al. | Finding similar items using lsh and bloom filter | |
Das et al. | Biclustering of gene expression data using a two-phase method | |
Zhang et al. | traj2bits: indexing trajectory data for efficient query | |
Pereira et al. | Range reverse nearest neighbor queries | |
Wang et al. | Research of mining algorithms for uncertain spatio-temporal co-occurrence pattern | |
Hu et al. | Preserving-ignoring transformation based index for approximate k nearest neighbor search | |
Lee et al. | A MapReduce-based kNN join query processing algorithm for analyzing large-scale data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160727 |
|
RJ01 | Rejection of invention patent application after publication |