本技术涉及计算机,尤其涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术:
1、在联邦模型中,由第一参与方输入第一秘密算术分片,第二参与方输入第二秘密算术分片,通过第一秘密算术分片与第二秘密算术分片共同参与训练联邦模型,联邦模型的训练过程中,涉及浮点数的两方分片除法(即第一秘密算术分片与第二秘密算术分片的分片除法)是一个重要的基本运算。
2、现有的两方分片除法是基于goldschmidt(近似除法)实现的,goldschmidt通过对两方分片除法中的除数与被除数分配迭代系数,进行倒数运算逼近,该方法在对秘密分片进行应用时,若浮点数编码所使用的拉伸因子比较大,或者第一秘密算术分片比较大、或者第二秘密算术分片比较大,那么在goldschmidt针对第一秘密算术分片进行迭代时,很容易导致越界,所生成的倒数分片也会过大,倒数分片与第二秘密算术分片进行两方分片乘法时,也会导致越界,从而将分片运算的整数环结构扩大,带来至少翻倍的计算时间开销。
3、为避免越界,现有技术会降低拉伸因子,从而导致两方分片除法的精度大大降低,另一方面,将倒数分片与第二算术秘密分片直接相乘,计算复杂度高,计算速度慢。
技术实现思路
1、本技术实施例提供了一种数据处理方法、装置、设备及可读存储介质,可以提高联邦模型计算服务的计算精度和计算速度。
2、本技术实施例一方面提供了一种数据处理方法,包括:
3、获取第一业务数据对应的第一秘密算术分片,获取第二业务数据对应的第二秘密算术分片,对第一秘密算术分片进行分片放缩,得到第一秘密算术分片对应的第一放缩算术分片以及第一放缩因子;第一秘密算术分片由第一参与方输入,第二秘密算术分片由第二参与方输入;第一业务数据与第二业务数据共同参与训练针对第一参与方与第二参与方的联邦模型;第一放缩因子具有p个比特位,p为正整数;
4、基于第一放缩因子和第一放缩算术分片生成第一秘密算术分片对应的倒数因子分片;
5、获取第一放缩因子中每个比特位上的比特单位分片,基于拉伸因子将p个比特单位分片分别与倒数因子分片进行分片选择运算,得到p个选择算术分片,对p个选择算术分片进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片;
6、对第二秘密算术分片和还原倒数算术分片进行分片乘法运算,得到目标秘密算术分片;目标秘密算术分片用于为联邦模型提供针对第一业务数据与第二业务数据的计算服务。
7、其中,p个比特单位分片包括c个第一比特单位分片和d个第二比特单位分片,p个选择算术分片包括c个第一选择算术分片和d个第二选择算术分片;d为拉伸因子的数值,c为p与拉伸因子之间的差值;
8、获取第一放缩因子中p个比特单位分片,基于拉伸因子,将p个比特单位分片分别与倒数因子分片进行分片选择运算,得到p个选择算术分片,对p个选择算术分片进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片,包括:
9、基于拉伸因子,获取第一放缩因子中的c个第一比特单位分片以及d个第二比特单位分片,对c个第一比特单位分片分别与倒数因子分片进行分片选择运算,得到c个第一选择算术分片,对d个第二比特单位分片分别与倒数因子分片进行分片选择运算,得到d个第二选择算术分片;c个第一比特单位分片在第一放缩因子中的比特位均高于划分比特位;划分比特位是指d个第二比特单位分片在第一放缩因子中的最高比特位;
10、通过c个第一选择算术分片对应的第一还原因子与d个第二选择算术分片对应的第二还原因子,生成第一秘密算术分片对应的还原倒数算术分片。
11、其中,c个第一比特单位分片包括第一比特单位分片,为第一放缩因子中的第i个比特位的比特单位分片,i为正整数;
12、对c个第一比特单位分片分别与倒数因子分片进行分片选择运算,得到c个第一选择算术分片,包括:
13、对第一比特单位分片与倒数因子分片进行分片选择运算;
14、若第一比特单位分片为第一布尔值,则将倒数因子分片确定为第一比特单位分片对应的第一选择算术分片;
15、若第一比特单位分片为第二布尔值,则将第一布尔值确定为第一比特单位分片对应的第一选择算术分片。
16、其中,通过c个第一选择算术分片对应的第一还原因子与d个第二选择算术分片对应的第二还原因子生成第一秘密算术分片对应的还原倒数算术分片,包括:
17、将c个第一选择算术分片的分片加法运算的运算结果确定为第一还原因子;
18、将d个第二选择算术分片的分片加法运算的运算结果确定为待裁剪因子,基于拉伸因子对待裁剪因子的比特位进行裁剪,得到第二还原因子;
19、对第一还原因子和第二还原因子进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片。
20、其中,获取第一业务数据对应的第一秘密算术分片,包括:
21、获取第一业务数据,基于第一业务数据的位宽长度确定拉伸因子;
22、基于拉伸因子对第一业务数据进行浮点数编码,得到拉伸编码值,对拉伸编码值进行算术分片处理,得到第一秘密算术分片和交互算术分片;拉伸编码值是整数环中的元素,第一秘密算术分片与交互算术分片的分片加法运算的运算结果为拉伸编码值;交互算术分片用于提供给第二参与方。
23、其中,对第一秘密算术分片进行分片放缩,得到第一秘密算术分片对应的第一放缩算术分片第一放缩因子以及第一放缩因子,包括:
24、对第一秘密算术分片进行分片符号运算,得到第一秘密算术分片的第一分片符号;
25、基于第一分片符号,确定第一秘密算术分片对应的第一绝对值算术分片和第一放缩因子;
26、对第一放缩因子与第一绝对值算术分片进行分片乘法运算,得到第一秘密算术分片对应的第一放缩算术分片,对第一放缩因子进行布尔转换运算,得到第一秘密算术分片对应的第一放缩因子。
27、其中,基于第一分片符号,确定第一秘密算术分片对应的第一放缩因子,包括:
28、基于第一分片符号,确定第一秘密算术分片的第一绝对值算术分片,将第一绝对值算术分片转换为第一绝对值布尔分片,获取第一绝对值布尔分片的第一目标比特分片;第一目标比特分片为第一绝对值布尔分片中的目标比特位对应的布尔分片;目标比特位是指第一绝对值布尔分片中数值为1的比特位中的最高比特位;
29、基于拉伸因子,对第一目标比特分片进行比特反转,得到第一秘密算术分片对应的第一放缩因子;第一放缩因子具有e个比特位,第一目标比特分片具有g个比特位,g为正整数,e为拉伸因子的两倍数值与g之间的差值。
30、其中,基于第一放缩因子和第一放缩算术分片生成第一秘密算术分片对应的倒数因子分片,包括:
31、基于第一放缩因子和第一放缩算术分片,确定第一秘密算术分片对应的初始倒数因子,基于初始倒数因子和第一放缩算术分片,确定第一秘密算术分片对应的初始迭代因子,通过初始倒数因子和初始迭代因子,迭代生成第一秘密算术分片对应的迭代算术分片;
32、基于迭代算术分片与第一分片符号,生成第一秘密算术分片对应的倒数因子分片;第一分片符号是对第一秘密算术分片进行分片符号运算所得到的。
33、其中,通过初始倒数因子和初始迭代因子,迭代生成第一秘密算术分片对应的迭代算术分片,包括:
34、获取迭代次数阈值;迭代次数阈值是基于联邦模型的计算服务的精度所确定的次数阈值;
35、基于初始倒数因子和初始迭代因子,生成更新倒数因子,将初始迭代因子的分片乘法运算的运算结果确定为更新迭代因子,基于更新倒数因子和更新迭代因子继续确定新的更新倒数因子和新的更新迭代因子,直至迭代次数达到迭代次数阈值,将迭代次数达到迭代次数阈值的倒数因子,确定为第一秘密算术分片对应的迭代算术分片。
36、其中,对第二秘密算术分片和还原倒数算术分片进行分片乘法运算,得到目标秘密算术分片,包括:
37、对第二秘密算术分片进行分片放缩,得到第二秘密算术分片对应的第二分片符号、第二目标比特分片和第二放缩算术分片;第二放缩算术分片是基于第二放缩因子与第二秘密算术分片所确定的;第二目标比特分片是第二秘密算术分片对应的第二绝对值布尔分片的目标比特位对应的布尔分片;目标比特位是指第二绝对值布尔分片中数值为1的比特位中的最高比特位;
38、对还原倒数算术分片与第二放缩算术分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号和第二分片符号,生成待修正算术分片的修正算术分片,基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标秘密算术分片。
39、其中,基于第二目标比特分片中每个比特位对应的单位目标比特因子与所述目标还原算术分片,生成目标秘密算术分片,包括:
40、基于拉伸因子,获取第二目标比特分片中的c个第一目标比特因子以及d个第二目标比特因子,对c个第一目标比特因子分别与目标还原算术分片进行分片选择运算,得到c个第一选择还原分片,对d个第二目标比特因子分别与目标还原算术分片进行分片选择运算,得到d个第二选择还原分片;c个第一目标比特因子在第二目标比特分片中的比特位均高于放缩比特位;放缩比特位是指d个第二目标比特因子在第二目标比特分片中的最高比特位;d为拉伸因子的数值,c为p与拉伸因子之间的差值;
41、通过c个第一选择还原分片对应的第一目标因子与d个第二选择还原分片对应的第二目标因子,生成目标秘密算术分片。
42、其中,联邦模型为纵向联邦模型;
43、对还原倒数算术分片与第二放缩算术分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号和第二分片符号,生成待修正算术分片的修正算术分片,基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标秘密算术分片,包括:
44、对第二放缩算术分片进行分片乘法运算,得到第二放缩平方分片,对还原倒数算术分片与第二放缩平方分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号,生成待修正算术分片的修正算术分片;
45、基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标基础算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标基础算术分片,生成目标秘密算术分片;目标秘密算术分片用于为联邦模型提供针对第一业务数据与第二业务数据的计算服务,计算服务用于确定纵向联邦模型的最优分裂结果或叶子节点权重。
46、本技术实施例一方面提供了一种数据处理装置,包括:
47、分片放缩模块,用于获取第一业务数据对应的第一秘密算术分片,获取第二业务数据对应的第二秘密算术分片,对第一秘密算术分片进行分片放缩,得到第一秘密算术分片对应的第一放缩算术分片以及第一放缩因子;第一秘密算术分片由第一参与方输入,第二秘密算术分片由第二参与方输入;第一业务数据与第二业务数据共同参与训练针对第一参与方与第二参与方的联邦模型;第一放缩因子具有p个比特位,p为正整数;
48、倒数迭代模块,用于基于第一放缩因子和第一放缩算术分片生成第一秘密算术分片对应的倒数因子分片;
49、倒数还原模块,用于获取第一放缩因子中每个比特位上的比特单位分片,基于拉伸因子将p个比特单位分片分别与倒数因子分片进行分片选择运算,得到p个选择算术分片,对p个选择算术分片进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片;
50、分片处理模块,用于对第二秘密算术分片和还原倒数算术分片进行分片乘法运算,得到目标秘密算术分片;目标秘密算术分片用于为联邦模型提供针对第一业务数据与第二业务数据的计算服务。
51、在一种可能的实现方式中,p个比特单位分片包括c个第一比特单位分片和d个第二比特单位分片,p个选择算术分片包括c个第一选择算术分片和d个第二选择算术分片;d为拉伸因子的数值,c为p与拉伸因子之间的差值;倒数还原模块用于获取第一放缩因子中p个比特单位分片,基于拉伸因子,将p个比特单位分片分别与倒数因子分片进行分片选择运算,得到p个选择算术分片,对p个选择算术分片进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片时,具体用于执行以下操作:
52、基于拉伸因子,获取第一放缩因子中的c个第一比特单位分片以及d个第二比特单位分片,对c个第一比特单位分片分别与倒数因子分片进行分片选择运算,得到c个第一选择算术分片,对d个第二比特单位分片分别与倒数因子分片进行分片选择运算,得到d个第二选择算术分片;c个第一比特单位分片在第一放缩因子中的比特位均高于划分比特位;划分比特位是指d个第二比特单位分片在第一放缩因子中的最高比特位;
53、通过c个第一选择算术分片对应的第一还原因子与d个第二选择算术分片对应的第二还原因子,生成第一秘密算术分片对应的还原倒数算术分片。
54、在一种可能的实现方式中,c个第一比特单位分片包括第一比特单位分片,为第一放缩因子中的第i个比特位的比特单位分片,i为正整数;倒数还原模块用于对c个第一比特单位分片分别与倒数因子分片进行分片选择运算,得到c个第一选择算术分片时,具体用于执行以下操作:
55、对第一比特单位分片与倒数因子分片进行分片选择运算;
56、若第一比特单位分片为第一布尔值,则将倒数因子分片确定为第一比特单位分片对应的第一选择算术分片;
57、若第一比特单位分片为第二布尔值,则将第一布尔值确定为第一比特单位分片对应的第一选择算术分片。
58、在一种可能的实现方式中,倒数还原模块用于通过c个第一选择算术分片对应的第一还原因子与d个第二选择算术分片对应的第二还原因子生成第一秘密算术分片对应的还原倒数算术分片时,具体用于执行以下操作:
59、将c个第一选择算术分片的分片加法运算的运算结果确定为第一还原因子;
60、将d个第二选择算术分片的分片加法运算的运算结果确定为待裁剪因子,基于拉伸因子对待裁剪因子的比特位进行裁剪,得到第二还原因子;
61、对第一还原因子和第二还原因子进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片。
62、在一种可能的实现方式中,分片放缩模块用于获取第一业务数据对应的第一秘密算术分片时,具体用于执行以下操作:
63、获取第一业务数据,基于第一业务数据的位宽长度确定拉伸因子;
64、基于拉伸因子对第一业务数据进行浮点数编码,得到拉伸编码值,对拉伸编码值进行算术分片处理,得到第一秘密算术分片和交互算术分片;拉伸编码值是整数环中的元素,第一秘密算术分片与交互算术分片的分片加法运算的运算结果为拉伸编码值;交互算术分片用于提供给第二参与方。
65、在一种可能的实现方式中,分片放缩模块用于对第一秘密算术分片进行分片放缩,得到第一秘密算术分片对应的第一放缩算术分片第一放缩因子以及第一放缩因子时,具体用于执行以下操作:
66、对第一秘密算术分片进行分片符号运算,得到第一秘密算术分片的第一分片符号;
67、基于第一分片符号,确定第一秘密算术分片对应的第一绝对值算术分片和第一放缩因子;
68、对第一放缩因子与第一绝对值算术分片进行分片乘法运算,得到第一秘密算术分片对应的第一放缩算术分片,对第一放缩因子进行布尔转换运算,得到第一秘密算术分片对应的第一放缩因子。
69、在一种可能的实现方式中,分片放缩模块用于基于第一分片符号,确定第一秘密算术分片对应的第一放缩因子时,具体用于执行以下操作:
70、基于第一分片符号,确定第一秘密算术分片的第一绝对值算术分片,将第一绝对值算术分片转换为第一绝对值布尔分片,获取第一绝对值布尔分片的第一目标比特分片;第一目标比特分片为第一绝对值布尔分片中的目标比特位对应的布尔分片;目标比特位是指第一绝对值布尔分片中数值为1的比特位中的最高比特位;
71、基于拉伸因子,对第一目标比特分片进行比特反转,得到第一秘密算术分片对应的第一放缩因子;第一放缩因子具有e个比特位,第一目标比特分片具有g个比特位,g为正整数,e为拉伸因子的两倍数值与g之间的差值。
72、在一种可能的实现方式中,倒数迭代模块用于基于第一放缩因子和第一放缩算术分片生成第一秘密算术分片对应的倒数因子分片时,具体用于执行以下操作:
73、基于第一放缩因子和第一放缩算术分片,确定第一秘密算术分片对应的初始倒数因子,基于初始倒数因子和第一放缩算术分片,确定第一秘密算术分片对应的初始迭代因子,通过初始倒数因子和初始迭代因子,迭代生成第一秘密算术分片对应的迭代算术分片;
74、基于迭代算术分片与第一分片符号,生成第一秘密算术分片对应的倒数因子分片;第一分片符号是对第一秘密算术分片进行分片符号运算所得到的。
75、在一种可能的实现方式中,倒数迭代模块用于通过初始倒数因子和初始迭代因子,迭代生成第一秘密算术分片对应的迭代算术分片时,具体用于执行以下操作:
76、获取迭代次数阈值;迭代次数阈值是基于联邦模型的计算服务的精度所确定的次数阈值;
77、基于初始倒数因子和初始迭代因子,生成更新倒数因子,将初始迭代因子的分片乘法运算的运算结果确定为更新迭代因子,基于更新倒数因子和更新迭代因子继续确定新的更新倒数因子和新的更新迭代因子,直至迭代次数达到迭代次数阈值,将迭代次数达到迭代次数阈值的倒数因子,确定为第一秘密算术分片对应的迭代算术分片。
78、在一种可能的实现方式中,分片处理模块用于对第二秘密算术分片和还原倒数算术分片进行分片乘法运算,得到目标秘密算术分片时,具体用于执行以下操作:
79、对第二秘密算术分片进行分片放缩,得到第二秘密算术分片对应的第二分片符号、第二目标比特分片和第二放缩算术分片;第二放缩算术分片是基于第二放缩因子与第二秘密算术分片所确定的;第二目标比特分片是第二秘密算术分片对应的第二绝对值布尔分片的目标比特位对应的布尔分片;目标比特位是指第二绝对值布尔分片中数值为1的比特位中的最高比特位;
80、对还原倒数算术分片与第二放缩算术分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号和第二分片符号,生成待修正算术分片的修正算术分片,基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标秘密算术分片。
81、在一种可能的实现方式中,分片处理模块用于基于第二目标比特分片中每个比特位对应的单位目标比特因子与所述目标还原算术分片,生成目标秘密算术分片时,具体用于执行以下操作:
82、基于拉伸因子,获取第二目标比特分片中的c个第一目标比特因子以及d个第二目标比特因子,对c个第一目标比特因子分别与目标还原算术分片进行分片选择运算,得到c个第一选择还原分片,对d个第二目标比特因子分别与目标还原算术分片进行分片选择运算,得到d个第二选择还原分片;c个第一目标比特因子在第二目标比特分片中的比特位均高于放缩比特位;放缩比特位是指d个第二目标比特因子在第二目标比特分片中的最高比特位;d为拉伸因子的数值,c为p与拉伸因子之间的差值;
83、通过c个第一选择还原分片对应的第一目标因子与d个第二选择还原分片对应的第二目标因子,生成目标秘密算术分片。
84、在一种可能的实现方式中,联邦模型为纵向联邦模型;分片处理模块用于对还原倒数算术分片与第二放缩算术分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号和第二分片符号,生成待修正算术分片的修正算术分片,基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标秘密算术分片时,具体用于执行以下操作:
85、对第二放缩算术分片进行分片乘法运算,得到第二放缩平方分片,对还原倒数算术分片与第二放缩平方分片进行分片乘法运算,得到待修正算术分片,基于第一分片符号,生成待修正算术分片的修正算术分片;
86、基于第一放缩因子中每个比特位对应的比特单位分片与修正算术分片,生成目标还原算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标还原算术分片,生成目标基础算术分片,基于第二目标比特分片中每个比特位对应的单位目标比特因子与目标基础算术分片,生成目标秘密算术分片;目标秘密算术分片用于为联邦模型提供针对第一业务数据与第二业务数据的计算服务,计算服务用于确定纵向联邦模型的最优分裂结果或叶子节点权重。
87、本技术实施例一方面提供了一种计算机设备,包括:处理器、存储器以及网络接口;
88、处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本技术实施例提供的方法。
89、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本技术实施例提供的方法。
90、本技术实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本技术实施例提供的方法。
91、本技术实施例通过获取第一业务数据对应的第一秘密算术分片,获取第二业务数据对应的第二秘密算术分片,对第一秘密算术分片进行分片放缩,得到第一秘密算术分片对应的第一放缩算术分片,避免了因为第一秘密算术分片过大而导致的越界,通过第一放缩算术分片对应的第一放缩因子和第一放缩算术分片迭代计算第一秘密算术分片对应的倒数因子分片,获取第一放缩因子中每个比特位上的比特单位分片,基于拉伸因子将p个比特单位分片分别与倒数因子分片进行分片选择运算,得到p个选择算术分片,对p个选择算术分片进行分片加法运算,得到第一秘密算术分片对应的还原倒数算术分片,通过还原倒数算术分片逼近第一算术秘密分片的倒数,对第二秘密算术分片和还原倒数算术分片进行分片乘法运算,得到目标秘密算术分片,可以将第一放缩算术分片与第二秘密算术分片的分片乘法,转换为第二秘密算术分片和还原倒数算术分片的分片乘法运算,而还原倒数算术分片是通过第一放缩因子中每个比特位上的比特单位分片,分别与倒数因子分片进行分片选择运算得到的,避免了第一放缩算术分片与第二秘密算术分片直接进行分片乘法而产生的越界问题,从而无需调整拉伸因子来避免越界,提高了联邦模型针对第一业务数据与第二业务数据的计算服务的计算精度,将第一放缩因子拆分为比特单位分片进行分片选择运算,计算复杂度低,从而提高了联邦模型计算服务的计算速度,避免了计算机处理器因分片乘法运算的越界,将整数环结构扩大而带来的成倍计算开销,提高了计算效率。