联邦学习是机器学习中一个非常热门的领域,指的是多方在不传递数据的情况下联合训练模型。随着联邦学习的发展,联邦学习系统也不断涌现,如FATE、FedML、PaddleFL、TensorFlow-Federated等。但是,大多数联邦学习系统并不支持树模型的联邦学习训练。与神经网络相比,树模型具有训练速度快、可解释性强、适用于表格数据等特点。树模型在金融、医疗、互联网等领域有着广泛的应用场景,如广告推荐、股票预测等。决策树的代表模型是梯度提升决策树(GBDT)。由于一棵树的预测能力有限,GBDT通过boosting的方法串行训练多棵树,通过每棵树去拟合当前预测值和标签值的残差的方式,最终达到很好的预测效果。具有代表性的GBDT系统有XGBoost、LightGBM、CatBoost、ThunderGBM,其中XGBoost多次被KDD杯冠军队使用。然而,这些系统都不支持联邦学习场景中的GBDT训练。近日,新加坡国立大学和清华大学的研究人员提出了一种新的联邦学习系统FedTree,专注于训练树模型。论文地址:https://github.com/Xtra-Computing/FedTree/blob/main/FedTree_draft_paper.pdf项目地址:https://github.com/Xtra-Computing/FedTreeFedTree系统介绍FedTree架构图如图所示1、一共5个模块:界面、环境、框架、隐私保护和模型。图1:FedTree系统架构图界面:FedTree支持两种界面:命令行界面和Python界面。用户只需给出参数(参与人数、联合场景等),一行命令即可运行FedTree进行训练。FedTree的Python接口兼容scikit-learn,可以调用fit()和predict()进行训练和预测。环境:FedTree支持在单机上模拟部署联邦学习,也支持在多机上部署分布式联邦学习。在单机环境下,FedTree支持将数据划分为多个子数据集,每个子??数据集作为参与者进行训练。在多机环境下,FedTree支持每台机器作为参与者,机器之间通过gRPC进行通信。同时,除了CPU,FedTree还支持使用GPU加速训练。框架:FedTree支持横向和纵向联邦学习场景下的GBDT训练。在横向场景中,不同的参与者有不同的训练样本和相同的特征空间。在纵向场景中,不同的参与者具有不同的特征空间和相同的训练样本。为了保证性能,在这两种场景中,每个节点的训练都有很多参与者参与。此外,FedTree还支持集成学习。参与者并行训练树,然后聚合它们以减少参与者之间的通信开销。隐私:由于在训练过程中传递的梯度可能会泄露有关训练数据的信息,因此FedTree提供了不同的隐私保护方法来进一步保护梯度信息,包括同态加密(HE)和安全聚合(SA)。同时,FedTree提供差分隐私保护最终训练好的模型。模型:基于训练一棵树,FedTree支持通过boosting/bagging方法训练GBDT/randomforest。通过设置不同的损失函数,FedTree训练的模型支持多种任务,包括分类和回归。实验表1总结了不同系统在a9a、breast和credit上的AUC以及在鲍鱼上的RMSE。FedTree的模型效果和在FATE中用所有数据训练GBDT(XGBoost、ThunderGBM)和SecureBoost(SBT)几乎一样。此外,隐私保护策略SA和HE不影响模型性能。表1:不同系统模型效果对比表2总结了不同系统中每棵树的训练时间(单位:秒)。可以看出FedTree比FATE快很多,在横向联邦学习场景加速比可以达到100倍以上。表2:不同系统中每棵树的训练时间比较更多研究细节,请参考原始FedTree论文。
