读论文-Learning to Optimize Join Queries With Deep Reinforcement Learning
一些问题:
- 把学习的优化器塞进数据库,不难。
- 训练开销大,要求推理必须快一些。
- 如果数据库信息在短时间内发生较大变化?
- 否则只在某种边界情况使用学习的优化器,而不是单纯的只用某一方。
- MDP?QP?RL?强化学习?监督学习?成本模型?
- 我觉得主要优势在于可以利用GPU
- 在监督学习中,人们将训练示例与基本事实标签(例如,带有标记对象的图像)配对。对于连接优化,这意味着一个数据集,其中示例是当前连接图,标签是预言机的下一个最佳连接决策。在顺序规划的背景下,这个问题设置被称为模仿学习;其中一个人尽可能最好地模仿预言机。
- 强化学习一词指的是马尔可夫决策过程问题的一类经验解决方案,在这些问题中,我们没有基本的事实,最优的下一步;相反,学习是由下一步的数字“奖励”指导的。在连接优化的上下文中,这些奖励是子计划成本。
- 仍然基于代价模型。
- 用图的方式?做出连接两个子计划的决定对应于选择由边连接的两个顶点并将它们合并成一个顶点。
- 查询图G是一个无向图,其中每个关系R是一个顶点,每个连接谓词ρ定义顶点之间的边。让κG表示G的连通分支的数量。
- 做出连接两个子计划的决定对应于选择由边连接的两个顶点并将它们合并成一个顶点。LetG=(V, E)是一个查询图。将连接c=(vi,vj)应用于图G定义了一个具有以下属性的新图:(1)vi和vj从V中移除,(2)一个新的顶点(vi+vj)被添加到V中,(3)(vi+vj)的边是入射到vi和vj的边的并集。每次连接都会减少1个顶点的数量。 每个计划都可以被描述为一个这样的连接序列,直到|V|=κG。上面的描述包含了另一个系统R启发式:“避免笛卡尔积”。我们可以通过在算法开始时简单地向G添加边来放松这种启发式,以确保它是完全连接的。
- 把计划抽象成图,
- 用Q函数推导长期收益,而不是像贪心一样只看短期收益。
- DQ微调。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments