CN112668038A - 一种模型训练方法、装置和电子设备 - Google Patents

一种模型训练方法、装置和电子设备 Download PDF

Info

Publication number
CN112668038A
CN112668038A CN202010491185.6A CN202010491185A CN112668038A CN 112668038 A CN112668038 A CN 112668038A CN 202010491185 A CN202010491185 A CN 202010491185A CN 112668038 A CN112668038 A CN 112668038A
Authority
CN
China
Prior art keywords
model
target model
target
data
data provider
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
CN202010491185.6A
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.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing 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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202010491185.6A priority Critical patent/CN112668038A/zh
Publication of CN112668038A publication Critical patent/CN112668038A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供了一种模型训练方法、装置和电子设备,其中,所述方法适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景,所述方法包括:接收各数据提供方上传的中间结果,中间结果包括第一中间结果;在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定目标模型的模型更新因子;将目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果;进而保证了各数据提供方的数据安全和目标模型的安全。

Description

一种模型训练方法、装置和电子设备
技术领域
本发明涉及数据处理领域,特别是涉及一种模型训练方法、装置和电子设备。
背景技术
随着科学技术的不断发展,解决各种不同问题的模型不断的被设计出来,使得模型被广泛的应用于各个领域;如数据挖掘领域、人工智能领域等等。其中,模型在被使用之前,需要采用训练数据来对其进行训练。
在实际应用中,模型训练所需的训练数据往往分布在多个数据提供方;为了提高模型的性能,需要采用各方的训练数据对模型进行训练;以在更大规模、更高质量的数据集上进行模型的训练。
现有技术中,一种模型训练的方法是由模型需求方对模型进行训练;即模型需求方从各个数据提供方收集明文数据,然后采用收集的明文数据对模型进行训练。但这种方式会将数据提供方的训练数据泄露给模型需求方,无法保证数据提供方提供的训练数据的安全。
发明内容
本发明实施例提供一种模型训练方法,以保证模型训练过程中的数据安全。
相应的,本发明实施例还提供了一种模型训练装置和电子设备,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种模型训练方法,所述方法适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景,具体包括:接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型;在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子;将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
可选地,当所述第一中间结果为计算目标模型的梯度所需的中间结果时,所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度;依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。
可选地,当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果;依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子;依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子。
可选地,所述的方法还包括:判断是否需要继续训练所述目标模型;若确定需要继续训练所述目标模型,则执行所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的步骤;若确定需要停止继续训练所述目标模型,则将最后得到的目标模型的目标模型参数发送至模型需求方,以及向各数据提供方发送结束训练消息。
可选地,当所述模型需求方包括多个时,则所述将最后得到的目标模型的目标模型参数发送至模型需求方,包括:将最后得到的目标模型的目标模型参数进行拆分并分发给对应的模型需求方。
可选地,所述中间结果还包括第二中间结果,所述第二中间结果包括损失函数的中间结果,所述损失函数的中间结果是根据各数据提供方依据上一更新轮次接收到的模型更新因子对所拥有的部分目标模型进行更新后确定;所述判断是否需要继续训练所述目标模型,包括:在密文的基础上基于多方安全计算将各数据提供方上传的第二中间结果进行合并,得到所述目标模型对应损失函数的值;在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型。
可选地,所述第一中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:在密文基础上基于秘密分享协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
可选地,所述第一中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:在密文的基础上基于同态加密协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
本发明实施例还公开了一种模型训练装置,所述装置适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景,具体包括:接收模块,用于接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型;运算模块,用于在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子;分发模块,用于将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
可选地,所述运算模块,包括:第一模型更新因子运算子模块,用于当所述第一中间结果为计算目标模型的梯度所需的中间结果时,根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度;依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。
可选地,所述运算模块,包括:第二模型更新因子运算子模块,用于当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果;依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子;依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子。
可选地,所述的装置还包括:判断模块,用于判断是否需要继续训练所述目标模型;所述运算模块,用于若确定需要继续训练所述目标模型,则执行所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的步骤;发送模块,用于若确定需要停止继续训练所述目标模型,则将最后得到的目标模型的目标模型参数发送至模型需求方,以及向各数据提供方发送结束训练消息。
可选地,所述发送模块,用于当所述模型需求方包括多个时,将最后得到的目标模型的目标模型参数进行拆分并分发给对应的模型需求方。
可选地,所述中间结果还包括第二中间结果,所述第二中间结果包括损失函数的中间结果,所述损失函数的中间结果是根据各数据提供方依据上一更新轮次接收到的模型更新因子对所拥有的部分目标模型进行更新后确定;所述判断模块,用于在密文的基础上基于多方安全计算将各数据提供方上传的第二中间结果进行合并,得到所述目标模型对应损失函数的值;在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型。
可选地,所述第一中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述运算模块,包括:第三模型更新因子运算子模块,用于在密文基础上基于秘密分享协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
可选地,所述第一中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述运算模块,包括:第四模型更新因子运算子模块,用于在密文的基础上基于同态加密协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
本发明实施例还公开了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中任一所述的模型训练方法。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中任一所述的模型训练方法。
与现有技术相比,本发明实施例至少包括以下优点:
本发明实施例中,由各数据提供方基于本地私有数据,对各自拥有的部分目标模型进行训练得到第一中间结果后,借助密文计算平台,将各自的第一中间结果以密文的形式通过多方安全协议进行运算,确定所述目标模型的模型更新因子,并将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;然后由各数据提供方分别依据接收到的所述模型更新因子更新部分目标模型,对更新后的部分目标模型进行一轮训练得到第一中间结果,并基于第一中间结果借助密文计算平台确定模型更新因子并在拆分后分发给各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例中,每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。此外,各数据提供方在本地训练更新的模型是目标模型的一部分,使得各数据提供方也仅拥有目标模型的部分模型更新因子,从而还能够保证目标模型的安全。
附图说明
图1是本发明的一种模型训练系统实施例的结构框图;
图2是本发明的一种模型训练方法实施例的步骤流程图;
图3是本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图;
图4是本发明的一种模型训练方法可选实施例的步骤流程图;
图5是本发明的另一种模型训练方法可选实施例的步骤流程图;
图6是本发明的又一种模型训练方法可选实施例的步骤流程图;
图7是本发明的一种模型训练装置实施例的结构框图;
图8是本发明的一种模型训练装置可选实施例的结构框图;
图9示意性地示出了用于执行根据本发明的方法的电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种模型训练系统实施例的结构框图。
所述模型训练系统可以包括模型需求方、数据提供方和密文计算平台。其中,所述模型需求方可以为一个或多个,所述数据提供方可以为两个及两个以上,具体可以按照需求确定,本发明实施例对此不作限制;其中,为描述方便图1中仅示出了两个数据提供方和一个模型需求方。所述模型需求方在作为模型需求方的同时,也可以作为数据提供方。所述密文计算平台可以部署在所有数据提供方和模型需求方中的一方,也可以分布式地部署在所有数据提供方和模型需求方中的多方,还可以独立于所有数据提供方和模型需求方进行部署;本发明实施例对此不作限制。其中,所述密文计算平台可以基于多方安全计算协议进行密文计算,所述密文计算可以包括纯密文运算,以及明文和密文的混合运算。且密文计算平台由所有数据提供方和模型需求方中的多方共同管理;在密文计算平台进行密文计算过程中,任何一方都无法单独对数据进行解密,以保证数据安全。
本发明实施例提供的一种模型训练的方法,适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景;这种场景概括了多个数据提供方的私有数据特征空间重叠较少,样本空间重叠较多,而联合进行数据样本对齐后的情况。其中,各数据提供方拥有部分目标模型,各数据提供方拥有的部分目标模型可以联合构成所述目标模型。其核心构思之一是,由各数据提供方基于拥有的数据对部分目标模型进行本地训练;然后借助密文计算平台,基于各数据提供方本地训练得到的结果,确定目标模型的模型更新因子,并将模型更新因子按照各数据提供方的需要拆分后下发给对应的数据提供方;然后各数据提供方可以依据接收的模型更新因子继续基于拥有的数据对拥有的部分目标模型进行本地训练,然后再借助密文计算平台确定目标模型的模型更新因子,如此循环往复,实现模型的训练。本发明实施例不仅能够保证各数据提供方数据的隐私安全,且由于各数据提供方仅拥有目标模型部分维度参数,还能够保证目标模型的安全。
参照图2,示出了本发明的一种模型训练方法实施例的步骤流程图,具体可以包括如下步骤:
步骤202、接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型。
步骤204、在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
步骤206、将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
本发明实施例中,可以将模型需求方所需训练的模型称为目标模型。
本发明实施例中,各数据提供方各自提供的用于训练目标模型的部分数据(后续可以称为本地私有数据),可以看做是对目标模型训练依赖的数据集进行了纵向切分后的数据;即目标模型所训练所依赖的数据纵向分布在多个数据提供方。各数据提供方各自提供的本地私有数据是相同的样本集在一系列不同特征维度上的数据;例如数据提供方1拥有的数据为:用户A的身高数据;数据提供方2拥有的数据为:用户A的体重数据;数据提供方3拥有用户A的发型数据。
由于各数据提供方各自提供的本地私有数据,可以看做是对目标模型训练依赖的数据集进行了纵向切分后的数据;因此每个数据方都无法基于本地私有数据,对包含全部维度参数的目标模型进行训练;仅可以对包含部分维度参数的模型进行训练,该部分维度与其拥有的本地私有数据的维度对应。因此本发明实施例中,可以预先由模型需求方依据自身针对目标模型的训练需求,以及各数据提供方所拥有的本地私有数据的维度;针对每个数据提供方,可以生成各数据提供方对应的部分目标模型和该部分目标模型的初始参数。然后依据该数据提供方对应的部分目标模型和该部分目标模型的初始参数,生成与各数据提供方对应的训练需求信息;再将各训练需求信息,下发给对应的数据提供方。其中,各数据提供方对应的部分目标模型是目标模型的一部分,各数据提供方拥有的部分目标模型联合构成所述目标模型。
当然,针对每个数据提供方,也可以仅生成与各数据提供方对应的部分目标模型。然后依据各数据提供方对应的部分目标模型,生成与各数据提供方对应的训练需求信息;本发明实施例对此不作限制。
每个数据提供方接收到对应的训练需求信息后,若确定训练需求信息中包含初始参数,则可以采用初始参数,对训练需求信息中包含的部分目标模型进行初始化。若训练需求信息中未包含初始参数,则可以采用默认参数对训练需求信息中包含的部分目标模型进行初始化,也可以采用随机参数对训练需求信息中包含的部分目标模型进行初始化。然后各数据提供方可以采用其拥有的本地私有数据,对初始化后的部分目标模型进行训练。
其中,各数据提供方采用各自拥有的本地私有数据,对部分目标模型进行一轮训练的过程中,可以得到对应的中间结果。其中,所述中间结果可以包括在对部分目标模型进行一轮训练后得到的第一中间结果,即第一中间结果可以依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到。所述第一中间结果可以包括多种,如计算目标模型的梯度所需的中间结果、计算目标模型的预测结果所需的中间结果等等,本发明实施例对此不作限制。然后各数据提供方可以借助密文计算平台,将各自的第一中间结果以密文的形式进行计运算,确定所述目标模型的模型更新因子。
其中,密文计算平台可以将各数据提供方的第一中间结果,以密文的形式通过多方安全计算协议进行运算,确定所述目标模型的模型更新因子。由于各数据提供方的部分目标模型是目标模型的一部分,所需的模型更新因子也可以是目标模型对应模型更新因子的一部分;因此密文计算平台可以将目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子;然后将拆分后的模型更新因子分发给对应的数据提供方。其中,密文计算平台确定的模型更新因子可以为密文。此外,所基于的多方安全计算协议可以是混淆电路,秘密分享,和同态加密等,如何基于多方安全计算协议进行合并在后续进行说明。
各数据提供方接收到密文计算平台下发的模型更新因子后,可以对模型更新因子进行解密;然后可以采用解密后的模型更新因子更新对应的部分目标模型,并基于各自拥有的本地私有数据,对更新后的部分目标模型进行一轮训练,得到对应的第一中间结果。再将本轮训练得到的第一中间结果上传至密文计算平台,借助密文计算平台执行上述步骤202-步骤206;如此循环往复,直到将目标模型训练为满足模型需求方的模型训练需求为止。
此外,密文计算平台在确定目标模型训练结束后,可以将最终得到的目标模型的目标模型参数发送给模型需求方;模型需求方对接收到的目标模型的目标模型参数进行解密后,即可以得到训练好的目标模型。
综上,本发明实施例中,由各数据提供方基于本地私有数据,对各自拥有的部分目标模型进行训练得到第一中间结果后,借助密文计算平台,将各自的第一中间结果以密文的形式通过多方安全协议进行运算,确定所述目标模型的模型更新因子,并将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;然后由各数据提供方分别依据接收到的所述模型更新因子更新部分目标模型,对更新后的部分目标模型进行一轮训练得到第一中间结果,并基于第一中间结果借助密文计算平台确定模型更新因子并在拆分后分发给各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例中,每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。此外,各数据提供方在本地训练更新的模型是目标模型的一部分,使得各数据提供方也仅拥有目标模型的部分模型更新因子,从而还能够保证目标模型的安全。
本发明的一个实施例中,各数据提供方可以基于秘密分享协议将第一中间结果分片编码后发送至密文计算平台。一种在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子方式可以是:在密文基础上基于秘密分享协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。密文计算平台将拆分后的模型更新因子分发给各数据提供方后,各数据提供方可以基于秘密分享协议对接收到的模型更新因子进行解密;然后再采用解密后的模型更新更新因子对其所拥有的部分目标模型进行更新。
本发明的一个实施例中,基于同态加密协议,由各数据提供方协同生成公钥和私钥,由密文计算平台持有公钥,每个数据提供方持有私钥的一部分。各数据提供方将第一中间结果基于所持有的公钥加密,然后将加密后的第一中间结果上传至密文计算平台。又一种在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的方式可以是:在密文的基础上基于同态加密协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。密文计算平台将拆分后的模型更新因子分发给各数据提供方后,各数据提供方可以根据各自持有的部分私钥,联合对各自拥有的模型更新因子进行解密。
当然,本发明的一个实施例中,还可以由密文计算平台基于同态加密协议分发公钥给各数据提供方;各数据提供方根据公钥将第一中间结果加密,并对加密后的第一中间结果进行交换以及运算,确定模型更新因子;然后将确定的模型更新因子上传至密文计算平台进行解密。
以下对在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子进行说明。
参照图3,示出了本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图。可以包括如下步骤:
步骤302、密文计算平台确定计算任务和对应的计算数据。
步骤304、基于多方安全计算协议生成所述计算任务对应的多方计算指令,将所述多方计算指令和计算数据发送至密文计算平台中的计算引擎。
本发明的一个可选实施例中,密文计算平台在依据各数据提供方上传的第一中间结果进行运算过程中,需要进行多次计算。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,然后调用密文计算平台中的计算引擎对所述计算任务对应的计算数据进行处理。
其中,密文计算平台可以按照预先构建的对应各计算任务的多方安全计算协议,预先将计算任务转换成所述多方计算指令;然后将多方计算指令和对应的计算数据发送至计算引擎。
其中,所述多方安全计算协议为指示并调度计算引擎中各计算节点执行对应计算任务的多方计算的过程,其包括但不限于:描述加法、减法、乘法或除法等数学计算的计算任务的多方计算执行过程,描述逻辑和、或、非、异或、比较等逻辑计算的计算任务的多方计算执行过程,描述秘密传输的多方计算执行过程等。其中,所述多方计算指令包括:为采用多方计算的方式执行计算任务而指示计算引擎中各计算节点进行本地计算的指令,计算节点之间执行数据交互的指令,获取计算数据的指令,生成随机数的指令等。所述多方计算指令还可以包含指示计算节点执行本地计算和数据交互的计算角色的指令。所述多方计算指令可以由计算机程序语言来描述,或者由机器语言来描述。
然后计算引擎可以基于所述多方计算指令对对应的计算数据进行处理。
步骤306、计算引擎获取多方计算指令和计算数据。
其中,所述计算引擎可以包括多个计算节点,通过多个计算节点的协同计算来实现对计算任务对应计算数据的处理;计算引擎包含的计算节点的数量可以按照需求设置如4个,本发明实施例对此不作限制。
在一些示例中,计算引擎的各计算节点可以获取计算任务的完整的多方计算指令,即获取包含有每个计算节点执行的计算指令。为此,为使每个计算节点协同执行,所述步骤包括:各计算节点获取所述多方计算指令及计算角色;以供各计算节点按照所分别获取的计算角色执行所述多方计算指令。其中,所述计算角色用于标记所述多方计算指令中各执行本地计算的计算节点,以及标记所述多方计算指令中执行计算节点之间的交互时数据发送方和数据接收方等。
在又一些示例中,计算引擎的各计算节点分别获取所述多方计算指令中对应本地执行的计算指令。其中,所述本地执行的计算指令包含用于执行本地计算的指令,为执行数据交互而发出本地存储的数据的指令,为执行数据交互而将所接收的数据存储本地的指令,获取经处理的输入数据的指令,生成随机数的指令等。例如,所述多方计算指令包含计算节点S1执行生成随机数r12的指令P1,计算节点Sa执行生成随机数rab的指令Pa等,则计算节点S1获取指令P1,计算节点Sa获取指令Pa。
为执行计算任务,所述计算引擎中各计算节点还获取对应的计算数据。所述计算数据可以包括数据提供方上传的数据,如中间结果;其中,所述中间结果可以由数据提供方基于计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。本发明的一个可选实施例中,所述随机分散处理方式可以包括:随机产生至少一个私密数据,按照所产生的私密数据将输入数据进行分散处理。一种示例中,所述随机分散处理方式包括:随机产生两个私密数据x1和x'1,基于所述私密数据x1和x'1将输入数据X分散成{x1,x'1,x2,x'2,xa,x'a,xb,x'b};其中,x2=X-x1=xa,x1=xb,x'2=X-x'1=x'b,x'1=x'a。所述计算数据还可以包括密文计算平台中数据,密文计算平台中的数据可以是密文,也可以是明文,本发明实施例对此不作限制。其中,密文计算平台中的密文数据,可以由密文计算引擎基于计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。其中,数据提供方随机分散处理的方式和密文计算平台随机分散处理的方式可以一致。
其中,当所述计算数据为密文时,每个节点获取的计算数据为计算数据的至少一个密文分片,计算数据的所有的密文分片可以组成计算数据的明文。例如上述示例中数据X的密文为{x1,x'1,x2,x'2,xa,x'a,xb,x'b};若计算节点为4个,每个计算节点获取的计算数据的密文分片可以为{x1,x'1},{x2,x'2},{xa,x'a}和{xb,x'b}。当所述计算数据为明文时,每个节点获取的计算数据可以为计算数据的本身。当计算数据包括明文和密文,计算节点获取的计算数据可以为明文和密文的至少一个密文分片。例如,所述计算数据包括A1和A2,其中,A1为密文,被随机分散为{a1,a2},,A2为明文部分。计算节点1获取的计算数据可以为a1和A2,计算节点2获取的计算数据可以为a2和A2。
步骤308、按照所述多方计算指令,所述计算引擎中至少部分计算节点分别对各自所获取的计算数据进行本地计算,和/或将本地计算所产生的中间数据进行交互,得到经由各计算节点分别持有的计算结果。
其中,根据计算任务,所述多方计算指令可指示部分计算节点仅执行本地计算,并得到计算结果。在一些示例中,所述多方计算指令包含基于计算任务中具有同态性的计算而生成的指令;按照所述多方计算指令,所述计算引擎中的计算节点执行本地计算并得到相应的计算结果。其中,所述同态性表示可具有一个封闭的具有结合律的运算,例如,加法计算等。在利用所述计算引擎执行加法计算时,多方计算指令可指示两个计算节点执行计算数据A1和A2的加法计算,并得到各自持有的计算结果。密文计算平台可通过获取该两个计算节点的计算结果得到A1+A2的处理结果。
在又一些示例中,多方计算指令包含指令计算节点分别对各自所获取的计算数据组进行本地计算的指令,以及将本地计算所产生的中间数据进行交互的指令。在一些具体示例中,多方计算指令可对应计算任务中所涉及的每个计算。在又一些具体示例中,所述多方计算指令包含基于计算任务中多个计算之间的关联关系而设置的指令。其中,所述多个计算之间的关联关系包括但不限于:计算优先级关系、计算同态性、计算可同步性、计算所需的计算数据的随机分散处理方式等。根据所述关联关系,所述密文计算平台或计算引擎优化了各计算节点的本地计算和数据交互,由此各计算节点按照优化后的多方计算指令执行本地计算的指令,以及计算节点执行数据交互的指令。例如,计算任务中包含(X+Y)×Z,多方计算指令包含:指示两个计算节点执行本地计算得到对应(X+Y)多方计算的指令,指示该两个计算节点将各自持有的对应(X+Y)多方计算的计算结果作为中间数据,并进行随机分散处理的指令,指示多个计算节点执行对应(X+Y)×Z多方计算的指令等。
步骤310、密文计算平台依据各计算节点分别持有的计算结果,确定所述计算任务对应的处理结果。
在计算引擎得到对应计算任务的计算结果后,密文计算平台可以从所述多个计算节点中选取部分计算节点所持有的计算结果用于生成一处理结果;其中,所述处理结果为所述计算任务对计算数据进行处理的处理结果。
本发明的一个实施例中,所述中间结果可以包括计算目标模型的梯度所需的中间结果和/或计算目标模型的预测结果所需的中间结果;当然还可以包括其他的可用于确定模型更新因子的中间结果,本发明实施例对此不作限制。
以下对第一中间结果为计算目标模型的梯度所需的中间结果时,密文计算平台如何依据各数据提供方上传的第一中间结果进行运算进行说明。
参照图4,示出了本发明的一种模型训练方法可选实施例的步骤流程图。
步骤402、接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型。
本发明实施例中,各数据提供方根据持有的部分目标模型完成一轮训练所需的本地计算后,可以基于本地计算的结果,确定计算目标模型的梯度所需的中间结果;并将计算目标模型的梯度所需的中间结果确定为第一中间结果。然后可以借助密文计算平台,将各自的第一中间结果以密文的形式进行运算,确定所述目标模型的模型更新因子。
密文计算平台可以在密文基础上基于多方安全计算协议,依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。当所述第一中间结果为计算目标模型的梯度所需的中间结果时,实现所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的一种方式,可以参照步骤404-步骤406:
步骤404、根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度。
步骤406、依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。
本发明实施例中,密文计算平台可以根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度。其中,一种示例中,密文计算平台可以将所述目标模型对应损失函数的梯度,确定为所述目标模型的模型更新因子。
本发明实施例中,密文计算平台在密文基础上采用多方安全计算协议,根据计算目标模型的梯度所需的中间结果进行运算的过程中,需要进行多次计算(如可以包括多次加法运算和多次乘法运算)。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据。然后可以参照步骤304-步骤310,完成根据计算目标模型的梯度所需的中间结果进行运算,确定目标模型的模型更新因子。
步骤408、将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
密文计算平台确定模型更新因子后,可以将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;由各数据提供方分别依据各自接收到的模型更新因子更新各自拥有的部分目标模型,再对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果;如此循环往复,直到将目标模型训练为满足模型需求方的模型训练需求为止。
综上,本发明实施例中,当各数据提供方上传的第一中间结果为计算目标模型的梯度所需的中间结果时,密文计算平台可以根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度;然后依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。进而本发明实施例可以直接根据计算目标模型的梯度所需的中间结果,计算出目标模型对应损失函数的梯度并将目标模型对应损失函数的梯度确定为模型更新因子;从而提高了密文计算平台确定目标模型的模型更新因子的效率。
以下对第一中间结果为计算目标模型的预测结果所需的中间结果时,密文计算平台如何依据各数据提供方上传的第一中间结果进行运算进行说明。
参照图5,示出了本发明的另一种模型训练方法可选实施例的步骤流程图。
步骤502、接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型。
本发明实施例中,各数据提供方根据持有的部分目标模型完成一轮训练所需的本地计算后,可以基于本地计算的结果,确定计算目标模型的预测结果所需的中间结果;并将计算目标模型的预测结果所需的中间结果确定为第一中间结果。然后可以借助密文计算平台,将各自的第一中间结果以密文的形式进行运算,确定所述目标模型的模型更新因子。
作为本发明的一个示例,假设目标模型为逻辑回归模型,其损失函数为:
Figure BDA0002521157660000141
其中,M是数据提供方拥有的本地私有数据的总样本数,i的取值为1~M。yi为第i个样本的label(标签),xi为第i个样本,w为模型的参数。
损失函数的梯度的计算方式可以如下:
Figure BDA0002521157660000142
由于各数据提供方的部分目标模型所包括的参数的维度只是所述目标模型的参数的一部分;因此对于目标模型而言,各部分目标模型对应的损失函数的梯度的计算方式可以如下:
Figure BDA0002521157660000143
其中,j是指目标模型的第j个维度,
Figure BDA0002521157660000144
是指目标模型的损失函数的梯度的第j个分量,也是包含目标模型的第j个维度参数的部分目标模型对应的梯度的一个分量。
针对每个数据提供方,在采用其拥有的本地私有数据对部分目标模型进行训练时,可以基于部分目标模型所包含的参数,确定计算目标模型的预测结果所需的中间结果。其中,一种示例中,针对每个数据提供方,可以计算其拥有的本地私有数据与部分目标模型包含的参数的内积;将得到的内积作为计算目标模型的预测结果所需的中间结果。
密文计算平台可以在密文基础上基于多方安全计算协议,依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,实现所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的一种方式,可以参照步骤504-步骤508:
步骤504、根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果。
步骤506、依据所述目标模型的预测结果,确定所述目标模型对应的损失函数的梯度计算因子。
步骤508、依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子。
作为本发明的一个示例,在上述示例的损失函数的基础上,一种根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果的方式可以是:将各数据提供方上传的计算目标模型的预测结果所需的中间结果进行相加,得到目标模型训练所依赖的数据与目标模型所包含的全部维度参数的内积。基于目标模型训练所依赖的数据与目标模型所包含的全部维度参数的内积,计算预测结果;例如可以采用预设函数如Sigmoid函数,计算预测结果。
然后依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子。其中,一种方式可以是,依据所述目标模型的预测结果,直接计算所述目标模型对应的损失函数的梯度计算因子。例如,可以计算目标模型训练所依赖数据的label与预测结果的差值,然后将目标模型训练所依赖的数据label与预测结果的差值,确定为梯度计算因子。其中,目标模型训练所依赖数据的label可以是由某一数据提供方上传的,可以是密文。当然,也可以采用其他方式,依据所述目标模型的预测结果,直接计算所述目标模型对应的损失函数的梯度计算因子,本发明实施例对此不作限制。
另一种方式可以是,依据所述目标模型的预测结果确定所述目标模型的损失函数;再依据所述目标模型的损失函数,确定所述目标模型对应损失函数的梯度计算因子。
其中,一种示例中,可以直接将所述目标模型对应损失函数的梯度计算因子,确定为目标模型的模型更新因子。
本发明实施例中,密文计算平台在确定目标模型的预测结果、损失函数和梯度计算因子的过程中,需要进行多次计算(如可以包括多次加法运算和多次乘法运算)。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,并确定该计算任务对应的计算数据;然后可以参照步骤304-步骤310,完成对各数据提供方上传第一中间结果的运算,确定目标模型对应的模型更新因子。
步骤508、将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
本发明实施例中,当各数据提供方对应部分目标模型所需的模型更新因子相同时,可以无需对目标模型的模型更新因子进行拆分,直接将目标模型的模型更新因子分发给各数据提供方。当各数据提供方对应部分目标模型所需的模型更新因子不相同时,可以将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方。
综上,本发明实施例中,当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,可以根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果;然后依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子,再依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子;进而能够准确的确定目标模型的模型更新因子,保障了模型训练准确性。
本发明实施例中,所述中间结果还包括第二中间结果,所述中间结果为损失函数的中间结果;进而密文计算平台可以根据各数据提供方上传的第二中间结果,判断是否需要继续训练目标模型。当确定需要继续训练目标模型时,可以依据各数据提供方上传的第一中间结果,确定模型更新因子并分发给各数据提供方。当确定无需继续训练目标模型时,即可以指示各数据提供方停止对所拥有的部分目标模型的训练,并将最后得到的目标模型的目标模型参数发送给模型需求方。
参照图6,示出了本发明的又一种模型训练方法可选实施例的步骤流程图。
步骤602、接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果是各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到的,各数据提供方拥有的部分目标模型联合构成所述目标模型;所述中间结果还包括第二中间结果,所述第二中间结果包括损失函数的中间结果,所述损失函数的中间结果根据各数据提供方依据上一更新轮次接收到的模型更新因子对所拥有的部分目标模型进行更新后确定。
本发明实施例中,模型需求方也可以预先将目标模型的训练需求信息上传至密文计算平台;其中,向密文计算平台上传的训练需求信息中可以包括目标模型的结束训练条件。进而密文计算平台可以在每一个更新轮次开始时,依据结束训练条件,判断是否需要继续训练所述目标模型;在确定需要继续训练目标模型时,可以指示各数据提供方对其所拥有的部分目标模型进行训练;确定无需继续训练目标模型时,可以指示各数据提供方停止对其所拥有的部分目标模型进行训练。本发明实施例中,可以将从各数据提供方采用本次接收到的密文计算平台下发的模型更新因子更新所拥有的部分目标模型后,至各数据提供方采用下一次接收到的密文计算平台下发模型更新因子更新所拥有的部分目标模型为止,称为一个更新轮次。
本发明的一个示例中,一种判断是否需要继续训练所述目标模型的方式,可以参照步骤604-步骤606:
步骤604、在密文的基础上基于多方安全计算将各数据提供方上传的第二中间结果进行合并,得到所述目标模型对应损失函数的值。
步骤606、在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型。
本发明实施例中,各数据提供方可以在每一更新轮次,采用拥有的本地私有数据对所拥有的部分目标模型进行训练之前,针对采用上一更新轮次接收到的模型更新因子更新后的部分目标模型,计算该部分目标模型对应的损失函数的中间结果。然后将损失函数的中间结果作为第二中间结果,并在确定第一中间结果后,将第一中间结果和第二中间结果确定为中间结果;然后将中间结果上传至密文计算平台。由密文计算平台根据各数据提供方上传的第二中间结果,判断是否需要继续训练目标模型;以及在确定需要继续训练目标模型时,根据第一中间结果,确定目标模型的模型更新因子。其中,所述第二中间结果可以是明文,也可以是密文,本发明实施例对此不作限制。
本发明实施例中,密文计算平台可以在密文的基础上,基于多方安全计算将各数据提供方上传的第二中间结果进行合并,计算得到所述目标模型对应损失函数的值。以及在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值,判断是否需要继续训练所述目标模型。
本发明实施例中,模型需求方上传至密文计算平台的结束条件可以包括多种,例如可以是损失函数的值小于阈值;又例如连续y(y为正整数,可以按照需求设置,本发明实施例对此不作限制)轮损失函数的值的变化小于设定范围,等等,本发明实施例对此不作限制。对应的,一种依据所述目标模型对应损失函数的值,判断是否需要继续训练所述目标模型的方式可以是,依据所述目标模型对应损失函数的值和结束条件,判断是否需要继续训练所述目标模型。
本发明实施例中,密文计算平台可以在密文的基础上基于多方安全计算,比对所述损失函数的值和结束条件,判断是否需要继续训练所述目标模型。当所述损失函数的值满足结束条件,则确定无需继续训练所述目标模型,即确定需要停止训练所述目标模型;此时可以执行步骤612。当所述损失函数的值不满足结束条件,则确定需要继续对目标模型进行训练;此时可以执行步骤608。
其中,当结束条件为损失函数的值小于阈值时,密文计算平台可以生成用于执行减法计算的计算任务,并将损失函数的值与阈值确定为计算数据;再执行上述步骤304-步骤310,确定对应的计算结果。然后依据对应的计算结果,判断损失函数的值是否满足结束条件。
其中,当结束条件为连续y轮损失函数的值的变化小于设定范围时,密文计算平台可以先生成(y-1)个用于执行减法的计算任务,每一个计算任务的计算数据为相邻两轮的损失函数的值;然后执行步骤304-步骤310计算每个计算任务的计算结果,得到(y-1)个初步计算结果。再基于其中一个初步计算结果和设定范围的其中一个端点值,生成用于执行减法计算的计算任务;计算数据为该初步计算结果和设定范围的其中一个端点值;然后执行步骤304-步骤310计算该计算任务的目标计算结果。若依据该目标计算结果确定相邻两轮损失函数的值的变化大于设定范围,则确定损失函数的值不满足结束条件。若依据该目标计算结果确定相邻两轮损失函数的值的变化小于设定范围,则再基于初步计算结果和设定范围的另一个端点值,生成用于执行减法计算的计算任务;计算数据为该初步计算结果和设定范围的另一个端点值;然后执行步骤304-步骤310计算该计算任务的目标计算结果。若依据该目标计算结果确定相邻两轮损失函数的值的变化大于设定范围,则确定损失函数的值不满足结束条件。若依据该目标计算结果确定相邻两轮损失函数的值的变化小于设定范围,则基于下一个初步计算结果和设定范围的其中一个端点值,生成用于执行减法计算的计算任务,以此类推。
步骤608、在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
步骤610、将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
本发明实施例中,在确定需要继续训练目标模型时,密文计算平台可以根据各数据提供方在当前更新轮次上传的第一中间结果,确定目标模型的模型更新因子。然后将目标模型的模型更新因子拆分后,分发给各数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型继续进行一轮训练以得到需上传的第一中间结果。
步骤612、若确定需要停止训练所述目标模型,则将最后得到的目标模型的目标模型参数发送至模型需求方,以及向各数据提供方发送结束训练消息。
本发明实施例中,在确定需要停止训练目标模型时,一方面可以将最后得到的目标模型的目标模型参数发送至对应的模型需求方;另一方面,可以直接向各数据提供方发送结束训练消息,以指示各数据提供方停止对所拥有的部分目标模型的训练。
本发明的一个可选实施例中,当模型需求方包括多个时,各模型需求方可以达成协议,由每个模型需求方各保有目标模型对应目标模型参数的一部分;此时一种将最后得到的目标模型的目标模型参数发送至模型需求方的方式可以包括:将最后得到的目标模型的目标模型参数进行拆分并分发给对应的模型需求方。
当然,若每个模型需求方均需要目标模型的所有目标模型参数,则可以直接将最后得到的目标模型的所有目标模型参数,分别发送给各模型需求方。模型需求方接收到密文计算平台下发的目标模型的目标模型参数后,可以对接收的目标模型的目标模型参数进行解密,即可得到所需的模型。
综上,本发明实施例中,密文计算平台在接收各数据提供方上传的中间结果后,可以根据各数据提供方上传的中间结果中的第二中间结果,得到所述目标模型对应损失函数的值;然后在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型;从而保证能够确定准确的模型更新后的参数,保障了模型训练的准确性。。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明实施例还公开了一种模型训练装置,所述装置适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景。
参照图7,示出了本发明一种模型训练装置实施例的结构框图,具体可以包括如下模块:
接收模块702,用于接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型;
运算模块704,用于在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子;
分发模块706,用于将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
参照图8,示出了本发明一种模型训练装置可选实施例的结构框图。
本发明一个可选实施例中,所述运算模块704,包括:
第一模型更新因子运算子模块7042,用于当所述第一中间结果为计算目标模型的梯度所需的中间结果时,根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度;依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。
本发明一个可选实施例中,所述运算模块704,包括:
第二模型更新因子运算子模块7044,用于当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果;依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子;依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子。
本发明一个可选实施例中,所述的装置还包括:
判断模块708,用于判断是否需要继续训练所述目标模型;
所述运算模块704,用于若确定需要继续训练所述目标模型,则执行所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的步骤;
发送模块710,用于若确定需要停止继续训练所述目标模型,则将最后得到的目标模型的目标模型参数发送至模型需求方,以及向各数据提供方发送结束训练消息。
本发明一个可选实施例中,所述发送模块710,用于当所述模型需求方包括多个时,将最后得到的目标模型的目标模型参数进行拆分并分发给对应的模型需求方。
本发明一个可选实施例中,所述中间结果还包括第二中间结果,所述第二中间结果包括损失函数的中间结果,所述损失函数的中间结果是根据各数据提供方依据上一更新轮次接收到的模型更新因子对所拥有的部分目标模型进行更新后确定;所述判断模块708,用于在密文的基础上基于多方安全计算将各数据提供方上传的第二中间结果进行合并,得到所述目标模型对应损失函数的值;在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型。
本发明一个可选实施例中,所述第一中间结果由数据提供方基于秘密分享协议进行分片编码得到;所述运算模块704,包括:
第三模型更新因子运算子模块7046,用于在密文基础上基于秘密分享协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
本发明一个可选实施例中,所述第一中间结果由数据提供方持有的公钥进行加密,所述公钥及对应的私钥由各数据提供方基于同态加密协议协同生成;所述运算模块704,包括:
第四模型更新因子运算子模块7048,用于在密文的基础上基于同态加密协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
本发明实施例中,由各数据提供方基于本地私有数据,对各自拥有的部分目标模型进行训练得到第一中间结果后,借助密文计算平台,将各自的第一中间结果以密文的形式通过多方安全协议进行运算,确定所述目标模型的模型更新因子,并将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;然后由各数据提供方分别依据接收到的所述模型更新因子更新部分目标模型,对更新后的部分目标模型进行一轮训练得到第一中间结果,并基于第一中间结果借助密文计算平台确定模型更新因子并在拆分后分发给各数据提供方,如此循环往复直到完成对目标模型的训练。相对于现有技术而言,本发明实施例中,每轮训练都是由各数据提供方采用各自拥有的数据在本地进行的,无需收集各数据提供方的原始数据,进而保证了各数据提供方的数据安全。此外,各数据提供方在本地训练更新的模型是目标模型的一部分,使得各数据提供方也仅拥有目标模型的部分模型更新因子,从而还能够保证目标模型的安全。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的模型训练方法。
本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的模型训练方法。
本发明实施例一个示例中提供了一种电子设备,例如服务器,图9示出了可以实现根据本发明的服务器,例如管理服务器、存储服务器、应用服务器、云控服务、服务器集群等。该服务器传统上包括处理器910和以存储器920形式的计算机程序产品或者计算机可读介质。存储器920可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器920具有用于执行上述方法中的任何方法步骤的程序代码931的存储空间930。例如,用于程序代码的存储空间930可以包括分别用于实现上面的方法中的各种步骤的各个程序代码931。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图9的服务器中的存储器920类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如910之类的处理器读取的代码,这些代码当由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种模型训练方法、一种模型训练装置和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种模型训练方法,其特征在于,所述方法适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景,所述方法包括:
接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型;
在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子;
将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
2.根据权利要求1所述的方法,其特征在于,当所述第一中间结果为计算目标模型的梯度所需的中间结果时,所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:
根据计算目标模型的梯度所需的中间结果,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型对应损失函数的梯度;
依据所述目标模型对应损失函数的梯度,确定所述目标模型的模型更新因子。
3.根据权利要求1所述的方法,其特征在于,当所述第一中间结果为计算目标模型的预测结果所需的中间结果时,所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:
根据计算目标模型的预测结果所需的中间结果的密文,在密文基础上基于多方安全计算协议进行运算,得到所述目标模型的预测结果;
依据所述目标模型的预测结果,确定所述目标模型对应损失函数的梯度计算因子;
依据所述目标模型对应损失函数的梯度计算因子,确定所述目标模型的模型更新因子。
4.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
判断是否需要继续训练所述目标模型;
若确定需要继续训练所述目标模型,则执行所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子的步骤;
若确定需要停止继续训练所述目标模型,则将最后得到的目标模型的目标模型参数发送至模型需求方,以及向各数据提供方发送结束训练消息。
5.根据权利要求4所述的方法,其特征在于,当所述模型需求方包括多个时,则所述将最后得到的目标模型的目标模型参数发送至模型需求方,包括:
将最后得到的目标模型的目标模型参数进行拆分并分发给对应的模型需求方。
6.根据权利要求4所述的方法,其特征在于,所述中间结果还包括第二中间结果,所述第二中间结果包括损失函数的中间结果,所述损失函数的中间结果是根据各数据提供方依据上一更新轮次接收到的模型更新因子对所拥有的部分目标模型进行更新后确定;
所述判断是否需要继续训练所述目标模型,包括:
在密文的基础上基于多方安全计算将各数据提供方上传的第二中间结果进行合并,得到所述目标模型对应损失函数的值;
在密文的基础上基于多方安全计算,依据所述目标模型对应损失函数的值判断是否需要继续训练所述目标模型。
7.根据权利要求1所述的方法,其特征在于,所述第一中间结果由数据提供方基于秘密分享协议进行分片编码得到;
所述在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子,包括:
在密文基础上基于秘密分享协议将各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子。
8.一种模型训练装置,其特征在于,所述装置适用于目标模型训练所依赖的数据纵向分布在多个数据提供方的场景,所述装置包括:
接收模块,用于接收各数据提供方上传的中间结果,其中,所述中间结果包括第一中间结果,所述第一中间结果为密文,所述第一中间结果依据各数据提供方基于本地私有数据对各自拥有的部分目标模型进行训练得到,各数据提供方拥有的部分目标模型联合构成所述目标模型;
运算模块,用于在密文基础上基于多方安全计算协议依据各数据提供方上传的第一中间结果进行运算,确定所述目标模型的模型更新因子;
分发模块,用于将所述目标模型的模型更新因子,拆分为各数据提供方对应部分目标模型所需的模型更新因子并分发给对应的数据提供方;以使各数据提供方分别依据接收到的模型更新因子更新对应的部分目标模型,并对更新后的部分目标模型进行一轮训练以得到需上传的第一中间结果。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7中任一项所述的模型训练方法。
10.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-7中任一项所述的模型训练方法。
CN202010491185.6A 2020-06-02 2020-06-02 一种模型训练方法、装置和电子设备 Pending CN112668038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010491185.6A CN112668038A (zh) 2020-06-02 2020-06-02 一种模型训练方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010491185.6A CN112668038A (zh) 2020-06-02 2020-06-02 一种模型训练方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN112668038A true CN112668038A (zh) 2021-04-16

Family

ID=75403232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010491185.6A Pending CN112668038A (zh) 2020-06-02 2020-06-02 一种模型训练方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN112668038A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114742233A (zh) * 2022-04-02 2022-07-12 支付宝(杭州)信息技术有限公司 联合训练逻辑回归模型的方法及装置
CN116127309A (zh) * 2022-12-30 2023-05-16 北京百度网讯科技有限公司 神经网络模型的训练方法、对话生成方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704860A (zh) * 2019-11-18 2020-01-17 深圳前海微众银行股份有限公司 提升安全性的纵向联邦学习方法、设备、系统及存储介质
CN110797124A (zh) * 2019-10-30 2020-02-14 腾讯科技(深圳)有限公司 一种模型多端协同训练方法、医疗风险预测方法和装置
CN110851785A (zh) * 2019-11-14 2020-02-28 深圳前海微众银行股份有限公司 纵向联邦学习优化方法、装置、设备及存储介质
CN110929886A (zh) * 2019-12-06 2020-03-27 支付宝(杭州)信息技术有限公司 模型训练、预测方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110797124A (zh) * 2019-10-30 2020-02-14 腾讯科技(深圳)有限公司 一种模型多端协同训练方法、医疗风险预测方法和装置
CN110851785A (zh) * 2019-11-14 2020-02-28 深圳前海微众银行股份有限公司 纵向联邦学习优化方法、装置、设备及存储介质
CN110704860A (zh) * 2019-11-18 2020-01-17 深圳前海微众银行股份有限公司 提升安全性的纵向联邦学习方法、设备、系统及存储介质
CN110929886A (zh) * 2019-12-06 2020-03-27 支付宝(杭州)信息技术有限公司 模型训练、预测方法及其系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114742233A (zh) * 2022-04-02 2022-07-12 支付宝(杭州)信息技术有限公司 联合训练逻辑回归模型的方法及装置
CN116127309A (zh) * 2022-12-30 2023-05-16 北京百度网讯科技有限公司 神经网络模型的训练方法、对话生成方法和装置
CN116127309B (zh) * 2022-12-30 2024-04-26 北京百度网讯科技有限公司 神经网络模型的训练方法、对话生成方法和装置

