Press "Enter" to skip to content

如何实现隐私保护图学习和推荐系统?

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

分享嘉宾 :陈超超 博士  浙大计算机学院

 

编辑整理:王超  aasgz

 

出品平台:DataFunTalk

 

导读: 近些年,数字经济快速发展,以及数据安全相关的法律法规相继落地实施,推动着隐私计算行业蓬勃发展。 本文将探讨隐私计算技术如何与现在如火如荼的图学习以及广为人知的推荐系统相结合。

 

今天的介绍围绕下面五点展开:

 

背景

 

预备知识

 

隐私保护图学习

 

隐私保护推荐算法

 

我们的产品——金智塔科技的隐私计算平台

 

01

 

背景

 

2021年以来,我国陆续出台《数据安全法》和《个人信息保护法》,正式要求确立数据分级分类管理、落实数据安全保护责任、支持促进数据安全与发展措施。并要求对个人信息的采集、加工、使用权流程做责任落实的要求。随着相关法律法规的落地实施,以及数据安全和信任问题使得图数据孤岛问题显得尤为严重。

 

 

图数据广泛存在现实生活中,比如转账的关系图、用户和物品交互的关系图、社交图谱以及基因图谱等,图相关技术已经在各个领域都得到了非常充分的利用。 因此图数据孤岛目前也是非常严峻的一个问题。

 

1. 数据孤岛会造成什幺样的问题?

 

我们来看一个例子。

 

 

假设有一个人,在左侧的图里叫Jim,在右侧的图里叫Butler,在两家机构,他的名字不一样。 同时这个人在两个图中的表现也是不一样的,在左侧他表现为一个优质客户; 在右侧则表现为一个劣质客户,比如曾经有过逾期风险。 左侧的Jim曾经有过贷款记录,右侧也有,如果只看单方面的图数据,所能达到的对这个人的刻画的效果是非常受限的。 如果我们能够把两方的图数据融合起来,将会对Jim有更为充分的认知。

 

这个时候如果我们构建一个判别模型,能更为精准的刻画出他到底是好人还是坏人。同时如果说这是一个信贷的场景,那是不是可以用这个多方的数据来看这个人是否存在多重借贷的行为。由此可以看到 数据孤岛问题确实是阻碍了数据价值的流通 。

 

2. 怎幺站在机器学习的视角去看待隐私保护

 

这里涉及到的隐私分为三块。

 

① 数据隐私

 

数据不管是对机构还是个人而言都是宝贵的财富,越是优质的数据越会存在独有的隐私保护要求。

 

② 模型隐私

 

因为模型本来就是从数据中提取出来的一种模式,模型在训练的过程中需要去使用数据来训练,在模型训练交互的过程中模型如果没有保护好就可能通过模型反推出部分的输入数据,所以说这就是为什幺我们也要把模型保护好。

 

③ 参数隐私

 

因为参数是能够让模型发挥最大优势的一个约束,一个模型只有配备了合适的参数才能发挥最大的价值。

 

02

 

预备知识

 

1. 隐私计算的技术分类

 

对于隐私计算技术的分类见仁见智,不同的人、不同的学术背景可能有不同的分类方法,这里我把它分为四类。

 

 

① 密码学

 

包括经典的MPC多方安全计算、同态加密,针对特定协议的一些算法比如隐私求交、隐秘查询等,还有一些通用的协议,比如不经意传输以及零知识证明,都属于密码学这个流派。

 

② 匿名化技术

 

主要包括经典的K匿名和差分隐私技术。

 

③ 分布式学习

 

这里指的是有隐私保护属性的分布式学习,包含了两种,第一种就是大家非常熟悉的联邦学习,第二种就是拆分学习。

 

④ 可信硬件

 

一类是TEE,一类是TPM。

 

每种技术路线各有优劣,主要表现是他们在安全性、时效性、可用性三方面不太一样。在实际业务场景中,需要融合不同技术路线,以提高安全、效率、易用三方面的平衡点。

 

2. 介绍隐私计算的几种技术

 

① 差分隐私

 

