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

原文链接:https://blog.csdn.net/qq_41409438/article/details/102213895

联邦学习
兴起原因
概念
分类
横向联邦学习
纵向联邦学习
联邦迁移学习
优势
系统架构
联邦学习与现有研究的区别
联邦学习与差分隐私理论的区别
联邦学习与分布式机器学习的区别
联邦学习与联邦数据库的关系
联邦学习的最新发展及应用 (2019第四届全球人工智能与机器人峰会)
AI机器人
语音客服机器人
风控机器人
质检机器人
小数据与隐私保护的双重挑战
同态加密
定义
同态加密Homomorphic Encryption
简单例子
bootstrapping
差分隐私differential privacy
背景
定义
通俗理解
数学理解
苹果的CMS和谷歌的RAPPOR基本算法本质
APPLE
私有化
摄取
聚合
总结
GOOGLE
CONCLUSION
个人思考
兴起原因
联邦学习的出处是金融机构的痛点,尤其是像“微众银行”这样的互联网银行。一个实 用的例子是检测多方借贷。这在银行业,尤其是互联网金融一直是很头疼的一个问题。多方 借贷是指某不良用户在一个金融机构借贷后还钱给另一个借贷机构,这种非法行为会让整个 金融系统崩溃。要发现这样的用户,传统的做法是金融机构去某中心数据库查询用户信息, 而各个机构必须上传他们所有用户,但这样做等于暴露金融机构的所有重要用户隐私和数据 安全,这在 GDPR 下就不被允许。 在联邦学习的条件下,没有必要建立一个中心数据库,而 任何参与联邦学习的金融机构可以利用联邦机制向联邦内的其他机构发出新用户的查询,其他机构在不知道这个用户具体信息的前提下,回答在本地借贷的提问。这样做既能保护已有 用户在各个金融机构的隐私和数据完整性,同时也能完成查询多头借贷的这个重要问题。

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

分类
针对不同数据集,联邦学习分为横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)与联邦迁移学习(Federated Transfer Learning,FmL)


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

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

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

优势
数据隔离,数据不会泄露到外部,满足用户隐私保护和数据安全的需求;
能够保证模型质量无损,不会出现负迁移,保证联邦模型比割裂的独立模型效果好;
参与者地位对等,能够实现公平合作;
能够保证参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长
系统架构
在讨论了联邦学习的定义与分类之后,我们以纵向联邦学习为例深入介绍一下联邦学习 系统的构架,从而理解其工作的流程与细节。
我们以包含两个数据拥有方(即企业 A 和 B)的场景为例来介绍联邦学习的系统构架, 该构架可扩展至包含多个数据拥有方的场景。假设企业 A 和 B 想联合训练一个机器学习模 型,它们的业务系统分别拥有各自用户的相关数据。此外,企业 B 还拥有模型需要预测的标签数据。出于数据隐私和安全考虑,A 和 B 无法直接进行数据交换。此时,可使用联邦学习系统建立模型,系统构架由两部分构成。
第一部分:加密样本对齐
由于两家企业的用户群体并非完全重合,系统利用基于加密 的用户样本对齐技术,在 A 和 B 不公开各自数据的前提下确认双方的共有用户,并且不暴露 不互相重叠的用户。 以便联合这些用户的特征进行建模。
第二部分:加密模型训练
在确定共有用户群体后,就可以利用这些数据训练机器学习 模型。为了保证训练过程中数据的保密性,需要借助第三方协作者 C 进行加密训练。以线性回归模型为例,训练过程可分为以下 4 步

第①步:协作者 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的信息来防止敏感信息被泄露。但是即使这样,攻击者还是可以得到他想要的信息。

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

数学理解
对结果加一个随机噪声(Gaussian noise或者Laplacian noise都可以)
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)。

个人思考
差分隐私如何确定是否是有效的噪声方法,即数据有效的同时能够隐藏用户的隐私
差分隐私可以大幅度修改所有人的数据,
————————————————
版权声明:本文为CSDN博主「柯少又来秀了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41409438/article/details/102213895

你可能感兴趣的:(隐私计算)