本文分享自华为云社区《ICDM'23 BICE论文解读》,作者:云数据库创新Lab。

导读

本文《Efficient Cardinality and Cost Estimation with Bidirectional Compressor-based Ensemble Learning》是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会ICDM’23的长文。ICDM是数据挖掘领域顶级学术会议之一。本届会议共收到投稿1003篇,其中录用长文94篇,长文录取率约为9.37%,总体录取率约为19.94%。

摘要

查询优化器在数据库管理系统中有着非常重要的作用,而基数和代价估计是查询优化器能否输出高质量执行计划的基础。为增强基数和代价估计,我们提出了一种基于双向LSTM和集成学习的模型框架,名为BICE。具体地,我们设计了4个自编码器组成特征提取器对查询计划中不同种类的丰富信息进行提取与编码。我们通过图嵌入算法学习表与表之间的关联,并作为连接条件编码的依据。之后,我们建立了双向LSTM对物理计划进行学习。此外,我们通过基于贝叶斯神经网络结合主动学习抽取不同的数据样本集合,以此来提高模型在复杂查询上的下性能表现。最后,我们在公开数据集上进行了大量的实验以论证BICE的有效性。

问题描述

一条查询语句q中包含若干个连接条件={1,2,...,}J={J1​,J2​,...,Jm​}和若干个谓词过滤条件={1,2,...,}F={F1​,F2​,...,Fm​}。通过DBMS的查询优化器,我们可以获取查询语句q对应的查询计划p。本文要解决的问题是:给定一条查询语句q,将其查询计划p输入到训练过的函数f中,得到其基数与执行时间,即f(q)=(C(q),T(q))。C(q)和T(q)分别表示基数与执行时间。

特征编码

首先,本文通过深度优先搜索(DFS)得到查询计划对应的节点序列。之后,本文设计了特征编码器用以抽取查询计划中蕴含的丰富信息,其由四个子编码器组成,分别是连接编码器、类型编码器、谓词编码器和信息编码器。下面,本文对各个子编码器的细节进行介绍。

连接编码器

连接编码器学习并编码查询语句中的若干连接条件J。先前的模型(如MSCN等)大多基于one-hot编码方法对连接条件进行规则编码。这种方法的最大缺陷在于,无法表示表和列之间的结构关系。因此,本文首先应用图嵌入算法学习数据库中的列关系。具体来讲,本文采用node2vec算法:ei​=node2vec(ci​)。ci​表示数据库中的列,ei​表示其对应的嵌入向量。之后,本文将连接条件中对应的两个列进行拼接得到连接条件对应的编码。特别地,本文全局地定义了列的顺序,以保证连接条件集合不会收到次序的影响。

类型编码器

类型编码器对查询计划中的节点类型进行编码。与上文介绍的连接条件不同,节点类型的数量在数据库管理系统中通常是有限的。因此,本文对于节点类型的编码方法和先前的许多模型(MSCN、QPPNet和TPool等)相同,即采用one-hot编码方法处理节点类型。

谓词编码器

谓词是查询中最为复杂的信息之一,其直接影响着许多操作(如顺序扫描等)的基数大小,进而导致查询代价的不同。为增强对谓词信息的学习,本文基于查询范围嵌入和并行深度神经网络设计了谓词编码器,下面对二者分别进行介绍。

对于查询范围嵌入,本文采用两个向量[V1max​,V2max​,...,Vnc​max​]和[V1min​,V2min​,...,Vnc​min​]用以进行范围表示,其中nc​表示列的数量。具体规则定义如下:

  • 若ci​>value,则将Vimin​的值设置为value。
  • 若ci​<value,则将Vimax​的值设置为value。
  • 若ci​=value,则将Vimin​和Vimax​的值设置为value。

其中,ci​为谓词中的列,value为对应的参数值。通过应用上述规则,我们能够得到查询对应的最大范围向量Vmax和最小范围向量Vmin。之后,本文建立了两个并行的神经网络学习Vmax和Vmin,将学习得到的嵌入向量进行拼接得到谓词对应的编码,并作为谓词编码器的输出。

信息编码器

查询计划树中不仅包括了原始查询语句的相关信息,同时还包括了查询优化器估计的若干信息,包括基数和代价等。虽然这些估计的信息在多数情况下是存在误差的,但是学习这种估计信息的错误分布是一种十分高效且有效的方法。因此本文设计了信息编码器,其将查询优化器估计的基数和代价经过归一化处理后作为特征编码的一部分。

最后,特征编码器整合上述四个子编码器的输出,得到查询计划对应的特征编码。

基于集成学习的估计模型

压缩器

压缩器学习特征编码器输出的特征向量,其输出一个固定长度的嵌入向量作为后续估计模型的输入。为了更好地学习特征编码中蕴含的丰富信息,本文建立了双向的LSTM模型处理特征编码。其具体的训练方法需结合估计模型,在本文下节中进行介绍。

贝叶斯神经网络

多数深度学习模型采用最大似然估计(MLE)基于当前观察到的数据得到最优的模型参数,这种方法假定了观察到的数据分布与全部的数据分布是相同或相似的。而贝叶斯神经网络则与此不同,其基于最大后验概率(MAP)的思想,通过引入不确定性来衡量模型对样本的置信程度。在基数和代价估计中,复杂的查询是频繁出现的。但是现有的基于方法大多基于MLE思想进行学习,无法在得到真实标签之前衡量模型在这些复杂查询上的表现。并且单一的模型难以学习全部查询的数据分布。因此,本文引入贝叶斯神经网络来衡量模型对各类样本的置信度。具体来讲,BICE采用MC_Dropout的思想建立了包括3层线性神经网络的贝叶斯模型以进行初步训练。定义如下:

Loss=qerror(Cr​(q),1/nB​∑i=1nB​​fB​(q∣WB​))

基于上述的损失函数定义,我们同时更新压缩器中的模型参数,至此完成了BICE的初步训练。

主动学习

完成初步训练后,为解决上文提到的单一模型难以适应复杂多样的工作负载的问题,本文采用主动学习的思想训练得到集成学习模型。具体来讲,本文共设计了四种数据抽样策略构成主动学习。分别是:(1)基于贝叶斯神经神经网络的置信度。(2)基于置信度和最大置信上界。(3)基于多样性与置信度。(4)基于多样新与最大置信上界。 本文采用贝叶斯神经网络在数据样本上输出的方差来衡量其置信度。用最大的qerror表示最大置信上界。此外,本文通过对数据样本进行聚类,之后在每个类别中进行样本抽取,以此来表示数据的多样性。在完成上述数据抽样后,本文建立了4个对应的估计模型进行学习。值得注意的时,在这一阶段的训练中,压缩器的参数并不会更新。因此对于各个数据样本,我们仅需利用上一阶段压缩器输出的样本的嵌入向量即可。仅训练估计模型(由3层线性神经网络组成)的过程是高效的。

实验

本文基于IMDB和TPC-H数据集进行了相关实验,其中IMDB数据集还包括了三个公开的测试负载:(1)JOB-light;(2)Scale和(3)Synthesis。

实验结果 我们在各个数据集上与相关的方法进行了对比,包括基数估计和代价估计,总体效果如下表所示。

实验表明BICE在绝大多数情况下均取得了最优表现。之后,本文将BICE与其他模型嵌入到查询优化器中,替代查询优化器所估计的基数,以进行端到端的测试,实验结果如下表所示。

实验表明,BICE在端到端测试中也有着最优的表现。此外,我们还进行了针对BICE的消融实验以论证各个组件的有效性,如下图所示。

上述消融实验表明,BICE的各个组件均能够有效地提升模型的表现。

结论

本文建立了一个基于双向LSTM和集成学习的模型框架,BICE。其能够进行有效的基数估计和代价估计。通过运用贝叶斯神经网络和主动学习,我们建立了表现更加优异的集成学习模型,其能够适应更加复杂多样的工作负载类型。实验研究表明,BICE在大量公开数据集上均有着更加优异的表现。

点击关注,第一时间了解华为云新鲜技术~

