差分隐私入门
直观原理
- D’和D的区别只在于其中的Alice的数据
- 如果攻击者无法判别信息O是来自于D还是D’,那么我们可以认为Alice的隐私受到了保护
- 差分隐私要求任何被发布的信息都应当与上图中的信息О类似:
- 应当避免让攻击者分辨出任何具体的个人数据
- 为此,差分隐私要求被发布的信息需经一个随机算法所处理,且该随机算法会对信息做一些扰动
数学实质
一个随机算法A满足
ε
\varepsilon
ε-差分隐私,当且仅当
exp
(
−
ε
)
≤
Pr
[
A
(
D
)
=
O
]
Pr
[
A
(
D
′
)
=
O
]
≤
exp
(
ε
)
\exp(-\varepsilon) \leq \frac{\Pr[A(D) = O]}{\Pr[A(D') = O]} \leq \exp(\varepsilon)
exp(−ε)≤Pr[A(D′)=O]Pr[A(D)=O]≤exp(ε)
对任意“相邻”数据集D和D‘及任意输出O都成立
原始数据集D在算法A中输出0的概率与加入噪音的数据集在算法A输出0的概率相比的值在e的- ε \varepsilon ε次方到e的 ε \varepsilon ε次方之间,即说明对算法A的输出分布不会受到太大影响。
之所以做这样的要求就是为了保证算法输出对于当某个数据受到修改后并不会受太大影响,由此攻击者反推算法就不能确定该数据是否存在于数据集中。
设计差分隐私的一般做法:
- 从一个不满足差分隐私的算法出发
- 往算法里适当地加入一定的噪声,以使其输出满足差分隐私的要求
拉普拉斯机制
假设我们有一个病患数据集D
考虑以下数据库查询:
SELECT COUNT(*) FROM D WHERE Type =”糖尿病患”
如果我们要发布这个查询结果,如何才能满足 ε \varepsilon ε-差分隐私?
- 首先,让我们考虑这个查询的结果有多依赖于某个特定病人的信息
- 如果我们修改D中任意一个病患的数据,上述查询结果最多会变多少?
- 答案∶最多改变1。
- 直观地说,如果我们能用噪声来“掩盖”这种不大于1的改变,就能满足差分隐私
具体来说,我们可以往查询结果中加入一个服从拉普拉斯分布的噪声
p
d
f
(
x
)
=
1
2
λ
e
x
p
(
−
∣
x
∣
λ
)
pdf(x)=\frac{1}{2\lambda }exp(-\frac{|x|}{\lambda })
pdf(x)=2λ1exp(−λ∣x∣)
参数 λ \lambda λ设为 1 ϵ \frac{1}{\epsilon } ϵ1,即能满足 ϵ \epsilon ϵ-差分隐私
SELECT 3 * COUNT(*) FROM D WHERE Type =”糖尿病患”
如果要发布的是上面这个查询结果呢?
首先,如果我们修改一个病患的数据,则上述查询结果最多改变3
我们可以对其加入拉普拉斯噪声,并把参数
λ
\lambda
λ设为
3
ϵ
\frac{3}{\epsilon }
ϵ3,即能满足
ϵ
\epsilon
ϵ-差分隐私
- 一般而言,如果我们要发布一组数值型查询结果,我们可以对每个结果加入独立的拉普拉斯噪声来满足差分隐私
- 噪声参数
λ
\lambda
λ取决于当我们修改一个人的数据时,查询结果总共会改变多少
- 一组查询总共的“最大改变”被称为他们的敏感度
- 取 λ \lambda λ=敏感度/ ϵ \epsilon ϵ即能满足c-差分隐私
随机化回答机制
由于拉普拉斯机制用于数值型数据,当不是数值型数据时,可以使用随机化回答机制,它可用于数据采集
-
假设我向一组人问一个敏感的是非题
-
出于隐私,有的人可能不愿意给真实答案
-
解决方案:让每个人在他的答案中加入噪声
-
随机化回答可以满足 ϵ \epsilon ϵ-差分隐私
-
直观原因:由于其随机性。攻击者并不能从随机化的输出反推出输入到底是“yes”还是“no”
-
只要根据 ϵ \epsilon ϵ 来调整随机化的概率即可
-
与此同时,我们依然可以通过随机化回答的输出来回答如下问题:
- 大概有多少人的真实回答是“yes"?
从随机化回答获得统计信息
- 假设有10000人用随机化回答给了我回复
- 当中有5500个yes和4500个no
- 每个人以80%概率给我假回复
- 所以大致上总共有8000个假回复
- 当中大致上有4000个假yes和4000个假no
- 据此,我可以推出剩下的真实回复里大概有1500个yes和500个no
- 所以大概75%的人的真实答案为yes
总结
- 通过随机修改回复来满足差分隐私
- 由于修改时引入的噪声分布已知,因此我们仍可以反推源数据的大致分布
- 但无法反推出个体回复
差分隐私在不同领域的应用
差分隐私数据库
- 只回答聚合查询的结果
- 通过往查询结果中加入噪声来满足差分隐私
技术难点:
- 如何用尽量少的噪声来达到
ϵ
\epsilon
ϵ-差分隐私
- 尤其是在查询需要连接多张数据库表的时候
- 如何高效地计算查询的敏感度
- 如何将差分隐私模块整合到现有数据库当中
差分隐私机器学习
- 在机器学习算法中引入噪声,使得算法生成的模型能满足差分隐私
- 例子∶谷歌的TensorFlow Privacy
TensorFlow Privacy的基本原理
-
神经网络通常是用随机梯度下降来进行训练的:
1.从一组随机的神经网络权重参数出发2.拿一组随机选取的元组来计算权重的梯度
3.用梯度来更新权重参数
4.重复步骤2-3
- TensorFlow Privacy对步骤2中的梯度加入噪声,以保证训练过程满足差分隐私
差分隐私数据采集
- 场景:从移动设备采集用户数据,如应用程序的使用时长等
- 为满足差分隐私,让用户采用类似于随机化回答的方法来提供数据
技术难点:
需要采集的数据可能比较复杂,无法用传统随机化回答解决
例子︰用户输入的新词(字典里面没有的)
为此,谷歌、苹果和微软都因应其采集需要提出了新的随机化算法
差分隐私数据合成
基本原理:
-
先对源数据进行建模,得到一个统计模型
-
用统计模型来合成出虚拟数据
技术难点:
- 如何找到一个合适的统计模型?
- 如何在统计模型中加入噪声,以满足差分隐私?