上一篇文章介绍了LightGBM算法的特点,总结起来LightGBM采用Histogram算法进行特征选择以及采用Leaf-wise的决策树生长策略,使其在一批以树模型为基模型的boosting算法中脱颖而出。在时间和空间上都更胜一筹,准确率也比其他模型表现得更好。这些模型在处理一般规模的数据时,单机即可以解决,然而当数据规模更大时,即需要进行分布式计算,分担每台机器(worker)的压力。这篇文章介绍LightGBM的两种并行学习算法(Feature Parallel & Data Parallel),以及他们较传统并行算法的特别之处。
- Feature Parallel
特征并行算法目的是在决策树生成过程中的每次迭代,高效地找到最优特征分裂点。特征并行的主要思想是在不同机器在不同的特征集合上分别寻找最优的分割点,然后在机器间同步最优的分割点。
传统的特征并行算法
- 根据不同的特征子集,将数据集进行垂直切分。(不同机器worker有不同的特征子集)
- 每个worker寻找局部的最优分裂特征以及分裂点。
- 不同worker之间进行网络传输,交换最优分裂信息,最终得到最优的分裂信息。
- 具有最优分裂特征的worker,局部进行分裂,并将分裂结果广播到其他worker。
- 其他worker根据接收到的数据进行切分数据。
该方法不能有效地加速特征选择的效率,当数据量#data很大时,该并行方法不能加快效率。并且,最优的分裂结果需要在worker之间进行传输,需要消耗很多的传输资源以及传输时间。
LightGBM的特征并行算法