导读:本文简短综述联邦计算领域的核心技术点,随着联邦计算在产业界的应用及普及,保护数据隐私与解决数据孤岛,二者可以兼得,为数字广告营销等领域提供了一个全新思路。

全文4761字,预计阅读时间12分钟。

一、导语

众所周知,数据是AI技术的燃料,更多高质量的数据意味着可以训练出更好性能的业务模型。随着IT移动化步伐地迈进,互联网数据被割裂为一个个孤岛,制约AI发展的一个瓶颈是保护用户数据隐私和打破不同主体之间数据孤岛的问题。随着移动设备性能的强化,4G/5G的兴起普及,在移动终端上进行模型训练变得可行。2016年,Google团队发布了一篇论文:Communication-Efficient Learning of Deep Networks from Decentralized Data。自此,产业界联邦学习(「Federal Learning」,Google中文命名为联盟学习,国内习惯称为联邦学习)的大幕开启。

△图片来__源:《Federated L__earning: 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营销业务,沉淀数据资产、激活数据资产,在保障数据隐私合规的情况下最大程度挖掘数据价值,实现用户、客户、媒体的三方共赢。

本期作者 | 王崇杰,百度商业平台研发部资深研发工程师,长期专注于互联网商业广告营销领域。关注大数据处理、分布式系统架构、中间件设计、网络数据安全等技术领域。

招聘信息

百度商业平台研发部主要负责百度商业产品的平台建设,包括广告投放、落地页托管、全域数据洞察等核心业务方向,致力于用平台化的技术服务让客户及生态伙伴持续成长,成为客户最为依赖的商业服务平台。

无论你是后端,前端 ,大数据还是算法,这里有若干职位在等你,欢迎投递简历,关注同名公众号百度Geek说,输入内推即可,百度商业平台研发部期待你的加入!

阅读原文
|联邦计算在百度观星盘的实践

---------- END ----------

百度Geek说

百度官方技术公众号上线啦!

技术干货 · 行业资讯 · 线上沙龙 · 行业大会

招聘信息 · 内推信息 · 技术书籍 · 百度周边

欢迎各位同学关注

联邦计算在百度观星盘的实践相关推荐

  1. 记录一次 用服务器下载文件,并上传到百度网盘的实践

    最近学会使用DepotDownloader下载旧版游戏,担心有一天steam不给下载了,所以就想他们都下载下来,然后保存到网盘上,然后分享出来. 我所下载的游戏叫<泰拉瑞亚>最新版有1.3 ...

  2. 百度网盘登陆科创板,真能值400亿吗?很有可能

    理论上,百度网盘自身可以形成一个"知识付费"的闭环.不过,鉴于知识付费行业本身还处在发展初期,最后究竟会演变为什么业态.什么收费模式,还很难说.我们只能说,百度网盘确实有做后端付费 ...

  3. 利用浏览器调试功能 计算 百度网盘 文件数量 V2

    最近需要统计百度网盘里文件的数量,百度网盘又没有提供这样的功能,因此之前自己写了段脚本进行查验,见<利用浏览器调试功能 计算 百度网盘>.之后发现每个目录最多文件数只有1000,因此研究了 ...

  4. 利用浏览器调试功能 计算 百度网盘 文件数量

    "百度网盘"程序做的比较烂,以百度的技术实力按说不应该如此.真正试了就知道真的不怎么样. 为了统计百度网盘的文件写了以下脚本,仅供参考: var root = "&quo ...

  5. 重磅----股票风险指标计算,附程序,百度网盘链接

    今天我们放假,回贵阳,准备实习,我也可以专心的去研究自己感兴趣的方向,我们计算股票指标包括beta,alpha,最大回撤,在险价值等,指标很多,我就不仔细介绍了,今天挺累的,我们直接看效果,弄成了图形 ...

  6. 新版百度网盘MD5 获取计算提取加密映射 方式

    新版百度网盘MD5 获取计算提取加密映射 方式: 对本地文件的md5做如下计算,即可对上后端返回的md5数据 public static String encMd5(String md5) {Stri ...

  7. 百度网盘就“用户激励计划”道歉;沈义人卸任 OPPO 全球营销总裁;Python 2.7.18 发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  8. 一个吊打百度网盘的开源神器,还是99年妹子开发的

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 来源丨开源最前线(ID:OpenSourceTop) 猿妹整编 百度网盘大家都很熟悉,大家都知道百度网盘如果不开会员 ...

  9. 一键导出百度网盘群文件

    你有没有遇到过朋友给你分享资源的场景,一般人都有过,绝大部分场景下,我们直接转存就好了,但是也有少数情况下我们发现处于诸多限制,比如自己网盘容量太低或者是别人分享的内容太多,导致我们没有办法一次保存下 ...

最新文章

  1. linux并发控制之原子操作
  2. 最近miRNA研究上取得的新进展论文汇总
  3. UDP对应的应用层协议之DHCP协议
  4. JAVA写同步栈_tomcat实现的同步队列和同步栈
  5. python基础查漏补缺1--算数、字符串与变量
  6. 在分布式环境中解决session共享问题
  7. Android boot.img system.img ramdisk.img的解释
  8. 实用的汉字拼音转换工具
  9. EDA技术与应用实验二(PowerShell实现)
  10. html做彩色方格,超级炫酷,美图秀秀制作超漂亮彩色格子字图文教程
  11. Fiddler+Android7.0+python+requests获取app评论内容《完美解决了代理后打开app没有网络的问题!!!》JustTrustMe+VirtualXposed工具的使用
  12. 微信小程序实现word,excell等文件下载
  13. 【算法分析】实验 1. 基于贪心的会议安排问题
  14. python动物重量排序详解
  15. TensorRT报错的一百种姿势 | 【❤️TensorRT抱错砖家❤️】
  16. Django 配置MySQL
  17. 2022国际数维杯C题思路
  18. Java Microbenchmark Harness (JMH)
  19. 七夕节有病毒入侵 慎对QQ好友送玫瑰(转)
  20. IOS ANE的坑爹之路一

热门文章

  1. I18N/L10N 是什么
  2. MySQL 经典赋值语句
  3. uniapp 微信小程序保存图片到系统相册(包括获取手机相册权限)即拿即用
  4. c语言中的countif函数,从头细说COUNTIF函数
  5. Android字母、数字版本、API级别对照表2022
  6. ladder network不完全汇总
  7. 基于云存储的电子书橱-小程序云开发
  8. shm 共享内存 android,C++下shm共享内存模块
  9. SolidWorks2020安装教程
  10. Android筑基——Activity的启动过程之同进程在一个Activity中启动另一个Activity(基于api21)