论文研读系列——“Modeling Tabular Data using Conditional GAN”

Modeling Tabular Data using Conditional GAN

arxiv [Submitted on 1 Jul 2019 , last revised 28 Oct 2019 ]

链接:arXiv:1907.00503

代码:https://github.com/DAI-Lab/CTGAN

摘要

CTGAN 是一种新方法,旨在从具有两种类型的数据的表格中创建真实的合成数据:数字可以变化,类别可能不均匀,这对于许多现有模型来说是一项艰巨的任务。它使用一种特殊技术根据数字数据的分布来调整数值数据,使其更适合神经网络,这与其他性能不佳或表现最差的最简单的归一化方法不同。在大多数测试的数据集上,CTGAN的表现优于贝叶斯网络,后者是处理此类数据的传统方式,这表明了其有效性。本文还介绍了一种基准系统,用于比较生成合成数据的不同方法,从而更容易看到CTGAN和其他方法的表现。未来的工作包括从理论上解释为什么 CTGAN 背后的技术 GAN 能很好地处理包含数字和类别的数据。

1 Introduction(引言)

表格数据的行概率分布建模和生成逼真的合成数据并非易事。表格数据通常包含离散列和连续列的混合。连续列可能有多个峰值,而离散列有时是不平衡的,这使得建模变得困难。现有的统计和深度神经网络模型未能妥善处理这类数据。作者设计了 CTGAN,它使用条件生成器来应对这些挑战。为了进行公平和全面的比较,作者设计了一个包含7个模拟数据集和8个真实数据集以及几个贝叶斯网络基线的基准测试。CTGAN 在大多数真实数据集上的表现超过了贝叶斯方法,而其他深度学习方法则没有。

表 1 显示了一种特定方法与相应的贝叶斯网络在8个真实数据集上,根据适当的度量标准比较的胜出次数。

在这里插入图片描述

近年来深度生成模型的发展带来了丰富的可能性。利用图像和文本,这些模型可以学习概率分布并绘制高质量的逼真样本。在过去两年中,这类模型的前景鼓励了生成对抗网络(GANs)用于表格数据生成的发展。与它们的统计对应物相比,GANs 在建模分布方面提供了更大的灵活性。这种新 GANs 的激增需要一个评估机制。为了评估这些 GANs,作者使用了一组真实数据集来建立一个基准系统,并实现了三种最新技术。通过使用模拟和真实数据集测试这些模型,作者发现建模表格数据为 GANs 带来了独特的挑战,导致它们在多个度量标准上未能达到基线方法,例如似然拟合度和合成生成数据的机器学习有效性。这些挑战包括需要同时建模离散和连续列,每个连续列中的多峰非高斯值,以及分类列的严重不平衡(在第 3 节中描述)。

为了解决这些挑战,本文提出了条件表格GAN(CTGAN),该方法引入了几项新技术:通过特定模式的归一化、架构更改和通过采用条件生成器以及按样本训练(在第4节中描述)来解决数据不平衡问题。当在基准测试套件中应用相同的数据集时,CTGAN的表现明显优于贝叶斯网络基线和其他测试的GANs,如表1所示。

本文的贡献如下:

(1)条件GANs用于合成数据生成。作者提出CTGAN作为合成表格数据生成器,以解决上述几个问题。CTGAN迄今为止超越了所有方法,并在他们至少87.5%的数据集上超越了贝叶斯网络。为了进一步挑战CTGAN,作者适应了变分自编码器(VAE)用于混合类型表格数据生成。作者将其称之为TVAE。VAEs直接使用数据构建生成器;即使有这个优势,作者也展示了我们提出的CTGAN在许多数据集上实现了竞争性能,并在3个数据集上超越了TVAE。

(2)合成数据生成算法的基准系统。作者设计了一个全面的基准框架,使用多个表格数据集和不同的评估指标以及几个基线和最新方法的实现。作者的系统是开源的,可以扩展到其他方法和额外的数据集。截至本文撰写时,基准测试包括5种深度学习方法、2种贝叶斯网络方法、15个数据集和2种评估机制。

2 Related Work(相关工作)

在过去的十年中,合成数据是通过将表中的每个列视为一个随机变量,建模联合多变量概率分布,然后从该分布中进行抽样来生成的。例如,一组离散变量可能已经使用决策树进行建模,贝叶斯网络也是如此。空间数据可以使用空间分解树来建模。一组非线性相关的连续变量可以使用Copula进行建模。这些模型受到分布类型和计算问题的限制,严重限制了合成数据的保真度。

