CN114492850A - 基于联邦学习的模型训练方法、设备、介质及程序产品 - Google Patents

基于联邦学习的模型训练方法、设备、介质及程序产品 Download PDF

Info

Publication number
CN114492850A
CN114492850A CN202210093687.2A CN202210093687A CN114492850A CN 114492850 A CN114492850 A CN 114492850A CN 202210093687 A CN202210093687 A CN 202210093687A CN 114492850 A CN114492850 A CN 114492850A
Authority
CN
China
Prior art keywords
model
participant
ciphertext
gradient
gradient multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210093687.2A
Other languages
English (en)
Inventor
符芳诚
蒋杰
刘煜宏
陈鹏
陶阳宇
程勇
崔斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Peking University
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University, Shenzhen Tencent Computer Systems Co Ltd filed Critical Peking University
Priority to CN202210093687.2A priority Critical patent/CN114492850A/zh
Publication of CN114492850A publication Critical patent/CN114492850A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Abstract

本申请实施例公开了一种基于联邦学习的模型训练方法、设备、介质及程序产品,属于联邦学习领域。该方法包括:第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向第二参与方发送第一梯度乘子算子;第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子;第二参与方基于样本标签、第一梯度乘子算子以及第二梯度乘子算子生成梯度乘子;向第一参与方发送梯度乘子密文;第二参与方基于梯度乘子进行反向计算,更新第三模型权重;第一参与方基于梯度乘子密文进行反向计算,更新第二模型权重密文。能够提高模型训练的安全性,避免数据泄露。

Description

