CTAB-GAN Effective Table Data Synthesizing
arxiv [Submitted on 16 Feb 2021 , last revised 31 May 2021 ]
代码:https://github.com/team-tud/ctab-gan
摘要
本文介绍了CTAB-GAN,这是一种新工具,旨在通过处理数字和类别数据,并特别关注不遵循通用模式或具有稀有值的数据来创建看起来像真实数据但不违反隐私法的合成数据表。作者使用其他类似工具测试了CTAB-GAN,发现它更能使合成数据用于机器学习目的,显示准确性提高了多达17%。CTAB-GAN 使用特殊技术,通过确保虚假数据与任何真实个人的数据不太相似,确保其创建的合成数据保护人们的隐私。该工具使用五个不同的数据集进行了评估,表现出更好的性能,不仅在为机器学习创建有用的数据方面,而且在确保隐私的同时使数据在统计上看起来与真实数据相似方面。CTAB-GAN的开发是出于在不损害隐私的情况下共享银行和医疗保健等行业数据的需求,这凸显了其在广泛应用中的潜力。
1. Introduction(引言)
“数据是新石油”这句话可以追溯到2006年,归功于数学家Clive Humby。在《经济学人》发表题为“世界上最有价值的资源不再是石油,而是数据”的报告后,这句话最近获得了更多的关注。如今,许多公司从各种内部和外部数据源中发现有价值的商业洞察。然而,大数据背后的大知识常常阻碍个人隐私,并导致分析的不公正(Narayanan和Shmatikov(2008))。为了防止数据滥用和隐私泄露的风险,欧盟委员会引入了欧盟通用数据保护条例(GDPR),实施了严格的数据保护措施。然而,这给数据驱动的行业带来了新的挑战,即寻找新的科学解决方案,这些解决方案可以在尊重数据隐私和政府法规的约束的同时,实现大发现。
一个新兴的解决方案是利用合成数据(Mottini等人(2018)),它在统计上类似于真实数据,并由于其合成特性,可以遵守GDPR。工业数据集(在银行、保险公司和医疗机构等利益相关者处)呈现出多方面的挑战。首先,这些数据集以表格形式组织,并填充有连续型和分类型变量,或两者的混合,例如,贷款持有人的抵押贷款价值。这个值可以是0(无抵押贷款)或某个连续的正数。在这篇文章中,作者将这类变量称为混合变量。其次,数据变量通常具有广泛的值范围以及偏斜的频率分布,例如,信用卡的交易金额统计。大多数交易应该在0到500美元之间(例如,日常的食品和服装购物),但肯定存在一些高交易金额的异常情况。
生成对抗网络(GAN)(Goodfellow等人(2014))是新兴的数据综合方法之一。GAN首先在真实数据集上进行训练,然后用于生成数据。除了在生成图像方面的成功外,Xu等人(2019);Park等人(2018);Mottini等人(2018)最近已经将GAN应用于生成表格数据。现有的最先进表格生成器(Xu等人(2019))通过条件GAN处理分类型变量,其中每个分类型值被视为条件。然而,他们的重点仅在于两种类型的变量,即连续型和分类型,忽视了一类重要的混合数据类型。此外,目前尚不清楚现有解决方案是否能够有效处理高度不平衡的分类型变量和偏斜的连续型变量。
在本文中,作者旨在设计一个表格数据综合器,解决先前最先进方法的局限性:(i)编码连续型和分类型变量的混合数据类型,(ii)有效建模长尾连续变量,以及(iii)增加对不平衡分类型变量和偏斜连续型变量的鲁棒性。因此,作者提出了一种新的条件表格生成对抗网络,CTAB-GAN。CTAB-GAN的两个关键特点是在条件GAN中引入分类损失,以及为条件向量设计了新的编码,有效地编码了混合变量,并有助于处理连续变量的高度偏斜分布。
作者从三个维度严格评估了CTAB-GAN:(i)基于合成数据的机器学习分析的效用,(ii)与真实数据的统计相似性,以及(iii)隐私保护。具体来说,所提出的CTAB-GAN在5个广泛使用的机器学习数据集上进行了测试:Adult、Covertype、Credit、Intrusion和Loan,与4种基于GAN的表格数据生成算法进行了比较:CTGAN、TableGAN、CWGAN和MedGAN。作者的结果表明,CTAB-GAN不仅在机器学习效用和统计相似性方面优于所有比较,而且还提供了比TableGAN更好的基于距离的隐私保证,后者是在机器学习效用和统计相似性评估中表现第二好的算法。
这项研究的主要贡献可以总结如下:(1)引入分类器提供额外监督的新型条件对抗网络,以改善其在机器学习应用中的效用。(2)通过新的数据编码和条件向量有效建模连续型、分类型和混合型变量。(3)轻量级数据预处理,以减轻连续变量长尾分布的影响。(4)为相关利益相关者提供有效的数据综合器。
1.1. Motivation(动机)
作者通过实证展示了现有最先进的方法在解决工业数据集挑战方面的不足。详细的实验设置可以在第4.1节中找到。
Mixed data type variables(混合数据类型变量)。据我们所知,现有的基于GAN的表格生成器仅将表列视为分类或连续。然而,在现实中,一个变量可以是这两种类型的混合,并且通常变量存在缺失值。来自贷款数据集的“抵押贷款”变量是混合变量的一个典型例子。图1(a)显示了4种现有最先进算法为这个变量生成的原始和合成数据的分布。根据数据描述,贷款持有人可能有或没有抵押贷款(0值),或者有抵押贷款(任何正值)。从表面上看,由于数据的数值特性,这个变量不是分类类型。因此,所有4种最先进算法都把这种变量视为连续类型,没有捕捉到值零的特殊含义。因此,所有4种算法都生成了一个大约为0的值,而不是精确的0。而且,抵押贷款的负值在现实世界中没有意义或意义错误。
Long tail distributions(长尾分布)。许多现实世界数据可能有长尾分布,其中大部分发生靠近分布的初始值,而罕见情况则出现在末端。图1(b)绘制了原始(顶部)和由4种最先进算法生成的合成数据(底部)的信用卡交易金额数据集的累积频率。这个变量表示使用信用卡时的交易金额。可以想象,大多数交易金额很小,从几美元到几千美元不等。然而,肯定存在极少数的大额交易。注意,为了方便比较,两个图表使用相同的x轴,但真实数据没有负值。真实数据清楚地显示了99%的出现在范围的开始,但分布一直延伸到大约25000。相比之下,没有一个合成数据生成器能够学习并模仿这种行为。
Skewed multi-mode continuous variables(偏斜的多模态连续变量)。“多模态”一词是从变分高斯混合(VGM)中扩展而来的。第3.3节给出了更多细节。使用多模态的直觉可以从图1©中轻松捕捉。该图在每一行中绘制了Adult数据集中“每周工作小时数”变量的分布。这不是典型的高斯分布。在40小时处有一个明显的峰值,但也有几个其他较低的峰值,例如在50、20和45小时。并且每周工作20小时的人数比每周工作10或30小时的人数多。这种行为对于现有的数据生成器来说很难捕捉(见图1©中的后续行)。最接近的结果是通过CTGAN获得的,它对连续变量使用高斯混合估计。然而,与原始分布相比,CTGAN丢失了一些模式。
上述例子展示了当前基于GAN的表格数据生成算法的不足,并激发了作者提出CTAB-GAN的设计动机。
2. Related Studies(相关工作)
作者将使用GAN生成表格数据的相关研究分为两类:(i) 基于GAN的, (ii) 基于条件GAN的。
GAN-based generator(基于GAN的生成器)。 多项研究通过扩展GAN来适应分类变量,增强了GAN架构。MedGAN(Choi等人,2017)结合了自编码器和GAN,能够生成连续或离散变量,并已应用于生成合成电子健康记录(EHR)数据。CrGAN-Cnet(Mottini等人,2018)使用GAN进行航空旅客姓名记录生成。它将Cramér距离(Bellemare等人,2017)和Cross-Net架构(Wang等人,2017)整合到算法中。除了能够生成连续型和分类变量类型外,CrGAN-Cnet还能够通过添加新变量来处理表格中的缺失值。TableGAN(Park等人,2018)在GAN框架中引入了信息损失和一个分类器,特别采用了卷积神经网络(CNN)作为生成器、鉴别器和分类器。尽管上述算法可以生成表格数据,但它们无法指定如何为特定变量的特定类别生成数据。例如,不可能为性别为女性的用户生成健康记录。除了数据生成,隐私是合成表格数据的另一个重要因素。PATE-GAN(Yoon等人,2019)并非专门设计用于表格数据生成,但它提出了一个框架,可以生成具有差分隐私保证的合成数据。
Conditional GAN-based generator(基于条件GAN的生成器)。 由于通过GAN控制生成数据的局限性,条件GAN的使用日益增多,其条件向量可以用来指定生成特定类别的数据。这个特性在我们可用的数据有限且高度偏斜时非常重要,因此需要特定类别的合成数据来重新平衡分布。例如,为在线学习场景准备起始数据集(Zhao等人,2019, 2021;Younesian等人,2020)。CW-GAN(Engelmann和Lessmann,2020)将Wasserstein距离(Arjovsky等人,2017)应用到条件GAN框架中。它利用条件向量来过采样少数类,以解决不平衡的表格数据生成问题。CTGAN(Xu等人,2019)在其鉴别器中整合了PacGAN(Lin等人,2020)结构,并使用生成器损失和WGAN损失加上梯度惩罚(Gulrajani等人,2017)来训练条件GAN框架。它还采用了一种称为基于采样的训练的策略,利用条件向量来解决不平衡的分类变量问题。在此文章中,作者不仅关注建模连续型或分类变量,还涵盖了混合数据类型(即,包含分类和连续值的变量,甚至缺失值)。他们有效地结合了先前技术的优势,如分类器、信息、生成器损失、有效的编码和条件向量。此外,作者主动解决了长尾变量分布的痛点,并提出了一种新的条件向量结构,以更好地处理不平衡的数据集。
3. CTAB-GAN
CTAB-GAN是一个表格数据生成器,旨在克服第1.1节中概述的挑战。在CTAB-GAN中,我们发明了一个Mixed-type Encoder,可以更好地表示混合分类-连续变量以及缺失值。CTAB-GAN基于条件生成对抗网络(CGAN)来有效处理少数类别,增加了分类损失、信息损失和生成器损失 L o r i g G + L i n f o G + L c l a s s G + L g e n e r a t o r G L^G_{orig} + L^G_{info} + L^G_{class} + L^G_{generator} LorigG+LinfoG+LclassG+LgeneratorG来提高语义完整性和训练稳定性。最后,我们使用对数频率采样器来克服不平衡变量的模式崩溃问题。
3.1 Technical Background(技术背景)
生成对抗网络(GANs)是一种流行的生成合成数据的方法,最初成功应用于图像,并后来被适应于表格数据。GANs利用生成器和鉴别器之间的对抗游戏。
为了解决数据集不平衡问题,作者采用了CTGAN中的条件生成器和基于采样的训练方法。这个想法是使用一个额外的向量,称为条件向量,来表示分类变量的类别。这个向量既输入到生成器中,也用于限制真实训练数据的采样以满足条件。我们可以利用条件来重新采样所有类别,给予少数类别更高的机会来训练模型。
为了增强生成质量,作者在生成器的损失函数中加入了三个额外的项:信息损失 L i n f o G L^G_{info} LinfoG、分类损失 L c l a s s G L^G_{class} LclassG和生成器损失 L g e n e r a t o r G L^G_{generator} LgeneratorG。信息损失惩罚生成数据和真实数据统计量的不一致。这有助于生成统计上更接近真实数据的数据。分类损失要求在GAN架构中并行地添加一个辅助分类器。对于每个合成标签,分类器输出一个预测标签。分类损失量化了合成和预测类别之间的差异。这有助于增加合成记录的语义完整性。例如,(sex=female, disease=prostate cancer)是一个语义上不正确的记录,因为女性没有前列腺,因此这样的记录不应该出现在原始数据中,也不被分类器学习。生成器损失测量给定条件和生成器输出类别之间的差异。这个损失帮助生成器学习产生与给定条件完全相同的类别。分类损失由TableGAN使用,但不是CTGAN,因为CTGAN不包含分类器。生成器损失由CTGAN实现,而不是TableGAN,因为TableGAN不是条件GAN。
为了对抗连续变量中的复杂分布,作者采用了基于高斯混合模型的特定于模式的归一化(MSN)的想法。
3.2 设计CTAB-GAN
CTAB-GAN的结构由三个模块组成:生成器G、鉴别器D和一个辅助分类器C(见图2)。由于作者的算法是基于条件GAN,生成器需要一个噪声向量加上一个条件向量。条件向量的细节在第3.4节中给出。为了简化图形,作者省略了合成和真实数据的编码和解码的详细说明,这些在第3.3节中描述。
GAN通过一个零和最小化最大化游戏进行训练,其中鉴别器D尝试最大化目标,而生成器G尝试最小化它。这个游戏可以被看作是一个导师D为学生G提供有关其工作质量的反馈。这里,作者为G引入了基于信息损失、分类损失和生成器损失的额外反馈。信息损失匹配合成和真实记录的一阶(即,均值)和二阶(即,标准差)统计。这导致合成记录具有与真实记录相同的统计特性。分类损失将类别与其他变量值之间的相关性等同起来。这有助于检查语义完整性,并惩罚那些在语义上不正确的合成记录。最后,生成器损失是由给定条件向量和生成输出类别之间的交叉熵给出的。它强制条件生成器产生与给定条件向量相同的类别。这三个损失在训练期间添加到G的原始损失项中。G和D使用与Park等人(2018)中相同结构的卷积神经网络(CNN)实现。CNN擅长捕捉图像内像素之间的关系,这有助于增加合成数据的语义完整性。为了用CNN处理存储为向量的行记录,作者将行数据包装成最接近的正方形矩阵尺寸,即d×d,其中d是行数据维度的向上取平方根,并用零填充缺失值。C使用一个具有四个256神经元隐藏层的多层感知器(MLP)。分类器在原始数据上训练,以更好地解释语义完整性。因此,合成数据从其矩阵编码反向转换为向量(细节在第3.3节中)。真实数据在用作C的输入以创建类别标签预测之前进行编码(细节在第3.3节和3.5节中)。
设 f x f_x fx和 f G ( z ) f_{G(z)} f