这里放一篇详细介绍DP前世今生的论文,感兴趣可以看一下
张啸剑老师讲的关于差分隐私的演变形势和研究方向
关于差分隐私学术方向的详细定义综述
初学差分隐私的人要解决的几个问题:
- 差分隐私针对怎样的数据进行何样的保护?
- 差分是什么意思?
- 为何给输出结果添加噪声就能使其概率分布近似?
- Laplace机制和指数机制的原理到底什么鬼?
- 隐私保护强度ε、Laplace噪声参数λ、敏感度如何理解?
讲差分隐私前,我想说一下什么是隐私
其实隐私这个定义,各家有各家的说法,而且各人有各人不同的考量。目前普遍比较接受的是:“单个用户的某一些属性” 可以被看做是隐私。这个说法里所强调的是:单个用户。也就是说,如果是一群用户的某一些属性,那么可以不看做隐私。
举个例子:医院说,抽烟的人有更高的几率会得肺癌。这个不泄露任何隐私。但是如果医院说,张三因为抽烟,所以有了肺癌。那么这个就是隐私泄露了。好,那么进一步,虽然医院发布的是趋势,说抽烟的人更高几率得肺癌。然后大家都知道张三抽烟,那么是不是张三就会有肺癌呢?那么这算不算隐私泄露呢?结论是不算,因为张三不一定有肺癌,大家只是通过一个趋势猜测的。
所以,从隐私保护的角度来说,隐私的主体是单个用户,只有牵涉到某个特定用户的才叫隐私泄露,发布群体用户的信息(一般叫聚集信息)不算泄露隐私。 记得高德地图发过一张图,大意是开凯迪拉克的群体喜欢去洗浴中心…很多人说暴露隐私, 其实从学术定义上来说,这个不算隐私泄露,因为没有牵涉到任何个体。那么我们是不是可以任意发布聚集信息呢?倒是未必。
我们设想这样一种情况:医院发布了一系列信息,说我们医院这个月有100个病人,其中有10个感染HIV。假如攻击者知道另外99个人是否有HIV的信息,那么他只需要把他知道的99个人的信息和医院发布的信息比对,就可以知道第100个人是否感染HIV。
第二种情况。假设现在有一个婚恋数据库,2个单身8个已婚,只能查有多少人单身。刚开始的时候查询发现,2个人单身;现在张三跑去登记了自己婚姻状况,再一查,发现3个人单身。所以张三单身。
这种对隐私的攻击行为就是差分攻击。
差分隐私顾名思义就是防止差分攻击了。
它想做的事情就是即使你小子知道我发布的100个人的信息,以及另外99个人的信息,你也绝对没办法把这两个信息比对之后获取第100个人的信息。怎么才能做到这一点呢?差分隐私于是定义:如果你能找出一种方法让攻击者用某种方式查询100个信息和查询那99个信息得到的结果是一致的,那攻击者就没办法找出那第100个人的信息了。
但这个“一致” 怎么做到呢?那就加入随机性吧。如果查询100个记录和查询99个记录,输出同样值的概率是一样的,攻击者就无法进行差分攻击。
这里我们就得到了差分隐私的核心思想:对于差别只有一条记录的两个数据集,查询它们获得相同值的概率非常非常的接近。Wait,不是说一致的么?为什么变成了非常接近了? 这是因为,如果概率一样,就表示数据集需要完全随机化,那数据的可用性就没有了,隐私保护也没有意义了。所以,我们尽可能的把概率做的接近,而不是一致,以期在隐私和可用性之间找一个平衡。
上面这张图描述了差分隐私的基本思想,对于两个只相差一个记录的数据集D和D’来说,查询M的输出结果S概率应该非常接近。
引用西安电子科技大学李效光的“差分隐私综述”中的思想:
差分隐私并不保证数据集整体的隐私,因为对于DP来说,隐私的定义是用户的某一天单一属性
因此是对数据集中每个个体的隐私提供保护
要求每一个单一元素在数据集中对输出的影响都是有限的
无法从查询结果中推断出有关个体的隐私信息
对于两个汉明距离为1的数据集x,x’
上述式子是差分隐私的定义。
The Algorithmic Foundations of Differential Privacy这本书的3.5.1中有详细的解释,感兴趣的可以看一下
机器学习算法一般是用大量数据并更新模型参数,学习数据特征。在理想情况下,这些算法学习到一些泛化性较好的模型,例如“吸烟患者更容易得肺癌”,而不是特定的个体特征,例如“张三是个吸烟者,患有肺癌”。然而,机器学习算法并不会区分通用特征还是个体特征。当我们用机器学习来完成某个重要的任务,例如肺癌诊断,发布的机器学习模型,可能在无意中透露训练集中的个体特征,恶意攻击者可能从发布的模型获得关于张三的隐私信息,因此使用差分隐私技术来保护机器学习模型是十分必要的。
机器学习差分隐私定义为:
其实就是在查询结果里加入随机性。
如何利用Laplace噪声产生符合DP的机制就成了我们主要研究的问题。我们依然想一下DP的设计目标:“有你和没有你查询结果相差不大”。那么现在问题就来了,这个“有你”和“没有你”在真实情况下相差多少呢?
研究这个问题是因为我们不限定用户对数据集做出什么样的查询,直观上来说,如果查询的是人数,那么“有你”和“没有你”相差不大(只会相差1),只需要加一个小一点的噪声即可造成两个结果的混淆;那如果我们查询的是人的工资呢,加一个很小的噪声显然是无法满足应用需求的(因为数据相差太大,稍微对数据的改变依然可以看出数据差别很大)。由此可见,如何设计DP机制是和查询紧密相关的。所以我们有一个概念叫敏感度Δf,由于数据集中少一条记录就会对数据查询f的结果结果造成一定的影响,我们自然想知道,这个影响最大是多少呢?也就是敏感度的值Δf了。
目前有两种比较常用的方法。
一个是Laplace机制,在查询结果里加入Laplace分布的噪音,适用于数值型输出。例如:知乎里有多少人是985大学毕业的? 假如结果是2000人,那么每一次查询得到的结果都会稍稍有些区别,比如有很高的概率输出2001,也有较高概率输出2010, 较低概率输出1990,等等。
另外一个是指数机制,在查询结果里用指数分布来调整概率,适用于非数值型输出。例如:中国top 3大学是哪一所。很高概率输出 浙江大学,较高概率输出上海交大,较低概率输出武汉大学,很低概率输出蓝翔技校,等等。
差分隐私的弱点其实很明显:由于对于背景知识的假设过于强,需要在查询结果中加入大量的随机化,导致数据的可用性急剧下降。特别对于那些复杂的查询,有时候随机化结果几乎掩盖了真实结果。这也是导致目前应用不多的一个原因。
但差分隐私作为一个非常漂亮的数学工具,为隐私研究指明了一个发展的方向。在早期,人们很难证明我的方法保护了隐私,更无法证明究竟保护了多少隐私。现在差分隐私用严格的数学证明告诉人们,只要你按照我的做,我就保证你的隐私不会泄露。
我不认为DP是一种加密技术。虽然都是随机化,但区别在于随机化后密文的分布。对于加密,希望以均匀分布把明文映射到密文空间,也就是说明文加密后,以完全相同的概率有可能是密文空间中的任何一个密文,是均匀分布,这也是香农对perfect security的定义。但对于DP,随机化后的结果不可能是均匀分布,那样发布的结果就完全没意义了,所以它是Laplace分布或者高斯分布,也就是说虽然随机化了,但趋近真实值的概率高,而远离真实值的概率小。加密是要彻底破坏密文的可用性,它的可用性必须通过解密出明文来实现。但DP没有逆过程,它必须在一定程度上保证随机化后结果的可用性。
作者:degor
链接:https://www.zhihu.com/question/47492648/answer/194169150
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
怎么说的呢?其实如果抛开具体的数学定义和具体的技术细节,differential privacy非常好理解。它提供了一种最强大的隐私保护:敌人根本不知道我在不在这个数据集里。这为什么是最强大的保护呢?毕竟如果你不在这个数据集里的话,你的数据自然就不会泄露咯。DP的提出者在我们学校给talk时也提到了:不管你怎么定义privacy,基本都会最终走到dp的这条路上来。Apple具体的技术实现细节就不知道了,也不知其是否达到了理论上DP的要求。
作者:DH Cheng
链接:https://www.zhihu.com/question/47492648/answer/106367576
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
两句话就能解释一堆人讲一堆,如果说能在一定条件下无限检索数据库,那么理论上我可以还原这个数据库。差分隐私就是无论你怎么检索,都无法还原一个准确、完整的数据库。其实Apple提了Differetial Privacy和No User Profiling,我来做一个他们结合的吧
作者:qinhc
链接:https://www.zhihu.com/question/47492648/answer/131834062
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
通俗点说,就是对原数据进行干扰,使得某条数据的存在与否取值如何对最终输出结果的概率分布影响不大。
干扰方式有多种,加噪音(如laplace噪音和gaussian噪音)是最直接的方式,也有根据数据分布或算法特性构造出的不加噪音的干扰方式。