联邦学习 - 基础知识+白皮书+杨强教授讲座总结+同态加密+ 差分隐私

兴起缘由

联邦学习的出处是金融机构的痛点,尤为是像“微众银行”这样的互联网银行。一个实 用的例子是检测多方借贷。这在银行业,尤为是互联网金融一直是很头疼的一个问题。多方 借贷是指某不良用户在一个金融机构借贷后还钱给另外一个借贷机构,这种非法行为会让整个 金融系统崩溃。要发现这样的用户,传统的作法是金融机构去某中心数据库查询用户信息, 而各个机构必须上传他们全部用户,但这样作等于暴露金融机构的全部重要用户隐私和数据 安全,这在 GDPR 下就不被容许。 在联邦学习的条件下,没有必要创建一个中心数据库,而 任何参与联邦学习的金融机构能够利用联邦机制向联邦内的其余机构发出新用户的查询,其余机构在不知道这个用户具体信息的前提下,回答在本地借贷的提问。这样作既能保护已有 用户在各个金融机构的隐私和数据完整性,同时也能完成查询多头借贷的这个重要问题。git

概念

联邦机器学习又名联邦学习,联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在知足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模github

分类

针对不一样数据集,联邦学习分为横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)与联邦迁移学习(Federated Transfer Learning,FmL)
在这里插入图片描述web

横向联邦学习

横向联邦学习在两个数据集的用户特征重叠较多,而用户重叠较少的状况下,咱们把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不彻底相同的那部分数据进行训练。这种方法叫作横向联邦学习。好比有两家不一样地区的银行,它们的用户群体分别来自各自所在的地区,相互的交集很小。可是,它们的业务很类似,所以,记录的用户特征是相同的。此时,咱们就可使用横向联邦学习来构建联合模型。
谷歌在2016年提出了一个针对安卓手机模型更新的数据联合建模方案:在单个用户使用安卓手机时,不断在本地更新模型参数并将参数上传到安卓云上,从而使特征维度相同的各数据拥有方创建联合模型面试

纵向联邦学习

纵向联邦学习在两个数据集的用户重叠较多用户特征重叠较少的状况下,咱们把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不彻底相同的那部分数据进行训练。这种方法叫作纵向联邦学习。
好比有两个不一样的机构,一家是某地的银行,另外一家是同一个地方的电商。它们的用户群体颇有可能包含该地的大部分居民所以用户的交集较大。可是,因为银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,所以它们的用户特征交集较小。
纵向联邦学习就是将这些不一样特征在加密的状态下加以聚合,以加强模型能力。目前,逻辑回归模型、树形结构模型和神经网络模型等众多机器学习模型已经逐渐被证明可以创建在此联邦体系上。算法

联邦迁移学习

联邦迁移学习在两个数据集的用户与用户特征重叠都较少的状况下,咱们不对数据进行切分,而利用迁移学习来克服数据或标签不足的状况。这种方法叫作联邦迁移学习。
好比有两个不一样机构,一家是位于中国的银行,另外一家是位于美国的电商。因为受地域限制,这两家机构的用户群体交集很小。同时,因为机构类型的不一样,两者的数据特征也只有小部分重合。在这种状况下,要想进行有效的联邦学习,就必须引入迁移学习,来解决单边数据规模小和标签样本少的问题,从而提高模型的效果。
迁移学习是一种机器学习方法,就是把为任务 A 开发的模型做为初始点,从新使用在为任务 B 开发模型的过程当中。迁移学习是经过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,可是促进迁移学习的算法的开发是机器学习社区持续关注的话题。
迁移学习对人类来讲很常见,例如,咱们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴数据库

优点

  1. 数据隔离,数据不会泄露到外部,知足用户隐私保护和数据安全的需求;
  2. 可以保证模型质量无损,不会出现负迁移,保证联邦模型比割裂的独立模型效果好;
  3. 参与者地位对等,可以实现公平合做;
  4. 可以保证参与各方在保持独立性的状况下,进行信息与模型参数的加密交换,并同时得到成长

系统架构

