一种基于联邦学习的模型训练方法转让专利

申请号 : CN201911292212.0

文献号 : CN111046433B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王力陈超超周俊

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

公开了一种基于联邦学习的模型训练方法。在一次训练迭代中,节点可以通过差分隐私保护操作,实现对梯度的加噪混淆,服务端可以获得加噪混淆后的梯度之和,进行模型参数的更新。

权利要求 :

1.一种基于联邦学习的模型训练方法,应用于包括服务端与N个节点的联邦学习系统,N>1,所述方法包括:在模型训练的第i次迭代中,执行:

所述服务端将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;

第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

所述服务端获取 并基于 更新模型参数集合;

所述服务端获取 包括:

第j个目标类型节点使用公钥pki对wij进行加密,得到E(wij)并上传给所述服务端;其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

所述服务端计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

2.如权利要求1所述的方法,针对所述Mi个节点中的任一节点,若该节点在接收到模型参数集合之后,继续处于在线状态直至第i次迭代结束,则该节点属于目标类型节点。

3.如权利要求1所述的方法,第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij,具体包括:第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算,得到梯度wij*,并通过差分隐私保护操作,向wij*中加入数据干扰项kij,得到得到wij;

或者,第j个目标类型节点通过差分隐私保护操作,向所述模型参数集合加入干扰,并根据干扰后的所述模型参数集合与本地训练样本执行梯度计算,得到wij;

或者,第j个目标类型节点通过差分隐私保护操作,向本地训练样本加入干扰,并根据干扰后的本地训练样本与所述模型参数集合执行梯度计算,得到wij。

4.如权利要求1所述的方法,所述服务端获取 具体包括:所述服务端将 下发给至少Ti个目标类型节点;

针对所述至少Ti个目标类型节点中的每个目标类型节点,该目标类型节点使用自身的子私钥集合解密 得到解密结果并上传给所述服务端;

所述服务端对所述至少Ti个目标类型节点分别上传的解密结果进行汇总,得到

5.如权利要求1所述的方法,所述服务端获取 具体包括:所述服务端若确定Qi≥Ti,则获取

所述方法还包括:

所述服务端若确定Qi<Ti,则停止本次迭代,并进入下一次迭代。

6.如权利要求1~5任一项所述的方法,所述模型对应的输入数据包括:图像或文本或语音。

7.如权利要求6所述的方法,所述文本包含实体对象信息。

8.一种联邦学习系统,包括服务端与N个节点,N>1;

所述服务端,在模型训练的第i次迭代中,将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;

第j个目标类型节点,根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

第j个目标类型节点,还使用公钥pki对wij进行加密,得到E(wij)并上传给所述服务端;

其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

所述服务端,还计算 并获取 并基于 更新模型参数集合;其中,是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

9.一种基于联邦学习的模型训练方法,应用于联邦学习系统中的服务端,所述联邦学习系统还包括N个节点,N>1,所述方法包括:在模型训练的第i次迭代中,执行:

将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;

以使第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

获取 并基于 更新模型参数集合;

获取 包括:

接收第j个目标类型节点使用公钥pki对wij进行加密所得到的E(wij);其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

10.一种基于联邦学习的模型训练方法,应用于联邦学习系统中的节点,所述联邦学习系统包括N个节点与服务端,N>1;

所述方法包括:

在模型训练的第i次迭代中,第j个目标类型节点执行:

根据模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项,用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

其中:

所述服务端将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;获取 并基于 更新模型参数集合;

所述服务端获取 包括:

第j个目标类型节点使用公钥pki对wij进行加密,得到E(wij)并上传给所述服务端;其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

所述服务端计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

11.一种联邦学习系统中的服务端,应用于模型训练的第i次迭代中,所述联邦学习系统还包括N个节点,N>1;

所述服务端包括:

模型参数下发模块,将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;以使第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

模型参数更新模块,获取 并基于 更新模型参数集合;

获取 包括:

接收第j个目标类型节点使用公钥pki对wij进行加密所得到的E(wij);其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

12.一种联邦学习系统中的节点,所述联邦学习系统包括N个节点与服务端,N>1;

在模型训练的第i次迭代中,第j个目标类型节点包括:

