专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统

简介: 专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
来自新加坡国立大学和清华大学的研究者提出了一种专注于训练树模型的联邦学习新系统 FedTree。


联邦学习是机器学习中一个非常火热的领域,指多方在不传递数据的情况下共同训练模型。随着联邦学习的发展,联邦学习系统也层出不穷,例如 FATE, FedML, PaddleFL, TensorFlow-Federated 等等。

然而,大部分联邦学习系统不支持树模型的联邦学习训练。相比于神经网络,树模型具有训练快,可解释性强,适合表格型数据的特点。树模型在金融,医疗,互联网等领域有广泛的应用场景,比如用来做广告推荐、股票预测等等。

决策树的代表性模型为 Gradient Boosting Decision Tree (GBDT)。由于一棵树的预测能力有限,GBDT 通过 boosting 的方法串行训练多棵树,通过每棵树用来拟合当前预测值和标签值的残差的方式,最终达到一个好的预测效果。代表性的 GBDT 系统有 XGBoost, LightGBM, CatBoost, ThunderGBM,其中 XGBoost 多次被 KDD cup 的冠军队伍所使用。然而,这些系统都不支持联邦学习场景下的 GBDT 训练。

近日,来自新加坡国立大学和清华大学的研究者提出了一种专注于训练树模型的联邦学习新系统 FedTree



FedTree 系统介绍
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/random forest。通过设置不同的损失函数,FedTree 训练得到的模型支持多种任务,包括分类和回归。

实验
表 1 总结了不同系统在 a9a, breast 和 credit 上的 AUC 和 abalone 上的 RMSE,FedTree 的模型效果和用所有数据训练 GBDT(XGBoost, ThunderGBM)以及 FATE 中的 SecureBoost (SBT) 几乎一致。而且,隐私保护策略 SA 和 HE 并不会影响模型性能。

表 1: 不同系统的模型效果比较

表 2 总结了不同系统每棵树的训练时间(单位:秒),可以看到 FedTree 相比于 FATE 快了很多,在横向联邦学习场景下能达到 100 倍以上的加速比。

表 2: 不同系统每棵树的训练时间比较

更多研究细节请参考 FedTree 论文原文。

相关文章
|
存储 人工智能 自然语言处理
Scepter Studio-万能图片生成工作台
一句“A cute girl”这样的提示词,到底在Scepter studio上可以生成多少张不同风格的图片?答案是:无限
|
监控 druid Java
监控druid数据库连接池连接泄露的思路
监控druid数据库连接池连接泄露的思路
1873 2
|
C# 开发者
C# 一分钟浅谈:Socket 编程基础
【10月更文挑战第7天】本文介绍了Socket编程的基础知识、基本操作及常见问题,通过C#代码示例详细展示了服务器端和客户端的Socket通信过程,包括创建、绑定、监听、连接、数据收发及关闭等步骤,帮助开发者掌握Socket编程的核心技术和注意事项。
439 3
C# 一分钟浅谈:Socket 编程基础
|
9月前
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
6月前
|
人工智能 算法 计算机视觉
只需完成手画线稿,让AI算法帮你自动上色
本文介绍了如何利用图像处理技术生成手绘风格图像及自动上色的方法。内容涵盖图像灰度化、梯度调整、虚拟深度实现手绘效果,以及使用 Python 编程实现相关算法。此外,还介绍了 AI 工具 Style2Paints V4.5,其可为线稿自动上色并支持多种线稿类型,如插画和手绘铅笔稿,适用于艺术创作与图像处理领域。
|
存储 搜索推荐 算法
ICLR 2024:UTS提出全新联邦推荐算法
【2月更文挑战第17天】ICLR 2024:UTS提出全新联邦推荐算法
585 2
ICLR 2024:UTS提出全新联邦推荐算法
|
12月前
|
存储 缓存 自然语言处理
智能客服进阶:基于DeepSeek与PHP的多轮对话与上下文管理
本文基于前文构建的DeepSeek和PHP智能客服系统,深入探讨了多轮对话与上下文管理的实现。通过维护会话状态(如使用PHP的`$_SESSION`),系统能记住对话历史,提供连贯的回答。具体案例展示了如何处理书籍推荐及后续查询,如“这本书的作者是谁”。此外,还介绍了优化方向,包括实体识别、对话策略调整和持久化存储,以提升智能客服的复杂需求处理能力。
|
算法 调度
贪心算法基本概念与应用场景
尽管贪心算法在许多问题中都非常有效,但它并不总是会产生最优解。因此,在应用贪心算法前,重要的是先分析问题是否适合采用贪心策略。一些问题可能需要通过动态规划或回溯等其他算法来解决,以找到确切的全局最优解。
574 1
|
监控 网络协议 安全
Socks5协议原理分析及实现对比与问题排查实践
这篇文章《socks5协议原理分析及实现对比与问题排查实践》将深入探讨Socks5协议的工作原理,并对其与其他网络协议的实现进行详细比较。作者还将分享在实际应用过程中所遇到的问题及排查方法。对于想要提高系统安全性和性能的开发人员,本文提供了丰富的案例分析与实践经验。 在这篇文章中,读者将了解Socks5协议的基本概念、工作原理、具体实现方式以及常见问题与解决方案。这不仅有助于开发人员更好地理解Socks5协议,还能增强他们在开发与部署中应对复杂网络环境的能力,让我们一同探讨这些关键技术。
925 0
Socks5协议原理分析及实现对比与问题排查实践

热门文章

最新文章