一种获取最终用户ID的数据处理系统的制作方法


一种获取最终用户id的数据处理系统
技术领域
1.本发明涉及数据处理领域,特别是涉及一种获取最终用户id的数据处理系统。


背景技术:



2.联邦学习是一种新兴的人工智能基础技术,其目的是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私,在多参与方或多计算结点之间展开高效率的机器学习。联邦学习系统架构由加密样本对齐、加密模型训练、效果激励三部分组成,加密样本对齐是指数据拥有方在不公开各自数据的前提下确定双方的共有用户,并且不暴露不互相重叠的用户。在现有技术中,完成加密样本对齐可以采用基于bind rsa和哈希算法的解决方案、基于diffie-hellman的方案、基于ot和oprf的实现等各种实现方案,但现有技术的实现对于数据量较大的样本处理效率比较低,占用的内存空间大。


技术实现要素:



3.针对上述技术问题,本发明采用的技术方案为:
4.一种获取最终用户id的数据处理系统,系统包括数据库、处理器和存储有计算机程序的存储器,存储器中存储有哈希函数列表b={b1,

,bj,

,bn},bj是指哈希函数列表中第j个哈希函数,j的取值范围是1到n,n是指哈希函数的数量;其中,bj≠b
j+1
;当处理器执行一段计算机程序时,执行如下步骤:
5.s100,获取原始用户id列表e={e1,

,eg,

,ez},eg是指第g个用户id,g的取值范围是1到z,z是原始用户id的数量;
6.s200,将e通过哈希函数列表b生成对应的第一中间哈希值列表e

={e
′1,

,e
′g,

,e
′z},e
′g={e

g1


,e

gj


,e

gn
},e

gj
是指eg通过bj生成的哈希值;
7.s300,基于e

,将布隆过滤器对应的点位变成“1”;
8.s400,获取目标用户id列表a={a1,

,ai,

,am},ai是指目标用户id列表中第i个用户id,i的取值范围是1到m,m是指目标用户id的数量;
9.s500,将a通过哈希函数列表b生成对应的第二中间哈希值列表a

={a
′1,

,a
′i,

,a
′m},a
′i={a

i1


,a

ij


,a

in
},a

ij
是指eg通过bj生成的哈希值;
10.s600,当a
′i对应布隆过滤器的点位均为“1”时,将ai标记为最终用户id并基于a

获取最终用户id列表。
11.本发明至少具有以下有益效果:
12.最终用户id是指两个数据提供方中的相同的用户id,同时在原始用户id在进行完哈希函数后生成的哈希值映射到布隆过滤器,目标用户id在经过哈希函数后第二中间哈希值和布隆过滤器中进行匹配,当第二中间哈希值对应布隆过滤器的点位均为“1”时,将ai标记为最终用户id;本发明在不公开数据提供方的其它的数据的情况下,到两个数据提供方的共有用户id,且使用哈希函数生成哈希值的方法,使得在数据的存储占用空间更小,同时使用布隆过滤器,将哈希值映射到布隆过滤器中,使得在目标用户和原始用户匹配过程
中,匹配的效率更高。
附图说明
13.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明实施例提供的一种获取最终用户id的数据处理系统执行计算机程序的流程图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.实施例一
17.本实施例一提供了一种获取最终用户id的数据处理系统,所述系统包括数据库、处理器和存储有计算机程序的存储器,存储器中存储有哈希函数列表b={b1,

,bj,

,bn},bj是指哈希函数列表中第j个哈希函数,j的取值范围是1到n,n是指哈希函数的数量;其中,bj≠b
j+1
;当处理器执行一段计算机程序时,执行如下步骤,如图1所示:
18.s100,获取原始用户id列表e={e1,

,eg,

,ez},eg是指第g个原始用户id,g的取值范围是1到z,z是原始用户id的数量。
19.具体地,所述原始用户id用于表征原始用户身份的唯一标识,其中,所述原始用户是指数据拥有方提供的用户的信息数据。
20.s200,将e通过哈希函数列表b生成对应的第一中间哈希值列表e

={e
′1,

,e
′g,

,e
′z},e
′g={e

g1


,e

gj


,e

gn
},e

gj
是指eg通过bj生成的哈希值。
21.具体地,本领域技术人员知晓,任何一种将用户id通过哈希函数映射成哈希值的方法均属于本发明保护范围。
22.具体地,本领域技术人员知晓,哈希函数将任意长度的原始用户id压缩成一个长度固定的值e

gj
,e

