Netflix提出梯度提升决策树网络Hammock!

2021-05-14 17:19:27 浏览数 (1)

作者:一元,四品炼丹师

梯度提升决策树网络(ArXiv19)

目前神经网络为很多业务带来了巨大的提升,但是对于神经网络的解释性,以及在某些表格数据的效果不如树模型依旧存在很多可以研究的方向,今天就看看Netflix如何基于GBDT的思想来设计梯度提升决策树网络,文章简单,idea也很有启发。大家做数据问题或者竞赛的时候也可以尝试尝试这种方案!

1. 简介

本文提出了一种建立类似于决策树集合的神经网络方法。我们首先阐述如何将学习到的决策树集合转换为一个具有一个隐藏层和一个输入变换的单一神经网络。然后,我们放松该网络的一些属性,如阈值和激活函数来训练一个近似等价的决策树集合。

最终的模型Hammock非常简单:一个全连接的两层神经网络,其中输入是quantized和one-hot编码的。在大数据集和小数据集上的实验表明,这种简单的方法可以获得类似于梯度Boosting决策树的效果。

2. 背景

GBDT VS NN:

  • GBDT在大规模数据集上的训练是非常有挑战性的;一旦来了新的数据,那么训练将会变得非常慢,增量更新的效果一般不尽如人意;
  • NN可以很好地和增量训练相兼容;

另一种选择是在神经网络中使用soft binning或可微分裂,并模拟决策树。然而,这些方法对于大量的特征和深度树通常是不可扩展的。最后,我们可以使用模型蒸馏,但它首先需要从一个已经训练好的模型出发。

在本文中,我们首先说明如何将学习的决策树转化为一个具有单个隐藏层和一个输入变换的神经网络。然后,我们放松这个网络的属性,如阈值和激活函数来训练一个近似等价的决策树集合。

最后一个模型叫做Hammock,非常简单。它是一个完全连接的两层神经网络,其中输入是quantized的,一层是one-hot编码。在大数据集和小数据集上的实验表明,这种简单的方法可以获得与GBDT模型相当的效果。

3. 决策树和神经网络

决策树的情况:

我们可以使用神经网络来实现该条规则,一个这样的实现如图1中间所显示的,它由一个输入转换、一个隐藏层(其中每个节点表示一个树叶)和一个外部节点组成,外部节点累加所有隐藏节点的输出。该转化使用对应特征的树节点的所有阈值,例如:

[f_1 < t_1,f_1 ge t_1, f_2 < t_2, f_1 ge t_2]

第一层的权重也是二元的,如果一对(阈值,叶子)在根和叶之间的路径中,那么它是激活的。关于第个叶子的节点的bias是非0权重的个数减去一个小数目,例如0.1,激活是一个step函数。

3.1 决策树等价的网络

第个隐藏节点和外部节点之间的权重是第个叶子的值,外层可以有一个节点用于二进制分类,也可以有多个节点用于多类分类。对于树集合,例如GBDT或随机林,我们可以根据所有树中的所有阈值来定义输入变换,并使用集合中尽可能多的隐藏节点作为叶的总数。因此,整个集合可以用一个网络来表示。

3.2 Hammock

外层可以有一个节点用于二进制分类,也可以有多个节点用于多分类。对于树集合,例如GBDT或随机林,我们可以根据所有树中的所有阈值来定义输入变换,并使用集合中尽可能多的隐藏节点作为叶的总数。因此,整个集合可以用一个网络来表示。

上述网络可以实现GBDT,但它仍然需要一个经过训练的模型。

我们可以对其进行修改,以便在内部学习等价的叶子节点。我们首先放宽所有标准的网络的权重和Bias。然后,我们可以为每个特征使用一组预先确定的阈值,并在转换中考虑所有这些阈值。为此,我们可以查看每个特征分布并创建一组阈值,例如分位数等。这是加快GBDT培训过程的常见做法。

我们可以通过使用这些阈值来量化特征值并将输入表示为量化箱的一个热编码来进一步简化这种转换。这个叫做Hammock的网络如上面等图片最右边所示。

从概念上讲,Hammock是一个简单的网络,后面接两个全连接层,其中输入是量化的,一层是热编码。这可以在TensorFlow中使用feature_column.bucketized_column实现。我们还可以对权重进行正则化,以获得类似于决策树的稀疏权重。最后需要注意等是,由于量化后有一个热编码,Hammock将其所有输入和阈值都视为categorical的。

4. 实验

  • Hammock能够产生与XGBoost差不多的结果。
  • 与NN-L1相比,Hammock在7种情况中有5种表现更好,显示了quantization层的优势。
  • 在扑克数据集上,Hammock的表现明显优于XGBoost。可能是XGBoost中的决策树不够深,无法捕获数据的复杂性,而Hammock可能会在每个隐藏单元中创建更大的特征组合。

5. 参考文献

  • Gradient Boosted Decision Tree Neural Network

0 人点赞