張梅舒,徐雅斌,3*
(1.網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室(北京信息科技大學(xué)),北京100101;2.北京信息科技大學(xué)計(jì)算機(jī)學(xué)院,北京100101;3.北京材料基因工程高精尖創(chuàng)新中心(北京信息科技大學(xué)),北京100101)
隨著信息技術(shù)的飛速發(fā)展,各個(gè)行業(yè)和領(lǐng)域都積累了大量的數(shù)據(jù),而且數(shù)據(jù)規(guī)模正以驚人的速度增長(zhǎng)[1]。大數(shù)據(jù)蘊(yùn)含著巨大的商業(yè)價(jià)值,為了更好地利用大數(shù)據(jù),數(shù)據(jù)共享勢(shì)在必行。而在共享的海量數(shù)據(jù)中,往往涉及到個(gè)人信息或者敏感數(shù)據(jù)[2]。如果直接進(jìn)行數(shù)據(jù)共享就可能會(huì)泄露個(gè)人隱私信息,因此,為了保證個(gè)人敏感信息的安全,在發(fā)布數(shù)據(jù)的同時(shí)應(yīng)進(jìn)行隱私保護(hù)[3]。
現(xiàn)有的數(shù)據(jù)隱私保護(hù)方法主要針對(duì)單一敏感屬性的數(shù)據(jù)[4-6]。但是,在很多現(xiàn)實(shí)應(yīng)用中,發(fā)布的數(shù)據(jù)往往涉及到多個(gè)敏感屬性。對(duì)多敏感屬性數(shù)據(jù)的隱私保護(hù)的研究主要是針對(duì)多維分類(lèi)型敏感屬性和單維數(shù)值型敏感屬性數(shù)據(jù),對(duì)多維數(shù)值型敏感屬性數(shù)據(jù)的隱私保護(hù)研究少有涉獵。
事實(shí)上,多維數(shù)值型敏感屬性數(shù)據(jù)更具一般性,對(duì)其進(jìn)行隱私保護(hù)的研究不僅可以有效解決多維數(shù)值型敏感屬性數(shù)據(jù)發(fā)布時(shí)的隱私泄露問(wèn)題,還可以擴(kuò)展數(shù)據(jù)的隱私保護(hù)范圍,促進(jìn)隱私保護(hù)研究的發(fā)展和大數(shù)據(jù)安全技術(shù)的進(jìn)步。
楊曉春等[7]首次對(duì)多敏感屬性數(shù)據(jù)發(fā)布問(wèn)題進(jìn)行了詳細(xì)研究,繼承了有損連接的思想,提出了針對(duì)多敏感屬性數(shù)據(jù)進(jìn)行隱私保護(hù)的多維桶分組(Multi-Sensitive Bucketization,MSB)技術(shù),并提出了3 種不同的分組策略。金華等[8]改進(jìn)了分組算法,提出了l-覆蓋性聚類(lèi)分組方法。楊靜等[9]給出了一種基于值域等級(jí)劃分的個(gè)性化定制方案,并提出了一種最小選擇度優(yōu)先的面向多敏感屬性數(shù)據(jù)的l-多樣性算法。
羅方煒等[10]提出一種(l,m)-多樣性模型,該模型要求當(dāng)同一敏感值的元組從等價(jià)類(lèi)中刪除時(shí),剩余的元組仍滿足獨(dú)立敏感屬性的(l-1,m)-多樣性,這樣能夠有效抵制關(guān)聯(lián)攻擊,但是仍存在敏感值語(yǔ)義相近問(wèn)題。Jia 等[11]針對(duì)敏感值語(yǔ)義相近問(wèn)題提出了(l,m,d)-匿名模型,但該模型的數(shù)據(jù)損失較大。劉善成等[12]提出了一種基于敏感度的分組技術(shù)——(g,l)-分組方法,不僅解決了多敏感屬性隱私數(shù)據(jù)發(fā)布的問(wèn)題,同時(shí)還可有效抵制相似性攻擊和偏斜攻擊,但該方法的數(shù)據(jù)損失較大。Zhang 等[13]提出了MSA(α,l)算法,使分組后的數(shù)據(jù)滿足l-多樣性和α-最大約束,在一定程度上減少了數(shù)據(jù)損失。
李文[14]考慮了準(zhǔn)標(biāo)識(shí)符屬性的數(shù)據(jù)質(zhì)量和敏感屬性的敏感程度,提出了基于主敏感屬性的排序分組算法,可減少數(shù)據(jù)損失,提高數(shù)據(jù)可用性。
此外,還有一些基于k-匿名的算法。Wu等[15]提出p-覆蓋k-匿名算法,可降低敏感屬性泄露的風(fēng)險(xiǎn)。宋明秋等[16]在k-匿名模型實(shí)現(xiàn)的過(guò)程中,通過(guò)引入屬性近似度概念,提出了一種多屬性泛化的k-匿名算法。王秋月等[17]提出了一種多敏感屬性分級(jí)的(αij,k,m)-匿名隱私保護(hù)方法。該模型為每個(gè)敏感屬性的值進(jìn)行分級(jí)設(shè)置,并為每個(gè)級(jí)別設(shè)置一個(gè)特定的αij,避免具有相同級(jí)別敏感值的記錄被分在同一組中,從而可有效防止語(yǔ)義相似和關(guān)聯(lián)攻擊。
針對(duì)多維數(shù)值型敏感屬性數(shù)據(jù)發(fā)布的隱私保護(hù),劉騰騰等[18]提出了l-MNSA(l-Multi-Numerical Sensitive Attribute)算法,該算法使分組后的數(shù)據(jù)在每一維數(shù)值型敏感屬性上的分布都比較均勻,能夠防止相似攻擊,但其不適合大數(shù)據(jù)。Liu等[19-20]提出了一種基于聚類(lèi)和多維桶的數(shù)據(jù)隱私保護(hù)方法MNSACM,該方法在分組前將數(shù)值型敏感屬性聚類(lèi),可以在一定程度上保護(hù)數(shù)值型敏感屬性;但它沒(méi)有考慮準(zhǔn)標(biāo)識(shí)符的質(zhì)量,數(shù)據(jù)發(fā)布質(zhì)量較低。陸洋[21]提出了一種基于聚類(lèi)和加權(quán)多維桶分組的個(gè)性化隱私保護(hù)方法WMNSAPM。該方法利用加權(quán)多維桶的思想,實(shí)現(xiàn)了個(gè)性化匿名隱私保護(hù)的效果;但該方法沒(méi)有考慮準(zhǔn)標(biāo)識(shí)符的質(zhì)量,數(shù)據(jù)損失較大,而且需要由用戶自己設(shè)置桶的權(quán)重,不僅難以實(shí)現(xiàn),而且缺乏合理性。
綜上所述,現(xiàn)有的針對(duì)多維數(shù)值型敏感屬性數(shù)據(jù)的隱私保護(hù)方法存在以下問(wèn)題:1)分組時(shí)僅考慮敏感屬性的屬性值,未考慮準(zhǔn)標(biāo)識(shí)符的范圍,數(shù)據(jù)損失較大;2)提出的個(gè)性化隱私保護(hù)方法需要由用戶設(shè)置桶的權(quán)重,對(duì)用戶的專(zhuān)業(yè)性要求過(guò)高。
針對(duì)現(xiàn)有研究中存在的問(wèn)題,本文提出如下設(shè)計(jì)方案:在數(shù)據(jù)預(yù)處理時(shí),首先根據(jù)準(zhǔn)標(biāo)識(shí)符屬性對(duì)數(shù)據(jù)集進(jìn)行聚類(lèi),由此將一個(gè)數(shù)據(jù)集分成若干個(gè)準(zhǔn)標(biāo)識(shí)符屬性值接近的子數(shù)據(jù)集,再根據(jù)數(shù)據(jù)的分布情況對(duì)數(shù)值型敏感屬性進(jìn)行聚類(lèi);然后,根據(jù)多維桶的容量和敏感屬性的敏感程度計(jì)算加權(quán)選擇度,并由此構(gòu)建加權(quán)多維桶;在對(duì)數(shù)據(jù)分組時(shí),優(yōu)先考慮加權(quán)選擇度大的桶中的數(shù)據(jù),使分組后的數(shù)據(jù)滿足多敏感屬性l-多樣性分布;最后,對(duì)分組后的數(shù)據(jù)進(jìn)行匿名化處理。
本文工作如下:
1)根據(jù)準(zhǔn)標(biāo)識(shí)符的相似程度,將數(shù)據(jù)集劃分成若干準(zhǔn)標(biāo)識(shí)符屬性值接近的子集,由此可縮小數(shù)據(jù)集中準(zhǔn)標(biāo)識(shí)符的取值范圍,有利于減少信息損失;
2)考慮到用戶對(duì)于敏感屬性的敏感程度不同,根據(jù)用戶對(duì)敏感屬性的敏感程度排序得到敏感屬性的權(quán)重,將敏感屬性的權(quán)重和多維桶的桶容量作為參數(shù),提出一種加權(quán)選擇度計(jì)算方法,有助于對(duì)數(shù)據(jù)進(jìn)行個(gè)性化的隱私保護(hù)。
研究發(fā)現(xiàn),數(shù)據(jù)記錄之間往往具有內(nèi)在關(guān)系,尤其是當(dāng)數(shù)據(jù)量較大時(shí),某些數(shù)據(jù)記錄在某個(gè)準(zhǔn)標(biāo)識(shí)符上具有相似的取值。為此可以通過(guò)聚類(lèi)將具有較多共同特征的準(zhǔn)標(biāo)識(shí)符屬性聚為一類(lèi),并由此將數(shù)據(jù)集分為若干子集,以減小數(shù)據(jù)的隱匿程度以及準(zhǔn)標(biāo)識(shí)符的泛化率,提高數(shù)據(jù)的可用性。
本文采用簡(jiǎn)單實(shí)用的k-means 算法根據(jù)準(zhǔn)標(biāo)識(shí)符屬性值對(duì)數(shù)據(jù)集進(jìn)行聚類(lèi)。
由于準(zhǔn)標(biāo)識(shí)符屬性既有數(shù)值型的又有分類(lèi)型的,聚類(lèi)時(shí)應(yīng)作不同的考慮。對(duì)于數(shù)值類(lèi)型的屬性,數(shù)值差即為距離;對(duì)于分類(lèi)型的屬性,參考文獻(xiàn)[12]提出的概化樹(shù),為每個(gè)屬性構(gòu)建概化樹(shù),通過(guò)概化樹(shù)計(jì)算非數(shù)值類(lèi)型屬性的距離。例如workclass 屬性的值域?yàn)椋鹥rivate,federal-gov,local-gov,stategov,sef-emp-inc,sef-emp-not-inc,withou-pay,never-worked},構(gòu)建的概化樹(shù)如圖1所示。
圖1 workclass的概化樹(shù)Fig.1 Generalized tree of workclass
概化樹(shù)的每層都有個(gè)權(quán)值。例如,該泛化樹(shù)總共四層,規(guī)定從上到下每層的權(quán)值分別為0、1、2、3。兩個(gè)分類(lèi)型數(shù)據(jù)之間的距離等于該兩個(gè)節(jié)點(diǎn)到最小公共父節(jié)點(diǎn)的層次距離之和。例如,求federal-gov 和sef-emp-inc 之間的距離,需要先找到最小公共父節(jié)點(diǎn)work,由此兩個(gè)值的距離可計(jì)算如下:
d(federal-gov,sef-emp-inc)=(3-1)+(3-1)=4
以一個(gè)精簡(jiǎn)后的人口普查數(shù)據(jù)集為例,其準(zhǔn)標(biāo)識(shí)符屬性有age 和workclass,數(shù)值型敏感屬性有profit 和hours-perweek。假定按照age 進(jìn)行聚類(lèi),根據(jù)年齡段將數(shù)據(jù)集聚類(lèi),結(jié)果形成4個(gè)數(shù)據(jù)子集。其中的一個(gè)數(shù)據(jù)子集如表1所示。
為了避免敏感屬性值差異較小的兩個(gè)值分別作為獨(dú)立的桶,造成信息泄露,有必要對(duì)需要進(jìn)行隱私保護(hù)的多個(gè)數(shù)值型敏感屬性值分別進(jìn)行聚類(lèi)。
假設(shè)一個(gè)數(shù)據(jù)表中有n 條數(shù)據(jù)記錄,該數(shù)據(jù)表包含m 維數(shù)值型敏感屬性。將每一維數(shù)值型敏感屬性值聚成多個(gè)簇,記作{Si1,Si2,…,Sij}(1 ≤i ≤m)。每個(gè)簇的屬性值個(gè)數(shù)不一定相同,但所有的簇覆蓋了這一維敏感屬性的所有值。
表1 聚類(lèi)產(chǎn)生的一個(gè)數(shù)據(jù)子集Tab.1 A subset generated by clustering
本文同樣采用k-means 算法對(duì)數(shù)據(jù)表1 中的數(shù)值型敏感屬性profit(S1)和hours-per-week(S2)的屬性值分別進(jìn)行聚類(lèi),聚類(lèi)結(jié)果分別為S1和S2:
聚類(lèi)后使得同一個(gè)簇的屬性值相近,不同簇的屬性值差異較大,任意兩個(gè)簇之間的交集為空集。
構(gòu)建加權(quán)多維桶的步驟如下:
1)構(gòu)建多維桶。根據(jù)敏感屬性profit(S1)和hours-perweek(S2)的值,對(duì)表1 中的數(shù)據(jù)進(jìn)行映射,得到的多維桶分組如表2 所示。其中:每個(gè)單元格代表一個(gè)桶,空格說(shuō)明該桶中不包含數(shù)據(jù);t1~t9為表1中數(shù)據(jù)的id。
表2 多維桶分組Tab.2 Multi-sensitive bucketization
2)計(jì)算每個(gè)桶的加權(quán)選擇度?;诙嗑S桶的分組算法在進(jìn)行分組時(shí),一般只考慮桶的容量大小,然而,在實(shí)際應(yīng)用中,如果某些元組中包含更重要的信息,就需要優(yōu)先考慮。為此,本文為每個(gè)桶賦予一個(gè)加權(quán)選擇度,由此構(gòu)建一個(gè)加權(quán)多維桶。
對(duì)于加權(quán)選擇度的計(jì)算,一般需要考慮敏感屬性值的敏感程度、桶容量和語(yǔ)義相似度這三個(gè)因素。然而,由于數(shù)值型屬性不存在語(yǔ)義相似的問(wèn)題,并且屬性值的敏感程度也沒(méi)有明顯的區(qū)別,為此,本文在計(jì)算加權(quán)選擇度時(shí),只需要將桶容量和敏感屬性的敏感程度考慮在內(nèi)即可。
加權(quán)選擇度的計(jì)算步驟如下:
步驟1 獲取用戶對(duì)m 個(gè)敏感屬性的敏感程度由大到小的順序排列S1,S2,…,Sm,設(shè)定當(dāng)前維的重要程度為S0,且S0>S1;
步驟2 利用層次分析法得到m 個(gè)敏感屬性的權(quán)重分別為W1,W2,…,Wm,當(dāng)前維的權(quán)重為W0;
步驟3 利用式(1)計(jì)算加權(quán)選擇度:
其中:第i 個(gè)敏感屬性的權(quán)重為Wi,第i 維敏感屬性值與當(dāng)前桶屬于同一簇的記錄數(shù)為Ci,桶容量為c。
對(duì)于表2 中的數(shù)據(jù),假設(shè)用戶認(rèn)為敏感屬性profit(S1)比hours-per-week(S2)更重要,即敏感程度S0>S1>S2。利用加權(quán)選擇度得到權(quán)重分別為:W0=0.63,W1=0.26,W2=0.11。利用式(1)得到各個(gè)桶的加權(quán)選擇度分別為:{1.26,1.33,2.48,1.59,1.63,1.37,1.26,1}。
3)給每個(gè)桶賦予相應(yīng)的加權(quán)選擇度,從而得到加權(quán)多維桶。
將計(jì)算得到的加權(quán)選擇度賦給多維桶,最終得到的加權(quán)多維桶如表3 所示,其中,括號(hào)內(nèi)的數(shù)字即為每個(gè)桶的加權(quán)選擇度。
表3 加權(quán)多維桶分組Tab.3 Weighted multi-sensitive bucketization
文獻(xiàn)[21]提出的WMNSAPM 方法中:首先將各維數(shù)值型敏感屬性的屬性值進(jìn)行聚類(lèi);然后利用用戶指定的權(quán)值構(gòu)建加權(quán)多維桶,并將數(shù)據(jù)映射到加權(quán)多維桶中;接著通過(guò)基于加權(quán)的最大維容量?jī)?yōu)先貪心算法,構(gòu)成滿足l-多樣性的分組;最后,將各個(gè)分組的準(zhǔn)標(biāo)識(shí)符進(jìn)行匿名化處理。
該方法存在以下問(wèn)題:
1)分組時(shí)沒(méi)有考慮準(zhǔn)標(biāo)識(shí)符屬性的范圍,如果準(zhǔn)標(biāo)識(shí)符屬性的范圍過(guò)大,在匿名化處理時(shí)會(huì)過(guò)度泛化,導(dǎo)致數(shù)據(jù)損失度較大、可用性較低;
2)加權(quán)多維桶的權(quán)重需要用戶設(shè)置,對(duì)用戶的專(zhuān)業(yè)性要求過(guò)高,準(zhǔn)確性難以把握。
針對(duì)文獻(xiàn)[21]方法存在的問(wèn)題,本文做了如下改進(jìn):
1)在分組之前根據(jù)準(zhǔn)標(biāo)識(shí)符屬性的范圍將數(shù)據(jù)集聚類(lèi),從而分成若干準(zhǔn)標(biāo)識(shí)符屬性值接近的子集,然后分別對(duì)每個(gè)子集進(jìn)行分組及匿名化處理,由此可縮小數(shù)據(jù)集中準(zhǔn)標(biāo)識(shí)符的取值范圍,有利于減少信息損失。
2)在加權(quán)多維桶權(quán)重的計(jì)算時(shí),根據(jù)用戶對(duì)于敏感屬性的敏感度的排序,利用層次分析法計(jì)算出敏感屬性的權(quán)重,然后根據(jù)敏感屬性的權(quán)重和多維桶的桶容量來(lái)計(jì)算出多維桶的權(quán)重。
本文方法的具體步驟包括:
1)根據(jù)準(zhǔn)標(biāo)識(shí)符屬性的范圍將數(shù)據(jù)集聚類(lèi),對(duì)得到的各個(gè)子集分別進(jìn)行步驟2)~5)操作;
2)將各維數(shù)值型敏感屬性的屬性值進(jìn)行聚類(lèi);
3)利用本文第2章提出的方法構(gòu)建加權(quán)多維桶;
4)分組時(shí)優(yōu)先選擇加權(quán)選擇度大的桶中的數(shù)據(jù),將數(shù)據(jù)分成滿足l-多樣性的分組;
5)將各個(gè)分組的準(zhǔn)標(biāo)識(shí)符屬性進(jìn)行匿名化處理。
假設(shè)l取值為3,按照本文方法對(duì)表1中的數(shù)據(jù)進(jìn)行分組,得到的結(jié)果為:{{t1,t2,t5},{t3,t7,t9},{t4,t6,t8}}。
最后,將分組后的數(shù)據(jù)進(jìn)行匿名化處理:數(shù)值型數(shù)據(jù)取最值作為兩個(gè)邊界值,泛化為“最小值-最大值”;分類(lèi)型數(shù)據(jù)將屬性值的最小公共父節(jié)點(diǎn)作為泛化結(jié)果,得到的待發(fā)布數(shù)據(jù)如表4所示。
表4 待發(fā)布數(shù)據(jù)Tab.4 Data to be released
實(shí)驗(yàn)所需數(shù)據(jù)采用UCI 機(jī)器學(xué)習(xí)中心的標(biāo)準(zhǔn)Adult 數(shù)據(jù)集,共有48 842 條數(shù)據(jù),去除含有空值數(shù)據(jù)后的可用數(shù)據(jù)為30 162條記錄,選取其中的8個(gè)屬性進(jìn)行實(shí)驗(yàn)。將其中的屬性age、workclass、education、education-num、marital-status、sex 作為準(zhǔn)標(biāo)識(shí)符屬性,將屬性profit 和hours-per-week 作為敏感屬性,屬性描述見(jiàn)表5。
實(shí)驗(yàn)的硬件環(huán)境是Intel Core i7-4790 CPU@3.60 GHz,8.0 GB RAM,Windows 7 專(zhuān)業(yè)版操作系統(tǒng),JetBrains PyCharm 2017.3 x64,算法的實(shí)現(xiàn)語(yǔ)言為Python3。
表5 實(shí)驗(yàn)數(shù)據(jù)集的屬性描述Tab.5 Attribute description of experimental dataset
1)信息損失度。數(shù)據(jù)分組后的匿名過(guò)程會(huì)對(duì)數(shù)據(jù)質(zhì)量造成損失,降低數(shù)據(jù)可用性。數(shù)據(jù)質(zhì)量的度量,主要針對(duì)準(zhǔn)標(biāo)識(shí)符被泛化的程度,常用信息損失度進(jìn)行衡量。信息損失度越小,數(shù)據(jù)可用性越高。由于數(shù)據(jù)集中的準(zhǔn)標(biāo)識(shí)符屬性既有數(shù)值型又有分類(lèi)型,因此信息損失度的計(jì)算要考慮兩種類(lèi)型的屬性。
定義1數(shù)值型屬性的信息損失度(Information Loss of Numerical attribute,ILN)。
設(shè)Min和Max分別是一個(gè)分組的最小值和最大值,R表示整個(gè)數(shù)據(jù)表的值域范圍,則:
定義2分類(lèi)型屬性的信息損失度(Information Loss of Classified attribute,ILC)。
給每個(gè)分類(lèi)型屬性構(gòu)建概化樹(shù),p表示概化樹(shù)中兩個(gè)節(jié)點(diǎn)的最小公共父節(jié)點(diǎn)的高度,h 表示整個(gè)概化樹(shù)的高度,Wi,j表示概化樹(shù)i、j兩個(gè)高度之間的權(quán)值,則:
定義3分組信息損失度。
設(shè)N1,N2,…,NI,C1,C2,…,CJ是一個(gè)分組的準(zhǔn)標(biāo)識(shí)符屬性,其中Ni(1 ≤i ≤I)表示數(shù)值型數(shù)據(jù),Cj(1 ≤j ≤J)表示分類(lèi)型數(shù)據(jù),則整個(gè)分組的信息損失度IL(Information Loss)為各個(gè)準(zhǔn)標(biāo)識(shí)符屬性的信息損失度之和,即:
假設(shè)數(shù)據(jù)表為T(mén),處理后的分組數(shù)為M,則該數(shù)據(jù)表的信息損失度為所有分組的信息損失度之和,即:
2)隱匿率。
定義4隱匿率。隱匿處理的數(shù)據(jù)記錄在數(shù)據(jù)表所有數(shù)據(jù)記錄中所占的比例:
其中:t 表示隱匿的數(shù)據(jù)記錄條數(shù),|T |表示數(shù)據(jù)表總的數(shù)據(jù)量。隱匿率越小,發(fā)布的數(shù)據(jù)效果越好,理想情況下該值為0。
3)附加信息損失度。初次分組后,為了減少隱匿率,在滿足l-多樣性的前提下,將剩余的數(shù)據(jù)分到已有分組中。這樣,在最終的分組中,某些敏感屬性的值可能重復(fù),即l <|G|(G 表示分組的數(shù)據(jù)記錄數(shù)),這就在一定程度上增加了隱私泄露的風(fēng)險(xiǎn),為此引入附加信息損失度來(lái)衡量這種風(fēng)險(xiǎn)。
定義5 附加信息損失度。設(shè)G{G1,G2,…Gi,…,Gm}是數(shù)據(jù)表T 上的分組,則附加信息損失度(Additional Information Loss,AIL)如下:
4)運(yùn)行時(shí)間。算法的運(yùn)行時(shí)間反映了算法的執(zhí)行效率,是算法性能評(píng)價(jià)的一個(gè)重要標(biāo)準(zhǔn)。
在進(jìn)行分組之前,需要對(duì)數(shù)值型敏感屬性進(jìn)行聚類(lèi)。本文將profit 和hours-per-week 分別聚類(lèi)為9 類(lèi)和7 類(lèi)。因此,算法中l(wèi)-多樣性的l的取值范圍是2 ≤l ≤7。針對(duì)不同的l值,本實(shí)驗(yàn)分別用文獻(xiàn)[19]的MNSACM 和文獻(xiàn)[21]的WMNSAPM以及本文方法在相同的數(shù)據(jù)集上進(jìn)行隱私保護(hù)處理,然后計(jì)算各個(gè)評(píng)價(jià)指標(biāo)的值。
1)信息損失度分析。對(duì)于不同的l值,各個(gè)方法的信息損失度如圖2 所示。由圖2 可以看出,隨著l 值的不斷增大,3 個(gè)方法的信息損失度不斷增加;在l 值相同的情況下,本文方法的信息損失度比MNSACM 和WMNSAPM 的更低,對(duì)應(yīng)的數(shù)據(jù)可用性更高。分析原因如下:隨著l 的增大,每個(gè)分組中的數(shù)據(jù)條數(shù)增加,分組中準(zhǔn)標(biāo)識(shí)符屬性的范圍增大,因而信息損失度增加。由于在分組之前,本文方法先根據(jù)用戶需要的準(zhǔn)標(biāo)識(shí)符屬性將數(shù)據(jù)集進(jìn)行了聚類(lèi),避免了不必要的信息損失,因此,在l值相同的時(shí)候,本文方法的信息損失度更低。
圖2 不同算法的信息損失度隨l值的變化Fig.2 Information loss degrees of different algorithms varying with l value
2)隱匿率分析。對(duì)于不同的l值,各個(gè)算法的隱匿率如圖3所示。由圖3可以看出,3個(gè)方法的隱匿率都隨著l值增大而增大,當(dāng)l 取值不超過(guò)4 時(shí),本文方法與WMNSAPM 的隱匿率均較低,具有很好的性能;而當(dāng)l 取值超過(guò)4 時(shí),3 個(gè)方法的隱匿率都比較高。分析原因如下:隨著l 值的增大,在分組過(guò)程中得到的分組數(shù)越少,被隱匿的數(shù)據(jù)越多,因而隱匿率越高。由于MNSACM 在進(jìn)行初次分組后,沒(méi)有對(duì)未分組數(shù)據(jù)進(jìn)行二次分組,直接將其進(jìn)行隱匿,所以,隱匿率更高。
圖3 不同算法的隱匿率隨l值的變化Fig.3 Concealment rates of different algorithms varying with l value
3)附加信息損失度分析。由于MNSACM 沒(méi)有對(duì)分組剩余的數(shù)據(jù)進(jìn)行二次分組,不存在附加信息損失,因此,對(duì)于附加信息損失度的實(shí)驗(yàn)只考慮WMNSAPM 與本文方法。對(duì)于不同的l 值,兩個(gè)算法的附加信息損失度如圖4 所示。由圖4可以看出,WMNSAPM 的附加信息損失度隨著l的增大而不斷增大;雖然本文方法的附加信息損失度也隨著l 的增大而增大,但之后趨于穩(wěn)定。分析原因如下:隨著l的增大,初次分組得到的分組數(shù)越來(lái)越少,即剩余的未分組數(shù)據(jù)越來(lái)越多,因此二次分組的數(shù)據(jù)也越來(lái)越多,進(jìn)而附加信息損失度越來(lái)越大。
圖4 不同算法的附加信息損失度隨l值的變化Fig.4 Additional information losses of different algorithms varying with l value
4)運(yùn)行時(shí)間分析。對(duì)于不同的l值,三個(gè)算法的運(yùn)行時(shí)間如圖5 所示。由圖5 可以看出,MNSACM 和本文方法的運(yùn)行時(shí)間在0~10 s,運(yùn)行時(shí)間較短,效率較高。而且隨著l 值的增大,本文方法的優(yōu)勢(shì)越來(lái)越明顯,而WMNSAPM 的運(yùn)行時(shí)間較長(zhǎng),效率較低。分析原因如下:MNSACM 沒(méi)有對(duì)未分組數(shù)據(jù)進(jìn)行二次分組,故運(yùn)行時(shí)間較短;本文方法在分組之前將數(shù)據(jù)進(jìn)行聚類(lèi),然后對(duì)每個(gè)簇分別進(jìn)行分組處理,因而每個(gè)簇的數(shù)據(jù)相對(duì)較少,故運(yùn)行時(shí)間較短。
圖5 不同算法的運(yùn)行時(shí)間隨l值的變化Fig.5 Running times of different algorithms varying with l value
本文針對(duì)多維數(shù)值型敏感屬性數(shù)據(jù)的隱私保護(hù)問(wèn)題展開(kāi)研究,在對(duì)已有方法進(jìn)行分析的基礎(chǔ)上,提出了一種個(gè)性化隱私保護(hù)方法。該方法首先根據(jù)準(zhǔn)標(biāo)識(shí)符屬性對(duì)數(shù)據(jù)集進(jìn)行聚類(lèi),由此減少了信息損失和隱私泄露風(fēng)險(xiǎn);在計(jì)算多維桶的權(quán)重時(shí),考慮到用戶對(duì)敏感屬性具有不同的敏感程度,將敏感屬性的敏感程度和多維桶的桶容量作為參數(shù),得到桶的加權(quán)選擇度;在將數(shù)據(jù)分組時(shí),選擇加權(quán)選擇度最大的桶中的數(shù)據(jù),使得分組中的多敏感屬性滿足l-多樣性。
實(shí)驗(yàn)結(jié)果表明,相比現(xiàn)有方法,采用本文提出的方法對(duì)多維數(shù)值型敏感屬性的數(shù)據(jù)進(jìn)行隱私保護(hù),具有較低的信息損失度和較短的運(yùn)行時(shí)間,提高了數(shù)據(jù)質(zhì)量和運(yùn)行效率。