Paper Reading: Tree in Tree: from Decision Trees to Decision Graphs


Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。

论文概况 详细
标题 《Tree in Tree: from Decision Trees to Decision Graphs》
作者 Bingzhao Zhu, Mahsa Shoaran
发表会议 NeurlPS
发表年份 2021
会议等级 CCF-A
论文代码 https://github.com/BingzhaoZhu/TnTDecisionGraph

作者单位:
Lausanne, Switzerland
Cornell University
Ithaca, NY, USA

研究动机

DT 和树集成在实践中得到了广泛的应用,具有参数少、推理快和可解释性好的特点。但是 DT 存在两个缺点,首先 DT 模型随着树深度的增加而呈指数级增长,但即使对于较大的 DT,根叶路径也可能很短,从而限制了预测能力。第二是在 DT 中节点不跨不同路径共享,降低了模型的效率。DT 与 NN 相似,都是由基本单元组成,提高 DT 或 NN 性能的一种可能的方法是用更强大的模型取代基本单元。例如“Network in Network”在局部接受域内构建具有复杂结构的微型神经网络,以在图像识别任务上实现最先进的性能。对于 DT 而言,以往的工作用 LR 或线性 SVM 代替轴向分裂来构造斜树。与用于轴向排列树的贪婪训练算法(例如 CART)不同,斜向树通常由基于梯度的或交替的优化算法训练。

文章贡献

针对决策树模型的缺点,受 Network in Network 和斜决策树的启发,本文提出树中树(TnT)算法将传统的决策树扩展为一个决策图。TnT 不是基于贪心的方法自顶向下生成树结构,通过在内部节点或叶节点内递归地生长决策树来构造决策图。TnT 的时间复杂度与图中的节点数成线性关系,可以在大型数据集上构造决策图。在相同的模型复杂性约束下,TnT 在独立或集成的情况下都优于现有的决策树算法。同时它不依赖于预定义的图/树结构,而是能够从单个叶结点开始学习图连接,并提供完全可解释的决策过程。

本文方法

决策图

决策图(Decision graph, DG) 将节点组织成一个有向无环图,每个内部节点将一个特征与设置的阈值进行比较,选择进入两个子节点中的一个。DG 中的测试样本从根开始,在内部节点上依次选择路径,直到到达叶节点。DTs 与 DGs 的主要区别如下:

  1. DG 允许多个父节点共享相同的子节点,因此 DG 可以将具有相似行为的节点(如相似的分裂函数)组合在一起,以降低模型的复杂性;
  2. DTs 中叶节点的数量总是比内部节点的数量多 1,而在 DG 中则满足 #Leaves≤#Internals+1。

在 DT 中存在到达每个叶节点的唯一路径,它的模型复杂度通常用内部节点或叶节点的数量来量化。对于 DG 而言可以通过合并具有相同类标签的叶节点进行后处理,使 DG 的最小叶节点数等于类的数量,因此使用内部节点的数量来量化 DG 的模型复杂性。

Tree in Tree

本文的 TnT 模型与传统方法的关键区别在于内部节点的优化,TnT 拟合新的决策树来代替内部/叶节点,使用这样的微型 DT 来构造有向无环图,并通过有向无环图路由样本来生成准确的预测。下图显示 TnT 算法训练决策图的原理,假设有一个初始 DG(例如 DT 或单叶节点),目标是生长一个具有更好的预测能力的模型。在 TnT 的生长阶段(图 a),算法将节点(虚线圈)替换为具有多次分割的微决策树,实现更准确的决策边界。在合并阶段(图 b),将微决策树合并到起始模型中,构建 TnT 决策图,其中一个子节点(节点 2)可能有多个父节点(节点 4 和 5)。

从内部节点增长图

从任意内部节点 ni∈G 使用分裂函数 s(·;θi) 来增长决策图 G(·;Θ),其中 θi 表示 ni 的可训练参数,包括一个特征指数和一个轴向分裂的阈值。总体目标是用决策树 ti 替换 ni,本文作者认为决策图生成是一个最优化问题,本文定义如下最小化损失函数。

考虑对分裂函数s(·;θi)敏感的样本子集(xsubset∈ Xsubset、ysubset∈ Ysubset),使用如下公式所定义。Θ\θi 表示除 ni 外 G 中所有节点的参数,从 ni 开始增长图并不会改变 Θ\θi,因为解决 ni 的优化问题时,所有其他节点都是固定的。

Gni→left 将样本路由到左子结点,Gni→right 将样本在 ni 处路由到右子结点,如下公式所示。当 Θ\θi 固定时,决策图的输出仅依赖于 θi (即 s(·;θi))。

当不等式(2)成立时下面的不等式也成立:

此时才能基于子集(Xsubset, Ysubset)而不是使用整个训练集来解决节点 ni 处的简化优化问题,如下公式所示。

从式(3)可以得到优化问题(4)的解如公式(5)所示,公式(5)定义了用于拟合微决策树 ti 的内部节点 ni 处的最优分裂函数。本文的 TnT 算法不是使用简单的轴对齐分割,而是学习复杂度约束的决策树来更好地近似最佳分割函数。

