向夏雨,王佳慧,王子睿,段少明,潘鶴中,莊榮飛,韓培義,4,劉川意,4
(1.北京郵電大學網絡空間安全學院,北京 100876;2.國家信息中心信息與網絡安全部,北京 100045;3.哈爾濱工業大學(深圳)計算機科學與技術學院,廣東 深圳 518055;4.鵬城實驗室網絡部,廣東 深圳 518066)
醫療大數據的激增并不意味著數據科學家可以輕易地獲取真實數據。例如,一家醫院希望將電子健康檔案(EHR,electronic health record)分享給一所大學用于研究,然而數據共享必須經過仔細的倫理審查,以免泄露病人的隱私[1]。此過程通常需要幾個月的時間,最終還不能保證該學校可以獲得批準。
為了解決上述難題,最新工作基于生成對抗網絡(GAN,generative adversarial network)技術進行了廣泛的研究,以期提供一種更安全的數據共享方式[2]。但是與GAN 用于生成非結構化數據的成功相比,基于GAN 的結構化仿真數據合成仍處于起步階段。
結構化數據的混合數據類型、特征的關聯關系、多模態的數據分布、不平衡的數據標簽這幾個獨特屬性對GAN 模型的設計提出了挑戰[3]。具體而言,結構化數據集往往包含各種定類特征,并且機器學習通常要求對訓練的變量進行矢量表示。常規的獨熱編碼首先將定類屬性轉換為多個數值模擬,然后將其用于建模[4]。
盡管獨熱編碼技術簡單易行,但其主要缺點是隨著特征類別的增加,或者當數據集中存在數百萬的實體時,將不可避免地產生維數災難效應。通常對于基數為d的變量,其對應向量將具有d個維度,所形成的稀疏矩陣難以進行有效的機器學習訓練[5]。其次,一位有效編碼的特點是將類別分開表示為獨立不相關的概念,這是因為任意2個向量之間的內積為零,且每個向量在歐幾里得空間中彼此距離相等,這樣帶來的后果是消除了特征底層表示中的重要關聯結構[5]。對于結構化EHR中的定類特征而言,前期特征編碼工作[2-3]尚未針對性地解決醫療實體之間所存在的層級結構,從而導致現有的結構化仿真數據生成方案不適用于醫療數據集[6]。
因此,本文旨在研究數據中間表示學習(DIRL,data intermediate representation learning),以克服生成對抗網絡用于結構化數據建模的局限性。在機器學習中,表示學習[7]可以從原始數據中自動發現特征或構建分類器所需的有效信息,這取代了過去手動的特征工程,允許程序學習相關特征并使用它們執行特定任務。直觀上觀察,基于同一空間的低維表示相比于獨熱編碼更有效,這是因為特征嵌入在保留特征向量空間語義的同時,也僅僅由少量的實數點表示。
綜上所述,正確表示數據是訓練GAN 的關鍵,通過對分類和連續變量采取合適的表示形式,并設計合理的GAN 模型架構,可以訓練出高質量的神經網絡模型用于仿真數據的生成。
本文具體的貢獻如下。
1)基于表示學習的定類變量建模,利用雙曲空間對大規模醫學類別實體進行低維、稠密向量的映射,將龐加萊球模型與黎曼隨機梯度下降優化算法用于建模特征層次關系,以此有效地保留潛在分層結構與關聯關系,為GAN 的原始數據訓練提供基礎。
2)基于高斯耦合的生成對抗網絡技術,利用生成模型創建近似于原始數據分布的仿真數據,首先使用高斯耦合對數據表中多元非線性的隨機變量進行建模,以此捕捉不同特征之間的統計特性;隨后利用優化的WGAN(Wasserstein generative adversarial network)為分類、連續等結構化數據類型提供合成數據,通過該技術在真實EHR 的使用受到限制時代替真實EHR。
3)基于隱私性和可用性指標的評估技術,利用距離的方式檢驗假數據的隱私性,使用最近鄰對抗精度、隱私損失、散度值與差異分數定量描述與真實數據之間的差異;利用分類算法綜合檢驗仿真數據的可用性,提出統計平均的機器學習分類指標,公正評判仿真數據相較于原始EHR 的再入院預測效果。
最終實驗表明,相較于當前結構化假數據生成的SOTA(state-of-the-art)技術——CTGAN(conditional tabular generative adversarial network)[8]而言,本文提出的方案可以更好地表征結構化EHR中的分類和連續特征,最終在生成數據的可用性方面實現了超過15%的提升,從而為隱私保護前提下醫療EHR 的發布和挖掘提供更可靠的依據。
數據脫敏[9]是指對敏感信息按照預設的規則和算法進行數據變形或隱去敏感信息,從而使個人身份無法識別。
1)傳統數據脫敏技術
傳統的數據脫敏技術可分為基于非數據擾亂的數據脫敏技術和基于數據擾亂的數據脫敏技術[9]。前者(例如數據抽樣、去標識化)不會降低數據的真實性,可基于原始數據減少敏感細節或者對其進行部分抑制,但是會降低預測的準確性[10];經過后者(例如數據置換、數據噪聲、數據遮掩)擾亂后的數據通常是不真實的,即受到了一定程度的修改。相比于前者,基于數據擾亂的脫敏技術往往可以更好地保留原始數據的統計分布特性[11]。
本文涉及的傳統數據脫敏技術為去標識化技術[12],其定義為對相應的標識符進行直接刪除的操作。在不借助任何背景知識的情況下,該過程無法識別特定主體。
本文所用到的開源CERNER Health Facts 數據庫的糖尿病患者EHR[13]中,所有數據在提供給數據分析師之前均已根據美國健康保險流通與責任法案(HIPAA,health insurance portability and accountability act)進行了身份去標識化處理。
2)新型數據脫敏技術——基于生成對抗網絡的仿真數據生成
傳統的數據脫敏技術通常需要手工制定脫敏規則與策略,對不同場景、不同任務和海量的數據而言,該方案存在巨大的效率缺陷。
生成對抗網絡[2]是一種學習數據潛在分布的無監督生成模型,通過GAN 可以創建仿真的訓練數據。在這種情況下,醫院不需要發布原始EHR,僅提供合成數據供數據科學家使用,從而可以避免敏感信息的泄露。但是使用該方法的前提是GAN 所生成的數據應盡可能地貼近原始數據的分布,以使機器學習算法在此訓練集上建模時,其隱私性和可用性均得到保障。
數據中間表示學習是在保護數據隱私的前提下,通過有效預測任務學習特征的中間表示(嵌入)。Osia 等[14]提出了一種特征維數縮減(FDR,feature dimension reduction)技術,該技術對提取的特征進行精煉以去除多余的信息,并采用暹羅微調方法保護敏感信息免受侵害,但是并沒有系統地在隱私性和可用性之間進行折中。隨著GAN的提出[2],學者們已經研究了幾種使用GAN 來保護數據隱私的方法,其目的是模擬攻擊者和防御者之間的博弈,它們以相互沖突的可用性與隱私性為目標進行攻守。Xiao 等[15]和Liu 等[16]設計了一種基于GAN 的中間表示學習,該方法在保留隱私性的同時最大限度地保證了任務的實用性。這種對抗類型的機制通過模擬解碼器或分類器的隱私攻擊,旨在推斷敏感信息;而編碼器則不斷試圖隱藏私有信息,旨在保護隱私信息不被泄露。這種機制通過持續地學習來提高效用,最終使任務損失函數最小。然而這些工作并未針對結構化數據集進行實驗和驗證。Li 等[17]介紹了一個與任務無關的隱私保護數據眾包框架,目的是學習一個特征提取器,使其可以從提取的中間特征里刪除相應的隱私信息,將嵌入原始數據的初始信息用于機器學習下游任務。
上述解決方案背后的相同思想是利用GAN 來混淆原始數據和特征,防止隱私泄露。但是,這些最新的嵌入機制無法準確地處理定類屬性的潛在分層結構,而這正是層級相互關聯醫療實體的關鍵特性所在[18]。
基于表示學習的生成對抗網絡技術是一種基于GAN 的方法,旨在對結構化數據分布進行建模。本節基于龐加萊球模型對醫療關系實體實施數據嵌入處理,并利用黎曼隨機梯度下降算法對其進行優化(2.1 節),以此保留特征潛在分層結構與關聯關系,為GAN 的原始數據訓練提供基礎。在EHR的分類特征得到有效的預處理后,本文利用高斯耦合的方式對變量的多元分布進行建模,并基于全連接網絡和最新的WGAN 技術生成近似于真實數據的仿真數據(2.2 節)。
結構化數據中類別變量的處理通常使用獨熱編碼,而這種方法容易帶來空間爆炸的問題。受到數據中間表示學習最新進展的啟發,本節將分類特征嵌入低維坐標軸中以提高空間效率,并保留其潛在的屬性層次結構。
ICD-9 是《疾病和相關健康問題國際統計分類》的第9 版,由衛生組織統一規范[19]。ICD-9 臨床修改代碼(ICD-9-CM)是ICD-9 版本的更新。如表1所示,ICD-9-CM 代碼將不同類別的疾病類型劃分成不同的值域,如390~459,785 對應循環系統疾病;250.xx 對應糖尿病等。

