魏 寧 汪龍志 董方敏
(三峽大學(xué)計(jì)算機(jī)與信息學(xué)院 湖北 宜昌 443002)
在互聯(lián)網(wǎng)時(shí)代,隨著信息技術(shù)和人類生產(chǎn)生活交匯融合,大數(shù)據(jù)對(duì)經(jīng)濟(jì)發(fā)展、社會(huì)治理、人民生活產(chǎn)生了重大影響,通過大數(shù)據(jù)分析可以對(duì)用戶群體的結(jié)構(gòu)進(jìn)行更合理的劃分,從而提供更加精確的服務(wù)。但與此同時(shí),當(dāng)大數(shù)據(jù)平臺(tái)將大量數(shù)據(jù)提供給外界進(jìn)行數(shù)據(jù)分析時(shí)必然會(huì)增加用戶隱私信息泄露的風(fēng)險(xiǎn),這種風(fēng)險(xiǎn)對(duì)于金融和醫(yī)療等領(lǐng)域都是備受關(guān)注的焦點(diǎn)。為了降低隱私信息泄露的負(fù)面影響,美國(guó)、歐盟、中國(guó)等國(guó)家或組織不斷通過完善隱私保護(hù)法規(guī)來對(duì)企業(yè)以及個(gè)人進(jìn)行監(jiān)管,以此來減少或者限制數(shù)據(jù)的共享和開放[1]。在這樣的背景下,大數(shù)據(jù)分析研究常常會(huì)遇到數(shù)據(jù)匱乏、訓(xùn)練樣本過少等問題。為了解決該問題,目前的研究思路主要是從信息隱藏和數(shù)據(jù)生成兩個(gè)方面展開。從數(shù)據(jù)隱藏角度出發(fā),如健康醫(yī)療組織(HCOs)通過泛化、抑制和隨機(jī)化來干擾潛在的可識(shí)別屬性然后再共享數(shù)據(jù),以此來降低信息泄露的風(fēng)險(xiǎn)[2-3]。然而,不法分子依然可以通過剩余的屬性信息還原數(shù)據(jù)對(duì)應(yīng)的個(gè)人標(biāo)簽,從而恢復(fù)原始數(shù)據(jù)。而基于數(shù)據(jù)生成方法的研究,由于隨著各種深度學(xué)習(xí)模型的建立,越來越受到該領(lǐng)域?qū)W者的關(guān)注,其主要思想是通過對(duì)極為有限的真實(shí)數(shù)據(jù)進(jìn)行學(xué)習(xí)來捕捉數(shù)據(jù)集的潛在分布結(jié)構(gòu),然后通過生成模型來生成與真實(shí)數(shù)據(jù)具有相似分布的合成數(shù)據(jù),以此來解決數(shù)據(jù)匱乏的問題[4]。本文的工作也是基于該思路展開,通過深度生成模型中的生成對(duì)抗網(wǎng)絡(luò)來合成模擬真實(shí)的數(shù)據(jù)。
目前,深度生成模型被證實(shí)是一種高度靈活和可表達(dá)的無監(jiān)督學(xué)習(xí)方法,能夠捕獲復(fù)雜高維數(shù)據(jù)的潛在結(jié)構(gòu)。訓(xùn)練好的深度生成模型可以有效模擬高維數(shù)據(jù)復(fù)雜分布,生成與原始數(shù)據(jù)相似的合成數(shù)據(jù)[5-6]。與之相關(guān)的一些研究主要包括基于先驗(yàn)或后驗(yàn)的變分自編碼器(Variational Autoencoder,VAE)[7],如變分有損自編碼器(Variational Lossy Autoencoder)[8]、具有重疊變換的離散變分自編碼器(DVAE++)[9]、形變化自編碼器(ShapeVAE)[10],以及生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GANs)[11],如生成匹配網(wǎng)絡(luò)(MMD-GAN)[12]、增強(qiáng)生成模型(AdaGAN)[13]和Wasserstein GAN(WGANs)[14]。其中生成對(duì)抗網(wǎng)絡(luò)(GANs)近年在圖像生成方向取得了豐富的成果,在生成逼真圖像的性能上遠(yuǎn)超其他方法[15]。GANs模型采用對(duì)抗博弈的思想,由生成器G和鑒別器D兩部分組成,生成器學(xué)習(xí)真實(shí)樣本的分布并生成相似的合成數(shù)據(jù),鑒別器判別真實(shí)數(shù)據(jù)和合成數(shù)據(jù),兩者互相進(jìn)行對(duì)抗交替訓(xùn)練。隨著生成對(duì)抗網(wǎng)絡(luò)領(lǐng)域的實(shí)踐應(yīng)用與理論發(fā)展[16],越來越多的學(xué)者將關(guān)注點(diǎn)轉(zhuǎn)向?qū)?shù)據(jù)科學(xué)的研究。目前與GANs相關(guān)的研究大多針對(duì)連續(xù)數(shù)據(jù)集,但是數(shù)據(jù)科學(xué)應(yīng)用通常還涉及離散變量。對(duì)于這些數(shù)據(jù),GANs從離散分布層采樣是不可微分的,導(dǎo)致無法使用梯度反向傳播訓(xùn)練模型,因此無法直接訓(xùn)練出具有分類輸出的網(wǎng)絡(luò)。Jang等[17]提出Gumbel-Softmax方法來解決變分自編碼器(VAE)生成離散數(shù)據(jù)問題,與此同時(shí)Kingma等[18]也提出Concrete-Distribution方法來解決此問題。在基于VAE所提出的方法中,Kusner等[19]將這些方法應(yīng)用到GANs模型來生成離散序列數(shù)據(jù)。針對(duì)同樣問題,seqGAN[20]基于強(qiáng)化學(xué)習(xí)的思想提出隨機(jī)策略方法以避免離散序列反向傳播問題。另一種避免離散數(shù)據(jù)反向傳播方法是Adversarially regularized autoencoders(ARAE)[21],將訓(xùn)練用的離散詞項(xiàng)轉(zhuǎn)換為連續(xù)的潛在特征空間,并利用GANs生成潛在的特征分布。Edward Choi等[22]提出一個(gè)與ARAE類似的Medical Generative Adversarial Network模型(medGAN)來生成合成二進(jìn)制或數(shù)值類型數(shù)據(jù)。此模型基于Vincent等[23]提出一種基于編碼器-解碼器的方法,預(yù)先訓(xùn)練一個(gè)自編碼器,編碼器將樣本映射到低維連續(xù)空間,解碼器返回原始數(shù)據(jù)空間,然后利用GANs生成連續(xù)型數(shù)據(jù)的優(yōu)勢(shì)生成數(shù)據(jù)的低維連續(xù)空間,接著通過解碼器解碼出低維連續(xù)空間對(duì)應(yīng)的高維連續(xù)或離散空間,增強(qiáng)模型生成合成數(shù)據(jù)的準(zhǔn)確度。對(duì)于標(biāo)簽變量的生成,Ramiro等[24]在medGAN基礎(chǔ)上提出一種多標(biāo)簽變量的生成對(duì)抗網(wǎng)絡(luò)(Multi-Categorical GAN),其思想是將多標(biāo)簽變量編碼為多個(gè)獨(dú)熱編碼(One-Hot-Encodings)組合的二進(jìn)制表示[25],并將Gumbel-Softmax這個(gè)針對(duì)變分自動(dòng)編碼器(VAE)領(lǐng)域中的方法應(yīng)用到模型當(dāng)中,提高計(jì)算穩(wěn)定性和收斂速度?;诂F(xiàn)有的VAEs無法直接處理混合類型數(shù)據(jù),Alfredo等[26]提出一個(gè)HI-VAE似然生成模型來擬合混合類型數(shù)據(jù),并通過ELOB證據(jù)下界來優(yōu)化生成模型和識(shí)別模型的參數(shù),以此來生成混合類型數(shù)據(jù)。
現(xiàn)有基于GANs的模型缺少針對(duì)于混合類型數(shù)據(jù)生成方面的研究。本文提出一種混合類型數(shù)據(jù)生成模型mixGAN,該模型通過自編碼器將混合數(shù)據(jù)映射到低維連續(xù)空間,然后通過在低維空間中的生成器和原始空間的鑒別器進(jìn)行聯(lián)合對(duì)抗學(xué)習(xí)獲得混合數(shù)據(jù)生成器,并構(gòu)造出一個(gè)混合類型數(shù)據(jù)的損失重建函數(shù)。通過構(gòu)造實(shí)驗(yàn),本文生成模型能夠捕獲復(fù)雜高維數(shù)據(jù)的潛在結(jié)構(gòu),有效地模仿來自大型高維混合數(shù)據(jù)集的分布,保持了數(shù)據(jù)集的完整性和相關(guān)性,生成與原始數(shù)據(jù)集更加接近的新數(shù)據(jù)集。
本文假設(shè)數(shù)據(jù)的每個(gè)記錄包含數(shù)值和標(biāo)簽兩種類型,數(shù)據(jù)空間定義為S=(W×V),其中數(shù)值空間W=W1×…×WM(W∈RM),定義隨機(jī)向量x=(x1,x2,…,xM)∈W;標(biāo)簽空間V=V1×…×VN,其中Vi為該屬性所具有的所有類別(比如男女、職業(yè)等),每個(gè)標(biāo)簽的類別個(gè)數(shù)di=|Vi|,定義隨機(jī)向量v=(v1,v2,…,vN)∈V,對(duì)其中每個(gè)標(biāo)簽向量vi經(jīng)過One-Hot編碼后記為向量yi∈{0,1}di。于是空間S中的隨機(jī)變量s可以表示為s=(x,y)=(x1,x2,…,xM,y1,y2,…,yN),其中yi=(yi,1,yi,2,…,yi,di)。
本文所提出的mixGAN首先預(yù)訓(xùn)練一個(gè)并行輸出的自編碼器(Autoencoder),通過它完成混合數(shù)據(jù)空間到低維連續(xù)空間的映射。然后通過建立在低維連續(xù)空間的生成網(wǎng)絡(luò)G和建立在原始混合數(shù)據(jù)空間中的鑒別器D進(jìn)行聯(lián)合對(duì)抗學(xué)習(xí)獲得最終需要的生成器G。本節(jié)將通過分別描述自編碼器網(wǎng)絡(luò)和生成對(duì)抗訓(xùn)練網(wǎng)絡(luò)完成對(duì)mixGAN的各個(gè)模塊的介紹。
1.2.1前置自編碼器
本文針對(duì)自編碼器的解碼輸出層進(jìn)行修改,將混合層的數(shù)據(jù)進(jìn)行切割輸出,在其后放置N+1個(gè)并行的屬性輸出層,如圖1所示。并行輸出模型既保證了單屬性的獨(dú)立性也維持了屬性間的相互依賴關(guān)系。自編碼器的Encoder網(wǎng)絡(luò)將輸入的混合數(shù)據(jù)s=[x1,x2,…,xM;y1,y2,…,yN]映射到低維連續(xù)的編碼空間(Code Space),然后自編碼器的Decoder網(wǎng)絡(luò)將編碼空間數(shù)據(jù)投影回原始數(shù)據(jù)空間,完成數(shù)據(jù)重建。
圖1 Autoencoder自編碼器
本文利用Gumbel-Softmax的采樣技巧來對(duì)離散分布進(jìn)行采樣[17],解決離散數(shù)據(jù)反向傳播問題。具體方法是將隱變量建模為服從離散的多項(xiàng)分布,轉(zhuǎn)化過程滿足下式:
(1)
式中:j=1,2,…,N,k=1,2,…,dj,ai為全連接層Dense1,Dense2,…,DenseN的輸出,τ∈(0,∞)為大于零的超參數(shù)且控制著軟化程度:τ值越高生成的分布越平滑;τ值越低生成的分布越接近離散的One-Hot分布。訓(xùn)練中過程中可以通過逐漸降低τ以逐步逼近真實(shí)的離散分布。
在模型訓(xùn)練期間,對(duì)Decoder網(wǎng)絡(luò)的輸出與原始數(shù)據(jù)進(jìn)行對(duì)比,重建損失函數(shù)為式(2)。式(2)中,對(duì)于數(shù)值類型變量采用均方誤差進(jìn)行誤差計(jì)算,對(duì)于分類變量采用交叉熵進(jìn)行誤差計(jì)算。數(shù)值類型數(shù)據(jù)在輸入模型之前進(jìn)行歸一化處理,因此各個(gè)類型誤差量級(jí)相同且在0到1內(nèi),不會(huì)出現(xiàn)大的誤差量壓制小的誤差量。
(2)
式中:xm代表多數(shù)值向量x的第m個(gè)維度,yj,k代表多標(biāo)簽向量yj的第k個(gè)維度,B為訓(xùn)練批次的大小。
1.2.2生成對(duì)抗網(wǎng)絡(luò)模型(GANs)
生成對(duì)抗網(wǎng)絡(luò)由兩個(gè)網(wǎng)絡(luò)模塊組成,生成器網(wǎng)絡(luò)(Generator Network,G)和鑒別器網(wǎng)絡(luò)(Discriminator Network,D)[10]。生成器G(z;θg)學(xué)習(xí)訓(xùn)練數(shù)據(jù)的分布,并將輸入的隨機(jī)先驗(yàn)分布轉(zhuǎn)化為和訓(xùn)練數(shù)據(jù)相似分布的生成樣本G(z)。鑒別器D(x;θd)是一個(gè)二分類器,用來判斷所輸入數(shù)據(jù)集是真實(shí)樣本還是生成的假樣本,即對(duì)于真實(shí)數(shù)據(jù)鑒別器將輸出較大的概率,而對(duì)于假數(shù)據(jù)將輸出較小的概率。在訓(xùn)練過程中使G和D互相博弈對(duì)抗,直到G生成的數(shù)據(jù)可以“騙過”D,上述的博弈過程的優(yōu)化目標(biāo)可表示為:
Ex~Pz[log(1-D(G(z)))]
(3)
式中:Pdata代表真實(shí)樣本的分布,Pz代表服從N(0,1)的隨機(jī)先驗(yàn)分布。在交替訓(xùn)練G和D的過程中參數(shù)優(yōu)化遵循如下迭代公式:
(4)
(5)
式中:B為每個(gè)訓(xùn)練批次的大小,α為優(yōu)化器的迭代步長(zhǎng)。
1.2.3本文混合模型(mixGAN)
本文將自編碼器應(yīng)用到GANs的數(shù)據(jù)生成中,利用自編碼器的解碼器將低維連續(xù)的編碼空間數(shù)據(jù)投影回原始空間。通過前置解碼器,提升了模型的離散特征學(xué)習(xí)能力,又解決了離散數(shù)據(jù)反向傳播問題。本文通過自編碼器學(xué)習(xí)混合數(shù)據(jù)的特征空間,利用自編碼器的解碼器Dec將生成器G生成的潛在連續(xù)特征空間解碼為原始混合數(shù)據(jù)空間,模型如圖2所示。
圖2 mixGAN模型視圖
如圖2所示,生成器G生成的數(shù)據(jù)在導(dǎo)入鑒別器之前先經(jīng)過Dec(G(z))的解碼,可以看到鑒別器D對(duì)數(shù)據(jù)真實(shí)性的判別是在原始空間中進(jìn)行的,本文模型訓(xùn)練過程中生成器G和鑒別器D的損失函數(shù)構(gòu)造如下:
(6)
(7)
在訓(xùn)練mixGAN模型時(shí),預(yù)先訓(xùn)練好的解碼器會(huì)內(nèi)置到模型中,優(yōu)化生成器G參數(shù)的同時(shí)微調(diào)解碼器Dec可以看成是生成器G一個(gè)預(yù)訓(xùn)練好的隱藏神經(jīng)單元。
基于目前最新的混合類型數(shù)據(jù)生成模型HI-VAE,本文以此為基準(zhǔn)進(jìn)行對(duì)比評(píng)估。HI-VAE在編碼和解碼時(shí)區(qū)分對(duì)待數(shù)據(jù)中不同屬性類型,為每一種類型設(shè)計(jì)對(duì)應(yīng)的概率模型。依據(jù)每一種屬性所對(duì)應(yīng)的概率模型,HI-VAE的編碼器對(duì)該屬性進(jìn)行單獨(dú)處理,并把所有的屬性處理結(jié)果進(jìn)行匯總而產(chǎn)生編碼。HI-VAE的解碼器則執(zhí)行上述處理的反過程,即將編碼轉(zhuǎn)換為各個(gè)屬性值并拼接在一起。
2.1.1數(shù)據(jù)集
本文實(shí)驗(yàn)對(duì)LendingClub開源銀行數(shù)據(jù)集S={s1,s2,…,sk}進(jìn)行訓(xùn)練和評(píng)估,樣本總量為從中隨機(jī)抽取的10 000行數(shù)據(jù)記錄。每行數(shù)據(jù)si包含31個(gè)屬性特征,剔除其中7個(gè)固定不變屬性,并把相同類型屬性歸并到一起。si中代表分類類型的屬性用One-Hot進(jìn)行編碼表示。數(shù)據(jù)集S進(jìn)行預(yù)處理后si=[x1,x2,…,x15;y1,y2,…,y9],其中數(shù)值類型元素維度為15,Multi-One-Hot類型數(shù)據(jù)由9個(gè)One-Hot變量組成,每個(gè)標(biāo)簽變量的類別個(gè)數(shù)(One-Hot的位數(shù))為[2,2,2,12,2,7,29,4,3]。
2.1.2數(shù)據(jù)歸一化
原始混合數(shù)據(jù)集中,數(shù)值類型變量和標(biāo)簽類型變量量級(jí)相差較大,如果直接以原始數(shù)據(jù)集進(jìn)行訓(xùn)練,量級(jí)大的類型就會(huì)在訓(xùn)練過程中占據(jù)主導(dǎo)地位,量級(jí)小的類型的作用就會(huì)被削弱,模型可靠性低。針對(duì)此問題,在訓(xùn)練之前對(duì)數(shù)值類型數(shù)據(jù)進(jìn)行Min-Max標(biāo)準(zhǔn)化,使之與標(biāo)簽類型(One-Hot)變量量級(jí)相同,保證每個(gè)特征對(duì)訓(xùn)練結(jié)果的貢獻(xiàn)相同,提升模型的精度,同時(shí)加快收斂速度。
2.1.3模型結(jié)果及參數(shù)設(shè)置
本文實(shí)驗(yàn)基于PyTorch 1.1環(huán)境完成。模型前向訓(xùn)練的自編碼器基于Multilayer Perceptron(MLP)實(shí)現(xiàn),Encoder和Decoder各自包含兩個(gè)隱藏層,采用tanh函數(shù)激活。Encoder輸出層輸出的潛在特征空間維度設(shè)置為72,Decoder輸出層采用Gumbel-Softma和Sigmoid激活。對(duì)于超參數(shù)τ,根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn)取0.666時(shí)可獲得較好效果。GANs的生成器G和鑒別器D也是基于MLP實(shí)現(xiàn),層與層之間利用Batch Norm進(jìn)行歸一化處理并進(jìn)行殘差連接,生成器G的隱藏層采用Tanh函數(shù)激活,鑒別器D的隱藏層采用LeakyReLU函數(shù)激活。模型優(yōu)化都采用Adam算法,學(xué)習(xí)率lr設(shè)置為0.002,weight_decay設(shè)置為0.001,前置自編碼器的訓(xùn)練時(shí)間為52.30 s,mixGAN模型訓(xùn)練時(shí)間為880.64 s。
本文假設(shè)當(dāng)所生成的數(shù)據(jù)和真實(shí)數(shù)據(jù)相似時(shí)應(yīng)滿足如下兩個(gè)特點(diǎn):① 在單個(gè)屬性上,所生成的數(shù)據(jù)分布應(yīng)該和真實(shí)數(shù)據(jù)的分布盡可能相似;② 生成數(shù)據(jù)在各個(gè)屬性之間的依賴關(guān)系應(yīng)該也和真實(shí)數(shù)據(jù)類似。基于以上假設(shè),本文分別從屬性獨(dú)立分布和多屬性相關(guān)性兩方面來評(píng)估生成算法的優(yōu)劣。
2.2.1屬性獨(dú)立分布評(píng)估
在對(duì)數(shù)據(jù)的屬性獨(dú)立分布進(jìn)行評(píng)估時(shí),本文按照數(shù)值類型屬性和標(biāo)簽類型屬性分別進(jìn)行處理。對(duì)于數(shù)值類型的屬性xi,首先將生成數(shù)據(jù)和真實(shí)數(shù)據(jù)在[0,1]區(qū)間內(nèi)量化為10個(gè)等級(jí),然后統(tǒng)計(jì)各自的直方圖,之后將生成數(shù)據(jù)直方圖和真實(shí)數(shù)據(jù)直方圖按照等級(jí)進(jìn)行配對(duì)(Preal,Pfake),如果二者分布相似則配對(duì)后的值應(yīng)該接近相等。類似地,對(duì)于標(biāo)簽類型,分別統(tǒng)計(jì)生成數(shù)據(jù)和真實(shí)數(shù)據(jù)在屬性yi,j上取值為1的概率,然后兩兩配對(duì)。當(dāng)生成數(shù)據(jù)與真實(shí)數(shù)據(jù)在某個(gè)屬性上分布相似時(shí),則這些配對(duì)值應(yīng)該近似相等。為評(píng)估這些配對(duì)值的相似性,圖3以Pfake作為x軸、Preal作為y軸將這些配對(duì)點(diǎn)繪制到圖中。圖3(a)是本文所提出的mixGAN生成的數(shù)據(jù)與真實(shí)數(shù)據(jù)按照單個(gè)屬性配對(duì)后繪制的點(diǎn),圖3(b)是文獻(xiàn)[26]所提出的HI-VAE生成的數(shù)據(jù)與真實(shí)數(shù)據(jù)按照單個(gè)屬性配對(duì)后繪制的點(diǎn),其中圓形點(diǎn)代表標(biāo)簽類型,星形點(diǎn)代表數(shù)值類型。由之前的分析可知,點(diǎn)的分布越接近對(duì)角線則說明生成數(shù)據(jù)與真實(shí)數(shù)據(jù)在各個(gè)屬性上越相似。從圖3中的對(duì)比可以發(fā)現(xiàn),在數(shù)值類型數(shù)據(jù)生成方面,本文所提出方法在屬性獨(dú)立分布方面明顯要優(yōu)于HI-VAE。
(a) mixGAN
(b) HI-VAE圖3 生成數(shù)據(jù)與真實(shí)數(shù)據(jù)獨(dú)立屬性配對(duì)分布圖
2.2.2多屬性相關(guān)性評(píng)估
(a) mixGAN
(b) HI-VAE圖4 生成數(shù)據(jù)與真實(shí)數(shù)據(jù)多屬性配對(duì)分布圖
本文所提出的混合數(shù)據(jù)生成模型mixGAN,特別適用于數(shù)據(jù)科學(xué)領(lǐng)域?qū)旌项愋蛿?shù)據(jù)的生成的需求。算法成功將改進(jìn)的自編碼器應(yīng)用到GANs模型中,提升了模型的離散特征學(xué)習(xí)能力。與現(xiàn)有的基于HI-VAE混合數(shù)據(jù)生成模型在屬性獨(dú)立分布和多屬性相關(guān)性方面進(jìn)行對(duì)比,本文方法性能都具有較為明顯的優(yōu)勢(shì),生成的結(jié)果與原始數(shù)據(jù)集的分布更加接近。下一步的工作重點(diǎn)將著眼于缺失數(shù)據(jù)的補(bǔ)缺。