从叶节点开始生成图

从叶节点生长使用的是贪心的思想,通过递归地分割叶节点实现对训练数据的拟合,用 DT 代替叶子进行预测。令 G(·;Θ) 为决策图,nl∈G 为具有常量类标签 l(·;θl)=c。算法的目标是通过用微决策树 tl(x) 替换叶预测器 l(·,θl) 来最小化总损失函数 L(Y,G(X;Θ))。考虑访问叶节点 nl 的样本子集(Xsubset, Ysubset),最小化公式(1)可以表示为如下的公式(6)。

为了在 t 处简单地达到如下公式所示的理想的叶预测器,本文通过建立了一个 DT 来逼近理想的叶预测因子。

算法学习过程

TnT 算法从单个叶节点生成决策图,它的训练是一个迭代过程,遵循增长->合并->增长…合并的交替,如下为 TnT 的伪代码。其中在第 9-14 行找到对每个节点的内部分裂函数或叶预测器敏感的数据样本子集 Xsubset、Ysubset,并生长微决策树。在内部节点中,Ysubset 表示左侧或右侧子对象的二进制标签,而非训练集的标签。第 17 行根据 TnT 的生长阶段生长微决策树,第 18 行将树合并到图形结构中。N1 是将子树合并到图中的合并阶段数,N2 是生长和优化微树的轮数,类似于树交替优化算法中的迭代次数。

正则化

在 TnT 的生长阶段样本 x 子集、y 子集在不同节点上的子集大小可能不同,因此需要一种健壮的正则化技术来在 TnT 的所有节点上操作,并训练微决策树,避免在小子集上过拟合。本文使用样本加权成本复杂性修剪方法,通过最小化 R(ti)+Ci|ti| 来修剪微决策树,其中 R(ti) 是错分类度量,|ti| 表示树的复杂度。使用基尼系数计算 R(ti),并通过计算分裂次数来测量 |ti|,如下公式表示的 Ci 为计算得到的样本加权正则化系数。其中 #Xsubset,i 是节点 ni 处子集的样本抽样数,C 是用于控制修剪强度和调整模型复杂度的超参数。对于较小的子集,需要应用更强的成本复杂性修剪来防止过拟合。

微调和后剪枝

使用 TAO 来微调 TnT,可以使分类精度略有提高。后剪枝用于去除死节点,如果没有训练样本经过某个节点,则该节点被修剪。剪枝后可以得到一个更紧凑的决策图,减少分裂的数量,而不影响训练的准确性。

时间复杂度

DG 提供了丰富的模型结构,增加了结构的复杂性。由于 TnT 算法通过在节点内部生长微决策树来生成新的分割,因此数据集最初对 m 个样本和 k 个特征进行 O(mklog(m)) 排序,创建新分割的时间复杂度取决于数据集(即 O(mk)),而不是图的大小。随着图的增大,TnT算法在最坏的情况下(算法2)对每个节点 N1*N2 次进行优化,N1 和 N2 是固定的超参数,TnT 显示出与节点数量的线性时间复杂度,O(nmk+mklog(m)),其中n是节点数量。

合成数据样例

下图构建一个合成分类数据集,简单展示了 TnT 相对于传统决策树算法的潜在优势。(a)中可视化了二维数据分布,其中一个类在角落,另一个类在其他地方。为了获得最佳决策边界,如 (b) 所示传统的决策树需要六次分割,而如 (c) 所示 TnT 只需要四次分割就可以生成相同的决策边界。TnT 与传统 DT 相比,可以实现更紧凑的模型和更少的分割。

实验结果

作为独立分类器的实验

将 TnT 作为一个独立的分类器进行测试,并与几个先进的决策树/图算法进行基准测试,包括 CART、TAO 和 NDG。在有微调和没有微调两种不同的设置下实现了 TnT 算法,在多个数据集和相似的复杂度约束下,TnT 算法始终取得了优异的性能。
在最坏的情况下,节点的数量会随着树的深度呈指数增长,然而 TnT 不受这个限制。下图 (a) 说明了对于 1000 次分割,CART 的平均决策深度为 12.3,TnT 的平均深度为 27.3,TnT 可以在不显著增加分割数量的情况下实现更复杂的模型。采用正则化系数 C 来控制 TnT 的复杂度,随着超参数 C 的增加,从 (b) 可见分割的数量减少。图 (c) 和 (d) 比较了不同超参数设置 (N1, N2) 的效果,当 N1=1 时 TnT 用决策树替换单个叶子节点,相当于用成本复杂度修剪来训练 CART。一般来说 N1 和 N2 值越高分类性能越好,将超参数设置为 N1=2、N2=5,以增加训练时间为代价,可以获得分类性能的边际改善。

将 TnT 在多个数据集与其他算法进行了比较,包括 MNIST、Connect-4、Letter、Optical、reconstruction、Pendigits、Protein、SenseIT、USPS 数据集。如果某些数据集没有分割好测试集,则将整个数据的 33% 随机划分为测试集。所有模型使用不同的随机种子重复训练过程五次,平均分类精度如下图所示,阴影区域表示各试验的标准偏差。本文提出的 TnT 优于 TAO 和 CART 等决策树,以及同样基于决策图的 NDG 算法。同时还给出了 TnT(微调)的结果,它采用交替优化来微调 TnT 并略微提高分类性能。

