MapReduce框架下决策树的差分隐私保护方法与流程

专利2022-06-29  71


本发明涉及隐私保护技术领域,具体涉及一种mapreduce框架下决策树的差分隐私保护方法。



背景技术:

随着信息技术和大数据产业的飞速发展,个人数字信息也在快速增长。对搜集到的个人数据进行分析和挖掘能够发现大量有价值的信息。决策树是许多数据挖掘中最有效和最广泛使用的技术之一,例如模式识别、机器学习、图像处理和信息检索,近年来已经得到了大量的研究,越来越多的决策树算法相继涌现。通过决策树方法,我们可以对大量的数据进行分析来发现深层次的知识和规律,从而进一步指导企业、组织的发展决策。到目前为止,许多决策树方法在小型或中型数据集上表现良好。然而,由于存储器限制、时间复杂度和数据复杂度的一些瓶颈,很难从大规模数据集中训练决策树。yashuangmu等人在2017年提出了一种基于皮尔逊相关系数的并行决策树算法,该方法在一种分布式计算框架mapreduce下训练出了以皮尔逊相关系数为杂质度量函数的决策树,很好地解决了决策树算法在大规模数据集上表现不佳的问题。但是该方法没有考虑到用户的隐私问题,当数据集中包含有个人敏感信息时(如某个患者的诊断结果、某个客户的消费记录等),敌手可以大概率的推测出用户的个人信息,从而导致个人敏感信息受到威胁。



技术实现要素:

本发明所要解决的是在mapreduce框架下应用决策树模型解决二分类或多分类任务运行期间所导致的隐私泄露的问题,提供一种mapreduce框架下决策树的差分隐私保护方法。

为解决上述问题,本发明是通过以下技术方案实现的:

mapreduce框架下决策树的差分隐私保护方法,包括步骤如下:

步骤1、初始化:给定决策树最大深度h和不相交子集的个数m,令当前决策树深度j=0,令集合ωj为原始数据集,并将原始数据集中的所有条件属性归入条件属性集;

步骤2、将集合ωj中的一个数据集视为当前数据集,将当前数据集划分为m个不相交的子集;

步骤3、对于当前数据集的每个子集:计算该子集中的每个条件属性和决策属性之间的皮尔逊相关系数,并据此计算该子集的子集最佳分裂点;同时,统计该子集的子集类分布;

步骤4、基于步骤3所得的每个子集的子集最佳分裂点,计算当前数据集的平均最佳分裂点;同时,基于步骤3所得的每个子集的子集类分布,统计当前数据集的总类分布;

步骤5、基于步骤3所得的m个子集中每个条件属性和决策属性之间的皮尔逊相关系数,计算每个条件属性在当前数据集的平均皮尔逊相关系数;然后将每个条件属性的平均皮尔逊相关系数作为其质量函数,利用指数机制挑选出输出概率最大的条件属性作为当前最佳分裂属性,该条件属性在当前数据集中所对应的平均最佳分裂点作为当前最佳分裂点;

步骤6、判断步骤4所得的当前数据集的总类分布是否仅包含一个类别,或者当前决策树深度j是否等于决策树最大深度h:

如果是,则不再划分当前数据集,并对当前数据集的类计数添加拉普拉斯噪声,且将当前数据集移出集合ωj,然后进一步判断集合ωj是否为空:如果是,则转至步骤7;否则,继续返回步骤2开始处理集合ωj中的下一个数据集;

否则,将当前决策树深度j加1,并在集合ωj下生成两个空的数据集x<j,0>和x<j,1>;然后基于当前最佳分裂点对当前数据集中的各个样本进行划分:当样本的当前最佳分裂属性所对应的属性值大于当前最佳分裂点时,则将该样本划分到集合ωj中的数据集x<j,1>中;否则,将该样本划分到集合ωj中的数据集x<j,0>中;之后将当前数据集移出集合ωj-1,同时将当前最佳分裂属性移出条件属性集;最后进一步判断条件属性集是否为空:如果是,则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

步骤7、先将当前决策树深度j减1,再判断当前决策树深度j是否为0:如果是,将转至步骤9;否则转至步骤8;

步骤8、判断集合ωj是否为空:如果是,则转至步骤7;否则,进一步判断条件属性集是否为空:如果是:则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

步骤9、返回最终的类计数。

上述步骤5中,第k个条件属性ak的输出概率为:

其中,q(ak)为质量函数,δq为质量函数的敏感度,ε1为分配的隐私预算,n为条件属性的个数。

与现有技术相比,本发明具有如下特点:

1、在mapreduce框架下基于差分隐私的决策树的实现大幅地减少了算法的计算时间并避免了对大规模数据分类时的内存限制。

2、在决策树构建过程中,利用指数机制将皮尔逊相关系数的平均值作为质量函数来挑选出当前节点的最佳分裂属性及属性值,在保护用户数据隐私的同时最终生成规模小、泛化性能好的决策树模型。

3、对决策树的叶节点中的样本计数用拉普拉斯机制进行加噪,从而在决策树模型预测未知样本时保护了用户数据的隐私。

附图说明

图1为mapreduce框架下决策树的差分隐私保护方法的原理图。

图2为mapreduce框架下决策树的差分隐私保护方法的算法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。

一般来说,决策树在构建时会在分裂阶段和分类阶段产生隐私问题,即在挑选最佳分裂属性和样本到达叶节点时泄露节点中数据的隐私信息。在本发明中,用来挑选分裂属性的杂质度量函数是皮尔逊相关系数,系数的值越大,表明该条件属性和决策属性的相关性越大(即该属性能够将节点中的各类样本更好地分开,到达分支节点时样本纯度更高)。然而,在此过程中攻击者会根据皮尔逊相关系数的值来推测出样本中条件属性与决策属性之间的关联性,从而利用一些背景知识来获取样本中的隐私信息;另外,攻击者也可能通过利用自己精心设计的样本输入模型所得到的一些样本类计数信息来反推出原始数据集中的隐私信息。因此,为了保护决策树在分裂阶段和分类阶段时节点中的数据隐私信息不被泄露,本发明提出一种mapreduce框架下决策树的差分隐私保护方法,如图1和2所示,其具体步骤如下:

步骤1、初始化:给定决策树最大深度h和不相交子集的个数m,令当前决策树深度j=0,令集合ωj为原始数据集,并将原始数据集中的所有条件属性归入条件属性集。

步骤2、将集合ωj中的一个数据集视为当前数据集,将当前数据集划分为m个不相交的子集。

步骤3、对于当前数据集的每个子集:计算该子集中的每个条件属性和决策属性之间的皮尔逊相关系数,并据此计算该子集的子集最佳分裂点;同时,统计该子集的子集类分布。

将当前数据集分为m个不相交的子集,并对每个子集进行分别计算每个子集内的皮尔逊相关系数和子集最佳分裂点,以及统计子集类分布,相对于统一计算整个数据集的相关参数而言,其计算效率更高。

1)条件属性和决策属性之间的皮尔逊相关系数p(vc(ak),v(d)):

首先假设数据集其中的每个样本都有n个条件属性和一个决策属性d,样本xi中的某个属性a(条件属性或决策属性)的值定义为v(xi,a)。为了计算皮尔逊相关系数,定义三个规则:1)如果条件属性a是连续属性,则v(xi,a)就是真实的属性值;2)如果条件属性a是离散属性,则v(xi,a)∈{0,1,2,...,f-1},其中f是离散属性所有取值的个数;3)如果a是决策属性d,则v(xi,a)是样本xi的类标签且v(xi,a)∈{0,1,2,...,y-1},其中y是数据集x中类别的个数。假设c是某个属性的一个属性值,用于在x中分割属性a(条件属性或决策属性)的值域。我们根据属性a的划分规则定义两个与皮尔逊相关系数相关的向量:

其中,若v(xi,a)≤c,则v′(xi,a)=1;否则v′(xi,a)=2。然后计算条件属性与决策属性之间的皮尔逊相关系数:

其中,vc(ak)表示第k个条件属性ak的属性值向量,v(d)表示决策属性d的属性值向量,var(vc(ak))表示向量vc(ak)的方差,var(v(d))表示向量v(d)的方差,cov(vc(ak),v(d))表示两个向量vc(ak)和v(d)的协方差。

2)每个子集xi的最佳分裂点c*(i):

计算出第i个子集中当皮尔逊相关系数取最大时所对应的条件属性的属性值,即最佳分裂点c*(i):

3)每个子集xi的类分布dis(i):