表1 ICD-9-CM 疾病類別展示
這種編號的醫學本體通常是按照層次組織的。圖1 顯示了一個示例:其中ICD 240~279(不包含250)是整個ICD-9-CM 1 000 多種疾病中的一個大類別,表示“內分泌、營養和代謝性疾病以及免疫性疾病”類型。該類別中的子類別為240~246、249~259、260~269 等,代表了不同類型的疾病種類,例如“甲狀腺疾病”“其他內分泌腺疾病”和“營養缺乏癥”。249.x和255.x 被認為是特定疾病相對應的葉節點,隸屬于單個子類別(249~259),代表“患有其他昏迷的繼發性糖尿病”和“腎上腺疾病”的準確疾病描述。

圖1 ICD-9-CM 類別層次示例
ICD-9-CM 的醫學本體庫較大,每個診斷代碼都可以視為一個獨立的特征。因此,將獨熱編碼技術用于進一步的處理和建模是不可行的,因為它會產生巨大的稀疏矩陣。
一般而言,合適的數據中間表示可帶來良好的模型性能[20]。根據ICD-9-CM 代碼的性質,在表示這些概念時需盡可能保留其分級的結構。對于文本數據而言,歐幾里得空間是使用最廣泛的一種數據嵌入方法。但是,對于具有明顯層次的醫學本體來說,雙曲方法[21]更加適合,這是因為該方法可以在較低維度上保留正確的層級排名。
龐加萊球模型是類似于n維球體的n維雙曲幾何模型,所有點都嵌入在內。任何度量空間的特征都是基于u與v兩點之間的距離。在雙曲空間中,特別是對于龐加萊球模型而言,其兩點之間的距離定義為