在讨论了联邦学习的定义与分类以后,咱们以纵向联邦学习为例深刻介绍一下联邦学习 系统的构架,从而理解其工做的流程与细节。
咱们以包含两个数据拥有方(即企业 A 和 B)的场景为例来介绍联邦学习的系统构架, 该构架可扩展至包含多个数据拥有方的场景。假设企业 A 和 B 想联合训练一个机器学习模 型,它们的业务系统分别拥有各自用户的相关数据。此外,企业 B 还拥有模型须要预测的标签数据。出于数据隐私和安全考虑,A 和 B 没法直接进行数据交换。此时,可以使用联邦学习系统创建模型,系统构架由两部分构成。在这里插入图片描述
第一部分:加密样本对齐
因为两家企业的用户群体并不是彻底重合,系统利用基于加密 的用户样本对齐技术,在 A 和 B 不公开各自数据的前提下确认双方的共有用户,而且不暴露 不互相重叠的用户。 以便联合这些用户的特征进行建模。
第二部分:加密模型训练
在肯定共有用户群体后,就能够利用这些数据训练机器学习 模型。为了保证训练过程当中数据的保密性,须要借助第三方协做者 C 进行加密训练。以线性回归模型为例,训练过程可分为如下 4 步bootstrap

  • 第①步:协做者 C 把公钥分发给 A 和 B,用以对训练过程当中须要交换的数据进行加 密;
  • 第②步:A 和 B 之间以加密形式交互用于计算梯度的中间结果;
  • 第③步: A 和 B 分别基于加密的梯度值进行计算,同时 B 根据其标签数据计算损失, 并把这些结果汇总给 C。C经过汇总结果计算总梯度并将其解密。
  • 第④步:C 将解密后的梯度分别回传给 A 和 B;A 和 B根据梯度更新各自模型的参数

迭代上述步骤直至损失函数收敛,这样就完成了整个训练过程。在样本对齐及模型训练 过程当中,A和B各自的数据均保留在本地,且训练中的数据交互也不会致使数据隐私泄露。 所以,双方在联邦学习的帮助下得以实现合做训练模型安全

联邦学习与现有研究的区别

联邦学习与差分隐私理论的区别

联邦学习的特色使其能够被用来保护用户数据的隐私,可是它和大数据、数据挖掘领域 中经常使用的隐私保护理论如差分隐私保护理论(Differential Privacy)、k 匿名(kAnonymity)和 l 多样化(l-Diversity)等方法仍是有较大的差异的。首先联邦学习与 传统隐私保护方法的原理不一样,联邦学习经过加密机制下的参数交换方式保护用户数据隐 私,加密手段包括同态加密[10]等。与 Differential Privacy 不一样,其数据和模型自己不会 进行传输,所以在数据层面上不存在泄露的可能,也不违反更严格的数据保护法案如 GDPR 等。而差分隐私理论、k 匿名和 l 多样化等方法是经过在数据里加噪音,或者采用归纳化的 方法模糊某些敏感属性,直到第三方不能区分个体为止,从而以较高的几率使数据没法被还 原,以此来保护用户隐私。可是, 从本质上来讲这些方法仍是进行了原始数据的传输,存 在着潜在被攻击的可能性,而且在 GDPR 等更严格的数据保护方案下这种数据隐私的保护方 式可能再也不适用。与之对应的,联邦学习是对用户数据隐私保护更为有力的手段。服务器

联邦学习与分布式机器学习的区别

同时横向联邦学习中多方联合训练的方式与分布式机器学习(Distributed Machine Learning)有部分类似的地方。分布式机器学习涵盖了多个方面,包括把机器学习中的训练 数据分布式存储、计算任务分布式运行、模型结果分布式发布等,参数服务器(Parameter Server)[4]是分布式机器学习中一个典型的例子。参数服务器做为加速机器学习模型训练过 程的一种工具,它将数据存储在分布式的工做节点上,经过一个中心式的调度节点调配数据 分布和分配计算资源,以便更高效的得到最终的训练模型。而对于联邦学习而言,首先在于 横向联邦学习中的工做节点表明的是模型训练的数据拥有方,其对本地的数据具备彻底的自 治权限,能够自主决定什么时候加入联邦学习进行建模,相对地在参数服务器中,中心节点始终 占据着主导地位,所以联邦学习面对的是一个更复杂的学习环境;其次,联邦学习则强调模 型训练过程当中对数据拥有方的数据隐私保护,是一种应对数据隐私保护的有效措施,可以更 好地应对将来越发严格的数据隐私和数据安全监管环境网络

联邦学习与联邦数据库的关系

