CN114417074A - 高维度量空间数据的快速knn检索方法及系统 - Google Patents
高维度量空间数据的快速knn检索方法及系统 Download PDFInfo
- Publication number
- CN114417074A CN114417074A CN202210310121.0A CN202210310121A CN114417074A CN 114417074 A CN114417074 A CN 114417074A CN 202210310121 A CN202210310121 A CN 202210310121A CN 114417074 A CN114417074 A CN 114417074A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- current node
- distance
- nearest neighbor
- 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
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了高维度量空间数据的快速KNN检索方法及系统,该方法包括步骤:获取查询指令,查询指令包括查询的数据q、最近邻K值及默认查询半径r;获取当前节点;对当前节点的子节点由上向下进行剪枝,直至叶子节点;遍历叶子节点,获取K个最近邻数据,取与查询的数据q最远的第K个数据的距离d赋值更新查询半径r;取当前节点的父节点作为新的当前节点;返回重复获取当前节点并剪枝至叶子节点以及遍历叶子节点并更新查询半径r的步骤,直至当前节点无兄弟节点满足剪枝条件;返回按照与当前节点的距离从小到大排序的K个最近邻结果。本发明能够在单机服务器实现数千万级规模的高维数据快速KNN检索,具备检索速度快、高召回率的优点。
Description
技术领域
本发明涉及高维度量空间数据的检索,尤其涉及高维度量空间数据的快速KNN(KNN,k-Nearest Neighbor, 最近邻检索)检索方法及系统。
背景技术
一直以来,最近邻检索在数据检索领域都是研究人员关注的研究领域,随着大数据的研究兴起,最近邻检索成为了当前一个重要的研究热点。最近邻检索或近似最近邻检索当前数据检索领域的主要方法,其中一类方法是基于树形结构进行索引存储,以提高检索的性能,另一类方法是基于对数据本身的处理,如哈希和矢量量化等。
最近邻检索分为两类,一类是精确近邻检索,另一类是近似近邻检索。精确检索适用于数据维度低的数据,多采用蛮力法,对数据集进行穷举搜索。所谓的蛮力法,就是针对数据库中所有数据逐一计算数据样本与所查询的数据之间的距离,找到距离最小的样本,既为查询的数据的最近邻数据。蛮力的缺点在于搜索的数据量不能太大,大规模的数据会迅速降低查询效率。对于大规模高维数据的索引,通常会考虑利用索引树来提升查询效率,实际场景的数据通常会呈现出簇状的聚类形态,对数据库中的高维数据构建数据索引是大规模高维数据查询的常用方法。构建索引树的基本思想就是先对高维数据空间进行层次划分,在此基础上进行匹配计算。对于高维空间数据,通常是将最近邻检索问题转换成Voronoi图问题,寻找查询的数据点落在Voronoi图的哪个区域。高维空间数据映射到一维空间之后,再用二分查找树来处理,空间复杂度和查询复杂度分别为0(n)和O(logn)。
发明内容
本发明提供了一种高维度量空间数据的快速KNN检索方法及系统,用以解决现有的最近邻检索查询的数据量过大,以及查询效率不高的技术问题。
为解决上述技术问题,本发明提出的技术方案为:
一种高维度量空间数据的快速KNN检索方法,包括以下步骤:
获取查询指令,查询指令包括查询的数据q、最近邻K值及默认查询半径r;
获取当前节点;
对当前节点的子节点由上向下进行剪枝,直至叶子节点;
遍历叶子节点,获取K个最近邻数据,取与查询的数据q最远的第K个数据的距离d赋值更新查询半径r;
取当前节点的父节点作为新的当前节点;返回重复获取当前节点并剪枝至叶子节点以及遍历叶子节点并更新查询半径r的步骤,直至当前节点无兄弟节点满足剪枝条件;
返回按照与当前节点的距离从小到大排序的K个最近邻结果。
优选地,当前节点至少包括一个子节点。
优选地,在对当前节点的子节点由上向下进行剪枝之前,方法还包括以下步骤:
计算查询的数据q到支撑点序列中每个支撑点的距离,获得查询的数据q与各支撑点的距离序列;
对按查询的数据q到支撑点的距离递增排序距离序列,得到查询的数据q的叶子节点的存储路径;
利用存储路径在索引树中快速找到查询的数据q归属的叶子节点l,取叶子节点l的父节点设置为当前节点。
优选地,剪枝条件为:查询的数据q与支撑点x的距离小于查询半径r。
本发明还提供一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。
本发明具有以下有益效果:
本发明的高维度量空间数据的快速KNN检索方法及系统,能够在单机服务器实现数千万级规模的高维数据快速KNN检索,具备检索速度快、高召回率的优点。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照附图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明优选实施例一的高维度量空间数据的快速KNN检索方法的流程示意图;
图2是本发明优选实施例二的高维度量空间数据的快速KNN检索方法的流程示意图;
图3是本发明优选实施例二的数据存储结构的示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
实施例一:
参见图1,本实施例的高维度量空间数据的快速KNN检索方法,包括以下步骤:
S110、获取查询指令,包括查询的数据、最近邻K值及默认查询半径r。
S120、获取当前节点,所述当前节点至少包括一个子节点。
S130、对所述当前节点的子节点由上向下进行剪枝,直至叶子节点。
S140、遍历叶子节点,获取K个最近邻数据,取与查询的数据最远的第K个数据的距离d,更新查询半径r=d。
S150、取当前节点的父节点作为新的当前节点,执行步骤S120。
S160、当前节点无兄弟节点满足剪枝条件,按从小到大排序并返回K个最近邻结果。
实施例二:
参见图2,本实施例的高维度量空间数据的快速KNN检索方法,包括以下步骤:
S201、输入查询的数据q及默认查询半径r。
S202、计算查询的数据q到支撑点序列p[0,…,n-1]的距离,获得q与各支撑点的距离序列Pd[0,…,n-1];支撑点(Pivot Point),可理解为参照点,每一个数据相对于多个支撑点将得到其在多维空间中的位置。
S203、对Pd[0,…,n-1]按距离递增进行排序,得到查询的数据q归属叶子节点的存储路径Ps[0,…,n-1],数据存储结构如图3所示;例如,当计算出来的序列为Ps[1,0,11,10,...],由于图中是4层B+Tree,匹配序列中的前四个数即可找到对应的叶子节点C[1,0,11,10]。
S204、利用Ps[0,…,n-1]可以在索引树中快速找到查询的数据q归属叶子节点l,取叶子节点l的父节点设置为当前节点(current_node)。
S205、在当前叶子节点l中找到距离数据q最近的K个数据,加入最近邻集合S,并找到最近邻集合S中距离q最远的第k个数据,第k个数据与q之间的距离为d,更新查询半径r=d。
S206、将当前节点加入已处理节点集合V,对当前节点的子节点利用距离d由上向下进行剪枝,直到叶子节点。已处理节点集合V中的节点不再访问。其中,剪枝条件为:查询的数据q与支撑点x的距离d(q,x)小于查询半径r,即d(q,x)< r。 本实施例采用欧式距离计算:
S207、对叶子节点中的数据进行线性遍历,计算节点内部数据与q的距离,找到距离q最近的K个数据,更新最近邻集合S,并更新q与最近邻集合S中最远的数据k之间的距离d。
S208、 基于当前节点向上找到父节点(parent_node),对父节点的子节点由上向下进行剪枝。
S209、判断当前节点是否存在兄弟节点满足剪枝条件。
S210、将当前节点的父节点更新为当前节点(current_node = parent_node),向上查找。
S211、对最近邻集合S进行排序,返回根据与q之间的距离由小到大排列的一个数据序列。
综上可知,本发明适用于基于支撑点划分、采用B+Tree存储的度量空间索引,单机服务器可以实现数千万级规模的快速KNN检索。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种高维度量空间数据的快速KNN检索方法,其特征在于,包括以下步骤:
获取查询指令,所述查询指令包括查询的数据q、最近邻K值及默认查询半径r;
获取当前节点;
对所述当前节点的子节点由上向下进行剪枝,直至叶子节点;
遍历叶子节点,获取K个最近邻数据,取与查询的数据q最远的第K个数据的距离d赋值更新所述查询半径r;
取当前节点的父节点作为新的当前节点;返回重复获取当前节点并剪枝至叶子节点以及遍历叶子节点并更新查询半径r的步骤,直至当前节点无兄弟节点满足剪枝条件;
返回按照与当前节点的距离从小到大排序的K个最近邻结果。
2.根据权利要求1所述的高维度量空间数据的快速KNN检索方法,其特征在于,所述当前节点至少包括一个子节点。
3.根据权利要求1或2所述的高维度量空间数据的快速KNN检索方法,其特征在于,在对所述当前节点的子节点由上向下进行剪枝之前,所述方法还包括以下步骤:
计算查询的数据q到支撑点序列中每个支撑点的距离,获得查询的数据q与各支撑点的距离序列;
对按查询的数据q到支撑点的距离递增排序所述距离序列,得到查询的数据q的叶子节点的存储路径;
利用所述存储路径在索引树中快速找到查询的数据q归属的叶子节点l,取叶子节点l的父节点设置为当前节点。
4.根据权利要求1所述的高维度量空间数据的快速KNN检索方法,其特征在于,所述剪枝条件为:查询的数据q与支撑点x的距离小于查询半径r。
5.一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至4任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210310121.0A CN114417074A (zh) | 2022-03-28 | 2022-03-28 | 高维度量空间数据的快速knn检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210310121.0A CN114417074A (zh) | 2022-03-28 | 2022-03-28 | 高维度量空间数据的快速knn检索方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417074A true CN114417074A (zh) | 2022-04-29 |
Family
ID=81263737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210310121.0A Pending CN114417074A (zh) | 2022-03-28 | 2022-03-28 | 高维度量空间数据的快速knn检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417074A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117150059A (zh) * | 2023-10-27 | 2023-12-01 | 湖南视觉伟业智能科技有限公司 | 一种基于nvr设备的碎片化图像数据存储方法 |
-
2022
- 2022-03-28 CN CN202210310121.0A patent/CN114417074A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117150059A (zh) * | 2023-10-27 | 2023-12-01 | 湖南视觉伟业智能科技有限公司 | 一种基于nvr设备的碎片化图像数据存储方法 |
CN117150059B (zh) * | 2023-10-27 | 2024-02-13 | 湖南视觉伟业智能科技有限公司 | 一种基于nvr设备的碎片化图像数据存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947904B (zh) | 一种基于Spark环境的偏好空间Skyline查询处理方法 | |
CN107341178B (zh) | 一种基于自适应的二进制量化哈希编码的数据检索方法 | |
Yu et al. | High-dimensional knn joins with incremental updates | |
Chen et al. | Efficient metric indexing for similarity search and similarity joins | |
CN110334290B (zh) | 一种基于MF-Octree的时空数据快速检索方法 | |
EP1025514A1 (en) | Multidimensional data clustering and dimension reduction for indexing and searching | |
CN108549696B (zh) | 一种基于内存计算的时间序列数据相似性查询方法 | |
CN107506490B (zh) | 滑动窗口下基于位置top-k关键词查询的优先查询算法及系统 | |
CN107633068B (zh) | 滑动窗口下基于位置top-k关键词查询的快速索引方法及系统 | |
Tiakas et al. | Skyline queries: An introduction | |
CN108460123B (zh) | 高维数据检索方法、计算机设备和存储介质 | |
Li et al. | I/O efficient approximate nearest neighbour search based on learned functions | |
CN107451302A (zh) | 滑动窗口下基于位置top‑k关键词查询的建模方法及系统 | |
CN114417074A (zh) | 高维度量空间数据的快速knn检索方法及系统 | |
CN109446293B (zh) | 一种并行的高维近邻查询方法 | |
CN112395288A (zh) | 基于希尔伯特曲线的r树索引合并更新方法、装置及介质 | |
Bohm et al. | Probabilistic ranking queries on gaussians | |
CN113722274A (zh) | 一种高效的R-tree索引遥感数据存储模型 | |
CN113792709B (zh) | 快速大规模人脸识别方法及系统 | |
CN113448994B (zh) | 一种基于核心集的连续遗憾率最小化查询方法 | |
CN113590889B (zh) | 度量空间索引树构建方法、装置、计算机设备及存储介质 | |
CN115408545A (zh) | 一种结合硬盘与内存的近邻图向量检索方法及装置 | |
Han et al. | Dynamic skyline computation on massive data | |
Rslan et al. | An efficient hybridized index technique for moving object database | |
CN110807115A (zh) | 人脸检索方法、装置、及存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |