一种模型训练方法及装置、数据处理系统和电子设备与流程

文档序号:25353414发布日期:2021-06-08 14:09阅读:80来源:国知局
一种模型训练方法及装置、数据处理系统和电子设备与流程

1.本发明涉及数据处理领域,特别是涉及一种模型训练方法及装置、数据处理系统和电子设备。


背景技术:

2.线性回归模型是一种确定变量之间的相关关系的数学回归模型。其中,可以根据训练数据求解线性回归模型的模型参数,从而训练得到线性回归模型。
3.当训练模型的训练数据来自于不同的数据提供方时,需要融合多方的数据来求解线性回归模型,在融合多方数据的过程中,直接收集原始数据进行中心化地求解面临数据安全和隐私泄露的风险。当前的模型训练方法无法在保证数据安全的情况下完成线性回归模型训练过程。


技术实现要素:

4.本发明实施例提供一种模型训练方法,以在保证多个数据提供方持有的训练数据安全的前提下,实现线性回归模型训练。
5.相应的,本发明实施例还提供了一种模型训练装置、数据处理系统和电子设备,用以保证上述方法的实现及应用。
6.为了解决上述问题,本发明实施例公开了一种模型训练方法,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的方法包括:主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;被动数据提供方的明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;主动数据提供方的明文计算引擎基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;被动数据提供方的明文计算引擎基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
7.本发明实施例公开了一种模型训练方法,应用于数据处理系统中,所述数据处理
系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的方法由主动数据提供方的明文计算引擎执行,包括:基于本地持有的样本数据进行明文运算,得到中间结果m1;将所述m1的密文发送至被动数据提供方,以由被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算,得到中间结果m2并将m2的密文发送至密文计算平台;基于本地持有的标签数据和m1进行明文运算,得到中间结果m3;将所述m3的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,以及由被动数据提供方的明文计算引擎基于本地持有的样本数据和w2进行明文运算,得到m4并将m4的密文发送至主动数据提供方;获取m4的密文并基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台,以由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
8.可选地,所述基于本地持有的样本数据进行明文运算,得到中间结果m1,包括:基于所述样本数据、样本数据的转置和单位矩阵进行明文运算,得到中间结果m1。
9.可选地,所述基于本地持有的标签数据和m1进行明文运算,得到中间结果m3,包括:将m1左乘本地持有的标签数据,得到中间结果m3。
10.可选地,所述基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1,包括:基于所述样本数据、样本数据的转置、标签数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1。
11.可选地,所述将所述m1发送至被动数据提供方,包括:将所述m1的密文发送至密文计算平台,由所述密文计算平台将所述m1的密文发送至被动数据提供方。
12.可选地,所述获取m4的密文,包括:从所述密文计算平台获取m4的密文,所述m4密文是由被动数据提供方发送给所述密文计算平台的;或,从所述被动数据提供方获取m4的密文。
13.本发明实施例公开了一种模型训练方法,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的方法由被动数据提供方的明文计算引擎执行,包括:获取中间结果m1的密文,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的;基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2并将所述m2的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和m1进
行明文运算得到的;基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方,以由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
14.可选地,所述基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,包括:将所述m1左乘被动数据提供方本地持有的样本数据,得到中间结果m2。
15.可选地,所述基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4,包括:将所述被动数据提供方本地持有的样本数据左乘w2,得到中间结果m4。
16.可选地,当所述被动数据提供方包括一个时,所述的方法还包括:基于所述m2进行明文计算,得到中间结果m5并将m5的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方。
17.可选地,所述将所述m4的密文发送给所述主动数据提供方包括:将所述m4的密文发送至密文计算平台,由所述密文计算平台将所述m4的密文发送至主动数据提供方。
18.可选地,所述获取中间结果m1的密文,包括:从所述密文计算平台获取m1的密文,所述m1的密文是由主动数据提供方发送给所述密文计算平台的;或,从所述主动数据提供方获取m1的密文。
19.本发明实施例还提供了一种模型训练方法,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的方法由密文计算平台的密文计算引擎执行,包括:从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2的密文,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和中间结果m1进行明文运算得到的,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的,所述m2是被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算得到的;基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方;从主动数据提供方获取对应的模型参数w1的密文,所述w1是主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算得到的,所述m4是被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算得到的;将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
20.可选地,当所述被动数据提供方包括一个时,所述基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,包括:在密文的基础上将m2转置的密文左乘m3的密文,得到中间结果y1的密文;从所述被动数据提供方获取中间结果m5的密文,所述m5是被动数据提供方的明文计算引擎依据m2计算得到的;在密文的基础上将m5的密文左乘y1的密文,得到与被动数据提供方对应的模型参数w2的密文。
21.可选地,当所述被动数据提供方包括多个时,所述基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,包括:在密文的基础上将从多个被动数据提供方获取的m2的密文进行合并,得到中间结果y2的密文;基于y2的密文进行密文运算,得到中间结果y3的密文;在密文的基础上将y2转置的密文左乘m3的密文,得到中间结果y4的密文;在密文的基础上将y3的密文左乘y4的密文,得到被动数据提供方对应的模型参数w2的密文。
22.可选地,所述将w2的密文返回给被动数据提供方,包括:在密文的基础上将w2的密文拆分为各被动数据提供方对应的w2分量的密文,并将各w2分量的密文分发给对应的被动数据提供方。
23.可选地,所述的方法还包括:从各被动数据提供方获取对应的m4分量的密文,所述m4分量是被动数据提供方的明文计算引擎依据w2分量和本地持有的样本数据进行明文运算得到的;将各被动数据提供方的m4分量的密文进行密文合并,得到m4的密文并将m4的密文发送给主动数据提供方。
24.本发明实施例还公开了一种数据处理系统,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;其中,
25.所述主动数据提供方,用于调用主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;以及基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;所述被动数据提供方,用于被动数据提供方的调用明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;以及基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;所述密文计算平台,用于调用密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;以及将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
26.本发明实施例还公开了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在主动数据提供方的明文计算引擎中,所述的装置包括:第一运算模块,用于基于本地持有的样本数据进行明文运算,得到中间结果m1;第一发送模块,用于将所述m1的密文发送至被动数据提供方,以由被动数据提供方的明文计
算引擎基于本地持有的样本数据和m1进行明文运算,得到中间结果m2并将m2的密文发送至密文计算平台;第二运算模块,用于基于本地持有的标签数据和m1进行明文运算,得到中间结果m3;第二发送模块,用于将所述m3的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,以及由被动数据提供方的明文计算引擎基于本地持有的样本数据和w2进行明文运算,得到m4并将m4的密文发送至主动数据提供方;参数计算模块,用于获取m4的密文并基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台,以由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
27.可选地,所述第一运算模块,用于基于所述样本数据、样本数据的转置和单位矩阵进行明文运算,得到中间结果m1。
28.可选地,所述第二运算模块,用于将m1左乘本地持有的标签数据,得到中间结果m3。
29.可选地,所述参数计算模块,包括:模型参数计算子模块,用于基于所述样本数据、样本数据的转置、标签数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1。
30.可选地,所述第一发送模块,用于将所述m1的密文发送至密文计算平台,由所述密文计算平台将所述m1的密文发送至被动数据提供方。
31.可选地,所述参数计算模块,包括:获取子模块,用于从所述密文计算平台获取m4的密文,所述m4密文是由被动数据提供方发送给所述密文计算平台的;或,从所述被动数据提供方获取m4的密文。
32.本发明实施例还公开了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的装置适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在被动数据提供方的明文计算引擎中,所述的装置包括:第一结果获取模块,用于获取中间结果m1的密文,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的;第三运算模块,用于基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2并将所述m2的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和m1进行明文运算得到的;第四运算模块,用于基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方,以由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
33.可选地,所述第三运算模块,用于将所述m1左乘被动数据提供方本地持有的样本
数据,得到中间结果m2。
34.可选地,所述第四运算模块,包括:结果计算子模块,用于将所述被动数据提供方本地持有的样本数据左乘w2,得到中间结果m4。
35.可选地,当所述被动数据提供方包括一个时,所述的装置还包括:第五运算模块,用于基于所述m2进行明文计算,得到中间结果m5并将m5的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方。
36.可选地,所述第四运算模块,包括:结果发送子模块,用于将所述m4的密文发送至密文计算平台,由所述密文计算平台将所述m4的密文发送至主动数据提供方。
37.可选地,所述第一结果获取模块,用于从所述密文计算平台获取m1的密文,所述m1的密文是由主动数据提供方发送给所述密文计算平台的;或,从所述主动数据提供方获取m1的密文。
38.本发明实施例还公开了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的装置适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在密文计算平台的密文计算引擎中,所述的装置包括:第二结果获取模块,用于从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2的密文,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和中间结果m1进行明文运算得到的,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的,所述m2是被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算得到的;第六运算模块,用于基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方;参数获取模块,用于从主动数据提供方获取对应的模型参数w1的密文,所述w1是主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算得到的,所述m4是被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算得到的;合并模块,用于将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
39.可选地,当所述被动数据提供方包括一个时,所述第六运算模块,包括:第一密文计算子模块,用于在密文的基础上将m2转置的密文左乘m3的密文,得到中间结果y1的密文;从所述被动数据提供方获取中间结果m5的密文,所述m5是被动数据提供方的明文计算引擎依据m2计算得到的;在密文的基础上将m5的密文左乘y1的密文,得到与被动数据提供方对应的模型参数w2的密文。
40.可选地,当所述被动数据提供方包括多个时,所述所述第六运算模块,包括:第二密文计算子模块,用于在密文的基础上将从多个被动数据提供方获取的m2的密文进行合并,得到中间结果y2的密文;基于y2的密文进行密文运算,得到中间结果y3的密文;在密文的基础上将y2转置的密文左乘m3的密文,得到中间结果y4的密文;在密文的基础上将y3的密文左乘y4的密文,得到被动数据提供方对应的模型参数w2的密文。
41.可选地,所述第六运算模块,用于参数发送子模块,用于在密文的基础上将w2的密文拆分为各被动数据提供方对应的w2分量的密文,并将各w2分量的密文分发给对应的被动数据提供方。
42.可选地,所述的装置还包括:第三结果获取模块,用于从各被动数据提供方获取对应的m4分量的密文,所述m4分量是被动数据提供方的明文计算引擎依据w2分量和本地持有的样本数据进行明文运算得到的;将各被动数据提供方的m4分量的密文进行密文合并,得到m4的密文并将m4的密文发送给主动数据提供方。
43.本发明实施例还公开了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中任一所述的模型训练方法。
44.本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中任一所述的模型训练方法。
45.与现有技术相比,本发明实施例至少包括以下优点:
46.本发明实施例中,可以由主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;以及由被动数据提供方的明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;再由主动数据提供方的明文计算引擎基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;然后由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;由被动数据提供方的明文计算引擎基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;以及由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;最后密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方;进而通过数据提供方在本地采用各自持有的数据进行明文计算的中间结果,与密文计算平台密文计算的结果的交互;实现在保证多个数据提供方持有的训练数据安全的前提下,训练线性回归模型。此外,相对于由密文计算平台进行纯密文计算来训练线性回归模型而言,本发明实施例采用各数据提供方和密文计算平台进行明密文混合计算的方式训练线性回归模型,能够减少计算量,提高模型训练的效率。
附图说明
47.图1是本发明实施例的一种数据处理系统实施例的结构框图;
48.图2是本发明的一种模型训练方法实施例的步骤流程图;
49.图3是本发明的一种主动数据提供方侧的模型训练方法实施例的步骤流程图;
50.图4是本发明的一种被动数据提供方侧的模型训练方法实施例的步骤流程图;
51.图5是本发明的一种被动数据提供方侧的模型训练方法可选实施例的步骤流程图;
52.图6是本发明的一种密文计算平台侧的模型训练方法实施例的步骤流程图;
53.图7是本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图;
54.图8是本发明的一种模型训练装置实施例的结构框图;
55.图9是本发明的一种主动数据提供方侧的模型训练装置实施例的结构框图;
56.图10是本发明的一种主动数据提供方侧的模型训练装置可选实施例的结构框图;
57.图11是本发明的一种被动数据提供方侧的模型训练装置实施例的结构框图;
58.图12是本发明的一种被动数据提供方侧的模型训练装置可选实施例的结构框图;
59.图13是本发明的一种密文计算平台侧的模型训练装置实施例的结构框图;
60.图14是本发明的一种密文计算平台侧的模型训练装置可选实施例的结构框图;
61.图15示意性地示出了用于执行根据本发明的方法的电子设备的框图。
具体实施方式
62.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
63.本发明实施例提供的一种模型训练方法,可以用于训练线性回归模型。所述线性回归模型可以是一元线性回归模型,也可以是多元线性回归模型;此外,所述线性回归模型可以是包括常数项的线性回归模型,也可以是不包括常数项的线性回归模型,本发明实施例对此不作限制。
64.其中,所述的方法可以适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景。换而言之,各数据提供方本地持有线性回归模型训练所依赖的训练数据的部分数据,可以看做是对线性回归模型训练依赖的训练数据进行了纵向切分后的数据。各数据提供方本地各自持有的数据是相同的样本集在一系列不同特征维度上的数据;例如数据提供方1拥有的数据为:用户a的身高数据;数据提供方2拥有的数据为:用户a的体重数据;数据提供方3拥有用户a的发型数据。
65.可参照图1,示出了本发明实施例的一种数据处理系统的结构示意图;本发明实施例提供的一种模型训练方法,可以由该数据处理系统执行。其中,所述数据处理系统可以包括:密文计算平台、数据提供方和结果需求方。所述密文计算平台中部署有密文计算引擎,所述密文计算引擎可以基于多方安全计算协议进行密文计算,所述密文计算可以包括纯密文运算,以及明文和密文的混合运算。所述数据提供方中部署有明文计算引擎,所述明文计算引擎可以进行明文运算,所述数据提供方可以包括2个及2个以上。所述结果需求方可以是多个数据提供方中的多方,也可以是独立于数据提供方的其它参与方,本发明实施例对此不作限制。
66.其中,所述训练数据可以包括样本数据和标签数据;所述标签数据可以由其中一个数据提供方持有,所述样本数据可以纵向分布在多个数据提供方。为了便于后续区别,可以将持有标签数据的数据提供方称为主动数据提供方,将其他的数据提供方称为被动数据提供方;其中,所述主动数据提供方为一个,被动数据提供方可以包括至少一个。
67.其中,训练线性回归模型,也就是求线性回归模型的解。若记线性回归模型的样本数据为(表示x是属于实数域的m*n的矩阵),标签数据为(表示p是属于实数域的m*1的矩阵),模型参数为(表示w是属于实数域的n*1的矩阵)。线性回归模型
的损失函数为样本回归线上的预测点xw与实际标签p的残差平方和:
68.l(w)=(p

xw)
t
(p

xw)
69.其中,求线性回归模型的解需要找到使得损失函数即残差平方和最小的模型参数。对于线性回归的损失函数,求导并令导数等于零可得正规方程组:
70.x
t
(p

xw)=0 (1)
71.于是模型的普通最小二乘估计为:
72.w=(x
t
x)
‑1(x
t
p)
73.当线性回归模型训练所依赖的样本数据纵向分布在多个数据提供方时,若数据提供方为k个,则各数据提供方所持有的样本数据可以分别为:供方为k个,则各数据提供方所持有的样本数据可以分别为:其中,k为大于1的整数。相应地,各数据提供方对应可以训练的模型参数分别为:然后可以根据线性回归模型的分块最小二乘估计方法,训练各数据提供方对应的模型参数。
74.为了保证各数据提供方的数据安全,可以由各数据提供方基于各自本地持有的训练数据进行本地的明文计算,得到下一步计算所需的中间结果并将这些中间结果的密文发送给密文计算平台。密文计算平台可以在密文的基础上进行中间结果的处理,得到下一步计算所需的中间结果,并分发给各数据提供方;各数据提供方再进行下一步的本地明文计算。如此进行数轮计算和交互后,即可得到线性回归模型的模型参数。
75.基于上述构思,可以进行如下推导,确定各数据提供方对应的模型参数的计算方法。其中,为了便于说明,可以以两个数据提供方持有的训练数据为例;这两个数据提供方可以包括一个主动数据提供方和一个被动数据提供方。主动数据提供方持有的训练数据包括:和对应的模型参数为w1∈s
n1*1
;被动数据提供方持有的训练数据包括:x2∈r
m*n2
,对应的模型参数为w2∈s
n2*1

