ABSTRACT
可扩展的端到端的提升树系统
对于稀疏数据,提出稀疏感知算法
对于近似树学习,提出加权的分位数速算
缓存访问方式,数据压缩和分片,达到可扩展,节省资源,处理大规模数据
1.INTRODUCTION
xgb和neural net的ensemble都取得了很好的效果。
一种新颖的树学习算法,用于处理稀疏数据;
理论上合理的加权分位数草图过程使得能够在近似树学习中处理实例权重。(a theoretically justified weighted quantile sketch procedure enables handling instance weights in approximate tree learning.)
并行和分布式计算(Parallel and distributed computing )
我们提出了一种有效的缓存感知块结构,用于核外树学习。核外计算(exploits out-of-core computation)
端到端的系统,可以理解为一条龙服务(end-to-end system)
proposing a regularized learning objective
2.TREE BOOSTING IN A NUTSHELL
2.1 Regularized Learning Objective
里面有一段话很好的解释了什么是CART!
提出了一个更简单(相较于前人的工作),且更易于并行计算的regularized objective。
2.2 Gradient Tree Boosting
公式推导,就不写了,详细的解释可以参考下面的链接:
2.3 Shrinkage and Column Subsampling
每棵树构建完毕后,会有一个收缩因子加到权重上,类似于学习率。
列抽样,可以防止过拟合,还可以加速并行计算。行抽样也有,传统的就是行抽样。
3. SPLIT FINDING ALGORITHMS
3.1 Basic Exact Greedy Algorithm
最基本的一种,叫做精确贪心算法。
为了高效,首先根据特征值进行排序。
每一个特征,每一个特征的每一个值,进行计算损失增益。
3.2 Approximate Algorithm
上一种方法用在数据量不大和单机的情况下。
在数据部门完全读入内存或者是分布式的情况中,需要用到近似算法。
主要是根据特征的百分位数进行切分。分为两种,一种是直接在整棵树上切,称为global的;一种是在叶子上切,称为local的。各有利弊。
具体实现有各种binning strategies,比如直方图和分位数。
以上方式xgb都是支持的。
3.3 Weighted Quantile Sketch
hi(二阶导)作为加权的权值。事实上很难找到分位数切分标准。xgb对于加权的数据找到了一种可用于分布式的快速寻找分位数分割点的算法。
3.4 Sparsity-aware Split Finding
对于missing的数据,采取根据non-missing数据找到一个default分割方式进行处理。
4. SYSTEM DESIGN
4.1 Column Block for Parallel Learning
将数据存在内存中,成为block。
对于精确贪心算法(单机),将数据全部存入内存中。
对于近似算法,将数据进行行抽样,即每一台机器只保存部分数据。(其中提到:直方图聚合中的二值搜索也成为一种线性时间合并样式算法。)
每一个block当然也支持列抽样。
the block structure使得时间复杂度变为log n。
4.2 Cache-aware Access
对于精确贪婪算法,我们可以通过缓存感知预取算法来缓解这个问题。具体来说,我们在每个线程中分配一个内部缓冲区,将梯度统计量取入其中,然后以小批量的方式执行累积。这种预取将直接读/写依赖性改变为较长的依赖性,并有助于减少在大行数时的运行时开销。
对于近似算法,我们通过选择正确的块大小来解决问题。我们将块大小定义为块中包含的最大实例数,因为这反映了梯度统计的缓存存储成本。选择一个过小的块大小会导致每个线程的工作量小,导致效率低下的并行化。另一方面,过大的块导致高速缓存未命中,因为梯度统计不适合CPU缓存。一个好的块大小选择应该平衡这两个因素。
4.3 Blocks for Out-of-core Computation
采用两个方法,一个是block压缩,使用通用的压缩方法。
一个是块儿切分,将数据分散到多个磁盘上,每个机器使用一个线程把数据先预存到内存中,然后训练的线程直接读取,可以提高吞吐量。
5. RELATED WORKS
总结了几个点:更简单和益于并行的正则目标学习函数,列抽样,处理稀疏数据,内存感知和内存外计算,在加权数据上进行查找分位数。
6. END TO END EVALUATIONS
具体的几组实验,没啥可说的,就不介绍了,感兴趣的可以去看原论文了解。
7. CONCLUSION
以上的总结,使用较少的资源解决现实世界中的大规模数据问题。