使用变分自编码器(VAEs)和随后的GANs及其众多扩展的发展,由于在表示数据方面的性能和灵活性而非常吸引人。GANs也用于生成表格数据,特别是医疗记录;例如,[25]使用GANs生成连续时间序列的医疗记录,[4]提出了使用GANs生成离散表格数据。medGAN结合了一个自动编码器和一个GAN来生成异构的非时间序列连续和/或二进制数据。ehrGAN生成增强的医疗记录。TableGAN尝试使用卷积神经网络解决生成合成数据的问题,该网络优化标签列的质量;因此,生成的数据可以用来训练分类器。PATE-GAN生成差分隐私合成数据。

3 Challenges with GANs in Tabular Data Generation Task

合成数据生成任务要求从一个表格T中学习数据综合器 G G G,然后使用 G G G生成一个合成表格 T s y n T_{syn} Tsyn。表格T包含 N c N_c Nc个连续列 { C 1 , . . . , C N c } \{C_1, ..., C_{N_c}\} {C1,...,CNc} N d N_d Nd个离散列 { D 1 , . . . , D N d } \{D_1, ..., D_{N_d}\} {D1,...,DNd},其中每个列被视为一个随机变量。这些随机变量遵循一个未知的联合分布 P ( C 1 : N c , D 1 : N d ) P(C_{1:N_c}, D_{1:N_d}) P(C1:Nc,D1:Nd)。一行 r j = { c 1 , j , . . . , c N c , j , d 1 , j , . . . , d N d , j } r_j = \{c_{1,j}, ..., c_{N_c,j}, d_{1,j}, ..., d_{N_d,j}\} rj={c1,j,...,cNc,j,d1,j,...,dNd,j} j ∈ { 1 , . . . , n } j ∈ \{1, ..., n\} j{1,...,n},是来自联合分布的一个观测。 T T T被划分为训练集 T t r a i n T_{train} Ttrain和测试集 T t e s t T_{test} Ttest。在训练集 T t r a i n T_{train} Ttrain上训练 G G G之后,通过使用 G G G独立抽样行来构建 T s y n T_{syn} Tsyn。我们根据两个轴来评估生成器的有效性。(1)似然拟合度: T s y n T_{syn} Tsyn中的列是否遵循与 T t r a i n {T_{train}} Ttrain相同的联合分布?(2)机器学习效能:当训练一个分类器或回归器使用其他列作为特征来预测一个列时,能否在 T t e s t T_{test} Ttest上实现与在 T t r a i n T_{train} Ttrain上学到的模型类似的性能?

表格数据的几个独特属性对GAN模型的设计提出了挑战。

混合数据类型。现实世界的表格数据由混合类型组成。为了同时生成离散和连续列的混合,GAN必须在输出上应用softmaxtanh

非高斯分布。在图像中,像素值遵循类似高斯的分布,可以通过min-max转换归一化到[-1,1]。在网络的最后一层通常使用tanh函数输出这个范围内的值。表格数据中的连续值通常是非高斯的,min-max转换会导致梯度消失问题。

多峰分布。作者使用核密度估计来估计一列中的模式数量。可以观察到在我们8个真实世界数据集中的123个连续列中有57个具有多个模式。Srivastava等人表明,普通的GAN不能在简单的2D数据集上建模所有模式;因此,它也会在建模连续列的多峰分布上挣扎。

从稀疏的一位有效编码向量中学习。在生成合成样本时,生成模型被训练为使用softmax生成所有类别上的概率分布,而真实数据以一位有效向量表示。这是有问题的,因为一个简单的鉴别器可以通过检查分布的稀疏性而不是考虑一行的整体真实性来区分真实和假数据。

高度不平衡的分类列。在作者的数据集中,作者注意到1048个分类列中有636个高度不平衡,其中主要类别出现在超过90%的行中。这造成了严重的模式崩溃。错过一个小类别只会对数据分布造成微小的变化,鉴别器很难察觉。不平衡数据还导致小类别的训练机会不足。

4 CTGAN Model

4.1 Notations(符号定义)

这一小节定义了CTGAN模型中使用的数学符号和操作。例如,向量的连接表示为 x 1 ⊕ x 2 ⊕ . . . x_1⊕x_2⊕... x1x2...,Gumbel softmax激活函数表示为 g u m b e l τ ( x ) gumbel_τ(x) gumbelτ(x),条件生成器和训练采样等概念在此节进行了数学上的严格定义。

4.2 Mode-specific Normalization(特定模式归一化)

在这一部分,作者介绍了一种新的归一化技术,用于处理连续列中的非高斯和多峰分布问题。具体来说,对于每个连续列,使用变分高斯混合模型(VGM)来估计模式的数量并拟合高斯混合。然后,对于每个值,计算其来自每个模式的概率,并根据这个概率采样一个模式,使用该模式对值进行归一化。

4.3 Conditional Generator and Training-by-Sampling(条件生成器和按样本训练)