76.由上述的公式(1),可以推导得到:x
t
xw=x
t
p (2)
77.将两个数据提供方各自持有的训练数据和对应可以训练的模型参数代入公式(2)中,可以得到:
[0078][0079]
根据公式(3)可以推导得到:
[0080][0081][0082]
根据公式(4)和公式(5)整理得到
[0083][0084]
其中:i为单位矩阵。
[0085]
若记m2=m1x2,m3=m1p,则公式(6)可以变形为:
[0086]
w2=(m2
t
m2)
‑1(m2
t
m3) (7)
[0087]
将公式(7)代入公式(4)中,可以得到:
[0088]
w1=(x
1t
x1)
‑1x
1t
(p

x2w2) (8)
[0089]
进而数据处理系统中的密文计算平台、数据提供方可以根据上述公式(7)和公式(8),进行明密文混合运算,求解线性回归模型的模型参数;可以如下:
[0090]
参照图2,示出了本发明的一种模型训练方法实施例的步骤流程图,具体可以包括如下步骤:
[0091]
步骤202、主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方。
[0092]
本发明实施例中,根据上述公式(7)可知,计算被动数据提供方对应的模型参数w2,需要m2和m3;其中,m2和m3均是依据m1计算得到;而m1是依据主动数据提供方的样本数据计算得到的。因此可以先由主动数据提供方在本地计算中间结果m1,以便于被动数据提供方计算上述公式(7)中的m2,以及便于主动数据提供方后续计算上述公式(7)中的m3。其中,可以由部署在主动数据提供方本地的明文计算引擎,采用主动数据提供方本地持有的样本数据进行明文运算,得到中间结果m1。然后可以对m1进行加密,得到m1的密文;再将m1的密文发送至被动数据提供方。
[0093]
步骤204、被动数据提供方的明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台。
[0094]
被动数据提供方接收到m1的密文后,可以对m1的密文进行解密,得到m1。然后可以调用被动数据提供方本地的明文计算引擎,根据m1和被动数据提供方本地持有的样本数据进行明文运算,得到中间结果m2。
[0095]
本发明实施例中,可以由密文计算平台确定被动数据提供方对应的模型参数w2;因此在被动数据提供方计算得到中间结果m2后,可以对m2进行加密,得到m2的密文;然后将m2的密文发送至密文计算平台。
[0096]
步骤206、主动数据提供方的明文计算引擎基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台。
[0097]
本发明实施例中,主动数据提供方在计算得到中间结果m1后,还可以在本地计算中间结果m3。其中,可以由部署在主动数据提供方本地的明文计算引擎,采用主动数据提供方本地持有的标签数据和m1进行明文运算,得到中间结果m3。然后再对m3进行加密,得到m3的密文并将m3的密文发送至密文计算平台。
[0098]
本发明实施例中,不限制步骤204和步骤206的执行顺序。
[0099]
步骤208、密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方。
[0100]
密文计算平台接收到m2的密文和m3的密文后,可以调用密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文。
[0101]
其中,根据上述公式(8)可知,计算主动数据提供方对应的模型参数w1,需要被动数据提供方本地持有的样本数据x2;因此密文计算平台可以将w2的密文发送至被动数据提供方,由被动数据提供方基于本地持有的样本数据x2和w2进行本地的明文计算,再将明文计算的结果加密后发送给主动数据提供方。
[0102]
步骤210、被动数据提供方的明文计算引擎基于所述w2和本地持有的样本数据进
行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方。
[0103]
被动数据提供方接收到w2的密文后,可以对w2的密文进行解密,得到w2。然后可以调用被动数据提供方本地的明文计算引擎,根据所述w2和被动数据提供方本地持有的样本数据进行明文运算,得到中间结果m4。
[0104]
在被动数据提供方计算得到中间结果m4后,可以对m4进行加密,得到m4的密文,然后将m4的密文发送至主动数据提供方。
[0105]
步骤212、主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台。
[0106]
主动数据提供方接收到m4的密文后,可以调用主动数据提供方本地的密文数据服务对m4的密文进行解密,得到m4。然后可以调用主动数据提供方本地的明文计算引擎,根据所述m4和主动数据提供方本地持有的训练数据进行明文运算,得到主动数据提供方对应的模型参数w1。
[0107]
在主动数据提供方计算得到对应的模型参数w1后,可以对w1进行加密,得到w1的密文,然后将w1的密文发送至密文计算平台。
[0108]
本发明的一个可选实施例中,若主动数据提供方和被动数据提供方均为结果需求方,则主动数据提供方在得到w1后,可以无需将w1加密发送至密文计算平台。也就是主动数据提供方和被动数据提供方,各自负责训练各自对应的模型参数即可。
[0109]
步骤214、密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0110]
密文计算平台在接收到w1的密文和w2的密文后,可以调用密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w。
[0111]
一个可选实施例中,密文计算平台可以将模型参数w的密文直接发送至结果需求方;由结果需求方对w的密文进行解密,得到线性回归模型的模型参数w。
[0112]
一个可选实施例中,当结果需求方包括多个时,密文计算平台可以将w的密文进行拆分,然后把拆分的各个部分的密文,分发给对应的结果需求方。
[0113]
后续结果需求方可以采用训练后的线性回归模型进行其它计算,如数据预测等等,本发明实施例对此不作限制。
[0114]
综上,本发明实施例中,可以由主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;以及由被动数据提供方的明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;再由主动数据提供方的明文计算引擎基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;然后由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;由被动数据提供方的明文计算引擎基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;以及由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;最后密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送
至结果需求方;进而通过数据提供方在本地采用各自持有的数据进行明文计算的中间结果,与密文计算平台密文计算的结果的交互;实现在保证多个数据提供方持有的训练数据安全的前提下,训练线性回归模型。此外,相对于由密文计算平台进行纯密文计算来训练线性回归模型而言,本发明实施例采用各数据提供方和密文计算平台进行明密文混合计算的方式训练线性回归模型,能够减少计算量,提高模型训练的效率。
[0115]
以下分别以主动数据提供方、被动数据提供方和密文计算平台各侧为例,说明本发明实施例的模型训练方法。
[0116]
以主动数据提供方侧为例,其中,可以由主动数据提供方的明文计算引擎执行本发明实施例的模型训练方法。
[0117]
参照图3、示出了本发明的一种主动数据提供方侧的模型训练方法实施例的步骤流程图。
[0118]
步骤302、基于本地持有的样本数据进行明文运算,得到中间结果m1。
[0119]
本发明实施例中,主动数据提供方的明文计算引擎可以获取主动数据提供方本地持有的样本数据,然后可以基于本地持有的样本数据进行明文运算,得到中间结果m1。
[0120]
其中,一种基于本地持有的样本数据进行明文运算,得到中间结果m1的方式可以是:基于所述样本数据、样本数据的转置和单位矩阵进行明文运算,得到中间结果m1。
[0121]
可参照上述公式计算m1。其中,可以先确定样本数据的转置,然后将样本数据的转置左乘样本数据即计算可以得到b1并确定b1的逆矩阵。再计算样本数据左乘b1的逆矩阵即计算得到b2;并将b2左乘样本数据的转置即计算得到b3。最后可以计算单位矩阵与b3的差值,可以得到m1。
[0122]
步骤304、将所述m1的密文发送至被动数据提供方,以由被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算,得到中间结果m2并将m2的密文发送至密文计算平台。
[0123]
本发明实施例中,各数据提供方本地还部署有密文计算数据服务,该密文计算数据服务可以用于对数据进行加密和解密。
[0124]
在主动数据提供方计算得到中间结果m1后,由主动数据提供方的明文计算引擎将中间结果m1发送至多方安全计算服务;然后由多方安全计算服务对m1进行加密,得到m1的密文;并将m1的密文发送至被动数据提供方。
[0125]
本发明一个可选实施例中,主动数据提供方可以将所述m1的密文发送至密文计算平台,由所述密文计算平台将所述m1的密文发送至被动数据提供方。也就是由密文计算平台对m1的密文进行转发。
[0126]
本发明的一个可选实施例中,主动数据提供方可以直接将所述m1的密文发送给被动数据提供方;从而无需由密文计算平台进行转发,提高数据交互的效率。
[0127]
其中,主动数据提供方采用何种方式将m1的密文发送至被动数据提供方,可以按照需求设置,本发明实施例对此不作限制。
[0128]
然后被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算,得到中间结果m2并将m2的密文发送至密文计算平台;其中,被动数据提供方计算中间结
果m2的过程在后续进行说明。
[0129]
步骤306、基于本地持有的标签数据和m1进行明文运算,得到中间结果m3。
[0130]
本发明实施例中,主动数据提供方的明文计算引擎还可以获取主动数据提供方本地持有的标签数据,然后可以基于本地持有的标签数据进行明文运算,得到中间结果m3。
[0131]
其中,一种基于本地持有的标签数据和m1进行明文运算,得到中间结果m3的方式可以是:将m1左乘本地持有的标签数据,得到中间结果m3。可参照上述公式m3=m1p。
[0132]
步骤308、将所述m3的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,以及由被动数据提供方的明文计算引擎基于本地持有的样本数据和w2进行明文运算,得到m4并将m4的密文发送至主动数据提供方。
[0133]
本发明实施例中,可以由主动数据提供方的明文计算引擎将中间结果m3发送至多方安全计算服务;然后由多方安全计算服务对m3进行加密,得到m3的密文;并将m3的密文发送至密文计算平台。
[0134]
进而密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,以及由被动数据提供方的明文计算引擎基于本地持有的样本数据和w2进行明文运算,得到m4并将m4的密文发送至主动数据提供方。其中,密文计算平台计算w2的过程,以及被动数据提供方计算中间结果m4的过程在后续进行说明。其中,m4=x2w2。
[0135]
步骤310、获取m4的密文并基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台,以由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0136]
本发明实施例中,一种获取m4的密文的方式可以包括:从所述密文计算平台获取m4的密文,所述m4密文是由被动数据提供方发送给所述密文计算平台的。也就是由密文计算平台对m4的密文进行转发。
[0137]
另一种获取m4的密文的方式可以包括:从所述被动数据提供方获取m4的密文。从而无需由密文计算平台进行转发,提高数据交互的效率。
[0138]
本发明实施例中,主动数据提供方获取到m4的密文后,可以由密文计算数据服务可以对m4的密文进行解密,进而得到中间结果m4。然后主动提供方可以调用本地的明文计算引擎,基于主动数据提供方本地持有的样本数据、标签数据和中间结果m4进行明文运算,得到主动数据提供方对应的模型参数w1。
[0139]
其中,一种基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1的方式可以是:基于所述样本数据、样本数据的转置、标签数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1。
[0140]
其中,可以参照上述公式(8),可以先确定样本数据的转置,并将样本数据的转置左乘样本数据即计算x
1t
x1,得到c1并确定c1的逆矩阵。以及计算标签数据与中间结果m4的差值即计算p

