CN112818374A - 一种模型的联合训练方法、设备、存储介质及程序产品 - Google Patents

一种模型的联合训练方法、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN112818374A
CN112818374A CN202110230932.5A CN202110230932A CN112818374A CN 112818374 A CN112818374 A CN 112818374A CN 202110230932 A CN202110230932 A CN 202110230932A CN 112818374 A CN112818374 A CN 112818374A
Authority
CN
China
Prior art keywords
training
gradient
model
encryption
decryption
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
CN202110230932.5A
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110230932.5A priority Critical patent/CN112818374A/zh
Publication of CN112818374A publication Critical patent/CN112818374A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

本申请提供了一种模型的联合训练方法、装置、设备、计算机可读存储介质及程序产品,应用于纵向联邦学习的被动方,被动方和纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述方法包括:获取主动方发送的第二密文训练结果;获取第一密文训练结果和已训练轮数;基于第一密文训练结果和第二密文训练结果确定第一加密梯度;当已训练轮数满足同步条件时,将第一加密梯度发送至协调方,以使协调方基于第一加密梯度确定第一解密梯度;接收协调方发送的第一解密梯度,并基于第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。通过改进纵向联邦学习中模型训练时数据的交互流程,能够缩短模型的训练耗时,提高模型的训练效率。

Description

