導讀:近年來,隨著 GDPR 通用資料保護條例出臺以及一些網際網路公司資料隱私洩漏等事件的發生,資料隱私的保護問題在行業應用中備受關注。與資料密切相關的機器學習演算法的安全性成為一個巨大挑戰。本文將介紹在機器學習領域中資料隱私安全的相關工作,並介紹第四正規化在差分隱私演算法效果提升上所做的工作。
主要和大家分享資料隱私的3方面:
- 隱私保護的問題與案例
- 基於資料的隱私保護技術:資料匿名化
- 機器學習模型訓練中的隱私保護技術:差分隱私
▌機器學習中的隱私保護問題
1. 資訊隱私
資訊隱私 ( Privacy ):指的是當一個組織內敏感資料被擁有許可權的人員所使用於某些技術、過程 ( 如資料分析、訓練模型 ) 時,對資料敏感資訊進行保護的過程與規則。
資料的隱私 ( Privacy ) 與安全 ( Security ) 並不等價:有的時候很多人提到資料隱私時,會與資料安全混為一談,但其實兩者並不等價。資料安全通常指防止資料被非法訪問;而資料隱私則一般指在資料被合法訪問時,防止其中的敏感資訊被訪問者以某些方式"逆向"獲取,避免因資料被"逆向"推匯出而造成的敏感資訊洩露和濫用。當然,對於企業來說,資料隱私和資料安全都非常重要。
2. 資訊隱私問題
如今,在很多需要用到私人敏感資料的領域中,都存在資料隱私的問題。特別地,當機器學習技術應用在一些個人隱私資料上時,可能會暴露敏感資料,對個人造成很多負面影響。
雖然現實生活中有很多資料隱私的問題,但嚴格意義上,個人隱私不可能被絕對保護。
1977年,統計學家 Tore Dalenius 給出關於資料隱私的嚴格定義:攻擊者不能從隱私資料裡獲取任何在沒有拿到資料之前他們所不知道的個人資訊。
2006年,計算機學者 Cynthia Dwork 證明上述定義的隱私保護是不存在的。有一個直觀例子可以幫助理解:假設攻擊者知道 Alice 的身高比 Lithuanian 女性平均身高高2英寸,這樣攻擊者只需要從一個資料集裡獲得 Lithuanian 女性身高平均值 ( 在接觸資料前攻擊者並不知道 ),就能準確獲得 Alice 的精確身高,甚至 Alice 都不需要在這個資料集裡。因此,對於一份有資訊量的資料,不可能完全不暴露隱私資訊。
3. 隱私洩露的危害
隱私洩露的危害,主要有:
- 隱私資訊被應用於欺詐與騷擾:如盜刷信用卡、電話詐騙、冒用身份等
- 使用者安全受到威脅:使用者資訊受到洩露,引起更多有目的犯罪
- 非法機構利用使用者隱私資訊操控使用者
- 使用者信任危機
- 違背相關法律
不過一般來說,對於不特別極端的情況,我們仍可以從很大程度上來保證資料在機器學習過程中不被洩露。
這裡再分享一個隱私洩露的案例:
1997年,馬薩諸塞州 GIC 對外公佈了一組醫療資料,其中包括病人的5位郵編、性別、生日。州長 Weld 對公眾保證這份資料是匿名的,因為標識特徵 ( 如名字地址 ) 已經被移除。結果一位 MIT 畢業生透過結合這份資料與她花了20美元購買的選民登記資料,找到了 Weld 的醫療記錄。同時,她還宣佈87%的美國公民可以透過5位郵編、性別、生日進行唯一標識。
這個真實案例印證了:任何有一定資訊量的資料都有可能產生隱私洩露;單純的資料匿名方法是很難保護隱私的。接下來,我們來看一下,針對潛在的隱私洩露問題我們有哪些技術可以在很大程度上杜絕隱私的洩露。
▌資料匿名化技術 ( Data Anonymization )
資料匿名化是一個從資料層面上進行隱私保護的技術。匿名化很多時候是透過 hash 掉"姓名"等關鍵識別符號來實現的。而在只簡單 hash 掉姓名的情況下,資料訪問者有很多方法透過利用其它特徵的資訊來反推出某人在資料表中對應的那一條資料。這時候,就需要一種技術來防止訪問者能夠透過結合多個特徵的資料來確定人與資料間的對應關係。
1. 資料表中資料列的類別 ( 按所含隱私量分類 )
- 標識列 ( Key Attribute,簡稱 KA ):單憑其一列便能直接鎖定某人的資料列,如:身份證號、姓名 ( 大多數情況下 );
- 半標識列 ( Quasi-identifier,簡稱 QID ):無法單憑其一列確定物件,但透過結合多列資料或查其它資訊 ( 縮小範圍 ) 可以對應到個人的資料列,如:生日、郵編等;
- 敏感資訊列 ( Sensitive Attribute,簡稱 SA ):如疾病、收入等。
雖然只有標識列的資料能夠直接縮小範圍到單個樣本,但如前文所述,僅匿名化標識列資料對於隱私保護是完全不夠的。
2. 攻擊方法與防護方法
① 連結攻擊
連結攻擊 ( Linkage Attack ):透過獲取其它渠道的資訊 ( 如右表 ) 來鎖定 ( 見左表 ) 當前資料表中資料所對應的個人。
② K-Anonymity
K-匿名 ( K-Anonymity ):針對連結攻擊的防護方法。對於每一份資料的各版本內的每一條記錄,規定至少有 K-1 條其它記錄的半標識屬性與其一致。
上方右表就是對上方左表做"3-匿名"之後的結果:我們可以發現,在統一對"zipcode"、"age"、"sex"三列的資料的末尾作模糊 ( 相當於匿名化 ) 處理後,含有"zipcode:47677**,age:2*,sex:*"的資訊的資料共有3條 ( 這3條記錄中的任一條,均滿足至少有3-1=2條其它記錄的半標識屬性與其一致 );左表原資料中的另外3條經變換後也滿足3-匿名的條件。
左表在 K-Anonymity 之後,雖然資料會有所損失,但保證了每條資料中的敏感資訊無法與個人一一對應,降低了隱私洩露的風險。如何在儘可能小的資料損失的情況下做 K-Anonymity 也是一個資料隱私的研究方向。
③ Homogeneity attack
同質化攻擊 ( Homogeneity Attack ):可剋制 K-Anonymity 防護的攻擊。某些情況下,可透過直接對比其它列資訊或查詢其它外部資料發現,K-Anonymity 中半標識列均相同的 ( 至多 ) K 條資料的其他列的資訊其實是同質的,因而確定下來某人的隱私資料。
上方右表說明:經對比可發現 Bob 必然患有 Heart Disease;而假如能夠另透過查資料發現 Carl 所在地人們普遍患有 Heart Disease,就還可以推斷出 Carl 大機率是患 Heart Disease 的那例樣本。
④ L-Diversity
L-散度 ( L-Diversity ):對 K-Anonymity 的改進。在滿足 K-Anonymity 的基礎上,要求所有等價類 ( 即各半標識列資訊均相同的一些樣本 ) 中的敏感資訊 ( 如:病史中的 Heart Disease、Flu ) 的種類/取值至少有 L 種。上表就是一個滿足3-散度的資料。
⑤ 相似性攻擊
相似性攻擊 ( Similarity Attack ):可對滿足 L-Diversity 的資料進行攻擊。從外界獲取個人多方面的背景資訊,縮小範圍以鎖定目標。
⑥ T-Closeness
T-保密 ( T-Closeness ):對 L-Diversity 的擴充。對於滿足 K-Anonymity 的資料,規定每一個等價類中的敏感資訊的分佈與資料集整體的敏感資訊分佈的距離 ( 可自行定義,常見的有:K-L 散度 ) 小於 T。
▌差分隱私 ( Differential Privacy ) 技術
除了資料匿名化不當以外,由資料和特定建模方法得到的模型同樣有隱私洩露的風險 ( 被攻擊獲取到原資料中的隱私資訊甚至原資料本身 )。差分隱私在機器學習模型的建模過程中應用較廣。
1. 模型的隱私保護風險
未經過隱私保護處理的機器學習模型理論上可能暴露訓練資料裡的敏感資訊。
Membership inference attack:
成員推斷攻擊 ( Membership Inference Attack ):探測一個給定樣本是否屬於訓練某"待破解"模型 ( target model ) 的原資料集。
步驟 ( 參考論文見上圖 ):
① 模擬生成和訓練 target model 的原資料集分佈類似的一系列資料集 ( 即shadow datasets ),用與訓練 target model 相同的訓練演算法 ( 訓練演算法是什麼很容易得知 ) 去訓練出對應的一系列的模型,這些模型稱為 "shadow models",這些 shadow models 和 target model 的特徵分佈是很像的;
② Attack Model 的訓練。資料集構成:對於每一個 shadow datasets 中每一條資料,可以構建此條資料在某個 shadow model 上的預測結果、該資料真實 label 作為訓練樣本,將此條資料是否屬於之該 shadow model 作為標籤。透過構建的資料集再即可訓練 Attack Model,能夠判斷任意一條給定的資料是否屬於原資料集;
③ 對於一條資料,對於該資料 target model 的預測結果和真實 label 作為輸入,透過判斷模型就可以判斷出該資料是否屬於 target dataset 的。
右圖為上述思路的一例實際應用,可以看出如果對訓練模型的方法不加處理的話,原資料集被成員推斷攻擊法破解的程度還是很高的。
Model Inversion Attack:
模型逆向攻擊 ( model inversion attack ):是指攻擊者透過模型與某個樣本的其他特徵,直接推斷某個敏感特徵值。
2. 差分隱私技術 ( Differential Privacy )
如果對於任兩個只相差1個樣本的資料集 D1、D2,在透過過程 M 建模後,產生的模型與給定模型t完全相同的機率之比不大於 eε ( 其中 ε 為某非負數,為隱私預算 ),那麼我們說建模過程 M 是 ε-差分隱私的。
理解:如果建模過程 M 是 ε-差分隱私的,且 ε 很小,那麼資料集和其訓練出來的模型關係很小,即兩個相差有固定上限的資料集訓練出來的模型是幾乎一樣的,所以拿到模型的訪問者即便知道大致的資料分佈也並不能推斷出原資料集;反之,如果 ε 很大,那麼兩個相差有固定上限的資料集訓練出來的模型可能天差地別的,那麼這種情況下,原資料集與得出的模型間一一對應的比例很高,知道訓練出來的模型就很有可能能夠透過模型的分佈倒推出原資料集。也就是說,如果改變一條的資料對最終得到的模型影響很小,那麼資料集隱私暴露的風險就很小,反之則很大。
① 差分隱私下的模型訓練
- 對目標函式新增一定的噪聲:訓練出來的模型會帶有一定的隨機性,可證明這樣的隨機性可滿足差分隱私。
- 在梯度上加噪聲:深度學習比較常用,因為對於深度學習模型,如果把噪聲加在目標函式或輸出上,差分隱私的分析會很複雜。
- 在模型輸出上加噪聲:使得不一樣的原資料集輸出的模型差異變小。
不過,作為代價,資料隱私保護得越好,演算法的效能下降得越多。在訓練樣本複雜度相同的情況下,隱私保護越好 ( ε 越小 ),泛化誤差越大。
② 基於特徵切分的差分隱私演算法
按特徵來切分做差分隱私,而非做基於樣本切分的差分隱私:
資料先按樣本切分為上下2份,其中一份按特徵切成 K 份去學 K 個子模型,這些子模型再在剩下的一半樣本上用預測值去融合出新的 ( 第二層的 ) K 個子模型,其中切分和融合都是用差分隱私去做的。可證明最後總的輸出是滿足差分隱私的。
按特徵切分的原因:
③ 在遷移學習中的應用
按②中所述方法做特徵切分,在假設遷移部分對子模型做差分隱私保護,最後做含差分隱私的融合。
今天的分享就到這裡,謝謝大家。