gj
称为哈希值,从而,对于原始用户id计算通过哈希函数计算出哈希值较为容易,同时如果在给定哈希值和对应的哈希函数,并不能计算出对应的原始用户id,也就是说无法从哈希值倒推回原始用户id,保证了原始用户id的安全性和保密性。
23.更进一步的,当原始用户id列表通过哈希函数列表生成哈希值时,不同的原始用户id通过同一哈希函数可能会生成同一哈希值,产生哈希碰撞。
24.在本发明一实施例中,eg通过哈希函数bj生成哈希值e

gj
,当e

gj
在哈希表中对应的位置x1已经存储时,以x1为基础,产生第二个哈希地址x2,将e

gj
存入x2。
25.在本发明一实施例中,按照正向顺序查看哈希表中下一个位置,直到到一个空的哈希地址作为e

gj
对应的哈希地址。
26.在本发明另一实施例中,在哈希表x1的左右进行判断是否为空的哈希地址,可以
理解为,在x1的左侧第一个哈希地址进行判断是否为空的哈希地址,当左侧第一个哈希地址不为空的哈希地址时,判断x1右侧第一个哈希地址是否为空的哈希地址,直至到一个空的哈希地址作为e

gj
对应的哈希地址。
27.在本发明另一个实施例中,通过生成一个随机数,判断第一个随机数所在的哈希地址是否为空的哈希地址,当第一个随机数所在的哈希地址不为空的哈希地址时,判断第二个随机数所在的哈希地址是否为空的哈希地址,直到到一个空的哈希地址作为e

gj
对应的哈希地址。
28.具体地,通过硬件随机数生成器生成随机数,每次生成的随机数都是真正的随机数,但因为物理因素,生成的时间较慢。
29.在本发明另一个实施例中,通过伪随机数生成算法生成随机数,每次生成的随机数是随机的,但还是遵循生成算法的规则,在输入同一个值下,生成的随机数序列相同,但生成随机数的速度快,例如c库中提供的rand函数。
30.因此,想要伪随机数生成算法真正实现随机,需要控制伪随机数的种子是真正的随机数,所以先使用真随机数生成种子,然后使用伪随机数生成算法,既保证生成速度,又保证生成的序列是真正的随机数。
31.因此,将原始用户id通过哈希函数b生成对应的第一中间哈希值,不同原始id通过同一哈希函数可能会生成相同的哈希值,产生哈希碰撞,因此在产生哈希碰撞时,通过按照正向顺序判断哈希表中下一个位置,或者基于第一个哈希位置的左右位置进行判断,或者通过产生随机数确定哈希位置,避免发生哈希碰撞,使得哈希值对应的用户id不准确。
32.s300,基于e

,将布隆过滤器对应的点位变成“1”。
33.具体地,布隆过滤器的数据结构是一个长度为l的bit数组,bit数组中每个点位默认为0,eg通过哈希函数bj生成e

gj
,布隆过滤器中对应e

gj
的点位变成“1”,因此将第一中间哈希值列表中对应的第一中间哈希值映射到布隆过滤器,布隆过滤器对应的点位由“0”变成“1”。
34.更进一步地,l满足如下条件:l》m,l》z。
35.s400,获取目标用户id列表a={a1,

,ai,

,am},ai是指目标用户id列表中第i个用户id,i的取值范围是1到m,m是指目标用户id的数量。
36.具体地,所述目标用户id用于表征目标用户身份的唯一标识,其中,所述目标用户是指另一个数据拥有方的目标用户的信息数据。
37.s500,将a通过哈希函数列表b生成对应的第二中间哈希值列表a

={a
′1,

,a
′i,

,a
′m},a
′i={a

i1


,a

ij


,a

in
},a

ij
是指eg通过bj生成的哈希值。
38.s600,当a
′i对应布隆过滤器的点位均为“1”时,将ai标记为最终用户id并基于a

获取最终用户id列表。
39.可以理解为,最终用户id是指两个数据提供方中的相同的用户id,同时在原始用户id在进行完哈希函数后生成的哈希值映射到布隆过滤器,目标用户id在经过哈希函数后第二中间哈希值和布隆过滤器中进行匹配,当第二中间哈希值对应布隆过滤器的点位均为“1”时,将ai标记为最终用户id;本发明在不公开数据提供方的其它的数据的情况下,到两个数据提供方的共有用户id,且使用哈希函数生成哈希值的方法,使得在数据的存储占用空间更小,同时使用布隆过滤器,将哈希值映射到布隆过滤器中,使得在目标用户和原始
用户匹配过程中,匹配的效率更高。
40.进一步地,当a
′i对应布隆过滤器的点位均为“1”时,对应的值ai可能不在,因此可能会发生误判,对本发明进行如下步骤,得到误差率p:
41.布隆过滤器的长度l,哈希函数的个数n,插入布隆过滤器的原始id的数量z,误差率p存在如下关系:
42.l=-z*lnp/(ln2)243.n=l*ln2/z;
44.由此可以得到:p=e-l*(ln2)2/z