鑒于龐加萊球模型的幾何性質,其可以用來對實體進行層次性的建模。對于嵌入雙曲空間中的分層結構,根節點將放置在離中心較近的區域,而葉節點將被分配在靠近球體的邊界,這是為了確保葉節點與其他葉節點之間保持合理的距離。
為了學習醫學本體的表示,本節定義一個損失函數,旨在最小化相似本體嵌入之間的雙曲線距離,并最大化不相似本體嵌入之間的雙曲線距離。本節遵循文獻[22]的工作,使用黎曼隨機梯度下降來優化以下損失函數

式(2)表明,任何有限樹都可以嵌入有限的雙曲空間中,從而近似保留實體之間的距離。本文方法利用雙曲空間的特定模型,即龐加萊球模型,因為它非常適合基于梯度的優化。這使本文能夠開發一種基于黎曼優化的高效算法來計算嵌入,該算法易于并行化并且可以擴展到海量EHR。
圖2 顯示了基于二維空間Poincaré 模型的數據嵌入功能。該方法使用了數據中間表示,能夠學習大規模的分類實體,并保持相似醫學本體之間的數據關聯嵌入。由圖2 可知,ICD-9-CM中的不同疾病大類別已經被分開。與此同時,在對應的每個大類中,存在多個子類別;由于子類別隸屬于單個大類別,故該大類別中的每個子類別僅與所在大類別之間的距離非常相近,與不同大類別之間的距離相對較遠,這種情況對于其葉節點也是如此。