x2w2,得到c2。再将c1的逆矩阵左乘样本数据的转置即计算(x
1t
x1)
‑1x
1t
,得到c3;并将c3左乘c2即计算(x
1t
x1)
‑1x
1t
(p

x2w2),进而可以得到w1。
[0141]
本发明实施例中,可以由主动数据提供方的明文计算引擎,将主动数据提供方对
应的模型参数w1发送至多方安全计算服务;然后由多方安全计算服务对w1进行加密,得到w1的密文;并将w1的密文发送至密文计算平台。
[0142]
然后由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。其中,密文计算平台确定线性回归模型的模型参数的过程在后续进行说明。
[0143]
以被动数据提供方侧为例,其中,可以由被动数据提供方的明文计算引擎执行本发明实施例的模型训练方法。其中,被动数据提供方为一个。
[0144]
参照图4,示出了本发明的一种被动数据提供方侧的模型训练方实施例的步骤流程图。
[0145]
步骤402、获取中间结果m1的密文,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的。
[0146]
本发明实施例中,主动数据提供方将m1的密文发送至被动数据提供方后,被动数据提供方可以获取到m1的密文,并可以由密文计算数据服务对m1的密文进行解密,进而得到中间结果m1。
[0147]
其中,与主动数据提供方发送m1的密文的方式对应,被动数据提供方获取中间结果m1的密文的方式可以包括:
[0148]
一种方式可以是:从所述密文计算平台获取m1的密文,所述m1的密文是由主动数据提供方发送给所述密文计算平台的。
[0149]
另一种方式可以是:从所述主动数据提供方获取m1的密文。
[0150]
步骤404、基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2并将所述m2的密文发送至密文计算平台。
[0151]
然后被动提供方可以调用本地的明文计算引擎,基于被动数据提供方本地持有的样本数据和中间结果m1进行明文运算,得到中间结果w2。
[0152]
其中,一种基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2的方式可以是:将所述m1左乘被动数据提供方本地持有的样本数据,得到中间结果m2。可参照上述公式m2=m1x2。
[0153]
本发明实施例中,可以由被动数据提供方的明文计算引擎将中间结果m2发送至多方安全计算服务;然后由多方安全计算服务对m2进行加密,得到m2的密文;并将m2的密文发送至密文计算平台。
[0154]
步骤406、基于所述m2进行明文计算,得到中间结果m5并将m5的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和m1进行明文运算得到的。
[0155]
本发明实施例中,当被动数据提供方为一个时,被动数据提供方还可以再计算中间结果m5;其中,m5=(m2
t
m2)
‑1,m5是上述(6)w2=(m2
t
m2)
‑1(m2
t
m3)中的一部分;进而减少密文计算平台计算被动数据提供方对应的模型参数w2密文的计算量,提高计算被动数据提供方对应的模型参数w2的效率。然后可以由被动数据提供方的明文计算引擎将中间结果m5发送至多方安全计算服务;再由多方安全计算服务对m5进行加密,得到m5的密文;并将m5的
密文发送至密文计算平台。
[0156]
然后密文计算平台的密文计算引擎可以基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方。其中,当被动数据提供方为一个时,密文计算平台根据m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文的过程在后续进行说明。
[0157]
步骤408、基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方,以由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0158]
在密文计算平台基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方后,被动数据提供方的密文计算数据服务可以对w2的密文进行解密,进而得到w2。然后被动数据提供方可以调用本地的明文计算引擎,基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4。
[0159]
一个示例中,一种基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4的方式可以是:将所述被动数据提供方本地持有的样本数据左乘w2,得到中间结果m4;即m4=x2w2。
[0160]
本发明实施例中,可以由被动数据提供方的明文计算引擎将中间结果m4发送至多方安全计算服务;然后由多方安全计算服务对m4进行加密,得到m4的密文;并将m4的密文发送至主动数据提供方。
[0161]
本发明的一个可选实施例中,被动数据提供方将m4的密文发送至主动数据提供方的一种方式可以是:将所述m4的密文发送至密文计算平台,由所述密文计算平台将所述m4的密文发送至主动数据提供方。即通过密文计算平台转发m4的密文。
[0162]
本发明的一个可选实施例中,被动数据提供方将m4的密文发送至主动数据提供方的一种方式可以是:直接将所述m4的密文发送至主动数据提供方。进而无需密文计算平台进行转发,提高了数据交互的效率。
[0163]
本发明实施例中,不限制被动数据提供方将中间结果m4发送至主动数据提供方的方式。
[0164]
然后由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0165]
以被动数据提供方侧为例,其中,可以由被动数据提供方的明文计算引擎执行本发明实施例的模型训练方法。其中,被动数据提供方为多个。
[0166]
参照图5,示出了本发明的一种被动数据提供方侧的模型训练方法可选实施例的步骤流程图。
[0167]
步骤502、获取中间结果m1的密文,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的。
[0168]
步骤504、基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2分量并将所述m2分量的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于各被动数据提供方发送的m2分量的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,以及将w2的密文拆分为w2分量的密文并返回给被动数据提供方,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和m1进行明文运算得到的。
[0169]
其中,步骤502~步骤504与上述步骤402~步骤404类似,在此不再赘述。
[0170]
其中,当被动数据提供方为多个时,除主动数据提供方的持有的样本数据外,线性回归模型训练所依赖的样本数据被分布在多个被动数据提供方;进而各被动数据提供方依据m1和本地持有的样本数据,计算得到的中间结果,是m2的分量。也就是各被动数据提供方计算的中间结果,可以组成m2。因此任一被动数据提供方的明文计算引擎,无法依据中间结果m2,计算中间结果m5。此时被动数据提供方则无需计算m5,将m2的密文发送至密文计算平台,由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2;该过程在后续进行说明。
[0171]
步骤506、基于所述w2分量和本地持有的样本数据进行明文运算,得到中间结果m4分量并将所述m4分量的密文发送给所述密文计算平台,由所述密文计算平台将各被动数据提供方发送的m4分量的密文进行合并,得到m4的密文并将m4的密文发送给所述主动数据提供方,以由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0172]
步骤506与上述步骤408类似,在此不再赘述。
[0173]
以密文计算平台方侧为例,其中,可以由密文计算平台的密文计算引擎执行本发明实施例的模型训练方法。其中,被动数据提供方为一个。
[0174]
参照图6、示出了本发明的一种密文计算平台的模型训练方法实施例的步骤流程图。
[0175]
步骤602、从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2的密文,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和中间结果m1进行明文运算得到的,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的,所述m2是被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算得到的。
[0176]
步骤604、基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方。
[0177]
本发明实施例中,密文计算平台可以从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2的密文;然后基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2。
[0178]
其中,当被动数据提供方为一个时,被动数据提供方的明文计算引擎,还依据m2计算了中间结果m5,并将m5的密文发送给密文计算平台;对应的,所述基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,可以包括如下子步骤s22~子步骤s26:
[0179]
子步骤s22、在密文的基础上将m2转置的密文左乘m3的密文,得到中间结果y1的密文。
[0180]
子步骤s24、从所述被动数据提供方获取中间结果m5的密文,所述m5是被动数据提供方的明文计算引擎依据m2计算得到的。
[0181]
子步骤s26、在密文的基础上将m5的密文左乘y1的密文,得到与被动数据提供方对应的模型参数w2的密文。
[0182]
本发明实施例中,密文计算平台还可以从被动数据提供方获取中间结果m5的密文;然后基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文。
[0183]
其中,可以参照上述公式(7)来计算被动数据提供方对应的模型参数w2的密文。将m5=(m2
t
m2)
‑1代入至公式w2=(m2
t
m2)
‑1(m2
t
m3),可以得到w2=m5(m2
t
m3);进而可以先基于m2的密文,确定m2转置的密文,并在密文的基础上将m2转置的密文左乘m3的密文,得到中间结果y1的密文。然后在密文的基础上将m5的密文左乘y1的密文,得到被动数据提供方对应的模型参数w2的密文。然后可以将被动数据提供方的模型参数w2的密文发送给该被动数据提供方。
[0184]
被动数据提供方接收到w2的密文后,可以对w2的密文进行解密,得到w2;并由被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算,得到中间结果m4,并将m4的密文发送给主动数据提供方。主动数据提供方接收到m4的密文后,对m4的密文进行解密,得到中间结果m4;然后由主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算,得到主动数据提供方对应的模型参数w1,并将w1的密文发送至密文计算平台。
[0185]
步骤606、从主动数据提供方获取对应的模型参数w1的密文,所述w1是主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算得到的,所述m4是被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算得到的。
[0186]
进而密文计算平台可以从主动数据提供方获取对应的模型参数w1的密文。
[0187]
步骤608、将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0188]
本发明实施例中,密文计算平台可以确定主动数据提供方所持有样本数据的维度,以及确定被动数据提供方所持有的样本数据的维度;然后根据主动数据提供方所持有样本数据的维度,和被动数据提供方所持有的样本数据的维度,将w1的密文和w2的密文拼接,得到线性回归模型的模型参数w的密文;然后将所述w的密文发送至结果需求方。
[0189]
以密文计算平台方侧为例,其中,可以由密文计算平台的密文计算引擎执行本发明实施例的模型训练方法。其中,被动数据提供方为多个。
[0190]
参照图7、示出了本发明的一种密文计算平台的模型训练方法实施例的步骤流程图。
[0191]
步骤702、从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2分量的密文,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和中间结果m1进行明文运算得到的,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的,所述m2分量是被动数据提供方的明文计算引擎基于本
地持有的样本数据和m1进行明文运算得到的。
[0192]
步骤704、基于所述m2分量的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文。
[0193]
其中,所述基于所述m2分量的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,可以包括如下子步骤s42~子步骤s48:
[0194]
子步骤s42、在密文的基础上将从多个被动数据提供方获取的m2分量的密文进行合并,得到中间结果y2的密文。
[0195]
子步骤s44、基于y2的密文进行密文运算,得到中间结果y3的密文。
[0196]
子步骤s46、在密文的基础上将y2转置的密文左乘m3的密文,得到中间结果y4的密文。
[0197]
子步骤s48、在密文的基础上将y3的密文左乘y4的密文,得到被动数据提供方对应的模型参数w2的密文。
[0198]
其中,为了便于后续说明,可以将被动数据提供方依据m1和本地持有的样本数据计算得到的中间结果,称为是m2分量。密文计算平台从每个被动数据提供方获取到m2分量的密文后,可以在密文的基础上将从多个被动数据提供方获取的m2分量的密文进行合并,得到中间结果y2的密文(也就是m2的密文)。再基于y2的密文,确定y2转置的密文,并将y2转置的密文左乘y2的密文即计算m2
t
m2,得到c1的密文;然后基于c1的密文,确定c1逆矩阵的密文并将c1逆矩阵的密文,确定为中间结果y3的密文,即得到公式w2=(m2
t
m2)
‑1(m2
t
m3)中(m2
t
m2)
‑1的密文。以及可以将y2转置的密文左乘m3的密文即计算(m2
t
m3),得到中间结果y4的密文。然后在密文的基础上将y3的密文左乘y4的密文,得到被动数据提供方对应的模型参数w2的密文。
[0199]
步骤706、在密文的基础上将w2的密文拆分为各被动数据提供方对应的w2分量的密文,并将各w2分量的密文分发给对应的被动数据提供方。
[0200]
密文计算平台得到w2的密文,可以看做是由各被动数据提供方对应模型参数w2分量的密文组成;因此密文计算平台在得到w2的密文后,可以在密文的基础上将w2的密文拆分为各被动数据提供方对应的w2分量的密文,并将各w2分量的密文分发给对应的被动数据提供方。
[0201]
每个被动数据提供方接收到w2分量的密文后,可以对w2分量的密文进行解密,得到w2分量;并由该被动数据提供方的明文计算引擎依据所述w2分量和样本数据进行明文运算,得到中间结果m4分量。
[0202]
其中,主动数据提供方计算对应模型参数w1是根据中间结果m4计算得到的,而中间结果m4由各被动数据提供方各自计算的中间结果m4分量组成;因此各被动数据提供方可以将m4分量进行加密,得到m4分量的密文;并将m4分量的密文发送至密文计算平台,以由密文计算平台确定中间结果m4。
[0203]
步骤708、从各被动数据提供方获取对应的m4分量的密文,所述m4分量是被动数据提供方的明文计算引擎依据w2分量和本地持有的样本数据进行明文运算得到的。
[0204]
步骤710、将各被动数据提供方的m4分量的密文进行密文合并,得到m4的密文并将m4的密文发送给主动数据提供方。
[0205]
进而密文计算平台可以从各被动数据提供方获取对应的m4分量的密文;然后可以
在密文的基础上,将各被动数据提供方的m4分量的密文进行密文合并,得到m4的密文并将m4的密文发送给主动数据提供方。本发明的一个示例中,可以在密文的基础上,将各被动数据提供方的m4分量的密文进行密文相加,得到m4的密文并将m4的密文发送给主动数据提供方。
[0206]
主动数据提供方接收到m4的密文后,对m4的密文进行解密,得到中间结果m4;然后由主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算,得到主动数据提供方对应的模型参数w1,并将w1的密文发送至密文计算平台。
[0207]
步骤712、从主动数据提供方获取对应的模型参数w1的密文,所述w1是主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算得到的,所述m4是被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算得到的。
[0208]
步骤714、将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0209]
其中,步骤712~步骤714,与上述步骤606~步骤608类似,在此不再赘述。
[0210]
以下对密文计算平台的密文计引擎如何进行密文计算进行说明。
[0211]
参照图8,示出了本发明的一种基于多方安全计算协议进行密文计算方法实施例的步骤流程图。可以包括如下步骤:
[0212]
步骤802、密文计算平台确定计算任务和对应的计算数据。
[0213]
步骤804、基于多方安全计算协议生成所述计算任务对应的多方计算指令,将所述多方计算指令和计算数据发送至密文计算平台中的密文计算引擎。
[0214]
本发明的一个可选实施例中,密文计算平台在依据各数据提供方上传的中间结果进行运算过程中,需要进行多次计算。其中,在每进行一次计算时,可以生成该次计算对应的计算任务,然后调用密文计算平台中的密文计算引擎对所述计算任务对应的计算数据进行处理。
[0215]
其中,密文计算平台可以按照预先构建的对应各计算任务的多方安全计算协议,预先将计算任务转换成所述多方计算指令;然后将多方计算指令和对应的计算数据发送至密文计算引擎。
[0216]
其中,所述多方安全计算协议为指示并调度密文计算引擎中各计算节点执行对应计算任务的多方计算的过程,其包括但不限于:描述加法、减法、乘法或除法等数学计算的计算任务的多方计算执行过程,描述逻辑和、或、非、异或、比较等逻辑计算的计算任务的多方计算执行过程,描述秘密传输的多方计算执行过程等。其中,所述多方计算指令包括:为采用多方计算的方式执行计算任务而指示密文计算引擎中各计算节点进行本地计算的指令,计算节点之间执行数据交互的指令,获取计算数据的指令,生成随机数的指令等。所述多方计算指令还可以包含指示计算节点执行本地计算和数据交互的计算角色的指令。所述多方计算指令可以由计算机程序语言来描述,或者由机器语言来描述。
[0217]
然后密文计算引擎可以基于所述多方计算指令对对应的计算数据进行处理。
[0218]
步骤806、密文计算引擎获取多方计算指令和计算数据。
[0219]
其中,所述密文计算引擎可以包括多个计算节点,通过多个计算节点的协同计算来实现对计算任务对应计算数据的处理;密文计算引擎包含的计算节点的数量可以按照需求设置如4个,本发明实施例对此不作限制。
[0220]
在一些示例中,密文计算引擎的各计算节点可以获取计算任务的完整的多方计算指令,即获取包含有每个计算节点执行的计算指令。为此,为使每个计算节点协同执行,所述步骤包括:各计算节点获取所述多方计算指令及计算角色;以供各计算节点按照所分别获取的计算角色执行所述多方计算指令。其中,所述计算角色用于标记所述多方计算指令中各执行本地计算的计算节点,以及标记所述多方计算指令中执行计算节点之间的交互时数据发送方和数据接收方等。
[0221]
在又一些示例中,密文计算引擎的各计算节点分别获取所述多方计算指令中对应本地执行的计算指令。其中,所述本地执行的计算指令包含用于执行本地计算的指令,为执行数据交互而发出本地存储的数据的指令,为执行数据交互而将所接收的数据存储本地的指令,获取经处理的输入数据的指令,生成随机数的指令等。例如,所述多方计算指令包含计算节点s1执行生成随机数r
12
的指令p1,计算节点sa执行生成随机数r
ab
的指令pa等,则计算节点s1获取指令p1,计算节点sa获取指令pa。
[0222]
为执行计算任务,所述密文计算引擎中各计算节点还获取对应的计算数据。所述计算数据可以包括数据提供方上传的数据,如中间结果;其中,所述中间结果可以由数据提供方基于密文计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。本发明的一个可选实施例中,所述随机分散处理方式可以包括:随机产生至少一个私密数据,按照所产生的私密数据将输入数据进行分散处理。一种示例中,所述随机分散处理方式包括:随机产生两个私密数据x1和x'1,基于所述私密数据x1和x'1将输入数据x分散成{x1,x'1,x2,x'2,x
a
,x'
a
,x
b
,x'
b
};其中,x2=x