TnT 中的节点共享机制有效地正则化了图的增长,与树的贪婪训练相比可以提高测试性能。为了显示 TnT 决策图中的方差减少,实验去除了两个模型的复杂性约束,并选择了在训练集上实现最高交叉验证精度的超参数。下表比较了所提出的 TnT 方法和树的贪婪训练,总体而言与 CART 相比,TnT 在降低模型复杂性的同时获得了更好的测试精度。

TnT 具有完全可解释和可视化的决策过程,下图显示了分别有 20、129、1046 个分割的 TnT 决策图。使用不同的节点颜色来表示主类标签,随着图的增大,TnT 在 MNIST 数据集上的表现更好,在训练集和测试集上都实现了更高的分类精度。不同的节点颜色代表主要的类标签(超过 50% 的样本属于同一类),如果没有找到主导类,则节点显示为蓝色。

作为集成中的基分类器的实验

目前比较流行的 boosting 方法实现有 AdaBoost 和 gradient boosting,AdaBoost 和 bagging 都使用分类器作为基础估计器,而梯度增强方法则需要回归器。作者认为所提出的 TnT 算法可以应用于对目标进行轻微修改的回归任务,但将 TnT 作为回归器超出了本文的范围。使用 TnT 作为装袋(TnT-bagging)和AdaBoost (TnT-AdaBoost)集合的基分类器。用 8 种集成方法中的 TnT 分类器替代决策树,并比较不同模型复杂度约束下的性能。通过调优基本估计器的数量(#E)和内部节点的总数(#S)来改变集成复杂性。对于随机森林则删除 #S 的限制,树被允许尽可能大地生长,以更好地适应训练数据。在整个实验过程中,将 TnT 超参数设置为 N1=2、N2=5,使 TnT 和树集合共享相似的超参数探索空间。
下表比较了两个数据集上 TnT 集成和决策树集成的性能,由于 bagging 方法可以有效地减少方差,使用大模型(即具有许多分割的TnT/决策树)作为基础分类器,相反在 AdaBoost 中使用了很少分割的 TnT/决策树,因为增强可以减少偏差误差。在相同的模型复杂度约束下,TnT-bagging 几乎严格优于 RF,TnT-AdaBoost 在大多数情况下也优于 AdaBoost。在 TnT-AdaBoost 与 AdaBoost 的比较中也有观察到一些例外,因为具有高偏差的弱学习器也适合增强集成。总体而言 TnT 在使用类似集成方法时,与 DT 相比具有更高的分类性能。

进一步讨论

影响

提出了 TnT 决策图作为一种更准确和有效的替代传统的轴向 DT,TnT的核心思想(即在节点内生长微型树)是通用的,并且与许多现有算法兼容,例如可以在节点内部生长斜向决策树来构建斜向 TnT 决策图(伪代码第 17 行)。TnT 框架还兼容回归任务,可以在叶节点内部生长 DT 回归器来构建 TnT 回归器。总的来说,结果显示了将树结构扩展到有向无环图的好处,这可能会启发未来其他新的树结构模型。

限制

TnT 的训练比 CART 慢得多,在 MNIST 分类任务上构建一个具有 1k 分割的 TnT 决策图需要大约 5 分钟(95.9%/90.4%)。训练一个拥有相同分割数量的 CART 需要 12.6 秒(93.6%/88.3%)。类似于其他非贪婪树优化算法(例如 TAO),TnT 每个节点都被优化了多次,较长的训练时间阻止了构造大型 TnT-Adaboost集合。Python 实现也可能导致训练速度慢,期望用 C 语言实现的训练时间会显著改善。与 CART 相比,TnT 决策图具有更长的决策路径,由于TnT 使用剪枝因子来控制模型复杂度,所以不能像 CART 那样精确地控制节点数量。

并行

TnT 是一种通过以宽度优先顺序访问节点来构造 TnT 决策图的顺序算法,但是也可以在多个节点内并发地生长微决策树,这可能导致 TnT 的并行实现。具体来说,只有图中那些彼此不是后代的节点才能并行,不适用于同一决策路径上的节点,父节点优化可能会改变访问子节点的样本。非后代节点的并行优化遵循 TAO 的可分性条件。可分离性条件也适用于所提出的 TnT 决策图,从而实现并行实现。

优点和创新点

个人认为,本文有如下一些优点和创新点可供参考学习:

  1. 本文将决策树扩展到决策图,实现了更为复杂而有效的决策结构,是一种新的研究视角;
  2. TnT 不依赖于预定义的图结构或树结构,而是在定义了损失函数的基础上通过对决策树的节点递归地进行增长、合并实现,生成决策结构的方式很新颖;
  3. 针对决策图结构,作者提供了包括正则化、微调和后剪枝等方式对模型进行优化,这些改进的策略在其他模型的研究也可以合理应用。
posted @ 2023-08-30 21:12  乌漆WhiteMoon  阅读(204)  评论(0编辑  收藏  举报