圖2 基于二維空間Poincaré 模型的數據嵌入功能
通過本節提出的數據中間表示學習的方法,將相似的醫學實體聚集在一起,并使不同類型疾病之間的距離盡可能分開,從而保留本體的有效層級信息。
在訓練神經網絡模型之前,正確表示原始數據是關鍵環節。本節通過對定類醫療實體特征采取二維空間Poincaré 模型的表示形式,為訓練高質量的GAN 模型提供必要的前提條件。
本文使用了UCI Machine Learning Repository 的EHR 國家數據倉庫,該數據庫收集了美國130 所醫院的10 年臨床護理和綜合交付網絡的全面臨床記錄[13],包括50 類特征,例如人口統計信息、診斷結果、糖尿病藥物使用清單、入院前一年的就診次數以及代表患者和醫院結果的保險信息。本文從EHR 原始數據庫中提取滿足以下條件的住院信息。
1)一次住院記錄。
2)一類糖尿病的住院,即在此期間醫生將任何類型的糖尿病輸入系統中作為診斷。
3)住院時間最少一天,最多14 天。
4)住院期間進行了實驗測試和化驗檢查。
5)住院期間服用了藥物。
該糖尿病數據集包含101 766 例住院患者的病歷數據、醫生的專業知識、人口統計學特征(年齡、性別和種族)、診斷和住院程序(由ICD-9-CM 進行編碼)、實驗室數據、藥房數據、院內死亡率和醫院特征等。所有數據在提供給數據分析師之前均已根據HIPAA 進行了身份去標識化處理。
為了獲得干凈、唯一和經過轉換的數據集進行分析,本節利用了2 個主要的預處理步驟,如圖3 所示,其中包括數據清理和特征轉換。最初的糖尿病原始數據集包含101 766 例住院記錄和50 個數據特征。數據清理在患者記錄(行)和數據變量(列)中進行,最終產生69 990 個不同的記錄和40 個特征。

圖3 EHR 預處理流程
上述數據集可用于患者再入院的數據特征分析和預測,其中數據集中包含39 個潛在的預測因素和一項結果變量,即30 天內是否再入院。本節將再入院狀態定義為具有2 種結果:“再入院”(患者在出院后30 天內再次住院)或“無再入院”(患者在30 天后再次住院和沒有再次住院)。
本節定義原始數據為Γ=[X;Y],仿真數據為Γ′=[X′;Y′],其中每個xi∈X和yi∈Y分別對應數據集中的特征和標簽。通過Γ訓練一個分類器f:X→Y(通過Γ′訓練一個分類器f′:X′→Y′),使xi∈X被映射至對應的預測標簽f(xi),即0(無再入院)或1(再入院)。
出院后再入院的定義是指在規定的時間段內出院患者再次住院的情況。再入院率已越來越多地被用作衛生服務研究中的一項成果指標和衛生系統的質量基準。出于倫理審查和保護原始數據隱私的考慮,本節將生成對抗網絡技術用于該結構化EHR 的仿真數據生成,最終僅提供合成的數據給數據分析師挖掘使用。
生成模型本質上是一種機器學習模型,試圖研究現實世界中的數據分布,然后從學習到的分布中隨機抽取樣本。它符合創建仿真數據的目標——試圖擬合原始數據,以便從中獲取樣本數據進行建模。這種機制的一個主要特征是滿足了保護隱私的要求[8]。
傳統的GAN 由生成器和判別器組成,生成器的任務是創建任意數據分布的實際樣本,而判別器的目標是正確區分生成器參數化的分布與真實訓練數據是否相同。生成器和判別器同步進行極小化極大化博弈,因為當達到理想狀態時兩者處于納什平衡,即在生成器準確擬合數據分布的情況下,判別器無法判別樣本數據是否真實。
普通GAN 的主要缺點在于沒有提供控制生成數據的自主權,也沒有支持生成分類數據的可能性[23]。其中,一種對GAN 的優化是WGAN[23]。WGAN改進了模型訓練時的穩定性,并提供了與生成數據質量相關的損失函數。經過分析發現,使用Wasserstein 方法在生成器網絡中設置對應的softmax 輸出(維數等于每個分類變量的定類值數量),能夠使GAN 創建定類數據。
因此,本節提出一種新的仿真數據生成方法,為包含分類、連續和序數等特征類型的結構化數據集提供合成偽造數據的技術。該方案利用WGAN,同時采用基于“合成數據倉庫”[24]編碼方法的新變體為變量的多元分布實施建模,具體步驟如下。
首先,通過高斯耦合對多元非線性的隨機變量進行相關性的建模,以此學習原始結構化數據,從而捕捉不同特征之間的統計分布屬性。當不同隨機變量的邊緣分布相互之間并不獨立時,Copula 相較于傳統方法的優勢是使聯合分布建模變得容易。因為簡單的相關系數只能衡量線性的相關關系,不能衡量非線性的關聯,所以這個時候只能利用Copula 把不同的分布連接起來。2.1 節已經對分類特征做了數值化的預處理,并將其映射到二維數據嵌入的表示空間,這樣使高斯耦合能夠直接對分類數據實現操作。相較于傳統“合成數據倉庫”編碼方法,本文提出的方法將分類數據替換至[0,1]值域[24],提供了更好的可靠性,同時也對表格中列的分布找到一個準確的估計,為下一步生成仿真數據提供基礎。
隨后,在WGAN 生成仿真數據[23]的基礎上,本節尋求訓練生成器模型的另一種方法,從而更好地估計給定訓練數據集的數據分布,整體流程如圖4所示。WGAN 沒有使用判別器將生成的數據條目劃分為真實或偽造,而是采用評價網絡的方式對記錄的真實性或偽造性進行評判,如算法1 所示。這種變化是受理論論證的啟發而實施的,即訓練生成器應尋求使訓練數據集中觀察到的數據分布與所生成示例中觀察到分布之間的Wasserstein 距離最小。

