随着数字化经济时代的到来,数据作为生产要素其价值愈发明显,越来越多的企业或组织需要与产业链上下游业务伙伴在数据流通和交易领域进行深度合作,只有通过各方数据协同计算,才能更好地释放数据价值。
但用户对隐私日益重视,政策法规趋向严格,数据协作和隐私保护这一矛盾也日益严重,如何用技术手段来解决这一难题呢? 在联邦学习的探索中可以帮你找到答案。本文主要内容如下:
1. 隐私计算产生背景:数据价值和隐私
2. 隐私计算技术
安全多方计算
可信执行环境
联邦学习
3. 联邦学习的拓展
分布式机器学习
联邦学习和传统分布式系统的差异
计算挑战
联邦学习的拓展与安全性
实际案例讲解
1. 数据价值和隐私
为什么需要隐私计算呢?首先,数据的产生过程是分散的,数据具有天然的割裂性。不同类型的公司提供不同的业务和服务,产生的数据类型也是不同的,例如社交公司产生用户大量的社交数据,电商产生的是用户的消费数据。但是在计算分析过程中,我们需要以“人”为单位,多维度、全面理解一个人才能进行高效的智能化的推荐。
其次,不同机构有不同的覆盖范围,他们分别只能收集到一部分人群的数据。现阶段,智能化的进程仍然需要依赖数据,可数据孤岛的存在成为人工智能发展的一大壁垒,极大限制了企业可利用的数据量。
除此之外,在数据的实际应用中,企业也有保护其核心高价值数据的需求,通过隐私计算和联邦学习实现数据的所有权和使用权分离是一种有效的解决方式。
2. 隐私计算技术
由于企业和机构对数据自身价值的保护以及对用户隐私授权的保护,数据被储存在不同地方,像一个个孤岛难以被有效的连接互动。传统的商业协议无法有效保护数据的安全,原始数据一旦出库,就会面临完全失控的风险。
典型的反面案例就是脸书的剑桥门事件。双方按照协议:Facebook 将千万级别的用户数据转交给剑桥分析公司,用于学术研究。但原始数据一经出库后就完全失控,被用于学术之外的用途,导致 Facebook 面临的巨额罚金。
我们需要从技术层面提供更加安全的解决方案,用来保证数据流通协作过程中达到数据使用权的细分。隐私计算应运而生,它是数据科学与工程、密码学、分布式计算与存储的综合工程,包括多方安全计算、可信硬件、联邦学习等多项技术。
安全多方计算
讲到多方安全计算(MPC),就会提到姚氏百万富翁问题:有两个很有钱的富翁,他们想知道谁更有钱,他们又都不想让除己以外的任何人知道自己实际有多少钱(即不信任任何第三方)。这是一个典型的两方安全计算案例,需要在不分享原始数值的情况下,得出想要的结论。其中相关的技术包括:秘密分享,模糊传输,同态加密,混淆电路。
MPC技术的优点:单次随机加密,加密数据无法重复使用;?加密数据基础上直接进行运算,原始数据不出库/不能被还原;?每次计算要所有方共同协调:在计算前就要确定参与方。
可信执行环境
可信执行环境(TEE)也是一种解决方案:将计算运行在一个独立的环境中,而且与操作系统并行运行。在CPU 上确保 TEE 中代码和数据的机密性和完整性都得到保护,通过同时使用硬件和软件来保护数据和代码,故而TEE比操作系统更加安全。
市面上常见的解决方案有 Intel 的 SGX,ARM 的 TrustZone,服务器或者 PC 上的解决方案主要是 Intel 的 SGX;而 arm 的 trustzone 主要用在手机 CPU 上,如手机里面的指纹识别,人脸识别过程的数据安全保护。
可信执行环境依赖芯片隔离机制,在隔离区内,数据被解密成明文直接计算,整体效率会比较高。但是由于计算还是在明文层面进行,仍然会带来对应的安全困扰,比如会受硬件漏洞影响;而且更新需要硬件升级,无法快速迭代。
联邦学习
联邦学习(Federated Learning)是另一种解决方案,也是我们今天重点要讲述的方案。
传统联邦学习
联邦学习最早由谷歌提出,用于解决安卓手机终端用户在本地更新模型的问题。早期联邦学习可以在保证数据隐私安全及合法合规的基础上,通过本地存储数据和模型计算由边缘设备完成,实现共同建模,提升模型的效果。
联邦学习能解决问题和适用场景:? 多方数据补充,用在样品数量不够充足,数据维度不够丰富的场景;? 保护数据隐私/核心价值,整个学习训练过程,没有传输任何原始数据,用来保护数据隐私安全。
接下来我们针对联邦学习,进行系统性的讨论,包括起源,雏形,发展,应用等。
3. 联邦学习的拓展
分布式机器学习
严格意义上说,联邦学习其实并不是一个全新的概念,而是基于分布式机器学习发展而来。分布式机器学习,又叫Distributed MachineLearning,是大数据背景下的产物,也是当前机器学习最热门的研究领域之一。
在大数据时代,数据发生爆炸式增长,大数据具有五大特征:大数据量(Volume)、多类型(VarieG ty)、低价值密度(Value)、高时效(Velocity)和数据在线(OnG line),大规模训练数据的产生为模型的训练提供了必要条件,同时也带来训练的挑战。
传统的机器学习注重在单机中处理数据的速度,但庞大的数据存储和计算仅在单机上是远远做不到的,而且硬件支持的有限性使得在单机上做大数据处理时显得十分吃力,例如: 数量大、计算复杂度高,单机训练时长远超过可接受的范围,不实用;存储容量和内存需求增加,单机无法满足需求,难以落地。
将模型计算分布式地部署到多台、多类型机器上进行同时计算,成为必要的解决方式。正如我们上面提到的,将模型计算分布式地部署到多台、多类型机器上进行同时计算是解决大数据运算的必须条件。
图片引用自:《分布式机器学习:算法、理论与实践》