一种模型的联合训练方法、设备、存储介质及程序产品
技术领域
本申请涉及人工智能技术领域,涉及但不限于一种模型的联合训练方法、设备、存储介质及程序产品。
背景技术
近年来,回归模型被广泛地应用于解决各种问题。当回归模型的训练数据纵向分布于各个数据方时,由于各个数据方所拥有的特征数据可能涉及隐私,为避免隐私数据泄露,各数据方可以通过纵向联邦学习的方式进行模型的联合训练。
但是,相关技术中在基于纵向联邦建模时,梯度计算只能由主动方或被动方的其中一方完成,使得模型的训练效率较低;并且每计算得到一个梯度,均需要将其发送至协调方,导致传输数据量大、通讯耗时较长,尤其在大数据量以及多参与方的场景中,通讯耗时甚至超过计算耗时,严重影响模型的训练效率。
发明内容
本申请实施例提供一种模型的联合训练方法、装置、设备、计算机可读存储介质及计算机程序产品,能够缩短模型的训练耗时,提高模型的训练效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种模型的联合训练方法,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述方法包括:
获取所述主动方发送的第二密文训练结果;
获取第一密文训练结果和已训练轮数;
基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;
当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;
接收所述协调方发送的所述第一解密梯度,并基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
本申请实施例提供一种模型的联合训练方法,应用于纵向联邦学习的协调方,所述方法包括:
生成用于加密的公钥和用于解密的私钥;
将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;
接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;
基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;
将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
本申请实施例提供一种模型的联合训练装置,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述装置包括:
第一获取模块,用于获取所述主动方发送的第二密文训练结果;
第二获取模块,用于获取第一密文训练结果和已训练轮数;
第一确定模块,用于基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;
第一发送模块,用于当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;
第一接收模块,用于接收所述协调方发送的所述第一解密梯度;
第一更新模块,用于基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
本申请实施例提供一种模型的联合训练装置,应用于纵向联邦学习的协调方,所述装置包括:
生成模块,用于生成用于加密的公钥和用于解密的私钥;
第二发送模块,用于将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;
第二接收模块,用于接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;
解密模块,用于基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;
第三发送模块,用于将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
本申请实施例提供一种模型的联合训练设备,所述设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:
本申请实施例提供的模型的联合训练方法,应用于纵向联邦学习的被动方,纵向联邦学习的被动方和主动方分别利用自身的特征数据进行模型训练,如此,将原先单一的主动方训练模型改进为由被动方和主动方各自利用自身的特征数据进行模型训练,能够缩短模型的训练耗时,提高模型的训练效率;被动方进行模型训练时,首先获取所述主动方发送的第二密文训练结果,然后获取第一密文训练结果和已训练轮数,基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度,当所述已训练轮数满足同步条件时,将确定的第一加密梯度发送至纵向联邦学习的协调方,以使协调方对第一加密梯度进行解密得到第一解密梯度,然后协调方将解密得到的第一解密梯度发送至被动方;被动方基于所述第一解密梯度对自身的训练模型进行更新,从而得到更新后的训练模型,完成模型的一次同步更新,如此,在已训练轮数满足同步条件时才会将第一加密梯度发送至协调方进行一次同步更新,在不满足同步条件时不会向协调方发送第一加密梯度,被动方继续利用自身的特征数据进行模型训练,从而能够减少传输的数据量、减少通讯耗时,进一步缩短模型的训练耗时,提高模型的训练效率。
附图说明
图1为本申请实施例提供的模型的联合训练方法的一种网络架构示意图;
图2为本申请实施例提供的模型的联合训练设备的组成结构示意图;
图3为本申请实施例提供的模型的联合训练方法的一种实现流程示意图;
图4为本申请实施例提供的模型的联合训练方法的另一种实现流程示意图;
图5为本申请实施例提供的模型的联合训练方法的再一种实现流程示意图;
图6为本申请实施例提供的模型的联合训练方法的又一种实现流程示意图;
图7为本申请实施例提供的模型的联合训练方法的再一种实现流程示意图;
图8A为相关技术中纵向模型线性回归交互的网络架构示意图;
图8B为相关技术中纵向模型线性回归交互的流程示意图;
图9A为本申请实施例提供的纵向模型线性回归交互的网络架构示意图;
图9B为本申请实施例提供的纵向模型线性回归交互的流程示意图;
图10为本申请实施例提供的纵向模型逻辑回归交互的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)纵向联邦学习(Vertical Federated Learning),在两个数据集的用户重叠较多、用户特征重叠较少的情况下,在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,把数据集按照纵向(即特征维度)进行切分,并取出双方用户相同而用户特征不完全相同的部分数据进行训练的机器学习。
2)同态加密(Homomorphic Encryption),同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
3)逻辑回归(Logistic Regression),一种用于解决二分类(0or 1)问题的机器学习方法,用于估计某种事物的可能性。
4)线性回归(Linear Regression),利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。逻辑回归与线性回归都是一种广义线性模型。逻辑回归假设因变量服从伯努利分布,而线性回归假设因变量服从高斯分布。
下面说明实现本申请实施例的装置的示例性应用,本申请实施例提供的装置可以实施为模型的联合训练设备。下面,将说明装置实施为模型的联合训练设备时涵盖的示例性应用。
图1为本申请实施例提供的模型的联合训练方法的一种网络架构示意图,如图1所示,在该网络架构中包括模型的联合训练设备和网络400,其中模型的联合训练设备包括被动方100、主动方200和协调方300。为实现支撑一个示例性应用,模型的联合训练设备包括的被动方100、主动方200和协调方300为能够进行联合训练、且支持交互的设备,可以为服务器,也可以是台式计算机、笔记本电脑、移动电话(手机)、平板电脑等设备。被动方100、主动方200和协调方300通过网络300互相连接,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
本申请实施例中,被动方100为数据提供方,主动方200为具有标签数据的数据提供方,协调方300为进行联合训练的第三方。被动方100和主动方200双方需要在不泄露主动方200的标签数据和双方特征数据的前提下进行纵向联邦模型训练。在进行模型的联合训练时,协调方300生成公钥和私钥,将公钥发送至被动方100和主动方200。被动方100和主动方200分别利用自身的特征数据进行模型训练,当各参与方已训练轮数满足对应的同步条件时,进行一次梯度同步。下面以被动方100的模型联合训练过程为例进行说明。
被动方100首先从主动方200获取第二密文训练结果,该第二密文训练结果是由主动方200基于自身的特征数据和公钥获取的。然后被动方100基于自身的特征数据和公钥获取第一密文训练结果,并获取已训练轮数。然后被动方100基于第一密文训练结果和第二密文训练结果确定第一加密梯度,确定已训练轮数满足同步条件时,将第一加密梯度发送至协调方300。协调方300基于私钥对第一加密梯度进行同态解密,得到第一解密梯度,将第一解密梯度发送至被动方100。被动方100接收到第一解密梯度后,根据第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型,从而完成模型的一次同步更新。同时,主动方200也利用自身的特征数据进行模型的联合训练,如此,通过将原先单一的主动方训练模型改进为由被动方和主动方各自利用自身的特征数据进行模型训练,从而缩短模型的训练耗时,提高模型的训练效率。并且,在已训练轮数满足同步条件时才会将第一加密梯度发送至协调方进行一次同步更新,在不满足同步条件时不会向协调方发送第一加密梯度,被动方继续利用自身的特征数据进行模型训练,从而能够减少传输的数据量、减少通讯耗时,进而缩短模型的训练耗时,提高模型的训练效率。
本申请实施例提供的装置可以实施为硬件或者软硬件结合的方式,下面说明本申请实施例提供的装置的各种示例性实施。
参见图2,图2为本申请实施例提供的模型的联合训练设备的组成结构示意图,本申请实施例中模型的联合训练设备10以被动方100设备为例示出。根据图2示出的模型的联合训练设备10的示例性结构,可以预见模型的联合训练设备10的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用的特殊需求。
图2所示的模型的联合训练设备10包括:至少一个处理器110、存储器140、至少一个网络接口120和用户接口130。模型的联合训练设备10中的每个组件通过总线系统150耦合在一起。可理解,总线系统150用于实现这些组件之间的连接通信。总线系统150除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统150。
用户接口130可以包括显示器、键盘、鼠标、触感板和触摸屏等。
存储器140可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Acces s Memory)。本申请实施例描述的存储器140旨在包括任意适合类型的存储器。
本申请实施例中的存储器140能够存储数据以支持模型的联合训练设备10的操作。这些数据的示例包括:用于在模型的联合训练设备10上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
作为本申请实施例提供的方法采用软件实施的示例,本申请实施例所提供的方法可以直接体现为由处理器110执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器140,处理器110读取存储器140中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器110以及连接到总线150的其他组件)完成本申请实施例提供的方法。
作为示例,处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
将结合本申请实施例提供的装置的示例性应用和实施,说明本申请实施例提供的模型的联合训练方法。
图3为本申请实施例提供的模型的联合训练方法的一种实现流程示意图,应用于图1所示网络架构中的被动方,本申请实施例中,纵向联邦学习的被动方和主动方分别利用自身的特征数据进行模型训练。下面将结合图3示出的步骤对本申请实施例提供的方法进行说明。
步骤S301,获取所述主动方发送的第二密文训练结果。
本申请实施例中在进行模型的联合训练时,协调方生成用于加密的公钥和用于解密的私钥,在一种实现方式中,该公钥用于同态加密,私钥用于同态解密。协调方将公钥发送至被动方和主动方。被动方和主动方分别利用自身的特征数据进行模型训练。本申请实施例中以执行主体为被动方对模型联合训练的过程进行说明。被动方从主动方获取第二密文训练结果。
主动方获取第二密文训练结果可以实现为:主动方获取自身的特征数据和训练模型,对训练模型初始化后,得到训练模型的初始参数,将自身的特征数据输入至训练模型得到第二明文训练结果,例如将训练模型的初始参数表示为wG,将主动方自身的特征数据表示为xG,主动方的标签数据表示为y,基于线性回归模型的第二明文训练结果可以表示为wGxG-y。然后利用从协调方接收到的公钥,对第二明文训练结果进行同态加密,得到第二密文训练结果,用[[]]表示使用同态加密后的值,则第二密文训练结果可以表示为[[wGxG-y]]。主动方将第二密文训练结果[[wGxG-y]]发送至被动方。
在另一些实施例中,也可以基于逻辑回归模型进行训练,此时基于逻辑回归模型的第二明文训练结果可以表示为
Figure BDA0002957972490000091
则第二密文训练结果可以表示为
Figure BDA0002957972490000092
主动方将第二密文训练结果
Figure BDA0002957972490000093
发送至被动方。
步骤S302,获取第一密文训练结果和已训练轮数。
这里的已训练轮数为被动方对其训练模型已经训练的次数,每训练一次,已训练轮数增1。
被动方获取自身的特征数据和训练模型,对训练模型初始化后,得到训练模型的初始参数,将自身的特征数据输入至训练模型得到第一明文训练结果,例如将训练模型的参数表示为wH,将被动方自身的特征数据表示为xH,则基于线性回归模型的第一明文训练结果可以表示为wHxH。然后被动方利用从协调方接收到的公钥,对第一明文训练结果wHxH进行同态加密,得到第一密文训练结果,同样用[[]]表示使用同态加密后的值,则第一密文训练结果可以表示为[[wHxH]]。
这里需要说明书的是,由于主动方也进行模型训练,因此被动方获取到第一密文训练结果[[wHxH]]后,也将该第一密文训练结果[[wHxH]]发送至主动方。
对应的,当基于逻辑回归模型进行训练时,此时基于逻辑回归模型的第一明文训练结果可以表示为
Figure BDA0002957972490000101
则第一密文训练结果可以表示为
Figure BDA0002957972490000102
被动方将第一密文训练结果
Figure BDA0002957972490000103
发送至主动方。
由于主动方发送至被动方的数据是经过加密的,被动方发送至主动方的数据也是经过加密的,而主动方和被动方均没有用于同态解密的密钥,因此无法获得对方的特征数据和对方训练模型的参数信息,从而能够保护数据隐私,避免造成信息泄露。
步骤S303,基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度。
被动方利用第一密文训练结果和第二密文训练结果进行加密残差值的计算。由于第一密文训练结果和第二密文训练结果均为加密的,所以计算得到的加密残差值也为密文,表示为[[di]]。
本申请实施例在计算加密残差值[[di]]时,可基于线性模型来计算,加密残差值[[di]]可以根据第一密文训练结果和第二密文训练结果的加和确定。例如以线性回归模型计算的加密残差值[[di]]可以表示为[[wHxH]]+[[wGxG-y]],以逻辑回归模型计算的加密残差值[[di]]可以表示为
Figure BDA0002957972490000104
得到加密残差值[[di]]后,被动方利用自身的特征数据x和加密残差值[[di]],计算得到第一加密梯度,记为[[di]]xH
这里,将主动方基于第一密文训练结果和第二密文训练结果确定的第二加密梯度记为[[di]]xG
本申请实施例中,由于被动方和主动方分别利用自身的特征数据进行模型训练,确定各自的加密残差值,从而确定各自的加密梯度,相较于相关技术中仅由单一参与方确定加密残差值、再确定加密梯度的方式,主动方和被动方多方各自异步训练能够缩短模型的训练耗时,提高模型的训练效率。
步骤S304,当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度。
被动方基于步骤S302获取到的已训练轮数确定是否满足同步条件,当满足同步条件时,确定本轮需要进行梯度同步。在进行梯度同步时,被动方将计算得到第一加密梯度[[di]]xH的发送至协调方。当不满足同步条件时,根据第一加密梯度对自身的训练模型进行更新,得到更新后的训练模型,然后返回步骤S302继续在本地进行异步训练。
同理,主动方也在自身的已训练轮数满足自身的同步条件时,将计算得到第二加密梯度[[di]]xG的发送至协调方。
由于本申请实施例中被动方和主动方分别满足各自的同步条件后,才进行一次同步更新,在不满足同步条件时不会向协调方发送第一加密梯度,被动方和主动方继续利用自身的特征数据对各自的模型进行异步更新,从而能够减少传输的数据量、减少通讯耗时,进而缩短模型的训练耗时,提高模型的训练效率。
步骤S305,接收所述协调方发送的所述第一解密梯度。
协调方接收到第一加密梯度[[di]]xH和第二加密梯度[[di]]xG后,利用预先生成的用于解密的私钥对第一加密梯度[[di]]xH和第二加密梯度[[di]]xG进行解密,得到第一解密梯度和第二解密梯度,然后将第一解密梯度和第二解密梯度分别发送至被动方和主动方。这里的解密可以为同态解密。
步骤S306,基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
被动方接收到第一解密梯度后,基于第一解密梯度对自身训练模型的参数wH进行更新,从而实现对自身的训练模型进行更新,得到更新后的训练模型。
另一侧,主动方接收到协调方发送的第二解密梯度后,基于第二解密梯度对自身训练模型的参数wG进行更新,从而实现对自身的训练模型进行更新,得到更新后的训练模型。至此,被动方和主动方完成一次同步训练,重复上述训练过程,直至得到训练好的模型。
本申请实施例提供的模型的联合训练方法,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述方法包括:获取所述主动方发送的第二密文训练结果;获取第一密文训练结果和已训练轮数;基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;当已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;接收所述协调方发送的所述第一解密梯度,并基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。如此,将原先单一的主动方训练模型改进为由被动方和主动方各自利用自身的特征数据进行模型训练,能够缩短模型的训练耗时,提高模型的训练效率;并且在已训练轮数满足同步条件时才会将第一加密梯度发送至协调方进行一次同步更新,能够减少传输的数据量、缩短通讯耗时,能够进一步缩短模型的训练耗时,提高模型的训练效率。
基于前述的实施例,本申请实施例再提供一种模型的联合训练方法,图4为本申请实施例提供的模型的联合训练方法的另一种实现流程示意图,应用于图1所示网络架构中的被动方,本申请实施例中,纵向联邦学习的被动方和主动方分别利用自身的特征数据进行模型训练。如图4所示,所述模型的联合训练方法包括以下步骤:
步骤S401,获取所述主动方发送的第二密文训练结果。
本申请实施例中,步骤S401至步骤S403、步骤S405至步骤S407,分别与图3所示实施例中步骤S301至步骤S306一一对应,步骤S401至步骤S403、步骤S405至步骤S407的实现方式及效果分别参见步骤S301至步骤S306的描述。
步骤S402,获取第一密文训练结果和已训练轮数。
步骤S403,基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度。
被动方和主动方在每轮训练后进行一次梯度同步,虽然相较于仅由主动方或仅由被动方训练模型的单方训练方式能够缩短模型的训练耗时,提高模型的训练效率,但是由于被动方和主动方的计算能力、样本数据量的大小等差异,一般情况下不会同时完成训练,并且,每轮训练完成就进行一次梯度同步,使得主动方、被动方与协调方来回交互多次,大量的通讯数据增加通讯负担,大大增加通讯耗时。
本申请实施例中,可由被动方和主动方先各自在本地异步训练多次后再进行一次梯度同步,使得交互次数减少,从而减轻通讯负担、减少通讯耗时,进一步缩短模型的训练耗时,提高模型的训练效率。本申请实施例中基于下面的步骤来实现在各方先各自训练多次后再进行一次梯度同步。
步骤S404,判断所述已训练轮数是否满足同步条件。
当所述已训练轮数满足同步条件时,表明本轮训练需要协调方对被动方和主动方双方的加密梯度进行一次同步,此时进入步骤S405;当所述已训练轮数不满足同步条件时,表明本轮训练无需进行加密梯度的同步,此时进入步骤S408。
判断已训练轮数是否满足同步条件的一种实现方式为:基于第一预设阈值确定所述已训练轮数是否满足同步条件;当所述已训练轮数能够整除所述第一预设阈值时,确定所述已训练轮数满足同步条件;当所述已训练轮数不能整除所述第一预设阈值时,确定所述已训练轮数不满足同步条件。
被动方预先设定第一预设阈值,当从上次同步梯度后被动方已训练轮数(不同于步骤S402中获取到的已训练轮数)达到第一预设阈值后进行一次梯度同步。这里的第一预设阈值可以为任一整数值,例如设为10。被动方进行训练,每训练10轮后,将第一加密梯度与主动方训练得到的第二加密梯度进行梯度同步。
需要说明的是,主动方和被动方一样,也可以自行训练多轮,已训练轮数能够整除第三预设阈值时再进行梯度同步,因此主动方发送至协调方进行梯度同步的第二加密梯度,可以是从上次同步梯度后主动方已训练轮数(不同于用于除第三预设阈值的已训练轮数)达到第三预设阈值时得到的第二加密梯度。这里的第三预设阈值也可以取值任一整数。
在一些实施例中,第一预设阈值和第三预设阈值的取值可以基于被动方和主动方各自进行一轮训练的时长来确定,确保被动方发送第一加密梯度至协调方的第一时间,与主动方发送第二加密梯度至协调方的第二时间的时间差小于预设时长,如此能够避免任意一侧等待过久。例如,被动方进行一轮训练用时10s(秒),主动方进行一轮训练用时15s,则可以利用10和15的任一公倍数设置第一预设阈值和第三预设阈值,如基于公倍数150设置第一预设阈值为15,设置第三预设阈值为10。被动方和主动方自行训练150s后,即被动方自行训练15轮后将第一加密梯度发送至协调方,主动方自行训练10轮后将第二加密梯度发送至协调方,以进行梯度同步。
步骤S405,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度。
步骤S406,接收所述协调方发送的所述第一解密梯度。
在一些实施例中,协调方可对第一解密梯度进行优化后,再将优化后的第一解密梯度发送至被动方,能够提高计算精度,使训练模型尽快收敛,进一步缩短训练耗时。
步骤S407,基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
至此,被动方和主动方完成一次同步训练,返回步骤S401,重复上述训练过程,直至得到训练好的模型。
步骤S408,基于预设步长对所述第一加密梯度进行优化,得到优化后的第一加密梯度。
这里,预设步长即为预设的每轮训练后对第一加密梯度进行调整的增量。
基于预设步长对第一加密梯度进行优化时,一种实现方式是将预设步长与第一加密梯度相加得到优化后的第一加密梯度,另一种实现方式是将预设步长与第一加密梯度相乘得到优化后的第一加密梯度,当然,还可以是其他的优化方式,本申请实施例中不做限定。
步骤S409,基于所述优化后的第一加密梯度对自身的训练模型进行更新,得到更新后的训练模型。
得到优化后的第一加密梯度后,被动方根据优化后的第一加密梯度对自身训练模型的参数wH进行更新,从而实现在本地对自身的训练模型进行更新,得到更新后的训练模型。
至此,被动方完成一次异步更新,返回步骤S402,继续在本地对更新后的训练模型进行训练,直至已训练轮数满足同步条件。
本申请实施例提供的模型的联合训练方法,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,将原先单一的主动方训练模型改进为由被动方和主动方各自利用自身的特征数据进行模型训练,能够缩短模型的训练耗时,提高模型的训练效率;并且在本申请实施例提供的方法中,纵向联邦学习中被动方与主动方先在各方各自训练多轮,当已训练轮数满足同步条件后,再将各自的加密梯度进行一次梯度同步,当已训练轮数不满足同步条件时,继续在本地对模型进行训练,从而能够减少各参与方与协调方的交互的次数、减少传输的数据量、减轻通讯负担、减少通讯耗时,能够进一步缩短模型的训练耗时,提高模型的训练效率。
在一些实施例中,上述图3所示实施例中步骤S302或图4所示实施例中步骤S402中“获取第一密文训练结果”,可以实现为以下步骤:
步骤S3021,接收所述协调方发送的公钥。
在进行模型的联合训练时,协调方生成用于同态加密的公钥和用于同态解密的私钥,然后将公钥发送至被动方和主动方,使被动方和主动方在确保各自数据隐私的前提下,利用公钥进行模型的联合训练。
步骤S3022,获取用于联合训练的样本数据和自身的训练模型。
由于主动方和被动方进行联合训练,因此要求各自的样本数据来自同样的样本,即主动方样本数据的样本和被动方样本数据的样本是统一的,也就是说,样本数据的标识(表示为id)是相同的。基于此,主动方和被动方预先对各自的特征数据的id进行加密,得到主动方加密id和被动方加密id,对主动方加密id和被动方加密id求取交集,完成共同样本筛选。
在一种实现方式中,获取用于联合训练的样本数据可以实现为:从所述主动方获取本轮训练样本的标识;基于所述标识,从自身的特征数据中筛选出所述标识对应的数据;将所述标识对应的数据确定为用于联合训练的样本数据。
在每次同步训练时,主动方从共同样本中随机筛选一部分样本进行当前次的同步训练。主动方将随机筛选出的样本的标识(即id)发送至主动方训练模块和被动方训练模块,以使其基于id从自身数据表中选出对应的数据作为本轮联合训练的样本数据。
步骤S3023,将所述样本数据输入至所述训练模型进行训练,得到第一训练结果。
在第一轮训练时,被动方获得自身的训练模型后,对其进行初始化,得到训练模型的参数wH,将样本数据xH输入至初始化后的训练模型,得到第一训练结果。这里的第一训练结果为明文的,即为第一明文训练结果wHxH
步骤S3024,基于所述公钥对所述第一训练结果进行加密,得到第一密文训练结果。
本申请实施例中,可基于公钥对第一明文训练结果wHxH进行加密,例如进行加法同态加密、乘法同态加密、混合乘法同态加密、减法同态加密、除法同态加密、代数同态加密(又称全同态加密)或算术同态加密中任一种同态加密。这里,所述全同态加密指加密函数既满足加法同态,又满足乘法同态。本申请实施例中采用加法同态加密对第一明文训练结果wHxH进行加密,相较于全同态加密等其他方式,能够提高运算效率。
在一些实施例中,上述图3所示实施例中步骤S303或图4所示实施例中步骤S403“基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度”,可以实现为以下步骤:
步骤S3031,对所述第一密文训练结果和所述第二密文训练结果进行回归分析,得到加密残差值。
这里,被动方可以对第一密文训练结果[[wHxH]]和第二密文训练结果[[wGxG-y]]进行线性回归分析,也可以对第一密文训练结果[[wHxH]]和第二密文训练结果[[wGxG-y]]进行逻辑回归分析。由于第一密文训练结果[[wHxH]]和第二密文训练结果[[wGxG-y]]均为加密的,所以计算得到的加密残差值也为密文,表示为[[di]]。
当以线性回归模型计算加密残差值[[di]],[[di]]可以表示为[[wHxH]]+[[wGxG-y]],当以逻辑回归模型计算的加密残差值[[di]],[[di]]可以表示为
Figure BDA0002957972490000171
步骤S3032,基于所述标识对应的数据和所述加密残差值确定第一加密梯度。
得到加密残差值[[di]]后,被动方利用样本数据xH和加密残差值[[di]],计算得到第一加密梯度,记为[[di]]xH。然后将第一加密梯度发送至协调方进行多方同步。
本申请实施例中,被动方基于第一密文训练结果和第二密文训练结果确定第一加密梯度,在已训练轮数不满足同步条件进行异步训练时,本地更新训练模型,每次训练得到的第一密文训练结果不同,即进行异步训练时,每轮训练时第一密文训练结果改变,第二密文训练结果不会改变;在已训练轮数满足同步条件进行同步训练时,被动方重新获取一次第二密文训练结果,此轮训练时第一密文训练结果和第二密文训练结果均发生改变。如此,仅在每次同步之后,主动方和被动方才会将各自的密文训练结果发送至对方,从而能够减少传输的数据量、缩短通讯耗时,从而进一步缩短模型的训练耗时,提高模型的训练效率。
基于前述的实施例,本申请实施例再提供一种模型的联合训练方法,图5为本申请实施例提供的模型的联合训练方法的再一种实现流程示意图,应用于图1所示网络架构中的被动方,本申请实施例中,纵向联邦学习的被动方和主动方分别利用自身的特征数据进行模型训练。如图5所示,所述模型的联合训练方法包括以下步骤:
步骤S501,获取所述主动方发送的第二密文训练结果。
本申请实施例中,步骤S501至步骤S505、步骤S509,分别与图3所示实施例中步骤S301至步骤S305一一对应,步骤S501至步骤S505、步骤S508的实现过程及效果分别参见步骤S301至步骤S305的描述。
步骤S502,获取第一密文训练结果和已训练轮数。
步骤S503,基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度。
步骤S504,当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度。
步骤S505,接收所述协调方发送的所述第一解密梯度。
由于是多个参与方联合训练,被动方单独无法确定是否训练完成,基于此,由协作方基于被动方和主动方发送的第一加密梯度、第二加密梯度和预设梯度范数阈值确定模型是否收敛,或者也可以由协作方基于被动方和主动方的已训练轮数和预设轮数阈值确定模型是否收敛,或者还可以由协作方基于被动方和主动方发送的第一损失值和第二损失值确定模型是否收敛。
步骤S506,接收所述协调方发送的收敛信息。
这里,所述收敛信息由所述协调方基于所述第一解密梯度和预设梯度范数阈值确定;或者,所述收敛信息由所述协调方基于已训练轮数和预设轮数阈值确定;或者,所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定。
在一些实施例中,当所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定时,在步骤S506之前,所述方法还包括:
步骤S51,基于所述公钥和所述第一训练结果,确定本轮训练的第一损失值。
这里,被动方利用公钥对第一训练结果进行同态加密,得到本轮训练的第一损失值,表示为
Figure BDA0002957972490000191
同理,主动方也利用公钥对第二训练结果进行同态加密,得到本轮训练的第二损失值,表示为
Figure BDA0002957972490000192
这里的第二训练结果,由主动方接收所述协调方发送的公钥,获取用于联合训练的样本数据和自身的训练模型,将所述样本数据输入至所述训练模型进行训练得到的。
步骤S52,将所述第一损失值发送至所述协调方,以使所述协调方基于所述第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值,并基于所述损失值确定本轮训练的收敛信息。
协调方可将第一损失值和第二损失值的加和作为本轮训练的损失值,即
Figure BDA0002957972490000193
根据L确定本轮训练的收敛信息。协调方确定收敛信息的过程,参见下文步骤S606中的描述。
步骤S507,判断所述收敛信息是否为已收敛或已完成训练。
当所述收敛信息为已收敛或已完成训练时,表明被动方无需再继续训练,此时进入步骤S508;当所述收敛信息不为已收敛且不为已完成训练时,表明还未完成训练,此时进入步骤S509对模型进行更新。
步骤S508,将所述更新后的训练模型确定为训练好的目标模型。
确定无需再继续训练时,得到的训练模型即为训练好的目标模型,至此,完成模型的联合训练过程,得到的目标模型同时适用于被动方和主动方。
步骤S509,基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
更新完成后,返回步骤S501继续进行下一轮训练,直至得到训练好的目标模型。
本申请实施例提供的模型的联合训练方法,被动方根据协调方发送的收敛信息确定是否继续训练,在收敛信息为已收敛或已完成训练时,确定得到训练好的目标模型,从而完成模型的联合训练,得到同时适用于被动方和主动方的模型。
基于前述的实施例,本申请实施例再提供一种模型的联合训练方法,图6为本申请实施例提供的模型的联合训练方法的又一种实现流程示意图,应用于图1所示网络架构中的协调方。如图6所示,所述模型的联合训练方法包括以下步骤:
步骤S601,生成用于加密的公钥和用于解密的私钥。
本申请实施例中,协调方生成的公钥可以为用于同态加密的公钥,生成的私钥可以为用于同态解密的私钥。通过公钥,使得各参与方无需将自身的隐私数据发送至对方或协调方,能够保护各参与方数据的隐私。
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。生成的公钥可用于加法同态加密、乘法同态加密、混合乘法同态加密、减法同态加密、除法同态加密、代数同态加密(又称全同态加密)和算术同态加密任一种同态加密。这里,所述全同态加密指加密函数既满足加法同态,又满足乘法同态。
在一些实施例中,协调方生成的公钥可用于加法同态加密,生成的私钥可用于加法同态解密,或者,协调方生成的公钥可用于乘法同态加密,生成的私钥可用于乘法同态解密,又或者,协调方生成的公钥可用于全同态加密,生成的私钥可用于全同态解密。相较于采用全同态加解密,加解密时采用加法同态加解密,能够提高运算效率。
步骤S602,将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度。
这里,所述主动方和被动方为进行模型联合训练的不同参与方。被动方和主动方接收到公钥后,分别利用自身的特征数据进行模型训练。
步骤S603,接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度。
这里,第一加密梯度和第二加密梯度,可以是被动方和主动方训练一轮后分别发送至协调方的加密梯度,此时,协调方所执行的步骤,与图3所示实施例中被动方执行的步骤相对应。第一加密梯度和第二加密梯度,也可以是被动方和主动方自行训练多轮后,各自已训练轮数分别达到对应的第一预设阈值和第三预设阈值时,分别发送至协调方的加密梯度,此时,协调方所执行的步骤,与图4所示实施例中被动方执行的步骤相对应。
步骤S604,基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度。
步骤S605,将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
协调方利用步骤S601中生成的私钥对第一加密梯度和第二加密梯度解密后,得到第一解密梯度和第二解密梯度。然后将第一解密梯度发送至被动方,以使被动方根据第一解密梯度对自身训练的模型进行更新,同时将第二解密梯度发送至主动方,以使主动方根据第二解密梯度对自身训练的模型进行更新。
在一些实施例中,协调方得到第一解密梯度和第二解密梯度后,可对第一解密梯度和第二解密梯度分别进行优化后再将其发送至对应的被动方和主动方,能够提高计算精度,使训练模型尽快收敛,进一步缩短训练耗时。
对第一加密梯度和第二加密梯度分别进行优化的一种实现方式可以为:获取第一调整系数和第二调整系数;基于所述第一调整系数对所述第一加密梯度进行优化,得到优化后的第一加密梯度;基于所述第二调整系数对所述第二加密梯度进行优化,得到优化后的第二加密梯度。这里的第一调整系数和第二调整系数为预设的每轮同步后对第一解密梯度和第二解密梯度进行调整的系数。其中,第一调整系数和第二调整系数可以相同,也可以不同。在实现优化时,可以将调整系数(包括第一调整系数和第二调整系数)与对应的解密梯度(包括第一解密梯度和第二解密梯度)相加得到优化后的解密梯度,也可以将调整系数与解密梯度相乘得到优化后的解密梯度。当然,还可以是其他的优化方式,本申请实施例中不做限定。
本申请实施例提供的模型的联合训练方法,应用于纵向联邦学习的协调方,所述方法包括:生成用于加密的公钥和用于解密的私钥;将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。通过改进纵向联邦学习中模型训练时数据的交互流程,在满足同步条件时进行一次同步,能够减少各参与方与协调方的交互的次数、减少传输的数据量、减轻通讯负担、减少通讯耗时,从而能够缩短模型的训练耗时,提高模型的训练效率。
在一些实施例中,在图6所示实施例的步骤S605之后,协调方可以进一步判断本轮训练后,是否需要继续对模型进行训练。当协调方确定模型已收敛,或者协调方确定已完成训练时,即可通知被动方和主动方结束训练。基于此,在上述步骤S605之后,所述方法还可以包括以下步骤:
步骤S606,获取收敛信息。
在一种实现方式中,协作方可以基于解密梯度确定模型是否已收敛,此时获取收敛信息可以实现为:基于接收到第一解密梯度和第二解密梯度,计算解密梯度之和,确定所述解密梯度之和与预设梯度范数阈值的差值;判断所述差值是否小于第二预设阈值;当所述差值小于第二预设阈值时,将所述收敛信息确定为已收敛;当所述差值大于或等于第二预设阈值时,将所述收敛信息确定为未收敛。
在一种实现方式中,协作方可以基于被动方已训练轮数确定模型是否已收敛,此时获取收敛信息可以实现为:获取所述被动方已训练轮数;判断所述已训练轮数是否大于预设轮数阈值;当所述已训练轮数大于预设轮数阈值时,将所述收敛信息确定为已完成训练;当所述已训练轮数小于或等于预设轮数阈值时,将所述收敛信息确定为未完成训练。
在一种实现方式中,协作方还可以基于主动方已训练轮数确定模型是否已收敛,此时获取收敛信息可以实现为:获取所述主动方已训练轮数;判断所述已训练轮数是否大于预设轮数阈值;当所述已训练轮数大于预设轮数阈值时,将所述收敛信息确定为已完成训练;当所述已训练轮数小于或等于预设轮数阈值时,将所述收敛信息确定为未完成训练。
这里,基于被动方和基于主动方确定模型是否已收敛时,设置的预设轮数阈值可以相同,也可以不同。
或者获取所述被动方已训练轮数;或者基于所述被动方发送的第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值;
当所述差值小于第二预设阈值时,或者当所述损失值小于预设损失阈值时,将所述收敛信息确定为已收敛;或者当所述已训练轮数大于预设轮数阈值时,将所述收敛信息确定为已完成训练。
在一种实现方式中,协作方可以基于损失值确定模型是否已收敛,此时获取收敛信息可以实现为:接收所述被动方发送的第一损失值和所述主动方发送的第二损失值;对所述第一损失值和所述第二损失值进行加和,得到本轮训练的损失值;判断所述损失值是否小于预设损失阈值;当所述损失值小于预设损失阈值时,将所述收敛信息确定为已收敛;当所述损失值大于或等于预设损失阈值时,将所述收敛信息确定为不收敛。
步骤S607,将所述收敛信息发送至所述被动方和所述主动方。
协作方将收敛信息发送至被动方和主动方,以告知被动方和主动方继续进行训练或结束训练。
本申请实施例提供的获取收敛信息的多种方式,能够实现不同场景下模型收敛的判定,增加适用场景的灵活性。
基于前述的实施例,本申请实施例再提供一种模型的联合训练方法,图7为本申请实施例提供的模型的联合训练方法的再一种实现流程示意图,应用于图1所示网络架构,如图7所示,所述模型的联合训练方法包括以下步骤:
步骤S701,协调方生成用于加密的公钥和用于解密的私钥。
本申请实施例中,协调方可生成用于同态加密的公钥,使得各参与方无需将自身的隐私数据发送至对方或协调方,能够保护各参与方数据的隐私。
步骤S702,协调方将所述公钥分别发送至进行模型训练的被动方和主动方。
步骤S703,主动方基于纵向联邦学习获取自身和被动方的共同样本标识。
这里,标识可以为样本的id值。
步骤S704,主动方获取本轮训练样本量。
这里,样本量可以为随机确定的值,每轮训练样本量可以不同。
步骤S705,主动方基于所述样本量,从所述共同样本标识中筛选出对应数量的标识。
这里,主动方进行筛选时,可在共同样本标识中进行随机筛选,也可按预设的方式(如按顺序)进行筛选。
步骤S706,主动方将筛选出的对应数量的标识确定为本轮训练的样本标识。
步骤S707,主动方将所述本轮训练的样本标识发送至被动方。
步骤S708,主动方获取第二密文训练结果和第二已训练轮数。
这里的第二已训练轮数为主动方自身已训练轮数。主动方每训练一次,第二已训练轮数增1。
本申请实施例中,主动方获取第二密文训练结果,可以实现为:基于所述标识,从自身的特征数据中筛选出所述标识对应的数据;将所述标识对应的数据确定为用于联合训练的第二样本数据;将所述第二样本数据输入至自身的训练模型进行训练,得到第二训练结果;基于所述公钥对所述第二训练结果进行加密,得到第二密文训练结果。
步骤S709,主动方将所述第二密文训练结果发送至被动方。
步骤S710,被动方获取第一密文训练结果和第一已训练轮数。
这里的第一已训练轮数即为上述实施例中的已训练轮数。被动方每训练一次,第一已训练轮数增1。由于主动方和被动方各自进行训练,因此第一已训练轮数与第二已训练轮数一般是不相等的。
本申请实施例中,被动方获取第一密文训练结果可以实现为:基于所述标识,从自身的特征数据中筛选出所述标识对应的数据;将所述标识对应的数据确定为用于联合训练的第一样本数据;将所述第一样本数据输入至自身的训练模型进行训练,得到第一训练结果;基于所述公钥对所述第一训练结果进行加密,得到第一密文训练结果。
步骤S711,被动方将所述第一密文训练结果发送至主动方。
这里,步骤S708和步骤S710的先后顺序不加限定。
步骤S712,被动方基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度。
步骤S713,被动方判断所述第一已训练轮数是否满足同步条件。
在一种实现方式中,可基于第一预设阈值确定第一已训练轮数是否满足同步条件。当所述第一已训练轮数能够整除所述第一预设阈值时,确定需要进行梯度同步,此时进入步骤S716;当所述第一已训练轮数不能整除所述第一预设阈值时,进入步骤S714。
步骤S714,被动方基于第一预设步长对所述第一加密梯度进行优化,得到优化后的第一加密梯度。
这里,第一预设步长即为预设的每轮训练后对第一加密梯度进行调整的增量。
步骤S715,被动方基于所述优化后的第一加密梯度对自身的训练模型进行更新,得到更新后的训练模型。
这里,步骤S715执行完后,返回步骤S710继续下一轮的训练过程。这里在进行下一轮训练再次执行到步骤S712时,若没有接收到更新后的第二密文训练结果,则使用上一轮训练时的第二密文训练结果确定第一加密梯度。
步骤S716,被动方将所述第一加密梯度发送至协调方。
这里,步骤S716之后,进入步骤S722。
步骤S717,主动方基于所述第一密文训练结果和所述第二密文训练结果确定第二加密梯度。
步骤S718,主动方判断所述第二已训练轮数是否满足同步条件。
在一种实现方式中,可基于第三预设阈值确定第二已训练轮数是否满足同步条件。当所述第二已训练轮数能够整除所述第三预设阈值时,确定需要进行梯度同步,此时进入步骤S721;当所述第二已训练轮数不能整除所述第一预设阈值时,进入步骤S719。
步骤S719,主动方基于第二预设步长对所述第二加密梯度进行优化,得到优化后的第二加密梯度。
这里,第二预设步长即为预设的每轮训练后对第二加密梯度进行调整的增量。
步骤S720,主动方基于所述优化后的第二加密梯度对自身的训练模型进行更新,得到更新后的训练模型。
这里,步骤S720执行完后,返回步骤S708继续下一轮的训练过程。这里在进行下一轮训练再次执行到步骤S717时,若没有接收到更新后的第一密文训练结果,则使用上一轮训练时的第一密文训练结果确定第二加密梯度。
步骤S721,被动方将所述第二加密梯度发送至协调方。
步骤S722,协调方基于所述第一加密梯度确定第一解密梯度,基于所述第二加密梯度确定第二解密梯度。
协调方利用用于同态解密的私钥对第一加密梯度和第二加密梯度分别进行解密,得到第一解密梯度和第二解密梯度。
步骤S723,协调方将第一解密梯度发送至被动方,将第二解密梯度发送至主动方。
步骤S724,协调方确定解密梯度之和与预设梯度范数阈值的差值。
这里,所述解密梯度之和为所述第一解密梯度和所述第二解密梯度的加和。
步骤S725,协调方判断所述差值是否小于第二预设阈值。
当所述差值小于第二预设阈值时,进入步骤S726;当所述差值大于或等于第二预设阈值时,确定未收敛,返回步骤S704继续训练。
步骤S726,协调方将收敛信息确定为已收敛。
步骤S727,协调方将所述收敛信息发送至主动方和被动方。
确定已收敛后,协调方通知主动方和被动方无需继续进行训练。
步骤S728,主动方将所述更新后的训练模型确定为训练好的目标模型。
步骤S729,被动方将所述更新后的训练模型确定为训练好的目标模型。
本申请实施例提供的模型的联合训练方法,被动方和主动方同时利用自身的特征数据进行模型训练,相较于相关技术中仅由主动方或仅由被动方计算梯度进行模型训练的过程,主动方和被动方多方同步训练能够缩短模型的训练耗时,提高模型的训练效率;并且被动方与主动方先在各方各自训练多轮后,再将各自的加密梯度进行一次梯度同步,然后由协作方确定模型是否已收敛,当未收敛时继续训练;当已收敛时,主动方和被动方将更新后的训练模型确定为训练好的目标模型,不仅能够减少各参与方与协调方的交互次数,而且能够减轻通讯负担、减少通讯耗时,从而进一步缩短模型的训练耗时,提高模型的训练效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在三方纵向联邦学习场景中,比如设定Arbiter方(A方)(对应上文中的协调方)、Host方(H方)(对应上文中的被动方)和Guest方(G方)(对应上文中的主动方),标签提供方(即主动方)G方拥有数据标签,数据提供方(即被动方)H方拥有G方数据中不具有的某些特征数据,A方为作为协调方的第三方。H方和G方需要在不泄露G方标签信息和双方特征数据的前提下进行建模和预测(包括逻辑回归,线性回归等线性模型)。一种需要纵向联邦建模的场景是:G方是保险销售方,G方想预测潜在顾客愿意购买的汽车保险保单价格,则保单价格为y,参与方H方可能为某汽车品牌。G方和H方彼此不愿意直接交互数据,因此需要进行纵向联邦建模。
在实际应用中通讯耗时往往成为联邦学习建模的最大效率瓶颈之一,尤其在大数据量以及多参与方的场景中通讯耗时可能高于计算耗时。以上述例子为例,可能G方或H方两方因设备配置无法快速通讯,或每次通信信息量(样本量以及特征数据)巨大,存在通讯交互次数多,建模效率较低的缺陷。
下面介绍相关技术中纵向模型回归交互过程,图8A为相关技术中纵向模型线性回归交互的网络架构示意图,图8B为相关技术中纵向模型回归交互的流程示意图,图8A中包括的参与方为A、G、H三方,H方代表不与G方共享数据的数据提供方。
前提设置:H、G方通过加密ID交集完成共同样本筛选,以下训练环节中默认每次使用id值相同,A,H同时参与训练,与G方交互。
步骤S801,A方生成公共秘钥并传输给H、G方。
这里的公共密钥即上文中的公钥,该公钥用于进行同态加密。
步骤S802,G方决定每轮内每次训练数据量并发送给H、G方。
本轮训练中,以xG表示G侧样本特征(即样本数据),xH表示H侧样本特征。
步骤S803,H、G方分别初始化本地模型并计算本地中间计算结果。
这里,H方初始化本地模型后,H侧模型的参数表示为wH,则根据H侧模型的参数和样本特征计算H侧本地中间计算结果为wHxH,该结果即为H侧各样本的预测值。
G方初始化本地模型后,G侧模型的参数表示为wG,则根据G侧模型的参数和样本特征计算G侧本地中间计算结果为wGxG,该结果即为G侧各样本的预测值。
步骤S804,H方对己方的中间计算结果利用同态加密技术加密,生成加密后的中间计算结果,将该加密后的中间计算结果发送给G方。
这里,H方利用公共秘钥进行同态加密。用[[]]表示使用同态加密后的值,H方加密后的中间计算结果表示为[[wHxH]],将该加密后的中间计算结果[[wHxH]]发送给G方。
步骤S805,G方结合H方发送的加密后的中间计算结果计算加密残差值[[di]],G方向H方发送[[di]]。
这里,G方加密后的中间计算结果表示为[[wGxG-y]],G方利用H方发送的[[wHxH]]和自身的[[wGxG-y]],基于线性回归计算的加密残差值[[di]]可以表示为[[wHxH]]+[[wGxG-y]],其中,y为标签,由G方提供。
由于G方没有公钥对应的用于解密的私钥,因此无法解密此值,从而能够避免H方的数据泄露。
步骤S806,G方与H方利用自有中间计算结果和加密残差值[[di]],分别计算加密本地梯度并发送给A方。
这里,加密本地梯度即为上文中的第一加密梯度和第二加密梯度。A方使用预设损失阈值进行收敛与否的判断时,G方还需要给A方发送加密损失值
Figure BDA0002957972490000291
Figure BDA0002957972490000292
计算得到本轮训练的加密损失值LH
Figure BDA0002957972490000293
同理,G方加密后的中间计算结果表示为[[wGxG]],计算得到本轮训练的加密损失值。
计算得到本轮训练的加密损失值LH
Figure BDA0002957972490000294
同理,计算得到本轮训练的加密损失值LG
Figure BDA0002957972490000295
G方计算的加密本地梯度
Figure BDA0002957972490000296
H方计算的加密本地梯度
Figure BDA0002957972490000297
Figure BDA0002957972490000298
步骤S807,A方利用私有秘钥对加密本地梯度进行解密,并对解密本地梯度进行优化处理,将处理结果分别发送给H、G方。A方根据预设梯度范数阈值或预设损失阈值判断是否收敛,将得到的收敛信息发送给H、G方。
这里,对解密本地梯度进行优化处理,可以为对解密本地梯度乘以更新步长。
这里的收敛判断标准为:在每轮训练末尾,计算所有G侧与H侧梯度范数之和
Figure BDA0002957972490000301
并与预设梯度范数阈值比较,如果梯度范数之和小于预设梯度范数阈值,则认为模型收敛;如果梯度范数之和大于或等于预设梯度范数阈值,则认为模型未收敛,进入下一轮训练。
或者,收敛判断标准也可以为:计算所有G侧与H侧损失值之和,并利用预设损失阈值判断是否收敛,若损失值之和小于预设损失阈值,则认为模型收敛;若损失值之和大于或等于预设损失阈值,则继续下一轮训练。
步骤S808,H、G方更新本地模型参数。
重复步骤S803至步骤S808,直到所有测试数据均被使用。
重复步骤S802至步骤S808,直到模型收敛或到达最大模型训练轮数。
这里最大模型训练轮数即为上文中的预设轮数阈值。
相关技术中通过步骤S801至步骤S808,H、G方训练部分线性回归模型参数。整个过程中双方没有泄露自有数据和模型参数信息,同时A方不能得知H、G方数据信息。相关技术中,纵向线性模型建模的交互机制下所有梯度计算均由一方完成,联邦学习系统设计中纵向回归场景因数据交互机制的限制,无法方便地实现各参与方异步更新。
针对这一问题,本申请实施例提出异步更新思路,即各参与方各自本地更新梯度,每n轮同步一次梯度变化的训练优化方案,可以提高训练效率,减少总体训练耗时。
本申请实施例通过改造相关技术中纵向联邦学习线性模型建模的数据交互流程,由原先的统一由G方计算加密梯度改为由H方与G方各自计算己方梯度。整体流程上G方向H方发送的残差改为己方加密的中间计算结果,因此H方可以结合己方中间计算计算结果自行计算残差,继而计算梯度。此更改为异步更新创造条件的同时减少对加密数据运算。通过运用新流程进行异步更新,可以减少数据交互次数,压缩通讯耗时。
下面介绍本申请实施例中纵向模型回归交互过程,图9A为本申请实施例提供的纵向模型线性回归交互的网络架构示意图,图9B为本申请实施例提供的纵向模型线性回归交互的流程示意图。与图8A相同,图9A中包括的参与方为A、G、H三方,H方代表不与G方共享数据的数据提供方。
前提设置:H、G方通过加密ID交集完成共同样本筛选,以下训练环节中默认每次使用id值相同,A,H同时参与训练,与G方交互。
通过每方各自计算残差d,可以达到各自同步进行梯度计算。
步骤S901,A方生成公共秘钥并传输给H、G方。
步骤S902,G方决定每轮内每次训练数据量并发送给H、G方。
步骤S903,H、G方分别初始化本地模型并计算本地中间计算结果。
这里,H方初始化本地模型后,H侧模型的参数表示为wH,则根据H侧模型的参数和样本特征计算H侧本地中间计算结果为wHxH,该结果即为H侧各样本的预测值。
G方初始化本地模型后,G侧模型的参数表示为wG,则根据G侧模型的参数和样本特征计算G侧本地中间计算结果为wGxG,该结果即为G侧各样本的预测值。
步骤S904,H方对己方的中间计算结果利用同态加密技术加密,生成H方加密后的中间计算结果,将该加密后的中间计算结果发送给G方。G方对己方中间计算结果利用同态加密技术加密,生成G方加密后的中间计算结果,将该加密后的中间计算结果发送给H方。
这里,H方加密后的中间计算结果表示为[[wHxH]],将该加密后的中间计算结果[[wHxH]]发送给G方;G方加密后的中间计算结果表示为[[wGxG]],将该加密后的中间计算结果[[wGxG]]发送给H方。
步骤S905,G方结合H方发送的中间计算结果计算加密残差值[[di]],H方结合G方发送的中间结果计算加密残差值[[di]]。
这里,G方加密后的中间计算结果表示为[[wGxG-y]],G方利用H方发送的[[wHxH]]和自身的[[wGxG-y]],基于线性回归计算的加密残差值[[di]]可以表示为[[wHxH]]+[[wGxG-y]],其中,y为标签,由G方提供。
同理,H方加密后的中间计算结果表示为[[wHxH]],H方利用自身的[[wHxH]]和G方发送的[[wGxG-y]],基于线性回归计算的加密残差值[[di]]可以表示为[[wHxH]]+[[wGxG-y]],其中,y为标签,由G方提供。
由于G方没有公钥对应的用于解密的私钥,因此无法解密此值,从而能够避免H方的数据泄露。
步骤S906,G方与H方利用自有中间计算结果和加密残差值分别计算加密本地梯度[[di]]xG和[[di]]xH
在一些实施例中,可以基于第一预设步长和第二预设步长,分别对[[di]]xG和[[di]]xH进行优化处理。
注意此步骤与步骤S905两方均分别同步进行,相较于旧方案的统一由G方来计算梯度,避免可能的网络通讯延时造成的延迟等待,加速训练效率。
步骤S907,G方与H方将加密本地梯度[[di]]x发送给A方。
当使用损失值进行收敛判断时,G方与H方同时也向A方发送己方损失值LG和LH,A方自行组合损失值L=LG+LH
A方利用私有秘钥(即上文中的私钥)解密梯度,分别发送给各参与方。A方根据梯度范数或损失值决定是否收敛并通知G方、H方。
本申请实施例中,LG损失值的计算公式为:
Figure BDA0002957972490000321
LH损失值的计算公式为:
Figure BDA0002957972490000322
步骤S908,H、G方更新本地模型参数。
在非同步梯度轮数:重复步骤S905至步骤S906。
在同步梯度的轮数(n的倍数):重复步骤S903至步骤S908。
重复步骤S902至步骤S908步直到模型收敛或到达最大模型训练轮数。
图10为本申请实施例提供的纵向模型逻辑回归交互的流程示意图,与线性回归交互方式的区别仅在于计算残差值di的回归模型不同,其余步骤均相同,具体参见图9A和图9B所示实施例中的描述。
本申请实施例阐述了一种在联邦学习纵向框架下的线性模型建模的异步更新机制。针对相关技术中方案的交互机制无法便捷地进行异步更新的缺陷,通过改进现有模型的交互机制,减少通讯中各参与方需要等待传输的时间与加密计算,同时为异步更新创造条件。待本地更新特定轮数后再进行交互,有效可控地在减少建模方交互和机密计算的同时不过多损耗结果模型的可靠性,提高总体建模效率。而且在联邦学习的框架下,训练时多次交互通讯成本高。设定相同更新轮数,相对现有线性回归训练方案,本申请实施例的方案还能够减少各参与方的通讯次数,从而减少对加密数组的计算操作,进一步提高整体训练效率。
下面继续说明本申请实施例提供的模型的联合训练装置的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器140的模型的联合训练装置111应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述模型的联合训练装置111中的软件模块可以包括:
第一获取模块112,用于获取所述主动方发送的第二密文训练结果;
第二获取模型113,用于获取第一密文训练结果和已训练轮数;
第一确定模块114,用于基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;
第一发送模块115,用于当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;
第一接收模块116,用于接收所述协调方发送的所述第一解密梯度;
第一更新模块117,用于基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
在一些实施例中,所述模型的联合训练装置111,还包括:
优化模块,用于当所述已训练轮数不满足同步条件时,基于预设步长对所述第一加密梯度进行优化,得到优化后的第一加密梯度;
第二更新模块,用于基于所述优化后的第一加密梯度对自身的训练模型进行更新,得到更新后的训练模型。
在一些实施例中,所述模型的联合训练装置111,还包括:
第二确定模块,用于基于第一预设阈值确定所述已训练轮数是否满足同步条件;
所述第二确定模块,还用于当所述已训练轮数能够整除所述第一预设阈值时,确定所述已训练轮数满足同步条件;
所述第二确定模块,还用于当所述已训练轮数不能整除所述第一预设阈值时,确定所述已训练轮数不满足同步条件。
在一些实施例中,所述第二获取模块113,还用于:
接收所述协调方发送的公钥;
获取用于联合训练的样本数据和自身的训练模型;
将所述样本数据输入至所述训练模型进行训练,得到第一训练结果;
基于所述公钥对所述第一训练结果进行加密,得到第一密文训练结果。
在一些实施例中,所述第二获取模块113,还用于:
从所述主动方获取本轮训练样本的标识;
基于所述标识,从自身的特征数据中筛选出所述标识对应的数据;
将所述标识对应的数据确定为用于联合训练的样本数据。
在一些实施例中,所述第一确定模块114,还用于:
对所述第一密文训练结果和所述第二密文训练结果进行回归分析,得到加密残差值;
基于所述标识对应的数据和所述加密残差值确定第一加密梯度。
在一些实施例中,所述模型的联合训练装置111,还可以包括:
第三接收模块,用于接收所述协调方发送的收敛信息;
第三确定模块,用于当所述收敛信息为已收敛或已完成训练时,将所述更新后的训练模型确定为训练好的目标模型。
在一些实施例中,所述收敛信息由所述协调方基于所述第一解密梯度和预设梯度范数阈值确定;或者,所述收敛信息由所述协调方基于已训练轮数和预设轮数阈值确定;或者,所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定;
当所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定时,所述模型的联合训练装置111,还可以包括:
第四确定模块,用于基于所述公钥和所述第一训练结果,确定本轮训练的第一损失值;
第四发送模块,用于将所述第一损失值发送至所述协调方,以使所述协调方基于所述第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值,并基于所述损失值确定本轮训练的收敛信息。
在上述实施例的基础上,本申请实施例再提供一种模型的联合训练装置,应用于纵向联邦学习的协作方,此时所述模型的联合训练装置中的软件模块可以包括:
生成模块,用于生成用于加密的公钥和用于解密的私钥;
第二发送模块,用于将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;
第二接收模块,用于接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;
解密模块,用于基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;
第三发送模块,用于将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
在一些实施例中,所述模型的联合训练装置,还可以包括:
第三获取模块,用于获取收敛信息;
第五发送模块,用于将所述收敛信息发送至所述被动方和所述主动方。
在一些实施例中,所述第三获取模块,还用于:
确定解密梯度之和与预设梯度范数阈值的差值;或者基于所述被动方发送的第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值;或者获取所述被动方已训练轮数;所述解密梯度之和为所述第一解密梯度和所述第二解密梯度的和;
当所述差值小于第二预设阈值时,或者当所述损失值小于预设损失阈值时,将所述收敛信息确定为已收敛;或者当所述已训练轮数大于预设轮数阈值时,将所述收敛信息确定为已完成训练。
这里需要指出的是:以上模型的联合训练装置实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本申请模型的联合训练装置实施例中未披露的技术细节,本领域的技术人员请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模型的联合训练方法。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3至图7示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (16)