45.当布隆过滤器的长度l过小时,布隆过滤器的所有bit位很快会被置为“1”,这意味着查询任何值都会返回“可能存在”,这在之后就达不到原始用户id和目标用户id匹配的作用,这说明,布隆过滤器的长度越小,其误差率就越高,布隆过滤器的长度越长,误差率越低;
46.当哈希函数的个数k越大,通过哈希函数生成的哈希值越多,那么布隆过滤器的bit位会迅速填满,也就是布隆过滤器bit位置为“1”的速度就越快,且在进行原始用户和目标用户匹配时,匹配的效率会越低,如果哈希函数个数k越小,布隆过滤器中bit位置为“1”的速度就会越慢,但是误差率也会提高;
47.更进一步的,p≤3%。
48.通过布隆过滤器的长度l,哈希函数的个数n,插入布隆过滤器的原始id的数量z,误差率p之间的关系,设定合适的布隆过滤器的长度和哈希函数的个数,从而保证出现的误差率小于等于3%。
49.虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

技术特征:


1.一种获取最终用户id的数据处理系统,其特征在于,所述系统包括数据库、处理器和存储有计算机程序的存储器,存储器中存储有哈希函数列表b={b1,

,b
j


,b
n
},b
j
是指哈希函数列表中第j个哈希函数,j的取值范围是1到n,n是指哈希函数的数量;其中,b
j
≠b
j+1
;当处理器执行一段计算机程序时,执行如下步骤:s100,获取原始用户id列表e={e1,

,e
g


,e
z
},e
g
是指第g个用户id,g的取值范围是1到z,z是原始用户id的数量;s200,将e通过哈希函数列表b生成对应的第一中间哈希值列表e

={e
′1,

,e

g


,e

z
},e

g
={e

g1


,e

gj


,e

gn
},e

gj
是指e
g
通过b
j
生成的哈希值;s300,基于e

,将布隆过滤器对应的点位变成“1”;s400,获取目标用户id列表a={a1,

,a
i


,a
m
},a
i
是指目标用户id列表中第i个用户id,i的取值范围是1到m,m是指目标用户id的数量;s500,将a通过哈希函数列表b生成对应的第二中间哈希值列表a

={a
′1,

,a

i


,a

m
},a

i
={a
i1


,a

ij


,a

in
},a

ij
是指e
g
通过b
j
生成的哈希值;s600,当a

i
对应布隆过滤器的点位均为“1”时,将a
i
标记为最终用户id并基于a

获取最终用户id列表。2.根据权利要求1所述的获取最终用户id的数据处理系统,其特征在于,获取布隆过滤器的长度l。3.根据权利要求2所述的获取最终用户id的数据处理系统,其特征在于,l>m。4.根据权利要求2所述的获取最终用户id的数据处理系统,其特征在于,l>z。5.根据权利要求2所述的获取最终用户id的数据处理系统,其特征在于,获取误差率p,p=e-l*(ln2)2/z
。6.根据权利要求5所述的获取最终用户id的数据处理系统,其特征在于,p≤5%。7.根据权利要求6所述的获取最终用户id的数据处理系统,其特征在于,p≤3%。8.根据权利要求2所述的获取最终用户id的数据处理系统,其特征在于,布隆过滤器的长度l、哈希函数的数量n、原始用户id的数量z满足下述条件:n=l*ln2/z。9.根据权利要求1所述的获取最终用户id的数据处理系统,其特征在于,所述原始用户id用于表征原始用户身份的唯一标识。10.根据权利要求1所述的获取最终用户id的数据处理系统,其特征在于,所述目标用户id用于表征目标用户身份的唯一标识。

技术总结


本发明提供了一种获取最终用户ID的数据处理系统,所述系统包括数据库、处理器和存储有计算机程序的存储器,存储器中存储有哈希函数列表,当处理器执行一段计算机程序时,执行如下步骤:获取原始用户ID列表;将原始用户ID通过哈希函数列表生成对应的第一中间哈希值列表;基于第一中间哈希值,将布隆过滤器对应的点位变成“1”;获取目标用户ID列表;将目标用户ID通过哈希函数列表生成对应的第二中间哈希值列表;当对应布隆过滤器的点位均为“1”时,标记为最终用户ID;使得在数据的存储占用空间更小,匹配的效率更高。匹配的效率更高。匹配的效率更高。


技术研发人员:

张静雅 张波

受保护的技术使用者:

北京云真信科技有限公司

技术研发日:

2022.08.25

技术公布日:

2022/11/22

本文发布于:2024-09-23 05:26:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/20322.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:用户   函数   是指   过滤器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议