Lightweight and Accurate Cardinality Estimation by Neural Network Gaussian Process
总结
用无限宽度神经网络和高斯过程来等价贝叶斯过程,并利用主动学习提高精度,实现对某个SQL查询的cost估算
动机
依靠AI实现查询基数(cardinality,可以理解为cost)的估计。模型输入是SQL查询(word embedding),输出是基数。
NNGP
模型可以分为三个部分:
- 模型构建。NNGP使用了无限宽度的神经网络,并用高斯过程(已有数据估计一个高斯分布)对模型参数进行建模。
图例可以看到,相当于每个神经元之间传递的不再是参数,而是一个高斯分布
- 输入SQL查询得到基数估计值
- 提供该估计值的可信度
这个可信度可通过计算置信区间来估算,这个值可以靠高斯过程回归计算(回归拟合一个高斯分布,根据方差和均值判断置信区间)。
实验
数据集
ground truth是通过实际运行这些查询得到的
精度实验
评价指标Q-Error是判断估计cost和实际cost差距的指标。
效率实验
训练资源占用
鲁棒性
主动学习的效果
置信区间最大的查询被视作信息量最大的查询,主动学习将会针对这样的查询进行标注