这一小节讨论了CTGAN的条件生成器设计,它可以根据离散列的特定值来生成数据行的条件分布。作者提出了一种训练方法,称为“按样本训练”,以解决训练数据中类别不平衡的问题。这种方法确保在训练过程中,所有离散属性的类别都能均匀地被采样。

4.4 Network Structure(网络结构)

本节描述了CTGAN中生成器和鉴别器的网络结构。作者使用了全连接网络来捕捉列之间的所有可能的相关性,并详细说明了生成器和鉴别器中使用的层类型、激活函数以及它们如何相互作用来生成合成行。

4.5 TVAE Model(TVAE模型)

这一小节介绍了对变分自编码器(VAE)的改进,使其适应表格数据的生成。作者称之为TVAE,它使用两个神经网络来分别模拟条件概率分布 p θ ( r j ∣ z j ) 和 q φ ( z j ∣ r j ) p_θ(r_j∣z_j)和q_φ(z_j∣r_j) pθ(rjzj)qφ(zjrj),并使用证据下界(ELBO)损失进行训练。TVAE的设计考虑了表格数据的特点,并调整了网络输出以准确模拟数据的概率分布。

5 Benchmarking Synthetic Data Generation Algorithms(综合数据生成算法)

有多个深度学习方法用于建模表格数据。作者注意到,所有方法及其相应的论文既没有使用相同的数据集,也没有在相似的指标下进行评估。这一事实使得比较变得具有挑战性,并且不允许确定每种方法相对于建模表格数据时所呈现的内在挑战的弱点和强项。为了解决这个问题,作者开发了一个全面的基准测试套件。

5.1 基线和数据集

在作者的基准测试套件中,有由贝叶斯网络(CLBN、PrivBN)组成的基线,以及用于合成数据生成的当前深度学习方法的实现(MedGAN、VeeGAN、TableGAN)。作者将TVAE和CTGAN与这些基线进行比较。 作者的基准测试包含7个模拟数据集和8个真实数据集。

模拟数据:作者手工制作了一个数据预言机S来表示已知的联合分布,然后从S中抽取 T t r a i n T_{train} Ttrain T t e s t T_{test} Ttest。这个预言机要么是高斯混合模型,要么是贝叶斯网络。我们按照发现的过程来生成Grid和Ring高斯混合预言机。作者在Grid的每个模式中添加了随机偏移,并称之为GridR。并选择了4个众所周知的贝叶斯网络——alarm、child、asia、insurance——并构建了贝叶斯网络预言机。

真实数据集:作者从UCI机器学习存储库中选取了6个常用的机器学习数据集,以表格形式具有特征和标签列——adult、census、covertype、intrusion和news。作者从Kaggle选取了credit。他们还二值化了28×28的MNIST[16]数据集,并将每个样本转换为784维特征向量加一个标签列,以模仿高维二元数据,称为MNIST28。他们将图像调整为12×12,并使用相同的过程生成一个我们称之为MNIST12的数据集。总共有8个真实数据集在他们的基准测试套件中。

5.2 评估指标和框架

鉴于评估生成模型不是直接的过程,不同的指标可能会产生截然不同的结果,作者的基准测试套件在多个数据集上评估多个指标。模拟数据来自已知概率分布,作者可以在模拟数据预言机S的帮助下评估生成的合成数据,通过似然拟合度指标。对于真实数据集,有一个机器学习任务,作者通过机器学习效能评估合成数据生成方法。图3说明了评估框架。

在这里插入图片描述

似然拟合度指标:对于模拟数据,作者利用模拟数据预言机S计算似然拟合度指标。作者在S上计算 T s y n T_{syn} Tsyn的似然为 L s y n L_{syn} Lsyn L s y n L_{syn} Lsyn偏向于过度拟合模型。为了解决这个问题,我们使用另一个指标, L t e s t L_{test} Ltest。我们使用 T s y n T_{syn} Tsyn重新训练模拟数据预言机S’。S’具有与S相同的结构但参数不同。如果S是高斯混合模型,我们使用相同数量的高斯组件,并重新训练每个组件的均值和协方差。如果S是贝叶斯网络,我们保持相同的图形结构,并在每个边上学习新的条件分布。然后 L t e s t L_{test} Ltest T t e s t T_{test} Ttest在S’上的似然。这个指标克服了 L s y n L_{syn} Lsyn的问题。它可以检测模式崩溃。但是这个指标引入了S’结构的先验知识,这不一定编码在 T s y n T_{syn} Tsyn中。

机器学习效能:对于真实数据集,作者无法计算似然拟合度,而是评估使用合成数据作为机器学习训练数据的性能。作者在 T s y n T_{syn} Tsyn上训练预测模型,并使用 T t e s t T_{test} Ttest测试预测模型。并使用准确率和F1评估分类任务的性能,并使用R2评估回归任务的性能。对于每个数据集,作者选择在每个数据上都能达到合理性能的分类器或回归器。(模型和超参数也可以在补充材料以及我们的基准测试框架中找到。)由于他们不是要挑选最好的分类或回归模型,因此采用多种预测模型的平均性能来评估G的指标。

