一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种参数更新方法、数据处理方法及相关设备与流程

2022-10-13 03:05:54 来源:中国专利 TAG:


1.本技术实施例涉及通信技术领域,尤其涉及一种参数更新方法、数据处理方法及相关设备。


背景技术:

2.联邦学习是指参与机器学习的各方在不泄露隐私数据的情况下,完成模型的训练过程。这里的不泄露隐私数据,包括原始数据、训练过程中的间接数据,这些间接数据可以推导出原始数据(如梯度信息)。逻辑回归是常用的机器学习算法,目前存在将逻辑回归进行联邦改造的案例。其中,同态加密是用来保护隐私数据不被泄露的技术手段。
3.以两个节点参与的逻辑回归为例描述模型训练过程。首先,第一节点持有一部分特征a和标签,第二节点持有另一部分特征b,两个节点分别要保护自己的特征、标签以及模型训练中的梯度信息。在模型训练阶段,第二节点将模型与特征b的内积发送给第一节点。第一节点计算模型与特征a的内积,第一节点再使用本侧得到的内积与接收到的内积共同计算梯度信息,进而更新模型。
4.然而,在模型的迭代过程中,随着拟合的跟进,尤其是第一节点没有特征或者特征较少的情况下,第二节点有一定概率可以猜测出第一节点处标签的真实值,导致信息泄露的问题。


技术实现要素:

