本文分为上下两篇,上篇主要介绍一些基本概念和GBDT树模型,下篇则介绍针对结构化数据的深度模型。
随着深度学习在CV、NLP领域的遍地开花,DNN在推荐系统领域的广泛工业落地,对一直以来被GBDT统治的结构化数据建模问题,相关学者在近年也提出了不少深度模型。
TabNet
TabNet于2019年由Google提出,其主要创新点在于用神经网络模拟了模拟决策树的特征选择和条件判断操作,网络结构如下图所示。
TabNet网络中存在重复的结构(Step1, Step2...),每个Step内,存在两个重要的组件,Feature transformer(下文简称Ft)和Attentive transformer (下文简称At),从字面意思不难理解,前者用于特征提取,后者用于特征筛选,都主要由FC和BN层组成。
值得关注的是,At通过通过Sparsemax和正则化的约束,学习得到一个稀疏的Mask来实现特征选择。
总的来说,TabNet有GBDT的影子:如串行的模型结构、利用Mask来实现特征选择,这都是在DNN中不常见的操作。
NODE
NODE于2019年由俄罗斯的Yandex提出,NODE构建了Oblivious Decision Tree(ODT)作为模型的基础结构,ODT就是用神经网络模拟了对称决策树,这不禁让人想到CatBoost,巧合的是CatBoost同样是Yandex公司提出的。
对称决策树的关键点在于:树每一层的特征和阈值都是相同的。这也意味着ODT就是一张具有 2 d 个条目的表,它对应着d种特征划分的所有可能组合, 传统决策树在推理阶段需要从上到下进行,但是ODT可以并行进行所有阈值的划分,然后通过查表的方式实现决策,这也是CatBoost的推理速度远超其他GBDT的原因。
ODT的结构如上图所示,主要用entmax函数实现了稀疏的特征选择,使其可微,从而可学习。
NODE的结构如上图所示,由多个ODT层组成,采用了类似DenseNet的连接方式:每层的输入都是之前所有层输出的拼接。最终模型的输出是每一层输出的平均值。不得不说最后这个操作挺像RandomForest的。
TabTransformer
TabTransformer于2020年由Amazon提出,它没有模拟树模型的“精心”设计,看上去比较简单粗暴。
TabTransformer的模型结构,就是将数值型特征经过LN层进行特征提取;类别型特征经过Column Embedding层后,直接怼上N个Transformer Block,然后将两种特征拼接在一起,最后接上一个MLP。额...毕竟Transformer一统江湖嘛,懂得都懂。
SAINT
SAINT则是2021年的论文,同样基于Transformer,其主要创新点在于:提出了样本间注意力机制(Intersample Attention),即在同一批次的训练样本间,引入类似Transformer的多头自注意力机制(Multi-head Self-attention)。这么做的理由作者给到:当一行中某个特征缺失或有噪声时,样本间注意力使 SAINT 能够从该批次的其他相似数据样本中借用相应的特征。
SAINT结构如上图所示,特征经过Embedding层后,进入到多个SAINT block,每个SAINT block都是由一个Self-attention block和一个Intersample Attention block组成。其实思想也很简单:attention is all you need,横着来一下还不够,竖着也得整一整。
Deep Learning is Not ALL You Need
上面介绍了近年来出现的一些用于解决结构化数据问题的深度模型。但是很遗憾,依据[5][6]的实验结果与结论,综合性能与时耗,GBDT依然是目前解决结构化数据问题的最优解。面对GBDT三兄弟时,NN中一个能打的都没有。
正如TabTransformer的作者所言:We provide extensive empirical evidence showing TabTransformer significantly outperforms MLP and recent deep networks for tabular data while matching the performance of tree-based ensemble models (GBDT). 作者意是:费了老劲儿,TabTransformer的性能终于能和GBDT相匹配了。[6] 中的实验却证明,TabTransformer性能比不上LightGBM,但是推理时耗却是它的几十上百倍。
SAINT的作者最后则写到:Moreover, we have tuned SAINT for the settings in which we test it. Thus, we caution practitioners against assuming that what works on the benchmarks in this paper will work in their own setting. 旨在告诉读者们,我们实验下的SAINT都是经过特调的,你们在自己数据上用时,还是得重新调。这其实也暗示了,深度模型的调参和模型结构的设置对性能表现的影响很大,其操作的复杂度也是远超过GBDT树模型的。
至于TabNet和NODE,[5]的作者在多个数据集上进行XGBOOST VS DNN的大比武,模型都用来HyperOpt进行调参以保证最佳性能,但遗憾的是XGBOOST依然大获全胜。作者只也只好无奈感叹,揭开了这些DNN的遮羞布:Each paper may have naturally demonstrated the model's performance on datasets with which the model worked well. 即只挑自己模型表现最好的实验写进文章来证明SOTA。
在特定场景下,NN模型也会比GBDT更有优势:例如解决有文本、时序行为、复杂类别特征的数据时,深度模型的Embedding方法会比传统机器学习中基于Target Statistics的特征编码得到更丰富、更有效的特征;面对复杂优化目标或多任务优化时,可灵活自定义Metric和Loss的深度模型更占优势。
对于创新我们也不应该一棒子打死,前人智慧的累积下,未来一定会出现更强大的模型彻底改变这个领域,历史已经多次证明。
至此本文结束,文中难免有勘误之处,烦请各位大佬指正。
参考文献
[1] Arik S Ö, Pfister T. Tabnet: Attentive interpretable tabular learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(8): 6679-6687.
[2] Popov S, Morozov S, Babenko A. Neural oblivious decision ensembles for deep learning on tabular data[J]. arXiv preprint arXiv:1909.06312, 2019.
[3] Huang X, Khetan A, Cvitkovic M, et al. Tabtransformer: Tabular data modeling using contextual embeddings[J]. arXiv preprint arXiv:2012.06678, 2020.
[4] Somepalli G, Goldblum M, Schwarzschild A, et al. Saint: Improved neural networks for tabular data via row attention and contrastive pre-training[J]. arXiv preprint arXiv:2106.01342, 2021.
[5] Shwartz-Ziv R, Armon A. Tabular data: Deep learning is not all you need[J]. Information Fusion, 2022, 81: 84-90.
[6]