圖4 基于生成對抗網絡的仿真數據生成
算法1WTRAIN(m,αd,αg,Td,Tg,cp)
輸入批量值m,鑒別器學習率αd,生成器學習率αg,鑒別器迭代次數Td,生成器迭代次數Tg,裁剪參數cp
輸出生成器G,鑒別器D
初始化判別器的參數和生成器的參數


這就意味著,通過選擇合適的損失函數能夠生成高質量的假數據,以此保證仿真數據的分布與真實數據的分布盡可能一致。損失函數定義為

綜上,本節針對傳統處理分類特征的缺陷提出了基于雙曲空間數據嵌入的方法,通過將屬性投射至低維空間以稠密的向量表示,從而保留其層級結構。此外,本文提出了基于高斯耦合的改進WGAN 用于結構化的仿真數據生成,對EHR中的連續、分類等屬性進行擬合,提供與真實訓練數據相似并能夠保護隱私的仿真數據,供數據分析師分析使用。
本節首先介紹了實驗環境以及提出的評估分析指標——隱私性與可用性的衡量標準。然后檢驗了方法的有效性,并與當前最新工作進行了比較。最后通過消融實驗驗證了組件的作用,證明了本文方案的優越性。
基于 GAN 的仿真數據生成主要使用Tensorflow、Numpy和Pandas。所有機器學習建模和分析均使用Python 3.6中的Sklearn 0.21版本軟件包,可用性預測使用Lazy Predict 庫。
為了驗證經過數據嵌入處理的EHR 所生成的仿真數據效果,基于前期相關工作[25],本節定義了隱私性和可用性兩方面的評估指標。具體的分析和結果將在后續的實驗部分呈現。
3.2.1 隱私性指標
考慮2 個數據分布PT和PS,其中T對應真實數據分布,S對應合成數據分布。從2 個數據集中隨機抽取的樣本數據分別為和
直觀上理解,對于2 個數據集中的任意兩點,如果基于距離遠近的評估方式,假設兩者之間的距離足夠遠,則意味著真實數據的訓練集/測試集與生成數據的訓練集/測試集不相同,這就表明隱私性得到了保障。
本節將辨別數據是否真實的能力通過最近鄰的概念進行定義,真實數據中的一個點與仿真數據中最相近的一個點的距離為

從真實數據中同一分布中抽取的n-1 個樣本與原始分布的最近鄰距離為

基于此,本節提出最近鄰對抗精度的定義,如式(7)所示。

其中,1(·)為指示函數,如果判斷為真,則返回結果為1,反之為0。對于真實數據中的任意一個點,如果它與合成數據中任意點的距離都足夠遠,則可以認為該點是“真陽性”,從而保證隱私未遭到泄露;同理,合成數據中任意一點都應與真實數據中的點相距足夠遠以便被判定為“真陰性”。所以,本節提出的最近鄰對抗精度是作為區分真實數據和仿真數據對抗分類器的性能指標,如果不能辨別真實數據集與仿真數據集之間的差異,則該結果為0.5。
更多地,隱私損失的概念源自最近鄰對抗精度,旨在對真實數據的訓練集/測試集與生成數據的訓練集/測試集之間最近鄰對抗精度的差異開展比較,如式(8)所示。