统计每个子集xi的类分布dis(i)。类分布是指数据集中每种类别(即本文中的决策属性值)所对应的数据记录(即样本)的个数。例如,假设一个数据集有14个样本,4个条件属性和一个决策属性,决策属性值为两类no和yes,其中为no类别的样本有5个,为yes类别的样本有9个,则这个数据集的类分布为no:5,yes:9。

步骤4、基于步骤3所得的每个子集的子集最佳分裂点,计算当前数据集的平均最佳分裂点;同时,基于步骤3所得的每个子集的子集类分布,统计当前数据集的总类分布。

1)平均最佳分裂点ck:

m个子集的第k个条件属性的最佳分裂点的平均值ck:

2)总类分布dis(x):

总类分布dis(x)为所有子集的类分布dis(i)之和。

步骤5、基于步骤3所得的m个子集中每个条件属性和决策属性之间的皮尔逊相关系数,计算每个条件属性在当前数据集的平均皮尔逊相关系数;然后将每个条件属性的平均皮尔逊相关系数作为其质量函数,利用指数机制挑选出输出概率最大的条件属性作为当前最佳分裂属性,该条件属性在当前数据集中所对应的平均最佳分裂点作为当前最佳分裂点。

对于每个条件属性ak,计算出m个子集的平均皮尔逊相关系数:

用符号q(ak)来表示平均皮尔逊相关系数取最大值时所对应的条件属性ak,并利用q(ak)作为质量函数:

利用指数机制以如下输出概率来挑选出最佳分裂属性

其中为分配的隐私预算(ε1表示隐私保护程度,ε1越小隐私保护水平越高),δq为质量函数的敏感度。

采用指数机制对平均皮尔逊相关系数进行加噪,这种方式是满足ε-差分隐私的加噪方式。指数机制定义如下:设随机算法m的输入为数据集x,输出为一实体对象r∈range,q(x,r)为质量函数,δq为函数q(x,r)的敏感度。若算法m以正比于的概率从range中选择并输出r,那么算法m提供ε-差分隐私保护。

步骤6、判断步骤4所得的当前数据集的总类分布是否仅包含一个类别,或者当前决策树深度j是否等于决策树最大深度h:

如果是,则不再划分当前数据集(此时称这个数据集为叶子数据集),并对当前数据集的类计数(类计数就是数据集中每种类别所对应的样本的数目)添加拉普拉斯噪声,且将当前数据集移出集合ωj(说明一下,本专利中的决策树模型解决的是二分类或多分类问题,所以一般地原始数据集至少包含两个及以上的类别,故通常情况下原始数据集在这里不作判断),然后进一步判断集合ωj是否为空:如果是,则转至步骤7;否则,继续返回步骤2开始处理集合ωj中的下一个数据集;

否则,将当前决策树深度j加1,并在集合ωj下生成两个空的数据集x<j,0>和x<j,1>;然后基于当前最佳分裂点对当前数据集中的各个样本进行划分:当样本的当前最佳分裂属性所对应的属性值大于当前最佳分裂点时,则将该样本划分到集合ωj中的数据集x<j,1>中;否则,将该样本划分到集合ωj中的数据集x<j,0>中;之后将当前数据集移出集合ωj-1,同时将当前最佳分裂属性移出条件属性集;最后进一步判断条件属性集是否为空:如果是,则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

对叶子数据集中的类计数添加拉普拉斯噪声,这样攻击者无法通过模型输出的真实类计数反推出数据集中用户的隐私信息,从而保护了模型输出端的隐私。需要注意的是,算法整体的隐私保护预算为ε=ε1 ε2。其中,针对拉普拉斯的噪声,我们在此分配隐私预算为ε2(ε2表示隐私保护程度,ε2越小隐私保护水平越高)敏感度δf由以下公式计算得来:

其中,x和x′是仅相差一条记录的相邻数据集。在本发明中,由于是对类计数count(d)加噪,所以敏感度δcount=1。因此,我们对叶子数据集中类计数添加的拉普拉斯噪声为lap(1/ε2),即:

noisycount(d)=count(d) laplace(1/ε2)(10)

步骤7、先将当前决策树深度j减1,再判断当前决策树深度j是否为0:如果是,将转至步骤9;否则转至步骤8;

步骤8、判断集合ωj是否为空:如果是,则转至步骤7;否则,进一步判断条件属性集是否为空:如果是:则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

