A Survey of Learned Indexes for the Multi-dimensional Space -2024
最近的研究趋势是将数据库索引结构视为机器学习 (ML) 模型。在此域中,训练单个或多个 ML 模型以学习从键到数据集内位置的映射。这类索引称为“学习索引”。学习的索引已证明改进了一维数据的搜索性能并减少了空间需求。一维学习索引的概念自然而然地扩展到多维(例如空间)数据,导致了“学习多维索引”的发展。本调查的重点是学习的多维指标结构。具体来说,它回顾了该研究领域的现状,解释了每种拟议方法背后的核心概念,并根据几个明确定义的标准对这些方法进行了分类。我们提出了一种分类法,对每个学习的多维索引进行分类和分类,并根据该分类法调查了关于学习多维索引的现有文献。此外,我们还提出了一个时间表来说明学习指数研究的演变。最后,我们强调了这个新兴和高度活跃的领域的几个开放挑战和未来的研究方向。
该综述是多维学习索引,分类很详细,主要对每个分类中典型论文进行了简要的解读,但是还是要看经典原文,因此本文就对综述中重要的内容进行总结,尤其是未来的工作,很有借鉴意义,其他部分跳过,直接引用原文。
注意:多维数据和高维数据。在多维数据的上下文中,我们假设数据的维度通常在 2 到 10 之间。在高维数据的上下文中,数据的维度可能非常高(例如,100)
一 背景
这个图说明了ML-enhanced index, 和 learned the index的区别
二 分类
这个表就很详细的列出了各种分类。
这个图就详细的说明了当前算法解决学习索引不同场景的分类,尤其是b)是当前算法中主流采用的方法来解决新数据插入,模型重新练训练的问题,即为array gap, 或者缓冲区方法,但是这些方法对高速的流数据不适应,并且也会消耗存储,但是这些方法也尽可能得降低存储空间,这也是综述指出的未来研究方向之一。挺喜欢这张图
这张图和第一张大图 比较相似,从时间演变角度进行了单维度和多维度分类。从图中可以看出多维的方法大部分都借鉴了单维度的方法,即将多维转成单维度,然后套用单维度的方法,但是主要面临的问题是数据无法有序。
其次从图中看出来,采用降维(投影)然后使用单维度的效果可能并不如意(2020-2023年)但是2023-2024年转向了ML-enhanced index,即用一些机器学习的方法提升传统索引,比如R树的索引性能上面,不在是简单的学习空间索引。这类工作中强化学习占了主要部分,其他的模型比如CNN,RNN,Transformer, 导致模型构造复杂,并且没有办法模拟索引查询和环境的动态变化过程。
下面主要关注论文提出的开放挑战与未来研究方向
1. Total Ordering and Error Bound
多维数据并非如此,因为在多维空间中没有总排序。因此,一类学习的多维索引将数据投射到一维空间中以强加排序。在这种情况下使用了各种空间填充曲线,每种曲线都有不同的优点和局限性。另一方面,原生空间中学习的多维索引类不使用投影函数。但是,一些学习的多维索引可能会选择其中一个维度来在本空间中强加顺序。
2. Choice of ML Models
在学习索引的上下文中,通常建议尽可能采用简单的机器学习模型(例如,线性回归、决策树)。这个建议背后的主要原因是性能训练时间更短,模型大小更小,模型预测延迟低)。请注意,传统的数据库索引(例如,B+树,R树)是高度优化的数据结构。因此,学习索引应避免使用复杂的 ML 模型,这样模型构建时间和预测延迟就不会成为分别实现低索引构建时间和高查询处理性能的瓶颈
3 Model Training and Re-training
训练 ML 模型是构建学习索引的最重要部分之一。大多数提出的学习指标都试图尽可能地减少模型训练时间。此外,应尽快检测基础输入数据/查询分布的变化,并在必要时触发模型重新训练过程。尽管许多拟议的指数都解决了这些挑战,但该领域的未来研究仍有充足的空间。
4. Supporting Dynamic Inserts/Updates
初始学习索引仅考虑静态方案中的只读工作负载。之后,提出了支持插入/更新操作的新方法。然而,支持插入/更新需要定期重新组织(例如,重新训练)学习的索引结构或合并需要额外空间的机制(例如,间隙数组)的成本。在本次调查中,我们主要观察到支持动态插入的两种主要策略:就地缓冲区和增量缓冲区。尽管这些挑战在可变多维学习索引类中得到了解决,但需要进一步的研究来调查每种插入策略的优缺点。
3和4面临的问题一样的,这些问题单维学习索引中也涉及,这也是学习索引中不可避免的尴尬地方,完全用学习索引代替传统的索引是非常困难的。当前已经转到了机器学习模型提升索引,作为对传统索引的一种辅助。
5 并发性
在设计学习索引的上下文中,在大多数情况下,支持并发性是事后才想到的。只有少数几种建议的方法(在分类法 2 中用 * 符号标记)讨论了并发问题,并提出了原生支持并发的技术。因此,未来该领域的研究在设计或实现学习索引时,应将并发问题重视。
6. Index Compression
一维和多维索引在减少存储需求方面都显示出显著的好处。此外,在倒置索引的背景下[226],文献[143]研究了将学习到的一维索引合并到倒置索引结构中来压缩索引的好处。此外,在CompressLBF [40]中研究了学习的多维布隆滤波器在索引压缩方面的优势。然而,在其他索引类型的上下文中使用学习的多维索引来探索索引压缩的潜在好处是未来研究的一个有趣方向。
7 基准测试
尽管已经进行了几项研究来对一维学习指标的性能进行基准测试,但仍然缺乏对学习的多维指标进行全面的基准测试。在各种存储库中有许多开源的多维数据集(例如,UCR-STAR [64])。但是,收集多维和空间数据的实际查询工作负载具有挑战性。因此,许多研究使用真实的数据集,但使用合成查询工作负载。对具有真实数据和查询工作负载的多维学习索引进行基准测试可能会填补这一空白。
其实最近这些相关的基准已经有很多了。当然不太可能构成一个全面的基准,毕竟每个算法都有其适用场景,不同的场景下性能不一定好。
8 利用 GPU 获取索引
[224]中介绍了在 GPU 上原生实现学习的一维索引的好处。特别是,PGM 索引已在 GPU 上实现,因此该索引可以利用 GPU 的高并发性。在查询处理过程中,GPU-PGM 实现了比 CPU-PGM 一个数量级的性能提升。在学习多维指标的背景下进行类似的研究是未来研究的一个有趣方向。GPU实现高并发查询的意义是什么?GPU更适合进行大量的计算任务,单纯在GPU上实现索引查询,意义不大,没有办法发挥GPU的性能。可能GPU-CPU构成一个异构系统,实现系统查询可能效果会更好。