Similar Documents

Publication Publication Date Title
CN112182644B (zh) 一种数据处理方法、装置和电子设备
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
CN113095510B (zh) 一种基于区块链的联邦学习方法及装置
CN112668748B (zh) 一种预测方法、装置和电子设备
CN113542228B (zh) 基于联邦学习的数据传输方法、装置以及可读存储介质
CN113515760B (zh) 横向联邦学习方法、装置、计算机设备和存储介质
CN112347500B (zh) 分布式系统的机器学习方法、装置、系统、设备及存储介质
CN112329072B (zh) 一种基于安全多方计算的模型联合训练方法
US11410081B2 (en) Machine learning with differently masked data in secure multi-party computing
CN110969264B (zh) 模型训练方法、分布式预测方法及其系统
CN112926064B (zh) 一种模型训练方法及装置、数据处理系统和电子设备
CN112464155B (zh) 一种数据处理方法、多方安全计算系统和电子设备
CN111143862B (zh) 数据处理方法、查询方法、装置、电子设备和系统
CN112668038A (zh) 一种模型训练方法、装置和电子设备
CN111523556A (zh) 模型训练方法、装置及系统
CN112668016B (zh) 一种模型训练方法、装置和电子设备
CN114925786A (zh) 基于秘密分享的纵向联邦线性支持向量分类方法
CN110874481A (zh) 一种基于gbdt模型的预测方法和装置
CN111914281B (zh) 基于区块链和同态加密的贝叶斯模型训练方法及装置
CN112668037B (zh) 一种模型训练方法、装置和电子设备
CN114143311B (zh) 一种基于区块链的隐私保护方案聚合方法及装置
CN114880693A (zh) 生成激活函数方法、装置、电子设备和可读介质
CN112395623B (zh) 一种数据处理方法、装置和电子设备
CN112182593A (zh) 一种数据处理方法、装置和电子设备
CN115277031A (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