联邦学习(FL)是一种分布式机器学习技术,旨在通过保护数据隐私的方式,利用多个设备上的数据进行模型训练。在FL中,设备上的数据不需要直接共享,而是通过在本地训练模型并上传参数的方式,将多个设备上的模型聚合起来形成全局模型。FL可以应用于金融和互联网等各个领域。
对于联邦学习,Dataphin(DataTrust)隐私计算 FL能助力业务进行便捷建模,挖掘双方的数据价值,本文主要从四个点上讲一下Dataphin(DataTrust)隐私计算 FL:
1.Dataphin(DataTrust)隐私计算 FL简介和业务价值
2.Dataphin(DataTrust)隐私计算 FL安全和性能介绍
3.Dataphin(DataTrust)隐私计算 FL 灵活易用的组件化方案
4.Dataphin(DataTrust)隐私计算 FL场景化-开箱即用
在进行机器学习的过程中,各参与方可借助其他方数据进行联合建模。各方无需共享数据资源,即数据不出本地的情况下,进行数据联合训练,建立共享的机器学习模型。这种方式实现数据隐私保护和数据共享分析的平衡,即“数据可用不可见”的数据应用模式。1、Dataphin(DataTrust)隐私计算Dataphin(DataTrust)隐私计算是一款基于多方安全计算、差分隐私等技术打造的隐私计算平台,在保障数据隐私及安全前提下提供联邦学习、ID安全匹配、隐匿信息查询、联合统计分析等能力。2、Dataphin(DataTrust)隐私计算 FLDataphin(DataTrust)隐私计算 FL致力于解决各种场景下的联邦学习问题,在保护用户隐私的情况下,尽可能快而准确的帮助用户搭建联合模型。Dataphin(DataTrust)隐私计算 FL系统架构如下图所示:用两个案例来分别说明一下Dataphin(DataTrust)隐私计算 FL在搜索广告推荐和金融领域的业务应用价值。媒体的“人群跨域双选推荐“应用:有些业务线会密集向外部媒体投放广告内容,但是限于媒体的画像并不精准,所以效果并不足够理想,所以会使用Dataphin(DataTrust)隐私计算 FL 让广告投放更精准。业务线的诉求,是利用外部客户和内部数据联合建模,提高外投效果,帮助业务获得了更多目标人群的触达和转化。通过纵向联邦建模,使用外部媒体的user画像和业务线自己的item画像,加上一系列的context信息,在保证数据安全的基础上,在离线方面得到了可观的auc提升,在在线方面得到了以下效果:- 日常项目目标人群拓展15%,唤端率提升10%~30%,后链路提升50%~100%。
- 大促目标人群拓展30%~100%,唤端率提升7%~50%,后链路提升30%~100%。
信用卡拉新促活应用:金融数据的安全管控级别比较高,无法委托处理,需要更多的维度数据提高信用卡中心的推广效率。金融客户希望能够通过数据洞察,发掘有效特征,然后通过联合建模预测来完成线索打分,使用更精准的用户评分,提高开卡率并进行老客促活。最终,在业务效果方面:圈选新用户开卡转化率提升22.4%,圈选老用户促活投放效率提升32.5%。在联邦学习中,参与方的数据保持在本地,不共享原始数据。联邦学习涉及多个参与方之间共享模型更新和梯度信息。然而,通过模型更新的反馈,可能会泄露敏感信息。因此,在保护数据隐私和模型安全方面,需要采取适当的安全机制来确保数据不被泄露或篡改。在这个方面,Dataphin(DataTrust)隐私计算 FL可以依据不同的机器学习算法,基于场景速度和隐私保护的级别选择不同的隐私保护方法。Dataphin(DataTrust)隐私计算 FL使用的隐私保护方法主要有以下几种:下面分别通过两个例子讲一下我们在安全加固方面的方案。note:我们习惯上将持有标签的一方称之为“数据持有方(host)”,将只提供特征的一方称之为“数据加持方(slave)”同态加密是一种密码学技术,可以在加密状态下进行计算操作,并得到与明文相对应的加密结果。具体而言,同态加密支持两种计算操作:加法和乘法。设加密函数为E,解密函数为D,明文为m,密文为c1和c2。- 加法同态性:对于两个明文m1和m2,其对应的密文分别为c1 = E(m1)和c2 = E(m2),则对应的加法同态性可以表示为:E(m1 + m2) = c1 + c2。
- 乘法同态性:对于两个明文m1和m2,其对应的密文分别为c1 = E(m1)和c2 = E(m2),则对应的乘法同态性可以表示为:E(m1 * m2) = c1 * c2。
换句话说,同态加密允许在密文域中进行加法和乘法操作,而不需要解密操作。通过对密文进行计算,得到的结果密文可以与解密后的明文结果相对应。具体流程图只需要关注两个标红的字段就可以(其余部分均为通信、训练相关流程)。在标红的位置里:- 半同态的目的,是为了防止host知道slave的特征x;
- 加噪的目的,是为了防止host知道slave的梯度dy/dx,这个噪音会在最后由slave方去除,所以不会影响模型效果。
在DNN中,使用方和加持方可以各自定义子网络,并定义最终的interactive_net网络。在各自的梯度、前向传播均加入DP来保护,加入的方法如下图所示。DP添加可以使得计算结果难以从中推断出敏感信息。噪音的添加需要满足一定的随机性和统计性质,以确保保护的安全性和数据的准确性。噪音可以满足以下两个方面的需求:- 可证明:可以证明无法从添加噪音的数据中还原具体信息。
- 可量化:引入隐私预算的概念,隐私预算是一个表示允许的隐私泄露程度的值,控制了在计算过程中添加噪音的量。通过合理设置隐私预算,可以在保护隐私的同时尽可能减少对计算结果的影响。
除了在安全算法的层面,联邦学习工程架构方面也面临一些问题,我们对此也做了一些工作:联邦学习需要参与方之间进行通信和计算,这可能导致较大的通信和计算开销。特别是在大规模和分布式的联邦学习场景下,通信和计算开销可能会变得非常昂贵。- 利用算法性质,更改调度方式(eg:xgboost->Opboost),将loop调度转换为全量发送,从而仅需要通信常数轮即可完成建模工作。
- 使用了DP来处理特征数据,对特征值进行扰动,使得数据的顺序得以保留,但敏感信息无法被恢复。
无论是MPC还是HE,其计算量都比较可观,在整体训练流程中,安全计算造成的延迟不可忽视。为此,我们大幅度的优化了MPC和HE算法的流程,包括但不限于以下内容:- 支持libsvm离散特征,针对大规模稀疏特征做优化。Note:用户可选项
- Mpc三元组预计算:我们把MPC的三元组生成部分,由online计算改成了offline计算,从而大幅度的减少了真正的训练时间(60%以上)。
经过优化之后,我们的联邦学习框架效果基本达到了业界领先水平,对用户来说,大规模数据的联邦建模也会迭代速度快很多。一些典型联邦学习算法的benchmark如下图所示:在联邦学习中,参与方通常拥有不同的数据集,这可能导致数据分布不匹配的问题。这种不匹配可能会导致模型在不同参与方之间表现不一致或性能下降。在联邦学习中,参与方通常是分布的,并且模型的训练和更新是在不同的设备或服务器上进行的。这使得模型调试和问题排查变得更加困难,因为无法直接访问参与方的设备或服务器。在联邦学习中,需要大量的数据清洗、分桶、特征分析工作,否则很难判定哪些数据列有效,哪些数据列相关性强。针对以上问题,我们封装了所有安全、算法技术的复杂性,推出了组件化方案来解决上述问题:隐私集合求交(PSI)组件,支持left/right/inner join,黑盒调用即可保证安全性。(1)cscc(调度系统)/lscc(计算系统)分离;(1)独立的数据清洗和分析组件,涉及交叉特征分析的部分均进行安全加固:分箱、方差膨胀系数VIF、特征稳定性PSI、etc…对于用户而言,能够经过很少的修改就能将自己的数据适配目前已有的自身场景,利用已有数据进行验证。为此,我们做了以下三个方面的工作。一揽子解决很多场景的通用问题,只用经过少量的修改即可投入生产环境。以搜索广告推荐场景为例,通过组件化方案,全流程均可以进行联邦学习建模替换。以下是一个典型的搜索广告推荐推场景的特点和替换方案:对于每个组件,我们都有针对性的文档来解释每个组件应该怎么去使用。Dataphin(DataTrust)隐私计算,是阿里巴巴内部真实业务场景实践成果的产品化输出,拥有全自研加密算法专利,获得多项权威评测认证,在营销、风控、政务服务等场景都积累下了丰富的实践经验,可为企业提供数据可用不可见的安全流通解决方案,实现数据价值最大化。