联邦学习针对的是数据联合建模问题,从前述联邦学习的定义中也可以看到,在隐私保护下进行安全的数据联合是联邦学习要完成的最核心任务。在实际应用场景中,数据的分布有各自的特点,基于这些特点,可以将联邦学习分成不同的类别,进而根据不同类别的特点设计不同的解决方案。所以,首先以数据分类的特点为依据对联邦学习进行分类。
对于有多个数据拥有方的场景,每个数据拥有方各自持有数据集
。将其表示成矩阵的形式,即矩阵的每一行表示一个样本(常见的是用户维度),每一列表示一个特征。在有监督学习场景中,某些数据集可能还包含标签数据。我们将特征表示为
,将标签表示为
,并使用
表示样本。例如,在风控场景中,标签
可能是用户的信用表现,如贷款是否出现大于3天的逾期;在营销字段中,标签
可能是用户的购买情况,如在电话营销理财产品活动后客户是否购买相应的理财产品;在教育领域中,标签
可能是教学的效果反馈,如教学后学生的成绩情况;在医疗场景中,标签
可能是诊疗方案或者检查诊断有效性情况,如血糖控制方案的相应治疗情况等。样本
、特征
、标签
构成了完整的训练数据集
。在现实的应用中,我们会遇到各种各样的情况,特征、标签及样本在各个数据集上不完全相同。这里参考Yang等
[40]
提出的分类方法,以包含两个数据拥有方的联邦学习为例,数据分布可以分为以下三种情况。
● 两个数据集的特征重叠部分较多,但样本重叠部分较少。
● 两个数据集的样本重叠部分较多,但特征重叠部分较少。
● 两个数据集的样本和特征重叠部分都比较少。
数据拥有方的特征和样本可能并不相同。我们根据特征和样本中各方之间的数据分配方式,将联邦学习分为横向联邦学习、纵向联邦学习和联邦迁移学习。图2-1-1显示了针对两方场景的各种联邦学习框架。
1.横向联邦学习
在数据集的特征重叠部分较多但样本重叠部分较少的情况下,把数据集看成按横向进行划分,取出双方特征相同而样本不完全相同的那部分数据,进行横向联邦学习或基于样本联合的联邦学习。例如,两个不同的银行面对的用户由于受到地域等一系列因素影响,交集非常小。又如,2017年谷歌提出了用于Android手机模型更新的横向联邦学习解决方案。在该场景中,使用Android手机的单个用户可以在本地更新模型参数,并将参数上传到Android云,从而与其他数据拥有方一起训练模型,共享模型训练成果。
2.纵向联邦学习
在数据集的样本重叠部分较多但特征重叠部分较少的情况下,把数据集看成按纵向进行划分,取出双方样本相同而特征不完全相同的那部分数据,进行纵向联邦学习或基于特征联合的联邦学习。例如,有两个业务内容不同的机构,一个是银行,另一个是电子商务公司。它们的用户交集较大,但银行记录的是用户的财务信息与信贷表现,而电子商务公司则拥有用户的浏览信息和购买情况,因此特征交集较小。纵向联邦学习就是将不同的特征在保护用户隐私的状态下,进行联合学习以增强模型能力的联邦学习。目前以逻辑回归为代表的线性模型、树形结构模型和神经网络模型等机器学习模型,通过不同的技术路线,都已经有了纵向联邦学习场景下的实现方案。
图2-1-1 联邦学习按数据分布形式的三种分类
3.联邦迁移学习
联邦迁移学习适用于两个数据集不仅在样本上而且在特征上都不太相同的情况。假设有两个机构,一个是位于中国的银行,另一个是位于美国的电子商务公司。由于地理位置的限制,两个机构的用户群体之间的交集很小。另外,由于业务不同,双方的特征只有一小部分重叠。在这种情况下,可以应用迁移学习技术为联邦之下的整个样本和特征提供解决方案。这实际上是在使用有限的公共样本集,学习两方数据集共有特征上的共同表示,然后将其应用于仅具有一方特征的样本上,进行标签预测。联邦迁移学习是现有联邦学习系统的重要扩展,因为它可以解决的问题超出了现有的联邦学习算法的范围。