zoukankan      html  css  js  c++  java
  • (二) 差分隐私直观理解

    差分隐私是为了在敏感数据上进行数据分析而发展起来的一套机制,通过混淆数据库查询结果,来实现数据在个人层面的隐私性,并且保证查询结果近似正确。这篇文章通过一些例子简要介绍差分隐私的提出动机和思想,主要参考Dwork的The Algorithmic Foundations of Differential Privacy[1]和CUHK的CSCI 5520[2]

    1.差分隐私的直观理解(intuitively)

    假如我们现在有一个学生表,有三个字段:姓名、性别、考试通过情况。

    其中呢,姓名和性别是可以公开的,考试通过情况是个人隐私。我们开放这个数据的查询,但是不想暴露个人的隐私信息——考试通过情况。

    现在呢有人想访问一些关于这个数据的信息,要查询Orhan的成绩是什么。这个查询会直接返回隐私信息,我们当然会拒绝这种形式的查询。

    用户查询“多少个学生通过了这个考试”,我们认为这种查询涉及到的是总体的信息,没有涉及到个人的隐私信息,可以响应这个查询。

    但是查询“有多少个女生没通过这个考试”,乍一看好像没有泄露敏感信息,但是在上面这个数据例子中,是会泄露的,因为只有两个女生(这个信息是公开的),查询响应会是2,能够推导出Aisha和Erica没有通过。

    再来看一个常见的例子,医院开放了它们的医疗数据给研究者用于做各种统计分析,为了保护患者隐私,通常会移除数据中的姓名、身份证号等再发布。但是,就算移除了身份信息,利用一些在外部得到的附加数据,也可能会泄露个人的敏感信息,比如通过把开放的医疗数据表与其他渠道得到的带有某人属性(生日、性别等)的数据表进行比对,就能够在原表中锁定对应的个人,从而得到敏感信息。

    所以我们需要一种机制,能够对用户查询提供有用的响应,又能够保护数据中的个人隐私。然而现实是,又提供完全精确的查询响应,又能够完全保护隐私,这种条件成立的场景很少见。但是,我们可以通过随机化或近似查询的响应,放松一点精确性,但是数据有较好的隐私性。

    结合上面第一个例子,我们可以设计一种随机机制,当张三对数据发起请求查询q,我们不返回给他一个真实的响应A,而是返回A+N,这里N是一个随机变量,它有如下PMF(概率质量函数:离散随机变量在各特定取值上的概率):

    如果查询q的真实响应是A,返回给张三的结果也是A的概率是25%,返回范围在[A-1, A+1]内的概率是55%(25%+30%),返回范围在[A-2, A+2]内的概率是73%,以此类推。

    当张三发起请求“有多少个女生没通过这个考试”,我们通过以上机制返回响应1,那张三就比较难断定真实的响应是0,1还是2。假如张三在发起查询前,通过查询整体的通过率,可以认为每个人未通过考试的概率是40%,这个是张三现在对这个数据的认识。那返回给他有1个女生没有通过考试的结果后,张三的认识会有什么变化呢,比如,张三可以认为Aisha未通过考试的概率是多少呢?(答案是张三对数据的认识基本没什么变化,分析如下)

    让AF和EF分别表示Aisha和Erica未通过考试,我们想要计算

    由贝叶斯公式

    其中,

    通过平均AF和BF的各种情况,得到

    最终得到

    我们可以从以上的计算中看到,张三知道“有多少个女生没通过这个考试”的近似查询结果后,认为Aisha未通过考试的概率从原来的40%变化为了43%。我们可以认为在查询前后,张三对数据中个人隐私的“认知”或者“知识”几乎没有发生变化,对精确的查询结果加上随机变量噪声的近似方式,加强了数据的隐私性。

     

    2.隐私的定义

    下面我们用数学语言来描述“在查询前后对单个人的隐私认知几乎不发生变化”(semantic privacy),即语义隐私,然后给出一种差分隐私的定义(differential privacy),最后证明这两种隐私定义的关系。

    我们先约定一些符号:

    [公式] 是一个集合,数据库的每一行在这个集合里取值,比如 [公式] 是所有的三元组(姓名,性别,考试通过情况)组成的集合,我们固定数据库的行数为 [公式] ,那么一个数据库 [公式] 是幂集 [公式] ( [公式] 的所有子集组成的集合)中的一个元素。查询是一个函数 [公式] ,输入数据库 [公式] ,输出某些值。

    [公式] 为附加到查询q的随机机制,输入一个数据库 [公式] ,得到一个随机化的查询结果(对应上个例子的A+N这个操作)

    [公式] 为数据库随机变量,[公式] 表示数据库第 [公式] 行内容

    [公式] 为定义在数据库行上的映射,比如输出考试通过情况 [公式]

    [公式] 表示概率分布

    定义1 一个定义域为 [公式] 的机制 [公式] ,如果对于每个 [公式] ,每个数据库 [公式] ,每种 [公式] ,每种可能的 [公式] 的输出 [公式] ,都满足

    则说机制M满足ε-语义隐私。

    我们来看一个极端的设定,当 [公式] ,得到

    也就是说在得到 [公式] 的查询响应y前后, [公式] 在第 [公式] 行上的概率是完全相同的,也可以说在第 [公式] 行上的先验概率和后验概率是相同的,观察 [公式] 的响应后不会揭露第 [公式] 行任何的附加信息。满足这种情况的机制 [公式] 有极好的隐私性,但是也不会提供关于这个数据库的任何信息了。所以,一般让ε 取一个比较小的数,比如0.05,让 [公式] 满足这种条件就可以了,前后的概率仍然相似,又能通过 [公式] 获得一些有用的信息。

    下面我们定义差分隐私,差分隐私比语义隐私在使用上更方便,并且差分隐私蕴含语义隐私。

    定义2 如果对于每一对只有一行不相同的数据库 [公式] 和 [公式] ,以及每种可能的 [公式] 的输出 [公式] ,都满足

    则说机制M满足ε-差分隐私。

    我们再来看当 [公式] 的情况,得到

    然后调换 [公式] 和 [公式] 的角色,我们可以得到另一个方向的不等式,结合通过这两个不等式只有得到

    因为这个等式对所有的 [公式] 都成立,只有 [公式] 和输入没半毛钱关系才行,也就是说独立于输入,那这个查询自然不会反映这一对输入的数据库的信息。也是一般让ε 取一个比较小的数,得到一些折中。

    通过调换[公式] 和 [公式] 的角色,我们也能得到

    直白地说,就是只有一行不同的两个数据库,进行查询机制 [公式] 后,这两个数据库分别得到的结果有相似的概率分布。

    那语义隐私与差分隐私有什么关系呢?可以证明,如果 [公式] 是满足ε-差分隐私的,则[公式] 是满足ε-语义隐私。证明过程可参考[2]

    而且使用差分隐私的定义比语义隐私要更方便,要验证一个机制是满足差分隐私,我们只需要证明对于每一对只有一行不同的数据库,这个机制的不能充分区分它们,而不是像语义隐私,要考虑每个数据库、每一行、每种 [公式] 的先验和后验概率。

     

    3.拉普拉斯机制

    拉普拉斯机制是一种满足差分隐私的机制,主要是应用在计数查询(查询返回的是非负整数组成的向量,为了讨论方便,只考虑查询返回为一个非负整数的情况)

    拉普拉斯机制定义为 [公式] ,其中 [公式] 是对数据库 [公式] 的真实计数查询, [公式] 是概率分布为拉普拉斯分布的随机变量,拉普拉斯分布为

    其中 [公式] 是整数,

    [公式] 是归一化系数。

    这个机制正是第一节我们讨论的那个加入噪声的例子,我们就来证明,拉普拉斯机制是ε-差分隐私的。

    让 [公式] 和 [公式] 为一对只有一行不相同的数据库,由于 [公式] 是计数查询,所以

    对于每一个 [公式] ,

    其中上述式子中的不等式使用绝对值不等式公式可以容易得到。

    所以,拉普拉斯机制是ε-差分隐私的。

    总结

    首先通过描述个人隐私泄露的例子,引出了一种加入噪声的保护机制(其实就是拉普拉斯机制)。通过查询前后对单个人数据的认知变化,开始形式化地定义语义隐私、差分隐私,以及两种隐私的关系,最后,正式介绍在计数查询上的拉普拉斯机制,以及证明了拉普拉斯机制就是满足ε-差分隐私的。后续,我们将更加充分和正式地开始对差分隐私进行探讨。

    参考

    https://zhuanlan.zhihu.com/p/402402476

    1. ^The Algorithmic Foundations of Differential Privacy https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf
    2. ^abhttp://www.cse.cuhk.edu.hk/~andrejb/csci5520/
  • 相关阅读:
    为什么说 Java 程序员必须掌握 Spring Boot ?(转)
    Vert.x 之 HelloWorld
    Vert.x Web 文档手册
    Vert.x Core 文档手册
    Android数据存储五种方式总结
    设置简单的定时
    自定义dialog
    Android DrawerLayout 高仿QQ5.2双向侧滑菜单
    Fragments碎片
    理解Fragment生命周期
  • 原文地址:https://www.cnblogs.com/zhangxianrong/p/15219187.html
Copyright © 2011-2022 走看看