本发明涉及隐私保护技术领域,具体涉及一种亲和传播聚类的差分隐私保护方法。
背景技术:
随着信息时代的到来,信息技术和大数据产业开始进入高速发展阶段。互联网深入到我们生活中的方方面面,每天都会在我们生活的各个领域产生大量的数据,对这些数据进行挖掘可以得到很多有用的信息。聚类是数据挖掘中的一项重要技术,已经得到了大量的研究,近年来越来越多的聚类算法相继涌现。通过聚类技术,我们可以对大量的数据进行分析,使得由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。聚类能够帮助市场分析人员从客户基本库中发现不同的客户群,在生物学上可以帮助研究者对研究的动植物进行分类,对种群结构产生更好的认识等等。2007年,brendanj.frey*等人提出了一种基于互信息传递的亲和传播聚类新方法,该方法不需要指定具体的聚类个数,算法精准度高,适用环境广泛,但是该方法没有考虑到用户的隐私问题,当聚类中间结果含有个人敏感信息时(如顾客消费记录,收入等),敌手可以大概率的推测出用户的个人信息,从而导致个人敏感信息受到威胁。
技术实现要素:
本发明所要解决的是在亲和传播聚类模型运行期间所导致的隐私泄露的问题,提供一种亲和传播聚类的差分隐私保护方法。
为解决上述问题,本发明是通过以下技术方案实现的:
亲和传播聚类的差分隐私保护方法,包括步骤如下:
步骤1、计算原始数据集中每两个不同样本数据之间的距离,以得到每两个不同样本数据之间的相似度,并据此构建出非完整的相似度矩阵s′;
步骤2、对步骤1的非完整的相似度矩阵s′中的对角相似度进行补全,由此得到完整的相似度矩阵s;即:
步骤2.1、分别计算原始数据集中的每个样本数据的密度值,并根据密度值对原始数据集中的样本数据进行降序排序;
步骤2.2、将密度值排在前θ%的样本数据作为第一类样本数据,其余的样本数据作为第二类样本数据;
步骤2.3、将非完整的相似度矩阵s′中所有相似度的最大值作为第一类样本数据的相似度,并将非完整的相似度矩阵s′中所有相似度的平均值作为第二类样本数据的相似度;
步骤2.4、基于步骤2.3所得到的每个样本数据的相似度,对步骤1的非完整的相似度矩阵s′的对角相似度进行补全,由此得到完整的相似度矩阵s;
步骤3、初始化吸引度矩阵r′和归属度矩阵a′,其中吸引度矩阵r′的吸引度初值为全0,归属度矩阵a′的归属度初值为全0;
步骤4、先设定最大迭代次数x和扰动概率参数f;再基于最大迭代次数x,构建一个长度为x的全0的初始比特串b′;后基于扰动概率参数f,对初始比特串b′进行prr机制扰动,得到扰动比特串b;
步骤5、基于步骤2的相似度矩阵s和步骤4的扰动比特串b,对步骤3的吸引度矩阵r′和归属度矩阵a′进行x次迭代,得到吸引度矩阵r和归属度矩阵a;即:
步骤5.1、先基于相似度矩阵s和归属度矩阵a′,利用吸引度计算公式计算初始的吸引度矩阵r0;再基于初始的吸引度矩阵r0,利用归属度计算公式计算初始的归属度矩阵a0;
步骤5.2、在第1次迭代时,先基于相似度矩阵s和上一次迭代的归属度矩阵a0,利用吸引度计算公式计算当前吸引度矩阵r1;再基于当前吸引度矩阵r1,利用归属度计算公式计算归属度矩阵a1;
步骤5.3、在第x次迭代时,先基于相似度矩阵s和上一次迭代的归属度矩阵ax-1,利用吸引度计算公式计算当前吸引度矩阵rx;再判断扰动比特串b中的第x位是否为1:如果第x位为1,则先对当前吸引度矩阵rx进行拉普拉斯加噪,得到当加噪后的吸引度矩阵rx′,再基于当加噪后的吸引度矩阵rx′,并利用归属度计算公式计算当归属度矩阵ax;如果第x位为0,则直接基于当吸引度矩阵rx,并利用归属度计算公式计算当归属度矩阵ax;
步骤5.4、重复步骤5.3的过程,得到最终的吸引度矩阵rx和最终的归属度矩阵ax,此时吸引度矩阵rx即为所求吸引度矩阵r,归属度矩阵ax即为所求归属度矩阵a;
步骤6、对于原始数据集的第i个样本数据将步骤5所得吸引度矩阵r第i行第i列的吸引度值与步骤5所得归属度矩阵a的第i行第i列的归属度值进行相加,如果相加所得的值大于0,则将该样本数据视为聚类中心点;否则,将该样本数据视为普通聚类点;
步骤7、对于每个普通聚类点,先基于吸引度矩阵r和归属度矩阵a,计算该普通聚类点与各个聚类中心点的亲和度值,其中亲和度值等于普通聚类点与聚类中心点的吸引度值与归属度值之和,再将普通聚类点分配给亲和度值最大的聚类中心点所在的簇中,由此完成聚类;
步骤8、将步骤7所得到的聚类输出;
上述θ%为设定值;i=1,2,…,n,n为原始数据集的样本数据个数;x=1,2,…,x,x为迭代次数。
上述方案中,所有相似度矩阵、所有吸引度矩阵和所有归属度矩阵的大小为n×n,其中n为原始数据集的样本数据个数。
上述方案中,θ%的取值为5%~10%之间。
上述方案中,样本数据
式中,
上述方案中,样本数据
式中,
本发明利用相似性函数计算样本数据集的归属度和吸引度,值越大相似性也就越高,聚为一类的可能性也就越大,这种相似性也可以理解为社交网络中的关系亲密度,因此为了保证这种亲密关系不被泄露,在计算吸引度和相似度矩阵的时候加上差分隐私的拉普拉斯噪声来隐藏潜在的个人数据信息,从而实现隐私安全的保护。
与现有技术相比,本发明具有如下特点:
1、在算法迭代过程中,本发明通过引入密度中心点权重的概念对迭代次数进行优化,固定迭代次数,从而加快算法收敛速度。
2、为了合理分配隐私预算,本发明对整体的固定迭代次数使用永久性随机响应机制进行采样,对采样出的一部分迭代步骤中的吸引度矩阵值用拉普拉斯机制进行加噪,从而保护数据的隐私。
附图说明
图1为亲和传播聚类的差分隐私保护方法的原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
一种亲和传播聚类的差分隐私保护方法,如图1所示,其具体包括步骤如下:
步骤1、计算原始数据集中每两个不同样本数据xi,xk之间的距离,并得到每两个不同样本数据之间的相似度s(xi,xk),并据此构建出非完整的相似度矩阵s′。
设原始数据集大小为n,对于原始数据集中每两个样本数据,通过如下公式计算两个样本数据xi,xk之间的距离s(xi,xk):
s(xi,xk)=-||xi-xk||2
将上述计算结果即每两个样本数据之间的距离存入到一个大小为n*n的相似度矩阵s′中去。
步骤2、对步骤1的非完整的相似度矩阵s′中的对角相似度s(xi,xi)进行补全,由此得到完整的相似度矩阵s。相似度矩阵s的大小为n*n。
在亲和传播聚类中,每个样本数据都有一个密度值,密度值越大,这个样本数据越有可能成为一个聚类中心点。按照这个思想,本发明根据样本数据的密度值来提升其偏好值,以减少聚类算法的迭代次数,加快收敛速度,从而降低每次迭代需要添加的总噪声。
步骤2.1、分别计算原始数据集中的每个样本数据xi的密度值ρi,并根据密度值对原始数据集中的样本数据进行降序排序;
密度值ρi的具体计算方式为:在样本数据点i邻域范围内(此邻域范围由用户指定)的样本数据点的个数就是其密度值,每个样本数据点都有其对应的一个ρi值。
步骤2.2、将密度值排在前θ%的样本数据作为第一类样本数据,其余的样本数据作为第二类样本数据;在本发明优选实施例中,θ%的取值为5%~10%之间。
步骤2.3、将非完整的相似度矩阵s′中所有相似度s(xi,xk)的最大值作为第一类样本数据的相似度s(xi,xi),并将非完整的相似度矩阵s′中所有相似度s(xi,xk)的平均值作为第二类样本数据的相似度s(xi,xi);
步骤2.4、基于步骤2.3所得到的相似度s(xi,xi),对步骤1的非完整的相似度矩阵s′的对角相似度s(xi,xi)进行补全,由此得到完整的相似度矩阵s。
步骤3、初始化吸引度矩阵r′和归属度矩阵a′。其中吸引度矩阵r′的大小为n*n,其吸引度初值为全0,归属度矩阵a′的大小为n*n,其归属度初值为全0。
步骤4、先设定迭代次数x和扰动概率参数f;再基于迭代次数x,构建一个长度为x的全0的初始比特串b′;后基于扰动概率参数f,对初始比特串b′进行prr机制扰动,得到扰动比特串b。
prr机制为谷歌开发的一个随机响应机制,设有一个确定的映射全0bit串b,使用prr对其每一位进行翻转,设翻转概率如下:
式中,bx表示扰动比特串b中的第x位,b′x表示原始比特串b′中的第x位。在采用prr机制进行扰动时,以
步骤5、基于步骤2的相似度矩阵s和步骤4的扰动比特串b,对步骤3的吸引度矩阵r′和归属度矩阵a′进行x次迭代,得到吸引度矩阵r和归属度矩阵a;吸引度矩阵r和归属度矩阵a的大小为n*n。
(1)吸引度矩阵
吸引度矩阵r中的每个值由上述s矩阵的对应值计算而来,r矩阵中的每个值用以表示两个样本数据点之间的吸引度。
r矩阵中第i行和第k列的值就用来表示数据样本点k作为数据样本点i的中心点的吸引程度,用rx(xi,xk)表示,即样本数据xi与样本数据xk在当前迭代的吸引度rx(xi,xk)为:
rx(xi,xk)=s(xi,xk)-maxk′≠k{ax-1(xi,xk’) s(xi,xk’)}
式中,s(xi,xk)表示样本数据xi与样本数据xk的距离,s(xi,xk’)表示表示样本数据xi与样本数据xk′的距离,ax-1(xi,xk’)表示样本数据xi与样本数据xk′在上一次迭代的归属度。
(2)归属度矩阵
归属度矩阵a中的每个值由r矩阵中的每个值计算而来,a矩阵中的每个值用以表示两个样本数据点之间的归属度。
a矩阵中第i行和第k列的值就用来表示数据样本点i作为数据样本点k的簇内点的归属程度,用ax(xi,xk)表示,即样本数据xi与样本数据xk在当前迭代的归属度ax(xi,xk)为:
式中,rx-1(xk,xk)表示样本数据xk与样本数据xk在上一次迭代的吸引度;rx-1(xk,xk′)表示样本数据xk与样本数据xk′在上一次迭代的吸引度。
式中,rx-1(xk,xk)表示样本数据xk与样本数据xk在上一次迭代的吸引度;rx-1(xk,xk′)表示样本数据xk与样本数据xk′在上一次迭代的吸引度。
在每轮迭代中,都会对r矩阵和a矩阵中的每个值使用rx(xi,xk)和ax(xi,xk)公式进行计算。在计算r矩阵的时候,会根据生成的二进制串b中第x位的值决定是否对第x轮迭代中的r矩阵中的值添加拉普拉斯噪声,最终输出运算结束后的r矩阵和a矩阵。
针对拉普拉斯的噪声,我们在此分配隐私预算为ε2,(ε2表示了用户的隐私保护程度,ε2越小,隐私保护水平越高)敏感度δf由以下公式计算得来:
因此对需要添加噪声的r矩阵,我们添加的拉普拉斯噪声为lap(δf/ε2)。
需要注意的是,算法整体的隐私保护预算为ε=ε1 ε2。
本步骤旨在使得不在每次迭代中添加拉普拉斯噪声,而是选择性的使用满足差分隐私的随机扰动机制对迭代次数进行采样,筛选出远小于迭代轮数x的一部分轮数,在这部分轮数中我们添加隐私保护噪声,由于我们的采样是完全随机的且满足严格的ε-差分隐私机制的,所以攻击者无法获知我们究竟在哪几轮的数据中添加了噪声,因为每次迭代计算r矩阵,都会用到上一次r矩阵的计算结果,所以我们只要在一次r矩阵中添加噪声就可以满足严格的差分隐私,我们进一步筛选出一部分的迭代次数多次加噪,可以使得数据的隐私性更高,实验证明,这样既可以高强度的保护隐私,又能够满足数据一定的精度要求,不至于造成噪声叠加导致数据精度的损失灾难,同时,由于仅仅是选择了一部分迭代轮数进行噪声处理,所以对算法的运行效率影响不大,极大地保留了原始算法的精度和效率。
步骤5.1、先基于相似度矩阵s和归属度矩阵a′,利用吸引度计算公式计算吸引度矩阵r0;再基于吸引度矩阵r0,利用归属度计算公式计算归属度矩阵a0;
步骤5.2、在第1次迭代时,先基于相似度矩阵s和归属度矩阵a0,利用吸引度计算公式计算吸引度矩阵r1;再基于吸引度矩阵r1,利用归属度计算公式计算归属度矩阵a1;
步骤5.3、在第x次迭代时,先基于相似度矩阵s和归属度矩阵ax-1,利用吸引度计算公式计算吸引度矩阵rx;再判断扰动比特串b中的第x位是否为1,如果第x位为1,则先对吸引度矩阵rx进行拉普拉斯加噪后,再基于加噪后的吸引度矩阵rx,并利用归属度计算公式计算归属度矩阵ax;如果第x位为0,则直接基于吸引度矩阵rx,并利用归属度计算公式计算归属度矩阵ax;
步骤5.4、重复步骤5.3的过程,得到吸引度矩阵rx和归属度矩阵ax,则吸引度矩阵rx即为所求吸引度矩阵r,归属度矩阵ax即为所求归属度矩阵a。
步骤6、对于原始数据集的样本数据xi,将步骤5所得吸引度矩阵r第i行第i列的吸引度r(xi,xi)与步骤5所得归属度矩阵a的第i行第i列的归属度a(xi,xi)进行相加,如果r(xi,xi) a(xi,xi)的值大于0,则将样本数据xi视为聚类中心点;否则,将样本数据xi视为普通聚类点。
步骤7、对于每个普通聚类点,先基于吸引度矩阵r和归属度矩阵a,计算该普通聚类点与各个聚类中心点的亲和度值,其中亲和度值等于普通聚类点与聚类中心点的吸引度值与归属度值之和,再将普通聚类点分配给亲和度值最大的聚类中心点所在的簇中,由此完成聚类。
假设筛选出了3个聚类中心点c1,c2,c3,我们对于剩下的所有非聚类中心点,如样本数据点xi,则利用吸引度矩阵r和归属度矩阵a,得到(xi,c1)的亲和度值a(xi,c1) r(xi,c1)、(xi,c2)的亲和度值a(xi,c2) r(xi,c2)、(xi,c3)的亲和度值a(xi,c3) r(xi,c3)。选取三个亲和度值中最大的值,假设a(xi,c1) r(xi,c1)值最大,则将样本数据点xi分配给聚类中心点c1所在的簇中,其余点以此类推。
步骤8、将步骤7所得到的聚类输出。
上述θ%为设定值;i,k=1,2,…,n,i≠k,n为原始数据集的样本数据个数;x=1,2,…,x,x为迭代次数。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。
1.亲和传播聚类的差分隐私保护方法,其特征是,包括步骤如下:
步骤1、计算原始数据集中每两个不同样本数据之间的距离,以得到每两个不同样本数据之间的相似度,并据此构建出非完整的相似度矩阵s′;
步骤2、对步骤1的非完整的相似度矩阵s′中的对角相似度进行补全,由此得到完整的相似度矩阵s;即:
步骤2.1、分别计算原始数据集中的每个样本数据的密度值,并根据密度值对原始数据集中的样本数据进行降序排序;
步骤2.2、将密度值排在前θ%的样本数据作为第一类样本数据,其余的样本数据作为第二类样本数据;
步骤2.3、将非完整的相似度矩阵s′中所有相似度的最大值作为第一类样本数据的相似度,并将非完整的相似度矩阵s′中所有相似度的平均值作为第二类样本数据的相似度;
步骤2.4、基于步骤2.3所得到的每个样本数据的相似度,对步骤1的非完整的相似度矩阵s′的对角相似度进行补全,由此得到完整的相似度矩阵s;
步骤3、初始化吸引度矩阵r′和归属度矩阵a′,其中吸引度矩阵r′的吸引度初值为全0,归属度矩阵a′的归属度初值为全0;
步骤4、先设定最大迭代次数x和扰动概率参数f;再基于最大迭代次数x,构建一个长度为x的全0的初始比特串b′;后基于扰动概率参数f,对初始比特串b′进行prr机制扰动,得到扰动比特串b;
步骤5、基于步骤2的相似度矩阵s和步骤4的扰动比特串b,对步骤3的吸引度矩阵r′和归属度矩阵a′进行x次迭代,得到吸引度矩阵r和归属度矩阵a;即:
步骤5.1、先基于相似度矩阵s和归属度矩阵a′,利用吸引度计算公式计算初始的吸引度矩阵r0;再基于初始的吸引度矩阵r0,利用归属度计算公式计算初始的归属度矩阵a0;
步骤5.2、在第1次迭代时,先基于相似度矩阵s和上一次迭代的归属度矩阵a0,利用吸引度计算公式计算当前吸引度矩阵r1;再基于当前吸引度矩阵r1,利用归属度计算公式计算归属度矩阵a1;
步骤5.3、在第x次迭代时,先基于相似度矩阵s和上一次迭代的归属度矩阵ax-1,利用吸引度计算公式计算当前吸引度矩阵rx;再判断扰动比特串b中的第x位是否为1:如果第x位为1,则先对当前吸引度矩阵rx进行拉普拉斯加噪,得到当加噪后的吸引度矩阵rx′,再基于当加噪后的吸引度矩阵rx′,并利用归属度计算公式计算当归属度矩阵ax;如果第x位为0,则直接基于当吸引度矩阵rx,并利用归属度计算公式计算当归属度矩阵ax;
步骤5.4、重复步骤5.3的过程,得到最终的吸引度矩阵rx和最终的归属度矩阵ax,此时吸引度矩阵rx即为所求吸引度矩阵r,归属度矩阵ax即为所求归属度矩阵a;
步骤6、对于原始数据集的第i个样本数据将步骤5所得吸引度矩阵r第i行第i列的吸引度值与步骤5所得归属度矩阵a的第i行第i列的归属度值进行相加,如果相加所得的值大于0,则将该样本数据视为聚类中心点;否则,将该样本数据视为普通聚类点;
步骤7、对于每个普通聚类点,先基于吸引度矩阵r和归属度矩阵a,计算该普通聚类点与各个聚类中心点的亲和度值,其中亲和度值等于普通聚类点与聚类中心点的吸引度值与归属度值之和,再将普通聚类点分配给亲和度值最大的聚类中心点所在的簇中,由此完成聚类;
步骤8、将步骤7所得到的聚类输出;
上述θ%为设定值;i=1,2,...,n,n为原始数据集的样本数据个数;x=1,2,...,x,x为迭代次数。
2.根据权利要求1所述的亲和传播聚类的差分隐私保护方法,其特征是,所有相似度矩阵、所有吸引度矩阵和所有归属度矩阵的大小为n×n,其中n为原始数据集的样本数据个数。
3.根据权利要求1所述的亲和传播聚类的差分隐私保护方法,其特征是,步骤2中,θ%的取值为5%~10%之间。
4.根据权利要求1所述的亲和传播聚类的差分隐私保护方法,其特征是,样本数据
式中,
5.根据权利要求1所述的亲和传播聚类的差分隐私保护方法,其特征是,样本数据
式中,