导读:本文简短综述联邦计算领域的核心技术点,随着联邦计算在产业界的应用及普及,保护数据隐私与解决数据孤岛,二者可以兼得,为数字广告营销等领域提供了一个全新思路。
一、导语
众所周知,数据是 AI 技术的燃料,更多高质量的数据意味着可以训练出更好性能的业务模型。随着 IT 移动化步伐地迈进,互联网数据被割裂为一个个孤岛,制约 AI 发展的一个瓶颈是保护用户数据隐私和打破不同主体之间数据孤岛的问题。随着移动设备性能的强化,4G/5G 的兴起普及,在移动终端上进行模型训练变得可行。2016 年,Google 团队发布了一篇论文:Communication-Efficient Learning of Deep Networks from Decentralized Data。自此,产业界联邦学习(「Federal Learning」,Google 中文命名为联盟学习,国内习惯称为联邦学习)的大幕开启。
△图片来源:《Federated Learning: Collaborative Machine Learning without Centralized Training Data》
在数百万不同的智能手机上部署联邦学习,其本质是移动模型,而非移动数据。为避免用户隐私泄露,联邦学习不需要在云端存储用户数据。智能手机下载当前版本的模型,通过学习本地数据来改进模型,并把模型改进增量加密发送到云端,与其他用户的更新即时整合为共享模型,所有的训练数据仍然在各终端用户的设备中,用户数据不会在云端保存。
在国际隐私数据条例(GDPR 等)趋严的形势下,以 Google 为代表的 ToC 业务(如输入法)开辟了一个全新的思路。国内,联邦学习在产业界延伸至 ToB 领域,解决 ToB AI 的困局:隐私保护与数据孤岛问题。比如风控、营销等涉及到大规模的用户数据交互,隐私保护价值更高。2019 年底,百度、微众、蚂蚁、富数、华控等 5 家公司,获得了信通院的安全计算证书,是当前安全计算资质中最具影响力的认证。
二、联邦计算核心技术
为联合打通数据孤岛,解决参与方的数据安全可信隐私保护问题,广义的联邦计算「Federated Computing」实现方案包括:以密码学为核心的 MPC 多方安全计算「Secure Multi-Party Computation」,以及硬件可信执行环境 TEE「Trusted Execution Environment」。
2.1 多方安全计算(MPC:Secure Multi-Party Computation)
多方安全计算 MPC 以密码学为理论基础,采用算法/程序逻辑层面保障计算的安全可信任的基本理念,其安全性是可经过数学公式推导验证的。MPC 不依赖于硬件等环境设施,即对各类异构的系统环境有兼容性,不依赖特定硬件。
2.1.1 混淆电路(Garbled Circuit)
混淆电路是一种密码学协议。图灵奖得主姚期智院士在 1982 提出著名的 Yao's Millionaires' Problem,并给出了基于混淆电路的解决方案。该问题是 Alex 和 Bob 在无可信第三方,且不告知对方财富值的情况下比谁更富有。
其原理为:所有可计算的函数问题都可转换为不同的电路,由加法电路、乘法电路、移位电路、选择电路等表示。而电路本质上由门(gate)组成,逻辑门包括与门、非门、或门、与非门等。混淆电路把这些门进行加密和打乱来掩盖信息。Alice 用密钥加密门的真值表并打乱后输出给 Bob。Bob 对真值表的每行进行解密,算法保障只有一行可解密成功,并提取结果。最后 Bob 将结果同步给 Alice。过程中,二者交换的都是随机数或密文,无隐私数据泄露,但从程序逻辑层面完成了所需业务的计算。
2.1.2 秘密分享(Secret Sharing)
秘密共享(也称为秘密分割)是指用于在一组参与者之间分发秘密的方法,每个参与者被分配一个秘密的份额。只有当足够数量的不同类型的份额组合在一起时,才能重建秘密,个人份额本身无意义。
在秘密分享中,最经典的算法是 Shamir’s Secret Sharing,它最基本的设计原理是:平面上 k 个点可以唯一确定一个 k−1 阶的多项式
如两个点可以唯一确定一条直线。我们把 a0 作为秘密 S。我们从曲线上任取 n 个点(i,f(i)),每个参与者分配一个点,作为一个密码的份额,则凑齐任意 k 个参与方则可还原出秘密 S。此处,可基于拉格朗日差值方法计算多项式,本文不做展开。
2.1.3 同态分享(HE:Homomorphic Encryption)
同态加密的概念早在 1978 年在银行应用背景下被提出,作者是 RSA 算法中的 R(Ron Rivest) 和 A(Leonard Adleman)以及 Michael L. Dertouzos。对于同态加密的概念引用同态加密大牛 Craig Genty 的定义:
「A way to delegate processing of your data, without giving a way access to it.」
即使用者可以在不接触原数据的情况下进行数据处理。其本质是:使用方直接处理密文,然后解密密文得到的明文结果与直接处理明文得到结果等价。精巧之处在于,数据的处理方并不知道数据的明文,却最终计算得到业务期望的结果,即数据提供方未泄露其原始数据,有效保护数据隐私。
同态加密的数学定义为:E(m1)*E(m2)=E(m1*m2) ∀ m1,m2∈M
其中,E 为加密算法,M 是所有信息的集合,*表示运算符。如果加密算法满足如上公式,则 E 在运算*上的功能符合同态加密性质。
根据支持的运算的数量及次数可对 HE 进行分类:当前部分同态加密(PHE)、层次同态加密(SWHE)在业界生产环境已有应用,全同态加密(FHE)效率较低,当前尚无法支撑大规模计算。
2.2 硬件可信执行技术环境(TEE:Trusted Execution Environment)
可信执行环境(TEE)是主处理器的安全区域。它保证内部加载的代码和数据在机密性和完整性方面受到保护。TEE 作为独立执行环境,可提供各种安全功能:如隔离执行,应用程序的完整性,以及其资产的机密性。其保障安全的核心机制是:指令集扩展, 旨在以硬件安全为强制性保障, 不依赖于固件和软件的安全状态。
△图片来源:Gidon Gershinsky《Trust Management in Intel SGX Enclaves》
Intel® Software Guard Extensions (Intel® SGX)保护选定的代码和数据不被泄露和修改。开发者可以把应用程序划分到 CPU 强化的 encalve 飞地中,即使在受攻击的平台环境(操作系统/虚拟机)中也能提高安全性。使用该应用层可信执行环境,开发者能够启用身份和记录隐私、安全浏览和数字管理保护(DRM)或者任何需要安全存储机密或者保护数据的高保障安全应用场景。
除了英特尔 SGX,TEE 方案还包括 ARM 的 TrustZone,AMD 点安全加密虚拟化 SEV 和 NVIDIA 的可信小内核 TLK 等。各厂商基于硬件的方案,其核心都是实现最小可能的攻击面:CPU 边界成为攻击面外围,所有的数据、内存、外围之外的 I/O 都是加密的。
2.3 MPC 与 TEE 横向对比
MPC 方案与 TEE 方案横向比对如下:
2.4 联邦学习分类
联邦学习定义为:在进行机器学习的过程中,各参与方可以借助其他方数据进行联合建模。各方无需共享数据资源,即数据不出本地的情况下,进行数据联合训练,建立共享的机器学习模型。联邦学习可以分为三类:
-
「横向联邦学习」横向联邦学习(基于用户纬度切分)适用于两个数据集共享相同的特征空间但样本 ID 空间不同的情况。使用双方用户特征相同但用户不完全相同的数据进行训练。
-
「纵向联邦学习」纵向联邦学习(基于特征纬度切分)适用于两个数据集共享相同的样本 ID 空间但特征空间不同的情况。取出双方用户相同而用户特征不完全相同的那部分数据进行训练。
-
「联邦迁移学习」联邦迁移学习适用于两个数据集不仅在样本上而且在特征空间上都不同的情况。该场景下,不对数据进行切分,而可以利用迁移学习来克服数据或者标签不足的情况。
三、百度联邦计算业务
3.1 百度联邦计算特色
如百度安全计算白皮书所述,百度在数据安全和隐私保护领域产品的主要创新点包括:
-
「多种技术有机融合,覆盖数据安全和隐私保护的多种场景」
平台将 MPC、TEE、DP 等领先技术进行有机融合,供一整套面向多方安全计算的数据安全解决方案,在保护企业数据资产的基础上,有效防范用户隐私泄露风险,覆盖数据安全和隐私保护的多种场景。
-
「独特多方安全计算 DSL 语言,安全可控“电子合约”运行机制」
平台为多方安全计算场景设计专用的 DSL 语言,来描述多方数据联合计算全过程的复杂逻辑,形成多方安全计算“电子合约”,经各参与方确认后才能执行,参与方明确知晓数据使用方式,结合多方安全方案实现数据安全可控。
-
「多方安全计算技术深度优化,支持海量数据的多方安全计算」
平台为适应百度大规模数据安全计算需求,经过大规模工程化改造和多种性能优化,支持百亿级数据多方安全计算,轻松胜任各种多方安全计算场景,为多方安全计算从学术界走向工业界供技术保障。
3.2 百度联邦计算典型业务
联邦计算模式可应用广告营销领域,其中人群定向是重要的一个分支。联邦精准人群是指基于双方的全量大数据,进行 ID 的隐私数据求交(PSI:Private Set Intersection),基于客户一方的精准数据,在媒体侧进行广告投放。并且实现客户数据的「可用不可见,相逢不相识」的效果,有效保护了客户数据的隐私性。
外部合作伙伴,如广告主将数据保存在自己的服务器或云存储中,百度数据保存在百度域下。BFC「Baidu Federated Computing」主节点协调各方计算节点,不接触各方本地数据。在保证数据不出域的前提下,各计算节点间进行参数等加密信息的交互,最终完成业务模型的计算。营销实践案例表明联邦精准人群模式基于客户一方的大数据可大幅提升客户的 ROI。
为了解决联合营销场景中的数据安全合规问题,基于百度安全、联手数据流通服务使用“联邦计算”技术,为观星盘开辟了“联合营销绿色通道”。在保证各方敏感数据不出域的前提下,基于“可用不可见”的安全计算,将百度观星盘数据和广告客户数据安全打通,以实现联合精准营销。
业务后续展望,基于联邦计算/联邦学习可在广告营销全链路(投前洞察、投中触达、投后分析)赋能 AI 营销业务,沉淀数据资产、激活数据资产,在保障数据隐私合规的情况下最大程度挖掘数据价值,实现用户、客户、媒体的三方共赢。
本期作者 | 王崇杰,百度商业平台研发部资深研发工程师,长期专注于互联网商业广告营销领域。关注大数据处理、分布式系统架构、中间件设计、网络数据安全等技术领域。
文章看完,还不过瘾?
更多精彩内容欢迎关注百度开发者中心公众号