1 前置知識
本部分只對相關概念做服務於差分隱私介紹的簡單介紹,並非細緻全面的介紹。
1.1 隨機化演算法
隨機化演算法指,對於特定輸入,該演算法的輸出不是固定值,而是服從某一分佈。
單純形(simplex):一個\(k\)維單純形是指包含\(k+1\)個頂點的凸多面體,一維單純形是一條線段,二維單純形是一個三角形,三維單純形是一個四面體,以此類推推廣到任意維。“單純”意味著基本,是組成更復雜結構的基本構件。
概率單純形(probability simplex):是一個數學空間,上面每個點代表有限個互斥事件之間的概率分佈。該空間的每條座標軸代表一個互斥事件,\(k-1\)維單純形上的每個點在\(k\)維空間中的座標就是其\(k\)個互斥事件上的概率分佈。每一點的座標(向量)包含\(k\)個元素,各元素非負且和為1。
如下圖所示,三個事件發生的概率分佈形成一個二維的概率單純形,上面每個點在三個事件上發生的概率之和為1。
形式化定義:給定一個離散集\(B\),\(B\)上的概率單純形\(\Delta(B)\)被定義為
\(\Delta(B)\)是一個集合,集合中每一個元素是一個\(|B|\)維向量,該向量代表了一個離散型隨機變數的概率分佈。\(\Delta(B)\)代表了一個有\(|B|\)種取值的離散型隨機變數的所有可能的概率分佈。
隨機化演算法(randomized algorithm):一個隨機化演算法\(\cal{M}\)有定義域\(A\)、離散的值域\(B\)。一個輸入\(a\in A\),演算法\(\cal{M}\)的輸出\(\mathcal{M}(a)\)是一個隨機變數,服從概率分佈\(p(x)=\operatorname{Pr}(\mathcal{M}(a)=x),x\in B\),並且\(p(x)\in \Delta(B)\)。
例如,\(A=\{2,3,4\}\),\(B=\{1,2,3,4,5\}\),設\(\Delta(B)\)中包含三個元素,分別為\((\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0)\)、\((0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0)\)、\((0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3})\),即
每個元素均代表演算法輸出的隨機變數取值為1,2,3,4,5的概率分佈,現可以規定對映\(\cal{M}\)為
也就是說,一個特定輸入\(a\in A\)經過隨機化演算法\(\cal{M}\)得到的不是一個具體值\(b\in B\),而是一個隨機變數\(\mathcal{M}(a) \sim p(x),p(x)\in \Delta(B)\),又或者說,演算法將以一定概率輸出某一個值。
上述情況是在離散概率空間中討論的,有時,演算法將從連續分佈中的取樣,但最後將以適當的精度進行離散化。
1.2 KL散度(KL-Divergence)
KL散度(Kullback Leible-Divergence)概念來源於概率論與資訊理論,又被稱作相對熵、互熵。從統計學意義上來說,KL散度可以用來衡量兩個分佈之間的差異程度,差異越小,KL散度越小。
熵(entropy):資訊理論中熵定義首次被夏農提出:無損編碼事件資訊的最小平均編碼長度。通俗理解,如果熵比較大,即對該資訊進行編碼的最小平均編碼長度較長,意味著該資訊具有較多可能的狀態,即有著較大的資訊量/混亂程度/不確定性。從某種角度上看,熵描述了一個概率分佈的不確定性。
一個離散的隨機變數\(X\)可能取值為\(X=x_1,x_2,...,x_n\),即取值空間為\(\cal{X}=\{x_1,x_2,...,x_n\}\),概率分佈律為\(p(x)=\operatorname{Pr}(X=x),x\in \cal{X}\),則隨機變數的熵定義為
規定當\(p(x)=0\)時,\(p(x)\log p(x)=0\)。
其中,\(-\log p(x)\)表示狀態\(X=x\)的最小編碼長度。
\(\operatorname{Pr}(A)\)也即\(\operatorname{P}(A)\),表示事件\(A\)發生的概率,只是書寫習慣不同,避免與其他\(P\)混淆。
有時也將上面的量記為\(H(p)\);
公式中的\(\mathbb{E}_{x \sim p}\)表示使用概率分佈\(p\)來計算期望;
其中\(\log\)以2為底時,熵單位為bit,以e為底時,熵單位為nat;
上述的對熵的討論也只是針對離散隨機變數進行討論的,\(p(x)\)在離散型隨機變數中為概率分佈律,在連續型隨機變數中為概率密度函式;
交叉熵(cross-entropy):熵的計算是已知各狀態的概率分佈求其理論上最小平均編碼長度。如果不知道各狀態真實的概率分佈\(p(x)\),只有預估的概率分佈\(q(x)\),我們只好根據預估的概率分佈\(q(x)\)給事件編碼,得到事件各狀態\(x\)的預估最小編碼長度\(-\log q(x)\)。假如經過觀測後我們得到了真實概率分佈\(p(x)\),那麼在計算預估最小編碼長度\(-\log q(x)\)的期望時就可以採用真實概率分佈\(p(x)\),得到交叉熵。
對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),交叉熵定義為
即用預估概率分佈\(q(x)\)計算每個狀態的最小編碼長度,用真實概率分佈\(p(x)\)求期望。可見,\(H(P,Q)\neq H(Q,P),H(P,Q)\geqslant H(P)\)。
上述定義也可寫作:對於取值空間\(\cal{X}\)的離散隨機變數\(X\),有兩個分佈\(p(x),q(x),x\in \cal{X}\),這也是《資訊理論基礎(原書第二版)》的表達方式;但考慮到一個隨機變數對應一個分佈更嚴謹些,便分成了同一取值空間的兩個隨機變數進行解釋,這是《The Algorithmic Foundations of Differential Privacy》的表達方式。二者意思是一樣的。
相對熵(relative entropy)/KL散度(KL-divergence):用來衡量交叉熵與熵之間的差距的,也是兩個隨機分佈之間距離的度量。
對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),則\(P\)相對\(Q\)的相對熵為\(P,Q的交叉熵-P的熵\):
可見,KL散度也可以用來衡量兩個分佈\(P,Q\)的差異程度,另外,\(D_{K L}(P \| Q) \neq D_{K L}(Q \| P)\geqslant 0\)。
最大散度(Max Divergence):KL散度是從整體上衡量兩個分佈的距離,最大散度是兩個分佈比值的最大值,從兩個分佈比值的最大值角度衡量了兩個分佈的差異。
對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),最大散度為
2 差分隱私定義
差分隱私是Dwork在2006年首次提出的一種隱私定義,函式的輸出結果對資料集中任何特定記錄都不敏感。
假設對於一個考試成績資料集\(D\),通過查詢操作得知有\(x\)個同學不及格,現加入一條新紀錄得到新資料集\(D'\),通過查詢得知有\(x+1\)個同學不及格,便可推理出新加入的同學成績不及格,如此一來,攻擊者便通過這樣的手段推理出了一些知識。
應對上述攻擊,差分隱私通過往查詢結果\(f(D),f(D')\)中加入隨機噪聲\(r\)最終得到查詢結果\(\mathcal{M}(D)=f(D)+r,\mathcal{M}(D')=f(D')+r\),使得\(D\)與\(D'\)經過同一查詢後的結果並非確定的具體值,而是服從兩個很接近的概率分佈,這樣攻擊者無法辨別查詢結果來自哪一個資料集,保障了個體級別的隱私性。
2.1 形式化定義
鄰接資料集(neighbor datasets):僅有一條記錄不同的兩個資料集\(D\),\(D'\)。
隨機化演算法\(\cal{M}\):隨機化演算法指,對於特定輸入,該演算法的輸出不是固定值,而是服從某一分佈。
隱私預算\(\epsilon\)(privacy budget):\(\epsilon\)用於控制演算法的隱私保護程度,\(\epsilon\)越小,則演算法保護效果越好。
隱私損失(privacy loss):對於任意的輸出結果\(S\),\(\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}\)或\(\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) = \mathrm{\xi}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) = \mathrm{\xi}\right]}\),其描述了演算法\(\cal{M}\)在鄰接資料集上輸出同一個值的概率差別大小,差分隱私機制將演算法的隱私損失控制在一個有限範圍\(\epsilon\)內。
隱私損失可正可負,越正和越負都表示隱私損失很大,因此嚴格來說隱私損失應加個絕對值,為
當然,如沒有加絕對值的地方預設\(\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}] \geqslant \operatorname{Pr}[\mathcal{M}(\mathrm{D'}) \in \mathrm{S}]\)。
\(\epsilon-\)差分隱私:對於只有一個記錄不同的鄰接資料集\(D\)、\(D'\),給這兩個資料集施加一個隨機化演算法(機制)\(\cal{M}\),對於所有的\(S\subseteq \operatorname{Range}(\mathcal{M})\),若有
即
成立,則稱演算法\(\cal{M}\)滿足\(\epsilon-\)差分隱私。
其中\(\operatorname{Range}(\mathcal{M})\)是隨機演算法\(\cal{M}\)對映結果隨機變數的取值空間,\(S\)是其子集;對於所有的\(S\subseteq \operatorname{Range}(\mathcal{M})\)即對於\(\operatorname{Range}(\mathcal{M})\)的所有子集。
另種寫法:
\[\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S \]即
\[\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] \leqslant \epsilon \]
\((\epsilon,\sigma)-\)差分隱私:上面描述的是嚴格的差分隱私的定義,為了演算法的實用性,Dwork後面引入了鬆弛的差分隱私,加入一個小常數\(\delta\)(稱作失敗概率):
2.2 該定義是如何得來的
差分隱私的目的是使\(\mathcal{M}(D),\mathcal{M}(D')\)的分佈儘可能接近,便可用Max Divergence衡量兩個分佈的差異:
其中\(S\subseteq \operatorname{Range}(\mathcal{M})\),\(\operatorname{Range}(\mathcal{M})\)是隨機演算法\(\cal{M}\)對映結果隨機變數的取值空間,\(S\)是其子集。
對於\(\operatorname{Range}(\mathcal{M})\)的所有子集,即對於任意的\(S\subseteq \operatorname{Range}(\mathcal{M})\),兩個分佈的差異都被限制在隱私預算\(\epsilon\)以內:
可見,上述的Max Divergence就是隱私損失。
取\(\log\)的底為\(e\),並兩邊同時利用指數運算、乘以分母變形得:
或
3 差分隱私中常用的隨機化演算法(機制)
常用的隨機化機制有:
- 拉普拉斯機制(Laplace mechanism)
- 指數機制(Exponential mechanism)
- 高斯機制(Gaussian mechanism)
這些機制中,噪聲發現取決於演算法的敏感度。
敏感度(sensitivity):對於只有一個記錄不同的兩個資料集\(D,D'\),對於一個函式\(\mathcal{M}:\cal{D} \rightarrow \cal{R^d}\),則\(\cal{M}\)的敏感度為接收所有可能的輸入後,得到輸出的最大變化值:
其中,\(\|\cdot\|\)表示向量的範數。\(l_1-\)敏感度和\(l_2-\)敏感度分別適用於\(l_1\)範數和\(l_2\)範數。
參考資料:
- 概率單純形 https://zhuanlan.zhihu.com/p/479892005
- 【數學知識】KL散度 https://zhuanlan.zhihu.com/p/365400000
- 一文搞懂熵(Entropy),交叉熵(Cross-Entropy) https://zhuanlan.zhihu.com/p/149186719
- 差分隱私Differential Privacy介紹 https://zhuanlan.zhihu.com/p/40760105
- 差分隱私(一) Differential Privacy 簡介 https://zhuanlan.zhihu.com/p/139114240
- 差分隱私的演算法基礎 第二章 第三節 形式化差分隱私 https://zhuanlan.zhihu.com/p/502656652
- 《聯邦學習》楊強.et al 電子工業出版社
- 機器學習的隱私保護研究綜述. 劉俊旭 孟小峰 doi: 10.7544/issn1000-1239.2020.20190455
- 《The Algorithmic Foundations of Differential Privacy》3.5.1
- 《資訊理論基礎(原書第2版)》Thomas.et al 機械工業出版社