相关概念

数据孤岛 指 数据像孤岛一样分散存储在多个组织、
群体之间,且相互闭塞,难以用常规手段打通。
联合计算 是一种在原始数据不出本地的条件下进行多方联合计算
的新型数据共享计算范式。逐渐成为破除数据孤岛困境的关键手段。
数据联邦联邦数据库的安全多方数据查询操作
联邦学习在数据联邦基础上,进一步支持更复杂的机器学习算法从而服务于上层人工智能应用

数据联邦

可以根据数据库系统具体管理的数据类型,将数据联邦分为关系型数据联邦和非关系型(特种数据类型)数据联邦,下面对两类数据联邦分别进行介绍。

关系型数据联邦

是将多个管理关系型数据的数据库系统作为一个整体的查询引擎提供查询操作。在零售、保险、金融等行业关系型数据占比80%。因此关系型数据联邦系统的设计与开发也是数据联邦方向的研究热点。目前,学者们已经从系统层和算法层面对数据联邦系统进行了优化。

系统层面优化

数据库名称 优点 缺点
SMCQL 优化查询器,在各方本地数据库明文计算 仅支持底层数据库均为PostgreSQL系统的联邦查询;性能较差,实际部署差距较大
Conclave 支持三个三个参与方的查询引擎进行数据联邦,同时在性能上相比 SMCQL 有1~2 个数量级的提升。
Senate 考虑了安全级别更高的恶意攻击模型 与半诚实攻击模型(如SMCQL 系统和 Concalve 系统)下的数据联邦系统相比,仍有一定的性能差距

算法层面优化

针对联邦连接聚合查询进行了效率优化,将计算复杂度降至与输入规模呈线性相关,查询效率比基于姚氏电路的简单实现提升了4 个数量级以上

非关系型数据联邦

目前针对非关系型数据联邦的研究相对较少,其中的典型代表是时空数据联邦系统——虎符

联邦学习

联邦学习可以分为跨设备联邦学习和跨机构联邦学习。这两类学习场景各自的特点如下。
首先,跨设备联邦学习参与方数量庞大,最多可达上亿,且参与方都是算力较弱的边缘终端设备,而跨机构联邦学习通常只有几个或几十个参与方,参与方拥有的算力较强,因此隐私保护的计算与通信开销更容易成为跨设备场景的瓶颈。相对地,跨机构场景下每一方的数据结构更加复杂,可能包含多个关系数据库表,因此设计并优化专用的联邦学习算法是其面临的挑战之一。
除此之外,数据异质、激励机制等问题也是联邦学习面临的重要挑战。

跨设备联邦学习

基础算法为“联邦平均”(Federated Averaging,FedAvg)的算法,只是简单地基于分布式机器学习的框架,使多个参与方只把更新的模型梯度上传给服务器,由服务器进行求均值操作从而更新模型。

但是已证明机器学习模型梯度可以被用来恢复原始数据,而且最终训练所得的模型仍可能包含隐私信息。所以需要从两方面来保证隐私信息。

首先,在模型训练过程中需要对交互数据进行隐私保护,对此以谷歌为首的研究团队提出了一种名为“安全聚合”(secure aggregation)的方法。它由一种用于对多个数安全求和的安全多方计算协议改进而成,该协议让多个参与方两两之间生成一对正负号相反的随机数,并让每方用于求和的原始
数加上与其他所有方生成的随机数作为一种“伪装”(masking),从而保护原始数 ;由于所有随机数加和为零,因此所有伪装后的原始数加和与伪装前的相等,这样既保证了过程的安全性也保证了结果的正确性。

安全聚合算法利用上述协议对模型训练过程中各方的梯度进行安全的求和操作,同时对协议的计算效率进行了改进,并针对参与方有可能掉线的跨设备场景进行了专门的优化。与未加任何隐私保护手段相比,安全聚合算法只带来很少的额外计算与通信开销,因此得以在大规模的跨设备联邦学习
场景中应用。安全聚合算法的不足之处在于其仅支持求和操作,不过对现在机器学习中最常用的梯度下降算法而言,其对梯度的安全求和的支持已经足
够,然而有些情况下可能需要求和以外的操作,如树模型中的求最大值操作、最近邻分类模型中的求距离操作等,此时安全聚合可能不再适用,需要新的算法支持。

