蓦然回首,发现写了很多联邦学习方面的文章,但是没有写一篇联邦学习方面的介绍性的综述,所以写了这篇文章,从整体介绍下联邦学习的背景、联邦学习的简介、隐私保护技术与营销应用场景。
▌联邦学习背景
数据是AI的石油,加速了AI的高速发展,但是同时多维度高质量的数据是制约其进一步发展的瓶颈。由于用户隐私、商业机密、法律法规监管等原因,造成大量信息孤岛,导致各个组织与机构无法将原始数据整合在一起,进而联合训练训练一个效果更好的信息密度更大、能力更强的大模型,严重制约了AI的发展。
图1 数据孤岛
▌联邦学习简介
基于上述背景,联邦学习应运而生,联邦学习(Federated Learning)是一种新的机器学习模式,它让多个参与者可以在不泄露明文数据的前提下,用多方的数据共同训练模型,实现数据可用不可见。
联邦学习的本质就是一种为了解决数据孤岛问题而提出的机器学习模式与算法。它的目标是在保障数据私有的同时,实现模型的共享。例如,现在有多个参与方,每个参与方拥有一套私有集群和数据,这些参与方想共同训练一个模型,但是传统的机器学习算法无法解决这个难题,这个时候就需要联邦学习来解决。
l 联邦学习的特征
联邦学习有以下四个特征:
-
参与方:n 两个或两个以上参与方,多方数据有一定的互补性,共同构建机器学习模型。
-
训练模式:
- 数据不出域:在模型训练过程中,每个参与方的数据都不会离开本地,即各自的原始样本不会离开本地。
- 平台跨域部署:联邦学习分布式平台的计算资源独立部署到各个参与方的机房里,不需要把各方数据集中放到一个地方进行联合训练,这和以往的模式有很大的不同。
-
安全加密:
- 模型的相关信息以加密方式传输。因为在模型训练的时候,需要传递梯度这些中间结果,所有的中间结果是通过加密的方式进行传输。
- 保证任何参与方都不能推断出其他方的原始数据,包含模型的参数和Label。
-
模型性能:
l 联邦学习的分类
联邦学习主要分为三大类:横向联邦学习、纵向联邦学习、联邦迁移学习等。
-
横向联邦学习:谷歌输入法案例,就是一个比较典型的横向联邦学习的案例。它的特点是各个参与方数据的特征维度是相同的,但是样本ID不同。适用于银行之间以及手机终端边缘计算等同质数据场景。
-
纵向联邦学习:它的特点是数据样本ID基本相同,特征不同。比如两个数据集的用户大规模重叠,但它们的特征不一样。
l 联邦学习的架构
如图是联邦学习的架构,主要简单介绍了横向联邦学习架构和纵向联邦学习架构。
▌联邦学习隐私保护技术
l 隐私PSI求交
在联邦学习过程中,一条样本分布存储在联合建模的各方,双方都有可能出现数据丢失、并且存储顺序不一致的情况,所以在联合训练前需要进行对齐。
另外基于某些场景,比如金融等需要基于身份证、手机号等的对齐,这些信息属于敏感信息,所以不能进行明文的交互,基于此设计基于流水线的隐私计算PSI方案,实现百亿样本规模以上的实时调度。在保障隐私的同时,计算速度基本没有降低。
l 模型 加密训练
联邦学习过程中需要用到加密相关的技术,目前安全计算的主流的加密方案如下:
-
同态加密 Homomorphic Encryption
-
秘密分享 Secret Sharing
-
混淆电路Garbled Circuit
-
差分隐私Differential Privacy
下面主要介绍下同态加密技术。
同态加密:满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可用不可见”。
如图所示,假如有两个整数A和B,要计算A+B的和C是多少。假设两个数据对别人是不可见的,将这两个数据拿给第三方计算,算之前同时先对A和B进行加密,再对密文计算结果,在整个计算过程中,原始数据A和B没有暴露,得到密文结果后,再用同态解密的方式将密文解掉,最后得到上下两路的计算结果是相同的。
下面结合线性回归模型的同态加密方式进行介绍。
训练步骤:例子是基于第三方C的方式,第三方C持有私钥,他会把公钥发给A和B,公钥进行加密,私钥进行解密。计算loss和算梯度的整个过程是加密的,流程入下图。
线性回归模型的训练流程
▌营销应用场景
l 营销流程
在联盟广告投放场景下,用户在媒体侧发起请求,媒体侧对广告主发起竞价请求,广告主通过模型预测返回广告信息,之后媒体侧通过模型预测用户最可能感兴趣的广告,并将它展示给用户。
如果用户点击该广告,就会跳到一个广告主的落地页,后续的深度转化行为会在广告主侧进行体现。在这个过程中,深度事件可以为用户是否转化。以电商行业为例,转化指的是用户购买,可能会有一定的延迟,而未转化就是指用户没有购买行为(可能会有一定的延迟,有个窗口时间)。
广告主会将转化事件记录到数据库里面,媒体侧也会把这些信息记录到数据库里面,同时双方也保存串联两侧的ID。在该领域的传统做法是广告主将标签返回到媒体,然后媒体使用ID组合数据和标签用以训练模型,优化投放效果。但是这样相当于原始数据的传输,
l 场景数据分析
在广告投放的业务场景中,我们在与媒体进行合作。媒体侧有大量的用户媒体兴趣标签以及行为特征,广告主侧有大量的用户商业兴趣及商品标签数据,同时还有最重要的深度转化相关的标签特征,基于双方数据的互补性,进行联合建模,优化效果。
l 联合建模
首先,在媒体侧用户的每个点击需要附加 session_id来唯一标识了用户的一次点击,并且传递给广告主侧,用来唯一标记这一次请求。广告主和媒体分别将 session_id协调样本信息存到数据库中。
离线训练时,双方使用同一个session_id的数据进行训练,建模双方可以使用DSSM双塔结构进行建模,计算正向传播的结果,然后计算Loss,再反向传播计算出梯度,最后将梯度发回媒体侧,两边分别用该梯度来更新模型,完成模型的构建。