假設真實數據的訓練集/測試集與生成數據的訓練集/測試集之間的最近鄰對抗精度分別為0.5,則最終隱私損失結果為0。
額外地,本節利用散度值和差異分數進一步比較真實數據集和合成數據集之間的差異。散度值旨在衡量真實數據分布PT和合成數據分布PS 之間的距離[26],其值域大于或等于0;生成對抗網絡的目的是希望合成數據的分布盡可能地逼近甚至等于原始數據的真實概率分布,從而使散度值接近最小值。差異分數[27]定量地描述了深度學習模型與數據的吻合程度。其中,較大的數值表示生成模型對數據的擬合度較差,0 表示模型的擬合度最好。在大多數情況下,給定模型的參數估計值旨在確保模型的差異函數得分最低。
值得注意的是,假設真實數據和合成數據之間存在明顯差異,那么訓練集和測試集的最近鄰對抗精度都同時大于0.5,兩者的隱私損失差值卻為0。此時,需要通過可用性評估的方式分析仿真數據的好壞。
3.2.2 可用性指標
可用性評估基于糖尿病患者的EHR 數據集進行再入院分類預測任務,其目的是使用各種機器學習算法評估預測性能,以便交叉驗證合成數據的有效性。在再入院預測任務中,準確率是常見的基礎評估方式。本節同時使用F1 值進行再入院分類準確性的比較,F1 值定義為精確度和召回率的調和均值,且認為精確度和召回率同等重要,相當于精確度和召回率的綜合評價指標。一般而言,F1 值越高,意味著模型越好,表明具有預測重新入院任務的能力,從而證明本文提出的仿真數據生成方法能夠出于隱私目的生成“真實、可用”的數據。
進一步地,本文利用絕大多數分類算法綜合檢驗合成數據的可用性,提出可用性統計平均準確率和F1值評判仿真數據相較于原始EHR 的再入院預測效果。
可用性統計平均的定義是在某一給定分類任務上的平均得分,即

其中,μ表示統計平均值,∑Xi表示所有分類算法預測值的總和(例如準確率、F1 值),N表示分類算法的總數。基于可用性統計平均可以實現更加公正的機器學習下游任務評測,而不依賴于單個算法的預測結果。
本節開始將重點評估原始糖尿病EHR 相比于合成糖尿病EHR 的真實性,重點是隱私性-可用性的平衡。為了量化隱私保護的措施,本節驗證多個指標評估其性能優劣。
本節首先對生成數據集與原始數據集之間的最近鄰對抗精度和隱私損失進行了實驗比較。與此同時,為了多維度地評估合成數據的質量,本節對比了不同數據量(100 萬、75 萬、50 萬、25 萬、10 萬、5 萬和2 萬)的仿真數據之間的表現。更多地,本節橫向比較了當前結構化假數據生成的SOTA 技術——CTGAN,它基于GAN 來構建數據表。CTGAN 的研究顯示,它在85%案例中的表現優于經典的合成數據技術[8]。為公平地進行比較,本節基于CTGAN 生成了不同數據量(100 萬、75 萬、50 萬、25 萬、10 萬、5 萬和2 萬)的仿真數據,展示最好的結果并與本文方案展開比較,如表2 所示。