基于联邦学习的模型训练方法、设备、介质及程序产品
技术领域
本申请实施例涉及联邦学习技术领域,特别涉及一种基于联邦学习的模型训练方法、设备、介质及程序产品。
背景技术
在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提。但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队、部门、甚至是不同的公司内。由于用户隐私,这些数据无法直接使用,形成了所谓的“数据孤岛”。而联邦学习能够通过多方一起参与同一个模型训练任务,在数据不出库的前提下进行模型训练,打破“数据孤岛”。
相关技术中,联邦学习的各个参与方使用具有相同样本标识的样本数据进行模型训练,其中一方还拥有样本标签,由拥有样本标签的参与方负责根据各方加密的模型计算结果,计算模型的梯度乘子并发送至其它参与方,各个参与方基于梯度乘子更新自己的模型。
然而,在其它各参与方拥有模型梯度的情况下,依然能够通过多轮迭代训练推测得到样本标签,造成数据泄露。
发明内容
本申请实施例提供了一种基于联邦学习的模型训练方法、设备、介质及程序产品,能够提高通过联邦学进行模型训练的安全性,避免数据泄露。所述技术方案如下:
一方面,本申请实施例提供了一种基于联邦学习的模型训练方法,所述方法用于联邦学习系统,所述联邦学习系统中包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述方法包括:
所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向所述第二参与方发送所述第一梯度乘子算子,所述第二模型权重密文由所述第二参与方初始化并加密生成;
所述第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,所述第四模型权重密文由所述第一参与方初始化并加密生成;
所述第二参与方基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子;向所述第一参与方发送梯度乘子密文,所述梯度乘子为损失函数对模型计算结果的导数;
所述第二参与方基于所述梯度乘子进行反向计算,更新所述第三模型权重;
所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文。
另一方面,本申请实施例提供了一种基于联邦学习的模型训练装置,所述装置用于联邦学习系统,所述联邦学习系统中包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述装置包括:
第一参与方模块,用于基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向所述第二参与方发送所述第一梯度乘子算子,所述第二模型权重密文由所述第二参与方初始化并加密生成;
第二参与方模块,用于基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,所述第四模型权重密文由所述第一参与方初始化并加密生成;
所述第二参与方模块,还用于基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子;向所述第一参与方发送梯度乘子密文,所述梯度乘子为损失函数对模型计算结果的导数;
所述第二参与方模块,还用于基于所述梯度乘子进行反向计算,更新所述第三模型权重;
所述第一参与方模块,还用于基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的基于联邦学习的模型训练方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的基于联邦学习的模型训练方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的基于联邦学习的模型训练方法。
本申请实施例提供的技术方案至少包括以下有益效果:
本申请实施例中,由第二参与方基于第一梯度乘子算子和第二梯度乘子算子计算模型梯度乘子,并将梯度乘子加密发送至第一参与方,使第一参与方始终以梯度乘子密文更新得到模型权重的密文,因此第一参与方无法独立计算己方的模型预测结果,也无法计算己方完整模型的梯度,从而使第一参与方不能够通过多轮训练累积模型梯度反推出第二参与方的样本标签,提高了通过联邦学进行模型训练的安全性,避免数据泄露。
附图说明
图1是相关技术中的一种模型训练方法的流程图;
图2是相关技术中的另一种模型训练方法的流程图;
图3是本申请一个示例性实施例提供的实施环境的示意图;
图4是本申请一个示例性实施例提供的基于联邦学习的模型训练方法的流程图;
图5是本申请另一个示例性实施例提供的基于联邦学习的模型训练方法的流程图;
图6是本申请一个示例性实施例提供的第一种改进方案的示意图;
图7是本申请一个示例性实施例提供的第二种改进方案的示意图;
图8是本申请另一个示例性实施例提供的基于联邦学习的模型训练方法的流程图;
图9是本申请一个示例性实施例提供的第三种改进方案的示意图;
图10是本申请一个示例性实施例提供的第四种改进方案的示意图;
图11是本申请一个示例性实施例提供的基于联邦学习的模型训练装置的结构框图;
图12是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先对本申请中的重要名词和算法进行介绍。
联邦学习:在保证数据不出域的情况下,联合多个参与方的数据源来训练机器学习模型,以及提供模型推理服务。联邦学习在保护用户隐私和数据安全的同时,又可以充分利用多个参与方的数据源来提升机器学习模型的性能。联邦学习使得跨部门、跨公司、甚至跨行业的数据合作成为可能,同时又能满足数据保护法律和法规的要求。联邦学习可以分为三类:横向联邦学习(Horizontal Federated Learning),纵向联邦学习(VerticalFederated Learning),联邦迁移学习(Federated Transfer Learning)。
纵向联邦学习:是用于参与者的训练样本标识(Identity Document,ID)的重叠较多,而数据特征的重叠较少的情况下的联邦学习。例如,同一地区的银行和电商分别拥有同一客户A的不同特征数据,比如银行拥有客户A的金融数据,电商拥有客户A的购物数据。“纵向”二字来源于数据的“纵向划分(Vertical Partitioning)”。联合两个或多个参与者中具有交集的用户样本的不同特征数据进行联邦学习,即各个参与者的训练样本是纵向划分的。本申请实施例提供的方法主要应用于基于纵向联邦学习的模型训练。
加密:给定一个数值(明文)V,采用公钥进行加密操作得到密文,即,Enc(V,pk)→[V],pk为公钥。
解密:给定一个密文[V],采用私钥进行解密操作复原数值(明文),即,Dec([V],sk)→V,sk为私钥。
同态加法:给定两个密文[U]和[V],通过同态加法操作得到新的密文,即
Figure BDA0003490202440000051
Figure BDA0003490202440000052
满足Dec([W],sk)→W且W=U+V。
标量加法:给定一个密文[U]和明文V,通过标量加法操作得到新的密文,即
Figure BDA0003490202440000053
满足Dec([W],sk)→W且W=U+V,值得注意的是,在绝大多数情况下,标量加法通过一次加密操作Enc(V,pk)→[V]和一次同态加法操作
Figure BDA0003490202440000054
来完成。
标量乘法:给定一个密文[U]和明文V,通过标量乘法操作得到新的密文,即
Figure BDA0003490202440000055
满足Dec([W],sk)→W且W=U×V。
加解密:假设有矩阵
Figure BDA0003490202440000056
记[M]为由多个密文组成的矩阵,且其中每个密文是M对应位置上数值的密文,也就是说,M在第i行第j列的密文为[M](ij)=Enc(M(ij),pk);对称的,我们可以使用私钥sk对[M]进行解密,得到明文矩阵M。
矩阵加法:若有
Figure BDA0003490202440000057
则记[M3]=[M1]+M2为密文空间中的矩阵乘法,其中[M3]在第i行第j列的密文的计算方式为:
Figure BDA0003490202440000058
矩阵乘法:若有
Figure BDA0003490202440000059
则[M3]=[M1]M2记为密文空间中的矩阵乘法,其中[M3]在第i行第j列的密文的计算方式为:
Figure BDA00034902024400000510
Figure BDA00034902024400000511
为方便描述,后续将会使用[V]A表示通过参与方A的公钥pkA对V进行加密的密文,即[V]A必须通过参与方A的私钥skA进行解密;对应的,[V]B表示通过参与方B的公钥pkB对V进行加密的密文,必须通过参与方B的私钥skB进行解密。当描述任一参与方时,使用[V]*进行表示。
纵向联邦逻辑回归算法的计算目标:逻辑回归是一种常用的机器学习算法,假设参与方A和参与方B的输入特征的维度分别为INA、INB,逻辑回归的输出维度为OUT=1,本申请实施例记双方的逻辑回归的模型分别为
Figure BDA00034902024400000512
Figure BDA00034902024400000513
R为实数,假设输入的训练样本分别为
Figure BDA00034902024400000514
Figure BDA00034902024400000515
其中BS为样本条数(BatchSize)的简称,逻辑回归的前向计算和反向计算的目标分别如下。
前向计算:两个参与方分别采样小批量数据,其中参与方A采样小批量特征XA,参与方B采样小批量特征XB和标签y。两个参与方联合计算
Figure BDA0003490202440000061
Figure BDA0003490202440000062
参与方B最终获得Z的明文信息,参与方A无法获得Z的明文信息。参与方B使用sigmoid函数计算模型预测值
Figure BDA0003490202440000063
反向计算:参与方B根据标签y和概率值
Figure BDA0003490202440000064
计算梯度乘子
Figure BDA0003490202440000065
两个参与方分别更新模型
Figure BDA0003490202440000066
Figure BDA0003490202440000067
其中
Figure BDA0003490202440000068
为模型梯度,η为梯度下降的步长(step size),也称学习率(learning rate)。
在人工智能时代,机器学习尤其深度学习模型的获得需要大量的训练数据作为前提。但是在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队、部门、甚至是不同的公司内。由于用户隐私,这些数据无法直接使用,形成了所谓的“数据孤岛”。近两年,联邦学习技术(Federated Learning)迅速发展,为跨团队数据合作,打破“数据孤岛”提供了新的解决思路,并开始从理论研究迈向批量应用的落地阶段。
联邦学习与普通机器学习任务的核心区别之一在于训练参与方从一方变为了两方甚至多方。联邦学习通过多方一起参与同一个模型训练任务,在数据不出库和保护数据隐私的前提下,完成模型训练任务,打破“数据孤岛”。例如,在两方纵向联邦学习里,参与方A(例如,某广告公司)和参与方B(例如,某社交网络平台)合作,联合训练一个或多个基于深度学习的个性化推荐模型。其中,参与方A拥有部分数据特征,例如,(X1,X2,…,X40),共40维数据特征;而参与方B拥有另一部分数据特征,例如,(X41,X42,…,X100),共60维数据特征。参与方A和B联合起来,就拥有了更多的数据特征,例如,A和B数据特征加起来就有100维数据特征,所以显著扩展了训练数据的特征维度。对于有监督深度学习,参与方A和/或参与方B还拥有训练数据的标签信息Y。
因此一个核心问题就在于如何协调两方或者多方一起完成一个模型训练任务,该协调的方法即称之为“联邦算法协议”。当两方或多方一起参与训练任务时,每一方都按照预先设定的算法协议运行,从而保证算法的正确运行。然而,目前已有的联邦算法协议要求参与方之间有多轮的通信交互,使其效率受限。
相关技术中已提出两种基于纵向联邦学习的模型训练方法。
其中第一种方案如图1所示。Step 1:两个参与方各自采样一个小批量(mini-batch)的训练数据,即XA和XB。Step 2:两个参与方分别计算ZA,ZB,参与方A将ZA发送至参与方B。Step 3:参与方B计算Z,并使用sigmoid函数计算预测值。Step4:参与方B计算梯度乘子,加密并发送至参与方A。Step 5:参与方A根据生成随机数,根据同态性质,计算
Figure BDA0003490202440000071
并将其发送至参与方B,参与方B接收后,解密得到
Figure BDA0003490202440000072
Step 6:参与方B将
Figure BDA0003490202440000073
发送至参与方A。Step 7:两个参与方分别更新己方模型。可以看出,该方案中,参与方A拥有己方的明文模型权重,即
Figure BDA0003490202440000074
尽管因此可以独立计算己方的预测输出,即
Figure BDA0003490202440000075
这会导致参与方B的标签泄漏。
第二种方案如图2所示。Step 1:两个参与方各自采样一个小批量(mini-batch)的训练数据,即XA和XB。Step 2:对称地,每个参与方生成噪声ε*,计算并发送[XA RAA]B或[XBRBB]A,接收对方发过来的密文并解密。Step 3:对称地,每个参与方计算Z*’,参与方A将ZA’发送至参与方B,参与方B计算Z,并使用sigmoid函数计算预测值。Step4:参与方B计算梯度乘子,加密并发送至参与方A。Step 5:参与方A根据生成随机数φ,根据同态性质,计算
Figure BDA0003490202440000076
并发送至参与方B,参与方B接收后,解密得到
Figure BDA0003490202440000077
Step6:参与方B将
Figure BDA0003490202440000078
发送至参与方A。Step7:两个参与方分别更新己方模型。注:如上图左下角红色字体所描述,虽然双方仅更新模型的一份秘密,即但由于模型的另一份秘密是固定的,因此这与更新模型
Figure BDA0003490202440000079
是等价的。可以看出,该方案与第一种方案相比,参与方A无法拥有己方的明文模型权重,即
Figure BDA00034902024400000710
因此无法独立计算己方的预测输出,即
Figure BDA00034902024400000711
然而,由于参与方A获得了己方的明文模型梯度,即
Figure BDA00034902024400000712
在多轮训练迭代之后,参与方A仍然可以根据累积的模型梯度反推出参与方B的标签,造成数据泄漏。
为了解决上述两种方案所存在的技术问题,本申请实施例提供了一种基于联邦学习的模型训练方法。在两方纵向逻辑回归的训练或推理过程中,例如,在初始化、前向计算过程中和后向传播过程中,通过基于同态加密和秘密分享技术来保证参与方的数据隐私信息,特别的,与相关技术的方案相比,本申请的技术方案进一步保护了参与方A的模型权重和模型梯度,并保护了参与方B的标签信息y,提高算法协议的安全性。
图3示出了本申请一个实施例提供的实施环境的示意图。该纵向联邦学习系统包括2个节点设备(也称为参与方),即节点设备P1、节点设备P2。任意一个节点设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。且两个节点设备拥有不同的数据源,例如不同公司的数据源,或同一公司不同部门的数据源。不同节点设备负责对联邦学习模型的不同组成部分(也称为子模型)进行迭代训练。
节点设备P1或节点设备P2中的一个节点设备中存储有训练样本对应的样本标签,拥有样本标签的节点设备对应为本申请中的第二参与方。第一参与方拥有同态加密的私钥skA和公钥pkA,第二参与方拥有公钥pkA,第一参与方不会向第二参与方披露私钥skA。对应的,第二参与方拥有同态加密的私钥skB和公钥pkB,第一参与方拥有公钥pkB,第二参与方不会向第一参与方披露私钥skB。公钥用于加密模型和模型训练或推理过程中的中间计算结果。
不同节点设备之间通过无线网络或有线网络相连。
在一种可能的实施方式中,上述联邦学习系统中的节点设备可以组成为一区块链,而节点设备即为区块链上的节点,模型训练过程中所涉及的数据可保存于区块链上。
请参考图4,其示出了本申请一个示例性实施例提供的基于联邦学习的模型训练方法的流程图。本实施例以该方法用于联邦学习系统为例进行说明,该联邦学习系统中包括第一参与方和第二参与方,第二参与方拥有样本标签。该方法包括如下步骤:
步骤401,第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子。
在一种可能的实施方式中,在参与方进行模型迭代训练之前,双方联合计算进行模型初始化,生成模型的权重。在模型初始化阶段,第一参与方负责生成第一模型权重WA以及第四模型权重RB,第二参与方负责生成第二模型权重RA以及第三模型权重WB。双方进行数据交换,第一参与方对第四模型权重RB进行加密生成第四模型权重密文[RB]A,并向第二参与方发送第四模型权重密文[RB]A;第二参与方对第二模型权重RA进行加密生成第二模型权重密文[RA]B,并向第一参与方发送第二模型权重密文[RA]B。其中,[X]A表示X的密文,且密钥存在第一参与方(参与方A),即只能通过第一参与方的私钥解密得到明文X;[X]B表示X的密文,且密钥存在第二参与方(参与方B),即只能通过第二参与方的私钥解密得到明文X。
因此,两个参与方均拥有一部分己方模型的权重明文以及一部分己方模型的权重密文,而无法得到己方完整模型的权重明文。
前向计算阶段,第一参与方基于同态加密算法,对第一模型权重WA、第二模型权重密文[RA]B以及第一训练样本XA进行前向计算,生成第一梯度乘子算子ZA’。其中,第一梯度乘子算子ZA’是用于计算联合模型的梯度乘子▽Z的算子,其中联合模型是指第一参与方与第二参与方的联合模型,由上述四部分模型权重构成,梯度乘子▽Z是指逻辑回归算法中,模型损失函数对模型计算结果Z的导数,梯度乘子▽Z用于计算模型梯度以更新模型权重。
步骤402,第一参与方向第二参与方发送第一梯度乘子算子。
其中,第二模型权重密文由第二参与方初始化并加密生成。
在一种可能的实施方式中,由拥有样本标签的参与方负责计算梯度乘子,以免样本标签泄露。本申请实施例中第二参与方拥有样本标签,因此第一参与方计算第一梯度乘子算子后,向第二参与方发送第一梯度乘子算子。由于第一梯度乘子算子是第一模型权重、第二模型权重密文以及第一训练样本等多项数据经过运算后的结果,因此第二参与方无法单独获取到第一模型权重、第二模型权重密文或第一训练样本等数据。
步骤403,第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子。
其中,第四模型权重密文由所述第一参与方初始化并加密生成.
当第二参与方接收到第一参与方发送的第四模型权重密文[RB]A后,第二参与方基于同态加密算法,对第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子ZB’。其中,第二梯度乘子算子ZB’是用于计算联合模型的梯度乘子▽Z的算子。
值得一提的是,第二参与方(即拥有样本标签的参与方)并不一定拥有实际的第二训练样本,当第二参与方未拥有第二训练样本时,第二训练样本的取值为0。
步骤404,第二参与方基于样本标签、第一梯度乘子算子和第二梯度乘子算子,生成梯度乘子。
其中,梯度乘子为损失函数对模型计算结果的导数。
第二参与方拥有各个训练样本的样本标签y,基于样本标签、第一梯度乘子算子和第二梯度乘子算子,生成梯度乘子。
具体的,第二参与方首先基于第一梯度乘子算子和第二梯度乘子算子得到联合模型的计算结果Z,Z=ZA’+ZB’。第二参与方使用S型生长曲线函数(Sigmoid函数)对模型计算结果Z进行归一化,得到联合模型本轮计算的预测值
Figure BDA0003490202440000101
则梯度乘子▽Z为预测值与样本标签y的差值,即
Figure BDA0003490202440000102
步骤405,第二参与方向第一参与方发送梯度乘子密文。
在一种可能的实施方式中,第二参与方基于己方的密钥对梯度乘子▽Z进行加密,得到梯度乘子密文[▽Z]B,并将梯度乘子密文[▽Z]B发送至第一参与方。
步骤406,第二参与方基于梯度乘子进行反向计算,更新第三模型权重。
在逻辑回归算法中,计算机设备在计算得到模型预测值后,需要基于模型预测值和样本标签进行反向计算,利用梯度乘子更新模型权重。因此,第二参与方负责基于梯度乘子进行反向计算,更新第二参与方对应的模型权重。在一种可能的实施方式中,由于第二参与方只拥有第三模型权重的明文,无法得到第四模型权重的明文,且更新模型的部分权重相当于更新整个模型,因此第二参与方基于梯度乘子更新第三模型权重,第四模型权重密文不变。
值得一提的是,步骤405与步骤406并无严格的先后顺序,第二参与方可以先执行步骤405,或者先执行步骤406,或者同步执行步骤405和步骤406。
步骤407,第一参与方基于梯度乘子密文进行反向计算,更新第二模型权重密文。
为了避免第一参与方通过多次更新迭代推测出第二参与方的样本标签,第一参与方基于梯度乘子密文更新模型权重,得到更新后的第二模型权重密文。即第一参与方始终无法得知己方完整模型的权重明文,也无法得知梯度乘子明文,从而可以避免相关技术中的标签泄露问题。
可选的,第一参与方直接基于梯度乘子密文更新第二模型权重密文,或者,第一参与方基于梯度乘子密文和同态加密算法,计算模型梯度的密文,并将模型梯度密文发送给第二参与方,从而由第二参与方解密并更新第二模型权重(第二参与方拥有第二模型权重的明文),然后由第二参与方再次将第二模型权重密文发送给第一参与方,以进行下一轮模型训练。
可选的,第一参与方直接更新第二模型权重密文以进行模型更新,或者,第一参与方通过同态加密技术融合第一模型权重密文和第二模型权重密文,通过更新完整模型权重密文实现模型更新。
综上所述,本申请实施例中,由第二参与方基于第一梯度乘子算子和第二梯度乘子算子计算模型梯度乘子,并将梯度乘子加密发送至第一参与方,使第一参与方始终以梯度乘子密文更新得到模型权重的密文,因此第一参与方无法独立计算己方的模型预测结果,也无法计算己方完整模型的梯度,从而使第一参与方不能够通过多轮训练累积模型梯度反推出第二参与方的样本标签,提高了通过联邦学进行模型训练的安全性,避免数据泄露。
在一种可能的实施方式中,在两个参与方进行前向计算之前,双方相互通信,联合进行样本对齐,从而使用相同样本标识的样本数据进行模型训。例如同一用户对应的第一训练样本和第二训练样本。因此在上述步骤401之前,本申请实施例提供的基于联邦学习的模型训练方法还包括如下步骤:
步骤a,第一参与方与第二参与方进行样本对齐,确定交集样本标识。
假设第一参与方和第二参与方分别拥有数据集DA和DB。纵向联邦学习的两个参与方需要将他们拥有的训练数据进行对齐,筛选出他们拥有的数据的样本身份标识(Identity Document,ID)交集部分,即求数据集合DA和DB里相同样本ID的交集,且不能泄露非交集的部分的样本ID信息。这一步是两方安全样本对齐,可以使用的算法包括基于盲签名-RSA(Blind RSA)的算法,基于迪菲-赫尔曼(Diffie–Hellman)的算法,基于弗里德曼(Freedman)协议的算法等。
需要说明的是,为了减少计算量以及获得更好的训练效果,通常每次迭代前,第一参与方和第二参与方分别从数据交集中抽取一个小批量(mini-batch)的训练样本,例如,每个小批量包括128个样本。这种情况下,需要第一参与方和第二参与方协调进行数据的分批和小批量的选择,以便所有所述两个参与方在每次迭代中选择的小批量数据中的样本也是对齐的。
为方便描述,本申请中两个参与方的小批量特征分别记作XA和XB,第二参与方的小批量标签记作y。
步骤b,第一参与方基于所述交集样本标识确定所述第一训练样本。
步骤c,第二参与方基于所述交集样本标识确定所述第二训练样本。
在一种可能的实施方式中,第一参与方和第二参与方的每条训练样本均对应有样本标识,相同样本标识的训练样本属于同一样本对象(例如同一用户)。第一参与方与第二参与方在前向计算之前联合计算进行样本对齐,确定出样本ID的交集。第一参与方将己方数据集中交集ID对应的训练样本确定为第一训练样本,第二参与方将己方数据集中交集ID对应的训练样本确定为第二训练样本。
可选的,第一参与方和第二参与方将全部交集ID对应的训练样本用于每一轮模型训练,或者双方协商选择小批量交集ID的训练样本进行训练。当采用小批量数据进行训练时,双方可以始终使用同一批样本数据,也可以在每一轮或每几轮迭代之前更新一次训练样本。本申请实施例对此不作限定。
请参考图5,其示出了本申请另一个示例性实施例提供的基于联邦学习的模型训练方法的流程图。本实施例以该方法用于联邦学习系统为例进行说明,该联邦学习系统中包括第一参与方和第二参与方,第二参与方拥有样本标签。该方法包括如下步骤:
步骤501,第一参与方对第一模型权重和第二模型权重密文进行标量加法加密处理,得到参与方模型密文。
其中,参与方模型密文是指第一参与方对应的完整模型权重的密文,即由第一模型权重和第二模型权重所组成的模型的权重密文。
在一种可能的实施方式中,第一参与方在初始化阶段,在生成第一模型权重并接收到第二模型权重密文后,通过标量加法技术得到参与方模型密文。具体的,第一参与方基于第二参与方的公钥对第一模型权重进行加密处理,得到第一模型权重密文,然后基于同态加密技术对第一模型密文和第二模型密文进行加密处理,得到参与方模型密文,即
Figure BDA0003490202440000121
其中,
Figure BDA0003490202440000122
如图6所示,其示出了本申请实施例中模型更新的具体过程。
在后续的前向计算以及反向计算阶段,第一参与方基于参与方模型密文计算第一梯度乘子算子以及第一模型梯度,并反向更新参与方模型密文,从而在不清楚己方模型权重和第一梯度乘子算子的情况下进行模型训练。
步骤502,第一参与方基于参与方模型密文以及第一训练样本进行前向计算,生成第一梯度乘子算子。
在一种可能的实施方式中,第一参与方需要在第二参与方的帮助下,基于参与方模型密文以及第一训练样本进行前向计算,步骤502包括如下步骤:
步骤502a,第一参与方生成第一模型噪声。
由于第一参与方需要与第二参与方进行数据交互,将参与方模型密文以及第一训练样本的乘积发送给第二参与方以计算第二梯度乘子算子,因此为了避免数据泄露,第一参与方需生成与参与方模型密文相同维度的第一模型噪声εA
值得一提的是,第一模型噪声εA的维度由样本条数以及第一参与方的模型输入维度决定,即εA∈RBS×OUT
步骤502b,第一参与方对第一模型噪声、参与方模型密文以及第一训练样本进行标量加密处理,生成第一模型输出密文。
第一参与方对第一模型噪声、参与方模型密文以及第一训练样本进行标量加密处理。具体的,第一参与方首先对参与方模型密文
Figure BDA0003490202440000131
以及第一训练样本XA进行标量乘法加密处理,然后对计算得到的乘积密文
Figure BDA0003490202440000132
和第一模型噪声进行标量乘法加密处理,生成第一模型输出密文
Figure BDA0003490202440000133
步骤502c,第一参与方基于第一模型输出密文与第二参与方进行数据交互,生成第一梯度乘子算子。
第一参与方向第二参与方发送第一模型输出密文,并接收第二参与方发送的第二模型输出密文,以使双方完成对梯度乘子算子的计算。
具体的,步骤502c包括如下步骤:
步骤一,第一参与方向第二参与方发送第一模型输出密文。
第一参与方向第二参与方发送第一模型输出密文,使第二参与方利用私钥对第一模型输出密文解密,并计算得到第二梯度乘子算子。
步骤二,第一参与方接收第二参与方发送的第二模型输出密文并解密,得到第二模型计算结果。
另一方面,第二参与方利用标量加密技术计算得到第二模型输出密文[XBRBB]A并发送给第一参与方,第一参与方基于私钥对第二模型输出密文解密,得到第二模型计算结果XBRBB
值得一提的是,第二模型计算结果中包含了第二模型噪声εB,因此不会导致第二参与方的信息泄露。
步骤三,第一参与方基于第一模型噪声和第二模型输出结果,生成第一梯度乘子算子。
在一种可能的实施方式中,由于梯度乘子▽Z是损失函数对模型计算结果Z的导数,
Figure BDA0003490202440000141
因此要想通过第一梯度乘子算子ZA’和第二梯度乘子算子ZB’计算得到Z,第一参与方需要基于第一模型噪声和第二模型计算结果,生成第一梯度乘子算子,即需要使第一梯度乘子算子中携带第一模型噪声的算式,第一模型噪声的相反数(-εA),以在后续第二参与方计算梯度乘子时将第二梯度乘子算子中的第一模型噪声抵消。具体的,第一参与方计算第一模型噪声的相反数与第二模型计算结果的算术和,确定为第一梯度乘子算子,即第一梯度乘子算子ZA’=-εA+XBRBB
步骤503,第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子。
相应的,第二参与方同步进行前向计算,与第一参与方进行数据交互以生成第二梯度乘子算子,步骤503包括如下步骤:
步骤503a,第二参与方生成第二模型噪声。
由于第二参与方需要与第一参与方进行数据交互,将参与方模型密文以及第二训练样本的乘积(实际的模型计算结果)发送给第一参与方以计算第二梯度乘子算子,因此为了避免数据泄露,第二参与方需生成与参与方模型密文相同维度的第二模型噪声εB。值得一提的是,第二模型噪声εB的维度由样本条数以及第二参与方的模型输入维度决定,即εB∈RBS×OUT
步骤503b,第二参与方对第二模型噪声、第二训练样本以及第四模型权重密文进行标量加密处理,生成第二模型输出密文。
第二参与方对第二模型噪声、第二训练样本以及第四模型权重密文进行标量加密处理。具体的,第二参与方首先对第四模型权重密文
Figure BDA0003490202440000142
以及第二训练样本XB进行标量乘法加密处理,然后对计算得到的乘积密文
Figure BDA0003490202440000143
和第二模型噪声进行标量乘法加密处理,生成第二模型输出密文
Figure BDA0003490202440000144
步骤503c,第二参与方基于第二模型输出密文与第一参与方进行数据交互,生成第二梯度乘子算子。
第一参与方向第二参与方发送第一模型输出密文,并接收第二参与方发送的第二模型输出密文,同样的,第二参与方向第一参与方发送第二模型输出密文,并接收第一参与方发送的第一模型输出密文,以使双方完成对梯度乘子算子的计算。
具体的,步骤503c包括如下步骤:
步骤四,第二参与方向第一参与方发送第二模型输出密文。
第二参与方向第一参与方发送第二模型输出密文,使第一参与方利用私钥对第二模型输出密文解密,并计算得到第一梯度乘子算子。
步骤五,第二参与方接收第一参与方发送的第一模型输出密文并解密,得到第一模型计算结果。
另一方面,第一参与方利用标量加密技术计算得到第一模型输出密文
Figure BDA0003490202440000151
并发送给第二参与方,第二参与方基于私钥对第一模型输出密文解密,得到第一模型计算结果
Figure BDA0003490202440000152
值得一提的是,第一模型计算结果中包含了第一模型噪声εA,因此不会导致第一参与方的信息泄露。
步骤六,第二参与方基于第一模型计算结果、第二训练样本、第三模型权重以及第二模型噪声,生成第二梯度乘子算子,以使第一梯度乘子算子与第二梯度乘子算子之和为梯度乘子。
在一种可能的实施方式中,梯度乘子需要包含完整模型的计算结果,第四模型权重部分由第一参与方解密得到,因此第三模型权重部分需要第二参与方计算,此外,第一参与方的模型计算结果由第一参与方发送给第二参与方。由于第二参与方发送给第一参与方的第二模型输出密文中包含第二模型噪声,因此第二参与方需要在第二梯度乘子算子中添加第二模型噪声的相反数。具体的,第二参与方计算第二梯度乘子算子ZB’,
Figure BDA0003490202440000153
步骤504,第一参与方向第二参与方发送第一梯度乘子算子。
第一参与方在步骤502之后,向第二参与方发送第一梯度乘子算子,以使第二参与方基于第一梯度乘子算子和第二梯度乘子算子计算得到梯度乘子。
步骤505,第二参与方基于样本标签、第一梯度乘子算子和第二梯度乘子算子,生成梯度乘子。
具体的,第二参与方首先基于第一梯度乘子算子和第二梯度乘子算子计算之和得到联合模型的计算结果Z,Z=ZA’+ZB’。然后,第二参与方对联合模型的计算结果Z进行归一化,得到联合模型的预测值
Figure BDA0003490202440000154
最后,第二参与方基于预测值和样本标签计算得到梯度乘子▽Z,
Figure BDA0003490202440000161
步骤506,第二参与方向第一参与方发送梯度乘子密文。
在一种可能的实施方式中,为了避免样本标签的泄露,第二参与方并不向第一参与方直接发送梯度乘子,而是先利用私钥对梯度乘子加密,生成梯度乘子密文[▽Z]B,然后向第一参与方发送梯度乘子密文,使第一参与方基于梯度乘子密文更新模型权重密文。
步骤507,第二参与方基于梯度乘子进行反向计算,更新第三模型权重。
在反向计算阶段,第二参与方拥有样本标签,不存在标签泄露问题,因此可以直接基于梯度乘子更新第三模型权重,即自身模型的明文部分。在一种可能的实施方式中,步骤507包括如下步骤:
步骤507a,第二参与方基于第二训练样本的转置以及梯度乘子,生成第二模型梯度。
逻辑回归算法中,计算机设备根据模型梯度所指示的权重更新方向更新模型权重,学习率是指梯度下降的步长。而模型梯度为样本向量的转置与梯度乘子的乘积,即▽W=XT▽Z。
对于第二参与方,其直接基于梯度乘子额第二训练样本,计算得到第二模型梯度。梯度乘子是基于联合模型的计算结果得到的,因此该第二模型梯度为第二参与方对应的完整模型的模型梯度,即
Figure BDA0003490202440000162
Figure BDA0003490202440000163
步骤507b,第二参与方基于第二模型梯度和学习率更新第三模型权重。
在一种可能的实施方式中,由于更新部分模型权重相当于更新完整模型的权重,因此第二参与方仅更新已知明文的第三模型权重WB,更新后的第三模型权重WB’是基于第二模型梯度和学习率以及原第三模型权重WB得到的,
Figure BDA0003490202440000164
Figure BDA0003490202440000165
η为学习率。
步骤508,第一参与方基于梯度乘子密文进行反向计算,更新参与方模型密文。
相应的,第一参与方接收到梯度乘子密文后,更新参与方模型密文。具体的,步骤508包括如下步骤:
步骤508a,第一参与方对第一训练样本的转置以及梯度乘子密文进行标量乘法加密处理,生成第一模型梯度密文。
由于梯度乘子为训练样本的特征数据的转置与梯度乘子的乘积,因此第一模型梯度密文
Figure BDA0003490202440000171
为第一训练样本的转置与梯度乘子密文的标量乘法加密处理结果
Figure BDA0003490202440000172
步骤508b,第一参与方基于第一模型梯度密文和学习率更新参与方模型密文。
在一种可能的实施方式中,第一参与方可以直接更新己方完整模型权重,即参与方模型的权重,更新后的参与方模型密文
Figure BDA0003490202440000173
是基于第一模型梯度密文和学习率以及原参与方模型密文
Figure BDA0003490202440000174
得到的,
Figure BDA0003490202440000175
η为学习率。
本申请实施例中,第一参与方在初始化阶段融合第一模型权重和第二模型权重密文,得到参与方模型密文,从而在参与方模型密文的基础上基于梯度乘子密文进行模型更新,全程无法得知己方完整模型的计算结果以及梯度乘子,因此无法推测得到第二参与方的样本标签,提高了联邦学习的安全性和保密性。
上述实施例示出了第一种改进方案,在另一种可能的实施方式中,前向计算阶段模型预测值还可以通过另一种方式生成,以减少第一参与方与第二参与方的交互次数。
即,上述步骤502还可以包括如下步骤:
步骤502d,第一参与方接收第二参与方发送的第二模型输出密文并解密,得到第二模型计算结果,第二模型输出密文是由第二参与方对第二模型噪声、第二训练样本以及第四模型权重密文进行标量加密处理得到的。
上述第一种改进方案中,第一参与方与第二参与方经过3次通信完成前向计算,得到模型的预测值。在另一种可能的实施方式中,第一参与方无需生成第一模型噪声,第一参与方通过调整第一梯度乘子算子的表达式,直接根据第二模型输出密文生成第一梯度乘子算子密文,同时第二参与方负责调整第二梯度乘子算子的表达式计算梯度乘子,无需额外获取第一参与方的模型计算结果,从而能够减少一次通信,进一步提高联邦学习的安全性和保密性。
图7示出了本申请实施例提供的第二种改进方案的具体流程。前向计算阶段,第二参与方生成第二模型噪声εB,进而基于第四模型密文、第二模型噪声和第二训练样本进行标量加密计算,得到第二模型计算结果的密文,即第二模型输出密文[XBRBB]A。第二参与方将第二模型输出密文发送至第一参与方,第一参与方接收第二参与方发送的第二模型输出密文并解密,得到第二模型计算结果。
步骤502e,第一参与方对第二模型输出密文、第一训练样本以及参与方模型密文进行标量加密处理,生成第一梯度乘子算子密文;向第二参与方发送第一梯度乘子算子密文。
第一参与方接收到第二模型输出密文[XBRBB]A后,利用私钥对其进行解密,得到第二模型计算结果XBRBB。第一参与方基于第二模型输出密文、第一训练样本以及参与方模型密文进行标量加密处理,生成第一梯度乘子算子密文。具体的,第一参与方先对第一训练样本和第二模型权重密文进行标量乘法加密处理,然后对得到的乘积
Figure BDA0003490202440000181
与第二模型计算结果XBRBB进行标量加法加密处理,生成第一梯度乘子算子的密文
Figure BDA0003490202440000182
第一参与方将第一梯度乘子算子的密文
Figure BDA0003490202440000183
发送至第二参与方。
上述步骤503还可以包括如下步骤:
步骤503d,第二参与方生成第二模型噪声。
步骤503d的具体实施方式可以参考上述步骤503a,本申请实施例在此不再赘述。
步骤503e,第二参与方对第二模型噪声、第二训练样本以及第四模型权重密文进行标量加密处理,生成第二模型输出密文;向第一参与方发送第二模型输出密文。
步骤503f,第二参与方基于第二训练样本、第三模型权重以及第二模型噪声生成第二梯度乘子算子,以使第二梯度乘子算子与第一梯度乘子算子之和为梯度乘子。
同样的,第二参与方调整第二梯度乘子算子,以使第二梯度乘子算子与第一梯度乘子算子之和等于梯度乘子。在一种可能的实施方式中,由于第一梯度乘子算子中仅包含第二参与方的第四模型权重对应的模型计算结果,且还包含有第二模型噪声,因此第二参与方基于第二训练样本、第三模型权重以及第二模型噪声生成第二梯度乘子算子。具体的,第二参与方计算第二训练样本与第三模型权重的乘积,然后将该乘积与第二模型噪声之差XBWBB确定为第二梯度乘子算子。
上述步骤505还可以包括如下步骤:
步骤505a,第二参与方接收第一梯度乘子算子密文并解密,得到第一梯度算子。
第二参与方接收第一梯度乘子算子密文
Figure BDA0003490202440000191
并解密,得到第一梯度算子
Figure BDA0003490202440000192
步骤505b,第二参与方对第一梯度乘子算子和第二梯度乘子算子进行加法运算,得到联合模型的计算结果,联合模型由第一模型权重、第二模型权重、第三模型权重以及第四模型权重组成。
第二参与方计算第一梯度算子与第二梯度算子的算术和,得到联合模型的计算结果Z,即
Figure BDA0003490202440000193
步骤505c,第二参与方基于样本标签与联合模型的计算结果确定梯度乘子。第二参与方对联合模型的计算结果Z进行归一化,得到联合模型的预测值
Figure BDA0003490202440000194
最后,第二参与方基于预测值和样本标签计算得到梯度乘子▽Z,
Figure BDA0003490202440000195
本申请实施例中,第一参与方和第二参与方通过调整前向计算阶段的梯度乘子算子的计算方式,减少了二者的通信次数,由于模型训练需要多次迭代,因此在模型训练完整的流程上,二者之间减少了多次通信交互,从而进一步提高了联邦学习模型训练的安全性和保密性。
上述两种改进方案中,第一参与方通过在初始化阶段融合得到参与方模型密文,实现对参与方模型密文的更新。在另一种可能的实施方式中,第一参与方也可以直接对第二模型权重密文进行更新。请参考图8,其示出了本申请另一个示例性实施例提供的基于联邦学习的模型训练方法的流程图。本实施例以该方法用于联邦学习系统为例进行说明,该联邦学习系统中包括第一参与方和第二参与方,第二参与方拥有样本标签。该方法包括如下步骤:
步骤801,第一参与方生成第一模型噪声。
步骤801的具体实施方式可以参考上述步骤502a,本申请实施例在此不再赘述。
步骤802,第一参与方对第一训练样本、第二模型权重密文以及第一模型噪声进行标量加密处理,生成第一模型输出密文。
与第一种改进方案相似的是,第一参与方生成第一模型输出密文,以供第二参与方解密并生成第二模梯度乘子算子。然而区别在于,第一种改进方案基于参与方模型密文生成第一模型输出密文,而本申请实施例的第三种改进方案直接基于第二模型权重密文生成第一模型输出密文。
具体的,如图9所示,第一参与方首先对第二模型权重密文[RA]B以及第一训练样本XA进行标量乘法加密处理,然后对计算得到的乘积密文XA[RA]B和第一模型噪声进行标量乘法加密处理,生成第一模型输出密文[XA RAA]B
步骤803,第一参与方基于第一模型输出密文与第二参与方进行数据交互,生成第一梯度乘子算子。
第一参与方向第二参与方发送第一模型输出密文,并接收第二参与方发送的第二模型输出密文,以使双方完成对梯度乘子算子的计算。
具体的,步骤803包括如下步骤:
步骤803a,第一参与方向第二参与方发送第一模型输出密文。
第一参与方向第二参与方发送第一模型输出密文,使第二参与方利用私钥对第一模型输出密文解密,并计算得到第二梯度乘子算子。
步骤803b,第一参与方接收第二参与方发送的第二模型输出密文并解密,得到第二模型计算结果。
另一方面,第二参与方利用标量加密技术计算得到第二模型输出密文[XBRBB]A并发送给第一参与方,第一参与方基于私钥对第二模型输出密文解密,得到第二模型计算结果XBRBB
值得一提的是,第二模型计算结果中包含了第二模型噪声εB,因此不会导致第二参与方的信息泄露。
步骤803c,第一参与方基于第一模型噪声、第一模型权重、第一训练样本以及第二模型计算结果,生成第一梯度乘子算子。
在一种可能的实施方式中,由于梯度乘子▽Z是损失函数对模型计算结果Z的导数,
Figure BDA0003490202440000201
且第一参与方发送给第二参与方用于计算第二梯度乘子算子的第一模型输出密文中,仅包含第二模型权重部分对应的计算结果,未包含第一模型权重部分的计算结果,因此要想通过第一梯度乘子算子ZA’和第二梯度乘子算子ZB’计算得到Z,第一参与方需要基于第一模型噪声、第一模型权重、第一训练样本和第二模型计算结果,生成第一梯度乘子算子,即需要使第一梯度乘子算子中携带第一模型噪声的算式,第一模型噪声的相反数(-εA),以在后续第二参与方计算梯度乘子时将第二梯度乘子算子中的第一模型噪声抵消。具体的,第一参与方计算第一模型噪声的相反数-εA、第一模型权重部分的计算结果XAWA以及第二模型计算结果XBRBB三者的算术和,确定为第一梯度乘子算子,即第一梯度乘子算子ZA’=-εA+XAWA+XBRBB
步骤804,第二参与方生成第二模型噪声。
步骤805,第二参与方对第二模型噪声、第四模型权重密文以及第二训练样本进行标量加密处理,生成第二模型输出密文。
步骤804至步骤805的具体实施方式可以参考上述步骤503a至步骤503b,本申请实施例在此不再赘述。
步骤806,第二参与方基于第二模型输出密文与第一参与方进行数据交互,生成第二梯度乘子算子。
相应的,第二参与方同步进行前向计算,与第一参与方进行数据交互以生成第二梯度乘子算子,步骤806包括如下步骤:
步骤806a,第二参与方向第一参与方发送第二模型输出密文。
步骤806b,第二参与方接收第一参与方发送的第一模型输出密文并解密,得到第一模型计算结果。
步骤806a至步骤806b的具体实施方式可以参考上述步骤四至步骤五,本申请实施例在此不再赘述。
步骤806c,第二参与方基于第一模型计算结果、第二训练样本、第三模型权重以及第二模型噪声生成第二梯度乘子算子,第一梯度乘子算子与第二梯度乘子算子之和为梯度乘子。
在一种可能的实施方式中,梯度乘子需要包含完整模型的计算结果,第四模型权重部分由第一参与方解密得到,因此第三模型权重部分需要第二参与方计算,此外,第一参与方的模型计算结果由第一参与方发送给第二参与方。由于第二参与方发送给第一参与方的第二模型输出密文中包含第二模型噪声,因此第二参与方需要在第二梯度乘子算子中添加第二模型噪声的相反数。具体的,第二参与方计算第二梯度乘子算子ZB’,ZB’=XBWBB+(XA RAA)。
步骤807,第一参与方向第二参与方发送第一梯度乘子算子。
步骤807的具体实施方式可以参考上述步骤504,本申请实施例在此不再赘述。
步骤808,第二参与方基于样本标签、第一梯度乘子算子和第二梯度乘子算子,生成梯度乘子。
具体的,第二参与方首先基于第一梯度乘子算子和第二梯度乘子算子计算之和得到联合模型的计算结果Z,Z=ZA’+ZB’。然后,第二参与方对联合模型的计算结果Z进行归一化,得到联合模型的预测值
Figure BDA0003490202440000221
最后,第二参与方基于预测值和样本标签计算得到梯度乘子▽Z,
Figure BDA0003490202440000222
步骤809,第二参与方向第一参与方发送梯度乘子密文。
步骤810,第二参与方基于梯度乘子进行反向计算,更新第三模型权重。
在反向计算阶段,第二参与方拥有样本标签,不存在标签泄露问题,因此可以直接基于梯度乘子更新第三模型权重,即自身模型的明文部分。在一种可能的实施方式中,步骤810包括如下步骤:
步骤810a,第二参与方基于梯度乘子以及第二训练样本生成第二模型梯度。
步骤810b,第二参与方基于第二模型梯度和学习率更新第三模型权重。
逻辑回归算法中,计算机设备根据模型梯度所指示的权重更新方向更新模型权重,学习率是指梯度下降的步长。而模型梯度为样本向量的转置与梯度乘子的乘积,即▽W=XT▽Z。
对于第二参与方,其直接基于梯度乘子额第二训练样本,计算得到第二模型梯度。梯度乘子是基于联合模型的计算结果得到的,因此该第二模型梯度为第二参与方对应的完整模型的模型梯度,即
Figure BDA0003490202440000223
Figure BDA0003490202440000224
在一种可能的实施方式中,由于更新部分模型权重相当于更新完整模型的权重,因此第二参与方仅更新已知明文的第三模型权重WB,更新后的第三模型权重WB’是基于第二模型梯度和学习率以及原第三模型权重WB得到的,
Figure BDA0003490202440000225
Figure BDA0003490202440000226
η为学习率。
步骤811,第二参与方基于梯度乘子密文进行反向计算,更新第二模型权重密文。
在一种可能的实施方式中,由于第二模型权重是由第二参与方在初始化阶段生成并加密的,因此可以由第二参与方在反向计算阶段根据梯度乘子密文更新第二模型权重密文,并向第一参与方发送第二模型权重密文进行下一轮模型训练。
由于第二模型权重密文的更新需要计算第一参与方的模型梯度,而模型梯度的计算又需要训练样本,为了避免第一训练样本的泄露,第二参与方需要与第一参与方进行交互通信,与第一参与方联合计算模型梯度。步骤811包括如下步骤:
步骤811a,第一参与方生成随机数。
为了避免第二参与方直接获取到第一参与方的模型梯度,导致推测得到第一训练样本,第一参与方生成随机数,用于对第一模型梯度进行加密。
具体的,第一参与方根据模型输入维度和模型输出维度生成随机数
Figure BDA0003490202440000231
Figure BDA0003490202440000232
步骤811b,第一参与方对第一训练样本的转置、梯度乘子密文以及随机数进行标量加密处理,生成模型梯度密文。
由于梯度乘子为训练样本的特征数据的转置与梯度乘子的乘积,因此第一模型梯度密文
Figure BDA0003490202440000233
为第一训练样本的转置与梯度乘子密文的标量乘法加密处理结果
Figure BDA0003490202440000234
为了避免第二参与方破解得到第一训练样本,第一参与方还对第一模型梯度密文与随机数进行标量加法加密处理,得到模型梯度密文,即
Figure BDA0003490202440000235
步骤811c,第一参与方向第二参与方发送模型梯度密文,以使第二参与方对模型梯度密文解密生成第一模型梯度信息,基于第一模型梯度信息更新第二模型权重以及向第一参与方发送更新后的第二模型权重密文。
步骤811d,第一参与方接收第二模型权重密文,并基于随机数和学习率更新第一模型权重。
第一参与方向第二参与方发送模型梯度密,使第二参与方基于第一模型梯度信息更新第二模型权重。
具体的,如图9所示,第二参与方接收到模型梯度密文后,利用私钥对其进行解密,得到第一模型梯度信息
Figure BDA0003490202440000236
接着,第二参与方基于第一模型梯度信息更新第二模型权重,更新后的第二模型权重
Figure BDA0003490202440000237
第二参与方对更新后的第二模型权重RA’进行加密处理,生成更新后的第二模型权重密文,并将第二模型权重密文发送给第一参与方。
另一方面,第一参与方还基于随机数和学习率更新第一模型权重,更新后的第一模型权重
Figure BDA0003490202440000238
本申请实施例中,第一参与方基于梯度乘子密文直接更新第二模型权重密文,并且由第二参与方负责计算更新后的第二模型权重,第二参与方将更新后的第二模型权重加密发送至第一参与方,杜绝了第一参与方获取完整模型明文推测模型预测值,以及获取梯度乘子的可能,确保第二参与方的样本标签不会泄露。
上述实施例示出了第三种改进方案,即由第二参与方负责更新第二模型权重,并将更新后的第二模型权重密文发送至第一参与方。在另一种可能的实施方式中,第二参与方将梯度乘子密文发送至第一参与方,第一参与方可以直接根据梯度乘子密文更新第二模型权重密文,以减少通信次数。
即,上述步骤811还可以包括如下步骤:
步骤811e,第一参与方生成随机数。
步骤811e可以参考上述步骤811a,本申请实施例在此不再赘述。
步骤811f,第一参与方对第一训练样本的转置、梯度乘子密文以及随机数进行标量加密处理,生成模型梯度密文。
其中,模型梯度密文是指第一模型梯度的密文。具体的,如图10所示,由于梯度乘子为训练样本的特征数据的转置与梯度乘子的乘积,因此第一模型梯度密文
Figure BDA0003490202440000241
为第一训练样本的转置与梯度乘子密文的标量乘法加密处理结果
Figure BDA0003490202440000242
为了避免第二参与方在下一轮训练中破解得到第一训练样本,第一参与方还对第一模型梯度密文与随机数进行标量加法加密处理,得到模型梯度密文
Figure BDA0003490202440000243
Figure BDA0003490202440000244
步骤811g,第一参与方基于随机数和学习率更新第一模型权重,并基于模型梯度密文和学习率更新第二模型权重密文。
在一种可能的实施方式中,由第一参与方进行第二模型权重密文的更新。第一参与方基于学习率和模型梯度密文,更新第二模型权重密文。更新后的第二模型权重密文
Figure BDA0003490202440000245
本申请实施例中,第一参与方获取到梯度乘子密文后,直接利用梯度乘子密文计算己方的模型梯度密文,并基于模型梯度密文更新第二模型权重密文,从而减少了第一参与方和第二参与方在反向计算阶段的通信次数,进一步提高了联邦学习的安全性,防止数据泄露。
在一种可能的实施方式中,在两个参与方初始化生成模型权重之前,双方还需提前交换公钥,以便在模型训练过程中进行同态加密处理或标量加密处理。即在步骤401之前,本申请实施例提供的基于联邦学习的模型训练方法还包括如下步骤:
步骤d,第一参与方向第二参与方发送第一公钥,第一公钥用于对第一密文和标量进行标量加密处理,第一密文是基于第一公钥加密得到的密文。
步骤e,第二参与方向第一参与方发送第二公钥,第二公钥用于对第二密文和标量进行标量加密处理,第二密文是基于第二公钥加密得到的密文。
由于第一参与方和第二参与方在前向计算和后向计算过程中,需要对对方加密生成的密文进行同态加密处理,或者对对方加密生成的密文以及己方的明文数据进行标量加密处理,因此需要使用对方的公钥对明文数据进行加密。在初始化开始之前,第一参与方和第二参与方需要进行通信,交换己方的公钥。
图11是本申请一个示例性实施例提供的联邦学习的模型训练装置的结构框图,该装置用于联邦学习系统,联邦学习系统中包括第一参与方和第二参与方,第二参与方模块1102拥有样本标签。该装置包括如下结构。
第一参与方模块1101,用于基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向所述第二参与方模块1102发送所述第一梯度乘子算子,所述第二模型权重密文由所述第二参与方模块1102初始化并加密生成;
第二参与方模块1102,用于基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,所述第四模型权重密文由所述第一参与方模块1101初始化并加密生成;
所述第二参与方模块1102,还用于基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子;向所述第一参与方模块1101发送梯度乘子密文,所述梯度乘子为损失函数对模型计算结果的导数;
所述第二参与方模块1102,还用于基于所述梯度乘子进行反向计算,更新所述第三模型权重;
所述第一参与方模块1101,还用于基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文。
可选的,所述第一参与方模块1101,还用于:
对所述第一模型权重和所述第二模型权重密文进行标量加法加密处理,得到参与方模型密文;
基于所述参与方模型密文以及所述第一训练样本进行前向计算,生成所述第一梯度乘子算子;
基于所述梯度乘子密文进行反向计算,更新所述参与方模型密文。
可选的,所述第一参与方模块1101,还用于:
生成第一模型噪声;
对所述第一模型噪声、所述参与方模型密文以及所述第一训练样本进行标量加密处理,生成第一模型输出密文;
基于所述第一模型输出密文与所述第二参与方模块1102进行数据交互,生成所述第一梯度乘子算子;
所述第二参与方模块1102,还用于:
生成第二模型噪声;
对所述第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理,生成所述第二模型输出密文;
基于所述第二模型输出密文与所述第一参与方模块1101进行数据交互,生成所述第二梯度乘子算子。
可选的,所述第一参与方模块1101,还用于:
向所述第二参与方模块1102发送所述第一模型输出密文;
接收所述第二参与方模块1102发送的所述第二模型输出密文并解密,得到第二模型计算结果;
基于所述第一模型噪声和所述第二模型计算结果,生成所述第一梯度乘子算子;
所述第二参与方模块1102,还用于:
向所述第一参与方模块1101发送所述第二模型输出密文;
接收所述第一参与方模块1101发送的所述第一模型输出密文并解密,得到第一模型计算结果;
基于所述第一模型计算结果、所述第二训练样本、所述第三模型权重以及所述第二模型噪声,生成所述第二梯度乘子算子,以使所述第一梯度乘子算子与所述第二梯度乘子算子之和为所述梯度乘子。
可选的,所述第一参与方模块1101,还用于:
对所述第一训练样本的转置以及所述梯度乘子密文进行标量乘法加密处理,生成第一模型梯度密文;
基于所述第一模型梯度密文和学习率更新所述参与方模型密文;
所述第二参与方模块1102,还用于:
基于所述第二训练样本的转置以及所述梯度乘子,生成第二模型梯度;
基于所述第二模型梯度和所述学习率更新所述第三模型权重。
可选的,所述第一参与方模块1101,还用于:
接收所述第二参与方模块1102发送的第二模型输出密文并解密,得到第二模型计算结果,所述第二模型输出密文是由所述第二参与方模块1102对第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理得到的;
对所述第二模型输出密文、所述第一训练样本以及所述参与方模型密文进行标量加密处理,生成所述第一梯度乘子算子密文;向所述第二参与方模块1102发送第一梯度乘子算子密文;
所述第二参与方模块1102,还用于:
生成第二模型噪声;
对所述第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理,生成所述第二模型输出密文;向所述第一参与方模块1101发送所述第二模型输出密文;
基于所述第二训练样本、所述第三模型权重以及所述第二模型噪声生成所述第二梯度乘子算子,以使所述第二梯度乘子算子与所述第一梯度乘子算子之和为所述梯度乘子;
接收所述第一梯度乘子算子密文并解密,得到所述第一梯度算子;
对所述第一梯度乘子算子和所述第二梯度乘子算子进行加法运算,得到联合模型的计算结果,所述联合模型由所述第一模型权重、第二模型权重、所述第三模型权重以及第四模型权重组成;
基于所述样本标签与所述联合模型的计算结果确定所述梯度乘子。
可选的,所述第一参与方模块1101,还用于:
生成第一模型噪声;
对所述第一训练样本、所述第二模型权重密文以及所述第一模型噪声进行标量加密处理,生成第一模型输出密文;
基于所述第一模型输出密文与所述第二参与方模块1102进行数据交互,生成所述第一梯度乘子算子;
所述第二参与方模块1102,还用于:
生成第二模型噪声;
对所述第二模型噪声、所述第四模型权重密文以及所述第二训练样本进行标量加密处理,生成第二模型输出密文;
基于所述第二模型输出密文与所述第一参与方模块1101进行数据交互,生成所述第二梯度乘子算子。
可选的,所述第一参与方模块1101,还用于:
向所述第二参与方模块1102发送所述第一模型输出密文;
接收所述第二参与方模块1102发送的所述第二模型输出密文并解密,得到第二模型计算结果;
基于所述第一模型噪声、所述第一模型权重、所述第一训练样本以及所述第二模型计算结果,生成所述第一梯度乘子算子;
所述第二参与方模块1102,还用于:
向所述第一参与方模块1101发送所述第二模型输出密文;
接收所述第一参与方模块1101发送的所述第一模型输出密文并解密,得到第一模型计算结果;
基于所述第一模型计算结果、所述第二训练样本、所述第三模型权重以及所述第二模型噪声生成所述第二梯度乘子算子,以使所述第一梯度乘子算子与所述第二梯度乘子算子之和为所述梯度乘子。
可选的,所述第二参与方模块1102,还用于:
基于所述梯度乘子以及所述第二训练样本生成第二模型梯度;
基于所述第二模型梯度和所述学习率更新所述第三模型权重;
所述第一参与方模块1101,还用于:
生成随机数;
对所述第一训练样本的转置、所述梯度乘子密文以及所述随机数进行标量加密处理,生成模型梯度密文;
向所述第二参与方模块1102发送所述模型梯度密文,以使所述第二参与方模块1102对所述模型梯度密文解密生成第一模型梯度信息,基于所述第一模型梯度信息更新第二模型权重以及向所述第一参与方模块1101发送更新后的所述第二模型权重密文;
接收所述第二模型权重密文,并基于所述随机数和学习率更新所述第一模型权重。
可选的,所述第一参与方模块1101,还用于:
生成随机数;
对所述第一训练样本的转置、所述梯度乘子密文以及所述随机数进行标量加密处理,生成模型梯度密文;
基于所述随机数和学习率更新所述第一模型权重,并基于所述模型梯度密文和所述学习率更新所述第二模型权重密文。
可选的,所述第一参与方模块1101,还用于:
与所述第二参与方模块1102进行样本对齐,确定交集样本标识;
基于所述交集样本标识确定所述第一训练样本;
所述第二参与方模块1102,还用于:
基于所述交集样本标识确定所述第二训练样本。
可选的,所述第一参与方模块1101,还用于:
向所述第二参与方模块1102发送第一公钥,所述第一公钥用于对第一密文和标量进行标量加密处理,所述第一密文是基于所述第一公钥加密得到的密文;
所述第二参与方模块1102,还用于:
向所述第一参与方模块1101发送第二公钥,所述第二公钥用于对第二密文和标量进行标量加密处理,所述第二密文是基于所述第二公钥加密得到的密文。
综上所述,本申请实施例中,由第二参与方基于第一梯度乘子算子和第二梯度乘子算子计算模型梯度乘子,并将梯度乘子加密发送至第一参与方,使第一参与方始终以梯度乘子密文更新得到模型权重的密文,因此第一参与方无法独立计算己方的模型预测结果,也无法计算己方完整模型的梯度,从而使第一参与方不能够通过多轮训练累积模型梯度反推出第二参与方的样本标签,提高了通过联邦学进行模型训练的安全性,避免数据泄露。
请参考图8,其示出了本申请一个实施例提供的计算机设备的结构示意图。
所述计算机设备1200包括中央处理单元(Central Processing Unit,CPU)1201、包括随机存取存储器(Random Access Memory,RAM)1202和只读存储器(Read OnlyMemory,ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述计算机设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)控制器1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存或其他固态存储其技术,CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述基于联邦学习的模型训练方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的基于联邦学习的模型训练方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的基于联邦学习的模型训练方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种基于联邦学习的模型训练方法,其特征在于,所述方法用于联邦学习系统,所述联邦学习系统中包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述方法包括:
所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向所述第二参与方发送所述第一梯度乘子算子,所述第二模型权重密文由所述第二参与方初始化并加密生成;
所述第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,所述第四模型权重密文由所述第一参与方初始化并加密生成;
所述第二参与方基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子;向所述第一参与方发送梯度乘子密文,所述梯度乘子为损失函数对模型计算结果的导数;
所述第二参与方基于所述梯度乘子进行反向计算,更新所述第三模型权重;
所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文。
2.根据权利要求1所述的方法,其特征在于,所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子之前,所述方法包括:
所述第一参与方对所述第一模型权重和所述第二模型权重密文进行标量加法加密处理,得到参与方模型密文;
第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子,包括:
所述第一参与方基于所述参与方模型密文以及所述第一训练样本进行前向计算,生成所述第一梯度乘子算子;
所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文,包括:
所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述参与方模型密文。
3.根据权利要求2所述的方法,其特征在于,所述第一参与方基于所述参与方模型密文以及所述第一训练样本进行前向计算,生成所述第一梯度乘子算子,包括:
所述第一参与方生成第一模型噪声;
所述第一参与方对所述第一模型噪声、所述参与方模型密文以及所述第一训练样本进行标量加密处理,生成第一模型输出密文;
所述第一参与方基于所述第一模型输出密文与所述第二参与方进行数据交互,生成所述第一梯度乘子算子;
所述第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,包括:
所述第二参与方生成第二模型噪声;
所述第二参与方对所述第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理,生成所述第二模型输出密文;
所述第二参与方基于所述第二模型输出密文与所述第一参与方进行数据交互,生成所述第二梯度乘子算子。
4.根据权利要求3所述的方法,其特征在于,所述第一参与方基于所述第一模型输出密文与所述第二参与方进行数据交互,生成所述第一梯度乘子算子,包括:
所述第一参与方向所述第二参与方发送所述第一模型输出密文;
所述第一参与方接收所述第二参与方发送的所述第二模型输出密文并解密,得到第二模型计算结果;
所述第一参与方基于所述第一模型噪声和所述第二模型计算结果,生成所述第一梯度乘子算子;
所述第二参与方基于所述第二模型输出密文与所述第一参与方进行数据交互,生成所述第二梯度乘子算子,包括:
所述第二参与方向所述第一参与方发送所述第二模型输出密文;
所述第二参与方接收所述第一参与方发送的所述第一模型输出密文并解密,得到第一模型计算结果;
所述第二参与方基于所述第一模型计算结果、所述第二训练样本、所述第三模型权重以及所述第二模型噪声,生成所述第二梯度乘子算子,以使所述第一梯度乘子算子与所述第二梯度乘子算子之和为所述梯度乘子。
5.根据权利要求2所述的方法,其特征在于,所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述参与方模型密文,包括:
所述第一参与方对所述第一训练样本的转置以及所述梯度乘子密文进行标量乘法加密处理,生成第一模型梯度密文;
所述第一参与方基于所述第一模型梯度密文和学习率更新所述参与方模型密文;
所述第二参与方基于所述梯度乘子进行反向计算,更新所述第三模型权重,包括:
所述第二参与方基于所述第二训练样本的转置以及所述梯度乘子,生成第二模型梯度;
所述第二参与方基于所述第二模型梯度和所述学习率更新所述第三模型权重。
6.根据权利要求2所述的方法,其特征在于,所述第一参与方基于所述参与方模型密文以及所述第一训练样本进行前向计算,生成所述第一梯度乘子算子,还包括:
所述第一参与方接收所述第二参与方发送的第二模型输出密文并解密,得到第二模型计算结果,所述第二模型输出密文是由所述第二参与方对第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理得到的;
所述第一参与方对所述第二模型输出密文、所述第一训练样本以及所述参与方模型密文进行标量加密处理,生成所述第一梯度乘子算子密文;向所述第二参与方发送第一梯度乘子算子密文;
所述第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,包括:
所述第二参与方生成第二模型噪声;
所述第二参与方对所述第二模型噪声、所述第二训练样本以及所述第四模型权重密文进行标量加密处理,生成所述第二模型输出密文;向所述第一参与方发送所述第二模型输出密文;
所述第二参与方基于所述第二训练样本、所述第三模型权重以及所述第二模型噪声生成所述第二梯度乘子算子,以使所述第二梯度乘子算子与所述第一梯度乘子算子之和为所述梯度乘子;
所述第二参与方基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子,包括:
所述第二参与方接收所述第一梯度乘子算子密文并解密,得到所述第一梯度算子;
所述第二参与方对所述第一梯度乘子算子和所述第二梯度乘子算子进行加法运算,得到联合模型的计算结果,所述联合模型由所述第一模型权重、第二模型权重、所述第三模型权重以及第四模型权重组成;
所述第二参与方基于所述样本标签与所述联合模型的计算结果确定所述梯度乘子。
7.根据权利要求1所述的方法,其特征在于,所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子,包括:
所述第一参与方生成第一模型噪声;
所述第一参与方对所述第一训练样本、所述第二模型权重密文以及所述第一模型噪声进行标量加密处理,生成第一模型输出密文;
所述第一参与方基于所述第一模型输出密文与所述第二参与方进行数据交互,生成所述第一梯度乘子算子;
所述第二参与方基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,包括:
所述第二参与方生成第二模型噪声;
所述第二参与方对所述第二模型噪声、所述第四模型权重密文以及所述第二训练样本进行标量加密处理,生成第二模型输出密文;
所述第二参与方基于所述第二模型输出密文与所述第一参与方进行数据交互,生成所述第二梯度乘子算子。
8.根据权利要求7所述的方法,其特征在于,所述第一参与方基于所述第一模型输出密文与所述第二参与方进行数据交互,生成所述第一梯度乘子算子,包括:
所述第一参与方向所述第二参与方发送所述第一模型输出密文;
所述第一参与方接收所述第二参与方发送的所述第二模型输出密文并解密,得到第二模型计算结果;
所述第一参与方基于所述第一模型噪声、所述第一模型权重、所述第一训练样本以及所述第二模型计算结果,生成所述第一梯度乘子算子;
所述第二参与方基于所述第二模型输出密文与所述第一参与方进行数据交互,生成所述第二梯度乘子算子,包括:
所述第二参与方向所述第一参与方发送所述第二模型输出密文;
所述第二参与方接收所述第一参与方发送的所述第一模型输出密文并解密,得到第一模型计算结果;
所述第二参与方基于所述第一模型计算结果、所述第二训练样本、所述第三模型权重以及所述第二模型噪声生成所述第二梯度乘子算子,以使所述第一梯度乘子算子与所述第二梯度乘子算子之和为所述梯度乘子。
9.根据权利要求7所述的方法,其特征在于,所述第二参与方基于所述梯度乘子进行反向计算,更新所述第三模型权重,包括:
所述第二参与方基于所述梯度乘子以及所述第二训练样本生成第二模型梯度;
所述第二参与方基于所述第二模型梯度和所述学习率更新所述第三模型权重;
所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文,包括:
所述第一参与方生成随机数;
所述第一参与方对所述第一训练样本的转置、所述梯度乘子密文以及所述随机数进行标量加密处理,生成模型梯度密文;
所述第一参与方向所述第二参与方发送所述模型梯度密文,以使所述第二参与方对所述模型梯度密文解密生成第一模型梯度信息,基于所述第一模型梯度信息更新第二模型权重以及向所述第一参与方发送更新后的所述第二模型权重密文;
所述第一参与方接收所述第二模型权重密文,并基于所述随机数和学习率更新所述第一模型权重。
10.根据权利要求7所述的方法,其特征在于,所述第一参与方基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文,还包括:
所述第一参与方生成随机数;
所述第一参与方对所述第一训练样本的转置、所述梯度乘子密文以及所述随机数进行标量加密处理,生成模型梯度密文;
所述第一参与方基于所述随机数和学习率更新所述第一模型权重,并基于所述模型梯度密文和所述学习率更新所述第二模型权重密文。
11.根据权利要求1至10任一所述的方法,其特征在于,所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子之前,所述方法还包括:
所述第一参与方与所述第二参与方进行样本对齐,确定交集样本标识;
所述第一参与方基于所述交集样本标识确定所述第一训练样本;
所述第二参与方基于所述交集样本标识确定所述第二训练样本。
12.根据权利要求1至10任一所述的方法,其特征在于,所述第一参与方基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子之前,所述方法还包括:
所述第一参与方向所述第二参与方发送第一公钥,所述第一公钥用于对第一密文和标量进行标量加密处理,所述第一密文是基于所述第一公钥加密得到的密文;
所述第二参与方向所述第一参与方发送第二公钥,所述第二公钥用于对第二密文和标量进行标量加密处理,所述第二密文是基于所述第二公钥加密得到的密文。
13.一种基于联邦学习的模型训练装置,其特征在于,所述装置用于联邦学习系统,所述联邦学习系统中包括第一参与方和第二参与方,所述第二参与方拥有样本标签,所述装置包括:
第一参与方模块,用于基于第一模型权重、第二模型权重密文以及第一训练样本进行前向计算,生成第一梯度乘子算子;向所述第二参与方发送所述第一梯度乘子算子,所述第二模型权重密文由所述第二参与方初始化并加密生成;
第二参与方模块,用于基于第三模型权重、第四模型权重密文以及第二训练样本进行前向计算,生成第二梯度乘子算子,所述第四模型权重密文由所述第一参与方初始化并加密生成;
所述第二参与方模块,还用于基于所述样本标签、所述第一梯度乘子算子和所述第二梯度乘子算子,生成梯度乘子;向所述第一参与方发送梯度乘子密文,所述梯度乘子为损失函数对模型计算结果的导数;
所述第二参与方模块,还用于基于所述梯度乘子进行反向计算,更新所述第三模型权重;
所述第一参与方模块,还用于基于所述梯度乘子密文进行反向计算,更新所述第二模型权重密文。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至12任一所述的基于联邦学习的模型训练方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至12任一所述的基于联邦学习的模型训练方法。
16.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至12任一所述的基于联邦学习的模型训练方法。
CN202210093687.2A 2022-01-26 2022-01-26 基于联邦学习的模型训练方法、设备、介质及程序产品 Pending CN114492850A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210093687.2A CN114492850A (zh) 2022-01-26 2022-01-26 基于联邦学习的模型训练方法、设备、介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210093687.2A CN114492850A (zh) 2022-01-26 2022-01-26 基于联邦学习的模型训练方法、设备、介质及程序产品