1.一种模型的联合训练方法,其特征在于,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述方法包括:
获取所述主动方发送的第二密文训练结果;
获取第一密文训练结果和已训练轮数;
基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;
当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;
接收所述协调方发送的所述第一解密梯度,并基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述已训练轮数不满足同步条件时,基于预设步长对所述第一加密梯度进行优化,得到优化后的第一加密梯度;
基于所述优化后的第一加密梯度对自身的训练模型进行更新,得到更新后的训练模型。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于第一预设阈值确定所述已训练轮数是否满足同步条件;
当所述已训练轮数能够整除所述第一预设阈值时,确定所述已训练轮数满足同步条件;
当所述已训练轮数不能整除所述第一预设阈值时,确定所述已训练轮数不满足同步条件。
4.根据权利要求1所述的方法,其特征在于,所述获取第一密文训练结果,包括:
接收所述协调方发送的公钥;
获取用于联合训练的样本数据和自身的训练模型;
将所述样本数据输入至所述训练模型进行训练,得到第一训练结果;
基于所述公钥对所述第一训练结果进行加密,得到第一密文训练结果。
5.根据权利要求4所述的方法,其特征在于,所述获取用于联合训练的样本数据,包括:
从所述主动方获取本轮训练样本的标识;
基于所述标识,从自身的特征数据中筛选出所述标识对应的数据;
将所述标识对应的数据确定为用于联合训练的样本数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度,包括:
对所述第一密文训练结果和所述第二密文训练结果进行回归分析,得到加密残差值;
基于所述标识对应的数据和所述加密残差值确定第一加密梯度。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述协调方发送的收敛信息;
当所述收敛信息为已收敛或已完成训练时,将所述更新后的训练模型确定为训练好的目标模型。
8.根据权利要求7所述的方法,其特征在于,所述收敛信息由所述协调方基于所述第一解密梯度和预设梯度范数阈值确定;或者,所述收敛信息由所述协调方基于已训练轮数和预设轮数阈值确定;或者,所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定;
当所述收敛信息由所述协调方基于自身发送的第一损失值和所述主动方发送的第二损失值确定时,所述方法还包括:
基于所述公钥和所述第一训练结果,确定本轮训练的第一损失值;
将所述第一损失值发送至所述协调方,以使所述协调方基于所述第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值,并基于所述损失值确定本轮训练的收敛信息。
9.一种模型的联合训练方法,其特征在于,应用于纵向联邦学习的协调方,所述方法包括:
生成用于加密的公钥和用于解密的私钥;
将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;
接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;
基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;
将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取收敛信息;
将所述收敛信息发送至所述被动方和所述主动方。
11.根据权利要求10所述的方法,其特征在于,所述获取收敛信息,包括:
确定解密梯度之和与预设梯度范数阈值的差值;或者基于所述被动方发送的第一损失值和所述主动方发送的第二损失值确定本轮训练的损失值;或者获取所述被动方已训练轮数;所述解密梯度之和为所述第一解密梯度和所述第二解密梯度的和;
当所述差值小于第二预设阈值时,或者当所述损失值小于预设损失阈值时,将所述收敛信息确定为已收敛;或者当所述已训练轮数大于预设轮数阈值时,将所述收敛信息确定为已完成训练。
12.一种模型的联合训练装置,其特征在于,应用于纵向联邦学习的被动方,所述被动方和所述纵向联邦学习的主动方分别利用自身的特征数据进行模型训练,所述装置包括:
第一获取模块,用于获取所述主动方发送的第二密文训练结果;
第二获取模块,用于获取第一密文训练结果和已训练轮数;
第一确定模块,用于基于所述第一密文训练结果和所述第二密文训练结果确定第一加密梯度;
第一发送模块,用于当所述已训练轮数满足同步条件时,将所述第一加密梯度发送至协调方,以使所述协调方基于所述第一加密梯度确定第一解密梯度;
第一接收模块,用于接收所述协调方发送的所述第一解密梯度;
第一更新模块,用于基于所述第一解密梯度对自身的训练模型进行更新,得到更新后的训练模型。
13.一种模型的联合训练装置,其特征在于,应用于纵向联邦学习的协调方,所述装置包括:
生成模块,用于生成用于加密的公钥和用于解密的私钥;
第二发送模块,用于将所述公钥分别发送至进行模型训练的被动方和主动方,以使所述被动方和所述主动方分别基于所述公钥确定第一加密梯度和第二加密梯度;
第二接收模块,用于接收所述被动方发送的第一加密梯度和所述主动方发送的第二加密梯度;
解密模块,用于基于所述私钥分别对所述第一加密梯度和所述第二加密梯度进行解密,得到第一解密梯度和第二解密梯度;
第三发送模块,用于将所述第一解密梯度和所述第二解密梯度分别发送至所述被动方和所述主动方,以使所述被动方和所述主动方分别基于所述第一解密梯度和所述第二解密梯度更新各自的训练模型。
14.一种模型的联合训练设备,其特征在于,所述设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8或权利要求9至11任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可执行指令,用于引起处理器执行时,实现权利要求1至8或权利要求9至11任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8或权利要求9至11任一项所述的方法。
CN202110230932.5A 2021-03-02 2021-03-02 一种模型的联合训练方法、设备、存储介质及程序产品 Pending CN112818374A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110230932.5A CN112818374A (zh) 2021-03-02 2021-03-02 一种模型的联合训练方法、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110230932.5A CN112818374A (zh) 2021-03-02 2021-03-02 一种模型的联合训练方法、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN112818374A true CN112818374A (zh) 2021-05-18