计算模块,根据模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;

其中:

所述服务端将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;获取 并基于 更新模型参数集合;

所述服务端获取 包括:

第j个目标类型节点使用公钥pki对wij进行加密,得到E(wij)并上传给所述服务端;其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合;

所述服务端计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。

13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求9或10所述的方法。

说明书 :

一种基于联邦学习的模型训练方法

技术领域

[0001] 本说明书实施例涉及信息技术领域,尤其涉及一种基于联邦学习的模型训练方法。

背景技术

[0002] 联邦学习(Federated machine learning/Federated Learning),是指一种机器学习框架,能有效帮助多个节点(可以代表个人或机构)在满足数据隐私保护的要求下,联合训练模型。
[0003] 在联邦学习框架下,服务端下发模型参数给多个节点,每个节点将本地的训练样本输入模型进行一次训练,本次训练结束后,每个节点会基于本次训练结果计算得到的梯度。随后,服务端基于安全聚合(SA,Secure Aggregation)协议,可以计算得到各节点的梯度之和。值得强调的是,服务端收到SA协议的限制,并不能获得单个节点上传的梯度。
[0004] 如此,既可以使得服务端根据各节点上传的梯度之和调整模型参数,又可以一定程度上实现节点的数据隐私保护。
[0005] 然而实践中,服务端理论上可以根据各节点上传的梯度之和推断出各节点的数据隐私。

发明内容

[0006] 为了解决服务端根据各节点上传的梯度之和推断出各节点的数据隐私的技术问题,本说明书实施例提供一种基于联邦学习的模型训练方法,技术方案如下:
[0007] 根据本说明书实施例的第1方面,提供一种基于联邦学习的模型训练方法,应用于包括服务端与N个节点的联邦学习系统,N>1,所述方法包括:
[0008] 在模型训练的第i次迭代中,执行:
[0009] 所述服务端将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;
[0010] 第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;
[0011] 所述服务端获取 并基于 更新模型参数集合。
[0012] 根据本说明书实施例的第2方面,提供一种联邦学习系统,包括服务端与N个节点,N>1;
[0013] 所述服务端,在模型训练的第i次迭代中,将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;
[0014] 第j个目标类型节点,根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;
[0015] 所述服务端,还获取 并基于 更新模型参数集合。
[0016] 本说明书实施例所提供的技术方案,在一次训练迭代中,节点可以通过差分隐私保护操作,实现对梯度的加噪混淆,服务端可以获得加噪混淆后的梯度之和,进行模型参数的更新。
[0017] 由于加噪混淆后的梯度之和中的数据干扰项满足差分隐私保护的敏感度要求,即既可以保护各节点的本地训练样本的差分隐私,又不会破坏加噪混淆后的梯度之和的可用性,因此,这使得服务端既无法通过差分攻击的方式,由加噪混淆后的梯度之和推断出各节点的本地训练数据,又可以根据加噪混淆后的梯度之和更新模型参数。
[0018] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
[0019] 此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

附图说明

[0020] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0021] 图1是本说明书实施例提供的一种基于联邦学习的模型训练方法的流程示意图;
[0022] 图2是本说明书实施例提供的一种基于联邦学习的模型训练方法的原理示意图;
[0023] 图3是本说明书实施例提供的一种联邦学习系统中的服务端的结构示意图;
[0024] 图4是本说明书实施例提供的一种联邦学习系统中的节点的结构示意图;
[0025] 图5是用于配置本说明书实施例方法的一种设备的结构示意图。

具体实施方式

