✅ 操作成功!

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

发布时间:2023-06-04 作者:admin 来源:讲座
转载-联邦学习-基础知识+⽩⽪书+杨强教授讲座总结+同态加
密+差分隐私
联邦学习
兴起原因
概念
分类
横向联邦学习
纵向联邦学习
联邦迁移学习
优势
系统架构
联邦学习与现有研究的区别
联邦学习与差分隐私理论的区别
联邦学习与分布式机器学习的区别
联邦学习与联邦数据库的关系
联邦学习的最新发展及应⽤ (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中输出计数直⽅图,同时保留局部差分隐私。这发⽣在两个阶段:客户端处理和服务器端聚合。
👁️ 阅读量:0