Family

ID=75862681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110230932.5A Pending CN112818374A (zh) 2021-03-02 2021-03-02 一种模型的联合训练方法、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN112818374A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190872A (zh) * 2021-05-28 2021-07-30 脸萌有限公司 数据保护方法、网络结构训练方法、装置、介质及设备
CN113543120A (zh) * 2021-09-17 2021-10-22 百融云创科技股份有限公司 一种基于联邦学习的移动终端信用反欺诈预估方法及系统
CN113542228A (zh) * 2021-06-18 2021-10-22 腾讯科技(深圳)有限公司 基于联邦学习的数据传输方法、装置以及可读存储介质
CN113657615A (zh) * 2021-09-02 2021-11-16 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113657616A (zh) * 2021-09-02 2021-11-16 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113722744A (zh) * 2021-09-15 2021-11-30 京东科技信息技术有限公司 用于联邦特征工程的数据处理方法、装置、设备以及介质
CN113935050A (zh) * 2021-09-26 2022-01-14 平安科技(深圳)有限公司 基于联邦学习的特征提取方法和装置、电子设备、介质
CN114330759A (zh) * 2022-03-08 2022-04-12 富算科技(上海)有限公司 一种纵向联邦学习模型的训练方法及系统
CN114881247A (zh) * 2022-06-10 2022-08-09 杭州博盾习言科技有限公司 基于隐私计算的纵向联邦特征衍生方法、装置、介质
CN116150809A (zh) * 2023-04-14 2023-05-23 深圳市峰和数智科技有限公司 一种用于光伏功率预测模型训练中的数据保护方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492420A (zh) * 2018-12-28 2019-03-19 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、终端、系统及介质
CN109886417A (zh) * 2019-03-01 2019-06-14 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、装置、设备及介质
CN110633805A (zh) * 2019-09-26 2019-12-31 深圳前海微众银行股份有限公司 纵向联邦学习系统优化方法、装置、设备及可读存储介质
CN110751294A (zh) * 2019-10-31 2020-02-04 深圳前海微众银行股份有限公司 联合多方特征数据的模型预测方法、装置、设备及介质
CN111242316A (zh) * 2020-01-09 2020-06-05 深圳前海微众银行股份有限公司 纵向联邦学习模型训练优化方法、装置、设备及介质
CN111368196A (zh) * 2020-03-03 2020-07-03 深圳前海微众银行股份有限公司 模型参数的更新方法、装置、设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492420A (zh) * 2018-12-28 2019-03-19 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、终端、系统及介质
CN109886417A (zh) * 2019-03-01 2019-06-14 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、装置、设备及介质
CN110633805A (zh) * 2019-09-26 2019-12-31 深圳前海微众银行股份有限公司 纵向联邦学习系统优化方法、装置、设备及可读存储介质
WO2021004551A1 (zh) * 2019-09-26 2021-01-14 深圳前海微众银行股份有限公司 纵向联邦学习系统优化方法、装置、设备及可读存储介质
CN110751294A (zh) * 2019-10-31 2020-02-04 深圳前海微众银行股份有限公司 联合多方特征数据的模型预测方法、装置、设备及介质
CN111242316A (zh) * 2020-01-09 2020-06-05 深圳前海微众银行股份有限公司 纵向联邦学习模型训练优化方法、装置、设备及介质
CN111368196A (zh) * 2020-03-03 2020-07-03 深圳前海微众银行股份有限公司 模型参数的更新方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈涛;郭睿;刘志强;: "面向大数据隐私保护的联邦学习算法航空应用模型研究", 信息安全与通信保密, no. 09, 10 September 2020 (2020-09-10) *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190872A (zh) * 2021-05-28 2021-07-30 脸萌有限公司 数据保护方法、网络结构训练方法、装置、介质及设备
WO2022250609A1 (zh) * 2021-05-28 2022-12-01 脸萌有限公司 数据保护方法、网络结构训练方法、装置、介质及设备
CN113542228A (zh) * 2021-06-18 2021-10-22 腾讯科技(深圳)有限公司 基于联邦学习的数据传输方法、装置以及可读存储介质
CN113542228B (zh) * 2021-06-18 2022-08-12 腾讯科技(深圳)有限公司 基于联邦学习的数据传输方法、装置以及可读存储介质
CN113657616A (zh) * 2021-09-02 2021-11-16 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113657616B (zh) * 2021-09-02 2023-11-03 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113657615B (zh) * 2021-09-02 2023-12-05 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113657615A (zh) * 2021-09-02 2021-11-16 京东科技信息技术有限公司 联邦学习模型的更新方法和装置
CN113722744A (zh) * 2021-09-15 2021-11-30 京东科技信息技术有限公司 用于联邦特征工程的数据处理方法、装置、设备以及介质
WO2023040429A1 (zh) * 2021-09-15 2023-03-23 京东科技信息技术有限公司 用于联邦特征工程的数据处理方法、装置、设备以及介质
CN113543120B (zh) * 2021-09-17 2021-11-23 百融云创科技股份有限公司 一种基于联邦学习的移动终端信用反欺诈预估方法及系统
CN113543120A (zh) * 2021-09-17 2021-10-22 百融云创科技股份有限公司 一种基于联邦学习的移动终端信用反欺诈预估方法及系统
CN113935050A (zh) * 2021-09-26 2022-01-14 平安科技(深圳)有限公司 基于联邦学习的特征提取方法和装置、电子设备、介质
CN113935050B (zh) * 2021-09-26 2024-09-27 平安科技(深圳)有限公司 基于联邦学习的特征提取方法和装置、电子设备、介质
CN114330759A (zh) * 2022-03-08 2022-04-12 富算科技(上海)有限公司 一种纵向联邦学习模型的训练方法及系统
CN114330759B (zh) * 2022-03-08 2022-08-02 富算科技(上海)有限公司 一种纵向联邦学习模型的训练方法及系统
CN114881247A (zh) * 2022-06-10 2022-08-09 杭州博盾习言科技有限公司 基于隐私计算的纵向联邦特征衍生方法、装置、介质
CN114881247B (zh) * 2022-06-10 2024-10-18 杭州博盾习言科技有限公司 基于隐私计算的纵向联邦特征衍生方法、装置、介质
CN116150809A (zh) * 2023-04-14 2023-05-23 深圳市峰和数智科技有限公司 一种用于光伏功率预测模型训练中的数据保护方法