x1=x
a
,x1=x
b
,x'2=x

x'1=x'
b
,x'1=x'
a
。所述计算数据还可以包括密文计算平台中数据,密文计算平台中的数据可以是密文,也可以是明文,本发明实施例对此不作限制。其中,密文计算平台中的密文数据,可以由密文计算引擎基于密文计算引擎执行多方计算所需的随机分散处理方式对训练数据进行随机分散处理得到的。其中,数据提供方随机分散处理的方式和密文计算平台随机分散处理的方式可以一致。
[0223]
其中,当所述计算数据为密文时,每个节点获取的计算数据为计算数据的至少一个密文分片,计算数据的所有的密文分片可以组成计算数据的明文。例如上述示例中数据x的密文为{x1,x'1,x2,x'2,x
a
,x'
a
,x
b
,x'
b
};若计算节点为4个,每个计算节点获取的计算数据的密文分片可以为{x1,x'1},{x2,x'2},{x
a
,x'
a
}和{x
b
,x'
b
}。当所述计算数据为明文时,每个节点获取的计算数据可以为计算数据的本身。当计算数据包括明文和密文,计算节点获取的计算数据可以为明文和密文的至少一个密文分片。例如,所述计算数据包括a1和a2,其中,a1为密文,被随机分散为{a1,a2},,a2为明文部分。计算节点1获取的计算数据可以为a1和a2,计算节点2获取的计算数据可以为a2和a2。
[0224]
步骤808、按照所述多方计算指令,所述密文计算引擎中至少部分计算节点分别对各自所获取的计算数据进行本地计算,和/或将本地计算所产生的中间数据进行交互,得到经由各计算节点分别持有的计算结果。
[0225]
其中,根据计算任务,所述多方计算指令可指示部分计算节点仅执行本地计算,并得到计算结果。在一些示例中,所述多方计算指令包含基于计算任务中具有同态性的计算而生成的指令;按照所述多方计算指令,所述密文计算引擎中的计算节点执行本地计算并得到相应的计算结果。其中,所述同态性表示可具有一个封闭的具有结合律的运算,例如,
加法计算等。在利用所述密文计算引擎执行加法计算时,多方计算指令可指示两个计算节点执行计算数据a1和a2的加法计算,并得到各自持有的计算结果。密文计算平台可通过获取该两个计算节点的计算结果得到a1+a2的处理结果。
[0226]
在又一些示例中,多方计算指令包含指令计算节点分别对各自所获取的计算数据组进行本地计算的指令,以及将本地计算所产生的中间数据进行交互的指令。在一些具体示例中,多方计算指令可对应计算任务中所涉及的每个计算。在又一些具体示例中,所述多方计算指令包含基于计算任务中多个计算之间的关联关系而设置的指令。其中,所述多个计算之间的关联关系包括但不限于:计算优先级关系、计算同态性、计算可同步性、计算所需的计算数据的随机分散处理方式等。根据所述关联关系,所述密文计算平台或密文计算引擎优化了各计算节点的本地计算和数据交互,由此各计算节点按照优化后的多方计算指令执行本地计算的指令,以及计算节点执行数据交互的指令。例如,计算任务中包含(x+y)
×
z,多方计算指令包含:指示两个计算节点执行本地计算得到对应(x+y)多方计算的指令,指示该两个计算节点将各自持有的对应(x+y)多方计算的计算结果作为中间数据,并进行随机分散处理的指令,指示多个计算节点执行对应(x+y)
×
z多方计算的指令等。
[0227]
步骤810、密文计算平台依据各计算节点分别持有的计算结果,确定所述计算任务对应的处理结果。
[0228]
在密文计算引擎得到对应计算任务的计算结果后,密文计算平台可以从所述多个计算节点中选取部分计算节点所持有的计算结果用于生成一处理结果;其中,所述处理结果为所述计算任务对计算数据进行处理的处理结果。
[0229]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0230]
可参照图1,本发明实施例公开的数据处理系统,包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;其中,
[0231]
所述主动数据提供方,用于调用主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;以及基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;
[0232]
所述被动数据提供方,用于被动数据提供方的调用明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;以及基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;
[0233]
所述密文计算平台,用于调用密文计算引擎基于所述m2的密文和m3的密文进行计
算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;以及将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0234]
本发明实施例还公开了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的方法适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在主动数据提供方的明文计算引擎中,所述的装置包括:
[0235]
参照图9,示出了本发明一种主动数据提供方侧模型训练装置实施例的结构框图。
[0236]
第一运算模块902,用于基于本地持有的样本数据进行明文运算,得到中间结果m1;
[0237]
第一发送模块904,用于将所述m1的密文发送至被动数据提供方,以由被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算,得到中间结果m2并将m2的密文发送至密文计算平台;
[0238]
第二运算模块906,用于基于本地持有的标签数据和m1进行明文运算,得到中间结果m3;
[0239]
第二发送模块908,用于将所述m3的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,以及由被动数据提供方的明文计算引擎基于本地持有的样本数据和w2进行明文运算,得到m4并将m4的密文发送至主动数据提供方;
[0240]
参数计算模块910,用于获取m4的密文并基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台,以由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0241]
参照图10,示出了本发明一种主动数据提供方侧模型训练装置可选实施例的结构框图。
[0242]
本发明一个可选实施例中,所述第一运算模块902,用于基于所述样本数据、样本数据的转置和单位矩阵进行明文运算,得到中间结果m1。
[0243]
本发明一个可选实施例中,所述第二运算模块906,用于将m1左乘本地持有的标签数据,得到中间结果m3。
[0244]
本发明一个可选实施例中,所述参数计算模块910,包括:
[0245]
模型参数计算子模块9102,用于基于所述样本数据、样本数据的转置、标签数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1。
[0246]
本发明一个可选实施例中,所述第一发送模块904,用于将所述m1的密文发送至密文计算平台,由所述密文计算平台将所述m1的密文发送至被动数据提供方。
[0247]
本发明一个可选实施例中,所述参数计算模块910,包括:
[0248]
获取子模块9104,用于从所述密文计算平台获取m4的密文,所述m4密文是由被动数据提供方发送给所述密文计算平台的;或,从所述被动数据提供方获取m4的密文。
[0249]
本发明实施例还提供了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的装置适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在被动数据提供方的明文计算引擎中,所述的装置包括:
[0250]
参照图11,示出了本发明一种被动数据提供方侧模型训练装置实施例的结构框图。
[0251]
第一结果获取模块1102,用于获取中间结果m1的密文,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的;
[0252]
第三运算模块1104,用于基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2并将所述m2的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和m1进行明文运算得到的;
[0253]
第四运算模块1106,用于基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方,以由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送给密文计算平台,以及由密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0254]
参照图12,示出了本发明一种被动数据提供方侧模型训练装置可选实施例的结构框图。
[0255]
本发明一个可选实施例中,所述第三运算模块1104,用于将所述m1左乘被动数据提供方本地持有的样本数据,得到中间结果m2。
[0256]
本发明一个可选实施例中,所述第四运算模块1106,包括:
[0257]
结果计算子模块11062,用于将所述被动数据提供方本地持有的样本数据左乘w2,得到中间结果m4。
[0258]
本发明一个可选实施例中,当所述被动数据提供方包括一个时,所述的装置还包括:
[0259]
第五运算模块1108,用于基于所述m2进行明文计算,得到中间结果m5并将m5的密文发送至密文计算平台,以由密文计算平台的密文计算引擎基于所述m2的密文、m3的密文和m5的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方。
[0260]
本发明一个可选实施例中,所述第四运算模块1106,包括:
[0261]
结果发送子模块11064,用于将所述m4的密文发送至密文计算平台,由所述密文计
算平台将所述m4的密文发送至主动数据提供方。
[0262]
本发明一个可选实施例中,所述第一结果获取模块1102,用于从所述密文计算平台获取m1的密文,所述m1的密文是由主动数据提供方发送给所述密文计算平台的;或,从所述主动数据提供方获取m1的密文。
[0263]
本发明实施例还提供了一种模型训练装置,应用于数据处理系统中,所述数据处理系统包括密文计算平台、数据提供方和结果需求方,密文计算平台中部署有密文计算引擎,数据提供方中部署有明文计算引擎,数据提供方包括主动数据提供方和被动数据提供方;所述的装置适用于线性回归模型训练所依赖的训练数据纵向分布在多个数据提供方的场景,训练数据包括样本数据和标签数据,样本数据纵向分布在多个数据提供方,标签数据由主动数据提供方持有;所述的装置部署在密文计算平台的密文计算引擎中,所述的装置包括:
[0264]
参照图13,示出了本发明一种密文计算平台侧模型训练装置实施例的结构框图。
[0265]
第二结果获取模块1302,用于从主动数据提供方获取中间结果m3的密文和从被动数据提供方获取中间结果m2的密文,所述m3是主动数据提供方的明文计算引擎基于本地持有的标签数据和中间结果m1进行明文运算得到的,所述m1是主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算得到的,所述m2是被动数据提供方的明文计算引擎基于本地持有的样本数据和m1进行明文运算得到的;
[0266]
第六运算模块1304,用于基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文并将w2的密文返回给被动数据提供方;
[0267]
参数获取模块1306,用于从主动数据提供方获取对应的模型参数w1的密文,所述w1是主动数据提供方的明文计算引擎基于中间结果m4和本地持有的训练数据进行明文运算得到的,所述m4是被动数据提供方的明文计算引擎依据所述w2和样本数据进行明文运算得到的;
[0268]
合并模块1308,用于将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方。
[0269]
参照图14,示出了本发明一种密文计算平台侧模型训练装置可选实施例的结构框图。
[0270]
本发明一个可选实施例中,当所述被动数据提供方包括一个时,所述第六运算模块1304,包括:
[0271]
第一密文计算子模块13042,用于在密文的基础上将m2转置的密文左乘m3的密文,得到中间结果y1的密文;从所述被动数据提供方获取中间结果m5的密文,所述m5是被动数据提供方的明文计算引擎依据m2计算得到的;在密文的基础上将m5的密文左乘y1的密文,得到与被动数据提供方对应的模型参数w2的密文。
[0272]
本发明一个可选实施例中,当所述被动数据提供方包括多个时,所述所述第六运算模块1304,包括:
[0273]
第二密文计算子模块13044,用于在密文的基础上将从多个被动数据提供方获取的m2的密文进行合并,得到中间结果y2的密文;基于y2的密文进行密文运算,得到中间结果y3的密文;在密文的基础上将y2转置的密文左乘m3的密文,得到中间结果y4的密文;在密文的基础上将y3的密文左乘y4的密文,得到被动数据提供方对应的模型参数w2的密文。
[0274]
本发明一个可选实施例中,所述第六运算模块1304,包括:
[0275]
参数发送子模块13046,用于在密文的基础上将w2的密文拆分为各被动数据提供方对应的w2分量的密文,并将各w2分量的密文分发给对应的被动数据提供方。
[0276]
本发明一个可选实施例中,所述的装置还包括:
[0277]
第三结果获取模块1310,用于从各被动数据提供方获取对应的m4分量的密文,所述m4分量是被动数据提供方的明文计算引擎依据w2分量和本地持有的样本数据进行明文运算得到的;将各被动数据提供方的m4分量的密文进行密文合并,得到m4的密文并将m4的密文发送给主动数据提供方。
[0278]
综上,本发明实施例中,可以由主动数据提供方的明文计算引擎基于本地持有的样本数据进行明文运算,得到中间结果m1,并将所述m1的密文发送至被动数据提供方;以及由被动数据提供方的明文计算引擎基于所述m1和本地持有的样本数据进行明文运算,得到中间结果m2,并将所述m2的密文发送至密文计算平台;再由主动数据提供方的明文计算引擎基于所述m1和本地持有的标签数据进行明文运算,得到中间结果m3,并将所述m3的密文发送至密文计算平台;然后由密文计算平台的密文计算引擎基于所述m2的密文和m3的密文进行计算,得到被动数据提供方对应的模型参数w2的密文,并将w2的密文返回给被动数据提供方;由被动数据提供方的明文计算引擎基于所述w2和本地持有的样本数据进行明文运算,得到中间结果m4并将所述m4的密文发送给所述主动数据提供方;以及由主动数据提供方的明文计算引擎基于本地持有的训练数据和m4进行明文运算,得到主动数据提供方对应的模型参数w1并将w1的密文发送至密文计算平台;最后密文计算平台的密文计算引擎将所述w1的密文和w2的密文合并,得到线性回归模型的模型参数w的密文并将所述w的密文发送至结果需求方;进而通过数据提供方在本地采用各自持有的数据进行明文计算的中间结果,与密文计算平台密文计算的结果的交互;实现在保证多个数据提供方持有的训练数据安全的前提下,训练线性回归模型。此外,相对于由密文计算平台进行纯密文计算来训练线性回归模型而言,本发明实施例采用各数据提供方和密文计算平台进行明密文混合计算的方式训练线性回归模型,能够减少计算量,提高模型训练的效率。
[0279]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0280]
本发明实施例还提供了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的模型训练方法。
[0281]
本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的模型训练方法。
[0282]
本发明实施例一个示例中提供了一种电子设备,例如服务器,图15示出了可以实现根据本发明的服务器,例如管理服务器、存储服务器、应用服务器、云控服务、服务器集群等。该服务器传统上包括处理器1510和以存储器1520形式的计算机程序产品或者计算机可读介质。存储器1520可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器1520具有用于执行上述方法中的任何方法步骤的程序代码1531的存储空间1530。例如,用于程序代码的存储空间1530可以包括分别用于实现上面的方法中的各种步骤的各个程序代码1531。这些程序代码可以从一个或者多个计算机程序
产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图15的服务器中的存储器1520类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如1510之类的处理器读取的代码,这些代码当由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。
[0283]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0284]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0285]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0286]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0287]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0288]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0289]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0290]
以上对本发明所提供的一种模型训练方法、一种模型训练装置、一种数据处理系
统和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1