步骤9、返回最终的类计数。

在mapreduce框架下基于差分隐私的决策树的实现大幅地减少了算法的计算时间并避免了对大规模数据分类时的内存限制,同时在决策树的构建过程中利用指数机制随机挑选最佳分裂属性,在保护用户数据隐私的同时最终生成规模小、泛化性能好的决策树模型,最后在决策树模型的输出端也就是叶子节点处对样本的类计数添加拉普拉斯噪声进行扰动,从而在决策树模型预测未知样本时保护了用户数据的隐私。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。


技术特征:

1.mapreduce框架下决策树的差分隐私保护方法,其特征是,包括步骤如下:

步骤1、初始化:给定决策树最大深度h和不相交子集的个数m,令当前决策树深度j=0,令集合ωj为原始数据集,并将原始数据集中的所有条件属性归入条件属性集;

步骤2、将集合ωj中的一个数据集视为当前数据集,将当前数据集划分为m个不相交的子集;

步骤3、对于当前数据集的每个子集:计算该子集中的每个条件属性和决策属性之间的皮尔逊相关系数,并据此计算该子集的子集最佳分裂点;同时,统计该子集的子集类分布;

步骤4、基于步骤3所得的每个子集的子集最佳分裂点,计算当前数据集的平均最佳分裂点;同时,基于步骤3所得的每个子集的子集类分布,统计当前数据集的总类分布;

步骤5、基于步骤3所得的m个子集中每个条件属性和决策属性之间的皮尔逊相关系数,计算每个条件属性在当前数据集的平均皮尔逊相关系数;然后将每个条件属性的平均皮尔逊相关系数作为其质量函数,利用指数机制挑选出输出概率最大的条件属性作为当前最佳分裂属性,该条件属性在当前数据集中所对应的平均最佳分裂点作为当前最佳分裂点;

步骤6、判断步骤4所得的当前数据集的总类分布是否仅包含一个类别,或者当前决策树深度j是否等于决策树最大深度h:

如果是,则不再划分当前数据集,并对当前数据集的类计数添加拉普拉斯噪声,且将当前数据集移出集合ωj,然后进一步判断集合ωj是否为空:如果是,则转至步骤7;否则,继续返回步骤2开始处理集合ωj中的下一个数据集;

否则,将当前决策树深度j加1,并在集合ωj下生成两个空的数据集x<j,0>和x<j,1>;然后基于当前最佳分裂点对当前数据集中的各个样本进行划分:当样本的当前最佳分裂属性所对应的属性值大于当前最佳分裂点时,则将该样本划分到集合ωj中的数据集x<j,1>中;否则,将该样本划分到集合ωj中的数据集x<j,0>中;之后将当前数据集移出集合ωj-1,同时将当前最佳分裂属性移出条件属性集;最后进一步判断条件属性集是否为空:如果是,则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

步骤7、先将当前决策树深度j减1,再判断当前决策树深度j是否为0:如果是,将转至步骤9;否则转至步骤8;

步骤8、判断集合ωj是否为空:如果是,则转至步骤7;否则,进一步判断条件属性集是否为空:如果是:则转至步骤9;否则继续返回步骤2开始处理集合ωj中的下一个数据集;

步骤9、返回最终的类计数。

2.根据权利要求1所述的mapreduce框架下决策树的差分隐私保护方法,其特征是,第k个条件属性ak的输出概率为:

其中,q(ak)为质量函数,δq为质量函数的敏感度,ε1为分配的隐私预算,n为条件属性的个数。

技术总结
本发明公开一种MapReduce框架下决策树的差分隐私保护方法,首先,在MapReduce框架下基于差分隐私的决策树的实现大幅地减少了算法的计算时间并避免了对大规模数据分类时的内存限制;接着,在决策树构建过程中,利用指数机制将皮尔逊相关系数的平均值作为质量函数来挑选出当前节点的最佳分裂属性及属性值,在保护用户数据隐私的同时最终生成规模小、泛化性能好的决策树模型;最后对决策树的叶节点中的样本计数用拉普拉斯机制进行加噪,从而在决策树模型预测未知样本时保护了用户数据的隐私。

技术研发人员:王金艳;颜奇;李先贤
受保护的技术使用者:广西师范大学
技术研发日:2020.01.15
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21619.html

最新回复(0)