A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation 论文解读(SIGMOD 2021)
A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation 论文解读(SIGMOD 2021)
- 本篇博客是对A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation的一些重要idea的解读,原文连接为:A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation (acm.org)
- 该文重点介绍了同时从data和query中学习联合数据分布的方法。
- 特点:
- 不做任何独立性假设
- 同时利用data和query训练模型
- 增量更新,更好的时间和空间消耗
基数估计及联合分布相关信息
- 该部分在笔者另一篇介绍Naru的博客中已经讲述Deep Upsupervised Cardinality Estimation 解读(2019 VLDB) - 茶柒每天要学习 - 博客园 (cnblogs.com) 这里不做过多赘述,本文所用到的模型在data-driven方面的思想与Naru基本一致(包括使用自回归模型,encoding,decoding,progressive sampling)下文的重点是介绍如何用query(监督数据)训练data-driven(无监督模型)。
在自回归模型中加入query信息训练的challenge
现有的自回归模型无法实现从query中学习,这是因为在做反向传播时,梯度无法流经采样的一些离散随机变量(在本文中代表进行范围查询时渐进采样出的一系列点),因此采样过程是不可微的。本文介绍了使用gumbel-softmax方法对采样的点进行重参数化,使之可微的方法。
Gumbel-Softmax Trick
- gumbel-softmax是一种重参数化技巧,假设我们知道数据表中某一个属性列的概率分布P,范围查询需要我们在目标范围按照该概率分布采样出一些点{x...},利用这些采样点对范围选择度进行估计。但是这样采样出来的点有一个问题:x只是按照某种概率分布P直接选择出来的值,并没有一个明确定义公式,这就导致了x虽然与概率P存在某种关联,但是并没有办法对其进行求导,也就不能利用反向传播调整概率分布。
- 既然问题的原因是没有一个明确的公式,那么我们构造出一个公式,使之得到的结果就是这些采样不就可以解决不可微的问题了吗?我们想要构造的就是下式,即gumbel-max技巧:
\]
其中\(g_i=-log(-log(u_i)),u_i\sim Uniform(0,1)\).被称为Gumbel噪声,这个噪声的作用是使得每次公式产生的结果都不一致因为如果每次都一致就不叫采样了。根据该式我们最终会得到一个one-hot向量,用该向量与待采样的值域空间相乘即可得到采样点。我们注意到上式存在argmax操作,该操作也是不可微的,此时我们用softmax操作代替argmax即可解决问题,而最终方案被称为gumbel-softmax技巧。
损失函数
- data-driven 使用交叉熵损失函数
- query-driven使用q-error 损失函数*
- 本文通过一个超参数将两者相结合如下图:

workflow

A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation 论文解读(SIGMOD 2021)的更多相关文章
- Fauce:Fast and Accurate Deep Ensembles with Uncertainty for Cardinality Estimation 论文解读(VLDB 2021)
Fauce:Fast and Accurate Deep Ensembles with Uncertainty for Cardinality Estimation 论文解读(VLDB 2021) 本 ...
- Deep Upsupervised Cardinality Estimation 解读(2019 VLDB)
Deep Upsupervised Cardinality Estimation 本篇博客是对Deep Upsupervised Cardinality Estimation的解读,原文连接为:htt ...
- 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》
论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...
- Unified shader model
https://en.wikipedia.org/wiki/Unified_shader_model In the field of 3D computer graphics, the Unified ...
- Deep High-Resolution Representation Learning for Human Pose Estimation
Deep High-Resolution Representation Learning for Human Pose Estimation 2019-08-30 22:05:59 Paper: CV ...
- 论文笔记:(NIPS2017)PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
目录 一. 存在的问题 1.提取局部特征的能力 2.点云密度不均问题 二.解决方案 1.改进特征提取方法: (1)采样层(sampling) (2)分组层(grouping) (3)特征提取层(fea ...
- 论文解读(SUBLIME)《Towards Unsupervised Deep Graph Structure Learning》
论文信息 论文标题:Towards Unsupervised Deep Graph Structure Learning论文作者:Yixin Liu, Yu Zheng, Daokun Zhang, ...
- 论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》
论文信息 论文标题:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering论文作者:Bo Yang, Xi ...
- 论文解读(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》
Paper Information Title:<Improved Deep Embedded Clustering with Local Structure Preservation>A ...
随机推荐
- asp.net core监控—引入Prometheus(三)
上一篇博文中说到Prometheus有四种指标类型:Counter(计数器).Gauge(仪表盘).Histogram(直方图).Summary(摘要),并且我们做了一个Counter的Demo,接下 ...
- python 小兵(2)
while 条件: 结构体 if=条件: 等于 while 条件: 结构体 else: print(int(Ture)) 1 print(int(False)) 0 切片顾头不顾尾 prin ...
- Vue 之 Nginx 部署
nginx 下载地址:http://nginx.org/en/download.html 下载后直接解压,cmd 进入到解压目录运行 start nginx 即可启动 常用命令: nginx -s s ...
- Web:移动端阻止默认行为的小坑
问题 移动端 web 开发中,使用 addEventListener 阻止了 touchstart 事件的默认行为却发现没有生效 描述 再移动端 web 开发中,我们一般会用 addEventList ...
- 快速搭建ELK7.5版本的日志分析系统--搭建篇
title: 快速搭建ELK7.5版本的日志分析系统--搭建篇 一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic ...
- js null和{}区别
{}是一个不完全空的对象,因为他的原型链上还有Object呢,而null就是完全空的对象,啥也没有,原型链也没有,所以null instanceof Object === false;[]就更不用说了 ...
- 在公司内部网络如何搭建Python+selenium自动化测试环境
在公司内部安装Python+selenium测试环境,由于不能连外网所以不能使用pip命令进行安装,经过多次尝试终于安装成功,现总结如下分享给大家,也希望跟大家一起学习和交流自动化网页测试时遇到的问题 ...
- 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型
1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...
- Note/Solution - 转置原理 & 多点求值
\[\newcommand{\vct}[1]{\boldsymbol{#1}} \newcommand{\mat}[1]{\begin{bmatrix}#1\end{bmatrix}} \newcom ...
- Unable to register node “xxx“ with API server: Unauthorized
k8s二进制部署环境出现kubelet认证不了节点 出现这个情况的时候,第一个反应是先看apiserver证书是不是过期了 # 查看apiserver的service文件存储路径 systemctl ...