针对训练模型泄露隐私的风险,还需要对模型发布进行隐私保护。一种简单高效的方法是基于差分隐私进行保护。差分隐私的原始目标是使在多条数据上的查询结果对任意一条数据都不敏感,而实现该目标的方法则是在查询结
果上添加噪声。与之对应地,在联邦学习过程中可以通过对模型添加噪声来使最终发布的模型结果对任意原始数据都不敏感。但是模型训练不同于简单查询,是多轮迭代的过程,因此有工作证明了在每一轮迭代中对梯度添加满足高斯分布的噪声也可满足差分隐私的条件 。上述工作被进一步应用到联邦学习中 ,用于训练满足差分隐私的语言模型,并在谷歌输入法的下一单词预测任务中也得到了应用

跨机构联邦学习

纵向联邦学习 [3] 是跨机构联邦学习中一种典型且独有的场景。在纵向联邦学习中,每个参与方都拥有一个关系型数据表,这些表的属性不同,而表
的记录则有较多重合部分(例如每条记录代表一个用户,而多方之间有较多重合的用户)。此时可将某一方的某种属性视为标签,其他所有属性视为特
征来进行机器学习。

比纵向联邦学习更通用、更接近真实情况的场景是直接在多方的关系数据库上进行联邦学习。而目前仅是安全多方的查询操作,在数据联邦上尚未得到完美解决,学习的难度更是可想而知。一种可能的解决方法是先通过安全多方的连接查询作为预处理得到学习所需的对齐后的数据后再进行隐私保护下的学习 。然而在真实的大规模多表场景下,这类方法的性能能否满足真实应用的需求仍是未知数。

总之,目前跨机构联邦学习由于其每一方数据结构更复杂,而诞生了如纵向联邦学习等新场景,需要设计专用的隐私保护协议来支持模型训练,因此在算法通用性问题上面临着巨大的挑战。同时,这些专用协议目前支持的参与方数量都较少,在具有更多参与方的情况下,计算效率也会是瓶颈。

总结

从 20 世纪 80 年代对联邦数据库的研究开始,破除数据孤岛、联合利用多方数据一直是产学界关注的问题。近年来,随着保护个人隐私的法律法规
不断出台并且日益完善,隐私保护成为了热点话题。因此,如何保护数据隐私安全也成为了近年来联邦计算的核心挑战。目前,无论是学术界还是产界,都在积极地设计与开发能够落地应用的数据联邦系统和联邦学习系统。
虽然在新一轮联邦计算的研究中,无论是数据联邦系统还是联邦学习系统,均已经在效率和安全方面进行了优化,但是仍存在安全尺度杂、执行效率低、研究门槛高等多方面的挑战。