5.本技术实施例提供了一种参数更新方法,可以通过第一设备初始化整个模型,并将第二参数同态加密后发给第二设备。且后续第一设备发送给第二设备的误差也是同态加密后的。第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。
6.本技术实施例第一方面提供了一种参数更新方法,可以应用于联邦学习场景。该方法可以由第一设备执行,也可以由第一设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:获取第一信息,第一信息包括:模型的第一参数、模型的第二参数、第一数据以及训练数据的标签值,训练数据包括第一数据与第二设备处的第二数据;将同态加密后的第二参数发送给第二设备;基于第一数据与第一参数生成第一向量;获取第二向量,第二向量与同态加密后的第二参数相关;基于第一向量与第二向量确定模型的预测值;基于第一数据与误差计算第一梯度,并使用第一梯度更新第一参数,误差为第一数据的标签值与预测值的差值;将同态加密后的误差发送给第二设备,以使得第二设备使用同态加密后的误差更新同态加密后的第二参数,第一参数与同态加密后的第二参数用于实现隐私计算任务。
7.本技术实施例中,一方面,第一设备初始化整个模型,并将第二参数同态加密后发给第二设备。且后续第一设备发送给第二设备的误差也是同态加密后的。即,第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。另一方
面,相较于现有技术中使用随机数掩饰梯度的步骤,本技术实施例中第二设备持有的第二参数始终是密文的,即第二设备持有的始终是密文状态下的分量,无需现有技术中使用随机数掩饰梯度的步骤。此外,通过该种方式还可以实现第一设备与第二设备对隐私计算任务的联合推理。
8.可选地,上述步骤:获取第二向量,包括:接收第二设备发送的第二向量密文,第二向量密文由第二数据与同态加密后的第二参数生成;解密第二向量密文以得到第二向量。
9.可选地,上述步骤还包括:获取公钥与私钥,私钥用于解密使用公钥加密的数据;向第二设备发送公钥,公钥用于第二设备生成第二向量密文。
10.该种可能的实现方式中,通过第一设备使用公钥进行同态加密,使用私钥进行同态解密。第二设备使用公钥进行同态加密。通过公钥与私钥的配合,一方面,可以提升第一设备与第二设备之间传输的数据隐私安全。另一方面,可以提升第一设备处的数据防止第二设备解密获取,减少第二设备获取第一设备处明文数据的可能。
11.本技术实施例第二方面提供了一种参数更新方法,可以应用于联邦学习场景。该方法可以由第二设备执行,也可以由第二设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:获取第二数据;接收第一设备发送的模型的第二参数密文;基于第二数据与第二参数密文生成第二向量密文;向第一设备发送第二向量密文;接收第一设备发送的误差密文,误差密文由第二向量密文处理得到;基于误差密文更新第二参数密文,第二参数密文用于实现隐私计算任务。
12.本技术实施例中,一方面,由第一设备初始化整个模型,并接收第一设备发送的第二参数密文。且后续第二设备接收第一设备发送的也是同态加密后的误差。第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。另一方面,相较于现有技术中使用随机数掩饰梯度的步骤,本技术实施例中第二设备持有的第二参数始终是密文的,即第二设备持有的始终是密文状态下的分量,无需现有技术中使用随机数掩饰梯度的步骤。
13.可选地,上述步骤还包括:接收第一设备发送的公钥,公钥用于同态加密;基于第二数据与第二参数密文生成第二向量密文,包括:基于公钥、第二数据以及第二参数密文生成第二向量密文。
14.该种可能的实现方式中,通过第一设备使用公钥进行同态加密,使用私钥进行同态解密。第二设备使用公钥进行同态加密。通过公钥与私钥的配合,一方面,可以提升第一设备与第二设备之间传输的数据隐私安全。另一方面,可以提升第一设备处的数据防止第二设备解密获取,减少第二设备获取第一设备处明文数据的可能。
15.本技术实施例第三方面提供了一种参数更新方法,可以应用于联邦学习场景。该方法可以由第一设备执行,也可以由第一设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:获取第一标识密文,第一标识密文为同态加密后的第一标识,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;向第二设备发送第一标识密文,第一标识密文用于第二设备计算第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;接收第二设备发送的第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据;或者,查询结果包括第一密
文与向量密文;第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,向量密文用于第一设备确定第一标识的最终预测结果。该最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。
16.本技术实施例中,由于第一设备发送给第二设备的是第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合查询或联合预测场景下各方的隐私安全。
17.可选地,上述在查询结果包括第一密文与第二密文,且第一密文用于指示第二设备存储有第三子数据的情况下,方法还包括:解密第二密文以得到第三子数据。
18.该种可能的实现方式中,在第一密文指示第二设备存储有第三子数据的情况下,第一设备可以通过解密第二密文获取第三子数据,提升第一设备查询的效率。
19.可选地,上述在查询结果包括第一密文与向量密文,且第一密文用于指示第二设备存储有第三子数据的情况下,方法还包括:解密向量密文以得到第二预测结果;基于第一子数据获取第一预测结果;基于第一预测结果与第二预测结果确定第一标识的最终预测结果。
20.该种可能的实现方式中,在第一密文指示第二设备存储有第三子数据的情况下,第一设备可以根据解密向量密文获取的一个预测分量与本地数据获取的另一个预测分量,确定第一标识的最终预测结果。进而提升第一设备与第二设备进行联合预测的效率。
21.可选地,上述步骤还包括:若第一密文为0,确定第二设备存储有第三子数据。
22.该种可能的实现方式中,在第二设备存储的第二标识密文包括第一标识密文的情况下,可以通过第一密文进行同态解密后数值为0,方便第一设备确定第二设备存储有第三子数据。
23.可选地,上述步骤还包括:若第一密文不为0,确定第二设备未存储有第三子数据。
24.该种可能的实现方式中,在第二设备存储的第二标识密文不包括第一标识密文的情况下,可以通过第一密文进行同态解密后数值不为0,方便第一设备确定第二设备未存储有第三子数据。
25.本技术实施例第四方面提供了一种参数更新方法,可以应用于联邦学习场景。该方法可以由第二设备执行,也可以由第二设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:构建映射关系,映射关系用于表示第二标识密文与数据密文之间的对应关系,第二标识密文是第二标识同态加密后的密文,第二标识用于指示第二设备存储的第二子数据,数据密文是第二子数据同态加密后的密文;接收第一设备发送的第一标识密文,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;基于第一标识密文与第二标识密文确定第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;基于第一密文与映射关系确定第二密文或向量密文;第一密文用于指示第二设备是否存储有第三子数据;在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据,向量密文用于第一设备确定第一标识的最终预测结果,最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到;向第一设备发送第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;或者,查询结果包括第一密文与
向量密文。
26.本技术实施例中,由于第二设备接收的是第一设备发送的第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合查询或联合预测场景下各方的隐私安全。
27.可选地,上述步骤基于第一标识密文与第二标识密文确定第一密文,包括:将第二标识密文中的各标识密文分别与第一标识密文相减,并使用各相减后的结果相乘以得到第一密文。
28.该种可能的实现方式中,通过上述计算得到的第一密文,可以使得第一设备解密第一密文之后,基于第一密文是否为0快速确定出第二设备是否存储有第三子数据。例如,在第二设备存储的第二标识密文包括第一标识密文的情况下,可以通过第一密文进行同态解密后数值为0,方便第一设备确定第二设备存储有第三子数据。
29.本技术实施例第五方面提供了一种第一设备,可以应用于联邦学习场景。该第一设备包括:获取单元,用于获取第一信息,第一信息包括:模型的第一参数、模型的第二参数、第一数据以及训练数据的标签值,训练数据包括第一数据与第二设备处的第二数据;发送单元,用于将同态加密后的第二参数发送给第二设备;生成单元,用于基于第一数据与第一参数生成第一向量;获取单元,还用于获取第二向量,第二向量与同态加密后的第二参数相关;确定单元,用于基于第一向量与第二向量确定模型的预测值;计算单元,用于基于第一数据与误差计算第一梯度,并使用第一梯度更新第一参数,误差为第一数据的标签值与预测值的差值;发送单元,还用于将同态加密后的误差发送给第二设备,以使得第二设备使用同态加密后的误差更新同态加密后的第二参数,第一参数与同态加密后的第二参数用于实现隐私计算任务。
30.可选地,上述的获取单元,具体用于接收第二设备发送的第二向量密文,第二向量密文由第二数据与同态加密后的第二参数生成;获取单元,具体用于解密第二向量密文以得到第二向量。
31.可选地,上述的获取单元,还用于获取公钥与私钥,私钥用于解密使用公钥加密的数据;发送单元,还用于向第二设备发送公钥,公钥用于第二设备生成第二向量密文。
32.本技术实施例第六方面提供了一种第二设备,可以应用于联邦学习场景。该第二设备包括:获取单元,用于获取第二数据;接收单元,用于接收第一设备发送的模型的第二参数密文;生成单元,用于基于第二数据与第二参数密文生成第二向量密文;发送单元,用于向第一设备发送第二向量密文;接收单元,还用于接收第一设备发送的误差密文,误差密文由第二向量密文处理得到;更新单元,用于基于误差密文更新第二参数密文,第二参数密文用于实现隐私计算任务。
33.可选地,上述的接收单元,还用于接收第一设备发送的公钥,公钥用于同态加密;生成单元,具体用于基于公钥、第二数据以及第二参数密文生成第二向量密文。
34.本技术实施例第七方面提供了一种第一设备,可以应用于联邦学习场景。该第一设备包括:获取单元,用于获取第一标识密文,第一标识密文为同态加密后的第一标识,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;发送单元,用于向第
二设备发送第一标识密文,第一标识密文用于第二设备计算第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;接收单元,用于接收第二设备发送的第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据;或者,查询结果包括第一密文与向量密文;第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,向量密文用于第一设备确定第一标识的最终预测结果。最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。
35.可选地,上述在查询结果包括第一密文与第二密文,且第一密文用于指示第二设备存储有第三子数据的情况下,第一设备还包括:解密单元,用于解密第二密文以得到第三子数据。
36.可选地,上述在查询结果包括第一密文与向量密文,且第一密文用于指示第二设备存储有第三子数据的情况下,获取单元,还用于基于第一子数据获取第一预测结果;第一设备还包括:解密单元,用于解密向量密文以得到第二预测结果;确定单元,用于基于第一预测结果与第二预测结果确定第一标识的最终预测结果。
37.本技术实施例第八方面提供了一种第二设备,可以应用于联邦学习场景。该第二设备包括:构建单元,用于构建映射关系,映射关系用于表示第二标识密文与数据密文之间的对应关系,第二标识密文是第二标识同态加密后的密文,第二标识用于指示第二设备存储的第二子数据,数据密文是第二子数据同态加密后的密文;接收单元,用于接收第一设备发送的第一标识密文,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;确定单元,用于基于第一标识密文与第二标识密文确定第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;确定单元,还用于基于第一密文与映射关系确定第二密文或向量密文;第一密文用于指示第二设备是否存储有第三子数据;在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据,向量密文用于第一设备确定第一标识的最终预测结果,最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到;发送单元,用于向第一设备发送第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;或者,查询结果包括第一密文与向量密文。
38.可选地,上述的确定单元,具体用于将第二标识密文中的各标识密文分别与第一标识密文相减,并使用各相减后的结果相乘以得到第一密文。
39.本技术第九方面提供了一种第一设备,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该第一设备实现上述第一方面或第一方面的任意可能的实现方式中的方法,或者使得该第一设备实现上述第三方面或第三方面的任意可能的实现方式中的方法。
40.本技术第十方面提供了一种第二设备,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该第二设备实现上述第二方面或第二方面的任意可能的实现方式中的方法,使得该第二设备实现上述第四方面或第四方面的任意可能的实现方式中的方法。
41.本技术第十一方面提供了一种通信系统,包括:上述第九方面的第一设备,和/或上述第十方面的第二设备。
42.本技术第十二方面提供了一种计算机可读介质,其上存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法,或者使得计算机执行前述第二方面或第二方面的任意可能的实现方式中的方法,或者使得计算机执行前述第三方面或第三方面的任意可能的实现方式中的方法,或者使得计算机执行前述第四方面或第四方面的任意可能的实现方式中的方法。
43.本技术第十三方面提供了一种计算机程序产品,该计算机程序产品在计算机上执行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法,使得计算机执行前述第二方面或第二方面的任意可能的实现方式中的方法,使得计算机执行前述第三方面或第三方面的任意可能的实现方式中的方法,使得计算机执行前述第四方面或第四方面的任意可能的实现方式中的方法。
44.从以上技术方案可以看出,本技术实施例具有以下优点:第一设备初始化整个模型,并将第二参数同态加密后发给第二设备。且后续第一设备发送给第二设备的误差也是同态加密后的。即,第二设备在参数更新的过程中使用的是密文,进而降低第二设备猜出标签值的风险,解决了信息泄露的问题。另外,由于第一设备发送给第二设备的是第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合查询或联合预测场景下各方的隐私安全。
附图说明
45.图1为本技术实施例提供的参数更新方法的一个流程示意图;图2为本技术实施例提供的数据处理方法的另一个流程示意图;图3为本技术实施例提供的数据处理方法的另一个流程示意图;图4为本技术实施例提供的第一设备的一个结构示意图;图5为本技术实施例提供的第二设备的一个结构示意图;图6为本技术实施例提供的第一设备的另一个结构示意图;图7为本技术实施例提供的第二设备的另一个结构示意图;图8为本技术实施例提供的第一设备的另一个结构示意图;图9为本技术实施例提供的第二设备的另一个结构示意图。
具体实施方式
46.为了便于理解,下面先对本技术实施例主要涉及的相关术语和概念进行介绍。
47.1、联邦学习联邦学习是指参与机器学习的各方在不泄露隐私数据的情况下,完成模型的训练过程。这里的不泄露隐私数据,包括原始数据、训练过程中的间接数据,这些间接数据可以推导出原始数据(如梯度信息)。
48.2、同态加密同态加密是指:原数据u1和u2进行加密得到[u1]和[u2]。运用同态加密可以得到。
[u1] u2=[u1 u2];[u1] [u2]=[u1 u2];[u1]*u2=[u1*u2];[u1]*[u2]=[u1*u2];即在密文状态下进行乘法运算和加法运算,得到的密文结果。解密后与不在加密状态下运算的结果一致。本技术实施例中对于一个n,[ ]表示同态加密,同态加密后的n可以记作[n]。
[0049]
下面对本技术实施例提供的参数更新方法进行详细的介绍。该方法可以由第一设备/第一设备的部件(例如处理器、芯片、或芯片系统等)执行。也可以由第二设备/第二设备的部件(例如处理器、芯片、或芯片系统等)执行。当然,该方法还可以由第一设备与第二设备构成的系统执行。该方法可以应用于联邦学习场景,请参阅图1,本技术实施例提供的参数更新方法的一个流程示意图,该方法可以包括步骤101至步骤111。下面对步骤101至步骤111进行详细说明。
[0050]
步骤101,第一设备获取第一信息。
[0051]
本技术实施例中第一设备获取第一信息的方式有多种,可以是通过基于用户操作获取第一信息的方式,也可以是通过接收其他设备发送的方式,还可以是从数据库中选取的方式等,具体此处不做限定。
[0052]
本技术实施例中的第一信息包括:模型的第一参数()、模型的第二参数()、第一数据()以及训练数据()的标签值,训练数据包括第一数据()与第二设备处的第二数据()。其中,与也可以理解为是模型的两个分量。第一数据可以是第一设备处的本地数据。
[0053]
本步骤也可以理解为,第一设备初始化整个模型。
[0054]
步骤102,第二设备获取第二数据。
[0055]
本技术实施例中,第二设备获取第二数据的方式与前述第一设备获取第一信息的方式类似,也可以是基于用户操作(例如,拍摄图像、录制语音、上传文本等)的方式、接收其他设备发送的方式、数据库中选取的方式等。具体此处不做限定。
[0056]
可选地,第二数据可以是第二设备处的本地数据。
[0057]
步骤103,第一设备将同态加密后的第二参数发送给第二设备。
[0058]
第一设备获取第一信息之后,将同态加密后的第二参数发送给第二设备。相应的,第二设备接收第一设备发送的同态加密后的第二参数。其中,同态加密后的第二参数可以称为第二参数密文。
[0059]
该步骤中,第二设备获取的是加密后的第二参数密文。换句话说,第二设备持有的始终是密文状态下模型的分量。
[0060]
步骤104,第二设备基于第二数据与第二参数密文生成第二向量密文。
[0061]
第二设备接收第一设备发送的第二参数密文之后,可以基于第二数据与第二参数密文生成第二向量密文。
[0062]
具体的,第二向量密文由第二数据与第二参数密文相乘得到。
[0063]
可选地,本步骤的表达式可以是:。其中,表示第二向量密文,表示第二参数密文,表示第二数据(即第二设备的本地数据)。
[0064]
步骤105,第二设备向第一设备发送第二向量密文。
[0065]
第二设备生成第二向量密文之后,向第一设备发送第二向量密文。相应的,第一设备接收第二设备发送的第二向量密文。
[0066]
步骤106,第一设备获取第二向量。
[0067]
本技术实施例中,第一设备获取第二向量的方式有多种,可以通过解密上述步骤105中接收到的第二向量密文的方式获取,也可以通过其他方式获取,具体此处不做限定。
[0068]
其中,该第二向量与同态加密后的第二参数相关。具体的,该第二向量由上述的第二向量密文解密得到。
[0069]
步骤107,第一设备基于第一数据与第一参数生成第一向量。
[0070]
第一设备基于第一数据与第一参数生成第一向量。具体的,第一向量由第一数据与第一参数相乘得到。
[0071]
可选地,本步骤的表达式可以是:。其中,表示第一向量,表示第一参数,表示第一数据(即第一设备的本地数据)。
[0072]
步骤108,第一设备基于第一向量与第二向量确定模型的预测值。
[0073]
第一设备获取第一向量与第二向量之后,可以基于第一向量与第二向量确定模型的预测值。
[0074]
具体的,第一向量与第二向量相加以得到预测值。
[0075]
可选地,本步骤的表达式可以是:表示预测值,表示第一向量,表示第二向量。
[0076]
步骤109,第一设备基于第一数据与误差计算第一梯度,并使用第一梯度更新第一参数。
[0077]
第一设备获取预测值之后,可以基于第一数据与误差计算第一梯度,并使用该第一梯度更新第一参数。
[0078]
具体的,先计算第一数据的标签值与预测值的差值以得到误差。再将第一数据与误差相乘以得到第一梯度,并使用该第一梯度更新第一参数。
[0079]
可选地,本步骤中误差的表达式可以是:,。使用第一梯度更新第一参数的表达式可以是:=。
[0080]
步骤110,第一设备将同态加密后的误差发送给第二设备。
[0081]
第一设备获取误差之后,将同态加密后的误差发送给第二设备。相应的,第二设备接收第一设备发送的同态加密后的误差。其中,同态加密后的误差可以称为误差密文。
[0082]
可选地,本步骤中的误差密文的表达式可以是。
[0083]
步骤111,第二设备基于误差密文更新第二参数密文。
[0084]
第二设备接收到误差密文之后,使用该误差密文更新步骤103获取的第二参数密文。该更新后的第二参数密文与第一参数用于实现隐私计算任务(例如,分类、检测、定位、分割等)。即第一参数与同态加密后的第二参数用于实现隐私计算任务。
[0085]
可选地,本步骤中误差密文的表达式可以是:。使用误差密文更新第二参数密文的表达式可以是:。另外,对于更新过程中的停止条件可以是模型收敛,也可以是更新次数达到阈值等,具体此处不做限定。
[0086]
本实施例中的各个步骤之间可以没有时序限定。例如,本实施例中的步骤102可以在步骤101之前,也可以在步骤101之后。又例如,步骤107可以在步骤106之后,也可以在步骤103之前。
[0087]
本技术实施例中,一方面,第一设备初始化整个模型,并将第二参数同态加密后发给第二设备。且后续第一设备发送给第二设备的误差也是同态加密后的。即,第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。另一方面,相较于现有技术中使用随机数掩饰梯度的步骤,本技术实施例中第二设备持有的第二参数始终是密文的,即第二设备持有的始终是密文状态下的分量,无需现有技术中使用随机数掩饰梯度的步骤。此外,通过该种方式还可以实现第一设备与第二设备对隐私计算任务的联合推理。
[0088]
进一步的,为了提升数据的私密传输。第一设备在本实施例之前可以获取公钥和私钥,私钥用于解密使用公钥加密的数据。第一设备可以向第二设备发送公钥,该公钥用于第二设备生成第二向量密文。
[0089]
可选地,第一设备可以生成公钥和私钥,或者接收控制器发送的公钥和私钥。相应的,第二设备接收第一设备或控制器发送的公钥,该公钥用于同态加密。
[0090]
该种情况下,同态加密的计算需要用到该公钥。例如,前述图1所示实施例的步骤104中,第二设备基于公钥、第二数据以及第二参数密文生成第二向量密文。又例如,前述图1所示实施例的步骤106中,第一设备使用私钥对第二向量密文解密,以得到第二向量。又例如,前述图1所示实施例的步骤111中,第二设备基于私钥与误差密文更新第二参数密文。
[0091]
上面对本技术实施例提供的参数更新方法进行了描述,下面对本技术实施例提供的数据处理方法进行描述。或者理解为,图1所示的实施例是训练过程中的更新参数方法,图2所示的实施例是推理过程中的数据处理方法。
[0092]
下面对本技术实施例提供的数据处理方法进行详细的介绍。该方法可以由第一设备/第一设备的部件(例如处理器、芯片、或芯片系统等)执行。也可以由第二设备/第二设备的部件(例如处理器、芯片、或芯片系统等)执行。当然,该方法还可以由第一设备与第二设备构成的系统执行。该方法可以应用于联邦学习场景,请参阅图2,本技术实施例提供的数据处理方法的一个流程示意图,该方法可以包括步骤201至步骤206。下面对步骤201至步骤206进行详细说明。
[0093]
步骤201,第一设备获取第一标识密文。
[0094]
第一设备存储有第一子数据与模型的第一参数(也可以称为模型的一个分量)。第一设备获取第一标识,并对第一标识进行同态加密以得到第一标识密文。其中,第一设备获取第一标识的方式可以是用户输入的,也可以是其他设备发送的等等,具体此处不做限定。
[0095]
另外,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据。
[0096]
示例1,第一标识为李四,且第一标识同态加密后的密文为a。
[0097]
示例2,第一标识为孙七,且第一标识同态加密后的密文为z。
[0098]
步骤202,第一设备向第二设备发送第一标识密文。
[0099]
第一设备获取第一标识密文之后,向第二设备发送第一标识密文。相应的,第二设备接收第一设备发送的第一标识密文。该第一标识密文用于第二设备计算第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据。
[0100]
步骤203,第二设备构建映射关系。
[0101]
第二设备存储有第二子数据与模型的第二参数密文(也可以称为模型的另一个分量的密文)。
[0102]
第二设备构建映射关系,映射关系用于表示第二标识密文与数据密文之间的对应关系,该第二标识密文是第二标识同态加密后的密文,第二标识用于指示第二设备存储的第二子数据,数据密文是第二子数据同态加密后的密文。
[0103]
可选地,映射关系可以用映射函数c()表示,第二标识用id表示,第二标识密文用[id]表示,第二子数据用表示,数据密文用[]表示。则c([id])=[]。
[0104]
示例性的,第二标识与第二子数据如表1所示。
[0105]
表1用户姓名(第二标识)用户标签(第二子数据)张三1李四2王五3赵六4其中,c([张三])=[1],c([李四])=[2],c([王五])=[3],c([赵六])=[4]。
[0106]
步骤204,第二设备基于第一标识密文与第二标识密文确定第一密文。
[0107]
第二设备接收第一设备发送的第一标识密文之后,基于第一标识密文与第二标识密文确定第一密文。该第一密文用于第一设备确定第二设备是否存储有第三子数据。
[0108]
具体的,第二设备将第二标识密文分别与第一标识密文相减,并将相减后的结果相乘以得到第一密文。当然,为了提升隐私安全,上述相减后的结果相乘后还可以再乘以一个随机数以得到第一密文。
[0109]
在一种可能实现的方式中,若第二标识密文包括第一标识密文,则相减后相乘的结果为0。即说明第二标识密文中有标识密文与第一标识密文相同,即第二设备存储有第三子数据。或者说第二标识对应的第二子数据包括第三子数据。
[0110]
在另一种可能实现的方式中,若第二标识密文不包括第一标识密文,则相减后相乘的结果不为0。即说明第二标识密文中没有标识密文与第一标识密文的差值为0,即第二设备未存储有第三子数据。或者说第二标识对应的第二子数据不包括第三子数据。
[0111]
示例性的,延续上述示例1与表1,第一标识密文为[李四]。第一密文=随机数*(a-[张三])*(a-[李四])*(a-[王五])*(a-[赵六])=随机数*([李四]-[张三])*([李四]-[李四])*([李四]-[王五])*([李四]-[赵六])=0。
[0112]
示例性的,延续上述示例2与表1,第一标识密文为[孙七]。第一密文=随机数*(z-[张三])*(z-[李四])*(z-[王五])*(z-[赵六])=随机数*([孙七]-[张三])*([孙七]-[李四])*([孙七]-[王五])*([孙七]-[赵六])0。
[0113]
为了方便后续描述,第一密文可以称为b(a),a为第一标识密文,b()为上述的相减后相乘等操作。
[0114]
步骤205,第二设备基于第一密文与映射关系确定第二密文或向量密文。
[0115]
第二设备获取第一密文之后,可以基于第一密文与映射关系确定第二密文或向量密文。在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据。向量密文用于第一设备确定第一标识的最终预测结果。该最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。
[0116]
其中,该最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二
参数处理得到。其中,第二设备处模型的第二参数可以是同态加密后的第二参数(即可以结合图1所示实施例),也可以是明文的第二参数等,具体此处不做限定。
[0117]
本步骤中,基于第一设备发送第一标识密文的目的不同,获取的密文有所不同,下面分别描述。
[0118]
第一种,第一设备发送第一标识密文的目的是查询其他设备处与第一标识密文对应的第三子数据。第二设备基于第一密文与映射关系确定第二密文。
[0119]
该种情况下,本实施例可以理解为是数据查询场景,第一设备基于第一标识密文获取对应的查询结果。第二设备获取第一密文之后,再基于第一密文与映射关系确定第二密文。
[0120]
具体的,第二设备使用第一标识密文在映射关系关查找与第一标识密文对应的数据密文。并将查到的数据密文加上第一密文以得到第二密文。当然,为了提升隐私安全,也可以第一密文与随机数相乘后与查到的数据密文相加以得到第二密文。
[0121]
假设,第二密文记作d(a),则本步骤可以记作:d(a)=c(a) 随机数*b(a)。
[0122]
示例性的,延续上述示例1,d(a)=c(a) 随机数*b(a)=2 0=2。
[0123]
示例性的,延续上述示例2,d(z)=c(z) 随机数*b(z)=2 未知数=未知数。即该示例下,由于第二设备未存储有第三子数据,或者说第二设备存储的第二子数据不包括第三子数据,导致查询失败。
[0124]
第二种,第一设备发送第一标识密文的目的是查询其他设备处于第一标识密文对应的第三子数据的第二预测结果(即预测分量)。第二设备基于第一密文与映射关系确定向量密文(即预测分量)。
[0125]
该种情况下,本实施例可以理解为是数据预测场景,第一设备基于第一标识密文获取第二设备处该第一标识对应的预测结果分量。
[0126]
该种情况下,第二设备可以如上述第一种中计算第二密文的方式计算第二密文之后,使用本地存储的第二参数密文与第二密文相乘以得到第二预测结果。
[0127]
假设,第二密文记作d(a),第二参数密文记作为,向量密文记作。则。
[0128]
当然,若第一密文不为0,说明向量密文为无效值,预测失败。若第一密文为0,说明向量密文的明文为第二预测结果。
[0129]
步骤206,第二设备向第一设备发送第一标识密文对应的查询结果。
[0130]
第二设备向第一设备发送第一标识密文对应的查询结果。相应的,第一设备接收第二设备发送的第一标识密文对应的查询结果。
[0131]
本步骤与前述步骤205中的两个情况类似,查询结果也可以分为对应的两种情况,下面分别描述。
[0132]
第一种,查询结果包括第一密文与第二密文。
[0133]
该种情况下,查询结果包括第一密文与第二密文。第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据。
[0134]
第一设备接收第二设备发送的第一密文与第二密文之后。若解密第一密文为0,则确定第二设备存储有第三子数据,并解密第二密文以得到第三子数据。若解密第一密文不
为0,则说明第二设备未存储有第三子数据,即查询失败。
[0135]
示例性的,延续上述示例1与示例2,该分支的方法可以如图3所示。其中,图3中查询方为第一设备,被查询方为第二设备,标签为第二设备存储的第二子数据。
[0136]
第二种,查询结果包括第一密文与向量密文。
[0137]
该种情况下,查询结果包括第一密文与向量密文。第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,向量密文用于第一设备确定第一标识的最终预测结果。或者说向量密文为第一标识对应预测结果的一个分量。
[0138]
第一设备接收第二设备发送的第一密文与向量密文之后。若解密第一密文为0,则解密向量密文以得到第二预测结果。基于本地存储的第一子数据获取第一预测结果。再基于第二预测结果与第一预测结果确定第一标识的最终预测结果。若解密第一密文不为0,则说明第二设备不包括第三子数据,即推理失败。
[0139]
示例性的,下面举例描述:最终预测结果是如何根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。假设,向量密文记作,第一设备解密向量密文以得到第二向量(即第二预测结果),第一设备在使用本地的第一子数据与模型的第一参数计算得到第一预测结果。具体的,。并结合第一预测结果与第二预测结果得到第一标识对应的最终预测结果。例如,最终预测结果= 。
[0140]
本实施例中的各个步骤之间可以没有时序限定。例如,本实施例中的步骤203可以在步骤202之后,也可以在步骤201之前。
[0141]
本实施例也可以称为匿踪查询方法。本实施例中,由于第一设备发送给第二设备的是第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合查询或联合预测场景下各方的隐私安全。
[0142]
进一步的,为了提升数据的私密传输。第一设备在本实施例之前可以获取公钥和私钥,私钥用于解密使用公钥加密的数据。
[0143]
可选地,第一设备可以生成公钥和私钥,或者接收控制器发送的公钥和私钥。相应的,第二设备接收第一设备或控制器发送的公钥。
[0144]
该种情况下,同态加密的计算需要用到该公钥。例如,前述图2所示实施例的步骤203中,第二设备基于公钥构建映射关系。又例如,前述图2所示实施例的步骤204中,第二设备基于公钥、第一标识密文与第二标识密文确定第一密文。又例如,第一设备使用私钥解密以下一项或多项密文:第一密文、第二密文以及向量密文。
[0145]
上面对本技术实施例中的参数更新方法与数据处理方法进行了描述,下面对本技术实施例提供的方法中涉及的设备进行描述。
[0146]
请参阅图4,本技术实施例中第一设备的一个实施例包括:获取单元401,用于获取第一信息,第一信息包括:模型的第一参数、模型的第二参数、第一数据以及训练数据的标签值,训练数据包括第一数据与第二设备处的第二数据;发送单元402,用于将同态加密后的第二参数发送给第二设备;生成单元403,用于基于第一数据与第一参数生成第一向量;获取单元401,还用于获取第二向量,第二向量与同态加密后的第二参数相关;
确定单元404,用于基于第一向量与第二向量确定模型的预测值;计算单元405,用于基于第一数据与误差计算第一梯度,并使用第一梯度更新第一参数,误差为第一数据的标签值与预测值的差值;发送单元402,还用于将同态加密后的误差发送给第二设备,以使得第二设备使用同态加密后的误差更新同态加密后的第二参数。第一参数与同态加密后的第二参数用于实现隐私计算任务。
[0147]
本实施例中,第一设备中各单元所执行的操作与前述图1所示实施例中描述的类似,此处不再赘述。
[0148]
本实施例中,一方面,第一设备初始化整个模型,发送单元402将第二参数同态加密后发给第二设备。且后续发送单元402发送给第二设备的误差也是同态加密后的。即,第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。另一方面,相较于现有技术中使用随机数掩饰梯度的步骤,本技术实施例中第二设备持有的第二参数始终是密文的,即第二设备持有的始终是密文状态下的分量,无需现有技术中使用随机数掩饰梯度的步骤。此外,通过该种方式还可以实现第一设备与第二设备对隐私计算任务的联合推理。
[0149]
请参阅图5,本技术实施例中第二设备的一个实施例包括:获取单元501,用于获取第二数据;接收单元502,用于接收第一设备发送的模型的第二参数密文;生成单元503,用于基于第二数据与第二参数密文生成第二向量密文;发送单元504,用于向第一设备发送第二向量密文;接收单元502,还用于接收第一设备发送的误差密文,误差密文由第二向量密文处理得到;更新单元505,用于基于误差密文更新第二参数密文。第二参数密文用于实现隐私计算任务。
[0150]
本实施例中,第一设备中各单元所执行的操作与前述图2与图3所示实施例中描述的类似,此处不再赘述。
[0151]
本实施例中,一方面,由第一设备初始化整个模型,接收单元502接收第一设备发送的第二参数密文。且后续接收单元502接收第一设备发送的也是同态加密后的误差。第二设备在参数更新的过程中使用的是密文,从而降低第二设备猜出第一设备处标签值的风险。另一方面,相较于现有技术中使用随机数掩饰梯度的步骤,本技术实施例中第二设备持有的第二参数始终是密文的,即第二设备持有的始终是密文状态下的分量,无需现有技术中使用随机数掩饰梯度的步骤。
[0152]
请参阅图6,本技术实施例中第一设备的另一个实施例包括:获取单元601,用于获取第一标识密文,第一标识密文为同态加密后的第一标识,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;发送单元602,用于向第二设备发送第一标识密文,第一标识密文用于第二设备计算第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;接收单元603,用于接收第二设备发送的第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;第一密文用于指示第二设备是否存储有第三
子数据,在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据;或者,查询结果包括第一密文与向量密文;第一密文用于指示第二设备是否存储有第三子数据,在第二设备存储有第三子数据的情况下,向量密文用于第一设备确定第一标识的最终预测结果。最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。
[0153]
可选地,第一设备还可以包括:解密单元604,用于解密第二密文以得到第三子数据。
[0154]
可选地,获取单元601,还用于基于第一子数据获取第一预测结果;第一设备还包括:解密单元604,用于解密向量密文以得到第二预测结果;第一设备还可以包括:确定单元605,用于基于第一预测结果与第二预测结果确定第一标识的最终预测结果。
[0155]
本实施例中,第一设备中各单元所执行的操作与前述图1所示实施例中描述的类似,此处不再赘述。
[0156]
本实施例中,由于发送单元602发送给第二设备的是第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合查询或联合预测场景下各方的隐私安全。
[0157]
请参阅图7,本技术实施例中第二设备的另一个实施例包括:构建单元701,用于构建映射关系,映射关系用于表示第二标识密文与数据密文之间的对应关系,第二标识密文是第二标识同态加密后的密文,第二标识用于指示第二设备存储的第二子数据,数据密文是第二子数据同态加密后的密文;接收单元702,用于接收第一设备发送的第一标识密文,第一标识关联于第一设备处的第一子数据与其他设备处的第三子数据;确定单元703,用于基于第一标识密文与第二标识密文确定第一密文,第一密文用于第一设备确定第二设备是否存储有第三子数据;确定单元703,还用于基于第一密文与映射关系确定第二密文或向量密文;第一密文用于指示第二设备是否存储有第三子数据;在第二设备存储有第三子数据的情况下,第二密文为同态加密后的第三子数据,向量密文用于第一设备确定第一标识的最终预测结果;最终预测结果根据第一设备处模型的第一参数与第二设备处模型的第二参数处理得到。
[0158]
发送单元704,用于向第一设备发送第一标识密文对应的查询结果;查询结果包括第一密文与第二密文;或者,查询结果包括第一密文与向量密文。
[0159]
本实施例中,第一设备中各单元所执行的操作与前述图2与图3所示实施例中描述的类似,此处不再赘述。
[0160]
本实施例中,由于接收单元702接收的是第一设备发送的第一标识密文,在第一标识是第一设备的客户名字(例如,李四、孙七等)等信息的场景下,第二设备无法获知第一标识密文的明文(即客户名字:李四、孙七等)。且第二设备在计算第一密文、第二密文、向量密文的过程是在加密的场景下,减少第二设备猜测出第一设备处第一标识等信息。提升联合
查询或联合预测场景下各方的隐私安全。
[0161]
参阅图8,本技术提供的另一种第一设备的结构示意图。该第一设备可以包括处理器801、存储器802和通信端口803。该处理器801、存储器802和通信端口803通过线路互联。其中,存储器802中存储有程序指令和数据。
[0162]
存储器802中存储了前述图1所示对应的实施方式中,由第一设备执行的步骤对应的程序指令以及数据。
[0163]
处理器801,用于执行前述图1所示实施例中任一实施例所示的由第一设备执行的步骤。
[0164]
通信端口803可以用于进行数据的接收和发送,用于执行前述图1所示实施例中任一实施例中与获取、发送、接收相关的步骤。
[0165]
一种实现方式中,第一设备可以包括相对于图8更多或更少的部件,本技术对此仅仅是示例性说明,并不作限定。
[0166]
参阅图9,本技术提供的另一种第二设备的结构示意图。该第二设备可以包括处理器901、存储器902和通信端口903。该处理器901、存储器902和通信端口903通过线路互联。其中,存储器902中存储有程序指令和数据。
[0167]
存储器902中存储了前述图2或图3所示对应的实施方式中,由第二设备执行的步骤对应的程序指令以及数据。
[0168]
处理器901,用于执行前述图2或图3所示实施例中任一实施例所示的由第二设备执行的步骤。
[0169]
通信端口903可以用于进行数据的接收和发送,用于执行前述图2或图3所示实施例中任一实施例中与获取、发送、接收相关的步骤。
[0170]
一种实现方式中,第二设备可以包括相对于图9更多或更少的部件,本技术对此仅仅是示例性说明,并不作限定。
[0171]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0172]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0173]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0174]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0175]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献