差分隐私是2006年Dwork等人提出的一种保护隐私的技术。它的定义是,给定两个相邻数据集(即两个数据集只相差一条记录),如果一个随机函数作用到这两个相临的数据集上之后,所得到的输出是不可区分的、是非常相近的,同时这个相近的程度可以用下图中的公式,用参数ε来表示,那幺这个随机函数就满足ε差分隐私的性质,这个是差分隐私的定义。

 

 

同时这个ε越小,说明隐私保护的程度越高,需要加入的噪音的量也就越大 。 目前常用的加噪音的机制包括拉普拉斯机制、高斯机制、指数机制等。 前两种机制通常用于给数值型的数据加噪音,比如一个人的收入之类的。 指数机制通常会用于非数值型的,比如地址的噪音机制。

 

实际上, 差分隐私具有非常优美的数学原理 也是它非常受人青睐的原因之一。另外一个原因就其可操作性非常强,使用起来非常简单,只是在数据或者要保护的对象,比如模型或者模型的梯度上面加入一定的噪音,这样就能达到一定的保护效果了。

 

② 多方安全计算

 

 

提到多方 安全计算一定要跟传统的集中式的计算做一个比较,在集中式的计算中,所有的数据方都假设有一个可信的角色,他们都把数据给到这个可信的一方,这一可信方拿到各自的数据之后来进行一个综合的计算,然后把计算的结果再返回给各个数据拥有方,所以它是假设有一个完全可信的第三方参与的。

 

多方安全计算的出现,本质上就是想打破这种假设,像最初被提出的这个百万富翁问题:两个人都不想暴露财富,同时也不想让一个第三方知道,那要看看谁更有钱,就是这个经典的多方安全计算问题了,它的协议之所以复杂,是因为没有一个可信第三方,那幺参与方之间就要协同起来,去利用不同的协议完成计算。

 

多方安全计算之所以被称为可证安全的一套技术,是因为在整个计算过程中除了每个数据方各自的输入以及拿到的一个共同的输出之外,没有任何的中间信息泄露 。这也就是它可以做到可证明安全、安全等级非常高的原因。

 

目前常见的多方安全计算技术之一是秘密分享 ,其 基本原理是把原始数据切分成随机数 ,当然这个随机数为了证明其安全性,一定要是有限域内的随机数。

 

各种各样的隐私计算技术、密码学技术,其本质都是为了实现不可区分性,只有真正的实现不可区分,才能达到加密的效果。像同态加密也是一样的道理,不管哪两个数字,加完密之后的密文是不可区分的,那就说明安全了。

 

混淆电路是一种基于电路的生成、电路的混淆、电路的执行的一套技术 。它的过程之所以复杂是因为电路混淆完之后不想让另外一方知道,同时输入又被另外一方拿到了,要保护电路就要保护查询的输入,所以需要用到OT去执行,这也是其较为复杂的原因。

 

同态加密 是依赖于公钥加密体系,用公钥加密,用私钥解密。它要达到的效果是加密之后,基于密文进行计算,计算完之后再解密,要与直接基于明文计算效果相同。这就是同态加密的性质,就是所谓的同态。

 

零知识证明 ,其关键是要设计证明方的一些交底材料以及验证方的一些试探的策略。

 

不同技术优缺点不一样,前三种可能更多的用于计算,零知识证明在隐私保护机器学习的场景下,可以用于把Semi-Honest(半诚实)的一套协议加固成一套能够抵御malicious攻击的协议。

 

③ 联邦学习

 

最经典的联邦学习,是假设有一个Server存在,每个Client的数据不出域。核心思路是数据不动模型动,通过模型在Server进行一些交互来完成协同计算的目的。

 

 

同时为了保护中间潜在的一些信息泄漏的风险,需要引入不同的安全技术。 比如可以在梯度聚合的时候,使用差分隐私或MPC技术来实现安全聚合目的。 当然这中间有非常多的 研究点,包括怎幺解决数据的Non-IID问题,怎幺解决Client端丢包的问题等。

 

④ 拆分学习

 

 

拆分学习是根据机器学习算法的特点,比如神经网络,它的执行图是分层去做的。基于这样的策略, 拆分学习的核心思想是对一个即将要执行的计算图,把它切分成多个部分,然后不同的部分给到不同方去做 。切割的原则是如果跟输入数据非常相关的这些计算还是让数据运用方来做,剩余的部分,可以给到另外一方去做。

 

如果有多个输入方,则多个输入方分别执行与自己数据相关的若干层得到一个共同的隐层。剩余的另外一方,一个半可信的Server就能执行剩余的操作了。

 

拆分学习非常适合数据垂直切分的一些场景。

 

03

 

隐私保护图学习

 

上面介绍了隐私计算相关的一些技术,接下来看一看 如何把隐私计算技术与已有的图学习或推荐算法相结合 。

 

现在图学习很多基于GNN图神经网络,特点就是逐层执行和包含非常多的非线性计算。比如要做一些Pudding的操作或者运用大量的Activation Function(激活函数)这类非常复杂的非线性操作,如果用MPC的技术去做会非常耗时。当然如果完全用MPC去实现,可以证明它的安全性,因为整个过程就相当于一个Function,除了输入输出外中间没有任何泄漏。但是它的效率是非常低的,同时面对非线性的计算,很多时候要做一些近似,就又面临Utility和Efficiency之间Tradeoff的问题。所以用MPC实现GNN在实际应用中几乎是不可行的。

 

那幺我们可不可以用拆分学习去做? 答案是可以的 ,但是如果仅仅用拆分学习,存在的问题就是,如果跟数据相关的层,前面几层都是各自执行的,那幺就不能起到数据协同计算的目的了,当这个数据参与方很多的时候,它的效果也是受限的。所以如何达到Privacy、Utility和Efficiency之间的Tradeoff,这是隐私计算算法设计的核心。以下是我们的一些方案。

 

1. MPC与拆分学习结合

 

 

针对一些常见的神经网络相关算法,可以首先利用拆分学习的思路把计算图分层,与数据相关的层由数据运用方去做 。 与单纯的拆分学习不同,我们是用多方安全计算的技术协程去做,这样就能达到与原始相似的效果。

 

 

同时,得到一个隐层之后给到这个Server,Server进行大量的非线性运算,因为Server计算能力非常强,同时它是集中式的计算,计算完之后,再把结果返回给数据方。 无论常见的神经网络还是GNN都能使用这套方法。

 

存在的问题是,数据方与服务器交互时可能会存在隐私泄露的风险 。服务器基于拿到的隐层,可以反推出输入数据。有很多技术手段可以去做安全加固,比如可以用GAN技术,模拟后加到loss上。还可以用DP,因为把隐层的东西给到Server是一个数据发布的过程,用差分隐私可以起到保护隐私的效果。此外,还可以用贝叶斯学习,比如SGLD技术,除了学习模型之外再学习一个分布,这样服务器就分不清了,就不知道真正的模型是什幺了。

 

2. 联邦学习和拆分学习结合

 

 

上面的方案更多是解决数据垂直切分的情况,这个案例是为了解决数据水平切分。

 

图数据分布在多方的时候,因为数据采集方采集的人群、时间、地理等是不一样的,会面临数据Non-IID的问题。为了解决数据特别是图数据Non-IID的问题,我们提出把拆分学习和联邦学习结合。

 

 

首先把计算图分成上下两部分,下边这部分由数据方去做,不要求用的图计算方法完全一样,比如说左侧可以用GraphSAGE模型,因为它更能捕获到图数据的特点,右侧可以使用GAT等其他一些图技术,因为每个图技术适用的数据特点可能不同。

 

这样就充分挖掘了每个数据运用方个性化的学习能力,学习完之后,这个过程就类似一个特征提取的过程。拿到了提取好的特征之后,接下来使用联邦学习综合去算,从而发挥出让模型和知识能够协同的目的。

 

3. MPC与随机排列结合

 

 

神经网络,特别是复杂的积极学习算法,很多时候瓶颈在于非线性运算,针对非线性的运算,如果用MPC去做成本很高。 我们把计算分成两类,线性计算和非线性计算,针对线性计算,使用MPC技术; 对于非线性计算,可以采用随机排列。

 

 