联邦数据库系统(Federated Database System)[5]是将多个不一样的单元数据库进行集 成,并对集成后的总体进行管理的系统。它的提出是为了实现对多个独立的数据库进行相互 操做。联邦数据库系统对单元数据库每每采用分布式存储的方式,而且在实际中各个单元数据库中的数据是异构的,所以,它和联邦学习在数据的类型与存储方式上有不少类似之处。 可是,联邦数据库系统在各个单元数据库交互的过程当中不涉及任何隐私保护机制,全部单元 数据库对管理系统都是彻底可见的。此外,联邦数据库系统的工做重心在包括插入、删除、 查找、合并等各类数据库基本操做上面,而联邦学习的目的是在保护数据隐私的前提下对各 个数据创建一个联合模型,使数据中蕴含的各类模式与规律更好地为咱们服务。

联邦学习的最新发展及应用 (2019第四届全球人工智能与机器人峰会)

AI机器人

语音客服机器人

  • 好比要理解每句话的意图和整个对话线程的意图
  • 此外还须要进行情感分析好比在一些场景中,须要分辨出客户的急躁或不满,也需分析出客户的兴趣点,机器只有区分开这些细微的信号,才能实现优质的多轮对话效果
  • 除此以外,还要进行多线程的分析,好比用户说的上一句和下一句话意图不一样,前言不搭后语,机器需把这个逻辑分解出来。
    拥有上亿用户的垂直领域

风控机器人

对话机器人还能够作风控,好比在和客户对话的过程当中发现一些蛛丝马迹,辨别对方是不是在进行欺诈。就像咱们面试一我的或者和借款人交流时,随时随地都要提升警戒,防止对方欺诈。

质检机器人

金融领域很特别的是,每次在客服与客户对话过程当中和对话以后都要对对话质量进行检测。过去每一个对话都是录音,成百上千的录音,人工没有办法一条条过,因此咱们如今用自研的语音识别加意图识别手段,来发现客服对话质量很差的地方,进行自动质检。
在这里插入图片描述

小数据与隐私保护的双重挑战

  • 第一,“对抗学习”的挑战。即针对人工智能应用的做假,好比人脸识别就能够作假,针对面部进行合成。如何应对这种“对抗学习”的挑战,这是金融场景下人工智能安全领域的重大题目。
  • 第二,小数据的挑战。没有好的模型就没法作到好的自动化,好的模型每每须要好的大数据,但每每高质量、有标签的数据都是小数据。
  • 数据都在变化,每一个阶段的数据和上一个阶段的数据有不一样的分布,也许特征也会有不一样。实时标注这些数据想造成好的训练数据又须要花费不少人力。
  • GDPR其中一则条文就是数据使用不能偏离用户签的协议,也许用户的大数据分析,能够用做提升产品使用体验,可是若是公司拿这些数据训练对话系统,就违反了协议。若是公司要拿这些数据作另外的事,甚至拿这些数据和别人交换,前提必须是必定要得到用户的赞成。
  • 另外还有一些严格的要求,包括可遗忘权,就是说用户有一天不但愿本身的数据用在你的模型里了,那他就有权告诉公司,公司有责任把该用户的数据从模型里拿出来。这种要求不只在欧洲,在美国加州也实行了很是严格的相似的数据保护法。

同态加密

定义

即加密算法能够隔着加密层去进行运算,这种加密方法叫“同态加密”,这种运算效率最近取得了重大提高,因此联邦学习就变成能够解决隐私,同时又能够解决小数据、数据孤岛问题的利器
首先咱们要了解加密和解密,保护隐私的安全方法。计算机领域已经有不少研究,从70年代开始,包括咱们熟悉的姚期智教授,他得到图灵奖的研究方向是“姚氏混淆电路”,另外还有差分隐私等。
这么多加密方法它们是作什么的呢?就是下面的公式:
在这里插入图片描述
它能够把多项式的加密,分解成每项加密的多项式,A+B的加密,变成A的加密加B的加密,这是很是伟大的贡献。由于这样就使得咱们能够拿一个算法,在外面把算法给所有加密,加密的一层能够渗透到里面的每一个单元。能作到这一点就能改变现有的机器学习的教科书,把任何算法变成加密的算法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同态加密Homomorphic Encryption

简单例子

借助同态加密,直接在密文上操做和在明文上操做而后加密,效果是同样
在这里插入图片描述
在这里插入图片描述

bootstrapping

其实全同态加密的方案的基础方案并不复杂。全同态加密无非是想既能在密文上作加法又能作乘法。在密码学中,通常是以位(bit)为单位进行讨论的,安全计算和同态加密亦是如此。数值操做中的加法和乘法分别对应位操做中的异或(XOR)和与(AND)操做。要掩盖一个位,最简单的方式就是加上一个随机数。

