我的數據挖掘和我的隱私保護,並不是魚與熊掌,可視分析的技術手段可以幫助咱們保護我的隱私數據,避免後續的數據挖掘暴露隱私的同時,平衡數據質量發生的變化,減小對後續數據挖掘的影響。針對網絡數據中的隱私保護問題,浙江大學、加州大學戴維斯分校和阿里雲DataV團隊,共同發表了最新的研究成果《GraphProtector: a Visual Interface for Employing andAssessing Multiple Privacy Preserving Graph Algorithms》【1】,這項成果也已論文形式收錄在IEEE TVCG中。算法
關係描述了人與人之間的互相聯繫,它能夠是一種靜態的鏈接,如「親屬」、「朋友」等,也能夠是動態的,經過動做將其關聯,例如「通話」、「郵件」等。科技的進步使得人與人之間的聯繫更爲密切,關係變得更復雜,進而造成了一張偌大的網,所以,咱們也把這類數據稱之爲網絡數據(或圖數據)。網絡數據的研究被普遍應用於各個領域,它可以幫助識別社團、劃分人羣,定位特殊人物、研究信息傳播、追蹤欺詐行爲等。但在對這類數據進行研究的同時,伴隨着巨大的隱私泄露風險。爲了可以在探索數據背後巨大價值的同時,保護用戶的隱私不被泄露,咱們提出了一個可以應對網絡數據隱私攻擊,提供有效隱私保護的可視分析系統——GraphProtector,它不只可以更全面、更細緻地保護用戶隱私,同時也可以兼顧數據的實用性,保證數據的質量。安全
針對網絡數據的隱私保護相較於通常數據而言,更爲困難,緣由主要有如下兩點:服務器
1) 網絡數據自身結構特徵繁多,例如,度數分佈,最短路徑分佈,接近中心性分佈等,任意的結構特徵都有可能成爲攻擊者的攻擊入口,可謂是防不勝防;網絡
2) 網絡數據中節點和邊都攜帶了大量的數據,這些數據無疑給了攻擊者更多的機會去識別用戶現實世界中的身份。佈局
所以,想要徹底解決圖數據中的隱私問題,將會是一個很是複雜和困難的工做。在當前階段,咱們將研究的重點放在了網絡數據的結構特徵上,經過修改圖的結構特徵保護用戶的身份不被泄露。其中,之因此選擇結構特徵做爲着手點,最重要的緣由是結構特徵是網絡數據的基礎屬性,解決結構特徵暴露的隱私風險是是解決隱私暴露的必經之路。在此次的研究中,咱們先以如下三種結構特徵做爲示例:阿里雲
度數:節點度數是和它關聯的邊的總數(如圖二中,圖c表格中Degree展現了原始圖圖a的度數分佈);編碼
中心指紋:是指在最長路徑i
的限制下,圖中普通節點和中心節點們之間的最短路徑所造成的向量。這裏爲了簡化複雜度,咱們取i
設爲了1
,即普通節點和中心節點們是否存在相鄰關係做爲節點的中心指紋(如圖二中,圖c中HubFingerprint爲選取了原始圖圖a中4號節點和7號節點做爲中心的的中心指紋分佈);spa
子圖:指節點集和邊集分別是某一圖的節點集的子集和邊集的子集的圖(如圖二中,圖b爲原始圖圖a的子圖);設計
前人的研究提供了多種隱私匿名保護思路,如k-匿名、聚類和查分隱私等等,咱們在研究中選取了k-匿名模型做爲咱們保護的基本方法。k-匿名模型是最經典的語義匿名模型之一,在隱私保護領域獲得了普遍的應用,在這個模型中,它經過準標識符將數據分紅若干個等價類(例如度數相同的節點造成了一個度數等價類,中心指紋相同的節點造成了一箇中心指紋等價類,結構相同的子圖造成了一個子圖等價類),並要求每一個等價類中至少存在k個數據記錄(例如當k爲2時,k-匿名模型要求每個度數等價類中至少存在2個節點),對於這k個數據記錄中的任意一條,被識別出的機率爲1/k,從而使得攻擊者沒法肯定他們的攻擊目標。code
經過前人的研究分析咱們得知,沒有任何一種隱私保護方法可以抵抗全部的攻擊,k-匿名模型是衆多方法中最爲強大的一種,它在必定條件下能夠抵抗大部分的隱私攻擊,而且對於數據質量傷害的程度較小,使得通過隱私匿名保護後的數據仍然可以應用於後面的分析和研究中。
在k-匿名模型的基礎上,爲了儘量地減小對數據質量的損害,咱們採起了保持節點個數不變,僅增長或減小邊的策略。同時,在目前咱們的研究中,爲了減小保護方法之間的衝突以及下降計算的複雜度,咱們首先將研究的重點放在了增長邊的策略上。
上文中屢次提到了「數據質量」,保證數據質量是咱們隱私保護過程當中的一個重要目標(試想,若是不考慮數據質量,咱們徹底能夠同化全部的用戶數據,這樣一來攻擊者將沒法定位到攻擊目標,但這樣的數據卻失去了研究意義)。在使用k-匿名模型增長邊的方法來保護數據隱私時,有兩種處理策略:
1)爲當前等價類中的元素增長適當的邊,使得這些元素所有轉移到其餘等價類中,使得當前等價類不存在,也就不會存在隱私暴露風險;
2)爲其餘等價類中元素增長適當的邊,使其中的元素轉移到當前等價類中,從而使當前等價類知足k-匿名模型的要求。基於保護數據質量的目的,對於這兩種策略,咱們將計算它們的代價,及增長邊的數量,採起代價較小的的方法執行。咱們設計了詳細的算法來實現這一目標。另外一方面,對於數據質量的變化,系統提供若干的實用性指標,如度數、最短路徑等,咱們將在數據處理中以及數據處理後呈現這些指標的變化,幫助使用者進行決策,從而可以採起「最優」的解決方案。
下圖展示了採用GraphProtector
進行網絡數據隱私保護的流程:
數據導入:首先,導入待保護的網絡數據,系統將使用節點鏈接圖的形式呈現原始數據。此外,系統還提供一些原始數據的結構特徵分佈供使用者觀察和探索。
優先級制定及評估指標選取:在這個階段,經過觀察原始數據的結構特徵分佈,使用者對節點的優先級進行排序,優先級排序決定了節點的處理順序,排序較高的節點將會被優先處理。此外,使用者在優先級排序時能夠鎖定一些節點,被鎖定的節點(通常爲比較重要的節點,如核心人物等)將不會參與處處理過程當中,所以在隱私保護處理先後,它的關聯關係將不發生改變。在這個階段,使用者還須要選擇關注的實用性指標,在數據處理先後,系統將呈現這些指標的變化,使用者能夠經過它們來評估數據質量的變化。
隱私保護處理:通過以上步驟,咱們進入了隱私保護的核心步驟,系統在這個階段提供多個保護器(Protector)用來進行隱私保護處理。每個保護器僅針對一種結構特徵,使用者能夠按照本身的需求選擇多個保護器進行組合,從而實現更爲全面和細緻的保護。
這些保護器的使用方法將統一遵循圖三種c圖所示的流程,首先,根據用戶自定義的k值,保護器會去識別數據中風險,並將風險經過必定的視覺編碼呈現給使用者。而後,使用者能夠制定一個或多個保護方案(即保護目標),對於每個制定的方案,使用者均可以查看處理先後數據實用性指標的變化。接着,使用者對比不一樣方案的處理結果,觀察是否達到了隱私保護的目的,以及數據質量變化是否在可接受的範圍以內,最終選擇「最優」的方案進行執行。
導出數據:最後,當數據處理到滿意的程度時,使用者能夠選擇導出通過處理的的數據和數據的節點連接圖,以及指標變化狀況。
下面將向你們詳細介紹GraphProtector 系統的可視化及交互設計。系統主要圍繞兩個界面進行(圖一和圖四):
圖四展現了數據導入(圖四a)和優先級制定(圖四b)及評估指標選取(圖四c)階段的視圖:
節點連接圖視圖(圖四a):主要經過節點連接圖以及力引導佈局形式展示了原始數據的分佈,在數據處理過程當中,用戶能夠調出該視圖查看數據變化。
優先級視圖(圖四b):使用者能夠經過結構特徵優先級的分佈,在座標軸上選取節點屬性的範圍,從而制定節點的優先級。視圖右側的每個區塊都表明了一個節點集合,其中羅列了該集合中節點的屬性以及該集合中節點的個數,使用者經過拖拽交互來調整集合的優先級順序,以及選擇是否鎖定某些集合的節點。
實用性視圖(圖四c):使用者經過這個視圖,選取所關注的數據質量評估指標,這些指標的變化將會在處理先後呈現出來。
圖一爲隱私保護處理(圖一a,b)和數據導出階段的視圖:
保護器視圖(圖a):主要用於風險定義,風險識別,風險處理和數據評估。這些保護器具備統一的處理流程(以下圖五所示),分別經過保護器中的如下控件完成:
● 全局k值輸入框:快速設定保護器內的k值;
● 「半運行」按鈕:模擬執行制定方案的運行結果,並記錄數據變化;
● 「記錄」按鈕:記錄一個方案,方便後續對比不一樣方案的執行效果;
● 「方案相冊」按鈕:展示全部被記錄的方案以及這些方案被執行後的實用性指標變化,方便使用者進行比較,從而選取「最優」方案執行;
目前系統設計了三種保護器,分別爲度數保護器,中心指紋保護器和子圖保護器。
咱們採用柱狀圖可視化了數據中的節點度數分佈,橫軸編碼度數,按照從小到大的順序排列,此外,在橫軸上,咱們還設計了一個「度數跳躍」符來編碼度數分佈之間的跳躍狀況。縱軸編碼該度數等價類中的節點個數,藍色和灰色矩形分別編碼鎖定和未鎖定的節點個數。
爲了減小用戶的認知和交互負擔,咱們設定了縱軸上的最高值,這個值是咱們認爲的安全值,即當度數等價類中的節點個數超過這個值時,這個等價類通常是安全的,因此當節點度數高於這個值時,咱們能夠暫且忽略其具體值,而將重點放在那些不知足k值的節點上。系統用虛線來編碼總體k值(在系統中,咱們稱之爲k線),輔助用戶判斷k值和節點個數的關係,從而定位風險所在。使用者除了能夠經過滑動座標軸上滑塊來調整當前保護器內的總體k值外,還能夠經過刷選度數範圍,調整範圍內的局部k值(系統中用實線編碼),制定更加細緻的隱私保護方案。
中心指紋保護器分爲兩個部分,左側爲中心節點選取面板,右側爲中心指紋樹。中心節點選取面板呈現了全部節點的結構信息,用戶經過這個面板,選取重要的節點做爲中心節點。右側中心指紋樹將根據用戶的選擇進行實時響應,樹上每一個節點表明了一箇中心指紋等價類,即這個等價類中的節點具備相同的中心指紋,樹中深度爲i+1的等價類節點表示與i箇中心節點相鄰,因此若n爲中心節點的個數,那麼樹的高度爲n+1。
中心指紋樹上的每個節點編碼與度數等價中的編碼保持一致,虛線表示當前保護器設定的總體k值,藍色和灰色舉行分別編碼鎖定和未鎖定的節點個數,右側從上到下排列的i個矩形分別表明i箇中心節點,順序和左側中心節點選取面板中中心節點的順序保持一致,只有與當前節點等價類關聯的中心節點所表明的矩形將才會被繪製出來,經過這種編碼方式表達每一箇中心指紋等價類的指紋信息。
子圖保護器分爲三個部分,左側爲子圖設定面板,使用者經過這個面板設定子圖,子圖能夠來自於一些經典拓撲結構,如形狀結構,環形結構等,也支持從外部導入。在子圖設定面板中,系統一樣經過灰色矩形的個數編碼識別獲得的子圖的個數。中間面板爲子圖識別面板,將可視化圖中識別獲得的當前子圖結構和類似子圖結構,當識別獲得的當前子圖結構不知足k值時,用戶能夠選擇將類似的子圖補全成爲當前的子圖。右側子圖結構展現面板,使用者能夠經過與子圖識別面板的交互查看子圖在圖中的位置。
歷史記錄視圖使用時間軸的形式可視化了每一步隱私保護操做後數據的變化。在每個歷史記錄中,標題描述了該步驟採用的是哪一種類型的保護器,記錄左側咱們採用CDE(curvedensity estimates)的方法可視化了圖的原始分佈(即圖四a的節點鏈接圖),邊越多顏色越深。在CDE獲得的分佈圖上,咱們使用深色的直線表示當前處理所增長的邊,當用戶鼠標移動到一個歷史記錄時,該步所增長的邊將在圖四a中高亮出來。右側則呈現了數據指標的變化,包括指標的當前值和變化量,經過紅綠顏色編碼指標的增長和遞減,而對於不能計算增量的指標,咱們用藍色進行編碼。
雲服務器99元拼團購!拉新還可贏現金紅包!300萬等你瓜分!
立刻一鍵開團贏紅包: http://click.aliyun.com/m/100...
本文來自雲棲社區合做夥伴「阿里技術」,