Similar Documents

Publication Publication Date Title
CN112818374A (zh) 一种模型的联合训练方法、设备、存储介质及程序产品
CN112182595B (zh) 基于联邦学习的模型训练方法及装置
CN113204787B (zh) 基于区块链的联邦学习隐私保护方法、系统、设备和介质
CN113033828B (zh) 模型训练方法、使用方法、系统、可信节点及设备
CN110555525B (zh) 模型参数确定方法、装置和电子设备
Pibernik et al. Secure collaborative supply chain planning and inverse optimization–The JELS model
CN113542228B (zh) 基于联邦学习的数据传输方法、装置以及可读存储介质
KR20160002697A (ko) 부분 준동형 암호화 및 마스크들을 이용한 프라이버시-보호 리지 회귀
CN114696990B (zh) 基于全同态加密的多方计算方法、系统及相关设备
CN110580410A (zh) 模型参数确定方法、装置和电子设备
CN113051586B (zh) 联邦建模系统及方法、联邦模型预测方法、介质、设备
US11991156B2 (en) Systems and methods for secure averaging of models for federated learning and blind learning using secure multi-party computation
CN112016698B (zh) 因子分解机模型构建方法、设备及可读存储介质
CN116502732B (zh) 基于可信执行环境的联邦学习方法以及系统
WO2023124219A1 (zh) 一种联合学习模型迭代更新方法、装置、系统及存储介质
CN114448598A (zh) 密文压缩方法、密文解压缩方法、装置、设备和存储介质
Zhang et al. {FLASH}: Towards a high-performance hardware acceleration architecture for cross-silo federated learning
CN112949866B (zh) 泊松回归模型的训练方法、装置、电子设备及存储介质
CN114239089A (zh) 基于混淆电路的业务处理方法及装置
Martínez-Fuentes et al. Family of controllers for predefined-time synchronization of Lorenz-type systems and the Raspberry Pi-based implementation
US12113890B2 (en) Homomorphic encryption using smart contracts
CN113887740B (zh) 联合更新模型的方法、装置及系统
CN115130568A (zh) 支持多参与方的纵向联邦Softmax回归方法及系统
CN115564447A (zh) 一种信用卡交易风险检测方法及装置
EP4399835A1 (en) Systems and methods for averaging of models for federated learning and blind learning using secure multi-party computation

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