前言
前面的文章分享过了LightGBM的实践编码,本篇让我们一起来读一下算法论文《LightGBM: A Highly Efficient Gradient Boosting Decision Tree》,从原理层面上去深入一层。
推荐大家在读论文的同时,参考LightGBM官网材料([https://lightgbm.readthedocs.io/en/latest/Features.html])来理解,这样可以对论文中省略掉的思路过程做一些补充。
论文解读
我们先来快速把握这篇论文的中心思想。它提出了两个具有创新性的方法:
- GOSS(Gradient-based One-Side Sampling),该方法的目的是缩减用于计算信息增益的样本集数量,参与计算的数据量少了,计算性能就更好了;
- EFB(Exclusive Feature Bundling),该方法目的在于减少用于参与分裂点筛选计算的特征变量数量,同样的,因为参与计算的对象少了,性能就提升了。
决策树算法的核心点就在于每来到一个树的分叉点时,选择哪个特征变量,以及选择哪个数值进行拆分。传统的做法就是遍历所有特征变量的所有可用于分裂的数值点(遍历所有样本记录),根据定义好的某个损失函数来进行最优化选择。面对海量数据时,这种算法往往会遇到计算性能瓶颈,容易想到的方法就是要么减少参与计算的样本量,要么减少特征变量的数量。但这并不是一个轻易的工作。作者的论文就是围绕这两点来展开的。