Page 287 - 《软件学报》2026年第1期
P. 287

284                                                        软件学报  2026  年第  37  卷第  1  期


                 H i =f(W l H l +W r H r +B i ), 其中  W l , W r 为节点  i 左、右子节点位置学习到的参数. Tree-RNN  通过这样的方式从叶子节
                 点开始不断向上递归, 将底层节点的信息逐步传递到高层节点, 从而捕获数据中的全局结构信息, 得到整棵树的根
                 节点的表示.
                    ● Tree-LSTM (tree-structured long short-term memory) 是一种特殊的  Tree-RNN  方法, 它在普通的  Tree-RNN
                 基础上使用了     LSTM [52] 单元, 通过引入输入门    i t 、遗忘门  f t 和输出门  o t 机制来捕捉长距离的复杂依赖关系. 相比
                 于普通的   LSTM  方法, Tree-LSTM  方法在计算门时, 也需要考虑左右子节点的隐藏状态               h 、  h R t−1  和单元状态  c 、
                                                                                                      L
                                                                                     L
                                                                                     t−1
                                                                                                      t−1
                                                                 L
                 c . 同时, 该方法还为左右子节点分别引入了独立的遗忘门                  f t 、f t    . 文献  [38] 采用  Tree-LSTM  方法构建代价
                                                                    R [53]
                  R
                  t−1
                 估计模型, 递归地处理树中的节点和子树, 以捕捉查询的树形结构特征, 包括父子节点的依赖关系和自底向上的信
                 息流通路径.
                    ● Tree-CNN (tree-based convolutional neural network) 是卷积神经网络  [54] 的一种特殊变体, 专门针对树形结构
                 数据进行设计. 它模拟了卷积神经网络在图像数据中的卷积操作, 然后将这些本来应用于矩形数据上的操作扩展
                 到了三角形的树形结构上, 有效地捕捉了节点之间的层次关系和局部特征. 在                        Tree-CNN  中, 每个节点都与其子节
                 点相关联, 并且每个节点都有一个表示其特征的向量. 卷积核沿着树的结构在树的节点上滑动. 需要注意的是,
                 Tree-CNN  与普通的  CNN  不同的一处在于, Tree-CNN    在卷积的过程中不会缩小树的结构, 只会将树中每个结点
                 的特征维度降低. 所以为了将一个向量树变换成一个一维向量进行线性回归得到代价估计值还需要进行一步池化
                 操作. Tree-CNN  一般会选择动态池化的方法, 即: 在每一个维度选择各个节点中该维度的最大值作为输出一维向
                 量对应维度的值.
                    ● Attention-based  的方法: Attention-based  [55] 模型是一种用于处理序列到序列任务的深度学习模型. 此类模型
                 的优点在于能够有效地捕捉序列中的长距离依赖关系和更高的并行计算性能. 借助自注意力机制可以计算序列元
                 素  i 对元素  j 的注意力分数    A ij , 从而反映元素间的相关性. 基于自注意力机制的回归预测模型中的代表工作是
                 QueryFormer [36] , 它通过扩展位置编码为树高编码和使用树偏自注意力机制来聚合单个节点, 使得                     Attention-based
                 的架构能够适用于查询计划的向量树结构. 同时也有研究者发现, 注意力机制的计算本身就涉及将序列中的元素
                 分别映射到    (Query, Key, Value) 的空间中, 这与查询语句在某种特定的数据分布上执行查询的思想暗合. 所以
                 ALECE [37] 利用了这一点, 它首先将来自数据的统计直方图编码进行自注意力运算, 使每一张表的直方图编码结合
                 了各个其他表的相关性信息. 随后, ALECE          会将这一编码映射到        Key  和  Value 部分, 再与映射到  Query  部分的查
                 询编码进行注意力计算. 这一过程相当于在              Transformer 架构内部执行了一次“元查询”操作, 最终将计算结果通过
                 线性变换后输出.
                    从深度学习的角度来讲, 研究者们长期以来做出的一系列模型架构方面的改进可以被称为代表了对查询优化
                 有用的归纳偏差: 也就是说网络的结构, 而不仅是其参数, 都是为了代价估计任务而生的.
                  2.3.3    模型设计异同分析与性能对比
                    表  2  列举并对比了若干查询优化算法中所使用的代价模型以及其特征编码, 模型架构和算法的优化目标.


                                          表 2 各类代价模型使用的特征编码与模型架构

                                                      特征编码
                       方法                                                            模型架构       优化目标
                                  操作符     表名     谓词     样本位图       直方图     预测值
                          [56]
                     AVGDL          √      √       √       -        -        -        LSTM      视图选择
                         [57]
                      Fauce         √      √       √       -        -        -        DNN       基数估计
                           [58]
                    AIMeetsAI       √      -      -        -        -        √      Hybrid DNN  索引推荐
                          [59]
                     ReJOIN         √      √       √       -        -        -        FCNN      连接优化
                            [42]
                   Robust-MSCN      √      √       √       √        -        -        MSCN      基数估计
                           [47]
                    Plan-Cost       √      -      -        -        -        √       Tree-RNN   代价估计
                           [38]
                    E2E-Cost        √      √       √       √        -        -      Tree-LSTM   代价估计
                         [60]
                     RTOS           √      √       √       -        -        -      Tree-LSTM   连接优化
   282   283   284   285   286   287   288   289   290   291   292