联邦模型训练方法、装置、终端设备以及存储介质转让专利

申请号 : CN202210363190.8

文献号 : CN114462626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 符芳诚崔斌

申请人 : 北京大学

摘要 :

本发明公开了一种联邦模型训练方法、装置、终端设备以及存储介质,通过第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,并基于第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至第二参与方;第二参与方根据第一参与方预测输出与第二参与方预测输出得到联合预测输出并得到预测值;第二参与方基于预测值生成联合预测输出梯度,并加密得到联合预测输出梯度密文发送至第一参与方,并根据联合预测输出梯度更新第二明文模型权重;第一参与方根据联合预测输出梯度密文得到第一模型梯度密文,并根据第一模型梯度密文更新第一模型权重密文。本发明提升了联邦模型训练的安全性。

权利要求 :

1.一种联邦模型训练方法,其特征在于,所述联邦模型训练方法应用于联邦学习系统,所述联邦学习系统包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述联邦模型训练方法包括以下步骤:所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;

所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;

所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;

所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;

所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。

2.如权利要求1所述的联邦模型训练方法,其特征在于,所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:所述第一参与方生成所述第一明文模型权重随机数;

所述第二参与方生成所述第二明文模型权重与所述第二明文模型随机数,并根据所述第二明文模型随机数加密生成所述第二明文模型随机数密文;

所述第二参与方将所述第二明文模型随机数密文发送至所述第一参与方,以供所述第一参与方基于所述第一明文模型权重随机数与所述第二明文模型随机数密文进行同态性质计算。

3.如权利要求1所述的联邦模型训练方法,其特征在于,所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文的步骤包括:所述第一参与方接收所述第二参与方发送的联合预测输出梯度密文,并根据所述联合预测输出梯度密文与第一训练数据进行标量乘法计算,得到所述第一模型梯度密文;

所述第一参与方根据所述第一模型梯度密文与更新所述第一模型权重密文。

4.一种联邦模型训练方法,其特征在于,所述联邦模型训练方法应用于联邦学习系统,所述联邦学习系统包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述联邦模型训练方法包括以下步骤:所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;

所述第二参与方基于第二明文模型权重随机数、第一明文模型随机数密文进行同态性质计算,生成第二模型权重密文,其中,所述第一明文模型随机数密文由所述第一参与方根据第一明文模型随机数加密生成并发送至所述第二参与方;

所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;

所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方;

所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;

所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值;

所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,根据所述联合预测输出梯度更新所述第二模型权重密文,并将所述联合预测输出梯度加密生成联合预测输出梯度密文发送至所述第一参与方;

所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。

5.如权利要求4所述的联邦模型训练方法,其特征在于,所述第一参与方基于第一明文模型权重、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:所述第一参与方生成所述第一明文模型权重随机数与第一明文模型随机数,并对所述第一明文模型随机数进行加密得到所述第一明文模型随机数密文;

所述第二参与方生成所述第二明文模型权重随机数与第二明文模型随机数,并对所述第二明文模型随机数进行加密得到所述第二明文模型随机数密文。

6.如权利要求4所述的联邦模型训练方法,其特征在于,所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方的步骤包括:所述第一参与方生成第一模型噪声;

所述第一参与方根据所述第一模型噪声、所述第一模型权重密文以及所述第一训练数据进行计算,生成所述第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;

所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方的步骤包括:所述第二参与方生成第二模型噪声;

所述第二参与方根据所述第二模型噪声、所述第二模型权重密文以及所述第二训练数据进行计算,生成所述第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方。

7.如权利要求6所述的联邦模型训练方法,其特征在于,所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方的步骤包括:所述第一参与方接收所述第二参与方发送的第二部分预测输出密文并进行解密,得到所述第二部分预测输出;

所述第一参与方根据所述第二部分预测输出与所述第一模型噪声得到所述第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;

所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值的步骤包括:所述第二参与方接收所述第一参与方发送的第一部分预测输出密文并进行解密,得到所述第一部分预测输出;

所述第二参与方根据所述第一部分预测输出与所述第二模型噪声得到所述第二预测输出结果;

所述第二参与方根据所述第一预测输出结果与所述第二预测输出结果进行标量加法计算得到所述联合预测输出;

所述第二参与方根据所述联合预测输出得到所述预测值。

8.一种联邦模型训练装置,其特征在于,所述联邦模型训练装置包括:

第一参与方模块,用于基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由第二参与方模块根据第二明文模型随机数加密生成并发送至所述第一参与方;

所述第一参与方模块,还用于基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;

所述第二参与方模块,用于根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;

所述第二参与方模块,还用于基于所述预测值与样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;

所述第一参与方模块,还用于根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。

9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦模型训练程序,所述联邦模型训练程序被所述处理器执行时实现如权利要求1‑3或4‑7中任一项所述的联邦模型训练方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有联邦模型训练程序,所述联邦模型训练程序被处理器执行时实现如权利要求1‑3或4‑7中任一项所述的联邦模型训练方法。

说明书 :

联邦模型训练方法、装置、终端设备以及存储介质

技术领域

