【SIGSPATIAL '20】A Tutorial on Learned Multi-dimensional Indexes

名称:A Tutorial on Learned Multi-dimensional Indexes
会议:SIGSPATIAL(2020)
机构:Purdue University

摘要

最近,机器学习(简称 ML)已成功地应用于数据库索引。对学习型索引的初步实验表明,与传统的数据库索引相比,它们具有更好的查找性能和更低的空间代价。为了将学习的索引扩展到多维空间,学界已经做出许多尝试,使得学习型索引有可能赋能空间数据库领域。本教程的目标是在单维和多维空间中提供学习型索引的最新内容。本教程涵盖了 25 个学习型索引技术。本教程分类了当前不同的学习型索引。

论文中给出的学习型索引分类

回答两个问题

  1. Can one use ML techniques to guide data indexing?
  2. Can ML techniques replace and act in place of a multi-dimensional index?

作者的意图显而易见,答案是“可以”。但是我认为更多得还是展现了无限的潜力,当 1-D 拓展为 M-D 时,更多的应用将会推动该领域的发展,也会引起更多学者的探索,我相信一定会有大有可为之日。

什么是学习型索引?

学习型索引是 ML4DB 的一个方向,由于数据库的基本诉求是稳定、确定性等,所以很少有组成构件(存储、查询优化器、索引等)被机器学习盯上。但是索引这一块的发掘开辟了很有意思的科研空间。

学习型索引的基本思想是“索引即模型”,原有数据库中 B 树的索被认为是最广泛使用数据库索引。第一个学习型索引(Tim Kraska 等提出)本质上就是想替换这个结构,通过累积分布函数(CDF)训练,最后得到一个可以预测上下界的回归模型。具体来说,整套机器学习的模型叫 RMI,通过多个简单神经网络模型以决策树的形式组合,将原有一维索引构建的问题,转换为 KV 对的回归预测模型。这篇开山之作 The Case for Learned Index Structures 虽然褒贬不一,通过巧妙地构建索引问题,作者展示了在数据管理系统内部使用机器学习的潜力。

痛点

  1. 针对更新的时候很无力。大部分工作只支持 Read-only 环境,如何支持更新?
  2. 没有简单的一维转多维的方法。多维数据没有总序(Total Order),如果简单用空间填充曲线,效率不高,问题也大。
  3. 数据类型不同。有一维、多维度、时序等数据类型

面向多维数据的学习型索引技术总结

Flood

Vikram Nathan, Jialin Ding, Mohammad Alizadeh, and Tim Kraska. Learning Multi-dimensional Indexes. SIGMOD (2020). 985–1000.

  • 内存
  • 多维数据
  • 考虑数据集(data)和查询(query)的负载均衡

IF-Index

AliHadian, AnkitKumar, and ThomasHeinis. Hands-off Model Integration in Spatial Index Structures. AIDB (2020).

  • 插值友好

LISA

PengfeiLi, HuaLu, QianZheng, LongYang, and GangPan. LISA:ALearned Index Structure for Spatial Data. SIGMOD (2020).

  • 基于磁盘

Learned ZM Index

Haixin Wang, Xiaoyi Fu, Jianliang Xu, and Hua Lu. 2019. Learned Index for Spatial Queries. In 2019 20th IEEE International Conference on Mobile Data Management (MDM). IEEE, 569–574.

  • Z-Order 空间填充曲线

Taxonomy

文章归纳总结了一下,但是我认为不是完全的区分,而且目前(2021年)来看,这种各司其职的格局已经打破,比如 PGM-Index 这种的存在无疑是“超级大国”。

  • 是否支持更新?
    • Updatable
    • Static
  • Data layout is fixed or arranged by model
    • Fix data layout
    • Arrange data layout
  • 模型结构
    • RMI
    • 强化学习
    • 简单机器学习模型(例如插值友好)
  • 数据类型
    • 一维
    • 多维
    • 时序

收获

作者还是直接点明了多维数据的学习型索引基本还是多维数据投影到一维 key,继而用原有学习型索引技术。但是不同的研究者提供了很多思路,比如 LISA 作者从磁盘数据的角度来化解天然多维数据学习型索引性能上的诟病,因为和磁盘 IO 比起来,这点学习成本或者 trade-off 成本简直是小巫见大巫。

再者,Flood 极有可能是第一篇将学习型索引技术应用到多维数据主体上的文献,作者在 Flood 投稿后也很快完成更深入的工作——Tsunami。首先要佩服作者在数据库学术角度的深厚知识储备,而且他英语口音特别好,真不愧是 MIT 大神。有感兴趣的可以在 B 站或 Youtube 看一下 Slide。但是我认为这两个工作的动机还是很清晰的,就是仍用 RMI 来套空间数据。我觉得我缺乏的是对空间数据的敏感性,不知道如何去建模(Cost Model),同时也没有充分的实验角度(这取决于认知的储备欠缺)。所以我觉得科研者还是需要将一个领域踏踏实实学好,如果有一个新技术诞生的时候,才能加速内化并扩展成为自己的工作点。

总得来说,以上工作存在一个通病,即只针对 Read-only 数据集,这是不能在实际生产中容忍的。但是 Updatable 这个点在这两年也做了更多的工作如 ALEX 与其后续工作,还有 PGM-Index 等,都需要仔细阅读,探索和利用现有经验开辟自己的一个“世外桃源”。

你可能感兴趣的:(【SIGSPATIAL '20】A Tutorial on Learned Multi-dimensional Indexes)