发明内容
本发明的目的在于提供一种面向边缘计算的数据采集隐私保护方法,以解决现有技术中的问题。
为实现上述目的,本发明提供如下技术方案:
一种面向边缘计算的数据采集隐私保护方法,通过包括用户端、边缘节点、以及中心服务器的系统实现,当用户端所有用户数据映射至各个边缘节点时,针对所有边缘节点执行以下步骤:
步骤Ⅰ、针对每个边缘节点对应的用户,按照预设比例数量随机划分为用户组A、用户组B、用户组C三组,进行数据的分组交互;
针对用户组A,从用户组A对应的用户私有集中随机获取一个键值对<k,v>,键 k、值v分别对应一种用户属性,对用户组A中键k进行哈希值计算并对哈希值进行扰动,将扰动值、以及哈希函数上传至边缘节点,随后进入步骤Ⅱ;
步骤Ⅱ、分别针对各个边缘节点值域内键k,遍历拥有键k的用户,筛选出所有符合候选条件的用户,对应生成筛选向量,并将筛选向量发送至中心服务器;
中心服务器接收所有边缘节点对应的筛选向量后,对筛选向量进行聚合,生成候选集;
步骤Ⅲ、随机选取用户组B中的任一用户私有集与所述步骤Ⅱ中获得的候选集取交集,得到交集长度,获得交集长度对应的扰动值,将扰动值上传至边缘节点,更新边缘节点中的数据,生成筛选向量,并将筛选向量发送至中心服务器,对筛选向量进行聚合,获取用户私有集的填充长度;
步骤Ⅳ、针对用户组C,将用户组C中的用户私有集长度处理成与填充长度一致的集合,从集合中随机获取一个键值对<k,v*>,对键值对中的v*进行离散,并更新键值对,获得待上传键值对,随后进入步骤Ⅴ;
步骤Ⅴ、将待上传键值对转换为一维向量并进行二次扰动,将二次扰动后的一维向量发送至中心服务器,计算键k在候选集中出现的频率,以及与键k对应的v的均值。
进一步地,步骤Ⅰ中,对键值对中的键k进行哈希值计算并对哈希值进行扰动,包括以下步骤:
步骤Ⅰ-1、从哈希函数族中随机选取一个输出域为
的哈希函数H,得到键值对<k,v>中键k的哈希值为x=H(k);
步骤Ⅰ-2、将哈希值x通过以下公式(1),获得扰动值y:
式(1)中,Pr[]为概率,ε为本地差分隐私的隐私预算参数,M(x)为扰动函数。
进一步地,步骤Ⅱ具体包括以下步骤:
步骤Ⅱ-1、针对各个边缘节点对应的所有用户,结合步骤Ⅰ中用户上传的扰动值、以及哈希函数,筛选出符合候选条件的用户;
所述候选条件根据公式(2)计算:
c(k)=|{j|Hj(k)=yj}| (2)
式(2)具体表示为,根据上传至边缘节点的扰动值和哈希函数,对所有j个用户依次进行筛选,筛选出符合等式成立条件的用户,构成符合候选条件的用户集合,Hj(k)为第j个用户键k的哈希值,yj为Hj(k)的扰动值,c(k)为符合候选条件的用户j所组成的集合的长度;
步骤Ⅱ-2、边缘节点将公式(2)筛选出的用户对应的用户私有集组成筛选向量,并将筛选向量发送至中心服务器,中心服务器接收所有筛选向量,对筛选向量进行求和得到向量;
步骤Ⅱ-3、针对用户端值域内拥有键k的用户,根据公式(3)计算键k在对应边缘节点中的出现频数:
式(3)中,
为用户组A中与键k相关的键值对在边缘节点中的出现频数,n
A为用户组A中用户的数量,p=eε/e
ε+g-1;
步骤Ⅱ-4、对用户组A中每个键为k的键值对在边缘节点中的出现频率进行排序,将序列前2kt项的键k及其对应的值v取出,构成候选集,其中,kt为预设的筛选数量。
进一步地,步骤Ⅲ中,将用户组B的用户私有集与候选集生成交集S,结合公式(2)、以及公式(3),获得交集S中键为k的键值对在边缘节点中的出现频数
S的取值范围为1至2k
t,根据公式(4)获得交集S中各个元素的填充长度L:
获得最接近0.9的长度值作为填充长度L,填充长度L满足的条件为,填充长度L小于用户私有集和候选集的交集的长度。
进一步地,步骤Ⅳ中,包括以下步骤:
步骤Ⅳ-1、针对用户组C,获得用户组C对应的用户私有集与候选集的交集,比较交集长度和填充长度,当交集长度大于填充长度时,将用户私有集截成长度与填充长度相同的集合,并更新用户私有集;
当交集长度小于填充长度时,生成填充项对交集进行填充,并更新用户私有集,随后进入步骤Ⅳ-2;
步骤Ⅳ-2、从更新后的用户私有集中随机获取一个键值对<k,v*>,对键值对中的值v*进行离散,根据公式(5):
更新v*为v,获得经过离散后的待上传键值对<k,v>,w.p.为概率。
进一步地,步骤Ⅴ中,包括以下步骤:
步骤Ⅴ-1、对待上传键值对<k,v>中的各个属性进行二次扰动,将待上传的键值对<k,v>转换为由1、-1、0组成的一维向量,扰动方式为:
通过以下公式(6)对一维向量中键k所对应的值v进行二次扰动:
式(6)中,a=eε/eε+1;
分别对其它位的值v,通过以下公式(7)进行二次扰动:
式(7)中,y[v]为任意其它位的值v的属性扰动值,
步骤Ⅴ-2、将扰动后的向量发送至中心服务器;
步骤Ⅴ-3、统计中心服务器上所有用户候选集中的各个键k,以及用户候选集中1、-1的个数,分别记为n1、n2,根据公式(8)计算并修正键k在候选集中的出现频率:
式(8)中,
为键k在候选集中的出现频率,n
C为用户组C中的用户数量,L为填充长度;
根据公式(9)计算键k对应的值v的均值:
本发明所述一种面向边缘计算的数据采集隐私保护方法,采用以上技术方案与现有技术相比,具有以下技术效果:
本发明将聚合和估计的计算任务卸载到边缘节点,提高算法执行效率,同时生成候选集的方式对原始数据进行精确降维,提高结果估计的准确性,通过分组的方式完成各阶段估计任务从而避免了划分隐私预算带来的额外误差,相较于现有技术在大规模数据集上进行数据采集,本发明提供的技术方案在进行高频项的识别、频率估计、以及均值估计等一些任务计算中的准确率更高,相较于小数据集,也有更高的数据可用性。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图进行如下示例性的说明。
在本发明中参照附图来描述本发明的各方面,附图中示出了许多说明性实施例。本发明的实施例不局限于附图所示。应当理解,本发明通过上面介绍的多种构思和实施例,以及下面详细描述的构思和实施方式中的任意一种来实现,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
下面结合附图1-附图3所示,更加具体的描述本发明的实现。
结合图1所示的本发明示例性实施例的数据采集隐私保护方法的流程,一种面向边缘计算的数据采集隐私保护方法,通过包括用户端、边缘节点、以及中心服务器的系统实现,当用户端所有用户数据映射至各个边缘节点时,设置边缘节点个数为8,针对所有边缘节点执行以下步骤:
步骤Ⅰ、针对每个边缘节点对应的用户,按照预设比例数量随机划分为用户组A、用户组B、用户组C三组,进行数据的分组交互,如图2、3所示;
针对用户组A,从用户组A中的所有用户对应的用户私有集中随机获取一个键值对<k,v>,键k、值v分别对应商品编号、商品评价,用户私有集中包括多个键值对,每个用户对应唯一的键值对,在一个用户组成的集合中,同一个商品编号可以对应多个商品评价,对键k对应的商品编号进行哈希值计算并对哈希值进行扰动,将扰动值、以及哈希函数上传至边缘节点,随后进入步骤B;
用户组A对应的用户私有集样例如下:
u1={(2125,1.0)}
u2={(20,0.6),(48,1.0),(1244,1.0),(2696,0.6),(58,0.6)}
…
其中用户u1私有集只有一项,商品编号k为2125,商品评价v为1.0;用户u2的私有集则拥有5个项;
对键值对中的键k进行哈希值计算并对哈希值进行扰动,包括以下步骤:
步骤Ⅰ-1、从哈希函数族中随机选取一个哈希种子为0的哈希函数H,对应输出域为
得到键值对<213,1.0>中键k=213的哈希值为x=H(213)= 77;
步骤Ⅰ-2、将哈希值77通过公式(1),获得扰动值y=135:
其中,Pr[]为概率,ε为本地差分隐私的隐私预算参数,隐私预算参数ε控制隐私保护程度的大小,ε设置得越小,所添加的噪声越大,隐私保护程度越高。这里将隐私预算参数ε设为4;
将扰动值、以及哈希种子上传至边缘节点,具体发送的键值对为<135,0>。
步骤Ⅱ、分别针对各个边缘节点值域内的键k,遍历拥有键k的用户,筛选出所有符合候选条件的用户,对应生成筛选向量,并将筛选向量发送至中心服务器;
中心服务器接收所有边缘节点对应的筛选向量后,对筛选向量进行聚合,生成候选集,具体包括以下步骤:
步骤Ⅱ-1、针对各个边缘节点对应的所有用户,结合步骤Ⅰ中用户上传的扰动值、以及哈希函数,筛选出符合候选条件的用户;
所述候选条件根据公式(2)计算:
c(k)=|{j|Hj(k)=yj}| (2)
具体表示为,根据上传至边缘节点的扰动值和哈希函数,对所有j个用户依次进行筛选,筛选出符合等式成立条件的用户,构成符合候选条件的用户集合,Hj(k)为第j个用户键k的哈希值,yj为Hj(k)的扰动值,c(k)为符合候选条件的用户j所组成的集合的长度;
步骤Ⅱ-2、边缘节点将公式(2)筛选出的用户对应的用户私有集组成筛选向量,并将筛选向量发送至中心服务器,8个边缘节点发送的筛选向量如下:
[35,49,36,36,32,54,38,61,…,33,25,22]
[36,54,53,40,33,46,49,55,…,22,25,24]
[30,52,39,41,33,49,32,53,…,27,35,17]
…
[33,43,42,32,29,50,37,66,…,43,26,22]
中心服务器接收所有筛选向量,对筛选向量进行求和得到向量Z=[282,420,322,307,271,377,311,481,…,252,234,208];
步骤Ⅱ-3、针对用户端值域内拥有键k的用户,根据公式(3)计算键k在对应边缘节点中的出现频数:
其中,
为用户组A对应的键k在边缘节点中的出现频率,n
A为用户组A中所有用户数量,p=e
ε/e
ε+g-1;
k的频率估计如下:
[123.13215809432066,374.15166079217653,198.03313873803572,121.1078072661121 3,70.49903656089926,285.08022435100185,183.86268294057612,511.8075171103556,64.4 259840762737,117.05910560969511,…];
步骤Ⅱ-4、对用户组A中每个键为k的键值对在边缘节点中的出现频率进行排序,将序列前2kt项的键k取出,构成候选集,其中,kt为预设的筛选数量,候选集为:
[8,48,21,2,11,101,30,98,28,6,15,18,17,31,89,3,7,13,67,20,32,38,64,142, 93,1314,34,57,40,49,1731,1973,1,16,3236,3867,4410,4,80,24]。
步骤Ⅲ、随机选取用户组B中的任一用户私有集与所述步骤Ⅱ中获得的候选集取交集,得到交集长度,获得交集长度对应的扰动值,将扰动值上传至边缘节点,用户组B中某一用户私有集与候选集的交集为{101,1314},则交集长度为2,经过扰动,最终发送给边缘节点的键值对为<56,1>
更新边缘节点中的数据,生成筛选向量,并将筛选向量发送至中心服务器,对筛选向量进行聚合,获取用户私有集的填充长度,用户私有集的填充长度L=2,
将用户组B的用户私有集与候选集生成交集S,结合公式(2)、以及公式(3),获得交集S中键为k的键值对在边缘节点中的出现频数
S的取值范围为1至2k
t,根据公式(4)获得交集S中各个元素的填充长度L:
其中,获得最接近0.9的长度值作为填充长度L,填充长度L满足的条件为,填充长度始终小于用户私有集和候选集的交集的长度,即当填充长度为2时,至少有90%的用户私有集和候选集的交集长度大于填充长度2。
步骤Ⅳ、针对用户组C,将用户组C中的用户私有集长度处理成与填充长度一致的集合,从集合中随机获取一个键值对<k,v*>,对键值对中的v*进行离散,并更新键值对,获得待上传键值对,具体包括以下步骤:
步骤Ⅳ-1、针对用户组C,获得用户组C对应的用户私有集候选集的交集,比较交集长度和填充长度,当交集长度大于填充长度时,将用户私有集截成长度与填充长度相同的集合,并更新用户私有集;具体的,若用户组C中某用户交集 I={(1731,0.2),(21,1.0),(6,1.0)},I的大小大于2,因此截断,变成 S′={(1731,0.2),(21,1.0)};
当交集长度小于填充长度时,生成填充项对交集进行填充,并更新用户私有集,随后进入步骤Ⅳ-2,具体的,若用户组C中某用户交集为空集,生成L-|I|个填充项,使用填充项将I填充为长度为L的集合S′;
步骤Ⅳ-2、从更新后的用户私有集中随机获取一个键值对<5851,0>,对值0对应的值v*进行离散,根据公式(5):
更新0为1,w.p.为概率,获得经过离散后的待上传键值对<5851,1>,随后进入步骤Ⅴ。
步骤Ⅴ、将待上传键值对转换为一维向量并进行二次扰动,将二次扰动后的一维向量发送至中心服务器,计算键k在候选集中出现的频率,以及与键k对应的v的均值;
步骤Ⅴ-1、将待上传键值对<5851,1>中的各个属性通过二次扰动,转换为由1、 -1、0组成的一维向量,<5851,1>对应的向量为[0,0,0,…,1,0],第5851位为1,其余为0,扰动方式为:
对第5851位的键值对中的值v,通过公式(6)进行二次扰动:
其中,a=eε/eε+1;
对其它位的值v,通过以下公式(7)进行二次扰动:
步骤Ⅴ-2、将扰动后的向量[0,0,0,…,-1,0]发送至中心服务器;
步骤-3、统计中心服务器上所有用户候选集中的各个键k,以及对应第k位1、-1的个数,分别记为n1、n2,根据公式(8)计算并修正键k在候选集中的出现频率:
其中,
为键k在候选集中的出现频率,n
C为用户组C中的用户数量,L为填充长度;
根据公式(9)计算键k对应的值v的均值:
具体的,对于候选集C中的key,其频率估计结果
为:[0.016364325567077113,0.013912581994899044,0.011460838422720989,0.011460838422720989,0.0085420960748 89963,0.012861834749679878,0.010643590565328305,0.0073745991357575492,0.0130953 34137506359,…];
[1.0349043247097953,0.46372580983681078,1.2364304722633681,1.07559398806650 71,1.2677814124865838,0.81511605084822936,0.99581954441337772,0.718621806593896 74,0.16715447001752318,…]。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。