在这里插入图片描述
如今让咱们回到同态加密这里,前面的加密方法是如何作到同态的呢?如今咱们假设有两个位b1 和 b2 ,咱们按照上面的方法将它们加密为 [公式][公式] 。那咱们先来看看加法的同态性:

[公式]

再来看看乘法的同态性:

[公式]

是的,这种简单的加密方法彷佛能够支持加法同态和乘法同态,但噪音x 却会不停地增加。根据前面讨论的,加法还好,噪音是线性增加的,但乘法的噪音却会爆炸式增加。这也就意味着,随着计算的进行,噪音(error)会愈来愈大,待噪音增加到必定程度,就会使得算得的密文没法被解密,也就没法达到通用全同态的目的了。像这样只能进行必定次数的加乘操做的同态加密方法,咱们唤其为somewhat homomorphic encryption

Bootstrapping
在这里插入图片描述

差分隐私differential privacy

背景

机器学习的主要目的是为了从数据中抓取有效信息,而隐私的目的是想要隐藏掉信息(防止我的信息泄露等)。二者看起来有冲突,可是当咱们挖掘敏感信息的时候,咱们须要平衡这二者之间的关系(保护我的隐私不被泄露的同时抓取到有效信息,从而训练获得一个performance比较好的算法)。因此一个比较常见的方法就是当咱们从数据中抓取信息的时候,尽量的去抓取整个population中比较general的特征,同时保证不透露任何individual的隐私信息。可是每每匿名化数据仍然没法保护我的隐私被泄露。好比说,若是当攻击者掌握了一些其余的泄露信息时,他能够经过合并重叠数据获得他想要的信息。或者经过query屡次结果的差别,找到他想要的信息。所以,有人提出,能够把具备相同特征的sample合并成一个group,当整个group中sample数量达到必定程度,能够公开这个group的信息来防止敏感信息被泄露。可是即便这样,攻击者仍是能够获得他想要的信息。

定义

通俗理解

差分隐私是一种比较强的隐私保护技术,知足差分隐私的数据集可以抵抗任何对隐私数据的分析,由于它具备信息论意义上的安全性。简单的说:你获取到的部分数据内容对于推测出更多的数据内容几乎没有用处

数学理解

  1. 对结果加一个随机噪声(Gaussian noise或者Laplacian noise均可以)
  2. d(D,D’)来表示从数据集D变成数据集D’的最小的数据变化量。举一个简单的例子,若是两个数据集D和D’最多只相差一条数据,那么d(D,D’) = 1. 咱们又把这样的pair (D, D’) 叫作邻近数据集

在这里插入图片描述在这里插入图片描述

苹果的CMS和谷歌的RAPPOR基本算法本质

APPLE

苹果使用本地化局部差分隐私技术来保护iOS/MacOS用户隐私。根据其官网披露的消息,苹果将该技术应用于Emoji、QuickType输入建议、查找提示等领域。例如,Count Mean Sketch算法(CMS)帮助苹果得到最受欢迎的Emoji表情用来进一步提高Emoji使用的用户体验,图1展现了利用该技术得到的US English使用者的表情使用倾向。图2展现了该技术的具体流程。
在这里插入图片描述
在这里插入图片描述
在差分隐私框架内,有两个设置:中心和局部。在咱们的系统中,咱们选择不收集服务器上的中心差分隐私所须要的原始数据;所以,咱们采用局部差分隐私,这是一种更好的隐私形式。局部差分隐私具备这样一个优势,即数据从设备发送以前,是通过随机化的,因此服务器永远不会看到或接收到原始数据。
局部差分隐私是指的使用部分数据么,没看懂

咱们的系统架构由设备端和服务器端数据处理组成。在设备上,私有化阶段确保原始数据是差分私有化。限制访问服务器进行能够进一步分为摄取和聚合阶段的数据处理。咱们在下面详细解释每一个阶段。
在这里插入图片描述

私有化

用户能够选择在macOS或iOS上的系统设置选项中分享用于分析的私有化记录。对于没有选择的用户来讲,系统保持不活动状态。而对于已进行选择的用户,咱们定义了每一个事件的隐私参数,ε。此外,咱们对每一个使用案例天天能够传输的私有化记录数量设置了限制。咱们的选择ε基于每一个用例的基础数据集的隐私特征。这些值与差分隐私研究社区提出的参数是一致的。并且,下面给出的算法进一步为用户提供了因为散列冲突(hash collisions)而致使的推诿性(deniability)。咱们经过在服务器中删除用户标识符和IP地址来提供附加的隐私,其中,这些记录被用例分隔开来,从而使多个记录之间不存在关联。

