差分隐私
意义与定义
目标
定义
-
差分隐私可以在确保的得出正确结论的前提上,加入“噪声”,从而隐藏个人信息。
-
参数ε是来调整隐私程度的。ε越小,隐私性越好。
应用
差分隐私数据库
特点
- 只回答聚合查询的结果
- 通过查询结果中加入噪声来满足差分隐私
- 例子:微软PINQ、Uber的Chorus
技术难点
- 如何用尽量少的噪声来达到
ϵ
−
\epsilon-
ϵ−差分隐私
- 尤其是在查询需要连接多张数据库表的时候。
- 如何高效的计算查询的敏感度
- 如何将差分隐私模块整合到现有的数据库当中
前景展望
- 现有算法未能在隐私保护、查询准确性及计算率三者取得很好的平衡。
- 如:Uber的chorus在不少查询中误差可达100%以上
差分隐私机器学习
- 在机器学习算法中引入噪声,使得算法生成的模型能满足差分隐私。
- 例子:google的TensorFlow Privacy
- 用于神经网络训练
TensorFlow Privacy基本原理
- 神经网络通常是用随机梯度下降来训练的:
- 从一组随机的神经网络权重参数出发
- 拿到一组随机选取的元组来计算权重的梯度
- 用梯度来更新参数
- 重复2-3
- TensorFlow Privacy 对步骤2中的梯度加入噪声,保证训练过程满足差分隐私。
展望
- 不足
- 准确性有待提高
- 不能很好地处理复杂模型,如GAN
- 新方向
- 联邦学习
- 安全多方计算的结合
差分隐私的数据采集
- 从移动设备采集用户数据。
- 为满足差分隐私,让用户用类似于随机化回答的方法来提供数据
- 如:Chrome、iPhone、iPad、windows 10
技术难点
-
需要采集的数据比较复杂,无法用传统随机化解决。
-
如:用户输入的新单词。
展望
- 多方安全计算结合
差分隐私的数据合成
-
- 基本原理:
- 先对元数据进行建模,得到一个统计模型
- 用统计模型来合成出虚拟数据
- 如:美国普查局的一些数据产品。
- 技术难点:
- 找的合适的统计模型
- 在统计模型中加入噪声,满足差分隐私。
展望
- 目前只能处理关系型数据
- 对于非关系型数据的合成基本还在摸索阶段
- 如图、文本数据等。
涉及知识点
隐私保护系统
隐私保护基础知识
- 一个隐私保护包括各种参与者角色、匿名化操作、数据状态。
- 目标:可用性、隐私性
- X是原始数据,Y是匿名处理数据,X’是Y得解密数据。攻击者得任务就是得到X’
- 隐私性通常用泄漏量L来表示。 λ \lambda λ表示勒贝格测度(Lebesgue measure)
- L = λ ( X , Y ) L=\lambda(X,Y) L=λ(X,Y)
- 数据失真度 D = λ ( X , Y ) D=\lambda(X,Y) D=λ(X,Y)
- 有很多种方法可以计算D和L 如平均均方差 D = 1 n ∑ k = 1 n E [ ( x k − y k ) 2 ] D=\frac{1}{n}\displaystyle\sum_{k=1}^{n}E[(x_k-y_k)^2] D=n1k=1∑nE[(xk−yk)2]
- 其中E[·]表示X,Y联合分布的期望值。
- 如果用信息论中的互信息(mutual information)I[•]度量信息泄漏量L
隐私保护的数学模型
K-匿名模型
- 设T={t1,t2,t3…}是数据集D的一个数据表,A是表中的属性集。A={A1,A2,A3,A4…},C是A的一个子集。则用T[C]={t[c1],t[c2]…}表示T在属性集C上的投影. QI表示一个数据表中所有准标识符集合。 对一个数据表T进行k-匿名化定义,对T中的每个记录t∈T至少存在k-1个其他记录ti1,ti2,⋯,tik−1∈Tti1,ti2,⋯,tik−1∈Tk-1 ,并且对所有的C∈QI,满足t[C]=ti1[C]=ti2[C],⋯tik−1[C]t[C]=ti1[C]=ti2[C],⋯tik−1[C]。例如,在表1中,准标识符的集合为QI={job,age},表2是进行k-匿名化之后的数据(k=2),以确保在数据表中的每个准标识符至少有k个记录与之对应,从而降低重新识别某个特定记录的概率。
差分隐私模型
ε − \varepsilon- ε−差分隐私
- 所有的D1、D2为相邻数据集(即它们至多只有一条记录不同),一个给定的随机化函数G,对所有的S∈Ranger(G)(其表示随机化算法G的输出范围),满足
- $\frac{Pr|G(D1)\in S|}{Pr|G(D2)\in S}\le e^{\epsilon} $
- 也就是说,对于两个具有最小差别的数据集,经过匿名化之后的差异不超过一个给定值 e ε e^ε eε,参数ε称为隐私保护预算(privacy budget),ε越小,隐私保护强度越高。
差分隐私的实现机制有两种
- 如果函数f的输出是数值,则采用拉普拉斯机制。
- 如果函数f的输出是离散值,则采用指数机制。
全局敏感度
- 定义: D − > R d D-> R^d D−>Rd the global sensitivity of f for all pairs of neighboring datasets D and D’ is
- $ GS_f=\displaystyle \max_{D,D’}||f(D)-f(D’)||_1$
- where || · || denotes the L 1 L_1 L1 norm.
- 函数f敏感度是决定注入Laplace噪声量的因素之一,他是指函数f对两个具有最小差别的数据集D1,D2进行操作造成的结果的最大改变。
- 敏感度的值取决于查询函数。
局部敏感度
- 当全局敏感度较大时,必须想输出中添加大量的噪声,以实现差分隐私,这可能会严重损害数据效用。
- St. D-> R d R^d Rd on D is
- L S f ( D ) = max n e i g h b o r i n g d a t a s e t D ′ o f D ∣ ∣ f ( D ) − f ( D ′ ) ∣ ∣ 1 LS_f(D)=\displaystyle\max_{neighboring\ data\ set\ D'\ of D}||f(D)-f(D')||_1 LSf(D)=neighboring data set D′ ofDmax∣∣f(D)−f(D′)∣∣1
平滑敏感度
- 对于一个数据集D 和一个查询函数 f f f,一个函数S:D->R 是一个 L S f ( D ) LS_f(D) LSf(D)的 β \beta β-平滑上界(β>0),
- 如果存在所有的D,使得 S ( D ) > = L S f ( D ) S(D)>=LS_f(D) S(D)>=LSf(D)
- 以及存在所有的D、D’,在 d ( D , D ′ ) = 1 d(D,D')=1 d(D,D′)=1的情况下,使得 S ( D ) ≤ e β ⋅ d ( D , D ′ ) S(D)\le e^{\beta·d(D,D')} S(D)≤eβ⋅d(D,D′)
- 平滑敏感度公式
- S f , β ∗ ( D ) = max D ′ ⋅ e − β ⋅ d ( D , D ′ ) S^*_{f,\beta}(D)=\displaystyle\max_{D'}·e^{-\beta·d(D,D')} Sf,β∗(D)=D′max⋅e−β⋅d(D,D′)
拉普拉斯噪声
- 拉普拉斯噪声就是满足拉普拉斯分布得一个随机值。常用于差分隐私领域。
概率密度
f ( x ∥ μ , b ) = 1 2 b e − ∣ x − μ ∣ b f(x\|\mu,b)=\frac{1}{2b}e^\frac{-|x-\mu|}{b} f(x∥μ,b)=2b1eb−∣x−μ∣
概率图像
KL散度、JS散度和交叉熵
- 三者都是用来衡量两个概率分布之间的差异性的指标。不同之处在于他们的数学表达式。
KL散度
-
Kullback-LeiBler Divergence
-
又称KL距离,相对熵。
-
D ( P ∣ ∣ Q ) = ∑ P ( x ) log P ( x ) Q ( x ) D(P||Q)=\sum P(x)\log\frac{P(x)}{Q(x)} D(P∣∣Q)=∑P(x)logQ(x)P(x)
-
当P(x)和Q(x)的相似度越高,KL散度越小。
-
性质
- 不对称性:尽管直观上是一个距离函数,但并不是一个真正的距离或度量。因为它不具有对称性,即D(P||Q)!=D(Q||P)
- 非负性:相对熵是非负值,即D(P||Q)>0
JS散度
J S ( P ∣ ∣ Q ) = 1 2 K L ( P ( x ) ∣ ∣ P ( x ) + Q ( x ) 2 ) + 1 2 K L ( Q ( x ) ∣ ∣ P ( x ) + Q ( x ) 2 ) JS(P||Q)=\frac 1 2KL(P(x)||\frac{P(x)+Q(x)}2)+\frac 1 2KL(Q(x)||\frac{P(x)+Q(x)}2) JS(P∣∣Q)=21KL(P(x)∣∣2P(x)+Q(x))+21KL(Q(x)∣∣2P(x)+Q(x))
-
与KL不同
- 值域范围
- JS散度的值域范围是[0,1]相同是0,相反是1.相交于KL,对相似度判别更准确了。
- 对称性
- D(P||Q) =D(Q||P)
- 值域范围
-
交叉熵
- 在神经网络中交叉熵函数又可以作为损失函数,它可以衡量P和Q的相似性。
- H ( P , Q ) = ∑ P ( x ) l o g 1 Q ( x ) H(P,Q)=\sum P(x)log\frac 1 {Q(x)} H(P,Q)=∑P(x)logQ(x)1
-
交叉熵和相对熵
- D ( P ∣ ∣ Q ) = H ( P , Q ) − H ( P ) D(P||Q)=H(P,Q)-H(P) D(P∣∣Q)=H(P,Q)−H(P)