CN113255928B - 模型的训练方法、装置和服务器 - Google Patents
模型的训练方法、装置和服务器 Download PDFInfo
- Publication number
- CN113255928B CN113255928B CN202110472698.7A CN202110472698A CN113255928B CN 113255928 B CN113255928 B CN 113255928B CN 202110472698 A CN202110472698 A CN 202110472698A CN 113255928 B CN113255928 B CN 113255928B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- random
- current
- batch
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 145
- 239000011159 matrix material Substances 0.000 claims abstract description 356
- 238000012545 processing Methods 0.000 claims abstract description 312
- 239000013598 vector Substances 0.000 claims abstract description 234
- 239000012634 fragment Substances 0.000 claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 65
- 230000006870 function Effects 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 238000007477 logistic regression Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 description 18
- 230000003993 interaction Effects 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000005284 excitation Effects 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 7
- 238000013178 mathematical model Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 101150081420 invH gene Proteins 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供了模型的训练方法、装置和服务器。在一些实施例中,在合作联合训练目标模型的过程中,进行当前轮当前批的数据处理时,可以先检测当前轮当前批的数据处理是否满足预设的触发条件;在确定满足预设的触发条件时,根据预设协议,第三数据方不需要生成新的随机矩阵,而是利用本地存储的随机矩阵集中的已有矩阵,来生成第一随机向量、第二随机向量和第三随机向量,并进行分发;第二数据方可以利用本地存储的中间矩阵集,计算得到处理结果秘密的第二分片;第一数据方不需要再另外生成并向第二数据方发送中间矩阵,而是利用本地存储的随机矩阵集,计算得到处理结果秘密的第一分片。从而可以减少模型训练时所涉及的数据计算量和数据传输量。
Description
技术领域
本说明书属于涉及数据隐私的人工智能技术领域,尤其涉及模型的训练方法、装置和服务器。
背景技术
在一些基于隐私保护的模型联合训练场景中,对于某些训练阶段往往需要进行多轮(对应多个epoch)多批(对应多个batch)的数据处理。并且,在每一轮中的每一批的数据处理中通常又需要参与方合作重新生成并传输新的随机数据(例如,随机矩阵、随机向量等)。
但是,在许多情况下,上述随机数据中存在一部分数据的数据量相对比较大,导致生成以及传输上述随机数据的过程会涉及到较大的数据计算量和较大的数据传输量,进而影响了模型整体训练效率。
因此,亟需一种能够有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量的模型的训练方法。
发明内容
本说明书提供了一种模型的训练方法、装置和服务器,以有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,提高模型训练效率。
本说明书提供的一种模型的训练方法、装置和服务器是这样实现的:
一种模型的训练方法,应用于第一数据方,包括:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
一种模型的训练方法,应用于第三数据方,包括:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,以进行目标模型的联合训练。
一种模型的训练方法,应用于第二数据方,包括:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的中间矩阵集中确定出匹配的目标中间矩阵;根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片;其中,所述第一数据方根据预设协议,利用本地存储的随机矩阵集,与第二数据方、第三数据方合作,计算得到处理结果秘密的第一分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
一种模型的训练装置,应用于第一数据方,包括:检测模块,用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;确定模块,用于在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;合作模块,用于根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
一种模型的训练方法,应用于第一数据方,包括:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议和同态加密规则,利用所述目标随机矩阵,与第二数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,第二数据方计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现模型的训练方法的相关步骤。
本说明书提供的模型的训练方法、装置和服务器,持有样本特征的第一数据方、持有样本标签的第二数据方、提供随机数据服务的第三数据方在合作联合训练目标模型的过程中,具体进行针对目标数据处理的当前轮当前批的数据处理时,可以先检测判断当前轮当前批的数据处理是否满足预设的触发条件;在确定满足预设的触发条件的情况下,第一数据方、第二数据方和第三数据方可以根据预设协议,分别利用各自本地数据集中的已有数据进行合作,以完成当前轮当前批的数据处理。具体的,根据预设协议,第三数据方不需要再耗费处理资源和处理时间来另外生成新的随机矩阵,而是可以取出并利用本地存储的随机矩阵集中的已有矩阵,来生成第一随机向量、第二随机向量和第三随机向量,并进行相应分发。第二数据方可以取出并利用本地存储的中间矩阵集中的已有矩阵,计算得到对应的处理结果秘密的第二分片。第一数据方也不需要再耗费处理资源和处理时间来另外生成并向第二数据方发送中间矩阵,而是可以取出并利用本地存储的随机矩阵集中的已有矩阵,计算得到处理结果秘密的第一分片。从而可以有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,缩短模型训练时间,提高模型训练效率。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的模型的训练方法的系统结构组成的一个实施例的示意图;
图2是在一个场景示例中,应用本说明书实施例提供的模型的训练方法的一种实施例的示意图;
图3是在一个场景示例中,应用本说明书实施例提供的模型的训练方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的模型的训练方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的模型的训练方法的流程示意图;
图6是本说明书的一个实施例提供的模型的训练方法的流程示意图;
图7是本说明书的一个实施例提供的模型的训练方法的流程示意图;
图8是本说明书的一个实施例提供的服务器的结构组成示意图;
图9是本说明书的一个实施例提供的模型的训练装置的结构组成示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供了一种模型的训练方法,该方法具体可以应用于包含有第一服务器、第二服务器和第三服务器的系统架构中。可以参阅图1所示,第一服务器、第二服务器和第三服务器之间可以通过有线或无线的方式相连,以进行具体的数据交互。
在本实施例中,上述第一服务器具体可以为部署于第一数据方一侧的服务器,上述第一数据方具体可以为至少持有样本特征的数据方,例如,持有大量用户的交易特征数据(例如,用户的交易记录、用户的付款方式、用户的交易违约次数等)的某购物网站等。
上述第二服务器具体可以为部署于第二数据方一侧的服务器,上述第二数据方具体可以为至少持有样本的样本标签的数据方,例如,持有大量用户的信用评级标签(例如,信用度高的标签、信用度低的标签等)的某信用评估机构等。第二数据方还可以持有其他类型的样本特征,以及初始的模型参数等。
当前第一数据方和第二数据方希望在保护各自数据隐私的前提下,分别利用各自所持有的数据,通过合作,联合训练得到能够预测用户的交易风险的目标模型。
上述第三服务器具体可以为部署于第三数据方一侧的服务器,上述第三数据方具体可以为第一数据方和第二数据方共同信任的,能够为目标模型的联合训练提供所需要的随机数服务的第三服务方,例如,独立于第一数据方和第二数据方的某计算服务平台等。
在本实施例中,所述第一服务器、第二服务器和第三服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述第一服务器、第二服务器和第三服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述第一服务器、第二服务器和第三服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述第一服务器、第二服务器和第三服务器所包含的服务器的数量。所述第一服务器、第二服务器和第三服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,具体可以参阅图2所示,第一服务器和第二服务器可以根据相关的协议规则,在第三服务器的协助下,基于牛顿法来进行目标模型的联合训练。
初始化时,第一服务器可以先在第一服务器本地建立空的随机矩阵集作为初始的随机矩阵集,第二服务器可以在第二服务器本地建立空的中间矩阵集作为初始的中间矩阵集,第三服务器可以在第三服务器本地建立空的随机矩阵集作为初始的随机矩阵集。
参阅图2所示,在具体进行目标模型的联合训练时,第一服务器和第二服务器需要合作以依次进行多个训练阶段(或者称多个step)的数据处理。其中,针对某几个训练阶段(例如,step1联合计算特征数据和模型参数之间的乘积、step3联合计算损失函数的梯度、stp4联合计算海森矩阵等)的数据处理都需要使用到第一数据方所持有的样本特征,并进行多轮涉及秘密分享算法的迭代处理。第一服务器和第二服务器之间,具体可以采用基于秘密分享算法的密文传输方式进行数据交互,在完成数据处理的同时,保护各自的数据隐私。
在每一轮迭代处理(对应一个epoch)中,由于样本特征的数据量较大,第一服务器会将样本特征划分成多组。其中,每一组样本特征对应一个批次(即一个batch)。进而可以通过利用上述多组样本特征,分别进行多批次的数据处理,来完成一轮的迭代处理。
具体的,例如,第一数据方持有100个样本用户的样本特征。其中,每一个样本用户的样本特征又具体可以包含有20种不同的交易特征数据。
第一服务器可以根据预设的划分规则将上述100个样本用户的样本特征划分为10组。其中,每一组样本特征具体可以包含有10个样本用户的20种不同的交易特征数据。进一步,第一服务器可以根据每一组样本特征,构建一个与该组样本特征对应的特征矩阵。其中,特征矩阵的行数等于该组所包含的样本用户的用户数,特征矩阵的列数等于该组中交易特征数据的种类数。按照上述方式,第一服务器可以构建得到10个分别对应10个批(即10个batch)的10*20的特征矩阵。可以分别记为:X1、X2……X10。
当然,需要说明的是,上述所列举的分组方式只是一种示意性说明。具体实施时,根据具体情况和处理需求,也可以采用其他的分组方式。此外,分组后得到的不同组所包含的样本用户的数量也可以是不同的。例如,第一组中可以包含有7个样本用户的20种不同的交易特征数据,第二组中可以包含有13个样本用户的20种不同的交易特征数据等等。
进一步,又由于为了保护双方的数据隐私,避免在联合训练过程中对外泄露己方所持有的数据信息,在本实施例中每一批次的数据处理又是基于秘密分享算法来实现的。
其中,上述秘密分享算法(Secret Sharing,SS)具体可以是一种保护数据隐私安全的算法。基于秘密分享算法,多个数据方可以在不泄漏自身数据的前提下,进行协作计算,共享秘密信息;相应的,各个数据方可以分别获得秘密信息的一个分片。
而在基于秘密分享算法来实现每一批次的数据处理时,又需要使用到相关的随机数据。因此,在系统中还引入了部署于负责提供随机数据服务的第三数据方的第三服务器来为第一服务器和第二服务器分别提供数据处理时所需要使用到的相关的随机数据。
进而第一服务器和第二服务器可以分别利用各自所持有的数据,以及相关的随机数据,基于秘密分享算法,通过合作实现每一批次的数据处理。
下面以针对第一训练阶段(例如,对应step1)的联合计算特征数据和模型参数之间的乘积(可以记为一种目标数据处理)的当前轮当前批的数据处理为例进行具体说明。在该训练阶段,第一服务器、第二服务器,以及第三服务器需要通过合作来联合计算wx=X*w。其中,wx表示特征数据和模型参数之间的乘积,X表示第一服务器所持有的特征矩阵,w表示第二服务器所持有的模型参数向量。
具体实施时,可以是第一服务器或第二服务器在系统中发起针对目标数据处理的当前轮当前批的数据处理请求。
系统中的第一服务器、第二服务器和第三服务器可以先响应该数据处理请求,通过检测当前轮数是否大于预设的轮数阈值,以检测当前轮当前批的数据处理是否满足预设的触发条件。其中,上述预设的轮数阈值具体可以为1。
当然,上述所列举的检测是否满足预设的触发条件的方式只是一种示意性说明。具体实施时,根据具体情况和处理需求,还可以采用其他合适的方式来检测是否满足预设的触发条件。例如,还可以通过检测各服务器本地当前存储的与当前轮对应的随机数据集是否为空,来确定是否满足预设的触发条件。
在检测确定当前轮数小于或等于预设的轮数阈值时,可以确定当前轮当前批的数据处理不满足预设的触发条件,进而触发第一服务器、第二服务器和第三服务器可以根据预设协议,基于第一类数据交互方式来生成并交互相关的随机数据,以进行当前轮当前批的数据处理。基于上述第一类数据交互方式,第一服务器可以将所得到的针对目标数据处理的当前轮当前批的随机矩阵存储于第一服务器本地的随机矩阵集中;第二服务器可以将所得到的针对目标数据处理的当前轮当前批的中间矩阵存储于第二服务器本地的中间矩阵集中;第三服务器可以将针对目标数据处理的当前轮当前批的随机矩阵存储于第三服务器本地的随机矩阵集中。
在检测确定当前轮数大于预设的轮数阈值时,可以确定当前轮当前批的数据处理满足预设的触发条件,进而触发第一服务器、第二服务器和第三服务器可以根据预设协议,基于第二类数据交互方式来生成并交互相关的随机数据,以进行当前轮当前批的数据处理。基于上述第二类数据交互方式,第三服务器可以利用本地存储的随机矩阵集中的已有矩阵作为针对当前轮当前批的随机矩阵,不需要再另外生成并分发新的随机矩阵;第二服务器可以利用本地存储的中间矩阵集中的已有矩阵作为针对当前轮当前批的中间矩阵来完成相应的数据处理,不需要第一服务器再另外生成并提供新的中间矩阵;第一服务器可以利用本地存储的随机矩阵集中的已有矩阵作为针对当前轮当前批的随机矩阵来完成相应的数据处理,不需要第三服务器再生成并提供新的随机矩阵。
具体的,在确定当前轮当前批的数据处理不满足预设的触发条件(例如,检测到当前轮是第一轮)的情况下,参阅图3所示,第一服务器、第二服务器和第三服务器可以根据预设协议,基于第一类数据交互方式来合作完成当前轮当前批的数据处理。
在确定不满足预设的触发条件的情况下,第三服务器可以先响应数据处理请求,根据预设协议,生成针对当前轮当前批的与当前轮当前批的特征矩阵的行数、列数相同的随机矩阵。例如,10*20的随机矩阵U。再根据预设的随机数据关系式(例如,算式U*v=z0+z1),基于上述随机矩阵生成针对当前轮当前批的第一随机向量(可以记为z0)、第二随机向量(可以记为1)和第三随机向量(可以记为v)。
具体的,第三服务器可以利用随机数生成器随机生成两个向量作为第一随机向量和第二随机向量;再将第一随机向量、第二随机向量,以及随机矩阵代入算式U*v=z0+z1中,计算出第三随机向量。
其中,上述第一随机向量、第二随机向量和第三随机向量为包含有10个数据元素的行向量。
同时,第三服务器还会将其中的随机矩阵保存在第三服务器本地的随机矩阵集中,以便后续可以重复使用。
具体保存时,第三服务器可以获取当前批的批标识,例如,编号2;并利用上述当前批的批标识对随机矩阵进行标记,以建立该随机矩阵与当前批的批标识的映射关系;再将标记后的随机矩阵存储于第三服务器本地的随机矩阵集中。
接着,第三服务器可以将上述随机矩阵和第一随机向量发送至第一服务器;将第二随机向量和第三随机向量发送至第二服务器。
相应的,第一服务器根据预设协议,接收并获取第三服务器所提供的随机矩阵和第一随机向量。并且,第一服务器也会将所获取的随机矩阵保存于第一服务器本地的随机矩阵集中;并采用类似的方式保存下该随机矩阵与当前批的批标识的映射关系。
接着,第一服务器可以根据相应的中间矩阵生成规则(例如,算式:E=X-U),根据所持有的当前批的特征矩阵(例如,编号为2的对应第二个batch的X2)和随机矩阵(U),生成针对当前轮当前批的中间矩阵,可以记为E2。其中,E2=X2-U。
通过上述处理,第一服务器可以利用随机矩阵U对特征矩阵X2的真实数据进行掩盖和隐藏。再将上述中间矩阵发送给第二服务器。
相应的,第二服务器根据预设协议,接收并获取第三服务器所提供的第二随机向量和第三随机向量。
接着,第二服务器可以根据相应的中间向量生成规则(例如,算式:f=w-v),根据所持有的当前的模型参数向量w和第三随机向量(v),生成针对当前轮当前批的中间向量,可以记为f。再将上述中间向量发送给第一服务器。
进而,在第一服务器一侧,第一服务器接收中间向量。接着,第一服务器可以根据第一计算规则(例如,算式:c0=U*f+z0),在本地利用中间向量、随机矩阵和第一随机向量计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片(可以记为c0),即特征数据和模型参数之间乘积秘密的第一分片。
同时,在第二服务器一侧,第二服务器可以接收中间矩阵。并且,第二服务器还会将该中间矩阵保存于第二服务器本地的中间矩阵集中;并保存下该中间矩阵与当前批的批标识的映射关系。
接着,第二服务器可以根据第二计算规则(例如,算式:c1=E*w+z1),在本地利用中间矩阵、模型参数向量和第二随机向量计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片(可以记为c1),即特征数据和模型参数之间乘积秘密的第二分片。
从而第一服务器、第二服务器和第三服务器可以根据预设协议,通过合作完成在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,针对目标数据处理的当前轮当前批的数据处理。
具体的,在确定当前轮当前批的数据处理满足预设的触发条件(例如,当前轮是第三轮)的情况下,参阅图4所示,第一服务器、第二服务器和第三服务器可以根据预设协议,基于第二类数据交互方式来合作完成当前轮当前批的数据处理。
在确定满足预设的触发条件的情况下,第三服务器可以先响应数据处理请求,根据预设协议确定出当前批的批标识3为目标批标识;再根据该目标批标识检索第三服务器本地的随机矩阵集中所保存的已有矩阵,找到并取出与批标识3匹配的已有矩阵(例如,随机矩阵集中被标记了编号3的矩阵)作为相匹配的针对当前轮当前批的目标随机矩阵。
接着,第三服务器可以根据预设的随机数据关系式,直接基于上述已有的目标随机矩阵,生成新的一组针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量。
然后,第三服务器只需要将第一随机向量发送给第一服务器;将第二随机向和第三随机向量发送给第二服务器即可。
这样,对于第三服务器而言,不需要再另外耗费数据计算资源来重新生成一个随机矩阵,减少了整体的数据计算量;同时,也不需要再将数据量较大的随机矩阵发送给第一服务器,减少了数据传输量。
相应的,第一服务器可以根据预设协议,接收获取第三服务器所提供的第一随机向量;同时,第二服务器可以根据预设协议,接收获取第三服务器所提供的第二随机向量和第三随机向量。
并且,对于第二服务器而言,可以根据目标批标识,从存储于第二服务器本地的中间矩阵集中,找到并取出相匹配的已有矩阵作为针对当前轮当前批的目标中间矩阵。
因此,第一服务器也不需要再另外耗费数据计算资源来基于随机矩阵生成中间矩阵,进一步减少了整体的数据计算量;同时,也不需要再将数据量较大的中间矩阵发送给第二服务器,进一步减少了数据传输量。
第二服务器可以根据相应的中间向量生成规则,利用所持有的当前的模型参数向量和第三随机向量,生成针对当前轮当前批的中间向量。再将该中间向量发送给第一服务器。
进而,在第一服务器一侧,第一服务器接收中间向量;并且可以根据目标批标识,从存储于第一服务器本地的随机矩阵集中,找到并取出相匹配的已有矩阵作为针对当前轮当前批的目标随机矩阵。接着,第一服务器可以根据第一计算规则,在本地利用中间向量、目标随机矩阵和第一随机向量计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片。
同时,在第二服务器一侧,第二服务器可以根据第二计算规则,在本地利用目标中间矩阵、模型参数向量和第二随机向量计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片。
从而完成了在确定当前轮的大于预设的轮数阈值的情况下,针对目标数据处理的当前轮当前批的数据处理。
按照上述方式,第一服务器、第二服务器和第三服务器可以根据预设协议,通过合作以相对较小的数据计算量和数据传输量,高效地完成当前轮的多批数据处理。
继续按照上述方式可以完成第一训练阶段针对step1的目标数据处理的多轮迭代处理。最终,第一服务器可以得到并持有特征数据和模型参数之间的乘积秘密的第一分片,第二服务器可以得到并持有特征数据和模型参数之间的乘积秘密的第二分片。其中,上述特征数据和模型参数之间的乘积秘密的第一分片和第二分片组合在一起,可以得到完整的特征数据和模型参数之间的乘积,例如,wx。
在按照上述方式完成第一训练阶段针对stp1的目标数据处理的多轮迭代处理之后,可以触发进行第二训练阶段针对step2的数据处理,即联合计算特征数据和模型参数之间的乘积的激励值。
在第二训练阶段,第一服务器和第二服务器可以根据相关的协议规则,利用各自所持有特征数据和模型参数之间的乘积秘密的分片,以及相应的激励函数,合作计算得到对应的激励值a。例如,可以根据预设协议,通过合作计算以下算式来得到对应的激励值:a=sigmoid(wx)。其中,sigmoid()表示一种激励函数。
上述激励函数(Activation Function),又称为激活函数,可以用于构建数学模型。激励函数定义了在给定输入下的输出。激励函数为非线性函数。通过激励函数可以在数学模型中加入非线性因素,提高数学模型的表达能力。所述激励函数可以包括Sigmoid函数、Tanh函数和ReLU函数等。
在按照上述方式完成第二训练阶段针对step2的数据处理之后,可以触发进行第三训练阶段针对step3的目标数据处理,即联合计算出损失函数的梯度:dw=X.T*(a-y)。其中,dw表示损失函数的梯度,X.T具体可以表示为基于样本特征得到的特征矩阵的转置,y表示对应的样本标签。
其中,上述损失函数(Loss Function)可以用于衡量数学模型的预测值与真实值之间不一致的程度。通常损失函数的值越小,表示数学模型的鲁棒性越好。所述损失函数包括但不限于对数损失函数(Logarithmic Loss Function)、平方损失函数(Square Loss)等。其中,所述数学模型可以包括逻辑回归模型和神经网络模型等。
在第三训练阶段,第一服务器、第二服务器和第三服务器可以采用与第一训练阶段类似的方式,根据预设协议,通过合作以相对较小的数据计算量和数据传输量进行轮多批的数据处理,高效地完成第三训练阶段的目标数据处理。最终,第一服务器可以得到并持有损失函数的梯度秘密的第一分片;第二服务器可以得到并持有损失函数的梯度秘密的第二分片。其中,上述损失函数的梯度秘密的第一分片和第二分片组合在一起可以得到完整的损失函数的梯度dw。
在按照上述方式完成第三训练阶段针对step3的目标数据处理之后,可以触发进行第四训练阶段针对step4的目标数据处理,即联合计算出海森矩阵:H=X.T*Rnn*X。其中,H表示海森矩阵,Rnn表示一种秘密分享对角矩阵,可以按照以下算式得到Rnn=diag(r)=diag(a(1-a))。
其中,上述海森矩阵(Hessian Matrix),又称为黑塞矩阵、海瑟矩阵或海塞矩阵等,是损失函数的二阶偏导数构成的方阵,用于表示损失函数的局部曲率。
在第四训练阶段,第一服务器、第二服务器和第三服务器可以采用与第一训练阶段类似的方式,根据预设协议,通过合作以相对较小的数据计算量和数据传输量,进行轮多批的数据处理,高效地完成第四训练阶段的目标数据处理。最终,第一服务器可以得到并持有海森矩阵秘密的第一分片;第二服务器可以得到并持有海森矩阵秘密的第二分片。其中,上述海森矩阵秘密的第一分片和第二分片组合在一起可以得到完整的海森矩阵H。
在按照上述方式完成第四训练阶段针对step4的目标数据处理之后,可以触发进行第五训练阶段针对step5的数据处理,即联合对海森矩阵求逆:invH=inv(H)。其中,invH表示海森矩阵的逆,inv()表示求矩阵逆的运算。
在第五训练阶段,第一服务器和第二服务器可以根据相关的协议规则,利用各自所持有海森矩阵的分片,合作计算得到海森矩阵的逆。最终,第一服务器可以得到并持有海森矩阵的逆秘密的第一分片;第二服务器可以得到并持有海森矩阵的逆秘密的第二分片。其中,上述海森矩阵的逆秘密的第一分片和第二分片组合在一起可以得到完整的海森矩阵的逆invH。
在按照上述方式完成第五训练阶段针对step5的数据处理之后,可以触发进行第六训练阶段针对step6的数据处理,即根据以下算式联合对模型参数向量进行更新:w=w-invH*dw。其中,等号左侧的w表示更新后的模型参数向量,等号右侧的w表示当前的模型参数向量。
在第六训练阶段,第一服务器和第二服务器可以根据相关的协议规则,利用各自所持有海森矩阵的逆秘密的分片、损失函数的梯度的分片,结合当前的模型参数向量,进行联合计算。最终,第一服务器可以得到并持有更新后的模型参数向量秘密的第一分片;第二服务器可以得到并持有更新后的模型参数向量秘密的第二分片。其中,上述更新后的模型参数向量秘密的第一分片和第二分片组合在一起可以得到完整的更新后的模型参数向量。
从而,第一服务器和第二服务器可以在第三服务器的协助下,基于牛顿法完成目标模型的联合训练,分别得到目标模型的模型参数的第一分片和第二分片。
通过上述系统,可以较为有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,提高模型训练效率。
在完成目标模型的联合训练之后,当第一数据方需要使用目标模型预测待测的目标用户是否具有交易风险时,第一服务器可以先获取该目标用户的交易特征数据。然后,第一服务器可以生成并发起目标模型的使用请求。第一服务器和第二服务器可以响应该目标模型的使用请求,根据预设的MPC(多方安全计算)协议,各自使用所持有的目模型的模型参数的分片作为输入,通过联合计算,还原得到完整的目标模型。
第一服务器再将目标用户的交易特征数据输入值目标模型中进行处理,以输出对应的预测结果。第一服务器可以该预测结果,确定目标用户是否存在预设的交易风险。在确定该目标用户存在预设的交易风险的情况,可以为该目标用设置相应的风险标记。
这样后续当该目标用户在某购物网站申请相关业务服务时,可以通过检测并根据该目标用户是否被设置有风险标记,来确定是否要为该目标用户办理相关业务服务。
参阅图5所示,本说明书实施例提供了一种模型的训练方法。其中,该方法具体应用于第一数据方一侧。具体实施时,该方法可以包括以下内容。
S501:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件。
S502:在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵。
S503:根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
在一些实施例中,上述目标数据处理具体可以理解为了目标模型的联合训练过程中需要使用到特征矩阵的,且涉及秘密分享算法的数据处理。在大多数情况下,针对一个目标数据处理,往往需要第一数据方、第二数据方和第三数据方合作进行多轮多批的数据处理。
其中,上述第一数据方具体可以理解为持有样本特征的数据方。上述第二数据方具体可以理解为持有样本标签的数据方。上述第三数据方具体可以理解为负责提供随机数据服务的数据方。进一步,上述第二数据方还可以持有初始模型参数向量,和/或样本特征。
在一些实施例中,上述样本特征具体可以包括有与多个样本对象的对象标识对应的多种特征数据;上述样本标签具体可以包括与多个样本对象的对象标识对应的多种标签数据。并且,样本特征中部分或全部的特征数据所对应的样本对象与样本标签中部分或全部的标签数据所对应的样本对象相同。
在一些实施例中,每一轮的数据处理(对应一个epoch)具体又可以包含有多个批的数据处理(对应多个batch)。
对同一个目标数据处理而言,不同轮中的相同批的数据处理所使用到的特征矩阵可以是相同的,都是与该批相对应的特征矩阵。
具体的,例如,由于第一数据方所持有的样本特征的数据量较为庞大,在具体进行目标数据处理时,第一数据方可以根据预设的划分规则,将所持有的样本特征划分为多个特征组。其中,每一个特征组可以包含有多个样本对象的多种特征数据,每一个特征组可以对应一个批(或者称一个批的批标识),对应一个batch。进而,第一数据方可以根据每一个特征组构建出与批对应的特征矩阵。其中,上述特征矩阵的行数等于所对应的特征组中样本对象的对象数,特征矩阵的列数等于所对应的特征组中样本对象的特征数据的种类数。
进一步,针对不同的目标数据处理,根据具体情况以及所使用的预设的划分规则,对应不同的目标数据处理的不同轮中的相同批的数据处理所使用到的特征矩阵也可以是相同的。
在一些实施例中,针对基于牛顿法的目标模型的联合训练,上述目标数据处理具体可以包括以下至少之一:联合计算特征数据和模型参数之间乘积、联合计算损失函数的梯度、联合计算海森矩阵等。
针对基于梯度下降法的目标模型的联合训练,上述目标数据处理具体可以包括以下至少之一:联合计算特征数据和模型参数之间乘积、联合计算海森矩阵等。
当然,需要说明的是,上述所列举的目标数据处理只是一种示意性说明。根据具体的模型训练场景和所采用的模型训练方法,上述目标数据处理还可以包括其他类型的数据处理。对此,本说明书不作限定。
在一些实施例中,目标模型的联合训练过程具体可以包括多个不同的训练阶段,不同的训练阶段会对应的不同数据处理。当目标模型的联合训练过程进入到某一个训练阶段的涉及上述目标数据处理的某一轮某一批的数据处理时,可以是由第一数据方、第二数据方,或者第三数据方中的任意一方发起针对该目标数据处理的当前轮当前批的数据处理请求。
相应的,第一数据方、第二数据方和第三数据方可以接收并响应该数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;再根据当前轮当前批的数据处理是否满足预设的触发条件,各自根据预设协议,确定具体采用哪一种数据交互方式(例如,第一类数据交互方式、第二类数据交互方式)来合作进行当前轮当前批的数据处理。
具体的,基于上述第一类数据交互方式,第三数据方会另外重新生成针对当前轮当前批的随机矩阵,并将该随机矩阵提供给第二数据方;同时,第三数据方还会将该随机矩阵保存于本地的随机矩阵集中。第一数据方接收并利用该随机矩阵,另外重新生成针对当前轮当前批的中间矩阵,并将该中间矩阵提供给第二数据方;同时,第一数据方还会将该随机矩阵保存于本地的随机矩阵集中。第二数据方接收中间随机矩阵,并将该中间随机矩阵保存于本地的中间矩阵集中。
基于上述第二类数据交互方式,第三数据方不需要另外重新生成新的随机矩阵,也不需要将随机矩阵提供给第二数据方;可以利用本地存储的随机矩阵集中对应的已有矩阵作为针对当前轮当前批的随机矩阵使用。第一数据方不需要接收第三数据方提供的随机矩阵,也不需要另外重新生成新的中间矩阵,也不需要将中间矩阵提供该第二数据方;可以利用本地存储的随机矩阵集中对应的已有矩阵作为针对当前轮当前批的随机矩阵使用。第二数据方不需要接收第一数据方提供的中间随机矩阵;可以利用本地存储的中间矩阵集中对应的已有矩阵作为针对当前轮当前批的中间矩阵使用。
在一些实施例中,上述检测当前轮当前批的数据处理是否满足预设的触发条件,具体实施时,可以包括:检测当前轮的轮数是否大于预设的轮数阈值;或,检测当前本地存储的随机矩阵集是否为空。
在一些实施例中,具体的,在检测到当前的轮数大于预设的轮数阈值的情况下,可以确定满足预设的触发条件。相反,在检测到当前的轮数小于或等于预设的轮数阈值的情况下,可以确定不满足预设的触发条件。
在一些实施例中,上述预设的轮数阈值具体可以为1。当然,根据具体情况和处理需求,上述预设的轮数阈值也可以被设置为其它正整数。
在一些实施例中,具体的,对于第一服务器和第三服务器,在检测到当前本地存储的随机矩阵集不为空的情况下,可以确定满足预设的触发条件。相反,在检测到当前本地存储的随机矩阵集为空的情况下,可以确定不满足预设的触发条件。具体的,上述当前本地存储的随机矩阵集可以是与当前轮对应的随机矩阵集。
对于第二服务器,在检测到当前本地存储的中间矩阵集不为空的情况下,可以确定满足预设的触发条件。相反,在检测到当前本地存储的中间矩阵集为空的情况下,可以确定不满足预设的触发条件。具体的,上述当前本地存储的中间矩阵集可以是与当前轮对应的中间矩阵集。
在一些实施例中,所述目标模型的联合训练,具体可以包括:基于牛顿法的目标模型的联合训练,或基于梯度下降法的目标模型的联合训练等。当然,上述所列举的目标模型的联合训练只是一种示意性说明。具体实施时,根据具体情况和处理需求还可以引入其他类型的联合训练类型。对此,本说明书不作限定。
在一些实施例中,在所述目标模型的联合训练包括基于牛顿法的目标模型的联合训练的情况下,所述处理结果具体可以包括以下至少之一:特征数据和模型参数之间乘积、损失函数的梯度、海森矩阵等。
在一些实施例中,在所述目标模型的联合训练包括基于梯度下降法的目标模型的联合训练的情况下,所述处理结果具体可以包括以下至少之一:特征数据和模型参数之间乘积、损失函数的梯度等。
在一些实施例中,上述利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片,具体实施时,可以包括以下内容:接收第三数据方提供的第一随机向量;其中,所述第三数据方响应所述数据处理请求,根据目标批标识和本地存储的随机矩阵集,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;并将第二随机向量和第三随机向量提供给第二数据方;接收第二数据方提供的针对当前轮当前批的目标中间向量;其中,所述第二数据方根据模型参数向量、第三随机向量,生成所述目标中间向量;根据所述目标中间向量、目标随机矩阵、第一随机向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片。
在一些实施例中,上述预设协议具体可以记载有第一服务器、第二服务器和第三服务器在不同触发条件下合作进行数据处理时所基于的交互方式,以及具体的交互规则、数据处理规则。
在一些实施例中,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法具体实施时,还可以包括以下内容:在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,接收第三数据方提供的第一随机向量、随机矩阵;其中,所述第三数据方响应所述数据处理请求,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;并将第二随机向量和第三随机向量提供给第二数据方,将所述随机矩阵保存于本地的随机矩阵集中;将所述随机矩阵保存于本地的随机矩阵集中;并根据特征矩阵、所述随机矩阵,生成针对当前轮当前批的中间矩阵;将所述中间矩阵发送至第二数据方,并接收第二数据方提供的针对当前轮当前批的中间向量;其中,所述第二数据方将所接收到的中间矩阵保存于本地的中间矩阵集中;根据所述中间向量、随机矩阵、第一随机向量,计算得到对应的处理结果秘密的第一分片;其中,第二数据方根据所述中间矩阵集、第二随机向量和模型参数向量,计算得到对应的处理结果秘密的第二分片。
在一些实施例中,上述将所述随机矩阵保存于本地的随机矩阵集中,具体实施时,可以包括:获取当前批的批标识;将所述随机矩阵保存于本地的随机矩阵集中,并保存所述随机矩阵与所述当前批的批标识的映射关系。
在一些实施例中,具体实施时,可以根据当前批的批标识设置与当前批的批标识关联的数据标签;再利用该数据标签对随机矩阵进行标记,得到标记后的随机矩阵,以建立该矩阵与当前批的批标识的映射关系;再将标记后的随机矩阵存储于本地的随机矩阵集中。
在一些实施例中,在确定当前轮的轮数大于预设的轮数阈值的情况下,上述根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵,具体实施时,可以包括:根据目标批标识检索本地随机矩阵集,从中找到携带有与该目标批标识关联的数据标签的已有矩阵,作为匹配的目标随机矩阵。
在一些实施例中,上述目标模型具体可以是一种逻辑回归类模型,在要求保护第一数据方、第二数据方的数据隐私的前提先,通常可以基于秘密分享算法来进行联合训练。最终,在完成目标模型的联合训练之后,第一数据方可以得到目标模型的模型参数向量的第一分片,第二数据方可以得到目标模型的模型参数向量的第二分片。其中,上述目标模型的模型参数向量的第一分片和第二分片组合,可以得到完整的目标模型。
相应的,在进行针对目标数据处理的当前轮当前批的数据处理时,第一数据方可以得到并持有处理结果秘密的第一分片,第二数据方可以得到并持有处理结果秘密的第二分片。其中,上述处理结果秘密的第一分片和第二分片组合,可以得到完整的处理结果。
在一些实施例中,所述目标模型包括用于交易风险预测的逻辑回归模型。相应的,第一数据方可以是某购物网站等,持有大量样本用户的多种交易特征数据等;第二数据方可以是某信用评价机构等,持有大量样本用户的信用评级标签等。
在一些实施例中,在完成目标模型的联合训练,第一数据方得到目标模型的模型参数向量的第一分片,第二数据方得到目标模型的模型参数向量的第二分片之后,所述方法还包括:在根据预设的合作协议,确定第一数据方具有目标模型的持有权限的情况下,第二数据方可以将所得到的目标模型的模型参数向量的第二分片发送给第一数据方;第一数据方可以通过组合目标模型的模型参数向量的第一分片和第二分片得到并持有完整的目标模型。
在一些实施例中,在根据预设的合作协议,确定第一数据方和第二数据方都不具有完整的目标模型的持有权限的情况下,第一数据方可以仅持有并保管目标模型的模型参数向量的第一分片,第二数据方可以仅持有并保管目标模型的模型参数向量的第二分片。当第一数据方和第二数据方中的任意一方需要使用完整的目标模型时,第一数据方和第二数据方可以合作,各自利用所持有的目标模型的模型参数向量的分片临时还原出完整的目标模型,进而可以使用该目标模型进行具体的数据处理。
在一些实施例中,在通过联合训练得到目标模型之后,所述方法具体实施时,还可以包括以下内容:获取待检测的目标用户的交易特征数据;调用所述目标模型处理所述目标用户的交易特征数据,得到对应的预测结果;根据所述预测结果,确定所述目标用户是否存在预设的交易风险。
在一些实施例中,可以根据目标用户是否存在预设的交易风险,为目标用户设置对应的风险标签;进而可以根据目标用户的风险标签,为该目标用户提供相匹配的业务服务。
由上可见,基于本说明书实施例提供的模型的训练方法,持有样本特征的第一数据方、持有样本标签的第二数据方、提供随机数据服务的第三数据方在合作联合训练目标模型的过程中,在具体进行当前轮当前批的数据处理时,会先检测检测当前轮当前批的数据处理是否满足预设的触发条件。
在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,第一数据方、第二数据方和第三数据方可以根据预设协议,按照以下方式合作,完成当前轮当前批的数据处理:第三数据方重新生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量,并进行相应分发;同时,第三数据方还会将随机矩阵存储于本地的随机矩阵集中。相应的,第一数据方也会将所接收到的随机矩阵存储于本地的随机矩阵集中;同时,重新生成针对当前轮当前批的中间矩阵;并将该中间矩阵提供给第二数据方。第二数据方可以生成针对当前轮当前批的中间向量,并将该中间向量提供给第一数据方;同时,将所接收到的矩阵存储于本地的中间矩阵集中。第一数据方可以根据上述中间向量、随机矩阵、第一随机向量计算得到的对应的处理结果秘密的第一分片;同时,第二数据方可以根据上述中间矩阵、模型参数向量、第二随机向量计算得到处理结果秘密的第二分片,完成当前轮当前批的数据处理。
在确定当前轮当前批的数据处理满足预设的触发条件的情况下,第一数据方、第二数据方和第三数据方可以根据预设协议,按照以下方式合作,完成当前轮当前批的数据处理:第三数据方不需要另外生成新的随机矩阵,而是可以利用本地存储的随机矩阵集中的已有矩阵,来生成第一随机向量、第二随机向量和第三随机向量,并进行相应分发。第二数据方可以利用本地存储的中间矩阵集中的已有矩阵,计算得到对应的处理结果秘密的第二分片。第一数据方也不需要再另外生成并向第二数据方发送中间矩阵,可以利用本地存储的随机矩阵集中的已有矩阵,生成处理结果秘密的第一分片。
从而可以有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,缩短模型训练时间,提高模型训练效率。
参阅图6所示,本说明书还提供了另一种模型的训练方法。该方法具体可以应用于第三数据方一侧。具体实施时,可以包括以下内容。
S601:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
S602:在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
S603:根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,以进行目标模型的联合训练。
在一些实施例中,上述根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,具体实施时,可以包括以下内容:根据所述目标随机矩阵,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;将所述第一随机向量提供给第一数据方;将所述第二随机向量、第三随机向量提供给第二数据方。
在一些实施例中,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法具体实施时,还可以包括以下内容:在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;将随机矩阵、第一随机向量提供给第一数据方;将第二随机向量、第三随机向量提供给第二数据方;并将所述随机矩阵保存于本地的随机矩阵集中。
本说明书还提供了另一种模型的训练方法。该方法具体可以应用于第二数据方一侧。具体实施时,可以包括以下内容:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的中间矩阵集中确定出匹配的目标中间矩阵;根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片;其中,所述第一数据方根据预设协议,利用本地存储的随机矩阵集,与第二数据方、第三数据方合作,计算得到处理结果秘密的第一分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
在一些实施例中,上述根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片,具体实施时,可以包括:接收第三数据方提供的第二随机向量、第三随机向量;其中,所述第三数据方响应所述数据处理请求,根据目标批标识和本地存储的随机矩阵集,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;并将第一随机向量提供给第一数据方;根据模型参数向量、第三随机向量,生成所述目标中间向量;并将所述目标中间向量发送至第一数据方;根据目标中间矩阵、第二随机向量和模型参数向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片。
在一些实施例中,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法具体实施时,还可以包括以下内容:在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,接收第三数据方提供的第二随机向量、第三随机向量;其中,所述第三数据方响应所述数据处理请求,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;并将随机矩阵、第一随机向量提供给第一数据方,将所述随机矩阵保存于本地的随机矩阵集中;根据模型参数向量、第三随机向量,生成针对当前轮当前批的中间向量;将所述中间向量发送至第一数据方;接收第一数据方提供的针对当前轮当前批的中间矩阵;并将所述中间矩阵保存于本地的中间矩阵集中;根据所述中间矩阵集、第二随机向量和模型参数向量,计算得到对应的处理结果秘密的第二分片;其中,第一数据方根据所述中间向量、随机矩阵、第一随机向量,计算得到对应的处理结果秘密的第一分片。
参阅图7,本说明书实施例还提供了另一种模型的训练方法,应用于第一数据方一侧。其中,该方法不需要引入负责提供随机数据服务器的第三方,只需要持有的样本特征的第一数据方和持有的样本标签的第二数据合作就能在保护双方数据隐私的前提,高效地完成目标模型的联合训练。具体实施时,该方法可以包括以下内容。
S701:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
S702:在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
S703:根据预设协议和同态加密规则,利用所述目标随机矩阵,与第二数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,第二数据方计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
在一些实施例中,上述根据预设协议和同态加密规则,利用所述目标随机矩阵,与第二数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片,具体实施时,可以包括:第一数据方基于同态加密规则,利用目标随机矩阵,与第二数据方合作,计算得到针对当前轮当前批的第一随机向量;其中,第二数据方计算得到针对当前轮当前批的第二随机向量和第三随机向量;第一数据方接收第二数据方提供的针对当前轮当前批的目标中间向量;其中,所述第二数据方根据模型参数向量、第三随机向量,生成所述目标中间向量;第一数据方根据所述目标中间向量、目标随机矩阵、第一随机向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据本地存储的中间矩阵集,确定出目标中间矩阵;并根据目标中间矩阵、第二随机向量和模型参数向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片。
在一些实施例中,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法具体实施时,还可以包括以下内容:在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,基于同态加密规则,与第二数据方合作,计算得到针对当前轮当前批的随机矩阵和第一随机向量;其中,第二数据方计算得到针对当前轮当前批的第二随机向量和第三随机向量;将所述随机矩阵保存于本地的随机矩阵集中;并根据特征矩阵、所述随机矩阵,生成针对当前轮当前批的中间矩阵;将所述中间矩阵发送至第二数据方,并接收第二数据方提供的针对当前轮当前批的中间向量;其中,所述第二数据方将所接收到的中间矩阵保存于本地的中间矩阵集中;根据所述中间向量、随机矩阵、第一随机向量,计算得到对应的处理结果秘密的第一分片;其中,第二数据方根据所述中间矩阵集、第二随机向量和模型参数向量,计算得到对应的处理结果秘密的第二分片。
由上可见,本说明书实施例提供的模型的训练方法还可以适用于只有第一数据方和第二数据方两方参与的目标模型的联合训练场景,以有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,缩短模型训练时间,提高模型训练效率。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
为了能够更加准确地完成上述指令,参阅图8所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口801、处理器802以及存储器803,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口801,具体可以用于接收针对目标数据处理的当前轮当前批的数据处理请求;
所述处理器802,具体可以用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
所述存储器803,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口801可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器802可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器803可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述模型的训练方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图9所示,在软件层面上,本说明书实施例还提供了一种模型的训练装置,该装置具体可以包括以下的结构模块:
检测模块901,具体可以用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
确定模块902,具体可以用于在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
合作模块903,具体可以用于根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
本说明书还提供了一种模型的训练装置,包括:检测模块,用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;确定模块,用于在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;合作模块,用于根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,以进行目标模型的联合训练。
本说明书还提供了另一种模型的训练装置,包括:检测模块,用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;确定模块,用于在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的中间矩阵集中确定出匹配的目标中间矩阵;合作模块,用于根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片;其中,所述第一数据方根据预设协议,利用本地存储的随机矩阵集,与第二数据方、第三数据方合作,计算得到处理结果秘密的第一分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的模型的训练装置,可以有效地减少基于隐私保护的联合训练模型的过程中所涉及到的数据计算量和数据传输量,缩短模型训练时间,提高模型训练效率。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (19)
1.一种模型的训练方法,应用于第一数据方,包括:
响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
2.根据权利要求1所述的方法,检测当前轮当前批的数据处理是否满足预设的触发条件,包括:
检测当前轮的轮数是否大于预设的轮数阈值;
或,检测当前本地存储的随机矩阵集是否为空。
3.根据权利要求1所述的方法,根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片,包括:
接收第三数据方提供的第一随机向量;其中,所述第三数据方响应所述数据处理请求,根据目标批标识和本地存储的随机矩阵集,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;并将第二随机向量和第三随机向量提供给第二数据方;
接收第二数据方提供的针对当前轮当前批的目标中间向量;其中,所述第二数据方根据模型参数向量、第三随机向量,生成所述目标中间向量;
根据所述目标中间向量、目标随机矩阵、第一随机向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片。
4.根据权利要求1所述的方法,所述目标模型的联合训练,包括:基于牛顿法的目标模型的联合训练,或基于梯度下降法的目标模型的联合训练。
5.根据权利要求4所述的方法,在所述目标模型的联合训练包括基于牛顿法的目标模型的联合训练的情况下,所述处理结果包括以下至少之一:特征数据和模型参数之间乘积、损失函数的梯度、海森矩阵。
6.根据权利要求4所述的方法,在所述目标模型的联合训练包括基于梯度下降法的目标模型的联合训练的情况下,所述处理结果包括以下至少之一:特征数据和模型参数之间乘积、损失函数的梯度。
7.根据权利要求3所述的方法,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法还包括:
在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,接收第三数据方提供的第一随机向量、随机矩阵;其中,所述第三数据方响应所述数据处理请求,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;并将第二随机向量和第三随机向量提供给第二数据方,将所述随机矩阵保存于第三数据方本地的随机矩阵集中;
将所述随机矩阵保存于第一数据方本地的随机矩阵集中;并根据特征矩阵、所述随机矩阵,生成针对当前轮当前批的中间矩阵;
将所述中间矩阵发送至第二数据方,并接收第二数据方提供的针对当前轮当前批的中间向量;其中,所述第二数据方将所接收到的中间矩阵保存于第二数据方本地的中间矩阵集中;
根据所述中间向量、随机矩阵、第一随机向量,计算得到对应的处理结果秘密的第一分片。
8.根据权利要求7所述的方法,将所述随机矩阵保存于第一数据方本地的随机矩阵集中,包括:
获取当前批的批标识;
将所述随机矩阵保存于第一数据方本地的随机矩阵集中,并保存所述随机矩阵与所述当前批的批标识的映射关系。
9.根据权利要求1所述的方法,所述目标模型包括用于交易风险预测的逻辑回归模型。
10.根据权利要求9所述的方法,在通过联合训练得到目标模型之后,所述方法还包括:
获取待检测的目标用户的交易特征数据;
调用所述目标模型处理所述目标用户的交易特征数据,得到对应的预测结果;
根据所述预测结果,确定所述目标用户是否存在预设的交易风险。
11.一种模型的训练方法,应用于第三数据方,包括:
响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,以进行目标模型的联合训练。
12.根据权利要求11所述的方法,根据预设协议,利用所述目标随机矩阵,与第一数据方、第二数据方合作,包括:
根据所述目标随机矩阵,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;
将所述第一随机向量提供给第一数据方;将所述第二随机向量、第三随机向量提供给第二数据方。
13.根据权利要求12所述的方法,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法还包括:
在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;
将随机矩阵、第一随机向量提供给第一数据方;将第二随机向量、第三随机向量提供给第二数据方;并将所述随机矩阵保存于本地的随机矩阵集中。
14.一种模型的训练方法,应用于第二数据方,包括:
响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的中间矩阵集中确定出匹配的目标中间矩阵;
根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片;其中,所述第一数据方根据预设协议,利用本地存储的随机矩阵集,与第二数据方、第三数据方合作,计算得到处理结果秘密的第一分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
15.根据权利要求14所述的方法,根据预设协议,利用所述目标中间矩阵,与第一数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片,包括:
接收第三数据方提供的第二随机向量、第三随机向量;其中,所述第三数据方响应所述数据处理请求,根据目标批标识和本地存储的随机矩阵集,生成针对当前轮当前批的第一随机向量、第二随机向量和第三随机向量;并将第一随机向量提供给第一数据方;
根据模型参数向量、第三随机向量,生成目标中间向量;并将所述目标中间向量发送至第一数据方;
根据目标中间矩阵、第二随机向量和模型参数向量,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第二分片。
16.根据权利要求15所述的方法,在检测当前轮当前批的数据处理是否满足预设的触发条件之后,所述方法还包括:
在确定当前轮当前批的数据处理不满足预设的触发条件的情况下,接收第三数据方提供的第二随机向量、第三随机向量;其中,所述第三数据方响应所述数据处理请求,生成针对当前轮当前批的随机矩阵、第一随机向量、第二随机向量和第三随机向量;并将随机矩阵、第一随机向量提供给第一数据方,将所述随机矩阵保存于第三数据方本地的随机矩阵集中;
根据模型参数向量、第三随机向量,生成针对当前轮当前批的中间向量;
将所述中间向量发送至第一数据方;接收第一数据方提供的针对当前轮当前批的中间矩阵;并将所述中间矩阵保存于第二数据方本地的中间矩阵集中;
根据所述中间矩阵集、第二随机向量和模型参数向量,计算得到对应的处理结果秘密的第二分片;其中,第一数据方根据所述中间向量、随机矩阵、第一随机向量,计算得到对应的处理结果秘密的第一分片。
17.一种模型的训练装置,应用于第一数据方,包括:
检测模块,用于响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
确定模块,用于在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
合作模块,用于根据预设协议,利用所述目标随机矩阵,与第二数据方、第三数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,所述第二数据方根据预设协议,利用本地存储的中间矩阵集,与第一数据方、第三数据方合作,计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
18.一种模型的训练方法,应用于第一数据方,包括:
响应针对目标数据处理的当前轮当前批的数据处理请求,检测当前轮当前批的数据处理是否满足预设的触发条件;
在确定当前轮当前批的数据处理满足预设的触发条件的情况下,确定当前批的批标识作为目标批标识;并根据目标批标识,从本地存储的随机矩阵集中确定出匹配的目标随机矩阵;
根据预设协议和同态加密规则,利用所述目标随机矩阵,与第二数据方合作,计算得到针对目标数据处理的当前轮当前批的处理结果秘密的第一分片;其中,第二数据方计算得到处理结果秘密的第二分片;所述处理结果秘密的第一分片和处理结果秘密的第二分片用于目标模型的联合训练。
19.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至10,或11至13,或14至16,或18中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472698.7A CN113255928B (zh) | 2021-04-29 | 2021-04-29 | 模型的训练方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472698.7A CN113255928B (zh) | 2021-04-29 | 2021-04-29 | 模型的训练方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113255928A CN113255928A (zh) | 2021-08-13 |
CN113255928B true CN113255928B (zh) | 2022-07-05 |
Family
ID=77223415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110472698.7A Active CN113255928B (zh) | 2021-04-29 | 2021-04-29 | 模型的训练方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113255928B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115719094B (zh) * | 2023-01-06 | 2023-04-28 | 腾讯科技(深圳)有限公司 | 基于联邦学习的模型训练方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162613A (zh) * | 2019-05-27 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种问题生成方法、装置、设备及存储介质 |
CN110929886A (zh) * | 2019-12-06 | 2020-03-27 | 支付宝(杭州)信息技术有限公司 | 模型训练、预测方法及其系统 |
CN111738361A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 业务模型的联合训练方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180089587A1 (en) * | 2016-09-26 | 2018-03-29 | Google Inc. | Systems and Methods for Communication Efficient Distributed Mean Estimation |
US20200364608A1 (en) * | 2019-05-13 | 2020-11-19 | International Business Machines Corporation | Communicating in a federated learning environment |
-
2021
- 2021-04-29 CN CN202110472698.7A patent/CN113255928B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162613A (zh) * | 2019-05-27 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种问题生成方法、装置、设备及存储介质 |
CN110929886A (zh) * | 2019-12-06 | 2020-03-27 | 支付宝(杭州)信息技术有限公司 | 模型训练、预测方法及其系统 |
CN111738361A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 业务模型的联合训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113255928A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112800466B (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN111523673B (zh) | 模型训练方法、装置及系统 | |
CN113505882B (zh) | 基于联邦神经网络模型的数据处理方法、相关设备及介质 | |
CN111428887B (zh) | 一种基于多个计算节点的模型训练控制方法、装置及系统 | |
CN112132676B (zh) | 联合训练目标模型的贡献度的确定方法、装置和终端设备 | |
CN111062487A (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN111800411A (zh) | 保护隐私的业务预测模型联合更新方法及装置 | |
CN111079939A (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN112073444B (zh) | 数据集的处理方法、装置和服务器 | |
CN111523556B (zh) | 模型训练方法、装置及系统 | |
CN114255037A (zh) | 隐私保护下的多方联合排序方法和数据处理方法 | |
CN113255928B (zh) | 模型的训练方法、装置和服务器 | |
CN112183759B (zh) | 模型训练方法、装置及系统 | |
CN112183757B (zh) | 模型训练方法、装置及系统 | |
CN113094739B (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN114254353A (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN115174237B (zh) | 一种物联网系统恶意流量的检测方法、装置和电子设备 | |
CN111523675A (zh) | 模型训练方法、装置及系统 | |
CN111738453B (zh) | 基于样本加权的业务模型训练方法、装置及系统 | |
CN111931870B (zh) | 基于模型复用的模型预测方法、模型预测装置及系统 | |
CN112511361A (zh) | 模型训练方法、装置和计算设备 | |
CN112183566B (zh) | 模型训练方法、装置及系统 | |
CN113094745A (zh) | 基于隐私保护的数据变换方法、装置和服务器 | |
CN113011459B (zh) | 模型训练方法、装置和计算设备 | |
CN118413394B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240924 Address after: Room 302, 3rd Floor, Building 1, Yard 1, Danling Street, Haidian District, Beijing, 100080 Patentee after: Sasi Digital Technology (Beijing) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |