SecureBoost:一种无损的联邦学习框架
# SecureBoost:一种无损的联邦学习框架
摘要——用户隐私保护是机器学习中的一个重要问题,欧洲联盟于2018年5月推出的《通用数据保护条例》(GDPR)便是一个证明。GDPR旨在让用户对其个人数据有更多的控制权,这促使我们探索在不违反用户隐私的前提下进行数据共享的机器学习框架。为此,本文提出了一种在联邦学习环境下的全新无损隐私保护树提升系统SecureBoost。SecureBoost首先在隐私保护协议下进行实体对齐,然后通过精心设计的加密策略在多个参与方之间构建提升树。该联邦学习系统允许在具有共同用户样本但特征集不同的多个参与方之间共同进行学习过程,这对应于一个纵向分区的数据集。SecureBoost的一个优势是,它在提供与非隐私保护方法相同准确度的同时,不透露任何私有数据提供者的信息。我们证明了SecureBoost框架与需要集中数据的非联邦梯度树提升算法一样准确,因此它在诸如信用风险分析等工业应用中高度可扩展和实用。为此,我们讨论了协议执行过程中的信息泄露并提出了减少信息泄露的方法。
论文地址:https://arxiv.org/abs/1901.08755
关键词:联邦学习,隐私,安全,决策树
# 1 引言
现代社会越来越关注个人数据的非法使用和剥削。在个人层面,个人数据的不当使用可能会对用户隐私造成潜在风险。在企业层面,数据泄露可能对商业利益产生严重影响。不同社会正在采取行动,例如,欧洲联盟已经颁布了一项名为《通用数据保护条例》(GDPR)的法律。GDPR旨在赋予用户对其个人数据更多的控制权【1】【2】【3】【4】。许多依赖机器学习的企业因此开始进行大规模变革。
尽管实现用户隐私保护的目标困难重重,不同组织在构建机器学习模型时的协作需求依然强烈。实际上,许多数据拥有者没有足够的数据来构建高质量的模型。例如,零售公司拥有用户的购买和交易数据,如果提供给银行用于信用评级应用将会非常有用。同样,移动电话公司拥有用户的使用数据,但每家公司可能只有少量用户数据,无法训练高质量的用户偏好模型。这些公司有强烈的动机来共同利用数据的联合价值。
到目前为止,让不同的数据拥有者在保护用户数据隐私和机密性的同时共同构建高质量的机器学习模型仍然是一项挑战。过去,已经有一些尝试来解决机器学习中的用户隐私问题【5】【6】。例如,Apple提出使用差分隐私(DP)【7】【8】来解决隐私保护问题。DP的基本思想是在数据交换和分析过程中添加适当校准的噪声,以消除任何个体身份的歧义。然而,DP只能在一定程度上防止用户数据泄露,无法完全排除个体身份。此外,在DP下的数据交换仍然需要在组织之间交换数据,这可能不符合像GDPR这样严格的法律。此外,DP方法在机器学习中是有损的,注入噪声后构建的模型在预测准确性方面可能表现不佳。
最近,Google引入了一个联邦学习(FL)框架【9】,并将其部署在Android云上。其基本思想是允许个人客户端只上传模型更新,而不是原始数据到中央服务器,在中央服务器上聚合模型。为了确保模型参数不泄露用户信息到服务器,进一步引入了安全聚合协议【10】。该框架也被称为水平联邦学习【11】或数据分区联邦学习,其中每个分区对应于从一个或多个用户收集的数据样本子集。
本文中,我们考虑了另一个场景,即多个参与方在保护用户隐私和数据机密性的同时共同构建其机器学习模型。我们的场景如图2所示,通常被称为垂直联邦学习【11】,因为数据在不同参与方之间按特征进行分区。该场景具有广泛的现实应用。例如,金融机构可以利用第三方的替代数据来增强用户和中小企业的信用评级【12】。来自多家医院的专利记录可以一起用于诊断【13】【14】。我们可以将不同参与方的数据视为通过联合所有数据获得的虚拟大数据表的一个子集。
然后,每个参与方的数据具有以下属性:
- 大数据表按特征维度在各参与方之间进行垂直拆分;
- 只有一个数据提供者拥有标签信息;
- 各参与方共享一组共同的用户。
我们的目标是允许各参与方在保护所有参与方的数据不泄露给其他参与方的情况下共同构建预测模型。与大多数现有的隐私保护数据挖掘和机器学习工作相比,我们的设置显著增加了复杂性。与样本分区/水平联邦学习不同,垂直联邦学习设置需要更复杂的机制来分解每个参与方的损失函数【5】【15】【16】。此外,由于只有一个数据提供者拥有标签信息,我们需要提出一个安全协议来指导学习过程,而不是在所有参与方之间显式共享标签信息。最后,数据保密性和隐私问题阻止了各参与方暴露其自身用户。因此,实体对齐也应在足够安全的情况下进行。
Tree boosting 是一种高度有效且广泛使用的机器学习方法,在许多机器学习任务中表现出色,因为它具有高效性和强解释性。例如,XGBoost【17】在包括信用风险分析和用户行为研究在内的各种应用中被广泛使用。本文提出了一种新的端到端隐私保护树提升算法和框架,称为SecureBoost,以实现联邦学习环境下的机器学习。SecureBoost已在一个开源的联邦学习项目FATE中实现,用于工业应用。我们的联邦学习框架分两步运行。首先,我们在隐私保护约束下找到各参与方之间的共同用户。然后,我们在不泄露任何用户信息的情况下共同学习一个共享的分类或回归模型。我们的主要贡献总结如下:
- 我们正式定义了联邦学习环境下垂直分区数据的隐私保护机器学习这一新问题。
- 我们提出了一种方法,在多个参与方的本地数据上共同训练高质量的树提升模型。我们的协议不需要可信第三方的参与。
- 最后且最重要的是,我们证明了我们的方法是无损的,意味着它与在集中数据上构建的非隐私保护方法一样准确。
- 此外,除了提供安全性证明外,我们还讨论了使协议完全安全所需的条件。
好的,以下是“预备知识与相关工作”部分的翻译:
# 2 预备知识与相关工作
为了保护用于模型学习的数据的隐私,文献【18】提出利用差分隐私(DP)来学习深度学习模型。最近,Google引入了一个联邦学习框架,通过将模型训练带到每个移动终端来防止数据传输【9】【10】【19】。其基本思想是每个本地移动终端使用本地数据和相同的模型架构训练本地模型。全局模型可以通过平均所有本地模型来简单更新。遵循相同的思路,几种尝试已经在不同的机器学习模型上进行重新发明以适应联邦环境,包括决策树【20】【21】、线性/逻辑回归【22】【23】【24】和神经网络【25】【26】。
上述所有方法均适用于水平分区的数据。与样本分区/水平联邦学习不同,垂直联邦学习设置需要更复杂的机制来分解每个参与方的损失函数。垂直联邦学习的概念最早在文献【5】【11】中提出,并为线性模型【5】【13】和神经网络【27】提出了协议。一些先前的工作已经为垂直分区数据上的隐私保护决策树提出了方法【16】【28】。然而,它们的方法必须揭示给定属性上的类别分布,这会带来潜在的安全风险。此外,这些方法只能处理离散数据,这在现实生活中不太实用。相比之下,我们的方法保证了对数据的更好保护,并且可以轻松应用于连续数据。文献【29】提出的另一项工作通过对非线性逻辑损失进行泰勒展开,联合执行加密垂直分区数据上的逻辑回归,但这不可避免地会损害模型的性能。与这些工作相比,我们提出了一种本质上无损的新方法。
# 3 问题描述
设
定义 1. 活跃方:
我们定义持有数据矩阵和类别标签的数据提供者为活跃方。由于类别标签信息对监督学习是必不可少的,活跃方自然承担了联邦学习中主导服务器的责任。
定义 2. 被动方:
我们定义仅持有数据矩阵的数据提供者为被动方。被动方在联邦学习设置中扮演客户端的角色。
隐私保护机器学习在联邦学习中垂直拆分数据的问题可以表述为:
已知:分布在
学习:一个机器学习模型
无损约束:我们要求模型
# 4 联邦学习与SecureBoost
作为最流行的机器学习算法之一,梯度树提升在许多机器学习任务中表现出色,如欺诈检测、特征选择和产品推荐。在本节中,我们提出了一种新的梯度树提升算法,称为SecureBoost,在联邦学习环境中运行。它包含两个主要步骤。首先,在隐私约束下对数据进行对齐。其次,在保持所有训练数据保密的情况下,协同学习共享的梯度树提升模型。我们在下文解释每一步。
我们的第一个目标是在所有参与方中找到一组共同的数据样本,以便构建联合模型
在隐私约束下对不同参与方的数据进行对齐之后,我们现在考虑在不违反隐私的情况下联合构建多个参与方的树集成模型。在进一步讨论算法细节之前,我们先介绍联邦学习的一般框架。在联邦学习中,典型的迭代包括四个步骤。首先,每个客户端从服务器下载当前的全局模型。其次,每个客户端基于本地数据和当前的全局模型计算更新的模型,该模型驻留在活跃方。第三,每个客户端在加密状态下将模型更新发送回服务器。最后,服务器聚合这些模型更新并构建更新的全局模型。
遵循联邦学习的一般框架,我们看到,为了在联邦学习环境中设计一个隐私保护的树提升框架,本质上我们必须回答以下三个问题:(1) 每个客户端(即被动方)如何在没有参考类别标签的情况下基于本地数据计算更新的模型?(2) 服务器(即活跃方)如何聚合所有更新的模型并获得新的全局模型?(3) 如何在推理时在各方之间共享更新的全局模型而不泄露任何信息?为回答这三个问题,我们首先回顾非联邦环境中的树集成模型XGBoost【31】。
给定一个数据集
为了学习在公式(1)中使用的回归树模型集,它在第
其中
在第
在获得最优树结构后,叶节点
从以上回顾中,我们得到以下观察:
- 分裂候选的评估和叶节点的最优权重计算仅依赖于
和 ,这使其易于适应联邦学习环境。 - 类别标签可以从
和 推断出来。例如,当我们采用平方损失作为损失函数时, 。
根据上述观察,我们现在介绍我们的联邦梯度树提升算法。根据观察(1),我们可以看到,被动方可以仅通过其本地数据和
根据公式(3),如果为每个可能的分裂计算
将数字
因此,可以通过以下方式找到最佳分裂。首先,每个被动方为所有可能的分裂本地计算
根据观察(1),分裂查找算法在联邦学习框架中与XGBoost基本相同,仅做了少量调整。==由于特征的分离==,SecureBoost需要不同参与方为每个分裂存储某些信息,以便对新样本进行预测。被动方应保留一个查找表,如图3所示。它包含分裂阈值[特征ID
# 5 联邦推理
在本节中,我们描述了如何使用分布在各参与方中的学习模型来对新实例进行分类,即使实例的特征是私有的并且分布在各参与方之间。由于每个参与方只知道自己的特征而不知道其他参与方的特征,我们需要一个安全的分布式推理协议来控制从一个参与方到另一个参与方的传递,基于所做的决策。为了说明推理过程,我们考虑一个如图3所示的三方系统。具体来说,参与方1是活跃方,收集的信息包括用户的月账单支付、教育水平以及标签(用户X是否按时支付)。参与方2和参与方3是被动方,分别持有年龄、性别、婚姻状况和授信金额的特征。假设我们希望预测用户
# 6 无损属性的理论分析
定理1. SecureBoost是无损的,即SecureBoost模型
证明。根据公式(3),
因此,我们有
# 7 安全讨论
SecureBoost在训练和推理过程中避免了各参与方暴露其持有的数据记录,从而保护了各参与方数据的隐私。然而,我们强调,在协议执行过程中存在一些可以推断的信息泄露,这在被动方与活跃方之间有很大的不同。
活跃方在SecureBoost中处于有利地位,因为它了解每个分裂的实例空间以及哪个参与方负责每个节点的决策。此外,它在学习过程中还了解所有可能的
注意,与同一叶节点相关联的实例强烈表明它们属于同一类。我们将属于多数类的样本比例称为叶纯度。相对于被动方的信息泄露与SecureBoost第一棵树的叶纯度直接相关。此外,第一棵树的叶纯度可以从叶子的权重中推断出来。
定理2:给定一个学习到的SecureBoost模型,可以从其第一棵树的叶子权重中推断出叶纯度。
证明:对于二元分类问题,损失函数如下:
根据损失函数,在第一次迭代构建决策树时,我们有
通过重新整理方程,我们得到
根据定理2,给定SecureBoost模型,可以从其第一棵树的叶子权重中推断出敏感信息。为了减少相对于被动方的信息泄露,我们选择将决策树的叶子存储在活跃方,并提出我们框架的修改版本,称为Reduced-Leakage SecureBoost (RL-SecureBoost)。使用RL-SecureBoost,活跃方仅基于自己的特征独立学习第一棵树,从而完全保护其叶节点的实例空间。因此,被动方所学到的所有信息都是基于残差。尽管残差也可能泄露信息,但我们证明,随着第一棵树叶纯度的增加,这种残差信息减少。
定理3:随着第一棵树叶纯度的增加,残差信息减少。
证明:如前所述,对于二元分类问题,我们有
当我们在第
我们知道
其中
其中
其中,
如公式12所示,当
为了实现较大的
根据定理3,我们证明了只要RL-SecureBoost的第一棵树学到足够的信息来用残差掩盖实际标签,它就是安全的。此外,正如我们在第8节中通过实验证明的那样,从预测准确性的角度来看,RL-SecureBoost与SecureBoost的表现完全相同。
# 8 实验
我们在两个公共数据集上进行了实验。
Credit 1:涉及用户是否会遭遇严重财务问题的分类问题。总共包含150,000个实例和10个属性。
Credit 2:也是一个信用评分数据集,涉及预测用户是否会按时付款的任务。总共包含30,000个实例和25个属性。
在实验中,我们使用每个数据集的2/3进行训练,剩余的用于测试。我们将数据垂直分成两半,并分配给两个参与方。为了公平比较不同的方法,我们将每棵树的最大深度设置为3,拟合单个回归树的样本比例为0.8,所有方法的学习率为0.3。我们采用Paillier加密方案作为加密方案,密钥大小为512位。所有实验均在具有8GB内存和Intel Core i5-7200u CPU的机器上进行。
8.1 可扩展性
SecureBoost的效率可能反映在收敛率和运行时间上,这可能会受到以下因素的影响:(1)单个回归树的最大深度;(2)数据集的大小。在本小节中,我们进行收敛性分析,并研究所有变量对学习运行时间的影响。所有实验均在Credit 2数据集上进行。
首先,我们对系统的收敛率感兴趣。我们将SecureBoost的收敛行为与非联邦树提升方法,包括GBDT和XGBoost进行比较。从图4中可以看出,SecureBoost在训练数据集上的学习曲线与其他非联邦方法类似,甚至在测试数据集上的表现略优于其他方法。此外,SecureBoost的训练和测试损失的收敛行为与GBDT和XGBoost非常相似。
接下来,为了研究单棵树的最大深度如何影响学习的运行时间,我们将单棵树的最大深度在{3, 4, 5, 6, 7, 8}之间变化,并报告一次提升阶段的运行时间。如图5(a)所示,运行时间几乎随单棵树的最大深度线性增加,这表明我们可以在相对较少的额外时间内训练深度较大的树,这在实际应用中特别具有吸引力,尤其是在大数据场景中。
最后,我们研究数据大小对提议系统运行时间的影响。我们通过特征乘积来增加特征集。我们将单棵回归树的最大深度固定为3,并将特征数量在{50, 500, 1000, 5000}之间变化,将样本数量在{5000, 10000, 30000}之间变化。我们比较了一次提升阶段的运行时间,以研究每个变量对算法效率的影响。我们在图5(b)和图5(c)上做了类似的观察,表明样本和特征数量对运行时间的贡献是相等的。此外,我们可以看到,即使在相对较大的数据下,我们的提议框架仍然具有良好的可扩展性。
8.2 RL-SecureBoost的性能
为了研究RL-SecureBoost在安全性和预测准确性方面的性能,我们旨在回答以下问题:(1) RL-SecureBoost的第一棵树(仅基于活跃方的特征构建)是否学到了足够的信息以减少信息泄露?(2) RL-SecureBoost与SecureBoost相比,准确性是否会下降?
首先,我们研究RL-SecureBoost在安全性方面的表现。根据第7节中的分析,我们用叶纯度来评估信息泄露的程度。此外,我们知道随着第一棵树叶纯度的增加,泄露的信息会减少。因此,为了验证RL-SecureBoost的安全性,我们必须证明RL-SecureBoost的第一棵树在减少第二棵树泄露的信息方面表现良好。如表1所示,我们比较了第一棵树和第二棵树的平均叶纯度。特别地,平均叶纯度是加权平均值,计算公式为
接下来,为了研究RL-SecureBoost的预测性能,我们比较了RL-SecureBoost和SecureBoost在第一棵树和整体性能方面的表现。我们考虑了常用的指标,包括准确率(Accuracy)、ROC曲线下面积(AUC)和F1分数。结果如表2所示。可以观察到,RL-SecureBoost在几乎所有情况下的表现与SecureBoost一样好。我们还对RL-SecureBoost和SecureBoost进行了配对的Wilcoxon符号秩检验。比较结果表明,RL-SecureBoost的准确性与SecureBoost相同,显著性水平为0.05。RL-SecureBoost仍然保证了无损属性。
# 9 结论
在本文中,我们提出了一种无损的隐私保护树提升算法SecureBoost,用于在跨多个参与方的私有数据上训练高质量的树提升模型。我们从理论上证明了我们提出的框架与非联邦梯度树提升方法一样准确。此外,我们分析了协议执行过程中的信息泄露,并提出了可验证的方法来减少这种信息泄露。