張亞玲,屈玲玉
西安理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710048
隨著大數(shù)據(jù)和信息技術(shù)的快速發(fā)展,數(shù)據(jù)挖掘成為當(dāng)前大數(shù)據(jù)環(huán)境下獲取信息的重要方法[1]。聚類分析是一種經(jīng)典的數(shù)據(jù)挖掘方法,允許從大量的數(shù)據(jù)中挖掘隱含的、有價(jià)值的知識(shí)和規(guī)則。許多企業(yè)收集了各領(lǐng)域的大量數(shù)據(jù),利用聚類分析等技術(shù)對(duì)這些數(shù)據(jù)進(jìn)行處理,以便開(kāi)展科學(xué)研究、推送廣告等,通過(guò)聚類可以提高其服務(wù)質(zhì)量。然而,聚類分析通常包含用戶數(shù)據(jù),如果這些數(shù)據(jù)被不法分子加以利用,將會(huì)對(duì)個(gè)人隱私產(chǎn)生嚴(yán)重的威脅。因此,如何在聚類分析過(guò)程中保護(hù)用戶的個(gè)人隱私已逐漸成為數(shù)據(jù)挖掘和信息安全領(lǐng)域中的熱點(diǎn)問(wèn)題。
針對(duì)以上問(wèn)題,早期研究提出了基于等價(jià)類的kanonymity[2]及其一系列擴(kuò)展模型。但這些模型沒(méi)有一個(gè)嚴(yán)格的數(shù)學(xué)公式可以證明其隱私保護(hù)水平,并且需要不斷改進(jìn)來(lái)抵御新的攻擊,如背景知識(shí)攻擊[3]和合成攻擊[4]?;诖吮尘?,2006年,Dwork提出了差分隱私(differential privacy,DP)[5]的概念。在此定義下,對(duì)數(shù)據(jù)集的處理結(jié)果對(duì)于具體某個(gè)記錄的變化是不敏感的,單個(gè)記錄在數(shù)據(jù)集中或者不在數(shù)據(jù)集中,對(duì)計(jì)算結(jié)果的影響微乎其微,因此攻擊者無(wú)法通過(guò)觀察計(jì)算結(jié)果而獲取準(zhǔn)確的個(gè)體信息[6]。同時(shí),差分隱私建立在嚴(yán)格的數(shù)學(xué)定義之上,并對(duì)隱私披露風(fēng)險(xiǎn)給出了定量化的表示和證明。隨后,Dwork等人持續(xù)完善和補(bǔ)充了差分隱私理論[7-11]。何賢芒等人[12]提出了一個(gè)差分隱私保護(hù)攻擊模型,并基于這個(gè)模型,提出了一個(gè)差分隱私保護(hù)技術(shù)的攻擊算法和參數(shù)ε的選取計(jì)算公式。
作為最常用的聚類算法之一,k-means由于簡(jiǎn)單、高效等特點(diǎn)被廣泛應(yīng)用于各個(gè)領(lǐng)域,然而在算法執(zhí)行過(guò)程中,對(duì)中心的更新過(guò)程會(huì)泄露數(shù)據(jù)集的信息,許多研究者進(jìn)行了差分隱私k-means算法的研究。
Blum等人[13]提出了一種差分隱私k-means算法(DPK-means),在獲取聚類結(jié)果的同時(shí)保護(hù)數(shù)據(jù)隱私,并在SuLQ平臺(tái)上實(shí)現(xiàn),但該算法全局敏感度較大,且沒(méi)有給出迭代過(guò)程中如何分配隱私預(yù)算。Dwork[11]在Blum的基礎(chǔ)上,從隱私預(yù)算分配的角度對(duì)其進(jìn)行了完善,提出了兩種隱私預(yù)算分配的方法。Nissim等人[14]提出了PK-means算法,給出了計(jì)算查詢函數(shù)敏感度的方法,使k-means聚類中心滿足差分隱私保護(hù),但它的約束條件較多,實(shí)用性不強(qiáng)。李楊等人[15]針對(duì)隱私預(yù)算ε降低到一定值時(shí)聚類可用性變差的問(wèn)題,提出了IDPKmeans算法,優(yōu)化了初始聚類中心的選擇,卻忽視了離群點(diǎn)對(duì)最終聚類結(jié)果的負(fù)面影響。Yu等人[16]考慮了離群點(diǎn)的消極影響,在IDPK-means的基礎(chǔ)上提出了OEDPKmeans算法,利用異常值檢測(cè)算法,根據(jù)數(shù)據(jù)點(diǎn)的密度分布選擇合適的初始中心,但是該算法時(shí)間復(fù)雜度較大,在某些數(shù)據(jù)分布下收斂速度較慢。Ren等人[17]為了提高DPK-means算法的聚類效率,提出了DPLK-means算法,該算法通過(guò)對(duì)原始數(shù)據(jù)集劃分的每個(gè)子集執(zhí)行差分隱私k-means算法來(lái)改進(jìn)初始中心點(diǎn)的選擇,但是聚類結(jié)果受數(shù)據(jù)分布影響較大,當(dāng)數(shù)據(jù)集較小時(shí),算法不能很好地工作。胡闖等人[18]在DPK-means算法的基礎(chǔ)上,引入k-means++算法改進(jìn)初始中心點(diǎn)的選擇,但是該算法對(duì)于不規(guī)則的數(shù)據(jù)集會(huì)產(chǎn)生較差的聚類效果。樊一康等人[19]提出的TripleP K-means算法通過(guò)計(jì)算數(shù)據(jù)集中各點(diǎn)的最近鄰超球半徑以消除離群點(diǎn)的消極影響,但當(dāng)隱私預(yù)算較小時(shí),聚類效果不理想。Fan等人[20]針對(duì)傳統(tǒng)的隱私預(yù)算分配存在迭代次數(shù)越多隨機(jī)噪聲越大的問(wèn)題,提出了一種基于等差數(shù)列隱私預(yù)算分配的APDPK-means算法,在迭代過(guò)程中由大到小分配隱私預(yù)算,以保證其在迭代早期可以快速收斂。
從改進(jìn)差分隱私保護(hù)k-means算法的隱私預(yù)算分配機(jī)制以提高聚類結(jié)果的可用性出發(fā),本文引入BWP(between-within proportion)指標(biāo),提出一個(gè)改進(jìn)的差分隱私k-means算法BDPK-means(BWP differential privacyk-means)。BDPK-means算法根據(jù)每一次迭代中不同聚類簇具有不同密度分布的特點(diǎn),分配不同的隱私預(yù)算,避免聚類簇太小或者密度太大而添加過(guò)大的隨機(jī)噪聲,規(guī)避由于數(shù)據(jù)擾動(dòng)造成聚類中心點(diǎn)偏移過(guò)大的問(wèn)題,使隱私性和可用性達(dá)到一個(gè)較好的平衡。實(shí)驗(yàn)表明,本文BDPK-means算法在可用性與穩(wěn)定性上優(yōu)于現(xiàn)有的同類差分隱私k-means算法。
差分隱私是一種基于數(shù)據(jù)失真的隱私保護(hù)技術(shù),通過(guò)添加隨機(jī)噪聲干擾數(shù)據(jù)來(lái)保證數(shù)據(jù)具有一定的隱私性,同時(shí)保證原有數(shù)據(jù)的統(tǒng)計(jì)特性及可用性,以便進(jìn)行數(shù)據(jù)分析等操作。
定義1(ε-差分隱私[5])設(shè)有隨機(jī)算法M,P M為M所有可能輸出構(gòu)成的集合。對(duì)于任意兩個(gè)鄰近數(shù)據(jù)集D和D′以及P M的任何子集S,若算法M滿足:
則稱算法M滿足ε-差分隱私保護(hù)。其中,D和D′是相差最多為一條記錄的兩個(gè)鄰近數(shù)據(jù)集,參數(shù)ε稱為隱私保護(hù)預(yù)算。隱私預(yù)算代表隱私保障的水平,越小的隱私預(yù)算提供越嚴(yán)格的隱私保護(hù)水平。
定義2(全局敏感度[7])設(shè)有查詢函數(shù)f:D→Rd,輸入為一數(shù)據(jù)集,輸出為d維實(shí)數(shù)向量。對(duì)于任意鄰近數(shù)據(jù)集D和D′:
稱為函數(shù)f的全局敏感度。‖‖1表示1-階范數(shù)距離。
差分隱私有兩種實(shí)現(xiàn)機(jī)制,Laplace機(jī)制與指數(shù)機(jī)制,其中Laplace機(jī)制適用于處理數(shù)值型數(shù)據(jù),指數(shù)機(jī)制適用于非數(shù)值型結(jié)果。本文采用Laplace機(jī)制實(shí)現(xiàn)差分隱私保護(hù)。
定義3(Laplace機(jī)制[8])給定數(shù)據(jù)集D,設(shè)有函數(shù)f:D→Rd,其中函數(shù)敏感度為Δf,那么隨機(jī)算法M(D)=f(D)+Y提供ε-差分隱私保護(hù),Y~Lap(Δf/ε)服從尺度參數(shù)Δf/ε的Laplace分布。
Laplace機(jī)制是通過(guò)向結(jié)果中加入服從Laplace分布的隨機(jī)噪聲來(lái)實(shí)現(xiàn)差分隱私保護(hù)。將位置參數(shù)為0、尺度參數(shù)為b的Laplace分布記為L(zhǎng)ap(b),其概率密度函數(shù)為:
此外,一個(gè)復(fù)雜的隱私保護(hù)問(wèn)題通常需要多次應(yīng)用差分隱私保護(hù)算法才能得以解決。在這種情況下,隱私預(yù)算兩個(gè)組合性質(zhì)對(duì)于聚類算法的隱私分配過(guò)程具有重要的意義。
性質(zhì)1(序列組合性[21])設(shè)有算法M1,M2,…,M n,算法的隱私預(yù)算分別為ε1,ε2,…,εn,那么對(duì)于同一數(shù)據(jù)集D,算法{M1,M2,…,M n}在D上構(gòu)成的組合算法M(M1(D),M2(D),…,M n(D))提供ε-差分隱私,其中ε=
性質(zhì)2(并行組合性[21])設(shè)有算法M1,M2,…,M n,算法的隱私預(yù)算分別為ε1,ε2,…,εn,將D分為不相交的數(shù)據(jù)集D1,D2,…,D n,算法{M1,M2,…,M n}構(gòu)成的組合算法M(M1(D1),M2(D2),…,Mn(D n))提供ε-差分隱私,其中ε=max(εi)。
基于差分隱私保護(hù)的k-means聚類算法旨在改變數(shù)據(jù)集中的任意一條記錄時(shí),各聚類簇中心和數(shù)據(jù)數(shù)目產(chǎn)生的相應(yīng)變化不會(huì)泄露隱私信息。文獻(xiàn)[19]提出的TripleP K-means算法考慮了k-means算法對(duì)離群點(diǎn)較敏感的缺點(diǎn),對(duì)離群點(diǎn)進(jìn)行修剪,實(shí)現(xiàn)了在單機(jī)環(huán)境和分布式環(huán)境下對(duì)k-means算法添加差分隱私的過(guò)程。文獻(xiàn)[19]中有關(guān)離群點(diǎn)的定義如下:
定義4(r-最近鄰超球半徑[19])對(duì)于RT上的數(shù)據(jù)集D={x1,x2,…,x N},稱任一數(shù)據(jù)點(diǎn)xi與離其最近的r個(gè)數(shù)據(jù)點(diǎn)在T維空間中構(gòu)成的超球?yàn)閤 i的r-最近鄰超球,這一概念原型為文獻(xiàn)[16]中的r-最近鄰區(qū)域。點(diǎn)x i與其超球中所有點(diǎn)的平均歐式距離為超球的半徑。
定義5(離群點(diǎn)及判定閾值[19])離群點(diǎn)[16]是指數(shù)據(jù)集中與其他點(diǎn)顯著不同的數(shù)據(jù)點(diǎn)。對(duì)于離群點(diǎn)的判定,設(shè)數(shù)據(jù)集中的稀有類由至多5%的數(shù)據(jù)點(diǎn)組成[22],估計(jì)數(shù)據(jù)集D中離群點(diǎn)數(shù)目不超過(guò)N×0.05,其中N為數(shù)據(jù)集規(guī)模大小。記離群點(diǎn)的r-最近鄰超球半徑的判定閾值為T(mén),取其值為數(shù)據(jù)集中r-最近鄰超球半徑最大的N×0.05個(gè)點(diǎn)的半徑均值,從而認(rèn)為r-最近鄰超球半徑超過(guò)閾值T的數(shù)據(jù)點(diǎn)為離群點(diǎn)。
文獻(xiàn)[19]算法單機(jī)環(huán)境下的主要思想:
步驟1對(duì)數(shù)據(jù)集中的所有數(shù)據(jù)進(jìn)行歸一化處理,并且計(jì)算各點(diǎn)的r-最近鄰超球半徑,由此得出離群點(diǎn)判定閾值T。
步驟2從數(shù)據(jù)集中隨機(jī)選取一個(gè)非離群點(diǎn)μ1′,然后從剩余的數(shù)據(jù)點(diǎn)中選取距離μ1′最近的floor(N/K)個(gè)非離群點(diǎn)(floor()為向下取整函數(shù)),與μ1′組成初始簇C1。算法重復(fù)這一過(guò)程,直至選出K個(gè)簇。
步驟3計(jì)算各簇中數(shù)據(jù)點(diǎn)總和與簇中數(shù)據(jù)點(diǎn)的數(shù)目,分別添加Laplace噪聲,求各簇的均值作為初始聚類中心。
步驟4計(jì)算數(shù)據(jù)集中非離群點(diǎn)與各聚類中心的距離,并將這些數(shù)據(jù)點(diǎn)分配到距離最近的聚類中心所在簇中。記第k個(gè)中心的簇為C k,簇中數(shù)據(jù)點(diǎn)數(shù)目及總和分別為numk和sumk,分別向numk和sumk添加相同大小的隨機(jī)噪聲,并計(jì)算新的聚類中心點(diǎn)。
步驟5計(jì)算本輪和上一輪中K個(gè)聚類中心點(diǎn)的距離是否滿足收斂條件,若滿足,則算法終止,輸出聚類結(jié)果,否則重復(fù)步驟2~步驟5。
隱私預(yù)算分配采用二分分配[11]的方法,即第一輪迭代分配ε/2的隱私預(yù)算,之后每次迭代消耗隱私預(yù)算的1/2。
實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)隨著迭代次數(shù)的增加,隱私預(yù)算就會(huì)越小。由Laplace差分隱私保護(hù)機(jī)制的性質(zhì)可知,產(chǎn)生的隨機(jī)噪聲就越大,從而導(dǎo)致聚類中心的偏移過(guò)大,影響最終的聚類結(jié)果。
為了解決隱私預(yù)算ε較小時(shí)數(shù)據(jù)可用性較差的問(wèn)題,本文提出了一種基于BWP指標(biāo)的差分隱私保護(hù)kmeans聚類算法。算法的主要思想是使用BWP指標(biāo)評(píng)估每次迭代中聚類的效果,考慮每輪迭代中不同簇有不同密度分布、不同大小等特點(diǎn),為每輪迭代中不同的聚類簇分配不同的隱私預(yù)算,從而添加不同的隨機(jī)噪聲,以此來(lái)解決中心點(diǎn)嚴(yán)重偏離而造成聚類可用性差的問(wèn)題。
BWP指標(biāo)[23]是評(píng)價(jià)聚類結(jié)果好壞的一種方式。結(jié)合內(nèi)聚度和分離度兩種因素,評(píng)價(jià)不同算法或者算法不同運(yùn)行方式對(duì)聚類結(jié)果所產(chǎn)生的影響。其計(jì)算公式如下:
其中,N為數(shù)據(jù)集規(guī)模大小,j表示類標(biāo),b(j,i)表示類間距離,w(j,i)表示類內(nèi)距離。類間距離b(j,i)為樣本i到其他每個(gè)類中樣本平均值中的最小值,類內(nèi)距離w(j,i)為該樣本到第j類中其他數(shù)據(jù)對(duì)象距離的平均值,公式如下:
其中,n k代表第k個(gè)簇的樣本點(diǎn)數(shù)量。BWP k值越大聚類效果越好,反之越差。
假設(shè)數(shù)據(jù)集D={x1,x2,…,x N},其包含N個(gè)具有d維屬性值的數(shù)據(jù)點(diǎn),算法可以將其劃分為K個(gè)簇,聚類中心點(diǎn)記為u k(1≤k≤K),隱私預(yù)算為ε,第k個(gè)簇在第t次迭代的隨機(jī)噪聲為
BDPK-means算法的主要步驟如下。
算法1主要分為三個(gè)階段。首先計(jì)算數(shù)據(jù)集中每個(gè)數(shù)據(jù)點(diǎn)的r-最近鄰超球半徑,由此導(dǎo)出數(shù)據(jù)集中離群點(diǎn)的判定閾值T(第1~6行),然后在此基礎(chǔ)上選取初始聚類中心(第7~12行),最后完成差分隱私聚類分析(第13~33行)。其中第20~32行使用BWP指標(biāo)評(píng)估聚類每一次迭代中不同簇的密度分布,在隱私預(yù)算二分分配的基礎(chǔ)上為不同的簇分配不同的權(quán)重,有針對(duì)地調(diào)整隱私預(yù)算分配,從而對(duì)每次迭代中的聚類中心點(diǎn)分別添加不同的噪聲,盡可能降低噪聲對(duì)聚類中心偏移的影響,提高聚類結(jié)果的可用性。
定理1BDPK-means算法滿足ε-差分隱私保護(hù)。
(4)由定義1、式(11)和式(12)可得:
綜上所述,由差分隱私定義可知,BDPK-means算法滿足ε-差分隱私保護(hù)。
本文使用Java語(yǔ)言進(jìn)行模擬仿真實(shí)驗(yàn),實(shí)驗(yàn)平臺(tái)為Intel?CoreTMi3-3240 CPU@3.40 GHz處理器,6 GB內(nèi)存,Windows10 64位操作系統(tǒng)。
本文選取了不同數(shù)量的數(shù)據(jù)集來(lái)進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)所選擇的數(shù)據(jù)集均來(lái)自UCI機(jī)器學(xué)習(xí)庫(kù),具體信息如表1所示。
表1 數(shù)據(jù)信息Table 1 Data information
(1)Purity
Purity(純度)作為一種用來(lái)計(jì)算聚類劃分結(jié)果正確率的常用指標(biāo),可以對(duì)聚類結(jié)果的優(yōu)劣程度做出正確的判斷。主要思想是計(jì)算被正確劃分的樣本數(shù)據(jù)的數(shù)量占整個(gè)數(shù)據(jù)集中所有樣本數(shù)據(jù)數(shù)量的百分比。公式如下:
(2)F-measure
F-measure[24]是一種經(jīng)典的衡量聚類結(jié)果有效性的評(píng)價(jià)指標(biāo)。綜合了信息檢索與挖掘中的準(zhǔn)確率(precision)和召回率(recall)。
F-measure取值為[0,1],值越大表示兩個(gè)數(shù)據(jù)集的聚類結(jié)果越接近,說(shuō)明聚類結(jié)果可用性更好。
由于計(jì)算離群點(diǎn)判定閾值和選取初始中心時(shí),使用了r-最近鄰區(qū)域的概念,參考文獻(xiàn)[19]和文獻(xiàn)[25]中的方法,以F-measure為目標(biāo)函數(shù)對(duì)參數(shù)r進(jìn)行調(diào)參并取最優(yōu)。
3.4.1 算法可用性分析
將本文提出的BDPK-means算法和文獻(xiàn)[19]中的TripleP K-means算法(簡(jiǎn)稱TDPK-means算法)、文獻(xiàn)[20]中的APDPK-means算法在不同數(shù)據(jù)集下進(jìn)行對(duì)比實(shí)驗(yàn)。
由于Laplace噪聲的隨機(jī)性,實(shí)驗(yàn)結(jié)果在同一隱私預(yù)算ε下,運(yùn)行50次取平均值。圖1~圖4(a)和圖1~圖4(b)分別展示了在數(shù)據(jù)集DS1~DS4上運(yùn)行三種聚類算法得到的Purity值和F-measure值的對(duì)比。
由圖1~圖4可知,隨著隱私預(yù)算的增加,三種聚類算法的Purity值和F-measure值也在不斷增加。這是因?yàn)殡S著隱私預(yù)算的增加,添加的噪聲就會(huì)減小,聚類結(jié)果的可用性就會(huì)得到提高。本文算法與TDPK-means算法和APDPK-means算法相比,Purity值和F-measure值都有較大的提升,尤其在隱私預(yù)算較小時(shí),聚類性能優(yōu)勢(shì)表現(xiàn)更為明顯。
圖1 DS1上運(yùn)行的結(jié)果Fig.1 Results on DS1
圖4 DS4上運(yùn)行的結(jié)果Fig.4 Results on DS4
具體來(lái)說(shuō),當(dāng)隱私預(yù)算為0.05時(shí),對(duì)于DS1,Purity值平均提高了0.24,F(xiàn)-measure值平均提高了0.33。DS2中,Purity值平均提高了0.21,F(xiàn)-measure值平均提高了0.40。針對(duì)DS3,F(xiàn)-measure值平均提高了0.20??梢宰⒁獾?,DS3中,本文算法和其他兩種聚類算法的Purity值,在隱私預(yù)算為0.05時(shí),改進(jìn)幅度不是很大。這是由于當(dāng)隱私預(yù)算為0.05時(shí),添加的Laplace噪聲過(guò)大導(dǎo)致的。此時(shí)并不能很好地表現(xiàn)出該數(shù)據(jù)集的聚類特性,但是隨著隱私預(yù)算的增加,本文算法還是優(yōu)于其他兩種算法。對(duì)于DS4,當(dāng)隱私預(yù)算為0.05時(shí),Purity值平均提高了0.54,F(xiàn)-measure值平均提高了0.47。
圖2 DS2上運(yùn)行的結(jié)果Fig.2 Results on DS2
圖3 DS3上運(yùn)行的結(jié)果Fig3 Results on DS3
因此,在相同的隱私保護(hù)水平下,BDPK-means算法在不同數(shù)據(jù)集上的性能要優(yōu)于其他兩種聚類算法。
3.4.2 算法穩(wěn)定性分析
本次實(shí)驗(yàn)通過(guò)計(jì)算算法的平均迭代次數(shù)來(lái)衡量算法的穩(wěn)定性。對(duì)比算法依然采用文獻(xiàn)[19]和文獻(xiàn)[20]中的算法。三種算法的穩(wěn)定性對(duì)比如圖5所示。
圖5 迭代次數(shù)對(duì)比Fig.5 Comparison of iteration number
由圖5實(shí)驗(yàn)結(jié)果可以看出,在四個(gè)數(shù)據(jù)集中,本文算法的迭代次數(shù)明顯降低,表明本文算法收斂速度較快。隨著隱私預(yù)算的增加,三種聚類算法的迭代次數(shù)都逐漸減少,當(dāng)隱私預(yù)算達(dá)到設(shè)定的最大值時(shí),本文算法基本達(dá)到收斂狀態(tài)。此外,從圖中還可得知,本文算法迭代次數(shù)波動(dòng)不大,在穩(wěn)定性上要優(yōu)于其他兩種聚類算法。
本文針對(duì)差分隱私k-means算法中存在隱私預(yù)算較小時(shí)聚類結(jié)果可用性差的問(wèn)題,通過(guò)引入聚類評(píng)價(jià)指標(biāo)BWP評(píng)估聚類效果,為具有不同密度分布的聚類簇分配不同的權(quán)重,在一次迭代中,動(dòng)態(tài)地為不同的簇分配不同的隱私預(yù)算,從而添加不同大小的隨機(jī)噪聲,避免了因?yàn)椴罘蛛[私保護(hù)導(dǎo)致數(shù)據(jù)嚴(yán)重失真的問(wèn)題,使得保護(hù)個(gè)體隱私的同時(shí)保持了較高的數(shù)據(jù)可用性。通過(guò)一系列對(duì)比實(shí)驗(yàn),結(jié)果表明,本文算法不僅提高了數(shù)據(jù)的可用性和準(zhǔn)確性,而且減小了迭代次數(shù),提高了聚類結(jié)果的穩(wěn)定性。但是本方案是在單機(jī)環(huán)境下完成的,當(dāng)數(shù)據(jù)量較大時(shí),會(huì)耗費(fèi)大量的時(shí)間。因此,在未來(lái)的研究中,應(yīng)重點(diǎn)考慮如何將本文算法擴(kuò)展到分布式環(huán)境以解決大數(shù)據(jù)背景下所面臨的隱私泄露問(wèn)題。