CN114819182B - 用于经由多个数据拥有方训练模型的方法、装置及系统 - Google Patents
用于经由多个数据拥有方训练模型的方法、装置及系统 Download PDFInfo
- Publication number
- CN114819182B CN114819182B CN202210397805.9A CN202210397805A CN114819182B CN 114819182 B CN114819182 B CN 114819182B CN 202210397805 A CN202210397805 A CN 202210397805A CN 114819182 B CN114819182 B CN 114819182B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- training
- owner
- owners
- 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 756
- 238000000034 method Methods 0.000 title claims abstract description 130
- 230000008569 process Effects 0.000 claims abstract description 66
- 230000002776 aggregation Effects 0.000 claims abstract description 28
- 238000004220 aggregation Methods 0.000 claims abstract description 28
- 238000003062 neural network model Methods 0.000 claims description 41
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 22
- 238000009826 distribution Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004931 aggregating effect Effects 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 20
- 230000011218 segmentation Effects 0.000 description 18
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009827 uniform distribution Methods 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012502 risk assessment Methods 0.000 description 2
- 241000579895 Chlorostilbon Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000010976 emerald Substances 0.000 description 1
- 229910052876 emerald Inorganic materials 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- G06N3/098—Distributed learning, e.g. federated learning
-
- 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
- G06N3/09—Supervised learning
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供了用于经由多个数据拥有方训练模型的方法、装置及系统。在该方法中,各个第二数据拥有方根据第一数据确定出与各个第一数据相交的第二特征数据,执行下述主循环过程,直至满足第一循环结束条件:针对每个训练单元,利用第一训练样本和第二训练样本对参与该训练单元训练的第一模型、第二模型和第三模型进行协同训练,主服务器对各个训练单元的经过训练的第一模型和/或第三模型进行联邦聚合,以得到对应的第一全局模型和/或第三全局模型,在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新。
Description
技术领域
本说明书实施例涉及人工智能技术领域,具体地,涉及用于经由多个数据拥有方训练模型的方法、装置及系统。
背景技术
随着人工智能技术的发展,机器模型已经逐渐应用于各种业务应用场景,比如,风险评估、语音识别、自然语言处理等。在很多情况下,多个数据拥有方(例如,电子商务公司、快递公司和银行)各自拥有模型训练所使用的训练样本的不同部分数据。该多个数据拥有方通常想共同使用彼此的数据来统一训练模型,但又不想把各自的数据提供给其它各个数据拥有方以防止自己的数据被泄露。
为了解决模型训练时的数据孤岛问题,提出了结合多个数据拥有方共同训练模型的方法,比如,联邦学习(Federated Learning),拆分学习等。通过多方联合训练的模型训练方法,其能够在保证数据拥有方的各自数据安全的情况下,由数据拥有方利用各自的隐私数据来协同训练模型。
发明内容
鉴于上述,本说明书实施例提供了用于经由多个数据拥有方训练模型的方法、装置及系统。通过本说明书实施例的技术方案,能够在保证各个数据拥有方的各自数据安全的情况下实现同时利用水平切分和垂直切分的数据进行模型训练。
根据本说明书实施例的一个方面,提供了一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述方法包括:在各个第二数据拥有方处,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;将每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定为一个训练单元;执行下述主循环过程,直至满足第一循环结束条件:针对每个训练单元,利用该训练单元中的至少部分第一数据作为第一训练样本以及各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对参与该训练单元训练的第一数据拥有方的第一模型、所述各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行协同训练,其中,所述第一模型和所述第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;在主服务器处,对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;以及在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新。
根据本说明书实施例的另一方面,还提供一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述方法由第一数据拥有方来执行,所述方法包括:将所拥有的第一数据提供给各个第二数据拥有方,以使所述各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;执行下述主循环过程,直至满足第一循环结束条件:在所述训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对所述第一数据拥有方的第一模型进行协同训练,其中,所述各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;将经过训练的第一模型发送给主服务器,以使所述主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者所述第一全局模型以及针对第三模型的第三全局模型;以及根据从所述主服务器接收的所述第一全局模型对所具有的第一模型进行更新。
根据本说明书实施例的另一方面,还提供一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述方法由第二数据拥有方来执行,所述方法包括:利用PSI算法根据各个第一数据拥有方所拥有的第一数据从所述第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;执行下述主循环过程,直至满足第一循环结束条件:在所述训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合所述第一训练样本以及其他各个第二数据拥有方的第二特征数据,对所述第二数据拥有方的第二模型进行协同训练,其中,所述第一训练样本由所述训练单元中的至少部分第一数据确定,参与所述训练单元训练的第一数据拥有方的第一模型、所述其他各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;其中,当所述训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新。
根据本说明书实施例的另一方面,还提供一种用于经由多个数据拥有方训练模型的装置,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述装置应用于第一数据拥有方,所述装置包括:数据提供模块,将所拥有的第一数据提供给各个第二数据拥有方,以使所述各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;训练单元确定模块,确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;协同训练模块,在所述训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对所述第一数据拥有方的第一模型进行协同训练,其中,所述各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;模型发送模块,将经过训练的第一模型发送给主服务器,以使所述主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者所述第一全局模型以及针对第三模型的第三全局模型;以及模型更新模块,根据从所述主服务器接收的所述第一全局模型对所具有的第一模型进行更新,其中,所述协同训练模块、所述模型发送模块以及所述模型更新模块循环执行,直至满足第一循环结束条件。
根据本说明书实施例的另一方面,还提供一种用于经由多个数据拥有方训练模型的装置,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述装置应用于第二数据拥有方,所述装置包括:特征数据确定模块,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从所述第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;训练单元确定模块,确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;协同训练模块,在所述训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合所述第一训练样本以及其他各个第二数据拥有方的第二特征数据,对所述第二数据拥有方的第二模型进行协同训练,其中,所述第一训练样本由所述训练单元中的至少部分第一数据确定,参与所述训练单元训练的第一数据拥有方的第一模型、所述其他各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;其中,当所述训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新,其中,所述协同训练模块循环执行,直至满足第一循环结束条件。
根据本说明书实施例的另一方面,还提供一种用于经由多个数据拥有方训练模型的系统,包括第一数据拥有方、第二数据拥有方、从服务器和主服务器,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,各个第二数据拥有方,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;各个第一数据拥有方,确定所属的训练单元;各个第二数据拥有方,确定所拥有的各个第二特征数据所属的训练单元,其中,每个训练单元由每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;针对每个训练单元,参与该训练单元训练的第一数据拥有方,从该第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为第一训练样本,各个第二数据拥有方,选取各自所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,以及参与该训练单元训练的第一数据拥有方和从服务器、以及所述各个第二数据拥有方,利用所述第一训练样本和所述第二训练样本,对该第一数据拥有方的第一模型、所述各个第二数据拥有方的第二模型以及该从服务器的第三模型进行协同训练,其中,所述第一模型和所述第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层,其中,参与同一训练单元训练的第一数据拥有方、各个第二数据拥有方、从服务器执行子循环过程,直至满足第二循环结束条件;所述主服务器,在每一轮主循环过程中对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;各个第一数据拥有方,在每一轮主循环过程中根据所述第一全局模型对第一模型进行更新;和/或,各个从服务器,在每一轮主循环过程中根据所述第三全局模型对第三模型进行更新。
根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上述任一所述的用于经由多个数据拥有方训练模型的方法。
根据本说明书实施例的另一方面,还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的用于经由多个数据拥有方训练模型的方法。
根据本说明书实施例的另一方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上任一所述的用于经由多个数据拥有方训练模型的方法。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的系统的一个示例的分布式架构图。
图2示出了根据本说明书实施例的按照水平切分方式切分的第一数据的一个示例的示意图。
图3示出了根据本说明书实施例的按照垂直切分方式切分的第二数据的一个示例的示意图。
图4示出了根据本说明书实施例的由水平切分得到的第一数据和由垂直切分得到的第二数据构成的训练样本的一个示例的示意图。
图5示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例的流程图。
图6示出了根据本说明书实施例的经过PSI计算后第一数据与第二特征数据的一个示例的示意图。
图7示出了根据本说明书实施例的每个训练单元进行模型训练的一个示例的流程图。
图8示出了根据本说明书实施例的计算模型梯度的一个示例的流程图。
图9示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例的一个流程图。
图10示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例的一个流程图。
图11示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的装置的一个示例的一个方框图。
图12示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的装置的一个示例的一个方框图。
图13示出了本说明书实施例的用于实现经由多个数据拥有方训练模型的方法的电子设备的方框图。
图14示出了本说明书实施例的用于实现经由多个数据拥有方训练模型的方法的电子设备的方框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
随着人工智能技术的发展,机器模型已经逐渐应用于各种业务应用场景,比如,风险评估、语音识别、自然语言处理等。在很多情况下,多个数据拥有方(例如,电子商务公司、快递公司和银行)各自拥有模型训练所使用的训练样本的不同部分数据。该多个数据拥有方通常想共同使用彼此的数据来统一训练模型,但又不想把各自的数据提供给其它各个数据拥有方以防止自己的数据被泄露。
为了解决模型训练时的数据孤岛问题,提出了结合多个数据拥有方共同训练模型的方法,比如,联邦学习,拆分学习等。通过多方联合训练的模型训练方法,其能够在保证数据拥有方的各自数据安全的情况下,由数据拥有方利用各自的隐私数据来协同训练模型。
然而,目前只能针对单纯的水平切分或者垂直切分的数据进行模型训练,无法同时利用水平切分的数据和垂直切分的数据作为训练样本进行模型训练,因此,如何同时利用水平切分的数据和垂直切分的数据作为训练样本进行模型训练成为亟待解决的问题。
鉴于上述,本说明书实施例提供了用于经由多个数据拥有方训练模型的方法、装置及系统。在该方法中,在各个第二数据拥有方处,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;将每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定为一个训练单元;执行下述主循环过程,直至满足第一循环结束条件:针对每个训练单元,利用该训练单元中的至少部分第一数据作为第一训练样本以及各个第二数据拥有方所拥有的与第一训练样本相交的第二特征数据作为第二训练样本,对参与该训练单元训练的第一数据拥有方的第一模型、各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行协同训练;在主服务器处,对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;以及在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新。通过本说明书实施例的技术方案,能够在保证各个数据拥有方的各自数据安全的情况下实现同时利用水平切分和垂直切分的数据进行模型训练。
下面结合附图对本说明书实施例的用于经由多个数据拥有方训练模型的方法、装置及系统进行详细说明。
本说明书实施例提供的用于经由多个数据拥有方训练模型的系统(以下简称为模型训练系统)可以包括第一数据拥有方、第二数据拥有方、从服务器和主服务器。其中,第一数据拥有方和第二数据拥有方接入模型训练系统的数量可以设置。在一个示例中,各个第一数据拥有方和各个第二数据拥有方可以以可插拔的方式接入模型训练系统。
当没有第二数据拥有方接入模型训练系统、且有多个第一数据拥有方同时接入模型训练系统时,由于第一数据拥有方具有按照水平切分方式切分的第一数据,从而此时的模型训练系统可以基于各个第一数据拥有方的第一数据来执行联邦学习。当没有第一数据拥有方接入系统、且有多个第二数据拥有方接入模型训练系统时,由于第二数据拥有方具有按照垂直切分方式切分的第二数据,从而此时的模型训练系统可以基于各个第二数据拥有方的第二数据来执行拆分学习。当同时有多个第一数据拥有方和多个第二数据拥有方接入模型训练系统时,此时的模型训练系统可以同时利用水平切分的第一数据和垂直切分的第二数据来进行模型训练。下面以模型训练系统包括多个第一数据拥有方以及多个第二数据拥有方为例进行说明。
图1示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的系统的一个示例的分布式架构图。
如图1所示,模型训练系统可以包括多个第一数据拥有方、多个第二数据拥有方、多个从服务器和主服务器,比如,模型训练系统可以包括有n个第一数据拥有方、m个第二数据拥有方、n个从服务器和一个主服务器,其中,n和m均为大于1的正整数,n和m可以相同,也可以不同。
模型训练系统中的多个第一数据拥有方、多个第二数据拥有方以及多个从服务器可以构成多个训练单元,各个训练单元均与主服务器通信连接,从而各个训练单元可以将所训练的模型发送给主服务器,主服务器可以将通过对各个训练单元所训练的模型进行联邦聚合得到的全局模型下发给各个训练单元,以使各个训练单元中的模型进行更新。
每个训练单元可以由一个第一数据拥有方、各个第二数据拥有方以及一个从服务器构成。参与不同训练单元训练的各个第一数据拥有方不同,参与不同训练单元训练的各个从服务器也不同。参与每个训练单元训练的第二数据拥有方有多个,且参与不同训练单元训练的第二数据拥有方相同,即,模型训练系统中的多个第二数据拥有方参与所有训练单元的模型训练。在一个示例中,参与每个训练单元训练的各个第二数据拥有方可以包括所有的第二数据拥有方,还可以包括部分第二数据拥有方。
以图1为例,对于训练单元i,参与该训练单元i训练的各方包括第一数据拥有方Ai、m个第二数据拥有方以及从服务器Si。其中,i为大于0且小于等于n的整数,n和m均为大于1的正整数。
在本说明书实施例中,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第一数据包括至少一个特征。在一个示例中,每个第一数据还可以包括训练样本的标签。
水平切分是按照某个字段的某种规则分散到多个数据表中,每个数据表包括一部分数据。例如,可以按照用户ID进行水平切分,以将不同用户相关的数据切分至不同的数据表中。经过水平切分后的各个第一数据的特征空间相同、样本空间不同。
图2示出了根据本说明书实施例的按照水平切分方式切分的第一数据的一个示例的示意图。如图2所示,按照水平切分方式切分的两个第一数据,每个虚线框表示一个第一数据。经过水平切分的每个第一数据包括标签和一个特征。
在本说明书实施例中,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。垂直切分是根据数据特征所执行的切分,经过垂直切分后的各个第二数据的特征空间不同、样本空间相同。垂直切分可以降低单个数据库或数据表的负载。
图3示出了根据本说明书实施例的按照垂直切分方式切分的第二数据的一个示例的示意图。如图3所示,按照垂直切分方式切分的两个第二数据,每个虚线框表示一个第二数据。经过垂直切分的每个第二数据至少包括一个特征。在一个示例中,每个第二数据也可以包括标签。在第二数据包括标签的情况下,第一数据可以不包括训练样本的标签。下面以第一数据包括标签、第二数据不包括标签为例进行说明。
在本说明书实施例中,用于模型训练的多个第一数据拥有方所拥有的第一数据和多个第二数据拥有方所拥有的第二数据作为训练样本,第一数据经由水平切分得到,第二数据经由垂直切分得到,从而用于模型训练的训练样本可以表示成如图4所示。
图4示出了根据本说明书实施例的由水平切分得到的第一数据和由垂直切分得到的第二数据构成的训练样本的一个示例的示意图。如图4所示,用于模型训练的第一数据拥有方有n个,第二数据拥有方有m个,n和m均为大于1的正整数。第一数据拥有方Ai所拥有的水平切分的第一数据包括标签Yi和特征Xi,第二数据拥有方Bj所拥有的垂直切分的第二数据包括特征Zj,则用于模型训练的训练样本包括n个水平切分的第一数据和m个垂直切分的第二数据。其中,i为大于等于1且小于等于n的整数,j为大于等于1且小于等于m的整数。
在本说明书实施例中,各个第一数据拥有方的第一模型、各个第二数据拥有方的第二模型以及各个从服务器的第三模型均是神经网络模型。各个第一数据拥有方的第一模型可以包括神经网络的前N层,各个第二数据拥有方的第二模型包括神经网络的前N层,N是正整数。每个从服务器具有第三模型,各个第三模型包括神经网络中除前N层以外的剩余层。每个第一模型可以和第三模型构成一个完整的神经网络模型,每个第二模型可以和第三模型构成一个完整的神经网络模型。
在一个示例中,神经网络的前N层包括输入层和隐藏层,则各个第一数据拥有方的第一模型可以包括输入层和隐藏层,各个第二数据拥有方的第二模型包括输入层和隐藏层。各个第一模型的网络结构可以相同,各个第二模型的网络结构也可以相同。各个第三模型包括隐藏层之后的网络层,比如,各个第三模型包括隐藏层之后的输出层。下面以第一模型和第二模型包括输入层和隐藏层、第三模型包括隐藏层之后的网络层为例进行说明。
在一个示例中,第一模型、第二模型以及第三模型可以分别作为独立的模型进行训练,参与同一训练单元训练的第一模型与第三模型之间通信连接,各个第二模型分别与第三模型之间通信连接。第一模型与第三模型可以共同完成前向传播,各个第二模型也可以分别与第三模型共同完成前向传播。即,参与同一训练单元训练的第一模型的输出以及各个第二模型的输出可以发送给第三模型,作为第三模型的输入,以使第三模型对其进行后续处理,并输出处理结果,比如,预测结果。
在另一个示例中,参与同一训练单元训练的第一模型和第三模型可以合并作为用于完成前向传播的一个完整神经网络模型。在该示例中,在参与该训练单元训练时,各个第二模型可以将输出发送个该完整神经网络模型,该完整神经网络模型可以将从各个第二模型接收到的特征信息输入至隐藏层之后的网络层,以利用隐藏层之后的网络层对各个第二模型输出的特征信息进行处理,即,各个第二模型输出的特征信息在完整神经网络模型中从隐藏层之后的网络层开始处理。
在一个示例中,第一模型、第二模型以及第三模型可以分别运行在不同的物理主机上。在另一个示例中,第一模型和第三模型运行在同一物理主机上。在另一个示例中,第三模型可以与任一个第二模型运行在同一物理主机上。
图5示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例500的流程图。
如图5所示,在5100,在各个第二数据拥有方处,可以利用PSI(Private SetIntersection,隐私集合求交)算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据。
在一个示例中,PSI算法可以包括基于同一哈希函数的方式、基于Diffie-Hellman密钥交换的方式以及基于不经意传输的方式等中的至少一种方式。
例如,各个第一数据拥有方所拥有的第一数据包括用户标识,则各个第一数据拥有方可以将各自拥有的第一数据中的用户标识进行哈希计算,以得到对应的第一哈希值。各个第二数据拥有方可以获取到各个第一数据拥有方生成的用户标识对应的第一哈希值,每个第二数据拥有方可以将所拥有的各个第二数据中的用户标识进行哈希计算,以得到对应的第二哈希值,然后,可以将自身计算得到的第二哈希值与来自于各个第一数据拥有方的第一哈希值进行比较,将与第一哈希值相同的第二哈希值所属的第二数据确定为第二特征数据,该第二特征数据与该第一哈希值对应所属的第一数据相交。
在本说明书实施例中,每个第二数据拥有方可以从各自所拥有的第二数据中确定出与各个第一数据相交的第二特征数据,所确定出的第二特征数据包括多个,各个第二特征数据可以是对应第二数据中的子集数据,每个第二特征数据分别与不同的第一数据相交。在一个示例中,所确定出的第二特征数据与第一数据的数量相同,且所确定出的第二特征数据与第一数据一一对应。
图6示出了根据本说明书实施例的经过PSI计算后第一数据与第二特征数据的一个示例的示意图。如图6所示,有n个第一数据拥有方,则相应的有n种类型的第一数据,则针对每个第二数据拥有方,可以将其拥有的第二数据经过与第一数据相交计算后,可以确定出与n种类型的第一数据分别相交的n个第二特征数据。在图6所示的图中,各个第二特征数据与所属同一行的第一数据相交。比如,第二数据拥有方B1中确定出n个第二特征数据为:Z11、Z12、…、Z1n,其中,第二特征数据Z11与第一数据拥有方A1的第一数据(即,包括标签Y1和特征X1)相交,第二特征数据Z12与第一数据拥有方A2的第一数据(即,包括标签Y2和特征X2)相交,第二特征数据Z1n与第一数据拥有方An的第一数据(即,包括标签Yn和特征Xn)相交。
在5200,将每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定为一个训练单元。
以图6为例,在图6所示的第一数据以及第二特征数据中,由于各个第二特征数据与所属同一行的第一数据相交,即,对于同一行的第一数据和各个第二特征数据,该第一数据分别与该各个第二特征数据相交,则可以将属于同一行的第一数据和各个第二特征数据确定为一个训练单元。
在模型训练过程中,可以以每个训练单元为单位进行训练,各个训练单元之间的训练相互独立,如图1所示。每个训练单元使用一个第一数据拥有方的第一数据,即,参与每个训练单元训练的第一数据拥有方仅有一个,从而训练单元的数量与第一数据拥有方的数量相同。
各个第二数据拥有方均参与所有训练单元的训练,针对不同的训练单元,各个第二数据拥有方所使用的第二特征数据不同。各个第二数据拥有方针对每个训练单元所使用的第二特征数据是与该训练单元中使用的第一数据相交的第二特征数据。以图6为例,图6所示的第一行是训练单元1,则第二数据拥有方B1的第二特征数据Z11用于该训练单元1的训练,第二行是训练单元2,第二数据拥有方B1的第二特征数据Z12用于该训练单元2的训练。
在5300,针对每个训练单元,利用该训练单元中的至少部分第一数据作为第一训练样本以及各个第二数据拥有方所拥有的与第一训练样本相交的第二特征数据作为第二训练样本,对参与该训练单元训练的第一数据拥有方的第一模型、各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行训练。
在本说明书实施例中,每个训练单元都可以按照5300的方式来执行操作,下面以一个训练单元为例进行说明。
本说明书实施例提供的模型训练过程可以由多个主循环过程构成,每个主循环过程完成时判断是否满足第一循环结束条件,若满足,则结束模型训练;若不满足,则继续下一个主循环过程。在每个主循环过程中,各个训练单元都参与其中。
在每个训练单元中,包括参与该训练单元训练的第一数据和各个第二特征数据。在每个主循环过程中,针对每个训练单元,可以从该训练单元中的第一数据中选取至少部分第一数据作为第一训练样本。然后,从各个第二数据拥有方所拥有的第二特征数据中确定出与该第一训练样本相交的第二特征数据,并将所确定出的第二特征数据作为第二训练样本。其中,作为第二训练样本的第二特征数据是参与该训练单元训练的所有第二训练样本中的部分第二特征数据。
在一个示例中,所选取的作为第一训练样本的第一数据可以是参与该训练单元训练的全部第一数据,还可以是参与该训练单元训练的部分第一数据。
当选取部分第一数据作为第一训练样本时,在一个示例中,所选取的部分第一数据可以包括之前已作为第一训练样本进行训练的第一数据以及未作为第一训练样本进行训练的第一数据。在该示例中,可以从参与训练单元训练的所有第一数据中选取部分第一数据作为第一训练样本,选取的方式可以是随机选取。
在另一个示例中,所选取的部分第一数据可以仅包括未使用的第一数据。未使用的第一数据是未作为训练样本使用在模型训练中的第一数据,而已经作为训练样本使用在模型训练中的第一数据是已使用的第一数据,在该示例中,已使用的第一数据不会再被用于模型训练。在该示例的一种选取方式中,可以从未使用的第一数据中选取部分第一数据作为第一训练样本。
在每个训练单元中,利用参与该训练单元训练的第一训练样本和第二训练样本,可以对参与该训练单元训练的第一数据拥有方的第一模型、各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行训练,以得到该轮主循环过程中所训练的第一模型、第二模型以及第三模型。
图7示出了根据本说明书实施例的每个训练单元进行模型训练的一个示例700的流程图。
如图7所示,在5310,在参与该训练单元训练的第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本,以及在各个第二数据拥有方所拥有的第二特征数据中选取与该第一训练样本相交的第二特征数据作为当前子循环过程的第二训练样本。
在该示例中,在每个主循环过程中,每个训练单元可以执行多次子循环。每个训练单元可以在执行多次子循环过程后,跳出该子循环过程继续执行图5所示的主循环过程。在图5所示的一个主循环过程中,各个训练单元所执行的子循环过程的次数相同,各个训练单元所执行的子循环过程的次数可以指定。
对于每个训练单元,可以将第二循环结束条件作为子循环过程的循环条件,在每轮子循环过程中判断是否满足第二循环结束条件,若不满足,则继续下一次子循环过程;若满足,则跳出子循环过程,继续执行图5所示的主循环过程。
在图7所示的每个子循环过程中,针对每个训练单元,可以在参与该训练单元训练的第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本。在一个示例中,至少部分第一数据可以是一个batch的第一数据,一个batch的数量可以指定。每个子循环过程中可以使用相同数量的第一数据作为第一训练样本。此外,在各个第二数据拥有方所拥有的第二特征数据中选取与该第一训练样本相交的第二特征数据作为当前子循环过程的第二训练样本。当所选取的作为第一训练样本的第一数据是未使用的第一数据,则作为当前子循环过程的第二训练样本的第二特征数据也是未使用的第二特征数据。
在每个子循环过程中所使用的第一训练样本和第二训练样本可以不同。在一个示例中,在每个子循环过程中,所使用的第一训练样本与之前轮次循环过程所使用的第一训练样本可以存在相同的第一数据,所使用的第二训练样本与之前轮次循环过程所使用的第二训练样本可以存在相同的第二数据。
在5320,将该训练单元中的第一训练样本以及各个第二数据拥有方的第二训练样本分别输入至所属的数据拥有方所具有的模型中,以得到各个模型输出的特征信息。
在一个示例中,拥有第一训练样本的第一数据拥有方可以将该第一训练样本输入至该第一数据拥有方的第一模型,第一模型中包括的神经网络的前N层以前向传播方式对输入的第一训练样本进行处理,并输出该第一训练样本对应的第一特征信息。相应地,针对参与该训练单元训练的每个第二数据拥有方,该第二数据拥有方可以将所拥有的第二训练样本输入至该第二数据拥有方的第二模型,第二模型中包括的神经网络的前N层以前向传播方式对输入的第二训练样本进行处理,并输出该第二训练样本对应的第二特征信息。
在5330,在参与该训练单元训练的各个数据拥有方处,将所得到的特征信息经过加密后发送给参与该训练单元训练的从服务器。
在一个示例中,加密的方式可以包括差分隐私加密、秘密共享、同态加密等至少一种方式。不同的数据拥有方可以采用不同的加密方式,也可以采用相同的加密方式。对于不同数据拥有方处的特征信息,可以由生成该特征信息的数据拥有方执行加密操作。
各个数据拥有方将各自加密的特征信息发送给参与该训练单元训练的从服务器后,该从服务器可以获得来自于各个数据拥有方的特征信息。
在5340,基于参与该训练单元训练的从服务器的第三模型以及从各个数据拥有方接收到的特征信息,计算出针对该训练单元的模型梯度。
图8示出了根据本说明书实施例的计算模型梯度的一个示例800的流程图。
如图8所示,在5341,在参与训练单元训练的从服务器处,可以将从各个数据拥有方接收到的特征信息进行融合,得到融合特征信息。
在该示例中,融合的方式可以包括求和、均值池化(mean-pooling)、最大池化(max-pooling)等方式中的至少一种。
在5343,在从服务器处,利用所具有的第三模型对融合特征信息进行预测,得到预测结果。
第三模型具有神经网络的前N层之后的网络层,从服务器将融合特征信息输入给第三模型,第三模型对融合特征信息进行前向传播,以对融合特征信息进行预测,输出预测结果。从服务器可以将预测结果发送给参与同一训练单元训练的具有标签的数据拥有方。
在5345,在参与训练单元训练且具有标签的数据拥有方处,基于参与该轮训练的第一训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值。
在参与训练单元训练且具有标签的数据拥有方处,具有所拥有的数据所对应的标签,从而可以从所具有的标签中选取参与该轮训练的作为训练样本的数据对应的标签,所选取的标签用于评估预测结果的准确度。在一个示例中,在每个训练单元中,具有标签的数据拥有方是第一数据拥有方。具有所拥有的各个第一数据的标签,从而可以从所具有的标签中选取参与该轮训练的作为第一训练样本的第一数据的标签,所选取的标签用于评估预测结果的准确度。
所使用的损失函数可以包括绝对值损失函数、log对数损失函数、平均损失函数、指数损失函数、交叉熵损失函数等中的任一种损失函数。计算得到的损失值用于表示当前轮次训练的预测结果与对应标签之间的差距,差距越大表示当前模型的预测效果越差,差距越小表示当前模型的预测效果越好。
具有标签的数据拥有方在计算出损失值后,可以将损失值发送给参与同一训练单元训练的从服务器。
在5347,在从服务器处,根据从数据拥有方接收到的损失值可以计算模型梯度。
从服务器利用损失值以向后传播的方式计算模型梯度,在一个示例中,从服务器可以使用链式法则计算模型梯度。
所计算出的模型梯度可以包括第一模型中各个参数对应的参数调整量、各个第二模型中各个参数对应的参数调整量以及第三模型中各个参数对应的参数调整量。
在5349,将模型梯度发送给参与该训练单元训练的第一数据拥有方以及各个第二数据拥有方。
在计算模型梯度的另一个示例中,可以在参与该训练单元训练的从服务器处,基于该从服务器的第三模型以及从各个数据拥有方接收到的特征信息,计算模型梯度。
在该示例中,从服务器可以从参与训练单元训练的第一数据拥有方处获取参与该轮训练的第一训练样本的标签。从而,从服务器的第三模型在输出预测结果后,可以基于本地存储的第一训练样本的标签以及预测结果,使用损失函数计算损失值。然后,再根据损失值计算模型梯度。
在该示例中,在从服务器获取第一训练样本的标签的一种方式中,第一数据拥有方在选取第一训练样本时,将该第一训练样本对应的标签发送给从服务器。在另一种方式中,从服务器在使用损失函数计算损失值之前,向第一数据拥有方请求第一训练样本对应的标签。
回到图7,在5350,在参与该训练单元训练的各个数据拥有方以及从服务器处,根据模型梯度分别对各自具有的模型进行更新。
在一个示例中,在从服务器处,利用模型梯度中第三模型的参数调整量对第三模型中的模型参数进行更新,以得到更新后的第三模型。在第一数据拥有方处,利用模型梯度中第一模型的参数调整量对第一模型中的模型参数进行更新,以得到更新后的第一模型。在各个第二数据拥有方处,利用模型梯度中第二模型的参数调整量对第二模型中的模型参数进行更新,以得到更新后的第二模型。
在对参与训练单元训练的第一模型、各个第二模型以及第三模型进行模型更新后,完成当前子循环过程。
在5360,判断是否满足第二循环结束条件。如果满足,则执行5370的操作。如果不满足,则返回执行5310的操作,即进入下一次子循环过程。
第二循环结束条件可以包括以下条件中的至少一种:子循环迭代次数达到第一指定数量阈值、子循环迭代总时长达到指定时长等。
在5370,将更新的第一模型和/或第三模型发送给主服务器。
从服务器可以获取到本地更新的第三模型,还可以从第一数据拥有方获取到更新后的第一模型。从而,从服务器可以将更新的第一模型和/或第三模型发送给主服务器,以实现对参与不同训练单元训练的各个第一数据拥有方的第一模型进行联邦学习,以及实现对参与不同训练单元训练的各个从服务器的第三模型进行联邦学习。
各个训练单元发送给主服务器的模型类型相同。当训练单元仅发送第一模型给主服务器时,则其他各个训练单元也仅将训练得到的第一模型发送给主服务器,从而主服务器后续仅针对第一模型进行联邦聚合;当训练单元仅发送第三模型给主服务器时,则其他各个训练单元也仅将训练得到的第三模型发送给主服务器,从而主服务器后续仅针对第三模型进行联邦聚合;当训练单元发送第一模型和第三模型给主服务器时,则其他各个训练单元也将训练得到的第一模型和第三模型发送给主服务器,从而主服务器后续分别针对第一模型和第三模型进行联邦聚合。
此外,各个第二数据拥有方均参与所有训练单元的训练,由此,各个第二数据拥有方的第二模型的模型参数可以在各个训练单元之间共享,从而实现利用垂直切分的第二数据进行联合模型训练。
回到图5,各个训练单元均将所训练第一模型和/或第三模型发送给主服务器,然后,在5400,在主服务器处,对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型。
在本说明书实施例中,对模型进行联邦聚合是对同一类型的模型中的同一类型参数进行聚合计算,以得到针对该类型参数的聚合值,该聚合值可以在作为对应全局模型中的该类型参数的值。联邦聚合的方式可以包括参数求和、参数的均值池化、参数的最大池化等方式中的至少一种。
第一全局模型可以由各个训练单元所训练出的第一模型经过联邦聚合得到,从而第一全局模型包括有各个第一模型所针对的特征空间。第三全局模型由各个训练单元所训练出的第三模型经过联邦聚合得到,从而第三全局模型包括有各个第三模型所针对的特征空间。
在一个示例中,向主服务器发送待进行联邦聚合的第一模型和/或第三模型的训练单元可以包括参与模型训练的所有训练单元,还可以仅包括参与模型训练的部分训练单元。
在一个示例中,主服务器可以采用同步方式执行联邦聚合,即,主服务器在接收到参与联邦聚合的所有训练单元发送的模型后,再对所接收到的模型进行联邦聚合。在另一个示例中,主服务器可以采用异步方式执行联邦聚合,即,主服务器可以在接收到参与联邦聚合的部分训练单元发送的模型后,便可以先对所接收到的部分模型进行联邦聚合。后续再接收到其他训练单元发送的模型后,再针对后续接收到的部分模型进行联邦聚合。
在一个示例中,当各个第一数据拥有方所拥有的第一数据的数据分布均匀时,在主服务器处,对从各个训练单元获取的经过训练的第一模型和第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和针对第三模型的第三全局模型。其中,数据分布均匀可以包括数据特征分布均匀以及标签分布均匀。
针对数据特征分布均匀,数据分布均匀是各个第一数据拥有方所拥有的第一数据包括的特征大部分相同或全部相同,在一个示例中,特征大部分相同的判断方式可以是根据各个第一数据拥有方所拥有的第一数据中的相同特征所占的比例来确定,该比例可以用第一数据中的相同特征除以该第一数据中的所有特征得到,当比例超过指定比例阈值时,可以认为数据特征分布均匀,否则认为数据特征分布不均匀。此处的相同特征是各个第一数据拥有方所拥有的第一数据之间所具有的相同的特征。例如,指定比例阈值是50%,当各个第一数据拥有方所拥有的第一数据中的相同特征占所有特征的比例超过50%时,可以认为各个第一数据拥有方之间的数据特征分布均匀。
针对标签分布均匀,标签分布均匀是各个第一数据拥有方所拥有的标签大部分相同或者全部相同,相应地,各个第一数据拥有方所拥有的标签完全不同或者仅小部分相同,则可以认为标签分布不均匀。比如,第一数据拥有方A1所拥有的标签均是金融欺诈的标签,而第一数据拥有方A2所拥有的标签中仅包括一小部分的金融欺诈标签,还包括其他标签。则可以认为第一数据拥有方A1和A2的标签分布不均匀。
针对标签分布的一个示例中,标签大部分相同的判断方式可以是根据各个第一数据拥有方所拥有的标签中的相同特征所占的比例来确定,该比例可以用相同标签的数量除以所拥有的所有标签得到,当比例超过指定比例阈值时,可以认为标签分布均匀,否则认为标签分布不均匀。
在另一个示例中,当各个第一数据拥有方所拥有的第一数据的数据分布不均匀时,在主服务器处,对从各个训练单元获取的经过训练的第一模型或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型或针对第三模型的第三全局模型。
联邦聚合所更新的模型可以根据应用场景来确定,不同应用场景可以使用有针对性地通过联邦聚合的方式更新不同的模型。例如,在CNN的应用场景下,当各个第一数据拥有方所拥有的第一数据的数据分布不均匀时,在主服务器处,对从各个训练单元获取的经过训练的第一模型进行联邦聚合,以得到针对第一模型的第一全局模型。在GNN的应用场景下,当各个第一数据拥有方所拥有的第一数据的数据分布不均匀时,在主服务器处,对从各个训练单元获取的经过训练的第三模型进行联邦聚合,以得到针对第三模型的第三全局模型。
通过将来自于各个训练单元的训练模型进行联邦聚合,可以实现利用各个第一数据拥有方所拥有的第一数据进行联合学习,从而实现在确保各方数据隐私安全的情况下,能够利用更多的训练样本进行模型训练,进而提高模型的训练效果。
在主服务器得到第一全局模型后,可以将该第一全局模型下发给各个训练单元中的第一数据拥有方。在主服务器得到第三全局模型后,可以将该第三全局模型下发给各个训练单元中的从服务器。
在5500,在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新
具体地,当各个第一数据拥有方从主服务器接收到第一全局模型时,可以根据第一全局模型对各自所具有的第一模型进行更新。当各个从服务器接收到来自主服务器的第三全局模型时,可以根据第三全局模型对各自所具有的第三模型进行更新。
在5600,判断是否满足第一循环结束条件。如果满足,则结束模型训练。如果不满足,则返回执行5300的操作。
第一循环结束条件可以包括以下条件中的至少一种:主循环的次数达到第二指定数量阈值、主循环迭代总时长达到指定时长、相邻两次主循环的模型参数更新差值小于第一指定阈值、连续指定次数的多个主循环中的模型参数的变化率小于第二指定阈值等。
图9示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例900的一个流程图。
在图9所示的示例中,多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。图9所示的方法可以由第一数据拥有方来执行。
如图9所示,在9100,将所拥有的第一数据提供给各个第二数据拥有方,以使各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据。
在9200,确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定。
在9300,在该训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与该第一训练样本相交的第二特征数据作为第二训练样本,对第一数据拥有方的第一模型进行协同训练,其中,各个第二数据拥有方的第二模型以及参与训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及各个第二数据拥有方的第二模型包括神经网络模型的前N层,第三模型包括神经网络模型的除前N层以外的剩余层。
在一个示例中,在各个训练单元中,执行下述子循环过程,直至满足第二循环结束条件:在所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本;将第一训练样本输入至第一数据拥有方的第一模型中,以得到该第一模型输出的特征信息;将所得到的特征信息经过加密后发送给参与该训练单元训练的从服务器,以使从服务器根据第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息来计算模型梯度,其中,各个第二数据拥有方的第二训练样本是在该第二数据拥有方所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据得到的;以及根据模型梯度对所具有的第一模型进行更新。
在一个示例中,将所得到的特征信息经过加密后发送给参与训练单元训练的从服务器,以使从服务器将第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息进行融合,得到融合特征信息,并利用所具有的第三模型对融合特征信息进行预测,以得到预测结果;以及基于参与该轮训练的第一训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值,以使从服务器根据损失值以及各个第二数据拥有方发送的损失值计算模型梯度。
在9400,将经过训练的第一模型发送给主服务器,以使主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者第一全局模型以及针对第三模型的第三全局模型。
在9500,根据从主服务器接收的第一全局模型对所具有的第一模型进行更新。
在9600,判断是否满足第一循环结束条件。若满足,则结束模型训练;若不满足,则返回执行9300的操作。
图10示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的方法的一个示例1000的一个流程图。
在图10所示的示例中,多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。图10所示的方法可以由第二数据拥有方来执行。
如图10所示,在1010,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
在1020,确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
在1030,在该训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合第一训练样本以及其他各个第二数据拥有方的第二特征数据,对第二数据拥有方的第二模型进行协同训练,其中,第一训练样本由训练单元中的至少部分第一数据确定,参与训练单元训练的第一数据拥有方的第一模型、其他各个第二数据拥有方的第二模型以及参与训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及各个第二数据拥有方的第二模型包括神经网络模型的前N层,第三模型包括神经网络模型的除前N层以外的剩余层;
其中,当训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新。
在1040,判断是否满足第一循环结束条件。若满足,则结束模型训练;若不满足,则返回执行1030的操作。
在一个示例中,在训练单元中,执行下述子循环过程,直至满足第二循环结束条件:在第二数据拥有方所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据作为第二训练样本,其中,第一训练样本由从参与训练单元训练的第一数据拥有方所拥有的第一数据中选取的至少部分第一数据所确定;将第二训练样本输入至第二数据拥有方的第二模型中,以得到该第二模型输出的特征信息;将所得到的特征信息经过加密后发送给参与训练单元训练的从服务器,以使从服务器根据所具有的第三模型以及从各个数据拥有方接收到的特征信息计算模型梯度;以及根据模型梯度对所具有的第二模型进行更新。
图11示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的装置(以下称为模型训练装置1100)的一个示例的一个方框图。
在图11所示的示例中,多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。模型训练装置1100可以应用于第一数据拥有方。
如图11所示,模型训练装置1100包括:数据提供模块1110、训练单元确定模块1120、协同训练模块1130、模型发送模块1140和模型更新模块1150。
数据提供模块1110,可以被配置为将所拥有的第一数据提供给各个第二数据拥有方,以使各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据。
训练单元确定模块1120,可以被配置为确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定。
协同训练模块1130,可以被配置为在各个训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与第一训练样本相交的第二特征数据作为第二训练样本,对第一数据拥有方的第一模型进行协同训练,其中,各个第二数据拥有方的第二模型以及参与训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及各个第二数据拥有方的第二模型包括神经网络模型的前N层,第三模型包括神经网络模型的除前N层以外的剩余层。
在一个示例中,协同训练模块1130还可以被配置为:在各个训练单元中,执行下述子循环过程,直至满足第二循环结束条件:在所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本;将第一训练样本输入至第一数据拥有方的第一模型中,以得到该第一模型输出的特征信息;将所得到的特征信息经过加密后发送给参与训练单元训练的从服务器,以使从服务器根据第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息来计算模型梯度,其中,各个第二数据拥有方的第二训练样本是在该第二数据拥有方所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据得到的;以及根据模型梯度对所具有的第一模型进行更新。
在一个示例中,协同训练模块1130还可以被配置为:将所得到的特征信息经过加密后发送给参与训练单元训练的从服务器,以使从服务器将第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息进行融合,得到融合特征信息,并利用所具有的第三模型对融合特征信息进行预测,以得到预测结果;以及基于参与该轮训练的第一训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值,以使从服务器根据损失值以及各个第二数据拥有方发送的损失值计算模型梯度。
模型发送模块1140,可以被配置为将经过训练的第一模型发送给主服务器,以使主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者第一全局模型以及针对第三模型的第三全局模型。
模型更新模块1150,可以被配置为根据从主服务器接收的第一全局模型对所具有的第一模型进行更新。
其中,协同训练模块1130、模型发送模块1140以及模型更新模块1150循环执行,直至满足第一循环结束条件。
图12示出了根据本说明书实施例的用于经由多个数据拥有方训练模型的装置(以下称为模型训练装置1200)的一个示例的一个方框图。
在图12所示的示例中,多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。模型训练装置1200可以应用于第二数据拥有方。
如图12所示,模型训练装置1200包括:特征数据确定模块1210、训练单元确定模块1220和协同训练模块1230。
特征数据确定模块1210,可以被配置为利用PSI算法根据各个第一数据拥有方所拥有的第一数据从第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据。
训练单元确定模块1220,可以被配置为确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定。
协同训练模块1230,可以被配置为在各个训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合第一训练样本以及其他各个第二数据拥有方的第二特征数据,对第二数据拥有方的第二模型进行协同训练,其中,第一训练样本由训练单元中的至少部分第一数据确定,参与训练单元训练的第一数据拥有方的第一模型、其他各个第二数据拥有方的第二模型以及参与训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及各个第二数据拥有方的第二模型包括神经网络模型的前N层,第三模型包括神经网络模型的除前N层以外的剩余层。
其中,当训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新。
其中,协同训练模块1230循环执行,直至满足第一循环结束条件。
在一个示例中,协同训练模块1230还可以被配置为:在各个训练单元中,执行下述子循环过程,直至满足第二循环结束条件:在第二数据拥有方所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据作为第二训练样本,其中,第一训练样本由从参与训练单元训练的第一数据拥有方所拥有的第一数据中选取的至少部分第一数据所确定;将第二训练样本输入至第二数据拥有方的第二模型中,以得到该第二模型输出的特征信息;将所得到的特征信息经过加密后发送给参与训练单元训练的从服务器,以使从服务器根据所具有的第三模型以及从各个数据拥有方接收到的特征信息计算模型梯度;以及根据模型梯度对所具有的第二模型进行更新。
本说明书实施例还提供的一种用于经由多个数据拥有方训练模型的系统(以下称为模型训练系统),模型训练系统包括第一数据拥有方、第二数据拥有方、从服务器和主服务器,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据。
以图1为例,多个第一数据拥有方、多个第二数据拥有方、多个从服务器和一个主服务器所构成的模型训练系统的架构如图1所示。
各个第二数据拥有方,可以被配置为利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据。
各个第一数据拥有方,可以被配置为确定所属的训练单元。
各个第二数据拥有方,可以被配置为确定所拥有的各个第二特征数据所属的训练单元,其中,每个训练单元由每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定。
针对每个训练单元,参与该训练单元训练的第一数据拥有方,从该第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为第一训练样本。各个第二数据拥有方,可以被配置为选取各自所拥有的与第一训练样本相交的第二特征数据作为第二训练样本。参与该训练单元训练的第一数据拥有方和从服务器、以及各个第二数据拥有方,可以被配置为利用第一训练样本和第二训练样本,对该第一数据拥有方的第一模型、各个第二数据拥有方的第二模型以及该从服务器的第三模型进行协同训练,其中,第一模型和第二模型包括神经网络模型的前N层,第三模型包括神经网络模型的除前N层以外的剩余层。其中,参与同一训练单元训练的第一数据拥有方、各个第二数据拥有方、从服务器执行子循环过程,直至满足第二循环结束条件。
主服务器,可以被配置为在每一轮主循环过程中对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;
各个第一数据拥有方,可以被配置为在每一轮主循环过程中根据第一全局模型对第一模型进行更新;和/或,各个从服务器,在每一轮主循环过程中根据第三全局模型对第三模型进行更新。
在一个示例中,针对每个训练单元,参与该训练单元训练的第一数据拥有方,被配置为在所拥有的未使用的第一数据中选取部分第一数据作为当前子循环过程的第一训练样本。各个第二数据拥有方,被配置为在所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据作为当前子循环过程的第二训练样本。
第一数据拥有方,被配置为将第一训练样本输入至所具有的第一模型中,以得到第一模型输出的特征信息,再将所得到的特征信息经过加密后发送给参与该训练单元训练的从服务器。各个第二数据拥有方,被配置为将所拥有的第二训练样本输入至所具有的第二模型中,以得到第二模型输出的特征信息,再将所得到的特征信息经过加密后发送给参与该训练单元训练的从服务器。
参与该训练单元训练的从服务器,被配置为基于该从服务器的第三模型以及从各个数据拥有方接收到的特征信息,计算出针对该训练单元的模型梯度。
参与该训练单元训练的第一数据拥有方,被配置为根据模型梯度对第一模型进行更新。各个第二数据拥有方,被配置为根据模型梯度对所具有的第二模型进行更新。参与该训练单元训练的从服务器,被配置为根据模型梯度对第三模型进行更新。
在一个示例中,参与训练单元训练的从服务器,被配置为将从各个数据拥有方接收到的特征信息进行融合,得到融合特征信息;以及利用所具有的第三模型对融合特征信息进行预测,得到预测结果。
参与训练单元训练的第一数据拥有方,被配置为基于参与该轮训练的第一训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值。
从服务器,被配置为根据从该第一数据拥有方接收到的损失值计算模型梯度,以及将模型梯度发送给该第一数据拥有方以及各个第二数据拥有方。
以上参照图1到图12,对根据本说明书实施例的用于经由多个数据拥有方训练模型的方法及装置的实施例进行了描述。
本说明书实施例的用于经由多个数据拥有方训练模型的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,用于经由多个数据拥有方训练模型的装置例如可以利用电子设备实现。
图13示出了本说明书实施例的用于实现经由多个数据拥有方训练模型的方法的电子设备1300的方框图。
如图13所示,电子设备1300可以包括至少一个处理器1310、存储器(例如,非易失性存储器)1320、内存1330和通信接口1340,并且至少一个处理器1310、存储器1320、内存1330和通信接口1340经由总线1350连接在一起。至少一个处理器1310执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1310:将所拥有的第一数据提供给各个第二数据拥有方,以使各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;执行下述主循环过程,直至满足第一循环结束条件:在训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与第一训练样本相交的第二特征数据作为第二训练样本,对第一数据拥有方的第一模型进行协同训练;将经过训练的第一模型发送给主服务器,以使主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者第一全局模型以及针对第三模型的第三全局模型;以及根据从主服务器接收的第一全局模型对所具有的第一模型进行更新。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本说明书的各个实施例中以上结合图1-12描述的各种操作和功能。
图14示出了本说明书实施例的用于实现经由多个数据拥有方训练模型的方法的电子设备1400的方框图。
如图14所示,电子设备1400可以包括至少一个处理器1410、存储器(例如,非易失性存储器)1420、内存1430和通信接口1440,并且至少一个处理器1410、存储器1420、内存1430和通信接口1440经由总线1450连接在一起。至少一个处理器1410执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1410:利用PSI算法根据各个第一数据拥有方所拥有的第一数据从第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;执行下述主循环过程,直至满足第一循环结束条件:在各个训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合第一训练样本以及其他各个第二数据拥有方的第二特征数据,对第二数据拥有方的第二模型进行协同训练,其中,第一训练样本由训练单元中的至少部分第一数据确定,参与训练单元训练的第一数据拥有方的第一模型、其他各个第二数据拥有方的第二模型以及参与训练单元训练的从服务器的第三模型在该协同训练中被训练;其中,当训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据第一全局模型对第一模型进行更新和/或根据第三全局模型对第三模型进行更新。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1410进行本说明书的各个实施例中以上结合图1-12描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-12描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
本说明书各部分操作所需的计算机程序代码可以用任意一种或多种程序语言编写,包括面向对象编程语言,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET以及Python等,常规程序化编程语言如C语言、Visual Basic 2003、Perl、COBOL2002、PHP以及ABAP,动态编程语言如Python、Ruby和Groovy,或者其他编程语言等。该程序编码可以在用户计算机上运行,或者作为独立的软件包在用户计算机上运行,或者部分在用户计算机上运行另一部分在远程计算机运行,或者全部在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或者在云计算环境中,或者作为服务使用,比如软件即服务(SaaS)。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书的实施例的可选实施方式,但是,本说明书的实施例并不限于上述实施方式中的具体细节,在本说明书的实施例的技术构思范围内,可以对本说明书的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书的实施例的保护范围。
本说明书内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书内容。对于本领域普通技术人员来说,对本说明书内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (18)
1.一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,
所述方法包括:
在各个第二数据拥有方处,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
将每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定为一个训练单元;
执行下述主循环过程,直至满足第一循环结束条件:
针对每个训练单元,利用该训练单元中的至少部分第一数据作为第一训练样本以及各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对参与该训练单元训练的第一数据拥有方的第一模型、所述各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行协同训练,其中,所述第一模型和所述第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;
在主服务器处,对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;以及
在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新。
2.如权利要求1所述的方法,其中,针对每个训练单元,利用该训练单元中的至少部分第一数据作为第一训练样本以及各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对参与该训练单元训练的第一数据拥有方的第一模型、所述各个第二数据拥有方的第二模型以及参与该训练单元训练的从服务器的第三模型进行训练包括:
针对每个训练单元,执行下述子循环过程,直至满足第二循环结束条件:
在参与该训练单元训练的第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本,以及在各个第二数据拥有方所拥有的第二特征数据中选取与所述第一训练样本相交的第二特征数据作为当前子循环过程的第二训练样本;
将该训练单元中的第一训练样本以及各个第二数据拥有方的第二训练样本分别输入至所属的数据拥有方的模型中,以得到各个模型输出的特征信息;
在参与该训练单元训练的各个数据拥有方处,将所得到的特征信息经过加密后发送给参与该训练单元训练的从服务器;
基于该从服务器的第三模型以及从所述各个数据拥有方接收到的特征信息,计算出针对该训练单元的模型梯度;以及
在参与该训练单元训练的各个数据拥有方以及从服务器处,根据所述模型梯度分别对各自的模型进行更新。
3.如权利要求2所述的方法,其中,基于该从服务器的第三模型以及从所述各个数据拥有方接收到的特征信息,计算出针对该训练单元的模型梯度包括:
在参与训练单元训练的从服务器处,将从所述各个数据拥有方接收到的特征信息进行融合,得到融合特征信息;以及利用所具有的第三模型对所述融合特征信息进行预测,得到预测结果;
在参与训练单元训练的且具有标签的数据拥有方处,基于参与该轮训练的训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值;以及
在从服务器处,根据从该数据拥有方接收到的所述损失值计算模型梯度,以及将所述模型梯度发送给该第一数据拥有方以及所述各个第二数据拥有方。
4.如权利要求2所述的方法,其中,参与同一训练单元训练的第一模型和第三模型合并作为用于完成前向传播的一个完整模型。
5.如权利要求1所述的方法,其中,在主服务器处,对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型包括:
当各个第一数据拥有方所拥有的第一数据的数据分布均匀时,在主服务器处,对从各个训练单元获取的经过训练的第一模型和第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和针对第三模型的第三全局模型;
当各个第一数据拥有方所拥有的第一数据的数据分布不均匀时,在主服务器处,对从各个训练单元获取的经过训练的第一模型或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型或针对第三模型的第三全局模型。
6.如权利要求1所述的方法,其中,所述PSI算法包括基于同一哈希函数的方式、基于Diffie-Hellman密钥交换的方式以及基于不经意传输的方式中的至少一种方式。
7.如权利要求1所述的方法,其中,所述前N层包括输入层和隐藏层,所述剩余层包括所述隐藏层之后的输入层。
8.一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述方法由第一数据拥有方来执行,
所述方法包括:
将所拥有的第一数据提供给各个第二数据拥有方,以使所述各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
执行下述主循环过程,直至满足第一循环结束条件:
在所述训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对所述第一数据拥有方的第一模型进行协同训练,其中,所述各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;
将经过训练的第一模型发送给主服务器,以使所述主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者所述第一全局模型以及针对第三模型的第三全局模型;以及
根据从所述主服务器接收的所述第一全局模型对所具有的第一模型进行更新。
9.如权利要求8所述的方法,其中,在所述训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对所述第一数据拥有方的第一模型进行协同训练包括:
在所述训练单元中,执行下述子循环过程,直至满足第二循环结束条件:
在所拥有的第一数据中选取至少部分第一数据作为当前子循环过程的第一训练样本;
将所述第一训练样本输入至所述第一数据拥有方的第一模型中,以得到该第一模型输出的特征信息;
将所得到的特征信息经过加密后发送给参与所述训练单元训练的从服务器,以使所述从服务器根据所述第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息来计算模型梯度,其中,各个第二数据拥有方的第二训练样本是在该第二数据拥有方所拥有的第二特征数据中选取与所述第一训练样本相交的第二特征数据得到的;以及
根据所述模型梯度对所具有的第一模型进行更新。
10.如权利要求9所述的方法,其中,将所得到的特征信息经过加密后发送给参与所述训练单元训练的从服务器,以使所述从服务器根据所述第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息来计算模型梯度包括:
将所得到的特征信息经过加密后发送给参与所述训练单元训练的从服务器,以使所述从服务器将所述第一数据拥有方输出的特征信息以及各个第二数据拥有方的第二模型基于输入的第二训练样本得到的特征信息进行融合,得到融合特征信息,并利用所具有的第三模型对所述融合特征信息进行预测,以得到预测结果;以及
基于参与该轮训练的训练样本的标签以及来自于从服务器的预测结果,利用损失函数计算损失值,以使所述从服务器根据所述损失值以及所述各个第二数据拥有方发送的损失值计算模型梯度。
11.一种用于经由多个数据拥有方训练模型的方法,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述方法由第二数据拥有方来执行,
所述方法包括:
利用PSI算法根据各个第一数据拥有方所拥有的第一数据从所述第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
执行下述主循环过程,直至满足第一循环结束条件:
在所述训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合所述第一训练样本以及其他各个第二数据拥有方的第二特征数据,对所述第二数据拥有方的第二模型进行协同训练,其中,所述第一训练样本由所述训练单元中的至少部分第一数据确定,参与所述训练单元训练的第一数据拥有方的第一模型、所述其他各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;
其中,当所述训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新。
12.如权利要求11所述的方法,其中,在所述训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合所述第一训练样本以及其他各个第二数据拥有方的第二特征数据,对所述第二数据拥有方的第二模型进行协同训练包括:
在所述训练单元中,执行下述子循环过程,直至满足第二循环结束条件:
在所述第二数据拥有方所拥有的第二特征数据中选取与第一训练样本相交的第二特征数据作为第二训练样本,其中,所述第一训练样本由从参与所述训练单元训练的第一数据拥有方所拥有的第一数据中选取的至少部分第一数据所确定;
将所述第二训练样本输入至所述第二数据拥有方的第二模型中,以得到该第二模型输出的特征信息;
将所得到的特征信息经过加密后发送给参与所述训练单元训练的从服务器,以使所述从服务器根据所具有的第三模型以及从各个数据拥有方接收到的特征信息计算模型梯度;以及
根据所述模型梯度对所具有的第二模型进行更新。
13.一种用于经由多个数据拥有方训练模型的装置,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述装置应用于第一数据拥有方,
所述装置包括:
数据提供模块,将所拥有的第一数据提供给各个第二数据拥有方,以使所述各个第二数据拥有方利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
训练单元确定模块,确定所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
协同训练模块,在所述训练单元中,利用所拥有的至少部分第一数据作为第一训练样本并联合各个第二数据拥有方所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,对所述第一数据拥有方的第一模型进行协同训练,其中,所述各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练过程中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;
模型发送模块,将经过训练的第一模型发送给主服务器,以使所述主服务器对从各个训练单元获取的经过训练的第一模型、或者第一模型以及第三模型进行联邦聚合,以得到针对第一模型的第一全局模型、或者所述第一全局模型以及针对第三模型的第三全局模型;以及
模型更新模块,根据从所述主服务器接收的所述第一全局模型对所具有的第一模型进行更新,
其中,所述协同训练模块、所述模型发送模块以及所述模型更新模块循环执行,直至满足第一循环结束条件。
14.一种用于经由多个数据拥有方训练模型的装置,所述多个数据拥有方包括多个第一数据拥有方和多个第二数据拥有方,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,所述装置应用于第二数据拥有方,
所述装置包括:
特征数据确定模块,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从所述第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
训练单元确定模块,确定各个第二特征数据所属的训练单元,每个训练单元由各个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
协同训练模块,在所述训练单元中,利用所拥有的与第一训练样本相交的第二特征数据作为第二训练样本并联合所述第一训练样本以及其他各个第二数据拥有方的第二特征数据,对所述第二数据拥有方的第二模型进行协同训练,其中,所述第一训练样本由所述训练单元中的至少部分第一数据确定,参与所述训练单元训练的第一数据拥有方的第一模型、所述其他各个第二数据拥有方的第二模型以及参与所述训练单元训练的从服务器的第三模型在该协同训练中被训练,各个第一数据拥有方的第一模型以及所述各个第二数据拥有方的第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层;
其中,当所述训练单元经过训练得到第一模型、第二模型以及第三模型时,所得到的第一模型和/或第三模型在主服务器处进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型,以及在各个第一数据拥有方处和/或各个从服务器处,根据所述第一全局模型对第一模型进行更新和/或根据所述第三全局模型对第三模型进行更新,
其中,所述协同训练模块循环执行,直至满足第一循环结束条件。
15.一种用于经由多个数据拥有方训练模型的系统,包括第一数据拥有方、第二数据拥有方、从服务器和主服务器,每个第一数据拥有方具有第一模型以及按照水平切分方式切分的第一数据,每个第二数据拥有方具有第二模型以及按照垂直切分方式切分的第二数据,
各个第二数据拥有方,利用PSI算法根据各个第一数据拥有方所拥有的第一数据从该第二数据拥有方所拥有的第二数据中确定出与各个第一数据相交的第二特征数据;
各个第一数据拥有方,确定所属的训练单元;
各个第二数据拥有方,确定所拥有的各个第二特征数据所属的训练单元,其中,每个训练单元由每个第一数据拥有方所拥有的第一数据以及与该第一数据相交的各个第二数据拥有方所拥有的第二特征数据确定;
针对每个训练单元,
参与该训练单元训练的第一数据拥有方,从该第一数据拥有方所拥有的第一数据中选取至少部分第一数据作为第一训练样本,
各个第二数据拥有方,选取各自所拥有的与所述第一训练样本相交的第二特征数据作为第二训练样本,以及
参与该训练单元训练的第一数据拥有方和从服务器、以及所述各个第二数据拥有方,利用所述第一训练样本和所述第二训练样本,对该第一数据拥有方的第一模型、所述各个第二数据拥有方的第二模型以及该从服务器的第三模型进行协同训练,其中,所述第一模型和所述第二模型包括神经网络模型的前N层,所述第三模型包括所述神经网络模型的除所述前N层以外的剩余层,
其中,参与同一训练单元训练的第一数据拥有方、各个第二数据拥有方、从服务器执行子循环过程,直至满足第二循环结束条件;
所述主服务器,在每一轮主循环过程中对从各个训练单元获取的经过训练的第一模型和/或第三模型进行联邦聚合,以得到针对第一模型的第一全局模型和/或针对第三模型的第三全局模型;
各个第一数据拥有方,在每一轮主循环过程中根据所述第一全局模型对第一模型进行更新;和/或,各个从服务器,在每一轮主循环过程中根据所述第三全局模型对第三模型进行更新。
16.一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求8-10中任一所述的方法或者如权利要求11-12中任一所述的方法。
17.一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8-10中任一所述的方法或者如权利要求11-12中任一所述的方法。
18.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求8-10中任一所述的方法或者如权利要求11-12中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210397805.9A CN114819182B (zh) | 2022-04-15 | 2022-04-15 | 用于经由多个数据拥有方训练模型的方法、装置及系统 |
US18/299,386 US20230334333A1 (en) | 2022-04-15 | 2023-04-12 | Methods, apparatuses, and systems for training model by using multiple data owners |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210397805.9A CN114819182B (zh) | 2022-04-15 | 2022-04-15 | 用于经由多个数据拥有方训练模型的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114819182A CN114819182A (zh) | 2022-07-29 |
CN114819182B true CN114819182B (zh) | 2024-05-31 |
Family
ID=82535939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210397805.9A Active CN114819182B (zh) | 2022-04-15 | 2022-04-15 | 用于经由多个数据拥有方训练模型的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230334333A1 (zh) |
CN (1) | CN114819182B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240039692A1 (en) * | 2022-07-28 | 2024-02-01 | International Business Machines Corporation | Private vertical federated learning |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242316A (zh) * | 2020-01-09 | 2020-06-05 | 深圳前海微众银行股份有限公司 | 纵向联邦学习模型训练优化方法、装置、设备及介质 |
CN111401483A (zh) * | 2020-05-15 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 样本数据处理方法、装置及多方模型训练系统 |
CN112132292A (zh) * | 2020-09-16 | 2020-12-25 | 建信金融科技有限责任公司 | 基于区块链的纵向联邦学习数据处理方法、装置及系统 |
WO2021164365A1 (zh) * | 2020-02-17 | 2021-08-26 | 支付宝(杭州)信息技术有限公司 | 图神经网络模型训练方法、装置及系统 |
CN113902122A (zh) * | 2021-08-26 | 2022-01-07 | 杭州城市大脑有限公司 | 联邦模型协同训练方法、装置、计算机设备及存储介质 |
CN114004363A (zh) * | 2021-10-27 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法、装置及系统 |
CN114239820A (zh) * | 2021-11-15 | 2022-03-25 | 北京百度网讯科技有限公司 | 纵向联邦学习模型的训练方法、装置和计算机设备 |
CN114338628A (zh) * | 2022-03-17 | 2022-04-12 | 军事科学院系统工程研究院网络信息研究所 | 一种基于联邦架构的嵌套元学习方法和系统 |
-
2022
- 2022-04-15 CN CN202210397805.9A patent/CN114819182B/zh active Active
-
2023
- 2023-04-12 US US18/299,386 patent/US20230334333A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242316A (zh) * | 2020-01-09 | 2020-06-05 | 深圳前海微众银行股份有限公司 | 纵向联邦学习模型训练优化方法、装置、设备及介质 |
WO2021164365A1 (zh) * | 2020-02-17 | 2021-08-26 | 支付宝(杭州)信息技术有限公司 | 图神经网络模型训练方法、装置及系统 |
CN111401483A (zh) * | 2020-05-15 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 样本数据处理方法、装置及多方模型训练系统 |
CN112132292A (zh) * | 2020-09-16 | 2020-12-25 | 建信金融科技有限责任公司 | 基于区块链的纵向联邦学习数据处理方法、装置及系统 |
CN113902122A (zh) * | 2021-08-26 | 2022-01-07 | 杭州城市大脑有限公司 | 联邦模型协同训练方法、装置、计算机设备及存储介质 |
CN114004363A (zh) * | 2021-10-27 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法、装置及系统 |
CN114239820A (zh) * | 2021-11-15 | 2022-03-25 | 北京百度网讯科技有限公司 | 纵向联邦学习模型的训练方法、装置和计算机设备 |
CN114338628A (zh) * | 2022-03-17 | 2022-04-12 | 军事科学院系统工程研究院网络信息研究所 | 一种基于联邦架构的嵌套元学习方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114819182A (zh) | 2022-07-29 |
US20230334333A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | Federated learning on non-IID data: A survey | |
CN112348204B (zh) | 一种基于联邦学习和区块链技术的边缘计算框架下海洋物联网数据安全共享方法 | |
CN113609521B (zh) | 一种基于对抗训练的联邦学习隐私保护方法及系统 | |
CN111598186B (zh) | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 | |
CN113239404B (zh) | 一种基于差分隐私和混沌加密的联邦学习方法 | |
CN108932348B (zh) | 区块链的合并处理方法、装置、区块链节点及存储介质 | |
CN112052942B (zh) | 神经网络模型训练方法、装置及系统 | |
TW201928755A (zh) | 用以安全分享密碼材料之系統及方法 | |
CN112799708B (zh) | 联合更新业务模型的方法及系统 | |
CN114004363B (zh) | 联合更新模型的方法、装置及系统 | |
CN114819182B (zh) | 用于经由多个数据拥有方训练模型的方法、装置及系统 | |
KR20220140759A (ko) | 분류 정확도를 향상시키기 위한 기계 학습 모델링 데이터의 처리 | |
CN116204922A (zh) | 用于隐私求交的方法及装置 | |
CN115719094B (zh) | 基于联邦学习的模型训练方法、装置、设备及存储介质 | |
CN115510472B (zh) | 一种面向云边聚合系统的多重差分隐私保护方法及系统 | |
Saraswathy et al. | Secure data storage and access for fish monitoring in cloud environment | |
CN112183759A (zh) | 模型训练方法、装置及系统 | |
CN116150806A (zh) | 用于隐私求交的方法及装置 | |
CN116306905A (zh) | 半监督非独立同分布的联邦学习蒸馏方法及装置 | |
CN111523675A (zh) | 模型训练方法、装置及系统 | |
CN114723068A (zh) | 联邦模型训练方法及装置 | |
CN114547684A (zh) | 一种保护隐私数据的多方联合训练树模型的方法及装置 | |
CN116402366A (zh) | 基于联合学习的数据贡献评价方法及装置 | |
Gad | Breaking Privacy in Federated Learning | |
US20230198772A1 (en) | Enhanced method for a useful blockchain consensus |
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 |