徐云山 賀丹 嚴(yán)貞龍 李永立 丘振鋼 楊秋鴻
關(guān)鍵詞: 隱私保護(hù);匿名化;醫(yī)療數(shù)據(jù);等價(jià)類;數(shù)據(jù)脫敏
1 引言
隨著大數(shù)據(jù)、云計(jì)算、人工智能等信息技術(shù)的飛速發(fā)展,為醫(yī)療信息系統(tǒng)的發(fā)展帶來(lái)了新的機(jī)遇[1]。電子病歷和醫(yī)療信息系統(tǒng)的出現(xiàn),是信息化進(jìn)程中重要的一個(gè)環(huán)節(jié),電子病歷讓病歷的記錄和存儲(chǔ)更加方便,醫(yī)療信息系統(tǒng)為患者數(shù)據(jù)的管理和存儲(chǔ)帶來(lái)了便利。同時(shí),醫(yī)療數(shù)據(jù)的日益累積,為醫(yī)療數(shù)據(jù)的管理帶來(lái)了較大的挑戰(zhàn),尤其是隨著醫(yī)療數(shù)據(jù)共享和數(shù)據(jù)傳輸日益頻繁,醫(yī)療數(shù)據(jù)的隱私保護(hù)問(wèn)題也日益突出[2-3]。在醫(yī)療數(shù)據(jù)的使用和傳輸過(guò)程中,不可避免地發(fā)生患者隱私泄露的情況,這為患者的正常生活帶來(lái)了較大影響,尤其是當(dāng)患者不希望自身疾病信息被公之于眾時(shí),因此保護(hù)醫(yī)療數(shù)據(jù)的隱私成為一個(gè)研究熱點(diǎn)[4-6]。國(guó)家也逐漸意識(shí)到信息安全的重要性,并于2020年12月14日發(fā)布了《信息安全技術(shù)健康醫(yī)療數(shù)據(jù)安全指南》,該安全指南對(duì)健康醫(yī)療數(shù)據(jù)進(jìn)行了定義,提出了健康醫(yī)療數(shù)據(jù)分類體系,并對(duì)健康醫(yī)療數(shù)據(jù)的使用提出了一系列指南,該指南從2021年7月1日正式實(shí)施。國(guó)家在“十三五”規(guī)劃中也提出了加強(qiáng)醫(yī)療信息安全防護(hù)體系建設(shè)的要求,醫(yī)療數(shù)據(jù)的隱私保護(hù)問(wèn)題已經(jīng)成為醫(yī)療信息化發(fā)展過(guò)程中亟須解決的問(wèn)題之一。
2 醫(yī)療數(shù)據(jù)隱私保護(hù)現(xiàn)狀
2.1 隱私保護(hù)問(wèn)題描述
患者的醫(yī)療數(shù)據(jù)通常包括身份信息、診療信息、其他信息三部分,身份信息主要是用來(lái)標(biāo)識(shí)患者的個(gè)人身份,主要包括:診療號(hào)、身份證號(hào)、社??ㄌ?hào)、姓名、性別、年齡等信息;診療信息主要是記錄患者就診和治療的相關(guān)信息,主要包括:病史、心率、血壓、疾病、脈象、過(guò)敏史等信息;其他信息主要是與身份信息和診療信息無(wú)關(guān)的信息,主要包括:就診醫(yī)院、就診時(shí)間、就診醫(yī)生、工作單位等信息。通過(guò)患者的身份信息可以分成主標(biāo)識(shí)符和非主標(biāo)識(shí)符,其中主標(biāo)識(shí)符是可以唯一確定患者身份的屬性,如診療號(hào)、身份證號(hào)、社??ㄌ?hào)等,非主標(biāo)識(shí)符是不能唯一確定患者身份的屬性,如姓名、性別、年齡這些屬性不能確定患者身份,但是一旦將這些屬性與其他屬性進(jìn)行結(jié)合就能推斷出患者的身份信息,例如將患者的姓名與患者的工作單位相結(jié)合,就有可能推斷出患者的身份信息。
在《信息安全技術(shù)健康醫(yī)療數(shù)據(jù)安全指南》中明確指出在醫(yī)療數(shù)據(jù)的獲取、收集、存儲(chǔ)、處理、傳輸、發(fā)布、銷毀等過(guò)程中要嚴(yán)格保護(hù)患者的隱私,不能隨意泄露患者的身份信息和診療信息,也不能通過(guò)身份信息、診療信息、其他信息之間的關(guān)聯(lián)性準(zhǔn)確推斷出某條就診記錄是哪個(gè)就診人所有。就診信息中的疾病信息是關(guān)系到患者隱私的敏感信息,如果疾病信息被泄露,將對(duì)患者的基本生活和工作帶來(lái)非常大的負(fù)面影響,一些特殊的疾?。ㄈ绨┌Y、抑郁癥等)甚至?xí)尰颊呤艿脚匀说钠缫暫蛥^(qū)別對(duì)待。表1是醫(yī)療數(shù)據(jù)的簡(jiǎn)單實(shí)例。
2.2 隱私保護(hù)問(wèn)題研究現(xiàn)狀
國(guó)內(nèi)外學(xué)者針對(duì)醫(yī)療數(shù)據(jù)的隱私保護(hù)問(wèn)題進(jìn)行了廣泛研究,通過(guò)對(duì)已有研究成果進(jìn)行分析和總結(jié),根據(jù)研究方法的不同,可以將醫(yī)療數(shù)據(jù)的隱私保護(hù)方法分成匿名化、加密算法、身份認(rèn)證、差分隱私等四類。文獻(xiàn)[7,8]提出了一種針對(duì)電子病歷的隱私保護(hù)模型,該模型中的主要使用差分隱私算法實(shí)現(xiàn)對(duì)電子病歷的隱私保護(hù);文獻(xiàn)[9]提出了隨機(jī)k匿名化的隱私保護(hù)方法,采用聚類的方法將原始醫(yī)療數(shù)據(jù)劃分成幾個(gè)數(shù)據(jù)集,再將子數(shù)據(jù)集劃分成等價(jià)類;卲華西[10]提出了三種基于T-Closeness的分布式大數(shù)據(jù)脫敏算法,三種不同的分布式算法具有不同的應(yīng)用場(chǎng)景,可以實(shí)現(xiàn)不同場(chǎng)景的數(shù)據(jù)脫敏。高志強(qiáng)[11]等人對(duì)差分隱私技術(shù)的研究進(jìn)展進(jìn)行了全面總結(jié),并提出了在新的差分隱私模型下的數(shù)據(jù)收集方法和數(shù)據(jù)分析方法。從現(xiàn)有研究方法可知,當(dāng)醫(yī)療數(shù)據(jù)發(fā)布時(shí),一方面要按照國(guó)家相關(guān)政策保證患者的隱私信息,另一方面要確保隱私保護(hù)之后的數(shù)據(jù)能滿足實(shí)際的使用需求。當(dāng)隱藏的信息過(guò)少時(shí),從發(fā)布的數(shù)據(jù)很容易推斷出患者的隱私信息,甚至能唯一確定患者的身份;當(dāng)隱藏的信息過(guò)多時(shí),會(huì)造成醫(yī)療數(shù)據(jù)無(wú)法使用。因此,需要一種既滿足使用需求又滿足隱私保護(hù)的方法,在保護(hù)患者隱私的同時(shí)盡可能地提供更多的可用信息。
3 醫(yī)療數(shù)據(jù)隱私保護(hù)方法
針對(duì)現(xiàn)有醫(yī)療數(shù)據(jù)隱私保護(hù)方法中存在的問(wèn)題,本文提出一種基于聚類的數(shù)據(jù)隱私保護(hù)方法,通過(guò)為非主標(biāo)識(shí)符構(gòu)建多層泛化樹的方法,并構(gòu)造基于記錄的等價(jià)類,從而實(shí)現(xiàn)匿名保護(hù)方法。
3.1 泛化樹的構(gòu)建方法
泛化是將屬性的具體取值轉(zhuǎn)化為一個(gè)取值范圍,也就是將一個(gè)具體的值換成包含該值的區(qū)間,或者將一個(gè)取值范圍較小的區(qū)間換成一個(gè)取值范圍較大的區(qū)間。為了實(shí)現(xiàn)匿名化,泛化的屬性將包含更少的信息。例如,社??ㄌ?hào)是“10002345”,將其執(zhí)行域泛化為“1000234*”。域泛化滿足每個(gè)域最多有一個(gè)直接泛化域,同時(shí)滿足每個(gè)域中最大屬性的屬性值是唯一的。社保卡號(hào)的域泛化操作如圖1所示。值泛化是滿足在取值域中的每一個(gè)值,在泛化域中都有且只有一個(gè)泛化值與之對(duì)應(yīng),社??ㄌ?hào)的值泛化操作如圖2所示,將這些泛化值進(jìn)行組合,就得到了一棵泛化樹。
泛化樹的具體定義方式為:針對(duì)屬性A,其取值范圍為域D,D 是一個(gè)有限集,將樹的節(jié)點(diǎn)集合表示為T={R, X1, X2, …, Xm, Y1, Y2, …, Yn},其中R表示的是泛化樹的根結(jié)點(diǎn),Y1至Yn表示泛化樹一共有n 個(gè)葉子結(jié)點(diǎn),X1至Xm表示泛化樹除了根節(jié)結(jié)點(diǎn)和葉子結(jié)點(diǎn)之外,一共有m 個(gè)中間結(jié)點(diǎn)。定義函數(shù)F 為集合T 到域D 的一個(gè)冪集映射,對(duì)于集合T 中的兩個(gè)結(jié)點(diǎn)u 和v,當(dāng)結(jié)點(diǎn)u和結(jié)點(diǎn)v 為父子關(guān)系時(shí),滿足:F(v)?F(u)。針對(duì)集合T中的根結(jié)點(diǎn)R 和葉子結(jié)點(diǎn),滿足:(1) |F(Yi)|=1,其中i 屬于[1, n];(2) F(Y1)∪F(Y2)∪…F(Yn)=F(R);(3) F(R)?D。
現(xiàn)以患者的年齡為例,構(gòu)造其對(duì)應(yīng)的泛化樹,如圖3所示。
3.2 聚類
針對(duì)醫(yī)療數(shù)據(jù),本文采用聚類的方法構(gòu)造等價(jià)類,從而減少醫(yī)療數(shù)據(jù)的信息損失。首先,將原始醫(yī)療數(shù)據(jù)集的數(shù)據(jù)映射到歐幾里得空間,相似的醫(yī)療數(shù)據(jù)記錄被聚類到同一個(gè)類中,于是同一個(gè)類中的記錄構(gòu)成一個(gè)等價(jià)類,同一個(gè)類中的記錄相似度非常高,不同類中的記錄相似度較低。在初次聚類時(shí),根據(jù)經(jīng)驗(yàn)選取幾個(gè)聚類中心點(diǎn),并根據(jù)醫(yī)療數(shù)據(jù)記錄與聚類中心的距離將數(shù)據(jù)記錄劃分到相應(yīng)的類中。在進(jìn)行記錄劃分時(shí),需要計(jì)算兩條記錄的相似性,于是將兩條記錄在屬性A上的兩個(gè)屬性值a1和a2的相似性計(jì)算如下:
上式中Sim(a1,a2)表示屬性值a1和a2的相似度,d表示泛化樹的最大深度,p表示屬性值a1和a2在泛化樹上的最短路徑上中間結(jié)點(diǎn)的個(gè)數(shù)。Sim(a1,a2)的計(jì)算值越大,則以圖3中計(jì)算[21,40]和[41,60]的相似性為例,其中d 取值為4,因?yàn)榉夯瘶涞淖畲笊疃葹?,p 的取值為1,因?yàn)閺腫21,40]到[41,60]在泛化樹上的路徑為:[21,40]->[0,60]->[41,60],路徑上的結(jié)點(diǎn)個(gè)數(shù)為1,從而計(jì)算得到[21,40]與[41,60]的相似性為:Sim([21,40],[41,60])=-log(1/8)=0.903。同理,計(jì)算得到[21,40]與[81,100]的相似性為:Sim([21, 40], [81, 100]) =-log(3/8) =0.426。從計(jì)算結(jié)果可以看出,[21,40]與[41,60]更相似。
4 實(shí)驗(yàn)
為了驗(yàn)證本文醫(yī)療數(shù)據(jù)隱私保護(hù)方法的正確性,現(xiàn)通過(guò)實(shí)驗(yàn)驗(yàn)證本文方法的性能。本次實(shí)驗(yàn)采用Windows10 操作系統(tǒng),實(shí)驗(yàn)設(shè)備的CPU 為Inter i5-7200U,用Python 3.9 開發(fā)程序、PyCharm 2021.2 為集成開發(fā)平臺(tái),搭建完整的實(shí)驗(yàn)環(huán)境。本實(shí)驗(yàn)采用的數(shù)據(jù)為真實(shí)的醫(yī)療數(shù)據(jù),主要屬性包括診療號(hào)、姓名、社??ㄌ?hào)、性別、年齡、疾病、過(guò)敏史、脈搏、血壓、工作單位、就診時(shí)間、就診醫(yī)院等。
表2為醫(yī)療數(shù)據(jù)匿名化處理的結(jié)果,在該匿名化處理中以年齡作為準(zhǔn)標(biāo)識(shí)符。其中年齡在[21,30]之間的有4人,年齡在[31,40]之間的有3人,年齡在[41,50]之間的有3人。通過(guò)匿名化處理之后,每條記錄是很難推測(cè)出患者的真實(shí)身份,同時(shí),數(shù)據(jù)具有較高的可用性,不影響后續(xù)的數(shù)據(jù)使用。
為了進(jìn)一步驗(yàn)證本文隱私保護(hù)方法的性能,選取不同數(shù)據(jù)量的醫(yī)療數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。圖4展示了當(dāng)匿名化參數(shù)k=3,相似性閾值Sim(a1,a2)=0.65時(shí),數(shù)據(jù)量從0變換到20000時(shí),匿名化處理所需時(shí)間。圖5展示了當(dāng)數(shù)據(jù)量分別為1000、5000、10000,匿名化參數(shù)k=3,相似性閾值Sim(a1,a2)=0.65,年齡泛化等級(jí)分別為5、10、20、40時(shí)的匿名化處理時(shí)間。
從圖4中可以看到,隨著醫(yī)療數(shù)據(jù)量的增大,匿名化處理的時(shí)間也隨之增加,當(dāng)數(shù)據(jù)量分別為3000、6000、9000、12000、15000、18000、20000時(shí),匿名化處理所需時(shí)間分別為5.2s、17.3s、32.5s、45.6s、78.5s、114.5s、174.6s,這是因?yàn)殡S著數(shù)據(jù)量的增加,聚類操作所需的迭代處理次數(shù)也隨之增加,從而匿名化處理時(shí)間增加。從圖5中可以看出,當(dāng)年齡泛化等級(jí)相同時(shí),隨著數(shù)據(jù)集的增大,匿名化處理所需時(shí)間也逐漸增加,當(dāng)年齡泛化等級(jí)為5,數(shù)據(jù)量分別為1000、5000、10000 時(shí),數(shù)據(jù)匿名化處理所需時(shí)間分別為1.1s、4.2s、10.7s,這時(shí)隨著數(shù)據(jù)量的增加,兩條記錄相似性的計(jì)算時(shí)間也增加,從而匿名化處理時(shí)間增長(zhǎng)。此外,隨著年齡泛化等級(jí)的增加,同一數(shù)據(jù)量的匿名化處理時(shí)間并未發(fā)生較大的變化,例如,當(dāng)數(shù)據(jù)量為10000,年齡泛化等級(jí)分別為5、10、20、40時(shí),匿名化處理所需時(shí)間分別為10.7s、10.9s、11.2s、11.5s,這是因?yàn)槭褂貌煌哪挲g泛化等級(jí)時(shí),聚類次數(shù)并未發(fā)生明顯的變化,從而匿名化處理所需時(shí)間也沒(méi)有明顯增加。
5 結(jié)論
本文針對(duì)醫(yī)療數(shù)據(jù)在獲取、收集、存儲(chǔ)、處理、傳輸?shù)冗^(guò)程中可能存在的患者隱私信息泄露問(wèn)題,在充分考慮數(shù)據(jù)的安全性和數(shù)據(jù)的可用性的條件下,提出了一種基于聚類的數(shù)據(jù)匿名化方法,通過(guò)構(gòu)建泛化樹,并將原始數(shù)據(jù)聚類成等價(jià)類,在保證數(shù)據(jù)可用性的同時(shí),最大力度地保護(hù)了患者的隱私信息。通過(guò)實(shí)驗(yàn)驗(yàn)證了本文提出方法的正確性和可行性,在后續(xù)的研究中,將研究算法復(fù)雜度更低的方法,減小聚類所需時(shí)間,并進(jìn)一步提高隱私保護(hù)效率。