最近一直在學習差分隱私,剛開始學的時候由於對這方面的知識不太清楚,一直處於模模糊糊的理解狀態。現在學習了一段時間后開始有了一些初步的認識,所以把學習過程中的一些知識總結一下,方便以后復習,也為其他的小伙伴提供一些思路。由於我也是初學者,所以難免會出現一些錯誤,希望各位大佬可以指出。
本文的主要內容是按照Dwork在2013年寫的The Algorithmic Foundations of Differential Privacy[1]展開的,但是也會穿插自己的一些理解。
整體的邏輯是按照三部分展開:
- 什么是差分隱私,利用一個簡單例子形象說明
- 差分隱私的第一種形式,嚴格差分隱私
- 差分隱私的第二種形式,松弛差分隱私
- 附:符號的一些說明
1 - 什么是差分隱私
差分隱私顧名思義就是用來防范差分攻擊的,我最早接觸到差分攻擊的概念是數據庫課上老師介紹的。舉個簡單的例子,假設現在有一個婚戀數據庫,2個單身8個已婚,只能查有多少人單身。剛開始的時候查詢發現,2個人單身;現在張三跑去登記了自己婚姻狀況,再一查,發現3個人單身。所以張三單身。
圖1-1 差分攻擊示意圖
這里張三作為一個樣本的的出現,使得攻擊者獲得了奇怪的知識。而差分隱私需要做到的就是使得攻擊者的知識不會因為這些新樣本的出現而發生變化。
那怎么做到呢?加入隨機噪聲。比如剛才的例子,本來兩次查詢結構是確定的2和3,現在加入隨機噪聲后,變成了兩個隨機變量,畫出它們概率分布圖。
圖1-2 概率分布圖
現在,如果張三不在數據庫的話,得到結果可能是2.5;張三在的話,得到的結果也可能是2.5;兩個數據集查詢得到某一個結果的概率很接近,以至於我們根本分不清這個結果來自於哪一個數據集,這樣也就實現了攻擊者的知識不會因為張三這個樣本的出現與否而發生變化。
這些只是概念上的理解,總結一下就是對查詢的結果加入噪聲,使得攻擊者無法辨別某一樣本是否在數據集中。一個形象的說法就是,雙兔傍地走安能辨我是雄雌。
2 - 公式化的理解
剛才只是講到概念上的理解,現在從數學上理解一下。上面的查詢函數可以用
表示(這里暫時只考慮輸出結果為1維的情況),隨機噪聲可以用
表示,最終得到的查詢結果就是
,對於兩個漢明距離為1的數據集
,對於任意的輸出集合
,應該有:
圖2-1 差分隱私定義
這是很多博客一上來就直接給出的定義公式,很少有解釋是怎么來的,我在看了The Algorithmic Foundations of Differential Privacy這本書里面的3.5.1才明白。
首先還是得回到圖1-2,我們的目的是使的這兩個分布盡可能地接近,那么衡量兩個分布
的差異自然可以用到我們熟悉的KL-Divergence:

但是我們並不關心這兩個分布的整體差異,我們只需要兩個分布在差距最大的情況下能夠被bound住,所以引入了MAX-Divergence,並且使得它小於
:

化簡一下,利用
指數運算將
符號消去,然后將左邊分母移到右邊,就可以得到最開始的圖2-1 差分隱私定義中定義的內容了。
剛開始讀的時候,我容易把集合
和元素
弄混,后來發現,兩者在表現Max-Dvergence上是等價的。
圖 2-2 bound住Max-divergence
而
就被稱為隱私預算,一般而言,
越小,隱私保護越好,但是加入的噪聲就越大,數據可用性就下降了,如下圖2-3,數據相對於正確的中心值更加分散。對於應用差分隱私的算法,首先會設定整體的隱私預算,每訪問一次數據,就會扣除一些預算,當預算用完,數據就無法再訪問,
圖2-3 更大噪聲水平下的概率分布圖
3 - 差分隱私的松弛
2中定義的差分隱私太過嚴格,在實際的應用中需要很多的隱私預算。因此為了算法的實用性,Dwork后面引入了松弛版本的差分隱私:

還是從對應的Max-Divergence來理解:

相比較於原始的式子,對分子減去了一個
,也就是說我們可以容忍一個較小的差距。
直觀形式如下圖,像圖中標注的位置,本來
是無法bound住,但是我們考慮松弛項
,整體依舊滿足差分隱私。一般
都設置的比較小。
圖3-1 松弛差分隱私
除了Dwork這里定義的松弛差分隱私,后面有許多工作都在圍繞着如何定義出松弛的差分隱私,比如利用 Rényi Differential Privacy, privacy-loss的矩[2]。整體實現的目標就是,可以利用更少的隱私預算,得到相同的噪聲尺度。
4 總結
這篇主要講的差分隱私概念的來源和形式定義,但是對於差分隱私中的噪聲怎么加沒有講,下面應該會去學習差分隱私中Laplace, Exponential, Gaussian三中噪聲機制以及對應的證明。
5 符號
表示一個查詢函數,比如查詢count值,最大值,均值,梯度等等。
表示一個實數的概念,上標如果不寫表示一維數據,比如最大值;如果是
表示n維數據,比如梯度。
表示一個隨機噪聲,可以服從高斯分布或者指數分布。- 兄弟數據及
表示兩個數據集只相差了一個樣本。
表示最終的一個確定的查詢結果
加上一個不確定的隨機噪聲
得到的最終結果。
表示一個很小的值,用來衡量隱私預算。
是一個松弛項,表示可以接受差分隱私在一定程度上的不滿足。
表示的是Renyi divergence,當
取不同值得時候代表不同的Divergence,比如KL-Divergence,Max-Divergence,是衡量兩個分布的一種推廣形式的表達,下一篇會講到。
參考
https://zhuanlan.zhihu.com/p/139114240
- ^The Algorithmic Foundations of Differential Privacy https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf
- ^Deep Learning with Differential Privacy https://arxiv.org/abs/1607.00133