【学习笔记】联邦计算相关推荐

  1. Maple学习笔记——数学计算与数据处理

    Maple学习笔记--数学计算与数据处理 数据计算 多项式相关: 求解方程.不等式 矩阵计算.线性代数: 微积分 多变量和向量微积分 优化 概率与统计 数据处理 导入数据 数据计算 多项式相关: 1. ...

  2. Google Earth Engine(GEE)最基础代码学习笔记6——计算坡度坡向

    1.Google Earth Engine 计算坡度 计算坡度坡向使用ee.Terrain包计算. // 加载 SRTM 影像. var srtm = ee.Image('CGIAR/SRTM90_V ...

  3. python库学习笔记——分组计算利器:pandas中的groupby技术

    最近处理数据需要分组计算,又用到了groupby函数,温故而知新. 分组运算的第一阶段,pandas 对象(无论是 Series.DataFrame 还是其他的)中的数据会根据你所提供的一个或多个键被 ...

  4. python数学计算_初学者Python学习笔记--数学计算

    四则运算 加减乘除 1 + 2 3 10 - 6 4 5 * 5 25 20 / 5 4.0 3 ** 3 27 取整计算 13//3 4 取余数计算 13%3 1 计算顺序,括号>乘除> ...

  5. 高数学习笔记:计算方向导数

    文章目录 一.方向导数定义 (一)二元函数的方向导数 (二)三元函数的方向导数 二.方向导数计算实例 一.方向导数定义 在函数定义域的内点,对某一方向求导得到的导数.一般为二元函数和三元函数的方向导数 ...

  6. 云计算学习笔记002---云计算的理解及介绍,google云计算平台实现原理

    什么是云计算: l  说的明白一点: •    云计算其实就更大限度的发挥网络的资源. •    那为什么叫云,为什么不到互联网计算?Cloud l 大多数计算的网络拓扑图都用一块"云&qu ...

  7. 学习笔记:计算excel中的平均值并去除0值

    1.在excel中首先选中要计算的部分利用平均计算的公式来计算 2.将计算部分修改为 =AVERAGE(IF(D2:D659<>0,D2:D659)) 3.同时按"Ctrl+Sh ...

  8. 学习笔记存款利息计算

    /*习题存款利息的计算.有1000元,想存5年,可按以下5种办法存: (1)一次存5年期. (2)先存2年期,到期后将本息再存3年期. (3)先存3年期,到期后将本息再存2年期. (4)存1年期,到期 ...

  9. Java学习笔记:计算星座

    需求 1.让用户选择它的公历生日 2.计算用户的星座 白羊座: 3月21日-4月19日 (Aries) 金牛座: 4月20日-5月20日 (Taurus) 双子座: 5月21日-6月21日 (Gemi ...

  10. Java8学习笔记:计算两个时间的间隔及相隔天数、秒数等

    环境 Java11 IDEA:2020.1 前言 如果大家用过Java7的时间,应该都知道,要计算startTime和endTime时间间隔是要写很多代码的: Java8开始对时间类进行过重构优化,并 ...

最新文章

  1. Sword STL迭代器prev,next相关函数
  2. PYTHON 高效编程
  3. 升降压斩波电路matlab,升降压直流斩波电路及matlab仿真.doc
  4. 桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?
  5. BugkuCTF-MISC题红绿灯
  6. php有关卡的消消乐源码,查看“宝可消消乐/活动关卡/得分挑战关卡/超梦”的源代码...
  7. UNIX网络编程第三版
  8. PDFDOC365工具箱
  9. 初中计算机会考知识点大全,初中信息技术会考知识点复习提纲
  10. JavaWeb学习笔记4
  11. 计算机学院品牌活动总结,计算机学院研究生会工作总结
  12. 【Git】版本控制管理(第二版) 前言 第一章 第二章
  13. 干货 | 这些年,我用的绘图工具大合集
  14. 数据库设计讲解和案例分析 | mysql 入门
  15. aix系统挂载nas
  16. 中国丙泊酚行业竞争与投资前景研究报告(2021版)
  17. 生产物流系统建模与仿真-基于WITNESS建模视频教程
  18. Spring报错:Exception encountered during context initialization - cancelling refresh attempt: org.sprin
  19. FTP工具,3款FTP工具推荐
  20. 非华为电脑管家连接平板--无法连接问题解决方案之一

热门文章

  1. React实战:留言板
  2. python读取dat数据_dat文件读写_c语言读写dat文件_c语言读dat文件 - 云+社区 - 腾讯云...
  3. Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信
  4. 龙芯3a5000相当于英特尔什么水平
  5. [限免]可爱怪兽来了~ 培养孩子辨识数字的「Cutie Mini Monsters」! ...
  6. 台式计算机网卡型号怎么查找,台式机无线网卡如何查看型号
  7. 第三回 利器,我的DHCP
  8. 提供了一些工具类以及自定义 View,用于日常的 Android 快速开发
  9. Linux 开发学习
  10. 阵列信号DOA估计系列(二).导向矢量与空间FFT(附代码)