[0026] 在联邦学习框架下,通常由服务端负责根据节点上传的梯度更新模型参数,并将模型参数下发给节点,由节点基于模型参数与本地训练样本计算梯度。为了防止服务端根据节点上传的梯度推断出节点的本地训练样本,一般基于SA协议来实现节点将梯度上传给服务端,使得服务端仅会获取到各节点上传的梯度之和,却无法获取到单个节点上传的梯度。
[0027] 然而,服务端依然有可能由各节点上传的梯度之和推断出各节点的数据隐私。
[0028] 申请人发现,实践中通常采用差分攻击的方式来各节点上传的梯度之和推断出各节点的数据隐私。例如,服务端可以比对连续两次训练迭代中的梯度之和,进行差分攻击,推断出各节点的数据隐私。
[0029] 申请人在构思解决上述技术问题的方案时,想到可以利用差分隐私保护的方式避免差分攻击。具体地,在一次训练迭代中,节点在使用本地训练数据与服务端下发的模型参数计算梯度时,可以通过差分隐私保护操作,实现对梯度的加噪混淆。如此,各节点的加噪混淆后的梯度之和可以防止差分攻击,也可用于对模型参数进行更新。
[0030] 单个节点在对自己产生的梯度进行加噪混淆时,要考虑到各节点的加噪混淆后的梯度汇总之后,应满足对各节点的本地训练样本整体上的差分隐私保护的敏感度要求,即,各节点的加噪混淆后的梯度之和既能够实现对各节点的本地训练样本的差分隐私保护,又能够不丧失针对模型参数更新的可用性。这意味着,从单个节点的角度看,单个节点对梯度的加噪混淆力度应该较小,如此,各节点的加噪混淆后的梯度汇总起来以后,才能恰好实现对各节点的本地训练样本整体上的差分隐私保护,却不会丧失可用性,实现隐私保护与可用性之间的平衡。
[0031] 由于单个节点对梯度的加噪混淆力度较小,不足以对单个节点的梯度提供差分隐私保护,需要避免服务端从单个节点上传的加噪混淆后的梯度推断出梯度。因此,在本说明书的一个或多个实施例中,服务单可以基于SA协议获取各节点的加噪混淆后的梯度之和,又不会获取到单个节点的加噪混淆后的梯度。
[0032] 此外,在本说明书实施例中,也可以采用门限同态加密的方式避免服务端从单个节点上传的加噪混淆后的梯度推断出梯度,详见后文。
[0033] 为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
[0034] 以下结合附图,详细说明本说明书各实施例提供的技术方案。
[0035] 图1是本说明书实施例提供的一种基于联邦学习的模型训练方法的流程示意图,包括以下步骤:
[0036] S100:服务端将模型参数集合下发给Mi个节点。
[0037] 众所周知,在机器学习领域,一般采用迭代调参的方式来训练模型。步骤S100~S106是训练模型过程中的一次迭代,可以理解,训练模型的过程,实际上是循环执行步骤S100~S106的过程,当模型参数被更新到满足训练停止条件时,就会停止循环。
[0038] 具体地,可以将训练停止条件设定为:循环执行步骤S100~S114的次数达到指定次数k,或者,一次迭代的损失函数值小于指定值。
[0039] 为了描述的方便,本文将S100~S106视为第i次迭代执行的步骤。可以理解,如果训练停止条件为循环次数达到指定次数k,则i=(1,2,…,k)。
[0040] 图1所示的方法应用于联邦学习系统,联邦学习系统包括服务端与N个节点(即节点设备),其中,N大于1。
[0041] S102:第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij。
[0042] 本说明书实施例的应用场景主要有两类,一类是服务端to B场景(服务端与至少两个机构进行联合学习),另一类是服务端to C场景(服务端与至少两个个人用户进行联合学习)。
[0043] 在服务端to B场景下,节点的数量并不多,在每次迭代中,服务端可以将模型参数集合下发给每个节点进行计算。
[0044] 在服务端to C场景下,一般会有海量的个人用户参与训练,节点的数量很大,因此,在每次迭代中,服务端为了避免数据处理压力过大,可以选择部分节点下发模型参数结合,仅根据这部分节点反馈的训练效果来更新模型参数集合。
[0045] 需要说明的是,服务端在每次迭代中选择的节点可以不同,选择的节点数量也可以不同。为了描述的方便,将第i次迭代中选择的节点数量记为Mi。
[0046] 还需要说明的是,Mi可以小于N,也可以等于N。
[0047] 此外,由于在后续的步骤S104中,服务端可以基于SA协议获取节点上传的数据,而SA协议中使用了秘密共享技术。对于秘密共享技术,其用于实现在L个节点中秘密共享数据,其需要满足L个节点中T个节点在线。因此,一般需要满足Mi大于等于Ti,Ti为:以在所述Mi个节点中实现秘密共享为目的,所述Mi个节点中处于在线状态的节点的数量的下限值。当秘密共享技术应用于SA协议中时,Ti可以理解为:第i次迭代中,SA协议指定的Mi个节点中处于在线状态的节点的数量的下限值。
[0048] 在本说明书实施例中,在应用于服务端to C的场景的情况下,服务端向Mi个节点下发模型参数集合之后,由于个人用户的节点设备并不一定总是在线(即不一定总是可以连接到网络,与服务端或其他节点进行数据交互),而如果某个节点不在线,则服务端并不能获取到该节点反馈的训练效果,因此,针对所述Mi个节点中的任一节点,如果该节点在接收到模型参数集合之后,继续处于在线状态直至第i次迭代结束,则该节点的训练效果才能反馈给服务端。本文为了描述的方便,将所述Mi个节点中能够向服务端反馈训练效果的节点称为目标类型节点。
[0049] 图1所示的方法流程中,只描述了一次迭代中每个目标类型节点执行的操作,并没有描述非目标类型节点执行的操作。然而,可以理解,对于所述Mi个节点中的非目标类型节点,其在接收到模型参数集合之后,也可以执行类似于S104的操作,只不过无法将执行结果上传给服务端。
[0050] 此外,在本说明书实施例中,在应用于服务端to B的场景的情况下,由于每个机构的节点设备通常是稳定在线的,因此,所述Mi个节点可以都属于目标类型节点。
[0051] 在本说明书实施例中,为了描述的方便,假设所述Mi个节点中存在Qi个目标类型节点,Qi≤Mi,并且,针对所述Qi个目标类型节点中第j个目标类型节点进行描述。其中,j=(1,2,…,Qi),可以理解,wij是第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作得到的结果。
[0052] 需要说明的是,wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项,用于保护所述Qi个目标类型节点的本地训练样本的差分隐私。
[0053] 实际应用中,为了使得加入数据干扰项 之后的 满足差分隐私的敏感度要求(即既要从整体上保护各节点的本地训练样本的差分隐私,又不能丧失对于模型参数更新计算的可用性),第j个目标类型节点需要根据敏感度要求来确定kij。
[0054] 在步骤S102中,可以有以下3种具体实施方式:
[0055] 1、第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算,得到梯度wij*,并通过差分隐私保护操作,向wij*中加入数据干扰项kij,得到得到wij。
[0056] 2、第j个目标类型节点通过差分隐私保护操作,向所述模型参数集合加入干扰,并根据干扰后的所述模型参数集合与本地训练样本执行梯度计算,得到wij。
[0057] 3、第j个目标类型节点通过差分隐私保护操作,向本地训练样本加入干扰,并根据干扰后的本地训练样本与所述模型参数集合执行梯度计算,得到wij。
[0058] S104:服务端获取
[0059] 在本说明书实施例中,服务端可以基于SA协议来获取 并且,由于受到SA协议的限制,服务端不会获取到第j个目标类型节点的wij。
[0060] 此外,服务端也可以不基于SA协议,而是基于如下的门限同态加密方式获取[0061] 步骤1、第j个目标类型节点使用公钥pki对wij进行加密,得到E(wij)并上传给所述服务端。其中,所述Mi个节点基于门限同态加密协议,约定pki以及所述Mi个节点中每个节点的子私钥集合。
[0062] 门限同态加密协议是指既支持门限加密,又支持同态加密的密码学协议。在门限加密机制中,多个节点约定公钥与私钥,并且,每个节点持有公钥以及私钥拆分出的一部分。本文将私钥拆分出的部分称为子私钥,而节点往往持有不止一个子私钥(即子私钥集合)。
[0063] 步骤2、所述服务端计算 并获取 其中, 是使用至少Ti个目标类型节点的子私钥集合对 进行解密得到的,Ti是第i次迭代中,门限同态加密协议指定的门限值。
[0064] 在同态加密机制中, 等价于 对 解密之后,可以得到
[0065] 对于上述的步骤2,有以下两种实施方式:
[0066] 2.1、服务端从所述Qi个目标类型节点中搜集至少Ti个目标类型节点的子私钥集合,将搜集到的子私钥集合拼装成私钥,解密
[0067] 2.2、所述服务端将 下发给至少Ti个目标类型节点;针对所述至少Ti个目标类型节点中的每个目标类型节点,该目标类型节点使用自身的子私钥集合解密得到解密结果并上传给所述服务端;所述服务端对所述至少Ti个目标类型节点分别上传的解密结果进行汇总,得到
[0068] S106:服务端基于 更新模型参数集合。
[0069] 假设本说明书实施例中,为梯度下降法指定的学习率为α,第i次迭代中使用的样本总数为d,将模型参数集合记为θ,则可以采用如下公式更新θ,得到更新后的θ(记为θ’):
[0070]
[0071] 此外,在服务端to C的场景下,还需要判断目标类型节点的数量Qi是否达到Ti,如果Qi小于Ti,则各目标类型节点之间将无法基于SA协议向服务端反馈数据,或者,也无法基于门限同态加密协议,解密
[0072] 具体而言,所述服务端若确定Qi≥Ti,则获取 所述服务端若确定Qi<Ti,则停止本次迭代,并进入下一次迭代。
[0073] 图2是本说明书实施例提供的一种基于联邦学习的模型训练方法的原理示意图。在图2中,示出了包括服务端与3个节点的联邦学习系统。服务端首先将模型参数集合下发给各节点。节点基于模型参数集合和本地训练样本进行模型计算,并基于差分隐私保护技术,对计算得到的梯度进行加噪混淆。服务端可以基于SA协议(或者门限同态加密协议),获取各节点的加噪混淆后的梯度之和,以便更新模型参数集合。
[0074] 此外,本说明书实施例中的模型对应的输入数据可以包括以下一种:图像、文本、语音。也即,模型训练过程中使用的训练样本可以是图像,可以是文本,也可以语音。模型训练完成后,可以相应地用于对图像、文本或语音进行分析。
[0075] 进一步地,所述文本可以包含实体对象信息。其中,实体对象可以是用户、商户等对象。
[0076] 还需要说明的是,本文所述的用于处理图像的模型例如可以是图像分类模型、图像分割模型等,本文所述的用于处理文本的模型例如可以是机器人客服模型、实体对象风险识别模型、推荐模型等,本文所述的用于处理语音的模型可以是语音助手模型、语音识别模型等。
[0077] 一种联邦学习系统,包括服务端与N个节点,N>1;
[0078] 所述服务端,在模型训练的第i次迭代中,将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;
[0079] 第j个目标类型节点,根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;
[0080] 所述服务端,还获取 并基于 更新模型参数集合。
[0081] 图3是本说明书实施例提供的一种联邦学习系统中的服务端的结构示意图,应用于模型训练的第i次迭代中,所述联邦学习系统还包括N个节点,N>1;
[0082] 所述服务端包括:
[0083] 模型参数下发模块301,将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;以使第j个目标类型节点根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;
[0084] 模型参数更新模块302,获取 并基于 更新模型参数集合。
[0085] 图4是本说明书实施例提供的一种联邦学习系统中的节点的结构示意图,所述联邦学习系统包括N个节点与服务端,N>1;
[0086] 在模型训练的第i次迭代中,第j个目标类型节点包括:
[0087] 计算模块401,根据所述模型参数集合与本地训练样本执行梯度计算以及差分隐私保护操作,得到wij;其中,j=(1,2,…,Qi),wij=wij*+kij,wij*表征第j个目标类型节点在未执行差分隐私操作的情况下得到的梯度,kij是第j个目标类型节点通过差分隐私保护操作确定的数据干扰项, 用于保护所述Qi个目标类型节点的本地训练样本的差分隐私;
[0088] 其中:
[0089] 所述服务端将模型参数集合下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;获取 并基于 更新模型参数集合。
[0090] 本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现本说明书中的服务端或目标类型节点的方法。
[0091] 图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0092] 处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0093] 存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0094] 输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0095] 通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
[0096] 总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0097] 需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0098] 本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本说明书中的服务端或目标类型节点的方法。
[0099] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0100] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务设备,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
[0101] 上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0102] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0103] 以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。