CN112035586A - 基于可扩展学习索引的空间范围查询方法 - Google Patents
基于可扩展学习索引的空间范围查询方法 Download PDFInfo
- Publication number
- CN112035586A CN112035586A CN202010891714.1A CN202010891714A CN112035586A CN 112035586 A CN112035586 A CN 112035586A CN 202010891714 A CN202010891714 A CN 202010891714A CN 112035586 A CN112035586 A CN 112035586A
- Authority
- CN
- China
- Prior art keywords
- data
- spatial
- learning
- hilbert
- extensible
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于可扩展学习索引的空间范围查询方法,包括如下步骤:1)数据预处理:将空间对象按坐标的Hilbert编码值排序,提取每条数据的Hilbert编码值和数据所在的位置作为训练数据;2)构建可扩展多层空间学习索引,训练多层模型,学习空间对象的数据分布,增加缓存区,用于数据的插入更新操作;3)基于可扩展多层学习索引的空间范围查询操作;数据按照Hilbert编码值排序后,按照Hilbert曲线的特性,将查询范围划分为多个子区域,对每个子区域,通过多层学习索引预测数据所在的位置,遍历对应的缓存区,查找落在查询范围内的数据。本发明将机器学习和空间填充曲线融入到空间索引中,并根据数据分布规律设计有效的空间范围查询方法。
Description
技术领域
本发明属于计算机软件开发领域,具体涉及一种通过可扩展的空间学习索引进行范围查询的方法。
背景技术
随着基于位置服务的普及、空间信息基础设施建设和空间数据获取技术的快速发展,空间对象的搜索和查询要求越来越高。由于空间索引性能直接影响空间数据库和地理信息系统的整体性能,因此在依靠硬件来提高数据库系统性能的同时,提高空间索引的效率始终是研究的热点。目前各种索引结构被设计出来并且有着不同的应用。
近年来,大数据、机器学习、人工智能等技术飞速发展,数据技术也发生了巨大的变化。机器学习在数据质量管理和数据分析中起着重要作用,也在数据技术中展现出其独特的优势。神经网络在学习数据方面展现出优异的性能。
对于现有的各种空间索引结构,每种都有其自身的优缺点,但基本原理是相似的,即采用分割的方法,自顶向下、逐级划分地理空间,从而形成树状空间索引结构。传统索引没有考虑数据的分布特性,通常会事先假设最差的数据分布,因此期望索引具有更高的通用性。
空间查询是指利用空间索引机制,从数据库中找到符合查询条件的空间对象。范围查询是给定查询范围,查找落在查询范围内的空间对象。范围查询是使用空间索引最常用的空间查询之一。常见的索引如R-tree、四叉树等树形索引在进行范围查询时,是通过访问索引的根结点并递归地检索与查询区域相交的子结点来处理范围查询。如果数据集大,树的深度过大,会导致磁盘I/O操作过于频繁,进而导致查询效率低下。
发明内容
发明目的:本发明目的在于针对现有技术的不足,发明了一种可以学习空间数据分布并且灵活可扩展的空间索引和基于此索引的空间范围查询方法。将机器学习和Hilbert空间填充曲线应用于空间索引和范围查询中,以提高索引效率、减小索引文件大小、提高数据查询速度。
技术方案:本发明所述基于可扩展学习索引的空间范围查询方法,包括如下步骤:
1)数据预处理:将原始数据按照坐标的Hilbert编码值排序,将排序后的数据位置和Hilbert编码值作为训练数据;
2)构建并训练可扩展的多层学习索引:构建多层学习模型,多层模型包含多个层,每个层包含多个神经网络模型,每个底层模型包含一个缓存区用于进行数据的插入更新等操作,将步骤1中的训练数据输入多层模型进行训练;
3)基于Hilbert曲线分割的范围查询:根据Hilbert曲线的分布规律,对查询范围进行分割,计算分割后子区域Hilbert值的最大值和最小值,将其输入多层模型中预测数据所在位置,同时搜索对应底层模型的缓存区,选择Hilbert值在范围内的数据。
有益效果:
1)创新地将机器学习和Hilbert空间填充曲线应用于空间数据的索引上,通过构建多层学习模型有效提高索引效率、减小索引文件空间开销,并且为每个底层模型增加缓存区使得索引灵活可扩充。
2)基于Hilbert曲线的分布规律,对每个查询范围进行不同大小的分割,有效地减少了范围查询需要搜索的数据规模,提高范围查询效率。
附图说明
图1为基于可扩展学习索引的空间范围查询流程图;
图2为数据预处理示意图;
图3是多层空间学习索引示意图;
图4是范围查询分割示意图;
具体实施方式
下面通过附图对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
实施例:本实施例用于实现二维空间对象的可扩展多层学习索引和范围查询方法,方法实施的流程图如图1所示。
一、数据预处理
Hilbert空间填充曲线能够遍历单位空间中所有的点,得到一条充满空间的曲线,将空间对象映射到一维空间。Hilbert曲线的生成过程为:先将平面空间分割为四个象限,用U字形曲线将相邻象限连接起来;接着每个象限分割成四个子象限,子象限内同样用曲线连接,重复这个过程,当阶数无穷大时,就产生一个充满整个平面的曲线。
数据预处理如图2所示。采用Hilbert空间填充曲线,将二维空间数据映射到一维数据空间。计算原始数据坐标的Hilbert编码值,将数据按照Hilbert编码值从小到大排列。排序后每条数据对应一个位置和Hilbert编码值,作为训练数据。
二、构建并训练多层学习索引
将空间对象根据其Hilbert值进行排序后,可以有效检索查询范围内的数据。给定一个有序的数据集,预测每个键对应记录的位置的模型近似于一个累积分布函数(CDF),累积的是各个键对应的数据的长度。因此需要对数据的累积分布函数进行建模。给定一个键值key对应的位置可以表示为:
p=F(key)×N
其中p是记录所在的位置,F(key)是数据的累积分布函数,用于计算一个键X不大于key的概率,即P(X≤key)。N表示数据的总数。
多层空间学习索引如图3所示,模型包含多个层,每个层包含一个或多个较小的模型,每个较小的模型都是一个神经网络模型。将数据预处理后得到的整个训练数据集划分为多个子集,每个模型负责特定的子集,以减少预测的误差。在每一层中,模型根据输入的查询键在下一层选择模型,直到最后一层预测出查询键对应记录的位置。由于每个模型都负责特定的子集,因此可以做出误差较小的预测。每个键输入模型后,将预测的位置与真实位置对比,记录每个小模型的最小负误差和最大正误差。为了使多层学习模型能够灵活地扩展更新,在每个底层模型中增加一个缓存区用于存放新插入的数据。当有新空间数据插入时,将坐标的Hilbert编码和在数据集中的位置插入对应模型的缓存区中。
设第i个底层模型为fi(x),fi(x)的输出值是键x在第i个模型对应数据范围中的位置。设第i个底层模型的数据长度为Li,则对于键x在整个数据集中,多层模型预测的位置 设对应底层模型的最小负误差记为min_negative_error,最大正误差记为max_positive_error,若查询键存在,且缓存区为空,则一定存在与缓存区或[p+min_negative_error,p+max_positive_error]范围内;若缓存区不为空,先查找缓存区的数据。
三、基于学习索引的空间范围查询
在n维空间中,一个查询范围可以由两个点p_start=(a0,a1,...,an-1)和p_end=(b0,b1,...,bn-1)定义。通过范围查询给出所有满足以下条件的空间对象:q=(q0,q1,...,qn-1),ai≤qi≤bi,其中0≤i≤n-1。下文以二维空间为例,解释用多层学习索引进行范围查询的方法。
由Hilbert曲线的产生方式可知,Hilbert曲线具有以下属性:一条n阶Hilbert曲线的平面空间可以划分为为2n-i×2n-i个i阶Hilbert曲线,其中1≤i≤n。对于任一划分后的i阶Hilbert曲线I,I上任一一点q=(x,y)满足a·2i≤x≤a·2i+2i-1,b·2i≤y≤b·2i+2i-1,a、b为非负整数。每条划分后的Hilbert曲线完整连续,Hilbert编码的最大值和最小值出现任四个顶点中。
在n阶Hilbert曲线标准平面,对一个查询窗口W=a×b(a≤b),选择W短边长a,计算划分后形成的小Hilbert区域的阶数将查询范围转化为若干个子区域,使每个子区域内包含一条完整连续的i阶Hilbert曲线。设转化后得到m个2i×2i的小正方形,其中1≤m≤2n-i×2n-i,1≤i≤n-1,每个小正方形内是一个完整的i阶Hilbert曲线。这时,查询范围就转换为m个小正方形。根据每次查询范围大小的不同,分割和填补后的小正方形大小也不同。如果生成的小正方形过大,会增加搜索范围,如果过小,则会导致m过大,增加计算次数。因此对于每次范围查询,动态地选择处理后小正方形的大小。如图4所示,给定一个查询范围R,将其分割和填补为R1、R2、R3和R4四个小正方形,每个小正方形对应一个存储范围。
对于一个Hilbert曲线的正方形区域S,可以在其顶点中找到Hilbert编码值的最小值h_start和最大值h_end,即得到区间[h_start,h_end],h_start对应的底层模型m_start,h_end对应的底层模型m_end,首先,遍历m_start到m_end之间所有底层模型的缓存区,查找Hilbert编码值在h_start到h_end范围内的数据位置。然后通过多层学习索引可以得到预测出的h_start对应位置start和对应模型的最小负误差min_negative,h_end对应位置end和对应模型的最大正误差max_positive,因此S范围内的空间数据对应的位置范围为[start+min_negative,end+max_positive]。对划分后的若干个小正方形分别进行相同操作,得到m个范围区间。遍历这m个范围区间,查找落在查询范围R内的数据。
Claims (4)
1.一种基于可扩展学习索引的空间范围查询方法,其特征在于,包括如下步骤:
(1)数据预处理:将原始空间数据按照坐标的Hilbert编码值排序,提取每条数据的Hilbert编码值和数据位置作为训练数据;
(2)构建可扩展的多层学习索引:构建一个包含多层每层有多个神经网络模型的多层模型,用步骤(1)中得到的训练数据进行训练,学习空间数据的分布;
(3)基于可扩展学习索引进行空间范围查询:将查询范围根据Hilbert曲线进行分割,将分割后的子区域逐一通过学习索引预测数据所在的位置。
2.根据权利要求1所述的基于可扩展学习索引的空间范围查询方法,其特征在于,步骤(1)中原始空间对象按照Hilbert编码值从小到大排序,提取排序后数据的位置和Hilbert编码值作为训练数据。
3.根据权利要求2所述的基于可扩展学习索引的空间范围查询方法,其特征在于,构建可扩展的多层空间学习索引,索引为多层模型,每层包含多个神经网络模型,每个底层模型包含一个缓存区用于数据的插入更新操作。步骤(1)中的训练数据集划分为不相交的子集,多层模型通过训练数据集自底向上训练模型。
4.根据权利要求3所述的基于可扩展学习索引的空间范围查询方法,其特征在于,将查询范围根据Hilbert曲线的分布规律,划分为多个子区域,每个子区域通过多层学习索引,预测数据所在的范围。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010891714.1A CN112035586A (zh) | 2020-08-28 | 2020-08-28 | 基于可扩展学习索引的空间范围查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010891714.1A CN112035586A (zh) | 2020-08-28 | 2020-08-28 | 基于可扩展学习索引的空间范围查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035586A true CN112035586A (zh) | 2020-12-04 |
Family
ID=73587474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010891714.1A Pending CN112035586A (zh) | 2020-08-28 | 2020-08-28 | 基于可扩展学习索引的空间范围查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035586A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157694A (zh) * | 2021-03-22 | 2021-07-23 | 浙江大学 | 一种基于强化学习的数据库索引生成方法 |
CN113704565A (zh) * | 2021-10-28 | 2021-11-26 | 浙江大学 | 基于全局区间误差的学习型时空索引方法、装置及介质 |
CN113722319A (zh) * | 2021-08-05 | 2021-11-30 | 平凯星辰(北京)科技有限公司 | 基于学习索引的数据存储方法 |
CN113742350A (zh) * | 2021-09-09 | 2021-12-03 | 北京中安智能信息科技有限公司 | 基于机器学习模型的时空索引构建方法和装置及查询方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102892073A (zh) * | 2012-09-11 | 2013-01-23 | 北京航空航天大学 | 一种适用于位置服务系统中面向连续查询的位置匿名方法 |
CN103488736A (zh) * | 2013-09-18 | 2014-01-01 | 中国科学技术大学 | 一种多源地理空间信息关联模型的构建方法及系统 |
CN103617162A (zh) * | 2013-10-14 | 2014-03-05 | 南京邮电大学 | 一种对等云平台上构建希尔伯特r树索引的方法 |
CN108932347A (zh) * | 2018-08-03 | 2018-12-04 | 东北大学 | 一种分布式环境下基于社会感知的空间关键字查询方法 |
-
2020
- 2020-08-28 CN CN202010891714.1A patent/CN112035586A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102892073A (zh) * | 2012-09-11 | 2013-01-23 | 北京航空航天大学 | 一种适用于位置服务系统中面向连续查询的位置匿名方法 |
CN103488736A (zh) * | 2013-09-18 | 2014-01-01 | 中国科学技术大学 | 一种多源地理空间信息关联模型的构建方法及系统 |
CN103617162A (zh) * | 2013-10-14 | 2014-03-05 | 南京邮电大学 | 一种对等云平台上构建希尔伯特r树索引的方法 |
CN108932347A (zh) * | 2018-08-03 | 2018-12-04 | 东北大学 | 一种分布式环境下基于社会感知的空间关键字查询方法 |
Non-Patent Citations (3)
Title |
---|
HAIXIN WANG ET AL.: "Learned Index for Spatial Queries", 《2019 20TH IEEE INTERNATIONAL CONFERENCE ON MOBILE DATA MANAGEMENT (MDM)》 * |
何小苑等: "基于聚类的Hilbert R-树空间索引算法", 《计算机工程》 * |
高远宁等: "基于中间层的可扩展学习索引技术", 《软件学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157694A (zh) * | 2021-03-22 | 2021-07-23 | 浙江大学 | 一种基于强化学习的数据库索引生成方法 |
CN113722319A (zh) * | 2021-08-05 | 2021-11-30 | 平凯星辰(北京)科技有限公司 | 基于学习索引的数据存储方法 |
CN113742350A (zh) * | 2021-09-09 | 2021-12-03 | 北京中安智能信息科技有限公司 | 基于机器学习模型的时空索引构建方法和装置及查询方法 |
CN113704565A (zh) * | 2021-10-28 | 2021-11-26 | 浙江大学 | 基于全局区间误差的学习型时空索引方法、装置及介质 |
CN113704565B (zh) * | 2021-10-28 | 2022-02-18 | 浙江大学 | 基于全局区间误差的学习型时空索引方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035586A (zh) | 基于可扩展学习索引的空间范围查询方法 | |
Traina et al. | Fast indexing and visualization of metric data sets using slim-trees | |
Zhang et al. | All-nearest-neighbors queries in spatial databases | |
CN102521386B (zh) | 基于集群存储的空间元数据分组方法 | |
CN107766433B (zh) | 一种基于Geo-BTree的范围查询方法及装置 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN109166615B (zh) | 一种随机森林哈希的医学ct图像存储与检索方法 | |
CN102289466A (zh) | 一种基于区域覆盖的k近邻查询方法 | |
Zhang et al. | TARDIS: Distributed indexing framework for big time series data | |
JP5155025B2 (ja) | 類似データ検索システム | |
Gu et al. | The rlr-tree: A reinforcement learning based r-tree for spatial data | |
CN116860905B (zh) | 一种城市信息模型的空间单元编码生成方法 | |
CN112395288B (zh) | 基于希尔伯特曲线的r树索引合并更新方法、装置及介质 | |
CN113407542B (zh) | 一种城市路网车辆出行轨迹的检索方法及系统 | |
CN116775661A (zh) | 基于北斗网格技术的空间大数据存储与管理方法 | |
CN116304213B (zh) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 | |
Azri et al. | Review of spatial indexing techniques for large urban data management | |
CN1352432A (zh) | 索引和搜索特征向量空间的方法 | |
Faloutsos et al. | Analysis of n-dimensional quadtrees using the Hausdorff fractal dimension | |
KR102006283B1 (ko) | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 | |
CN108509618B (zh) | 一种基于空间填充曲线的大数据多维数据索引方法 | |
CN112214485B (zh) | 基于全球剖分网格的电网资源数据组织规划方法 | |
CN110297952B (zh) | 一种基于网格索引的并行化高速铁路勘测数据检索方法 | |
CN112632118A (zh) | 查询数据的方法、装置、计算设备和存储介质 | |
Wang et al. | Spatial queries based on learned index |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201204 |