ICDM'23 BICE论文解读:基于双向LSTM和集成学习的模型框架的更多相关文章

  1. 基于双向LSTM和迁移学习的seq2seq核心实体识别

    http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在“端到端”, ...

  2. 【中文分词系列】 4. 基于双向LSTM的seq2seq字标注

    http://spaces.ac.cn/archives/3924/ 关于字标注法 上一篇文章谈到了分词的字标注法.要注意字标注法是很有潜力的,要不然它也不会在公开测试中取得最优的成绩了.在我看来,字 ...

  3. 【RS】:论文《Neural Collaborative Filtering》的思路及模型框架

    [论文的思路] NCF 框架如上: 1.输入层:首先将输入的user.item表示为二值化的稀疏向量(用one-hot encoding) 2.嵌入层(embedding):将稀疏表示映射为稠密向量( ...

  4. 端到端文本识别CRNN论文解读

    CRNN 论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Applica ...

  5. PaddlePaddle︱开发文档中学习情感分类(CNN、LSTM、双向LSTM)、语义角色标注

    PaddlePaddle出教程啦,教程一部分写的很详细,值得学习. 一期涉及新手入门.识别数字.图像分类.词向量.情感分析.语义角色标注.机器翻译.个性化推荐. 二期会有更多的图像内容. 随便,帮国产 ...

  6. 论文解读:3D Hand Shape and Pose Estimation from a Singl RGB Image

    本文链接:https://blog.csdn.net/williamyi96/article/details/89207640由于最近做到了一些 3D Hand Pose Estimation 相关的 ...

  7. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

  8. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

  9. 解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法

    摘要:本文提出了两个用于无监督的具备可解释性和鲁棒性时间序列离群点检测的自动编码器框架. 本文分享自华为云社区<解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法&g ...

  10. NIPS2018最佳论文解读:Neural Ordinary Differential Equations

    NIPS2018最佳论文解读:Neural Ordinary Differential Equations 雷锋网2019-01-10 23:32     雷锋网 AI 科技评论按,不久前,NeurI ...

随机推荐

  1. 好家伙,这个开源项目硬生生复制了一个 ChatGPT Plus 出来

    最近有一款聊天机器人框架 Lobe Chat 火出了天际,它不仅支持多模态,支持语音会话,还有一个强大的 Function Calling 插件生态系统(可以作为 ChatGPT 插件的平替).最重要 ...

  2. 可视化学习:CSS transform与仿射变换

    引言 在几年前,我就在一些博客中看到关于CSS中transform的分析,讲到它与线性代数中矩阵的关系,但当时由于使用transform比较少,再加上我毕竟是个数学学渣,对数学有点畏难心理,就有点看不 ...

  3. CatFly【汇编代码还原】

    CatFly[难度:1] 题目界面 下载附件,发现是dll文件,放到linux中运行一下,运行界面如图所示: 从上图中可以看到两处字符串,上面的字符串不断滚动,下方字符串在次数上不断累加,猜测上方字符 ...

  4. IDEA创建MyBatis项目--实现简单的查操作

    IDEA创建MyBatis项目--实现简单的查操作 1.创建一个maven工程,不使用模板 2.通过maven加载Mybatis依赖包 在pom文件中导入maven坐标 <dependencie ...

  5. 从零玩转xxl-job分布式任务调度-xxl-job

    title: 从零玩转xxl-job分布式任务调度 date: 2022-03-18 00:11:55.443 updated: 2023-01-05 10:58:06.991 url: https: ...

  6. 基于WebRTC的局域网文件传输

    基于WebRTC的局域网文件传输 WebRTC(Web Real-Time Communications)是一项实时通讯技术,允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点P2P ...

  7. Java 查找并高亮PDF中的跨行文本

    以下内容介绍如何在Java后端程序中查找并高亮PDF文档中的跨行文本.本次测试环境如下: 源文档:PDF 编译工具:IntelliJ IDEA2018 JDK:1.8.0 PDF类库:free spi ...

  8. 第五部分_Shell脚本条件判断语法结构

    条件判断语法结构 思考:何为真(true)?何为假(false)? 1. 条件判断语法格式 格式1: test条件表达式 格式2: [ 条件表达式 ] 格式3: [[ 条件表达式 ]] (支持正则~) ...

  9. 介绍3种ssh远程连接的方式

    摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...

  10. 数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

    摘要:随着数据仓库业务的发展,GDS使用场景日益增多,这就要求GDS仍要不断迭代,充分深入挖掘用户需求,提高产品化程度. 1. GDS定位 GDS是GaussDB(DWS)提供的一个数据导入导出工具, ...