Publications (1)

Publication Number Publication Date
CN114492850A true CN114492850A (zh) 2022-05-13

Family

ID=81474182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210093687.2A Pending CN114492850A (zh) 2022-01-26 2022-01-26 基于联邦学习的模型训练方法、设备、介质及程序产品

Country Status (1)

Country Link
CN (1) CN114492850A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114662156A (zh) * 2022-05-25 2022-06-24 蓝象智联(杭州)科技有限公司 一种基于匿名化数据的纵向逻辑回归建模方法
CN116541870A (zh) * 2023-07-04 2023-08-04 北京富算科技有限公司 用于评估联邦学习模型的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114662156A (zh) * 2022-05-25 2022-06-24 蓝象智联(杭州)科技有限公司 一种基于匿名化数据的纵向逻辑回归建模方法
CN116541870A (zh) * 2023-07-04 2023-08-04 北京富算科技有限公司 用于评估联邦学习模型的方法及装置
CN116541870B (zh) * 2023-07-04 2023-09-05 北京富算科技有限公司 用于评估联邦学习模型的方法及装置

Similar Documents

Publication Publication Date Title
CN111162896B (zh) 双方联合进行数据处理的方法及装置
CN111723404B (zh) 联合训练业务模型的方法及装置
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
CN112733967B (zh) 联邦学习的模型训练方法、装置、设备及存储介质
CN112906044B (zh) 多方安全计算方法、装置、设备及存储介质
EP3075098B1 (en) Server-aided private set intersection (psi) with data transfer
CN111738361B (zh) 业务模型的联合训练方法及装置
CN114401079B (zh) 多方联合信息价值计算方法、相关设备及存储介质
CN110032893B (zh) 基于秘密分享的安全模型预测方法和装置
CN114492850A (zh) 基于联邦学习的模型训练方法、设备、介质及程序产品
CN113505882A (zh) 基于联邦神经网络模型的数据处理方法、相关设备及介质
CN114186256B (zh) 神经网络模型的训练方法、装置、设备和存储介质
WO2022213965A1 (zh) 用于控制带宽的多方联合数据处理方法及装置
CN114691167A (zh) 机器学习模型更新的方法和装置
CN113609781A (zh) 基于联邦学习的汽车生产模具优化方法、系统、设备及介质
CN112926064B (zh) 一种模型训练方法及装置、数据处理系统和电子设备
CN112507372B (zh) 实现隐私保护的多方协同更新模型的方法及装置
CN116468132A (zh) 用户数据处理的系统、方法以及装置
CN114462626B (zh) 联邦模型训练方法、装置、终端设备以及存储介质
CN112183759A (zh) 模型训练方法、装置及系统
CN114723068A (zh) 联邦模型训练方法及装置
CN114547684A (zh) 一种保护隐私数据的多方联合训练树模型的方法及装置
CN115130568A (zh) 支持多参与方的纵向联邦Softmax回归方法及系统
CN114817954A (zh) 图像的处理方法、系统和装置
CN114944934A (zh) 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination