王換換 吳響 魏裕陽(yáng)
【摘 要】隱私保護(hù)是實(shí)現(xiàn)大數(shù)據(jù)價(jià)值的首要步驟和關(guān)鍵環(huán)節(jié)。目前,結(jié)構(gòu)化數(shù)據(jù)隱私保護(hù)方法豐富,而醫(yī)療數(shù)據(jù)中常見的半結(jié)構(gòu)化數(shù)據(jù)缺乏可靠的隱私保護(hù)模型及完善的平臺(tái)支撐。針對(duì)這一問題,本文將從數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化的角度入手,深入探索半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的隱私保護(hù)方法及平臺(tái)構(gòu)建。
【關(guān)鍵詞】隱私保護(hù);半結(jié)構(gòu)化;信息抽取
1 研究意義
醫(yī)療數(shù)據(jù)被充分共享的前提是保證數(shù)據(jù)的隱私安全。半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)是醫(yī)療大數(shù)據(jù)的重要組成部分,占有舉足輕重的地位。醫(yī)療過程中形成的半結(jié)構(gòu)化信息隱私內(nèi)容多樣,從中折射、反映、蘊(yùn)含的資訊及信息具有巨大的應(yīng)用價(jià)值,對(duì)于醫(yī)學(xué)研究、政府統(tǒng)計(jì)或是其他個(gè)人、機(jī)構(gòu)的科研有重要意義。然而,由于半結(jié)構(gòu)化數(shù)據(jù)的復(fù)雜性、靈活性以及其自描述形式,現(xiàn)存的隱私保護(hù)技術(shù)滿足不了半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的隱私保護(hù)需求。
目前,數(shù)據(jù)共享中的隱私保護(hù)技術(shù)主要基于三類模型:k-匿名模型[1-2]、l-多樣性匿名模型[3-4]和t-closeness匿名模型。但大多數(shù)隱私保護(hù)技術(shù)都是針對(duì)結(jié)構(gòu)化數(shù)據(jù),對(duì)半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)共享的隱私保護(hù)并不理想。而綜合考慮技術(shù)、成本等問題,對(duì)半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的隱私保護(hù),應(yīng)首先考慮使用成熟的結(jié)構(gòu)化數(shù)據(jù)隱私保護(hù)方法,其關(guān)鍵是將半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)轉(zhuǎn)化結(jié)構(gòu)化數(shù)據(jù)。半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的隱私保護(hù)問題要綜合考慮到數(shù)據(jù)的異構(gòu)性、復(fù)雜性、高維性等問題,明確中文醫(yī)學(xué)信息數(shù)據(jù)特點(diǎn)造成半結(jié)構(gòu)化信息抽取困難的問題,充分利用國(guó)內(nèi)外半結(jié)構(gòu)化數(shù)據(jù)抽取技術(shù)及結(jié)構(gòu)化數(shù)據(jù)集信息的指導(dǎo)作用,將結(jié)構(gòu)特征與詞法、語義、表現(xiàn)形式等其他特征相結(jié)合,建立專門針對(duì)中文半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)特點(diǎn)的智能化信息處理模型及系統(tǒng)。
此外,考慮到結(jié)構(gòu)化后的醫(yī)療數(shù)據(jù)具有高維度、高復(fù)雜度的特點(diǎn),需要更加高效的計(jì)算技術(shù),自動(dòng)并行化是解決這一問題的有效途徑之一。Spark 是由伯克利大學(xué)開發(fā)的通用分布式內(nèi)存計(jì)算平臺(tái),而彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,RDD)是Spark 的最基本抽象,是對(duì)分布式內(nèi)存的抽象使用,實(shí)現(xiàn)了以操作本地集合的方式操作分布式數(shù)據(jù)集的抽象實(shí)現(xiàn),適合優(yōu)化需要多次迭代操作的機(jī)器學(xué)習(xí)類算法。因此,半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的隱私保護(hù)過程完成能夠使用spark并行計(jì)算,進(jìn)行高效地資源分配。
2 研究?jī)?nèi)容
本文主要解決半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)共享中的信息抽取、隱私保護(hù)、并行化等關(guān)鍵技術(shù)問題,在保證半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)共享后隱私安全的情況下,提高半結(jié)構(gòu)化數(shù)據(jù)的可用性,為臨床決策、科研提供數(shù)據(jù)資源的支持,構(gòu)建面向半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)共享的BaaS隱私保護(hù)平臺(tái)。
(1)面向半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的信息抽取技術(shù)及醫(yī)學(xué)術(shù)語知識(shí)庫(kù)的構(gòu)建
建立服務(wù)于機(jī)器學(xué)習(xí)算法的中文醫(yī)學(xué)術(shù)語知識(shí)庫(kù)是信息抽取技術(shù)的基礎(chǔ),利用統(tǒng)計(jì)學(xué)方法學(xué)習(xí)標(biāo)記好的語料庫(kù)、獲取規(guī)則、建立類似UMLS的中文醫(yī)學(xué)術(shù)語知識(shí)庫(kù)。標(biāo)注少量醫(yī)學(xué)病歷作為統(tǒng)計(jì)學(xué)方法的訓(xùn)練集;探索適當(dāng)?shù)目捎糜卺t(yī)學(xué)問題識(shí)別的統(tǒng)計(jì)學(xué)算法;構(gòu)建一個(gè)可以表明人物及其相應(yīng)醫(yī)學(xué)問題的信息表示方案;各部分研究間的關(guān)系可以構(gòu)成一個(gè)信息抽取系統(tǒng)。
(2)隱私保護(hù)算法的自動(dòng)并行化技術(shù)
引入Spark技術(shù),Spark 使用基于內(nèi)存計(jì)算的并行化計(jì)算模型——彈性分布式數(shù)據(jù)集(resilient distributed datasets,RDD),提供強(qiáng)大的分布式內(nèi)存并行計(jì)算引擎,支持快速迭代計(jì)算,將機(jī)器學(xué)習(xí)應(yīng)用到常規(guī)并行化策略上,能夠進(jìn)一步提升訓(xùn)練速度。首先采用合理智能算法以及不同訓(xùn)練集對(duì)各個(gè)k-匿名算法進(jìn)行測(cè)試訓(xùn)練,檢測(cè)不同算法較為費(fèi)時(shí)部分;其次測(cè)試該部分能否進(jìn)行分布式計(jì)算法;最后Spark平臺(tái)進(jìn)行分布式運(yùn)算會(huì)涉及到通信開銷,智能算法訓(xùn)練各k-匿名算法,給定各算法進(jìn)行分布式所需要的數(shù)據(jù)集閾值。對(duì)k-匿名算法設(shè)計(jì)采用了并行化局部?jī)?yōu)化的迭代計(jì)算模式,有效提高匿名效率。
(3)構(gòu)建面向半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的分布式隱私保護(hù)BaaS平臺(tái)
構(gòu)建面向結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的分布式隱私保護(hù)BaaS平臺(tái),該平臺(tái)應(yīng)具備上載結(jié)構(gòu)化數(shù)據(jù)集和半結(jié)構(gòu)化數(shù)據(jù)集、連接數(shù)據(jù)庫(kù)、醫(yī)學(xué)數(shù)據(jù)信息抽取模塊、隱私保護(hù)模塊、提供k-匿名算法的Rest-API。平臺(tái)內(nèi)含自建中文臨床子語言語法規(guī)則及醫(yī)學(xué)術(shù)語知識(shí)庫(kù),為信息抽取的精確性提供知識(shí)儲(chǔ)備及技術(shù)支持。隱私保護(hù)模塊能夠按需求進(jìn)行全域k-匿名或局域k-匿名的選擇、具體實(shí)現(xiàn)k-匿名算法的選擇、隱私保護(hù)模型的選擇,同時(shí)該模塊具有是否使用分布式計(jì)算的選項(xiàng)。
3 研究方法
首先建立醫(yī)學(xué)術(shù)語知識(shí)庫(kù)及命名實(shí)體規(guī)則庫(kù),對(duì)半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)進(jìn)行信息抽取,測(cè)試抽取信息的準(zhǔn)確性。對(duì)抽取后的結(jié)構(gòu)化數(shù)據(jù)匿名,測(cè)試k-匿名算法的功能及其使用范圍。挖掘匿名前后數(shù)據(jù)所包含的信息,對(duì)比挖掘結(jié)果,對(duì)匿名后的數(shù)據(jù)集進(jìn)行信息損失量的度量,給出k-匿名算法的評(píng)估標(biāo)準(zhǔn)。為節(jié)省處理數(shù)據(jù)的時(shí)間,準(zhǔn)確找到各算法適合的分布式計(jì)算模塊,在k-匿名算法功能測(cè)試后,使用訓(xùn)練集對(duì)各k-匿名算法的代碼模塊進(jìn)行訓(xùn)練,分析每個(gè)程序段的運(yùn)行時(shí)間,探尋各個(gè)方法的運(yùn)行時(shí)間、次數(shù)等統(tǒng)計(jì)信息,并采用深度貪婪算法迭代統(tǒng)計(jì)含子程序的代碼段的運(yùn)行時(shí)間,找出算法最耗時(shí)模塊,對(duì)該模塊進(jìn)行分布式處理,使其單線程計(jì)算變?yōu)椴l(fā)式計(jì)算。
使用GATE程序?qū)Π虢Y(jié)構(gòu)化程序進(jìn)行信息抽取,GATE的抽取信息的準(zhǔn)確性高達(dá)97.58%,處理速度為31.5KB/s,完全可以滿足現(xiàn)有情況下的信息抽取要求。選擇匿名模型及匿名算法,利用匿名算法處理抽取后的結(jié)構(gòu)化數(shù)據(jù),完成匿名。如果選擇的匿名算法匿名后的數(shù)據(jù)集不符合要求,則重新選擇匿名算法進(jìn)行匿名數(shù)據(jù)集,直到匿名后的數(shù)據(jù)集滿足隱私保護(hù)和數(shù)據(jù)可用性的雙重要求。同時(shí),在匿名化之前,根據(jù)已訓(xùn)練出的參數(shù)進(jìn)行分布式需求判斷,如果分布式較為節(jié)省時(shí)間則采用分布式計(jì)算,如果因?yàn)榉植际教幚淼耐ㄐ砰_銷造成時(shí)間浪費(fèi),則采用單線程處理數(shù)據(jù)。
4 實(shí)施方案與研究步驟
第一步:關(guān)鍵詞提取,分詞處理是識(shí)別半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)的第一步
(1)自主收集和制作中文詞表;
(2)編寫針對(duì)中文特性的規(guī)則。
該方法不但可以準(zhǔn)確地抽取出個(gè)人信息,而且因其包含的ICD-10詞庫(kù)可以把半結(jié)構(gòu)化數(shù)據(jù)中包含的疾病、診斷、健康狀況信息轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù),方便對(duì)半結(jié)構(gòu)化數(shù)據(jù)的挖掘,進(jìn)一步提高了半結(jié)構(gòu)化數(shù)據(jù)的價(jià)值。
第二步:半結(jié)構(gòu)化醫(yī)療數(shù)據(jù)隱私保護(hù)處理
針對(duì)提取出的個(gè)人信息,例如住址、年齡、提問等信息,本文將采用k-匿名模型對(duì)其進(jìn)行匿名化處理??紤]到k-匿名是把精確數(shù)據(jù)模糊化,因此,該方法匿名的數(shù)據(jù)集會(huì)產(chǎn)生一定的信息損失,對(duì)此本文采用IL評(píng)估方法對(duì)匿名表進(jìn)行信息損失量的判斷。為了更好的進(jìn)行隱私保護(hù),在k-匿名模型的基礎(chǔ)上引入l-diversity模型、t-closeness模型對(duì)其進(jìn)行匿名化操作。
第三步:Spark分布式并行化算法處理技術(shù)
k-匿名算法是需要多次對(duì)數(shù)據(jù)操作即多次訪問I/O端口,故可以通過減少k-匿名時(shí)的I/O操作較少匿名化時(shí)間,本文采用Spark平臺(tái),把數(shù)據(jù)存儲(chǔ)在內(nèi)存中,避免不斷從硬盤讀取數(shù)據(jù),節(jié)省訪問I/O端口的通訊時(shí)間??紤]到Spark計(jì)算本身具有通信開銷,當(dāng)數(shù)據(jù)量較小時(shí),使用Spark分布式進(jìn)行k-匿名算法可能會(huì)形成時(shí)間上的浪費(fèi)。因此,本文使用不同大小的訓(xùn)練集、不同屬性大小的訓(xùn)練集和不同泛化規(guī)則的訓(xùn)練集不斷進(jìn)行訓(xùn)練,找出來各k-匿名算法使用Spark平臺(tái)可以減少時(shí)間閾值[5]。在閾值之內(nèi)的數(shù)據(jù)集,將會(huì)建議采用單線程計(jì)算以節(jié)省時(shí)間和資源,大于此閾值的數(shù)據(jù)集,將會(huì)合理的給出分布式計(jì)算意見。
第四步:構(gòu)建面向半結(jié)構(gòu)化數(shù)據(jù)的分布式隱私保護(hù)BaaS平臺(tái)
構(gòu)建后端即服務(wù)BaaS平臺(tái),通過Web Service技術(shù)構(gòu)建Rest API,為開發(fā)者提供接口。在服務(wù)器端提供對(duì)底層系統(tǒng)的抽象,以實(shí)現(xiàn)對(duì)底層通用數(shù)據(jù)處理引擎的支持,并提供上傳結(jié)構(gòu)化數(shù)據(jù)集和半結(jié)構(gòu)化數(shù)據(jù)集、連接數(shù)據(jù)庫(kù)、醫(yī)學(xué)數(shù)據(jù)信息抽取模塊、隱私保護(hù)模塊、k-匿名算法等編程語言接口(API),從而滿足開發(fā)者的需求。
【參考文獻(xiàn)】
[1]Samarati P,Sweeney L.Protecting privacy when disclosing information:k-anonymity and its enforcement through generalization and suppression.SRI Computer Science Laboratory Technical Report SRI-CSL-98-04,1998.
[2]Samarati P.Protecting respondentsidentities in microdata release[J].IEEE Trans Knowl Data Eng,2001,13:1010-1027.
[3]Machanavajjhala A,Kifer D,Gehrke J,and Venkitasubramaniam M.1-diversity:Privacy beyond k-anonymity.ACM Trans KnowL Discov. Data 1.1.2007.
[4]Li N H,Li T C,Venkatasubramanian S.t-closeness:privacy beyond k-anonymity and 1-diversity[C] Proceedings of IEEE 23rd International Conference on Data Engineering, Istanbul,2007.106-1 15.
[5]李文,程華良,彭耀,等.基于Spark可視化大數(shù)據(jù)挖掘平臺(tái)[C].系統(tǒng)仿真技術(shù)及其應(yīng)用.