“联邦学习”,数据不动价值释放
“你不属于我,我不属于你,但我们能一起创造属于彼此的价值。”
“你不属于我,我不属于你,但我们能一起创造属于彼此的价值。”
你输入了A,智能手机自动联想出了B、C、D,对于构建了Android王国,并占据了大规模市场份额的Google,这本来是件信手拈来的小事儿。但是,随着2018年欧洲《通用数据保护条例》GDPR的正式推出,Android移动设备被法国的数据保护监督机构国家信息与自由委员会(CNIL)开出高额罚单,CNIL认为自从用户创建账户后,Google就可以从其提供的Gmail、YouTube、Google搜索等20多项服务中收集用户的个人数据,这些内容的使用并不符合Google在《隐私政策和使用条款》中关于内容告知的“明确性和易于理解性”要求。CNIL认定Google既违反了透明原则和信息提供义务,也违反了为个性化广告处理提供法律依据的义务。这就意味着,Google不能再像以前那样方便的从Android移动设备中获取用户信息了。
数据不能移动,必须留在用户设备中,但是数据又必须一起分析才能让输入法等服务更加智能,联邦学习(Federated Learning)就是在这样的需求背景下被提出来并且加以应用的。2019年,Google发布论文“Towards Federated Learning at Scale: System Design”,介绍了联邦学习的设计理念、现存挑战和解决方案,描述了基于TensorFlow构建的全球第一个产品级、大规模、可扩展的移动端联邦学习系统(Federated Learning System),公布了Google是如何在海量Android移动设备上各自运行联邦平均算法,而不是像传统方式那样通过数据传输进行集中建模运算的。
1
假定部分用户的移动终端上具有模型训练相关的数据,用来解决我们需要解决的问题。比如Google需要让Android设备的虚拟键盘Gboard能够根据用户曾经输入和使用的词汇,智能推荐相关的单词和表情;比如微众银行需要综合运用分散在不同机构的税务、司法、交易等数据,为缺乏人行征信信息的长尾客户提供是否批贷放贷的风控决策依据。
这些移动终端会在晚上用户停止使用设备,并且充着电、连着WIFI网络的时候,举手发起申请,要求参与模型训练。
这时,部分移动设备会被选中,用来接收训练模型。按照Google介绍的,“只需要几分钟就可以在移动终端上使用本地用户数据完成训练,并且把训练结果,而不是用户数据,传回服务器”。
不止是在本地训练,后期对训练结果进行持续迭代地测试也同样放在本地进行,由于每个移动终端都参与其中,测试和迭代的效率很高,模型训练结果的质量也会在短时间内得到很大改善。
2
正如前面提到的,联邦学习的模型训练是在移动终端上分别进行的,这就要求保证所有参与训练的移动终端都必须从模型所有者那里获得最新版本的模型。只有全部参与的移动终端都基于同样的最新版本的模型对本地数据进行训练,才能保证反馈回去的模型更新是有效的。同样,模型更新在聚合后也必须同步给下一轮的模型训练参与终端。
在对联邦学习的攻击试验中,已经证明从移动终端的模型更新中,攻击者是可以推算出对应的原始数据,进而获取到终端用户隐私信息的。为了提高安全保护能力,Google使用了TensorFlow加密机器学习框架TF Encrypted技术,增加了一个安全聚合器。让移动终端将训练后的模型更新不再直接反馈给模型所有者,而是先反馈给安全聚合器,由安全聚合器集成所有的更新,再整体发送给模型所有者。
3
目前在联邦学习领域,Google主推的是TensorFlow Federated(TFF)开源框架,但缺少安全加密算子的开放实现。微众银行主推的是Federated AI Technology Enabler(FATE)开源框架,主要使用的加密技术是同态加密。其中,同态加密算法经历了部分同态加密(Partial HE, PHE)、层次同态加密(Leveled HE, LHE)和全同态加密(Fully HE, FHE)三个技术演进阶段。
1.部分同态加密(Partial HE, PHE)
部分同态加密技术起步最早,在1976年提出,优点是容易实现,缺点是仅支持加法或乘法,其中的典型代表是RSA乘法同态加密算法和Paillier加法同态加密算法。在横向联邦学习中,多方可以使用这种部分同态加密算法(PHE)对中间结果或模型进行加密,避免直接发送明文的风险。
下面,以RSA非对称加密算法为例解释一下工作原理。首先由接收方生成一对公钥和私钥,并将公钥传输给发送方。发送方使用收到的公钥对数据进行加密后,再传输给接收方,最后接收方再用私钥对收到的加密数据进行解密。RSA算法具体的数学计算原理是欧拉函数和费马小定理,第一步随机选择两个质数P和Q,计算P和Q的乘积并转换成二进制数N。由于RSA算法的安全性取决于大整数分解的难度,也就是说密钥越长越难破解,所以N希望越大越好,目前可以支持最大的N是4096位的。第二步求出N的欧拉函数值M,即M=(P-1)*(Q-1)。第三步找一个与M互质,并且比M小的整数E。第四步计算出模逆元整数D,使得D和E的乘积除以M的余数为1。通过以上四步,就得出了公钥E和私钥D。在加密过程中,通过计算明文X的E(公钥)次方,再除以N,得到的余数Y就是加密后的密文。在解密过程中,通过计算密文Y的D(私钥)次方,再除以N,得到的余数X就是解密后的明文。
2.层次同态加密(Leveled HE, LHE)
层次同态加密技术主要是为了解决能够同时支持加法和乘法的问题,但缺点是计算次数支持受限,其中的典型代表是BGN加密算法,它能够支持做一次乘法和一次加法,是部分同态加密的升级方案。
3.全同态加密(Fully HE, FHE)
全同态加密技术能够支持对密文进行无限次、任意类型的计算,不再局限只做一次加法和乘法。但是目前效率还很低,无法真正应用到大规模的计算中去。不过,算法效率正在持续提高,最近国内一个理想的测试实验数据显示,40万样本的数据规模,200个特征数,需要1000多分钟来训练一个逻辑回归模型。未来,随着算法效率越来越高,层次同态加密(LHE)和全同态加密(FHE)会在纵向联邦学习、联邦迁移学习领域得到更多的应用。
4
联邦学习主要包含横向联邦学习、纵向联邦学习和联邦迁移学习三种类型。
1.横向联邦学习
横向联邦学习的经典案例是前面提到的Google使用不同移动终端中的数据作为样本,由于每个终端的数据都有相同的特征空间,即虚拟键盘Gboard应用相关的操作行为数据,因此可以形成横向整体学习,共同训练模型。
2.纵向联邦学习
纵向联邦学习的经典案例是微众银行联合税务部门数据,增强小微信贷风控模型的案例。由于微众银行和税务部门会给一部分相同的客户提供不同的服务,因此就能以这些客户的纳税人识别号作为桥梁,将发票数据和银行原有客户信息联合起来,拓展数据维度,完善授信模型,从而实现为更多的小微企业提供信贷,解决了传统小微企业机构样本数据量不足、好坏样本区分度不够、样本分布偏离正态分布等问题。
目前,微众银行已经联合平安科技、招商金融科技、腾讯研究院、电子商务与电子支付国家工程实验室、鹏城实验室、云计算与大数据研究所共同倡导联邦学习,并在今年4月联合发布了《联邦学习白皮书v2.0》。
3.联邦迁移学习
联邦迁移学习的经典案例是第四范式利用小额贷款数据训练出来的模型,迁移到大额贷款,学习形成大额贷款的营销模型或风控模型。联邦迁移学习使用的数据无论从用户维度看,还是从特征空间维度看,重叠度都很低。联邦迁移学习主要依托机器学习中的迁移学习算法,对分散的小规模样本数据进行联合建模,建立业务及AI模型闭环,并持续迭代优化。但是目前由于迁移学习算法和全同态加密算法还没有达到一定的技术成熟度,联邦迁移学习仍然处于探索应用阶段。
参考文献:
Fair Resource Allocation in Federated Learning
https://arxiv.org/pdf/1905.10497v1.pdf
Federated Learning with Matched Averaging
https://arxiv.org/abs/2002.06440
Communication-Efficient Learning of Deep Networks from Decentralized Data
https://arxiv.org/abs/1602.05629
Advances and Open Problems in Federated Learning
https://arxiv.org/pdf/1912.04977.pdf
作者简介:银行科技金融领域多年从业人员。具有信息安全规划、数据安全管理、技术创新咨询、基础设施架构设计等领域工作经验,现任职于某股份制银行信息科技部。关注金融科技、信息安全、互联网金融等相关知识领域。