表2 生成數據集的最近鄰對抗精度與隱私損失
從表2中可以觀察到,訓練集和測試集相應的最近鄰對抗精度均為0.7~0.8。與此同時,若分別評估訓練集與測試集,則發現訓練集中的最近鄰對抗精度更偏離理想精度0.5,而測試集中的數值相對更小,意味著擁有更好的表現。導致這種情況的一個很重要的原因可能是訓練集中數據量較大(48 993 例),而測試集中數據量較小(20 997 例),數據量增大無疑給生成對抗網絡合成假數據增加了難度。
對于表2中的隱私損失指標而言,100 萬數據量的假數據達到了最優的指標-0.079,為此可以初步推斷合成數據的隱私性能并非與生成數據的數據量大小直接相關。
在此基礎上,本節對經過數據嵌入的合成數據集和未經數據嵌入的合成數據進行了比較,鑒于100 萬數據量的(數據嵌入)假數據得到了最優結果,故原始獨熱編碼的合成數據(No Embedding)也生成100萬的假數據。從表2中發現,未經數據嵌入的EHR訓練集/測試集的最近鄰對抗精度相對較差,這表明該仿真數據所形成的隱私保護能力相對局限。
對于CTGAN 而言,其表現并沒有優于本文提出的方法。CTGAN 訓練集與測試集的最近鄰對抗精度為0.912和0.831,隱私損失為0.081。一個可能的原因是對于分類數據而言,CTGAN 利用高維的獨熱編碼和歸一化的形式表示原始的一維數據,這樣直接導致GAN 更難以學習到各維度之間的關系。而本文利用表示學習保留了醫療本體的層級結構,從而可以很好地保留關聯信息。
如上文所描述的特例,即便對應的隱私損失約等于0,但是仍無法說明該數據得到保障。為證實該結論,下面對生成數據與原始數據之間的擬合效果進行可視化展示。
圖5 對原始數據與仿真數據的部分特征實施了可視化對比分析。結果表明,大部分特征都實現了較好的擬合效果。
圖6 比較了經過數據嵌入處理的100 萬生成數據(圖6(a))與未經數據嵌入處理的100 萬生成數據(圖6(b)),并展示了它們相較于原始數據分布的區別。鑒于糖尿病患者EHR中存在大量具有相關性的變量特征,假如逐個對其分析,則往往是孤立不全面的。故本節采用主成分分析的方法對屬性降維,以便更加直觀和全面地觀察原始數據與合成數據之間的差異。
從圖6 可以看到,基于數據嵌入處理的仿真數據對原始數據有一個合理的擬合;利用獨熱編碼生成的仿真數據對原始數據的特征分布無任何擬合,對應表2中第2、3 列。
上述結果表明,原始數據集得到數據嵌入后的隱私性能要優于傳統獨熱編碼的合成數據生成方案,無論是基于最近鄰對抗精度,還是就整體合成數據集的隱私損失而言,從而證明了本文數據脫敏方案的優勢。其重要原因在于傳統采用獨熱編碼的分類特征創建了大量冗余0/1 屬性,給生成對抗網絡的擬合帶來障礙,故不利于仿真數據的合成。
另外,值得注意的是,所有生成數據的隱私損失均接近于0,并且100 萬最優隱私損失的差異微小到可忽略不計。這在一定程度上證明了基于改進的生成對抗網絡技術對原始數據集實現了可觀的隱私保護。本節引入其他相關指標進一步為仿真數據集的質量提供參考。
本節采用散度值和差異分數輔助驗證生成數據的質量,如表3 所示。實驗依舊對比了不同數據量的仿真數據和未經數據嵌入處理的100萬仿真數據的表現,并基于真實數據的訓練集/測試集與生成數據的訓練集/測試集的散度值、差異分數指標評估它們的性能。同樣地,本節基于CTGAN 所生成最好的仿真數據散度值和差異分數指標進行了橫向對比。

表3 生成數據集的散度值與差異分數
就散度值而言,本節將原始訓練集/測試集和生成數據的訓練集/測試集進行了比較,對應值域分布為0.17~0.24。其中,100 萬、10 萬和5 萬假數據集均有良好表現,這說明所生成的假數據與真實數據集之間有較好的相似性。更重要的是,若單獨評估訓練集與測試集,則發現絕大多數訓練集中的散度值較偏離理想值0,而測試集中的數值較小,表明其擁有相對理想的表現。該結論與表2中的發現吻合,即訓練集中數據量較大(48 993 例),而測試集中數據量較小(20 997 例),數據量增大時無疑給生成對抗網絡合成假數據增加了難度。
就差異分數而言,本節旨在通過該指標定量地描述真實數據分布和合成數據分布的相似程度。首先計算原始EHR中訓練集與測試集之間的差異分數,得到的結果為2.412,這也為后續的實驗定下了基線。假設所生成的數據與原始數據的差異分數過大且未趨近于0 時,則顯示生成數據的質量較差。
宏觀來看,通過對比合成數據的訓練集與測試集,其差異分數均小于原始數據集中的數值;但通過對比兩者之間的差異分數,它們均表現出如上文中測試集明顯優于訓練集的結果。最后,實驗驗證了不同合成數據集之間的區別,差異分數都已得到較好的結果,這也表明所生成的假數據內部能夠保持良好的一致性。
從表3中同樣得出與表2中原始數據集經過數據嵌入后的性能要優于傳統獨熱編碼的仿真數據生成方案的結論,即合成數據的訓練集和測試集與原始數據集之間的散度值與差異分數較大,對其性能有相應的損耗。
此外,鑒于所使用的EHR 是一份不平衡的數據集,CTGAN 沒有真正解決訓練數據不平衡而造成生成數據真實性較低的問題[8]。最后,不同合成數據集之間的差異能夠維持基本的一致性。
綜上所述,若單純從隱私角度評判,本節所生成數據集具有很好的保密性質。相對于傳統無數據嵌入以及最新的結構化假數據生成CTGAN 技術而言,本文提出的方法能夠將最近鄰對抗精度、隱私損失、散度值以及差異分數控制在較小的范圍。值得注意的是,這不完全意味著生成的數據集是理想的,因為假設該合成數據在可用性預測方面的表現異常拙劣,則仿真數據集在真實場景中也無任何實用價值可言。所以3.4節將采用可用性的評估方式基于EHR進行再入院的預測,以此與原始數據比較。
為了研究所生成的仿真數據用于再入院預測的可用性,本節首先基于大量的分類算法訓練多個機器學習模型;同時為了盡可能公正地評估合成數據的效果,本節通過使用Scikit-Learn中所有的分類算法以實施驗證。總體來說,Scikit-Learn中包含26 個可用于分類任務的算法。接下來,實驗通過EHR 的訓練集(48 993 例)訓練26 種機器學習模型。最后,將測試集(20 997 例)用于評估訓練模型的預測能力,為數據集的可用性提供參考標準。
為了獲得更好的預測精度,本節采納網格搜索的遍歷方式尋找最佳性能的超參數組合,實現模型的泛化優化。表4和表5 在分類任務的背景下計算了3 個評估指標,包括準確率、F1 值和建模所需要的時間消耗。此外,本節多維度地評估合成數據的質量,以對比生成不同數據量(100 萬、75 萬、50 萬、25 萬、10 萬、5 萬和2 萬)的仿真數據和原始數據之間的可用性表現差異。考慮到篇幅原因,表4僅展示了原始數據集與10 萬合成數據集之間的再入院預測效果。
在表4中,F1 值是最重要的分類評估指標,其數值越大,說明合成數據能夠提供更高的可用性。不同于以往的工作[3,8],本節提出采用可用性統計平均的思想來檢驗所生成數據的有效性,這意味著評判方法不是單純依賴于一兩個算法表現的優劣,而是基于所有可用的分類算法,對它們求得統計平均后綜合評估預測精度,以期得到公正性。
從表4中可以觀察到,原始獨熱編碼測試集中統計平均F1 值為0.794,相較于未經過任何調參優化的模型和采樣算法有了明顯的提升。與此同時,從單個算法來看,表4中的Perceptron和LogisticRegression算法的F1 值均達到0.8 以上。所以從這個角度總結,本節所使用的網格搜索方法對模型性能的提升有較大的幫助。
因此在表5中,本節基于不同數據量的生成數據與原始數據展開深入的分析比較。同時測試了CTGAN所生成的最好仿真數據量在EHR 進行預測的效果。

