Modeling Tabular Data using Conditional GAN
arxiv [Submitted on 1 Jul 2019 , last revised 28 Oct 2019 ]
代码: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:N