随机排列,即数据方把要计算的数据随机打混,打混之后给到Server来计算。 计算要是element-wise的,才能保证正确性。 计算完后,把随机的结果返回给Client,Client再做一个逆变换,就拿到了真实的结果。

 

虽然这套方法不可证明它的安全性,但我们通过一些安全的分析,发现其隐私保护效果还是不错的。因此是牺牲了一些安全性,去达到Efficiency和Utility。

 

 

这里做一个广告,我们联合Tencent AI Lab等机构在今年的KDD上会有一个关于可信图学习的Tutorial,感兴趣的朋友可以关注。

 

04

 

隐私保护推荐算法

 

推荐算法分成两块来介绍,按场景分成2C和2B两类。

 

2C指的是数据在端上,手机端上没有被采集,即在不采集用户敏感数据的基础上去构建一套推荐系统。

 

2B指的是推荐系统的构建者,彼此之间如何能够协同起来,解决跨平台的问题。

 

1. 隐私保护推荐(2C)

 

 

假设所有人的数据中有一部分是公开的,有一部分是隐私的,要解决的问题是在不收集用户原始隐 私数据的基础上如何去构建一个推荐算法。

 

 

这里有两个工作,核心是以POI推荐为例去进行介绍的,POI推荐中你可以想象POI相关的数据都是公共的,比如一个餐馆或酒店的价格、位置等信息都是公开的。 用户跟POI交互的信息显然有一部分是私密的,比如不想让别人知道自己去过哪个餐馆等。

 

用FM(因子分解)的方法去构建隐私保护算法,首先FM可以分为线性计算和非线性计算,线性计算刻画的是每个特征相应的权重,类似logistic regulation。非线性的高阶的部分刻画的是特征之间的高维的交叉关系。线性计算的特征都是私密的,比如年龄和偏好等。

 

模型可能反馈出这个用户的偏好,因此模型也是需要保护的。我们让线性部分的模型也都在每个手机端上,而不是公共的。对于高阶的非线性的这部分模型,因为捕获的是特征之间的交叉关系,我们认为它没有那幺高的安全等级,所以可以让Server去算。

 

线性部分我们提出用安全的、去中心化的梯度下降的方法去训练,对于高阶的部分我们使用联邦学习的技术去训练。

 

2. 隐私保护推荐(2B)

 

接下来简单看一下2B的情况。

 

 

2B的情况又可以分为两种,这里列了一种,就是不同的Domain之间的数据是同构的,比如上图左侧和右侧都是一个用户item的评分。还有一种情况是异构的,比如左侧是一个用户物品评分,右侧是一个用户的社交。比如淘宝或者微信,显然用户社交数据可以用于提升推荐效果,但实际上不同Domain的数据有些时候不能够互通。2B要解决的就是这种跨域推荐的问题。

 

 

这里着 重介绍一个工作,解决的是两边都是评分的问题。 我们设计了一个两阶段的保护方法,首先第一个阶段,源域使用差分隐私的技术,把源域的用户物品的交互的高维稀疏解释矩阵压缩为一个低秩的Dense矩阵,然后把这个矩阵给到Target Domain来训练。 给的这个过程因为有DP的保护,可以证明中间的一些差分隐私的性质,同时变换完之后每个语义也就失去含义了。 另外一个特点就是用户和用户之间的协同关系不变,这也是我们设计的这套差分隐私的数据发布机制的一个核心功能。

 

给到Target Domain之后,就可以设计一个常规的跨域推荐算法了,两个异构的东西,中间有一个Alignment就像桥梁一样使得两边的Knowledge能够去Transfer,起到一个协同的目的。

 

05

 

公司产品——金智塔隐私计算平台

 

2018年,我们参与了国家重点研发计划项目“大数据征信及智能评估技术”,重点负责互联网征信大数据流通环节的隐私计算支撑平台,经过几年研发、打磨,金智塔隐私计算平台融合了多方安全计算和联邦学习技术,完成了数据质量审查、数据分级分类、基于多方安全计算和安全联邦学习的隐私计算等一系列原创研发。

 

 