不管事件在设备上是什么时候生成的,数据当即经过ε—局部差分隐私私有化,并使用数据保护临时存储在设备上,而不是当即传输到服务器上。系统基于设备状况进行延迟后,根据上述限制,在差分隐私记录中进行随机采样,并将采样记录发送给服务器。这些记录不包括设备标识符或事件生成时间的时间戳。设备和服务器之间的通讯使用TLS进行加密

用于流行表情符号用例算法的样本记录。记录列出了算法参数,将在下面予以讨论,并且私有化的数据条目被表示为十六进制字符串。请注意,私有化数据在这里用于陈述而予以省略。此样本中的所有大小都是128字节。
在这里插入图片描述

摄取

在进入摄取以前,私有化记录首先被剥离了它们的IP地址。摄取器而后收集来自全部用户的数据并批量处理它们。批处理过程删除了元数据(metadata),例如私有化记录收到的时间戳,并根据用例将这些记录分离。在将输出转发到下一个阶段以前,摄取者也随机排列每一个用例中私有化记录的排序。

聚合

聚合器从摄取器获取私有记录,并根据下面的部分描述的算法为每一个用例生成一个差分私有化直方图。在计算统计数据时,多个用例的数据永远不会合并在一块儿。在这些直方图中,只有计数高于规定阈值的域元素T涵盖在内。这些直方图而后在Apple内部被相关团队共享

  • Private Count Mean Sketch
    PrivateCount Mean Sketch(CMS)将设备提交的记录进行聚合,并在域元素dictionary中输出计数直方图,同时保留局部差分隐私。这发生在两个阶段:客户端处理和服务器端聚合。

  • HadamardCount Mean Sketch的客户端算法
    与CMS相似,服务器端算法使用的是数据结构——Sketch矩阵M,以将从客户端那里收集私有化向量进行聚合。矩阵M的行被候选哈希函数索引。另外,列是由设备样本的随机坐标索引编制的。矩阵的的第(j,l)单元聚合了设备所提交的私有化向量,即从向量中选择第j个哈希函数hj,并采样第l个坐标。继而进一步对私有化向量进行适当的扩展,使用可逆Hadamard矩阵将M转换回原来的基底中。在这个阶段,矩阵的每一行都有助于为元素的频率提供一个无误差估计量。
    在这里插入图片描述

  • PrivateSequence Fragment Puzzle
    过去的算法假定存在一些已知的域元素dictionary,服务器能够经过它进行枚举以肯定相应的计数。然而,在某些状况下,这个域是巨大的,在整个空间上进行枚举就计算而言是没法达到的。

总结

提出了一种全新的学习系统架构,它利用局部差分隐私技术,并将其与隐私最佳实践相结合。为了将咱们的系统扩展到数百万用户和各类用例中,咱们为已知和未知的dictionary设置开发了全新的局部差分私有算法——CMS、HCMS和SFP。在全文中,咱们提供了隐私、实用程序、服务器计算开销、设备带宽等各因素之间的权衡分析表达式。咱们的效用定理给出了一种选择算法参数的原理性方法,从而保障了在不下降准确性的状况下使用户的传输成本实现最小化。没有这样的表达式将很难评估对精度的影响。例如,下降传输成本而不须要运行昂贵的迭代。此外,为了将传输成本降到最低,咱们的HCMS算法能够在每一个用户只发送一个私有化比特位的状况下得到精确的计数。

GOOGLE

https://github.com/google/rappor

CONCLUSION

好比CMS对独热向量的每一位按照 1/(1+e^(Epsilon/2)) 的几率进行翻转,最后达到隐私预算为Epsilon的差分隐私框架要求;RAPPOR采用随机应答的思想,有 1/2f 的几率置为1,有 1/2f 的几率置为0,有 1-f 的几率保持不变(其实就是以 1/2f 的几率进行翻转)最后达到隐私预算为 2Ln((1-1/2f)/(1/2f)) 的差分隐私框架要求(假设布隆过滤器的哈希函数个数为1)。

换算一下能够得出二者其实就是将独热向量的每一位以p的几率进行翻转,达到的隐私保护效果就是 2Ln((1-p)/p)。

我的思考

差分隐私如何肯定是不是有效的噪声方法,即数据有效的同时可以隐藏用户的隐私 差分隐私能够大幅度修改全部人的数据,