安全联邦学习-工作流FL
一、什么是安全联邦学习-工作流模式
功能介绍:通过工作流的模式,在原始数据不出域的前提下,通过交换各个参与方的算法训练的中间结果梯度、参数信息,或完全在密文条件下进行计算,从而发挥参与多方数据样本更丰富、更全面的优势,得出更优模型。
安全联邦学习,分为横向安全联邦学习、纵向安全联邦学习。其中,纵向安全联邦学习,联合多个参与者的共同样本的不同数据特征进行安全联邦学习,即各个参与者的训练数据是纵向划分的。横向安全联邦学习,联合多个参与者的具有相同特征的多行样本进行安全联邦学习,即各个参与者的训练数据是横向划分的。
二、哪些场景适合用安全联邦学习?
适用场景:纵向安全联邦学习,适用于参与者训练样本ID重叠较多,而数据特征重叠较少的情况,例如某银行和某电商平台,分别拥有一部分客户数据,拥有的客户特征不一样,银行拥有客户的金融信用数据,电商拥有客户的电商消费数据,期望联合两方数据训练精准营销模型,则适合使用纵向安全联邦学习。横向安全联邦学习,适用于参与者的数据特征重叠较多,而样本ID重叠较少的情况,例如两家银行,分别拥有一部分客户数据,拥有的客户特征相似,但各自数据偏少,期望联合两方数据训练共同训练评分卡模型,则适合使用横向安全联邦学习。
三、安全联邦学习已支持的能力
用途 | 算法分类 | 已支持算法 |
分类 | 决策树 | XGBoostWithDp GBDTWithDp |
逻辑回归 | LogisticRegressionWithHe | |
神经网络 | 神经网络MLP | |
回归 | 线性回归 | LinearRegressionWithHe |
神经网络 | 神经网络MLP |
四、如何进行安全联邦学习
以内置模板为例:
1、联邦数据输入:
收集和准备原始数据,包括数据输入和虚拟关联,使得用户能够在形式上以单机的方式使用联邦学习双方的数据。
note:所有的数据均保存在持有方本地,本身绝对保密。虚拟关联仅是在形式上模拟为同一份数据,以方便用户搭建顺利。
2、数据拆分
将数据拆分为训练集和测试集,用于验证模型的各项指标数据。
note:在模板中,选择了拆分比例80%,即80%数据用于训练(输出表1),20%数据用于测试(输出表2)。用户可自行调整需求。
3、训练侧特征工程
选择和提取有用的特征,包括特征选择、特征变换、特征抽取和特征组合等。其中,对于Category特征和Numeric特征,均有对应的处理方案,详见组件说明。特征工程的配置可输出,供预测和评估流程使用。
4、测试侧特征工程
选择和提取有用的特征,包括特征选择、特征变换、特征抽取和特征组合等。其中,对于Category特征和Numeric特征,均有对应的处理方案,详见组件说明。特征工程的配置由输入的配置文件确定,用户也可自行设定。
5、模型训练和预测
选择合适的算法和模型,训练模型并进行调参和优化。目前联邦学习模型可以选择XGBoost、Logistic Regression、DNN等。
6、模型评估
使用各种评估指标和技术对模型进行评估,用户可以自行使用交叉验证等方法,测试不同数据集的混淆矩阵、AUC、KS等各项指标。