表5 原始數據集與合成數據集的再入院預測
已知本文所提出的假數據生成方法在10 萬數據集上實現了最優的F1 值,即0.821。而原始獨熱編碼測試集中統計平均F1 值為0.794,其中展示了超過2%的提升。這也意味著,所生成的假數據可以在保護隱私的同時,依然具有良好的可用性。同時對于CTGAN 而言,其分類預測準確性比本文提出的方法的最優值下降了15%。
結合表4和表5,本節對生成數據的可用性驗證進行總結,就合成數據集而言,在保證其隱私性的前提下(見3.3 節),需額外評估其可用性以便實現對該EHR 優劣的綜合評判。
本節實驗驗證了相對于傳統無數據嵌入以及最新的結構化假數據生成CTGAN 技術而言,本文提出的方法在機器學習下游任務中,特別是醫療數據的建模,擁有著更好的表現。
本節基于消融研究[28]實施并驗證了本文提出的方法,進而明確模型中每個組件的作用。表6 展示了消融實驗組件的驗證結果。
從表6中可以觀察到,數據嵌入比獨熱編碼的方案更有效,WGAN 比Vanilla GAN 更適合生成仿真數據。

表6 消融實驗組件的驗證結果
本文對基于生成對抗網絡的仿真數據生成技術進行了研究,在此基礎上提出了相應的衡量指標,驗證了仿真數據集的隱私性,并比較了多個機器學習模型以此評估仿真數據集的可用性表現。
本文發現雙曲空間的分類特征嵌入能夠以較少的維數表示大規模醫學實體之間的層次結構,避免了由于類別過多且稀疏而引起的空間爆炸問題,同時保留了屬性內在的關聯關系,為醫療數據的多模態問題提供了一種解決思路。
基于分類特征嵌入的生成對抗網絡技術通過創造合成數據集來提供隱私保護的替代方法,從而減少了直接發布原始數據的潛在風險。本文通過保持隱私性和實用性的平衡來證明所提方法的可靠性。最終,本文希望能夠通過此方式減少敏感信息泄露的可能,為數據分析師進行隱私保護下的數據挖掘提供一種更有效的途徑。