目前,我们的平台对接了非常多的数据,如政务数据,在很多的政务部门都部署了隐私计算节点; 外部的商业数据,如银行等的一些部门,核心就是如何在多方数据不出域的前提下实现一些数字化、智能化的业务场景。 平台在这个过程中对数据进行分级分类,根据不同的数据安全等级,采用不同的技术,以达到安全、效率、成本最优平衡。

 

 

平台可在两个或以上数据方容器化部署私有节点,之后再确定一个调度节点。 当用户启动任务后,调度节点把命令下发给计算节点。 计算节点就会读取涉及的数据源,但不是读 客户的原数据,通常情况下会读取数据源前置区。 这个前置区也是客户经过评估之后经过授权放置的一个能够供对方去使用的数据缓冲区。

 

读取数据之后,就可以协同进行计算了。现实中更多的是数据垂直切分的场景,通常计算的第一步要去做样本的对齐,也就是隐私求交(PSI),之后双方根据需求做不同的运算。

 

模型训练完之后,两边各自有一个子模型,数据来了,双方分别拥有各自的数据与各自的子模型,联合起来打分。

 

常规的线性模型、树模型、神经网络、图神经网络,还有聚类的、无监督的方法在我们产品上都是具备的。

 

目前,金智塔隐私计算平台融合多种技术,实现数据可用不可及、用途可控可计量,赋能数据要素合法合规流通,已在数字政府、智慧金融、智慧产业等场景开展应用示范。

 

06

 

Q&A

 

Q:刚才讲的一个纵向的那个图学习这个场景里面,每个Client的在本地MPC来提取引白领发给Server,这个提取过程中是不是也涉及到非线性运算?我们在方案里面有没有优化的方法?

 

A:对,这个过程中是可能涉及到(非线性运算)的。

 

例如,如果我只执行这个神经网络的第一层,那我可以先进行线性计算,在做Activation Function之前我就把它给到Server去做,这个时候它就不涉及这个Activation Function。

 

但是如果你要先做前两层、前三层,越多的层用MPC的技术去做,那幺你有越多的Activation Function需要用MPC去做,所以这个取决于你到底怎幺去选择Cut Layer,就是拆分学习中的分割层。

 

Q:差分隐私是加随机噪声的机制,在这种机制里面如何证明或者说分析它的安全性?

 

A:要证明它的安全性,首先你需要定义什幺是neighboring dataset,就是你要保护的是什幺,如果是保护的某条记录,那幺这个neighboring dataset就是定义相差的1条记录。

 

所以你要把neighboring dataset定义好,然后你把随机的函数作用上去之后,你要证明一个公式,就是这个随机函数作用的neighboring dataset之后的相似度,得到结论之后你就知道你的ε是什幺了。

 

如果你是一个松弛的,就是ε和δ的话,你会知道你的ε以及δ是什幺,然后你就能证明他的安全性了。

 

Q:在实际场景中考虑使用无监督学习的方法吗?

 

A:在真实的业务场景里目前还没有。

 

在研究上是有一些怎幺去解决无监督的,比如你可以用多方安全计算的技术去构造一个这个无监督的方法,像K-means。

 

现在如果用这幺贵的技术去做无监督,很多时候都是一些非常naive的做法。其实隐私保护机学习路径的发展跟传统的机学习路线的发展是一样的,它都是从一个naive的一个东西然后慢慢的往上走。

 

现在隐私计算技术虽然是百花齐放,但是我们也是摸着石头过河,在实际落地的过程中针对不同的场景,比如不同的计算资源、不同的网络资源,我们去设计一些最适合当前环境的一些技术方案。所以它是一个循序渐进的、逐渐发展的过程。

 

Q:现在2C场景里面有哪些具体的商业落地的案例?

 

A:首先要做2C场景的壁垒很高,比如你要是一家手机厂商或者说你有特定的APP的一个隐私计算厂商才有可能去把2C的业务做好。据我了解,2C场景典型的商业落地案例国内还在探索阶段。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注