在这里插入图片描述

5.3 基准测试结果

作者使用他们的基准测试框架评估了CLBN、PrivBN、MedGAN、VeeGAN、TableGAN、CTGAN和TVAE。作者以批量大小500训练每个模型。每个模型训练300个周期。每个周期包含N/batch_size,其中N是训练集中的行数。作者假设对于任何数据集,在除了 L s y n L_{syn} Lsyn之外的任何指标上,最佳性能都由 T t r a i n T_{train} Ttrain实现。因此,作者展示了Identity方法,它输出 T t r a i n T_{train} Ttrain

作者在表2中总结了基准测试结果。对于高斯混合的模拟数据,CLBN和PrivBN遭受痛苦,因为连续数值数据必须在使用贝叶斯网络建模之前进行离散化。MedGAN、VeeGAN和TableGAN都遭受模式崩溃。有了特定模式归一化,作者的模型在这些二维连续数据集上表现良好。

对于来自贝叶斯网络的模拟数据,CLBN和PrivBN有自然优势。作者的CTGAN在性能上略优于MedGAN和TableGAN。令人惊讶的是,TableGAN在这些数据集上表现良好,尽管它将离散列视为连续值。这可能是因为在作者的模拟数据中,大多数变量的类别少于4个,所以转换不会引起严重问题。

在真实数据集上,TVAE和CTGAN超越了CLBN和PrivBN,而其他GAN模型无法像贝叶斯网络那样获得好的结果。对于大规模的真实数据集,学习高质量的贝叶斯网络是困难的。因此,在CLBN和PrivBN合成数据上训练的模型分别比在真实数据上训练的模型差36.1%和51.8%。

TVAE在几种情况下胜过CTGAN,但GANs确实有一些有利的属性,这并不表示作者应该总是使用VAEs而不是GANs来建模表格。GANs中的生成器在训练过程中无法访问真实数据;因此,使CTGAN比TVAE更容易实现差分隐私。

5.4 消融研究

作者还进行了消融研究,以了解模型中每个组件的有用性。表3显示了消融研究的结果。

特定模式归一化。在CTGAN中,作者使用变分高斯混合模型(VGM)来归一化连续列。作者将其与(1)GMM5:具有5种模式的高斯混合模型,(2)GMM10:具有10种模式的高斯混合模型,和(3)MinMax:[-1,1]之间的最小-最大归一化进行比较。使用GMM略微降低了性能,而最小-最大归一化则给出了最差的性能。

条件生成器和按样本训练:作者连续移除这两个组件。(1)w/o S.:作者首先在训练中禁用按样本训练,但生成器仍然获得条件向量,其损失函数仍然具有交叉熵项。条件向量是从训练数据频率而不是对数频率中采样的。(2)w/o C.:作者进一步移除生成器中的条件向量。这些消融结果表明,对于不平衡的数据集,按样本训练和条件生成器都是至关重要的。特别是在高度不平衡的数据集,如信用,移除按样本训练会导致F1指标降至0%。

网络架构:在论文中,作者使用WGANGP+PacGAN。这里作者将其与三个替代品进行比较,仅WGANGP,仅普通GAN损失,以及普通GAN+PacGAN。可以观察到,WGANGP比普通GAN更适合合成数据任务,而PacGAN对普通GAN损失有帮助,但对于WGANGP不那么重要。

表3:消融研究结果,关于特定模式归一化、条件生成器和按样本训练模块以及网络架构。报告了真实分类数据集(不包括MNIST)的绝对性能变化。

在这里插入图片描述

6 Conclusion(结论)

在本文中,作者试图找到一个灵活且强大的模型来学习具有复杂分布的列的分布。作者观察到,现有的深度生成模型都无法超越贝叶斯网络,后者对连续值进行离散化并以贪婪方式学习。作者展示了使这项任务独特的几个属性,并提出了他们的CTGAN模型。从经验上,作者展示了他们的模型可以比贝叶斯网络学习更好的分布。特定模式归一化可以将任意范围和分布的连续值转换为适合神经网络的有界向量表示。作者的条件生成器和按样本训练可以克服训练数据不平衡问题。此外,作者认为条件生成器可以帮助生成具有特定离散值的数据,这可以用于数据增强。作为未来的工作,他们将推导出一个理论依据,解释为什么GANs可以在具有离散和连续数据的分布上工作。

最后感谢你看到这里,以上观点均为本人对原论文的个人理解,仅作个人学习使用,如有错误或侵权,麻烦联系我,本人定修改或删除。

祝你天天开心,多笑笑。

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值