[0001] 本发明涉及联邦学习技术领域,尤其涉及一种联邦模型训练方法、装置、终端设备以及存储介质。

背景技术

[0002] 随着数字经济的深入发展,大数据已经成为一种新的生产要素和战略资源。在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提。但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队、部门、甚至是不同的公司内。由于隐私保护、数据安全、商业竞争等原因,不同机构拥有的数据很难整合到一起,导致在不同机构之间形成了所谓的“数据孤岛”。而联邦学习能够通过多方一起参与同一个模型训练任务,在数据不出库的前提下进行模型训练,可以破解数据融合应用与隐私保护难题。
[0003] 相关技术中,联邦学习的各个参与方使用具有相同样本标识的样本数据进行模型训练,其中一方还拥有样本标签,由拥有样本标签的参与方负责对各方加密的模型计算结果进行解密,得到模型的梯度乘子并发送至其它参与方,各个参与方基于梯度乘子更新自己的模型。
[0004] 然而,在其它各参与方拥有己方明文模型权重的情况下,可以独立计算己方的预测输出,这会对拥有样本标签的参与方造成数据泄露。
[0005] 因此,有必要提出一种提升联邦模型训练安全性的解决方案。
[0006] 上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

[0007] 本发明的主要目的在于提供一种联邦模型训练方法、装置、终端设备以及存储介质,旨在提升联邦模型训练安全性。
[0008] 为实现上述目的,本发明提供一种联邦模型训练方法,所述联邦模型训练方法应用于联邦学习系统,所述联邦学习系统包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述联邦模型训练方法包括以下步骤:
[0009] 所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0010] 所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;
[0011] 所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;
[0012] 所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;
[0013] 所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0014] 可选地,所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:
[0015] 所述第一参与方生成所述第一明文模型权重随机数;
[0016] 所述第二参与方生成所述第二明文模型权重与所述第二明文模型随机数,并根据所述第二明文模型随机数加密生成所述第二明文模型随机数密文;
[0017] 所述第二参与方将所述第二模型权重密文发送至所述第一参与方,以供所述第一参与方基于所述第一明文模型权重随机数与所述第二明文模型随机数密文进行同态性质计算。
[0018] 可选地,所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文的步骤包括:
[0019] 所述第一参与方接收所述第二参与方发送的联合预测输出梯度密文,并根据所述联合预测输出梯度密文与第一训练数据进行标量乘法计算,得到所述第一模型梯度密文;
[0020] 所述第一参与方根据所述第一模型梯度密文与更新所述第一模型权重密文。
[0021] 可选地,所述联邦模型训练方法包括以下步骤:
[0022] 所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0023] 所述第二参与方基于第二明文模型权重随机数、第一明文模型随机数密文进行同态性质计算,生成第二模型权重密文,其中,所述第一明文模型随机数密文由所述第一参与方根据第一明文模型随机数加密生成并发送至所述第二参与方;
[0024] 所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0025] 所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方;
[0026] 所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0027] 所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值;
[0028] 所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,根据所述联合预测输出梯度更新所述第二模型权重密文,并将所述联合预测输出梯度加密生成联合预测输出梯度密文发送至所述第一参与方;
[0029] 所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0030] 可选地,所述第一参与方基于第一明文模型权重、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:
[0031] 所述第一参与方生成所述第一明文模型权重随机数与第一明文模型随机数,并对所述第一明文模型随机数进行加密得到所述第一明文模型随机数密文;
[0032] 所述第二参与方生成所述第二明文模型权重随机数与第二明文模型随机数,并对所述第二明文模型随机数进行加密得到所述第二明文模型随机数密文。
[0033] 可选地,所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方的步骤包括:
[0034] 所述第一参与方生成第一模型噪声;
[0035] 所述第一参与方根据所述第一模型噪声、所述第一模型权重密文以及所述第一训练数据进行计算,生成所述第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0036] 所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方的步骤包括:
[0037] 所述第二参与方生成第二模型噪声;
[0038] 所述第二参与方根据所述第二模型噪声、所述第二模型权重密文以及所述第二训练数据进行计算,生成所述第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方。
[0039] 可选地,所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方的步骤包括:
[0040] 所述第一参与方接收所述第二参与方发送的第二部分预测输出密文并进行解密,得到所述第二部分预测输出;
[0041] 所述第一参与方根据所述第二部分预测输出与所述第一模型噪声得到所述第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0042] 所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值的步骤包括:
[0043] 所述第二参与方接收所述第一参与方发送的第一部分预测输出密文并进行解密,得到所述第一部分预测输出;
[0044] 所述第二参与方根据所述第一部分预测输出与所述第二模型噪声得到所述第二预测输出结果;
[0045] 所述第二参与方根据所述第一预测输出结果与所述第二预测输出结果进行标量加法计算得到所述联合预测输出;
[0046] 所述第二参与方根据所述联合预测输出得到所述预测值。
[0047] 此外,为实现上述目的,本发明还提供一种联邦模型训练装置,所述联邦模型训练装置包括:
[0048] 第一参与方模块,用于基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0049] 所述第一参与方模块,还用于基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;
[0050] 第二参与方模块,用于根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;
[0051] 所述第二参与方模块,还用于基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;
[0052] 所述第一参与方模块,还用于根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0053] 此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦模型训练程序,所述联邦模型训练程序被所述处理器执行时实现如上所述的联邦模型训练方法的步骤。
[0054] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有联邦模型训练程序,所述联邦模型训练程序被处理器执行时实现如上所述的联邦模型训练方法的步骤。
[0055] 本发明实施例提出的一种联邦模型训练方法、装置、终端设备以及存储介质,通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。在初始化过程中,第一参与方通过同态性质计算得到第一模型权重密文,对第一参与方的模型权重进行了保护,在反向计算过程中,第一参与方模型的更新是根据同态运算进行的,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。

附图说明

[0056] 图1为现有技术中的初始化阶段流程示意图;
[0057] 图2为现有技术中的前向计算阶段流程示意图;
[0058] 图3为现有技术中的反向计算阶段流程示意图;
[0059] 图4为本发明联邦模型训练装置所属终端设备的功能模块示意图;
[0060] 图5为本发明联邦模型训练方法一示例性实施例的流程示意图;
[0061] 图6为本发明实施例中第一改进方案的初始化阶段流程示意图;
[0062] 图7为本发明实施例中第一改进方案的前向计算阶段流程示意图;
[0063] 图8为本发明实施例中第一改进方案的反向计算阶段流程示意图;
[0064] 图9为本发明联邦模型训练方法另一示例性实施例的流程示意图;
[0065] 图10为本发明实施例中第二改进方案的初始化阶段流程示意图;
[0066] 图11为本发明实施例中第二改进方案的前向计算阶段流程示意图;
[0067] 图12为本发明实施例中第二改进方案的反向计算阶段流程示意图。
[0068] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0069] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0070] 本发明实施例的主要解决方案是:通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。在初始化过程中,第一参与方通过同态性质计算得到第一模型权重密文,对第一参与方的模型权重进行了保护,在反向计算过程中,第一参与方模型的更新是根据同态运算进行的,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。
[0071] 本发明实施例涉及的技术术语:
[0072] FL(Federated Learning, 联邦学习):在保证数据不出域的情况下,联合多个参与方的数据源来训练机器学习模型,以及提供模型推理服务。联邦学习在保护用户隐私和数据安全的同时,又可以充分利用多个参与方的数据源来提升机器学习模型的性能。联邦学习使得跨部门、跨公司、甚至跨行业的数据合作成为可能,同时又能满足数据保护法律和法规的要求。联邦学习可以分为三类:横向联邦学习、纵向联邦学习以及联邦迁移学习。其中,纵向联邦学习是用于参与者的训练样本标识的重叠较多,而数据特征的重叠较少的情况下的联邦学习。
[0073] GLM(Generalized Linear Model,广义线性模型):是线性模型的扩展,通过联结函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。其特点是不强行改变数据的自然度量,数据可以具有非线性和非恒定方差结构。是线性模型在研究响应值的非正态分布以及非线性模型简洁直接的线性转化时的一种发展。
[0074] Send(发送)
[0075] Recv(Receive,接收)
[0076] Gen(Generate,生成):一般用于随机数或随机数矩阵的生成;
[0077] pk(Public Key, 公钥)
[0078] sk,(Private Key /Secret Key, 私钥)
[0079] Enc(Encrypt,加密):给定一个数值(明文)V,采用公钥进行加密操作得到密文,即,pk 为公钥。
[0080] Dec(Decrypt,解密):给定一个密文 ,采用私钥进行解密操作复原数值(明文),即 ,sk 为私钥。
[0081] 初始化:在初始化阶段,生成公钥 与私钥 ,其中公钥可被公开,私钥不可被公开;
[0082] 同态加法:给定两个密文 和 ,通过同态加法操作得到新的密文,即,满足 且W=U+V;
[0083] 标量加法:给定一个密文 和明文V,通过标量加法操作得到新的密文,即,满足 且W=U+V,值得注意的是,在绝大多数情况下,标量加法通过一次加密操作 和一次同态加法操作
来完成;
[0084] 标量乘法:给定一个密文 和明文V,通过标量乘法操作得到新的密文,即,满足 且W=U+V;
[0085] 加解密:假设有矩阵 ,我们记 为由多个密文组成的矩阵,且其中每个密文是M对应位置上数值的密文,也就是说, 在第i行第j列的密文为;对称的,我们可以使用私钥 对 进行解密,得到明文矩阵
M;
[0086] 矩阵加法:若有 ,则我们 记为密文空间中的矩阵 乘法 ,其中 其中 在 第i行 第j列的 密文的 计算 方式为 :
[0087] 矩阵乘法:若有 ,则我们将 记为密文空间中的矩阵乘法,其中其中 在第i行第j列的密文的计算方式为:
[0088] 为方便描述,后续我们将会使用 来表示通过参与方A的公钥pkA对 进行加密的密文,即 必须通过参与方A的私钥skA进行解密;对应的, 来表示通过参与方B的公钥pkB对V进行加密的密文,必须通过参与方B的私钥skB进行解密。当我们描述任一参与方时,我们使用 来进行表示。
[0089] 广义线性模型是一类常用的机器学习模型,包括线性回归模型、逻辑回归模型、多分类逻辑回归模型等,实际上本发明提出的方案同样适用于其他的广义线性模型,如泊松回归(Poisson Regression)等。对于不同的广义线性模型,主要的区别在于链接函数和损失函数,而本发明所提出的方案可以适配任意的链接函数和损失函数。
[0090] 假设参与方A和参与方B的输入特征的维度分别为 ,模型的输出维度为OUT,本申请中记双方的模型分别为 ,假设小批量数据输入特征为 ,其中BS为batch size的简称,即每个小批量中的样本条数,广
义线性模型的前向计算和反向计算的目标分别如下:
[0091] 前向计算:两个参与方分别采样小批量数据,其中参与方A采样小批量特征XA,参与方B采样小批量特征XB和标签y。两个参与方联合计算
[0092] ,参与方B最终获得Z的明文信息,参与方A无法获得Z的明文信息。
[0093] 参与方B根据模型的选择,计算预测值 ,计算预测值的函数f也被称为链接函数(Link Function),例如:
[0094] (1)在线性回归模型中,参与方B使用Identity函数(恒等赋值函数)计算 ;
[0095] (2)在逻辑回归模型中,参与方B使用Sigmoid函数计算 ;
[0096] (3)在多分类逻辑回归模型中,参与方B使用Softmax函数计算
[0097] 。
[0098] 反向计算:参与方B根据标签 和预测值 ,以及模型的选择,计算损失值,计算损失值的函数l也被称为损失函数(Loss Function),例如:
[0099] (1)在线性回归模型中,参与方B使用Square Loss;
[0100] (2)在逻辑回归模型中,参与方B使用Logistic Loss;
[0101] (3)在多分类逻辑回归模型中,参与方B使用Cross‑entropy Loss。
[0102] 参与方B计算损失值 对的偏导数 。由于该偏导数的计算可以由 进行计算,为了方便阐述,本发明记 。偏导数可根据求导公式与链式法则进行计算,即可通过链接函数f与损失函数l的导函数进行计算。由于本发明所提出的方案可适用于任意链接函数与损失函数,此处不对具体模型的偏导数的计算公式进行赘述。
[0103] 两个参与方分别更新模型 ,其中 为模型梯度,为梯度下降的步长(step size),也称学习率(learning rate),算法的训练过程通常使用小批量随机下降(mini‑batch stochastic gradient descent)算法进行模型更新。
[0104] 现有的纵向联邦算法协议,分为初始化、前向计算、反向计算三个阶段,参照图1,图1为现有技术中的初始化阶段流程示意图,如图1所示,现有方案的初始化流程十分简单,两个参与方分别生成己方的模型权重即可。
[0105] 参照图2,图2为现有技术中的前向计算阶段流程示意图,如图2所示,现有方案的前向计算流程分三步:
[0106] Step 1: 两个参与方各自采样一个小批量(mini‑batch)的训练数据,即XA和XB;
[0107] Step 2: 两个参与方分别计算 ,参与方A将 发送至参与方B;
[0108] Step 3: 参与方B计算Z和 。
[0109] 参照图3,图3为现有技术中的反向计算阶段流程示意图,如图3所示,现有方案的反向计算流程分四步:
[0110] Step 1: 参与方B计算 ,加密并发送至参与方A;
[0111] Step 2: 参与方A根据生成随机数 ,根据同态性质,计算 ,并发送至参与方B,参与方B接收后,解密得到 ;
[0112] Step 3: 参与方B将 发送至参与方A;
[0113] Step 4: 两个参与方分别更新己方模型。
[0114] 如上所述,现有的算法协议中,参与方A拥有己方的明文模型权重,即 ,因此可以独立计算己方的预测输出,即 ,这会导致参与方B的标签泄漏。
[0115] 本发明提供一种解决方案,通过基于同态加密和秘密分享的技术的隐私保护协议来保护纵向联邦广义线性模型算法中参与方A的模型权重和模型梯度,可以有效解决现有算法协议中标签泄漏的问题。
[0116] 在两方纵向联邦训练或推理过程中, 例如,在初始化、前向计算过程中和后向传播过程中,通过基于同态加密和秘密分享技术来保证参与方的数据隐私信息,特别的,与现有方案相比,本发明的技术方案进一步保护了参与方A的模型权重和模型梯度,并保护了参与方B的标签信息Y,提高算法协议的安全性。其中,对同态加密的公钥与私钥管理如下:
[0117] 参与方A拥有同态加密的私钥skA和公钥pkA,参与方B拥有公钥pkA,参与方A不会向参与方B披露私钥skA。
[0118] 对应的,参与方B拥有同态加密的私钥skB和公钥pkB,参与方A拥有公钥pkB,参与方B不会向参与方A披露私钥skB。
[0119] 所述公钥用于加密模型和模型训练或推理过程中的中间计算结果。所用加密是加法同态加密,如Paillier同态加密方案,Okamoto‑Uchiyama同态加密方案等。
[0120] 具体地,参照图4,图4为本发明联邦模型训练装置所属终端设备的功能模块示意图。该联邦模型训练装置可以为独立于终端设备的、能够进行联邦模型训练的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
[0121] 在本实施例中,该联邦模型训练装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
[0122] 存储器130中存储有操作系统以及联邦模型训练程序,联邦模型训练装置可以将第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成的第一模型权重密文、基于第一模型权重密文与第一训练数据生成的第一参与方预测输出密文、第二参与方根据第一参与方预测输出与第二参与方预测输出得到的联合预测输出并得到预测值、第二参与方基于预测值生成的联合预测输出梯度、加密得到的联合预测输出梯度密文,以及第一参与方根据联合预测输出梯度密文得到的第一模型梯度密文等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
[0123] 其中,存储器130中的联邦模型训练程序被处理器执行时实现以下步骤:
[0124] 所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0125] 所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;
[0126] 所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;
[0127] 所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;
[0128] 所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0129] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0130] 所述第一参与方生成所述第一明文模型权重随机数;
[0131] 所述第二参与方生成所述第二明文模型权重与所述第二明文模型随机数,并根据所述第二明文模型随机数加密生成所述第二明文模型随机数密文;
[0132] 所述第二参与方将所述第二模型权重密文发送至所述第一参与方,以供所述第一参与方基于所述第一明文模型权重随机数与所述第二明文模型随机数密文进行同态性质计算。
[0133] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0134] 所述第一参与方接收所述第二参与方发送的联合预测输出梯度密文,并根据所述联合预测输出梯度密文与第一训练数据进行标量乘法计算,得到所述第一模型梯度密文;
[0135] 所述第一参与方根据所述第一模型梯度密文与更新所述第一模型权重密文。
[0136] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0137] 所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0138] 所述第二参与方基于第二明文模型权重随机数、第一明文模型随机数密文进行同态性质计算,生成第二模型权重密文,其中,所述第一明文模型随机数密文由所述第一参与方根据第一明文模型随机数加密生成并发送至所述第二参与方;
[0139] 所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0140] 所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方;
[0141] 所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0142] 所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值;
[0143] 所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,根据所述联合预测输出梯度更新所述第二模型权重密文,并将所述联合预测输出梯度加密生成联合预测输出梯度密文发送至所述第一参与方;
[0144] 所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0145] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0146] 所述第一参与方生成所述第一明文模型权重随机数与第一明文模型随机数,并对所述第一明文模型随机数进行加密得到所述第一明文模型随机数密文;
[0147] 所述第二参与方生成所述第二明文模型权重随机数与第二明文模型随机数,并对所述第二明文模型随机数进行加密得到所述第二明文模型随机数密文。
[0148] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0149] 所述第一参与方生成第一模型噪声;
[0150] 所述第一参与方根据所述第一模型噪声、所述第一模型权重密文以及所述第一训练数据进行计算,生成所述第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0151] 所述第二参与方生成第二模型噪声;
[0152] 所述第二参与方根据所述第二模型噪声、所述第二模型权重密文以及所述第二训练数据进行计算,生成所述第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方。
[0153] 进一步地,存储器130中的联邦模型训练程序被处理器执行时还实现以下步骤:
[0154] 所述第一参与方接收所述第二参与方发送的第二部分预测输出密文并进行解密,得到所述第二部分预测输出;
[0155] 所述第一参与方根据所述第二部分预测输出与所述第一模型噪声得到所述第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0156] 所述第二参与方接收所述第一参与方发送的第一部分预测输出密文并进行解密,得到所述第一部分预测输出;
[0157] 所述第二参与方根据所述第一部分预测输出与所述第二模型噪声得到所述第二预测输出结果;
[0158] 所述第二参与方根据所述第一预测输出结果与所述第二预测输出结果进行标量加法计算得到所述联合预测输出;
[0159] 所述第二参与方根据所述联合预测输出得到所述预测值。
[0160] 本实施例通过上述方案,具体通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。在初始化过程中,第一参与方通过同态性质计算得到第一模型权重密文,对第一参与方的模型权重进行了保护,在反向计算过程中,第一参与方模型的更新是根据同态运算进行的,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。
[0161] 基于上述终端设备架构但不限于上述架构,提出本发明方法实施例。
[0162] 本实施例方法的执行主体可以为一种联邦模型训练装置或终端设备等,本实施例以联邦模型训练装置进行举例。
[0163] 参照图5,图5为本发明联邦模型训练方法一示例性实施例的流程示意图。在本实施例中,所述联邦模型训练方法应用于联邦学习系统,所述联邦学习系统包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述联邦模型训练方法包括:
[0164] 步骤S10,所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0165] 联邦学习与普通机器学习任务的核心区别之一在于训练参与方从一方变为了两方甚至多方。联邦学习通过多方一起参与同一个模型训练任务,在数据不出库和保护数据隐私的前提下,完成模型训练任务,打破“数据孤岛”。例如,在两方纵向联邦学习里,参与方A(例如,某广告公司)和参与方B(例如,某社交网络平台)合作,联合训练一个或多个基于深度学习的个性化推荐模型。其中,参与方A拥有部分数据特征,例如,(X1,X2, …, X40),共40维数据特征;而参与方B拥有另一部分数据特征,例如,(X41,X42, …, X100),共60维数据特征。参与方A和B联合起来,就拥有了更多的数据特征,例如,A和B数据特征加起来就有100维数据特征,所以显著扩展了训练数据的特征维度。对于有监督深度学习,参与方A和/或参与方B还拥有训练数据的标签信息y。
[0166] 在所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:
[0167] 所述第一参与方生成所述第一明文模型权重随机数;
[0168] 所述第二参与方生成所述第二明文模型权重与所述第二明文模型随机数,并根据所述第二明文模型随机数加密生成所述第二明文模型随机数密文;
[0169] 所述第二参与方将所述第二模型权重密文发送至所述第一参与方,以供所述第一参与方基于所述第一明文模型权重随机数与所述第二明文模型随机数密文进行同态性质计算。
[0170] 具体地,参照图6,图6为本发明实施例中第一改进方案的初始化阶段流程示意图,如图6所示,第一参与方A为己方生成第一明文模型权重随机数 ;第二参与方B为己方生成第二明文模型权重 ,为对方生成第二明文模型随机数RA,进而由第二参与方B加密RA,并发送至第一参与方A,以供第一参与方A使用同态性质计算生成第一模型权重密文。
[0171] 在此过程中,通过同态性质计算对参与方A的模型权重进行了保护,即对于参与方A的模型权重,使用同态加密进行保护,使参与方A只能得到模型权重的密文。
[0172] 步骤S20,所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;
[0173] 在此之前,需先进行安全样本对齐,假设参与方A和B分别拥有数据集DA和DB。纵向联邦学习的两个参与方需要将他们拥有的训练数据进行对齐,筛选出他们拥有的数据的样本ID的交集部分,即求数据集合DA和DB里相同样本ID的交集,且不能泄露非交集的部分的样本ID信息。这一步是两方安全样本对齐,可以使用现有的技术方案,例如,基于Blind RSA的算法,基于Diffie–Hellman的算法,基于Freedman协议的算法等。
[0174] 需要说明的是,为了减少计算量和获得更好的训练效果,通常每次迭代前,参与方A和参与方B分别从数据交集中抽取一个小批量(mini‑batch)的数据,例如,每个小批量包括128个样本。这种情况下,需要参与方A和参与方B协调进行数据的分批和小批量的选择,以便所有所述两个参与方在每次迭代中选择的小批量数据中的样本也是对齐的。
[0175] 为方便描述,在本申请中,两个参与方的小批量特征分别记作XA和XB,参与方B的小批量标签记作y。
[0176] 具体地,参照图7,图7为本发明实施例中第一改进方案的前向计算阶段流程示意图,如图7所示,两个参与方各自采样一个小批量(mini‑batch)的训练数据,即XA和XB。第一参与方A基于第一模型权重密文 与第一训练数据XA计算并发送第一参与方预测输出密文 。以供所述第二参与方B对所述第一参与方预测输出密文进行解密得到第一参与方预测输出。
[0177] 步骤S30,所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;
[0178] 进一步地,第二参与方B接收到所述第一参与方预测输出密文 后进行解密,得到第一参与方预测输出ZA,并根据第二训练数据XB与第二明文模型权重 计算得到第二参与方预测输出ZB,进而根据第一参与方预测输出ZA与第二参与方预测输出ZB进行前向计算,得到联合预测输出Z,即Z=ZA+ZB。得到联合预测输出Z后,即可根据链接函数计算得到预测值,即 。
[0179] 步骤S40,所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;
[0180] 更进一步地,参照图8,图8为本发明实施例中第一改进方案的反向计算阶段流程示意图,如图8所示,通过链接函数计算出预测值后,第二参与方B基于预测值 与样本标签y进行计算可以得到联合预测输出梯度 ,并对 进行加密得到联合预测输出梯度密文,进而将联合预测输出梯度密文发送至第一参与方A,与此同时,第二参与方B可以根据联合预测输出梯度与第二训练数据计算得到第二模型权重梯度 ,进而根据第二模型权重梯度 更新第二明文模型权重 。
[0181] 步骤S50,所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0182] 所述第一参与方接收所述第二参与方发送的联合预测输出梯度密文,并根据所述联合预测输出梯度密文与第一训练数据进行标量乘法计算,得到所述第一模型梯度密文;
[0183] 所述第一参与方根据所述第一模型梯度密文与更新所述第一模型权重密文。
[0184] 具体地,当第一参与方A接收到联合预测输出梯度密文 后,即可根据第一训练数据经过同态性质计算得到第一模型梯度密文 ,进而根据第一模型梯度密文更新第一模型权重密文 ,从而实现两个参与方分别更新己方模型,其中第一参与方A模型的更新是根据同态运算进行的;对于第二参与方B,本实施例中的模型更新与现有技术的方案相同。
[0185] 在本实施例中,通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。在初始化过程中,第一参与方通过同态性质计算得到第一模型权重密文,对第一参与方的模型权重进行了保护,在反向计算过程中,第一参与方模型的更新是根据同态运算进行的,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。
[0186] 参照图9,图9为本发明联邦模型训练方法另一示例性实施例的流程示意图。所述联邦模型训练方法包括以下步骤:
[0187] 步骤A10,所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0188] 在所述第一参与方基于第一明文模型权重、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文的步骤之前还包括:
[0189] 所述第一参与方生成所述第一明文模型权重随机数与第一明文模型随机数,并对所述第一明文模型随机数进行加密得到所述第一明文模型随机数密文;
[0190] 所述第二参与方生成所述第二明文模型权重随机数与第二明文模型随机数,并对所述第二明文模型随机数进行加密得到所述第二明文模型随机数密文。
[0191] 具体地,参照图10,图10为本发明实施例中第二改进方案的初始化阶段流程示意图,如图10所示,第一参与方A为己方生成第一明文模型权重随机数WA,为对方生成第一明文模型随机数RB。进而第一参与方A对第一明文模型随机数RB进行加密得到第一明文模型随机数密文 ,并发送至第二参与方B,同时接收第二参与方B发送的第二明文模型随机数密文 ,进而根据第一明文模型权重随机数WA、第二明文模型随机数密文 进行同态性质计算,生成第一模型权重密文 ,即 。
[0192] 步骤A20,所述第二参与方基于第二明文模型权重随机数、第一明文模型随机数密文进行同态性质计算,生成第二模型权重密文,其中,所述第一明文模型随机数密文由所述第一参与方根据第一明文模型随机数加密生成并发送至所述第二参与方;
[0193] 对称地,第二参与方B为己方生成第二明文模型权重随机数WB,为对方生成第一明文模型随机数RA。进而第二参与方B对第二明文模型随机数RA进行加密得到第二明文模型随机数密文 ,并发送至第一参与方A,同时接收第一参与方A发送的第一明文模型随机数密文 ,进而根据第二明文模型权重随机数WB、第一明文模型随机数密文 进行同态性质计算,生成第二模型权重密文 ,即 。
[0194] 步骤A30,所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0195] 所述第一参与方生成第一模型噪声;
[0196] 所述第一参与方根据所述第一模型噪声、所述第一模型权重密文以及所述第一训练数据进行计算,生成所述第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;
[0197] 在此之前,两个参与方各自采样一个小批量(mini‑batch)的训练数据,即第一训练数据XA和第二训练数据XB,进一步地,参照图11,图11为本发明实施例中第二改进方案的前向计算阶段流程示意图,如图11所示,第一参与方A生成第一模型噪声εA,进而根据第一模型噪声εA、第一模型权重密文 以及第一训练数据XA进行计算,生成第一部分预测输出密文 ,并将第一部分预测输出密文 发送至所述第二参与方。
[0198] 步骤A40,所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方;
[0199] 所述第二参与方生成第二模型噪声;
[0200] 所述第二参与方根据所述第二模型噪声、所述第二模型权重密文以及所述第二训练数据进行计算,生成所述第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方。
[0201] 对称地,第二参与方B生成第二模型噪声εB,进而根据第二模型噪声εB、第二模型权重密文 以及第二训练数据XB进行计算,生成所述第二部分预测输出密文 ,并将所述第二部分预测输出密文 发送至所述第一参与方。
[0202] 步骤A50,所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0203] 所述第一参与方接收所述第二参与方发送的第二部分预测输出密文并进行解密,得到所述第二部分预测输出;
[0204] 所述第一参与方根据所述第二部分预测输出与所述第一模型噪声得到所述第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;
[0205] 进一步地,第一参与方A接收到第二参与方B发送过来的第二部分预测输出密文后进行解密,得到第二部分预测输出 ,进而根据第二部分预测输出’
与第一模型噪声εA得到所述第一预测输出结果ZA,然后第一参与方A将第一预测输’
出结果ZA发送至第二参与方B,以供第二参与方B计算联合预测输出Z和预测值 。
[0206] 步骤A60,所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值;
[0207] 所述第二参与方接收所述第一参与方发送的第一部分预测输出密文并进行解密,得到所述第一部分预测输出;
[0208] 所述第二参与方根据所述第一部分预测输出与所述第二模型噪声得到所述第二预测输出结果;
[0209] 所述第二参与方根据所述第一预测输出结果与所述第二预测输出结果进行标量加法计算得到所述联合预测输出;
[0210] 所述第二参与方根据所述联合预测输出得到所述预测值。
[0211] 对称地,第二参与方B接收到第一参与方A发送过来的第一部分预测输出密文后进行解密,得到第一部分预测输出 ,进而根据第一部分预测输出’
与第二模型噪声εB得到所述第二预测输出结果ZB,然后第二参与方B根据第一预测’ ’
输出结果ZA第二预测输出结果ZB计算得到联合预测输出Z和预测值 。
[0212] 步骤A70,所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,根据所述联合预测输出梯度更新所述第二模型权重密文,并将所述联合预测输出梯度加密生成联合预测输出梯度密文发送至所述第一参与方;
[0213] 参照图12,图12为本发明实施例中第二改进方案的反向计算阶段流程示意图,如图12所示,第二参与方B根据预测值 与样本标签y计算得到联合预测输出梯度 ,并对进行加密得到联合预测输出梯度密文 ,进而将联合预测输出梯度密文 发送至第一参与方A,与此同时,第二参与方B可以根据联合预测输出梯度 与第二训练数据计算得到第二模型权重梯度 ,进而根据第二模型权重梯度 更新第二明文模型权重。
[0214] 步骤A80,所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0215] 第一参与方A接收到第二参与方B发送的联合预测输出梯度密文 后,根据联合预测输出梯度密文 与第一训练数据进行同态性质计算得到第一模型梯度密文,进而根据第一模型梯度密文 更新第一模型权重密文 。
[0216] 本实施例通过上述方案,具体通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二明文模型随机数密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第二参与方基于第二明文模型权重随机数、第一明文模型随机数密文进行同态性质计算,生成第二模型权重密文,其中,所述第一明文模型随机数密文由所述第一参与方根据第一明文模型随机数加密生成并发送至所述第二参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据进行前向计算,生成第一部分预测输出密文,并将所述第一部分预测输出密文发送至所述第二参与方;所述第二参与方基于所述第二模型权重密文与第二训练数据进行前向计算,生成第二部分预测输出密文,并将所述第二部分预测输出密文发送至所述第一参与方;所述第一参与方对所述第二部分预测输出密文进行解密,得到第二部分预测输出,根据所述第二部分预测输出生成第一预测输出结果,并将所述第一预测输出结果发送至所述第二参与方;所述第二参与方对所述第一部分预测输出密文进行解密,得到第一部分预测输出,根据所述第一部分预测输出生成第二预测输出结果,并根据所述第一预测输出结果与所述第二预测输出结果计算得到联合预测输出,并根据所述联合预测输出计算得到预测值;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,根据所述联合预测输出梯度更新所述第二模型权重密文,并将所述联合预测输出梯度加密生成联合预测输出梯度密文发送至所述第一参与方;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。与图5所示的实施例类似,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。但与本实施例中第二参与方无法在前向计算中获得的明文,可以对第一参与方的数据安全有更好的保护作用。从而进一步提高了联邦模型训练安全性。
[0217] 此外,本发明实施例中提出的联邦模型训练方法可以应用于联邦模型推理服务,模型推理阶段是针对训练数据之外的数据进行模型推理(也称为模型预测),例如,进行模型性能测试时,或者模型推理服务应用时,都需要进行模型推理。模型推理只需要执行上述的前向计算阶段。所以,本发明提出的隐私保护协议,同样适用于纵向联邦推理服务。
[0218] 此外,本发明实施例还提出一种联邦模型训练装置,所述联邦模型训练装置包括:
[0219] 第一参与方模块,用于基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;
[0220] 所述第一参与方模块,还用于基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;
[0221] 第二参与方模块,用于根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;
[0222] 所述第二参与方模块,还用于基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;
[0223] 所述第一参与方模块,还用于根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。
[0224] 本实施例实现联邦模型训练的原理及实施过程,请参照上述各实施例,在此不再赘述。
[0225] 此外,本发明实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦模型训练程序,所述联邦模型训练程序被所述处理器执行时实现如上所述的联邦模型训练方法的步骤。
[0226] 由于本联邦模型训练程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
[0227] 此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有联邦模型训练程序,所述联邦模型训练程序被处理器执行时实现如上所述的联邦模型训练方法的步骤。
[0228] 由于本联邦模型训练程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
[0229] 相比现有技术,本发明实施例提出的联邦模型训练方法、装置、终端设备以及存储介质,通过所述第一参与方基于第一明文模型权重随机数、第二明文模型随机数密文进行同态性质计算,生成第一模型权重密文,其中,所述第二模型权重密文由所述第二参与方根据第二明文模型随机数加密生成并发送至所述第一参与方;所述第一参与方基于所述第一模型权重密文与第一训练数据生成并发送第一参与方预测输出密文至所述第二参与方,以供所述第二参与方对所述第一参与方预测输出密文进行解密得到第一参与方预测输出;所述第二参与方根据所述第一参与方预测输出与第二参与方预测输出计算得到联合预测输出,并根据所述联合预测输出计算得到预测值,其中,所述第二参与方预测输出由所述第二参与方根据第二训练数据与第二明文模型权重计算得到;所述第二参与方基于所述预测值与所述样本标签生成联合预测输出梯度,将所述联合预测输出梯度加密得到联合预测输出梯度密文并发送至所述第一参与方,并根据所述联合预测输出梯度更新所述第二明文模型权重;所述第一参与方根据所述联合预测输出梯度密文进行同态性质计算得到第一模型梯度密文,并根据所述第一模型梯度密文更新所述第一模型权重密文。在初始化过程中,第一参与方通过同态性质计算得到第一模型权重密文,对第一参与方的模型权重进行了保护,在反向计算过程中,第一参与方模型的更新是根据同态运算进行的,第一参与方无法拥有己方的明文模型权重和明文模型梯度,因此解决了现有方案中标签泄漏的问题。
[0230] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0231] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0232] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
[0233] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。