CN114691167A - 机器学习模型更新的方法和装置 - Google Patents

机器学习模型更新的方法和装置 Download PDF

Info

Publication number
CN114691167A
CN114691167A CN202011635759.9A CN202011635759A CN114691167A CN 114691167 A CN114691167 A CN 114691167A CN 202011635759 A CN202011635759 A CN 202011635759A CN 114691167 A CN114691167 A CN 114691167A
Authority
CN
China
Prior art keywords
gradient
model
intermediate result
encrypted
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011635759.9A
Other languages
English (en)
Inventor
邵云峰
李秉帅
吴骏
田海博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011635759.9A priority Critical patent/CN114691167A/zh
Priority to EP21913114.1A priority patent/EP4270266A4/en
Priority to PCT/CN2021/112644 priority patent/WO2022142366A1/zh
Publication of CN114691167A publication Critical patent/CN114691167A/zh
Priority to US18/344,188 priority patent/US20230342669A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Machine Translation (AREA)
  • Storage Device Security (AREA)

Abstract

本申请的实施例提供一种机器学习模型的更新方法,应用于人工智能领域。该方法包括:第一装置根据第一数据子集生成第一中间结果。第一装置接收第二装置发送的加密后的第二中间结果,所述第二中间结果根据第二装置对应的第二数据子集生成。第一装置获得第一模型的第一梯度,所述第一模型的第一梯度根据所述第一中间结果和加密后的所述第二中间结果生成。所述第一模型的第一梯度在使用第二私钥进行解密后,用于更新第一模型,所述第二私钥为所述第二装置生成的用于同态加密的解密密钥。通过本方法,在纵向联邦学习的场景下,第一装置使用第二装置的数据进行模型更新时,可以保护第二装置的数据安全,比如表二中的age,job,sex等用户数据不会被获取,从而保护用户隐私。

Description

机器学习模型更新的方法和装置
技术领域
本申请涉及机器学习技术领域,尤其涉及模型方法和装置。
背景技术
联邦学习(federated learning)是一种分布式机器学习技术。每个联邦学习客户端(federated learning client,FLC),如联邦学习装置1、2、3……k,利用本地计算资源和本地网络业务数据进行模型训练,并将本地训练过程中产生的模型参数更新信息Δω,如Δω1、Δω2、Δω3……Δωk,发送给联邦学习服务端(federated learning server,FLS)。联邦学习服务端基于模型更新参数采用汇聚算法进行模型汇聚,得到汇聚机器学习模型。汇聚机器学习模型作为联邦学习装置下一次执行模型训练的初始模型。联邦学习装置和联邦学习服务端多次执行上述模型训练过程,直到得到的汇聚机器学习模型满足预设条件时,停止训练。
在联邦学习的技术中,有可能有位于不同实体的具有不同特征的数据需要进行聚合后训练模型,以增强模型的学习能力。对于使用不同实体的具有不同特征的数据进行聚合后进行的模型训练的方法称为纵向联邦学习。
现有的纵向联邦学习的可参考图1所示,装置B和装置A接收服务器的公钥和私钥对,并根据客户端A和客户端B发送的模型的梯度更新模型,并将更新后的模型的分别发送给客户端A和客户端B。
现有的纵向联邦学习需要依赖的服务器,但由于公钥和私钥由服务器生成,因此服务器是否可信是一个重要的问题。如果服务器为不可信任实体,则会对数据安全造成较大的威胁。如何提高纵向联邦学习的安全性成为需要解决的问题。
发明内容
本申请提供了一种机器学习模型的更新方法、装置和系统,提高纵向联邦学习的安全性。
为了达到上述目的,本申请的实施例提供以下技术方案:
第一方面,本申请的实施例提供一种机器学习模型的更新方法。该方法包括:第一装置根据第一数据子集生成第一中间结果。第一装置接收第二装置发送的加密后的第二中间结果,所述第二中间结果根据第二装置对应的第二数据子集生成。第一装置获得第一模型的第一梯度,所述第一模型的第一梯度根据所述第一中间结果和加密后的所述第二中间结果生成。所述第一模型的第一梯度在使用第二私钥进行解密后,用于更新第一模型,所述第二私钥为所述第二装置生成的用于同态加密的解密密钥。通过本方法,由拥有第二数据子集的第二装置使用第二装置生成的密钥(比如公钥)对发送给第一装置的第二中间结果进行同态加密,并由第二装置使用第二装置生成的私钥对梯度进行解密。从而使得在纵向联邦学习的场景下,第一装置使用第二装置的数据进行模型更新时,可以保护第二装置的数据安全,比如表二中的age,job,sex等用户数据不会被获取,从而保护用户隐私。
示例性的,第一梯度可以由第一装置确定,也可以其它的装置根据第一中间结果和加密后的第二中间结果确定。
在一种可能的设计中,所述第二中间结果使用所述第二装置生成的用于同态加密的第二公钥加密。所述第一装置生成用于同态加密的第一公钥和第一私钥。所述第一装置使用所述第一公钥对所述第一中间结果进行加密。通过本方法,由第一装置和第二装置分别生成对各自数据子集的数据进行加密或解密,可以保证各自数据子集的数据安全。
在一种可能的设计中,所述第一装置将所述加密后的第一中间结果发送给所述第二装置,从而使得第二装置可以使用第一装置的数据进行模型训练,并能保证第一装置的数据的安全。
在一种可能的设计中,所述第一模型的第一梯度根据所述第一中间结果和加密后的所述第二中间结果确定具体为:所述第一模型的第一梯度根据加密后的所述第一中间结果和加密后的所述第二中间结果确定。所述第一装置使用所述第一私钥对所述第一模型的第一梯度解密。通过本方法,使得第一装置在需要都加密的数据进行训练时,保证训练数据的安全。
在一种可能的设计中,所述第一装置生成第一模型的第一梯度的第一噪声;所述第一装置将包含所述第一噪声的第一梯度发送给所述第二装置;所述第一装置接收使用所述第二私钥解密后的第一梯度,所述解密后的梯度包含所述第一噪声。通过本方法,对第一梯度增加噪声。在将第一梯度发送给第二装置进行解密的情况下,仍能保证第一装置的第一数据子集的数据安全。
在一种可能的设计中,所述第一装置接收所述第二装置发送的第二模型的第二参数。所述第一装置根据所述加密后第一中间结果和加密后的所述第二中间结果,以及所述第二模型的第二参数集确定所述第二模型的第二梯度。所述第一装置将所述第二模型的第二梯度发送给所述第二装置。通过本方法,由第一装置根据第二装置的第二数据子集和第一装置的第一数据子集确定第二模型的第二梯度,由于使用加密的第二数据子集的中间结果,保证了第二数据子集的数据安全。
在一种可能的设计中,所述第一装置确定所述第二梯度的第二噪声。所述发送给所述第二装置的第二梯度包含所述第二噪声。通过本方法,在第一装置更新第二装置的第二模型的场景下,第一装置对第二梯度增加第二噪声,可以保证第一装置的第一数据子集的安全。
在一种可能的设计中,所述第一装置接收包含所述第二噪声的更新后的第二参数,所述第二参数集为用所述第二梯度更新所述第二模型的参数集;所述第一装置去除包含在所述更新后的第二参数中的第二噪声。通过本方法,在第一装置更新第二装置的第二模型的场景下,第一装置对第二参数解除噪声,从而实现由第一装置更新第二模型时也能保证第一数据子集的安全。
在一种可能的设计中,所述第一装置接收至少两个用于同态加密的所述第二公钥,所述至少两个第二公钥由至少两个第二装置生成。所述第一装置根据接收到所述至少两个第二公钥以及所述第一公钥生成用于同态加密的公共公钥;所述公共公钥用于加密所述第二中间结果和/或所述第一中间结果。通过本方法,当由多个装置的数据参与机器学习模型的更新时,可以保证各方数据的安全。
在一种可能的设计中,所述第一模型的第一梯度使用第二私钥进行解密包括:
所述第一装置将所述第一模型的第一梯度依次发送给所述至少两个第二装置,并接收所述至少两个第二装置分别使用对应的第二私钥解密后的第一模型的第一梯度。通过本方法,当由多个装置的数据参与机器学习模型的更新时,可以保证各方数据的安全。
在一种可能的设计中,所述第一装置使用所述第一私钥对所述第一模型的第一梯度解密。
第二方面,本申请的实施例提供一种机器学习模型的更新方法。该方法包括:第一装置发送加密后的第一数据子集以及加密后的第一模型的第一参数,所述加密后的第一数据子集以及加密后的第一参数用于确定加密后的第一中间结果。所述第一装置接收加密后所述第一模型的第一梯度,所述第一模型的第一梯度根据所述加密后的第一中间结果,所述加密后的第一参数以及加密后的第二中间结果确定。所述第一装置对所述加密后的第一梯度使用第一私钥进行解密,所述解密后的第一模型的第一梯度用于更新所述第一模型。通过本方法,第一装置将用于第一模型更新的第一梯度的计算置于其它装置内,由第一装置将第一数据子集加密后发送,可以保证第一数据子集的数据安全。
在一种可能的设计中,所述第一装置接收加密后的第二模型的第二梯度,所述加密后的第二梯度根据所述加密后的第一中间结果和加密后的第二中间结果确定,所述第二中间结果根据第二装置的第二数据子集和第二装置的第二模型的参数确定,所述加密后第二中间结果由所述第二装置对所述第二中间结果进行同态加密得到。所述第一装置使用所述第一私钥解密所述第二梯度。所述第一装置向所述第二装置发送经所述第一私钥解密后的第二梯度,所述解密后的第二梯度用于更新所述第二模型。通过本方法,第一装置对第二装置的模型的梯度进行解密,保证第一装置的第一数据子集的数据安全。
在一种可能的设计中,所述第一装置接收的第一梯度包含第一噪声,所述解密后的第一梯度包含所述第一噪声,所述更新后的第一模型的参数包含所第一噪声。在梯度中包含噪声,可以进一步的保证数据安全。
在一种可能的设计中,所述第一装置根据所述解密后的第一梯度更新所述第一模型。或所述第一装置发送所述解密后的第一梯度。
在一种可能的设计中,所述第一装置接收至少两个用于同态加密的所述第二公钥,所述至少两个第二公钥由至少两个第二装置生成。所述第一装置根据接收到所述至少两个第二公钥以及所述第一公钥生成用于同态加密的公共公钥;所述公共公钥用于加密所述第二中间结果和/或所述第一中间结果。
第三方面,本申请实施例提供了一种机器学习模型的更新方法。该方法包括:接收加密后的第一中间结果和加密后的第二中间结果。
接收第一模型的参数。根据所述加密后的第一中间结果和所述加密后的第二中间结果,以及第一模型的参数确定第一模型的第一梯度。对所述第一梯度进行解密。根据所述解密后的第一梯度,更新所述第一模型。通过本方法,第一中间结果和第二中间结果都经过加密,保证了各数集子集的数据安全。
在一种可能的设计中,所述加密后的第一中间结果为使用第一公钥对第一中间结果进行同态加密后获得;所述加密后的第二中间结果为使用所述第一公钥对第二中间结果进行同态加密后获得。
在一种可能的设计中,对所述第一梯度进行解密包括:使用第一私钥对的第一梯度进行解密。
在一种可能的设计中,将所述第一梯度发送给第一装置。
在一种可能的设计中,从第一装置获取第一公钥,将述第一公钥发送给第二装置。
第四方面,本申请提供了一种装置。该装置用于执行上述第一方面至第三方面提供的任一种方法。
在一种可能的设计方式中,本申请可以根据上述第一方面提供的任一种方法,对该机器学习模型管理装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
示例性的,本申请可以按照功能将该机器学习模型管理装置划分为接收模块、处理模块和发送模块等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的设计提供的技术方案,第二方面或其相应的可能的设计提供的技术方案,或第三方面或其相应的可能的设计提供的技术方案,此处不再赘述。
在另一种可能的设计中,该机器学习模型管理装置包括:存储器和处理器,存储器和处理器耦合。存储器用于存储计算机指令,处理器用于调用该计算机指令,以执行如第一方面或其相应的可能的设计提供的方法,第二方面或其相应的可能的设计提供的方法,或第三方面或其相应的可能的设计提供的方法。
第五方面,本申请提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在计算机设备上运行时,使得该计算机设备执行上述第一方面或其相应的可能的设计提供的方法,第二方面或其相应的可能的设计提供的方法,或第三方面或其相应的可能的设计提供的方法。
第六方面,本申请提供了一种计算机程序产品,当其在计算机设备上运行时,使得第一方面或其相应的可能的设计提供的方法,第二方面或其相应的可能的设计提供的方法,或第三方面或其相应的可能的设计提供的方法被执行。
第七方面,本申请提供了一种芯片系统,包括:处理器,处理器用于从存储器中调用并运行该存储器中存储的计算机程序,执行第一方面或其相应的可能的设计提供的方法,第二方面或其相应的可能的设计提供的方法,或第三方面或其相应的可能的设计提供的方法。
可以理解的是,在上述第一方面的另一种可能的设计、第二面的另一种可能的设计、第二至第七方面提供的任何一种技术方案中:上述第一、第二或第三方面中的发送动作,具体可以替换为在处理器的控制下发送;上述第二方面或第一方面中的接收动作,具体可以替换为在处理器的控制下接收。
可以理解的是,上述提供的任一种系统、装置、计算机存储介质、计算机程序产品或芯片系统等均可以应用于第一方面、第二方面或第三方面提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
在本申请中,上述任一种装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为现有的适用于纵向联邦学习系统的结构示意图;
图2A为本申请实施例提供的适用于纵向联邦学习系统的结构示意图;
图2B为本申请实施例提供的适用于纵向联邦学习系统的结构示意图;
图3为本申请实施例提供的适用于纵向联邦学习的方法流程图;
图4为本申请实施例提供的适用于纵向联邦学习的方法流程图;
图5A-图5B为本申请实施例提供的适用于纵向联邦学习的另一方法流程图;
图6A-图6B为本申请实施例提供的适用于纵向联邦学习的另一方法流程图;
图7为本申请实施例提供的适用于纵向联邦学习的另一方法流程图;
图8为本申请实施例提供的一种机器学习模型更新的装置的结构示意图;
图9为本申请实施例提供的一种计算机设备的硬件结构示意图。
具体实施方式
以下,说明本申请实施例中所涉及的一些术语和技术:
1)、机器学习、机器学习模型、机器学习模型文件
机器学习,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成某模型业务。
在一些示例中,机器学习模型是包含用于完成某模型业务所采用的算法实现代码和参数的文件。其中,算法实现代码用于描述机器学习模型的模型结构,参数用于描述机器学习模型各构成部分的属性。为了方便描述,下文中将该文件称为机器学习模型文件。例如,下文中发送机器学习模型具体是指发送机器学习模型文件。
在另一些示例中,机器学习模型是完成某模型业务的逻辑功能模块。例如,将输入参数的值输入到机器学习模型,得到该机器学习模型的输出参数的值。
机器学习模型包括人工智能(artificial intelligence,AI)模型如神经网络模型等。
2)纵向联邦学习
纵向联邦学习(Vertical Federated Learning又称Heterogenous FederatedLearning)指的是各方拥有不同特征空间的设定下进行联邦学习的技术。纵向联邦学习可以对于使用相同的用户的具有不同的用户特征且位于不实体装置的数据进行训练。纵向联邦学习可以对位于不同实体的具有不同特征或属性的数据进行聚合,以增强模型能力的联邦学习。数据的特征也可以是数据的属性。
3)模型梯度
模型梯度为机器学习模型在训练过程中,模型参数的变化量。
4)同态加密
同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果。使用同态密钥对中的密钥对经同态加密后的数据进行运算后的结果进行解密,与对明文进行同样的运算结果一样。
5)公钥
用于执行同态加密时加密的密钥。
6)私钥
用于执行同态加密时解密的密钥。
其他术语
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的实施例中,术语“第二”、“第一”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第二”、“第一”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第一报文是指两个或两个以上的第一报文。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。
应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
还应理解,本申请实施例中提到的“连接”,可以是直接连接,也可以是间接连接,可以是有线连接,也可以是无线连接,也就是说,本申请实施例对设备之间的连接方式不作限定。
以下,结合附图对本申请实施例提供的技术方案进行说明。
图2A为本申请实施例提供的一种应用于纵向联邦学习的应用场景的系统结构示意图。图2A所示的系统200可以包括网络数据分析功能实体201、基站202、核心网网元203,应用功能实体204。图2A的各网络实体可以为本申请实施例的装置A或装置B。
网络数据分析功能(Network Data Analytics Function,NWDAF)实体201:可以从各网络实体,比如基站202,核心网网元203和/或应用功能实体204获取数据,进行数据分析。数据分析指基于获取到的数据作为模型训练的输入,训练得到模型。此外,网络数据分析功能实体201还可以基于模型做推理确定数据分析结果。然后,向其他网络实体、第三方业务服务器、终端设备或网管系统提供数据分析结果。本申请中主要涉及的是NWDAF实体201的数据收集功能和模型训练功能。
应用功能(Application Function,AF)实体204:用于提供业务,或者进行与应用有关的数据的路由,比如将数据提供给NWDAF实体201进行模型训练。进一步的,应用功能实体204还可以利用没有发送给NWDAF实体201的私有数据,与其它网络实体进行纵向联邦学习。
基站202,为终端提供接入服务,进而完成控制信号和用户数据在终端和核心网之间的转发。在本申请实施例中,基站202还可以将数据发送给NWDAF实体201,用于NWDAF实体201进行模型训练。基站202还可以使用没有发送给NWDAF实体201的私有数据,与其它网络实体进行纵向联邦学习。
核心网网元203,为终端提供核心网络的相关服务。核心网网元203可以是应用于5G架构的用户面功能实体如UPF实体,会话管理功能实体SMF实体,或策略控制功能实体如PCF实体等。应理解,该核心网网元还可以应用于未来其他网络架构,如6G架构。在本申请实施例中,任意核心网网元还可以将数据发送给NWDAF实体201,用于NWDAF实体201进行模型训练。核心网网元203还可以使用没有发送给NWDAF实体201的私有数据,与其它网络实体进行纵向联邦学习。
此外,本申请实施例的架构还可以包含其它的网元,本申请实施例在此不做限定。
在使用图2A的网络架构的情况下,任意网络实体可以将不涉及隐私的数据发送给NWDAF实体201,由NWDAF实体201根据一个或多个设备发送过来的数据组成数据子集,并与其它网络实体没有发送给NWDF的私有数据相结合进行纵向联邦学习。NWDAF实体201可以与一种类型的网络实体共同进行纵向联邦学习,也可以与多种类型的网络实体共同进行纵向联邦学习。比如,NWDAF实体201可以根据多个基站202发送的网络数据,与一个或多个基站202共同进行纵向联邦学习。NWDAF实体201也可以根据基站202和AF实体204发送的数据,与基站202和AF实体204共同进行纵向联邦学习。
表1为使用图2A的网络架构,进行纵向联邦学习的数据集示例:
Figure BDA0002876245490000071
表1
其中,第3行、第7行、第12行分别表示没有发送给NWDAF实体201的,保存在基站202、核心网网元203、或者AF实体204的私有数据,可作为图3-图7中的数据子集。表1中的数据列,表明数据的特征,对应于纵向联邦学习的模型的参数。比如,第1-2行,第4-6行,第8-10行的内容,对应由NWDAF实体201训练或使用的模型的参数。表1中的来源列,分别表示各特征的数据的来源。比如第1-2行对应的数据,由AF实体204发送给NWDAF实体201,第4-6行对应的数据,由UPF实体发送给NWDAF实体201。其中,第1行的数据(即service experience)做为模型训练的标签数据,即用户的业务体验作为标签数据。第1-12行的数据为同一用户在多个实体的数据。
因此,与图2A对应的场景中,NWDAF实体201作为图4-图7的装置B,对应的数据子集中包含标签。
图2B为本申请实施例提供的一种应用于纵向联邦学习的应用场景的系统的结构示意图。图2B所示的系统可以包括业务系统服务器A 251,业务系统服务器B 252。业务系统服务器A和B可以为应用于不同业务系统的服务器,比如银行业务系统的服务器,呼叫业务系统的服务器。图2B中的业务系统服务器A251也可以是图2A中的基站,核心网网元203、应用功能网元204或网络图数分析功能实体201。图2B所示的业务系统的服务器用于保存用户数据,并使用保存的用户数据与其它业务系统服务器保存的用户数据,与其它业务系统共同进行纵向联邦学习。图2B中的业务系统服务器B 252也可以是图2A中的基站,核心网网元203、应用功能网元204或网络图数分析功能实体201。
表2为以业务系统服务器A为呼叫业务系统的服务器,业务系统服务器B为银行业务系统的服务器为例的数据特征的示意图。
Figure BDA0002876245490000081
行号为1的数据(即status)做为模型训练的标签数据。行号1-9对应的数据为银行业务系统服务器获得的数据,可以作为装置B对应的数据子集B,行号为10-14对应的数据为运营商业务系统获得的数据,可以作为装置A对应的数据子集A。行号1-14的数据为同一用户在不同系统的数据。
适用于图2A或图2B两种应用场景。装置A具有数据子集A(DA),装置B具有数据子集B(DB)。数据子集A和数据子集B分别包含P条数据(比如,P个用户的数据)。数据子集A包含N个特征,数据子集B包含M个特征。因此,装置A拥有的特征FA为:FA={f1,f2,...,fN};装置B拥有特征(FB),FB={fN+1,fN+2,...,fN+M}。fN表示为第N个特征,fN+M表示为第N+M个特征。
具有特征A的数据子集A(DA)和具有特征B的数据子集B(DB)合并为数据集D,用于进行纵向联邦学习。数据集D包含P条数据,表示为:D=[d1,d2,d3,...,dP]T。dp表示第p条数据(dp为D中任意一条数据,p为小于等于P的任意正整数),dp具有N+M个特征,表示为
Figure BDA0002876245490000091
其中
Figure BDA0002876245490000092
为第p条数据的第N个特征,
Figure BDA0002876245490000093
为第p条数据的第N+M个特征。每条数据根据特征FA和特征FB可以分为两部分:
Figure BDA0002876245490000094
其中,
Figure BDA0002876245490000095
为第p条数据的特征A(FA)对应的特征值,即:
Figure BDA0002876245490000096
为特征FB对应的特征值,即
Figure BDA0002876245490000098
数据集D根据特征FA和特征FB可以分为两个数据子集,即数据子集DA,数据子集DB,即
Figure BDA0002876245490000099
其中数据子集DA为装置A拥有的P条具有特征FA的用户数据为:
Figure BDA00028762454900000910
数据子集DB为装置B拥有的P条具有特征FB的用户数据,
Figure BDA00028762454900000911
装置A初始化了模型AWA的参数表示为:
Figure BDA00028762454900000912
装置B初始化了模型BWB的参数为
Figure BDA00028762454900000913
从模型维度描述装置B和装置A分别对应具有不同参数的模型。模型的参数与数据子集的特征一一对应。比如,装置A具有的数据子集DA具有N个特征,则装置A的模型具有N个参数。本申请实施例的模型指利用梯度信息可迭代求解的模型。梯度信息为模型的更新值。本申请实施例的模型指线性模型或者神经网络模型。以一个简单的线性回归模型(不考虑纵向联邦情况)为例,模型f(x)=w1*x1+w2*x2+....+wn*xn=y,其中y是模型的输出参数,也称模型的标签,w1到wn为模型的N个参数,x1到xn为一条数据的第1到第n个特征。而在纵向联邦场景下,同一个用户的不同特征(值)分别位于两个或多个装置(本申请实施例假设为两个)。模型WA的参数
Figure BDA00028762454900000914
模型WB的参数
Figure BDA00028762454900000915
两个部分。在本申请实施例中,假设模型的一个参数对应数据子集中的一个特征。
图3为本申请实施例提供的在纵向联邦学习的场景下进行机器学习模型的更新方法,适用于图2A和图2B两种应用场景。包括如下步骤:如下图为本申请实施例,包括如下步骤:
步骤302、第一装置根据第一数据子集生成第一中间结果。
第一中间结果是根据第一装置的模型(即第一模型)与第一数据子集生成的。第一中间结果用于与参与纵向联邦学习的其它装置生成的中间结果(比如第二装置根据第二模型和第二数据子集生成的第二中间结果)生成第一模型的梯度。第一模型的梯度可称为第一梯度。
在图3对应的实施例中,第一装置可以是图4到图7中的装置A,也可以是图4到图7中的装置B,本申请实施例不做限定。
步骤304、第一装置接收第二装置发送的加密后的第二中间结果。
第二中间结果是第二装置根据第二模型和第二数据子集生成的。第二装置使用第二装置的公钥或第二装置的公钥和其它装置的公钥生成的公共公钥对第二中间结果进行同态加密。
本申请实施例中,第二装置可以为一个装置,也可以为多个装置,本申请实施例不做限定。
步骤306、第一装置获取第一模型的第一梯度。
作为一种可选的,第一装置可以根据第一中间结果和第二中间结果,生成第一梯度。第一装置还可以从别的装置比如第二装置获取根据第一中间结果和第二中间结果生成的第一梯度。用于生成第一梯度的第二中间结果为加密后的中间结果。作为可选,用于生成第一梯度的第二中间结果和第一中间结果都为加密后的中间结果。梯度为模型参数的更新向量。
步骤308、第一装置根据第一梯度,更新第一模型。
本申请实施例中,由于用于生成第一梯度的第二中间结果为加密后的中间结果,因此,第一装置获得第二中间结果无法推出生成第二中间结果的第二数据子集的原始数据。因此,可以保证在纵向联邦学习的场景下的数据安全。
步骤400-401、装置A生成同态加密的公钥A(pkA)和私钥A(skA),并将公钥A发送给装置B。
步骤402、装置A对数据子集A(DA)分组,以得到分组后的数据子集A(DDA).
Figure BDA0002876245490000101
DA是装置A拥有的数据子集A,可以看做一个原始的二维矩阵,其中每一行数据对应一个用户,每一列对应一个特征。具体的,i行j列表示第i条数据的第j个特征。以表1中的数据为例,数据子集A为基站,核心网网元或AF没有发送给NWDAF实体的私有数据。以表2中的数据为例,数据子集A可以为运营商业务系统的数据。而arrears,CALL NUMS,Communication flows等作为数据子集A的特征A。
Figure BDA0002876245490000102
DDA表示对数据子集A进行分组(打包)之后的结果。分组之后数据子集A的二维矩阵中的所有数据值被分多个块,每个块表示多条数据(也是DA中多行数据,比如L条数据)的同一个特征的值,即一个块是一个L行1列的一个列向量。比如
Figure BDA0002876245490000103
为装置A的第1到L条数据的第1个特征,表示为:
Figure BDA0002876245490000104
Figure BDA0002876245490000105
为装置A的第q*(L-1)+1到第Q*L条数据的第n个特征,表示为:
Figure BDA0002876245490000106
因为数据量为P,每个块大小为L,不一定P可以整除L(即P条数据不能根据L分为Q块),则最后一个块可能不足L个值。但最后一个块需要补齐L个值,所以不足的数据采用补0操作,即
Figure BDA0002876245490000107
Q为分组的个数
Figure BDA0002876245490000108
其中L=多项式阶数。L的值可以根据需要进行设置,本申请实施例在此不做限定。
步骤400’-401’、装置B生成同态加密的公钥B(pkB)和私钥B(skB),并将公钥pkB发送给装置A。在同态加密算法中,公钥用于加密,私钥用于解密。
步骤402’、装置B对数据子集B分组,以得到分组后的数据子集B(DDB).
Figure BDA0002876245490000109
其中,
Figure BDA00028762454900001010
为数据子集B中第1条数据的第1个特征,对应数据集D的第N+1个特征。数据集D包括数据子集A(DA)和数据子集B(DB)。数据子集A和数据子集B对应相同的用户,数据子集A和数据子集B具有不同的特征。
Figure BDA00028762454900001011
表示为:
Figure BDA00028762454900001012
Figure BDA00028762454900001013
为第L条数据的N+1个特征。
Figure BDA00028762454900001014
为装置B的第q*(L-1)+1到第q*L条数据的第m个特征,对应数据集D的第N+m个特征,表示为:
Figure BDA00028762454900001015
以表1中的数据为例,数据子集B为NWDAF实体的数据。比如service experience,Buffer size等则作为数据子集B对应的特征。以表2中的数据为例,数据子集A可以为银行业务系统的数据。而status,age,job等作为数据子集B的特征B。
值得说明的是,装置A和装置B进行分组的多项阶式L相同。
分组(也可以说是打包)指将全部数据按特征维度切分,并将每个特征根据多项阶式L分为Q个组。分组可以使得后续加密时可以将一个组(包)的数据同时进行加密(多输入多输出),可以加速加密。
步骤403,装置A使用模型A(WA)以及数据子集A确定(或生成)数据子集A的中间结果A(UA)。
比如,UA=DAWA,表明对装置A拥有的数据子集A的各条数据与模型A的参数WA相乘。作为另一种表达方式,
Figure BDA0002876245490000111
其中,
Figure BDA0002876245490000112
表示数据子集DA中第一条数据与模型A的参数A相乘后得到的数据。
Figure BDA0002876245490000113
表示数据子集DA中第P条数据与模型A的参数A相乘后得到的数据。
步骤404.装置A对中间结果A进行分组,以得到分组后的中间结果A(DUA)。其中,
Figure BDA0002876245490000114
表明中间结果A分为Q组,第Q组有可能包含补零的数据。
Figure BDA0002876245490000115
为中间结果A的第一组数据,对应中间结果A的第1到L条数据,即
Figure BDA0002876245490000116
Figure BDA0002876245490000117
Figure BDA0002876245490000118
为中间结果A的第L*(q-1)+1到L*q条数据,即
Figure BDA0002876245490000119
对于最后一个分组的数据
Figure BDA00028762454900001110
如果P条数据不能根据L分为Q组,由P除以L后第Q组,不足的数据采用补0操作。L=多项式阶数。L的值可以根据需要进行设备,本申请实施例在此不做限定。
步骤405.装置A对分组后的中间结果DUA使用公钥A(pkA)进行加密,以得到加密后的中间结果
Figure BDA00028762454900001111
并将加密后的中间结果A发送给装置B。
其中符号
Figure BDA00028762454900001112
表示加密。加密后的中间结果A包括加密后的各组的中间结果,表示为
Figure BDA00028762454900001113
Figure BDA00028762454900001114
为加密后的第一组中间结果对应加密后的装置A的第1到L条数据。
在此实施例中,UA为使用数据子集A对模型A训练过程中的中间结果B。如果明文传输给装置B,有可能被装置B推理出原始数据DA,即数据子集A。因此需要将中间结果A进行加密后传输。装置B因为接收到的是加密后的数据,可以使用数据子集B的明文数据进行计算,也可以对数据子B使用公钥A加密后进行计算模型B的梯度B。
步骤403’-405’,装置B使用模型B(WB)以及数据子集B(DB)确定(或生成)数据子集B的中间结果B(UB),然后对中间结果B进行分组,以得到分组后的中间结果B(DUB)。装置B对分组后的中间结果DUB使用公钥pkB进行加密,以得到加密后的中间结果
Figure BDA00028762454900001115
并将加密后的中间结果
Figure BDA00028762454900001116
发送给装置A。
UB=DBWB-YB,表明对装置B拥有的数据子集B的各条数据与模型B的参数相乘,并减去标签YB的结果。作为另一种表达方式,
Figure BDA00028762454900001117
其中,
Figure BDA00028762454900001118
表示数据子集DB中第二条数据与模型B参数相乘,然后减去YB后得到的中间数据。
Figure BDA00028762454900001119
表示数据子集BDB中第p条数据与模型B参数相乘后得到的数据。YB为数据子集B中的各数据对应的标签,每条数据子集B对应一个标签,表示为:
Figure BDA00028762454900001120
分组后的中间结果DUB包括各组的中间结果B,表示为:
Figure BDA00028762454900001121
为第一组中间结果A,第一组的中间结果B对应第一条到第L条数据。
Figure BDA00028762454900001122
表示第q组的中间结果B,对应第(q-1)*L+1条到第q*l条数据。
步骤406、装置A将加密后的中间结果B与中间结果A合并,得到合并后的第一中间结果
Figure BDA00028762454900001123
作为一种可选,装置A还可将加密后的中间结果B与加密后中间结果A合并。其中,装置A使用公钥B对中间结果A进行加密。
合并后的第一中间结果包含各组合并后的中间结果。各组合并后的中间结果包括各组加密后的中间结果B与相应组未加密的中间结果A。比如,
Figure BDA00028762454900001124
Figure BDA00028762454900001125
为合并后的第q组的第一中间结果,合并后的第q组的第一中间结果包括加密后的第q组中间结果
Figure BDA00028762454900001126
与未加密的第q组中间结果
Figure BDA00028762454900001127
作为一种可选方式,合并后的第一中间结果还可以包含加密后的中间结果B和加密后的中间结果A。其中,中间结果A和中间结果B都采用公钥B进行同态加密。
步骤407、装置A确定(或生成)模型A的加密后的梯度A,即
Figure BDA00028762454900001128
梯度A包括模型A的各参数的更新值。
本申请实施例中,加密后的梯度A可以不是对梯度A进行加密,而是因为确定梯度A的合并后的第一中间结果包含加密后的数据子集,比如加密后的数据子集A和/或加密后的数据子集B。
其中,模型A的梯度A包括模型A的各参数对应的梯度A。如
Figure BDA0002876245490000121
Figure BDA0002876245490000122
为模型A的第n个参数对应的梯度。其中,各参数对应的梯度
Figure BDA0002876245490000123
根据加密后的中间结果A和加密后的中间结果B(或未加密的中间结果A和加密后的中间结果B),以及相应特征的各组的特征值确定(或生成)。比如,
Figure BDA0002876245490000124
表示为:将第q组的中间结果B与第q组的中间结果A相加后乘以第q组的第n个特征值得到的和再求均。将第一到Q组的第n个特征的梯度相加得到模型A的第n个特征的梯度。
Figure BDA0002876245490000125
为第q组对应的第q*(L-1)+1到第q*L条数据的第n个特征值,表示为:
Figure BDA0002876245490000126
步骤408、装置A确定(或生成)梯度A的噪声A(RA),梯度A的噪声A集包括模型A的各参数(对应于数据子集A的各特征)的噪声A,可表示为:
Figure BDA0002876245490000127
噪声是为特征产生的随机数(可以是每个特征产生一个随机数,也可以是装置A对各特征共同产生一个随机数,本申请请实施以一个特征对应一个随机数为例)。比如
Figure BDA0002876245490000128
为第二个特征对应的随机数(即第二个特征的噪声A),
Figure BDA0002876245490000129
为第n个特征对应的随机数。而任一特征对应的随机数包含了任一个分组中各条用户数据对应的该特征的噪声,表示为
Figure BDA00028762454900001210
Figure BDA00028762454900001211
或多个分组中各条数据对应的该特征的噪声。其中,
Figure BDA00028762454900001212
为分组中第二条用户数据对应的第n个特征的噪声,
Figure BDA00028762454900001213
为分组中第L条用户数据对应的第n个特征的噪声。
步骤409,装置A根据各参数对应的梯度对应的噪声A与相应参数的梯度,得到加密后的包含噪声A的梯度
Figure BDA00028762454900001214
然后将加密后的包含噪声A的梯度
Figure BDA00028762454900001215
发送给装置B。
加密后的包含噪声A的梯度A集合包含加密后的各参数的梯度A,可以表示为
Figure BDA00028762454900001216
Figure BDA00028762454900001217
为加密后的第一参数的梯度A加上第一个参数的噪声A。其中,噪声可以的加密后的噪声,也可以是未加密的噪声。
步骤406’,装置B根据分组后的中间结果B(DUB)与加密后的中间结果
Figure BDA00028762454900001218
得到合并后的第一中间结果
Figure BDA00028762454900001219
本申请实施例中,合并后的第二中间结果为用于生成模型B的梯度B的中间结果。合并后的第二中间结果包含未加密的中间结果B和已加密的中间结果A,或合并后的第二中间结果包含已加密的中间结果A和已加密的中间结果B。合并后的第二中间结果包含的中间结果采用装置A生成的公钥A对中间结果B和中间结果A进行加密。
合并后的第一中间结果为用于生成模型A的梯度A的中间结果。合并后的第一中间结果包含未加密的中间结果A和已加密的中间结果B,或合并后的第一中间结果包含已加密的中间结果A和已加密的中间结果B。合并后的第二中间结果包含的中间结果采用装置B生成的公钥B对中间结果B和/或中间结果A进行加密。
合并后的第二中间结果
Figure BDA00028762454900001220
包含各组合并后的中间结果。各组合并后的中间结果包含相应组加密后的中间结果A和相应组未加密的中间结果B。合并后的第二中间结果可表示为:
Figure BDA00028762454900001221
其中第q组合并后的第二中间结果可表示为:
Figure BDA00028762454900001222
Figure BDA00028762454900001223
为第q组加密后的中间结果A,
Figure BDA00028762454900001224
为第q组未加密的中间结果B。
步骤407’、装置B确定(或生成)模型B的梯度
Figure BDA00028762454900001225
梯度B包括模型A各参数的更新值。
其中,模型B的梯度B包括模型B的各参数对应的梯度A(也即模型B的各特征对应的梯度B)。如
Figure BDA00028762454900001226
Figure BDA00028762454900001227
模型B的第m个参数对应的梯度B。
步骤408’、装置B生成梯度B的噪声B(RB),梯度B的噪声B包括模型B的各参数对应的梯度的噪声A可表示为:
Figure BDA0002876245490000131
其中,
Figure BDA0002876245490000132
表示模型A的第m个参数对应的梯度的噪声。
Figure BDA0002876245490000133
为分组中第一条用户数据对应的第N+m个特征的噪声。
步骤409’,装置B根据各参数对应的梯度的噪声B与相应参数的梯度B,得到加密后的包含噪声B的梯度
Figure BDA0002876245490000134
然后将加密后的包含噪声B的梯度
Figure BDA0002876245490000135
发送给装置A.
步骤410、装置A使用私钥A(skA)解密装置B发送的加密后的包含噪声B的梯度
Figure BDA0002876245490000136
得到解密后的包含噪声B的梯度B(DGBR)。
具体的,装置A使用私钥A解密加密后的包含噪声B的梯度B中各参数的对应的梯度B。解密后的包含噪声B的梯度B(DGBR)包含模型B的各参数对应的包含噪声B的梯度B。比如,
Figure BDA0002876245490000137
Figure BDA0002876245490000138
表示模型B的第一个参数的梯度B,
Figure BDA0002876245490000139
表示模型B的第一个参数对应的噪声B。模型B的第一个参数对应数据集中第N+1个特征。
步骤411-412、装置A根据解密后的包含噪声B的梯度B(DGBR)得到分组前包含噪声B的梯度B(GBR),并将分组前包含噪声B的梯度B(GBR)发送给装置B。
分组前包含噪声B的梯度B(GBR)包各分组前各参数对应的包含噪声B的梯度B,可表示为:
Figure BDA00028762454900001310
其中,
Figure BDA00028762454900001311
为模型B的第一个参数的分组前的包含噪声B的梯度B。
Figure BDA00028762454900001312
模型B的第一个参数对应数据集中第N+1个特征。
步骤410’,装置B使用私钥B(skB)解密装置A发送的包含噪声A的梯度
Figure BDA00028762454900001313
得到解密后包含噪声A的梯度A(BGAR)。
具体的,装置B使用私钥B(skB)解密生成梯度A中各参数的梯度A。解密后的包含噪声A的梯度A(DGAR)包含模型A的参数对应的包含噪声A的梯度A。比如,
Figure BDA00028762454900001314
Figure BDA00028762454900001315
Figure BDA00028762454900001316
表示模型A的第1个参数的包含噪声A的梯度A,
Figure BDA00028762454900001317
表示模型A的第1个参数的的噪声B。模型A的第一个参数与数据集的第一个特征。
步骤411’-412’、装置B根据梯度B集合得到分组前包含噪声的梯度B集合GAR,并将分组前各特征对应的包含噪声的梯度B合集GAR发送给装置A。分组前包含噪声B的梯度B集合GAR包各分组前各特征对应的包含噪声B的梯度B。
步骤413、装置A根据分组前各特征对应的包含噪声B的解密后的梯度B集合GAR,得到去除噪声B的解密后的梯度B集合GA
梯度B集合GA包含模型B参数的各特征的梯度。梯度B集合可表示为:
Figure BDA00028762454900001318
Figure BDA00028762454900001319
其中,
Figure BDA00028762454900001320
为第二个特征的梯度。
Figure BDA00028762454900001321
步骤414、装置A根据去除噪声A的梯度A更新模型A(WA)。
模型A的更新可表示为:WA=WA-η*GA。其中,η为学习率为预先设定的学习率。本申请实施例不做限定。
步骤413’、装置B根据分组前各参数对应的包含噪声B的梯度B(GBR),得到梯度B(GB)。
步骤414’、装置B根据梯度B(GB)更新模型B(WB)。
重复执行步骤407到414’,直接对模型参数的改动小于预设值。
图4对应的实施例,装置A与装置B交换加密后的中间结果B和中间结果A,并使用加密后的中间结果生成梯度。并将梯度加密后发送给对方。因此,在装置A和装置B的数据交换过程中都采用了加密传输,保证了数据传输的安全性。
图5为本发明实施例提供的模型更新的另一方法流程图,包括如下步骤:
步骤500-501、装置A生成同态加密的公钥A(pkA)和私钥A(skA),并将公钥B发送给装置B。
步骤502.装置A对数据子集A(DA)分组,以得到分组后的数据子集A(DDA).
该步骤的具体方法可参考步骤402的描述,本申请实施例不再详述。
步骤503.装置A使用公钥A对分组后的数据子集A进行加密,得到加密后的数据子集
Figure BDA0002876245490000141
加密后的数据子集A包括各组的各特征对应数据。如下:
Figure BDA0002876245490000142
其中,
Figure BDA0002876245490000143
表示加密后的第q组的第n个特征对应的数据。
步骤504.根据模型A(WA)的各参数A形成与各参数A对应的参数组。
模型A的参数A也称模型A的特征,模型A的参数与数据子集A的特征一一对应。模型A的参数A表示为:
Figure BDA0002876245490000144
Figure BDA0002876245490000145
为模型A的第一个参数(或第一个特征)。模型A共有N个参数。形成与各参数A对应的参数组包括:将每个参数A复制L份形成与该参数A对应的组。L为图4中的多项式阶数。比如:
Figure BDA0002876245490000146
即第n组的参数为与特征n对应的组,包括L份第n个参数。
将模型A的各参数A复制L份,是因为各参数A是需要与分组后的数据子集A(DDA)进行相乘。参数A是一个向量,复制L份才可以将其变化为矩阵形式,方便与(DDA)进行矩阵乘法。
步骤505、装置A使用公钥A对各组参数A进行同态加密,得到加密后的参数
Figure BDA0002876245490000147
加密后的参数A包含加密后的各参数A对应的参数组。表示为:
Figure BDA0002876245490000148
步骤506.装置A将加密后的参数A和加密后的数据子集A发送给装置B。
值得说明的是,步骤502可以和步骤505一起执行。
步骤502’.装置B对数据子集B(DB)分组,以得到分组后的数据子集B(DDB).
该步骤的具体方法可参考步骤402’的描述,本申请实施例不再详述。
步骤503’.装置B对数据子集B的各条数居的标签YB进行分组,得到分组后的标签集。
分组后的标签集各组对应L个标签。对YB进行分组的方法可参考对数据子集B(DB)进行分组的方法,本申请实施例不再详述。
步骤504’,装置B使用模型B(WB)以及数据子集B(DB)计算数据子集B的中间结果B(UB),然后对中间结果B进行分组,以得到分组后的中间结果B(DUB)。
装置B得到分组后的中间结果B的具体描述可以参步骤步403’-404’的描述,本申之前施例在此不再详述。
步骤507、装置B根据加密后的参数
Figure BDA0002876245490000149
和加密后的数据子集
Figure BDA00028762454900001410
得到加密后的中间结果
Figure BDA00028762454900001411
比如,可以将加密后参数A的矩阵与加密后的数据子集A的矩阵相乘,得到加密后的中间结果A。加密后的中间结果A包括各组的中间结果A。各组的中间结果A为各参数A的中间结果A的和。可表示为:
Figure BDA00028762454900001412
步骤508、装置B根据分组后的中间结果B(DUB)与加密后的中间结果
Figure BDA00028762454900001413
得到合并后的第一中间果
Figure BDA00028762454900001414
步骤508的详述描述可参步骤骤407’,本申请实施例在此不再详述。
作为一种可选方式,装置B还可以将分组后的中间结果B使用公钥A进行同态加密后,与加密后的中间结果A得到合并的中间结果。在此实施例中,使用加密后的中间结果A和加密后的中间结果B生成的合并后的中间结果可以用于确定(或生成)模型A的加密后的梯度A,以及模型B的加密后的梯度B。
步骤509、装置B确定(或生成)模型A的加密后的梯度
Figure BDA0002876245490000151
梯度A包括模型A各参数A的更新值。
装置B得到加密后的梯度
Figure BDA0002876245490000152
的详述介绍可参数步骤407的描述,本申请实施例在些不再详述。
步骤510、装置B确定(或生成)模型A的噪声A(RA),模型A的噪声A为模型A的各参数A(也是各特征)的噪声A,可表示为:
Figure BDA0002876245490000153
装置B确定(或生成)模型A的噪声A(RA)的详述介绍可参数步骤408的描述,本申请实施例在些不再详述。
步骤511、装置B根据各梯度对应的噪声A与相应参数的梯度A,得到加密后的包含噪声A的梯度
Figure BDA0002876245490000154
装置B得到加密后的包含噪声A的梯度
Figure BDA0002876245490000155
的详述介绍可参数步骤409的描述,本申请实施例在些不再详述。
步骤512、装置B确定(或生成)模型B的梯度
Figure BDA0002876245490000156
梯度B包括模型B各参数的更新值。
装置B得到模型B的梯度
Figure BDA0002876245490000157
的详述介绍可参考步骤407’的描述,本申请实施例在些不再详述。
513、装置B生成模型B的噪声B(RB)。得到噪声B(RB)的详述介绍,可参考步骤408’的描述,本申请实施例在些不再详述。
步骤514、装置B根据各参数对应的噪声B与相应参数的梯度B,得到加密后的包含噪声B的梯度
Figure BDA0002876245490000158
加密后的包含噪声B的梯度
Figure BDA0002876245490000159
包含模型B的各参数B的包含噪声B的梯度B,可表示为:
Figure BDA00028762454900001510
其中:
Figure BDA00028762454900001511
为数据集D的第N+m个特征的加密后的梯度以及相应特征的噪声,也可以为模型B的第m个参数的加密后的梯度以及第m个参数的噪声。
步骤514、装置B将加密后的包含噪声B的梯度
Figure BDA00028762454900001512
以及加密后的包含噪声A的梯度
Figure BDA00028762454900001513
发送给装置A。
步骤515、装置A在接收装置B发送的包含噪声A的梯度
Figure BDA00028762454900001514
和包含噪声B的梯度
Figure BDA00028762454900001515
后,使用私钥A(skA)解密加密后的包含噪声A的梯度
Figure BDA00028762454900001516
以得到解密后的包含噪声A的梯度A(DGAR)。解密后的包含噪声A的梯度A(DGAR)包含模型A的各参数A对应的包含噪声A的梯度A。比如,
Figure BDA00028762454900001517
Figure BDA00028762454900001518
表示第1个参数的梯度A,
Figure BDA00028762454900001519
表示第1个参数的噪声A。此步骤可参考步骤410’的描述。
步骤516、装置A根据解密后的包含噪声A的梯度A(DGAR)得到分组前包含噪声A的梯度A(GAR)。
分组前包含噪声A的梯度A(GAR)包分组前各参数A对应的包含噪声A的梯度A。表示为:
Figure BDA00028762454900001520
Figure BDA00028762454900001521
为第n个特征包含噪声A的分组前的梯度A。
Figure BDA00028762454900001522
是根据一组中各条数据的该特征包含噪声A的梯度A确定。可表示为:
Figure BDA00028762454900001523
也就是说,解密后的值是同一个特征的值分组之后的结果,必须将同一组内同一特征(或参数)的多个值进行平均才可以获取对应参数的梯度。
步骤517、装置A根据分组前各参数对应的包含噪声A的梯度A更新模型AWRA=WA-η*GAR。
此步骤中,对模型A的更新带有噪声A。由于装置A侧没有噪声A的值。因此,此步骤中获取的模型A的更新是带噪声的梯度A产生的,因此更新后的模型A的参数也不是目标模型。
步骤518.装置A根据对更新后的模型A(WRA)得到更新后模型A的包含噪声A的参数A,表示为:
Figure BDA00028762454900001524
步骤519.装置A使用公钥A对更新后的模型A的包含噪声A的参数A进行同态加密,得到加密后的包含噪声A的参数
Figure BDA0002876245490000161
Figure BDA0002876245490000162
步骤520.装置A使用私钥A(skA)解密装置B发送的包含噪声B的梯度
Figure BDA0002876245490000163
得到解密后的包含噪声B的梯度B(DGBR)。步骤521可参考步骤410的详细描述。本申请实施例在此不再详述。
Figure BDA0002876245490000164
Figure BDA0002876245490000165
步骤521、装置A根据解密后的包含噪声B的梯度B得到分组前包含噪声B的梯度B(GBR)。
分组前包含噪声B的梯度B(GBR)包各分组前各参数对应的包含噪声B的梯度B,可表示为:
Figure BDA0002876245490000166
其中,
Figure BDA0002876245490000167
为分组前第N+1个特征对应的包含噪声的梯度A。
Figure BDA0002876245490000168
步骤522、装置A将分组前包含噪声A的梯度A集合GBR和加密后的包含噪声A的更新的参数
Figure BDA0002876245490000169
发送到装置B。
值得说明的是:装置A可以将GBR和
Figure BDA00028762454900001610
分开发送给装置B,也可以一起发送给装置B。
另外,装置A执行步骤520-521,与步骤515到516之间没有时间的先后顺序。
步骤523.装置B根据存储的各梯度A的噪声A,去除加密后的包含噪声A的更新后的参数
Figure BDA00028762454900001611
中的噪声A,得到加密后的更新的参数A。加密后的更新后参数A包含加密后的更新的各参数A,可表示为:
Figure BDA00028762454900001612
Figure BDA00028762454900001613
步骤524.装置B加密后的更新的各参数
Figure BDA00028762454900001614
发送给装置A.
步骤525.装置A使用私钥A对加密后的更新的各参数
Figure BDA00028762454900001615
进行解密,得到模型A更新后的参数
Figure BDA00028762454900001616
步骤524、装置B根据存储的噪声B,去除包含噪声B的梯度B(GBR)中的噪声B,得到梯度B集。梯度B集可表示为:
Figure BDA00028762454900001617
Figure BDA00028762454900001618
步骤525、装置B根据梯度B(GB)更新模型B(WB)。模型B的可表示为WB=WB-η*GB,其中,η为学习率为预先设定的学习率。本申请实施例不做限定。
重复执行步骤504’到步骤525,直至直接对模型参数的改动小于预设值。
本申请实施例中,装置A进行第二数据集的分组加密,由装置B对梯度B和梯度A进行计算,并由装置A进行梯度B和梯度A进行解密,最后由装置B对解密后梯度B和梯度A进行去噪,然后根据去噪后的梯度B和梯度A分别更新模型B和模型A。在本实施例中,梯度的传输不仅加密了还包含了噪声,使得更难通过梯度获取对端的原始数据,从而提高双方的数据安全。
图6为本申请实施例提供的更新模型参数的又一实施例的方法流程中,在此实施例中,由第三方进行加密后的数据的计算。此方法实施例包括如下步骤:
步骤601、装置A生成同态加密的公钥A(pkA)和私钥A(skA)。
步骤602-603、装置A对数据子集A(DA)分组,以得到分组后的数据子集A(DDA),并使用公钥A对分组后的数据子集A进行加密,得到加密后的数据子集
Figure BDA00028762454900001619
步骤602-603的详细描述参考步骤502和503的描述,本申请实施例在此不再详述。
步骤604、装置A将公钥A(pkA)和加密的数据子集
Figure BDA00028762454900001620
发送给装置C。
步骤605、装置A根据模型A(WA)的各参数A形成与各参数A对应的参数组A,然后使用公钥A对各组参数组A进行同态加密,得到加密后的参数组
Figure BDA00028762454900001621
步骤605的详述描述可参考步骤504到505的详细描述,本申请实施例在此不再详述。
步骤606、装置A将加密后的参数B集
Figure BDA0002876245490000171
发送给装置C。
作为一种可选方式,装置A还可以不形成参数组,而将模型A的各参数A加密后发送给装置C。
值得说明的是:步骤604与步骤606合并执行。
步骤601’,装置B对数据子集B(DB)分组,以得到分组后的数据子集B(DDB)。
该步骤的具体方法可参考步骤402’的描述,本申请实施例不再详述。
步骤602’,装置B对数据子集B的各条数居的标签YB进行分组,得到分组后的标签。
分组后的标签的各组对应L个标签。对YB进行分组的方法可参考对DB进行分组的方法,本申请实施例不再详述。
步骤607、装置C根据加密后的参数
Figure BDA0002876245490000172
和加密后的数据子集
Figure BDA0002876245490000173
得到加密后的中间结果
Figure BDA0002876245490000174
步骤607的详述描述可参考步骤507的详述描述,本申请实施例在此不再详述。
步骤608、装置C将加密后的中间结果
Figure BDA0002876245490000175
发送给装置B。
步骤609、装置B使用模型B(WB)、数据子集B(DB)以及分组后的标签确定(或生成)数据子集B的中间结果B(UB),然后对中间结果B进行分组,以得到分组后的中间结果B(DUB)。
装置B得到分组后的中间结果B的具体描述可以参步骤步403’-404’的描述,本申之前施例在此不再详述。
步骤610,装置B根据分组后的中间结果B(DUB)与加密后的中间结果
Figure BDA0002876245490000176
得到合并后的第一中间果
Figure BDA0002876245490000177
步骤610的详述描述参考步骤406’的详述描述,本申请实施例在此不再详述。
作为一种可选方式,装置B还可以使用公钥A对分组后的中间结果B进行同态加密,得到加密后的中间结果B,并将加密后的结果B和加密后的中间结A合并,得到合并后的第一中间结果。如果装置B需要使用公钥A对分组后的中间结果B进行加密,装置B需要先获取公钥A。
步骤611,装置B计算模型B的梯度
Figure BDA0002876245490000178
以及生成模型B的噪声B(RB),模型B的噪声B包括模型B的各参数的噪声B。然后装置B根据各参数B对应的噪声B与相应特征的梯度B,得到加密后的包含噪声B的梯度
Figure BDA0002876245490000179
并将加密后的包含噪声B的梯度
Figure BDA00028762454900001710
发送给装置A
步骤611的详述描述可参考步骤407’-步骤409’的详细描述,本申请实施例在些不再详述。
步骤612、装置B将合并后的第一中间果
Figure BDA00028762454900001711
发送给装置C。
本申请实施例将是把核心的计算过程放到了B侧和C侧,只不过在B侧和C侧的计算是加密后执行的,B侧和C侧执行的是密文计算,因此计算得到的梯度信息是密文的。由于更新模型需要的是明文的模型参数,因此必须将计算得到的密文送到A侧进行解密。同时为了防止A侧获取明文梯度,因此需要把计算得到的梯度加入随机数,保证即使A方解密也无法获取真实的梯度。
步骤613、装置B将加密后的包含噪声B的梯度
Figure BDA00028762454900001712
发送给装置A。
步骤614、装置C根据合并后的第一中间结果A以及模型A的加密后的参数A确定(或生成)模型A的梯度A。
步骤614与步骤509一样,本申请实施例在此不再详述。
步骤615、装置C确定(或生成)梯度A的噪声A(RA),梯度A的噪声A包括与模型A的各参数(也是各特征)对应的噪声A,可表示为:
Figure BDA00028762454900001713
装置C确定(或生成)模型A的噪声A(RA)的详细介绍可参数步骤408的描述,本申请实施例在些不再详述。
步骤616、装置C根据各参数A对应的噪声A与相应参数的梯度A,并使用公钥A进行同态加密,得到加密后的包含噪声A的梯度
Figure BDA00028762454900001714
装置C得到加密后的包含噪声A的梯度
Figure BDA00028762454900001715
的详述介绍可参数步骤409的描述,本申请实施例在些不再详述。
步骤617、装置C将加密后的包含噪声A的梯度
Figure BDA0002876245490000181
发送给装置A。
步骤618、装置A在接收装置C发送的加密后的包含噪声A的梯度
Figure BDA0002876245490000182
和包含噪声A的梯度A集合后
Figure BDA0002876245490000183
后,使用私钥A(skA)解密加密后的包含噪声A的梯度
Figure BDA0002876245490000184
以得到解密后的包含噪声A的梯度A(DGAR)。解密后的包含噪声A的梯度A(DGAR)包含模型A的各参数A对应的包含噪声A的梯度A。比如,
Figure BDA0002876245490000185
Figure BDA0002876245490000186
表示第1个参数A的梯度A,
Figure BDA0002876245490000187
表示第1个梯度A的噪声A。此步骤可参考步骤410’的描述。
步骤619、装置A根据解密后的包含噪声A的梯度A(DGAR)得到分组前包含噪声A的梯度A(GAR)。此步骤的详述描可参考步骤517的描述,本申请实施例在此不再详述。
步骤620、装置A使用私钥A(skA)解密加密后的包含噪声B的梯度
Figure BDA0002876245490000188
以得到解密后的包含噪声B的梯度B(DGBR)。
步骤621、装置A根据解密后包含噪声B的梯度B(DGBR)得到分组前的包含噪声B的梯度B(GBR)。此步骤的详述描可参考步骤517的描述,本申请实施例在此不再详述。
步骤622、装置A将分组前的包含噪声A的梯度A发送给装置C。
步骤623、装置A将分组前的包含噪声B的梯度B发送给装置B。
步骤624、装置C根据存储的各梯度的噪声A,去除包含噪声A的梯度A中的噪声A,以得到梯度A(GA)。
步骤625、装置C根据分组前各参数对应的梯度A更新模型BWRA=WA-η*GA
步骤626、装置B根据存储的与模型B的各参数B对应的噪声B,去除包含噪声B的梯度B中噪声B,得到的梯度B(GB)。
步骤627、装置B根据分组前各参数对应的包含梯度B更新模型B:WRB=WB-η*GB
重复执行步骤610到627,直到直接对模型参数的改动小于预设值。
通过本申请实施例,将部分计算步骤置于装置C,可以减少装置B的计算。此外,由于装置A、装置C、以及装置B之间的交互是分组后的且加密的数据,或加噪声的模型的梯度,因此还可以保证数据安全。
图7为本发明实施例提供的更新模型的另一方法流程图。在此实施例中,同一个用户的数据的不同特征(值)分别位于多个装置(本申请实施例假设为三个),但只是一个装置中的数据包含标签。则纵向联邦场景的模型包括两个或两个以上的模型A(WA1和WA2,如果有H个装置A,则有H个模型WAH)和模型B(WB)。模型A(WA)的参数可表示为:
Figure BDA0002876245490000189
Figure BDA00028762454900001810
模型B(WB)的参数可表示为:
Figure BDA00028762454900001811
不同的模型A具有不同的参数。在本申请实施例中,假设模型的一个参数对应数据子集中的一个特征。
与图4对应的实施例不同的是,加密阶段各装置使用各自生成的公钥(包含装置A-1生成的公钥A1、装置A-2生成的公钥A-2,装置B生成的公钥B)生成公共公钥,各装置使用公共公钥对各自的数据子集进行加密。并将加密的数据子集,根据加密的数据子集生成的加密的中间结果和加密的梯度,和/或包含在加密的梯度中噪声等发送给其它的装置。比如通过广播的方式,装置A1将加密的数据子集、中间结果、梯度和/或噪声等发送给装置B或A2。又比如装置A1分别将加密的数据子集DA1、中间结果DUA1和/或噪声A1等发送给装置B或A1。
为了叙述简便,各装置均参与纵向联邦模型的训练,但只允许一个装置包含的数据为有标签的数据(本申请实施例为装置B的数据为有标签的数据),而其它装置包含的数据为无标签的数据。假设共有H个装置的数据为无标签的数据,包含无标签的数据的装置可以表示为A1-AN,统装置A。
在本申请实施例中,将具有标签的数据子集称为数据子集B,存储有数据子集B的装置称为装置B。其它的存储的不具有标签的数据的装置称为装置A。本申请实施例具有两个或两个以上装置A。
如图7所示,本申请实施例,包括如下步骤:
第701:各装置生成同态加密的公钥和私钥,并将装置生成的公钥发送给其它的装置。然后根据自身生成的公钥以及接收到的其它装置生成的公钥,生成共公共钥。
以装置A1为例,装置A1生成同态加密的公钥A1(pkA1)和私钥A1(skA1),并接收装置B发送的公钥B(pkB)和装置A2发送的公钥A2(pkC2),以及将公钥A1分别发送给装置B和装置A2。
装置A1根据公钥A1、公钥A2以及公钥B生成公共公钥pkAll
装置B和装置A2也执步装置A1执行的相同的步骤,本申请实例在此不在详述。
步骤702:各装置使用各自的数据子集以及各自的模型确定(或生成)各数据子集的中间结果。
值得说明的是:步骤702的详述描述可参考步骤403的详述描述,本申请实施例在此不再详述。
步骤703、各装置对各自的中间结果使用公共公钥进行加密,并将加密后的中间结果发送给其它的装置。
以装置A1为例,装置A1对中间结果A1使用公共公钥进行加密,并将加密后的中间结果
Figure BDA0002876245490000191
发送给装置B和装置A2。
以装置B为例,装置B使用公共公钥对中间结果B进行加密,并将加密后的中间结果
Figure BDA0002876245490000192
发送给装置A1和装置A2。
以装置A2为例,装置A2使用公共公钥对中间结果A2(UA2)进行加密,并将加密后的中间结果
Figure BDA0002876245490000193
发送给装置A1和装置B。
在此实施例中,各模型训练过程中使用的中间结果是根据各装置的数据子集和各装置的模型产生的。比如,中间结果A1是根据模型A1和数据子集A1确定(或生成)的。中间结果A2是根据模型A2和数据子集A2确定(或生成)的。中间结果B是根据模型B和数据子集B确定(或生成)的。本申请实施例使用公共密钥对中间结果加密后发送给其它装置,可以避免不信任第三方根据中间结果得到数据,从而保证了数据的安全。
步骤704、各装置根据各确定(或生成)的加密后中间结果以及接收到的其它装置发送的加密后的中间结果,生成合并后的中间结果。
作为一个例子,合并后的中间结果为:
Figure BDA0002876245490000194
步骤705、各装置根据合并后的中间结果计算各自模型的梯度。
以装置A1为例,模型A1的梯度包括模型A1的各参数对应的梯度,可以表示为:
Figure BDA0002876245490000195
其中,
Figure BDA0002876245490000196
为模型A1的第n个特征对应的梯度。
Figure BDA0002876245490000197
其中,
Figure BDA0002876245490000198
为:数据子集A1中第n个特征对应的数据。
步骤706、各装置将对应的梯度按发送给其他装置,并接收其它装置对梯度的解密结果。然后,使用解密后的梯度,更新各自的模型。
作为一种可选可选方式,步骤706可以使用依次解密的方式,如下:
以装置A1为例,装置A1将梯度
Figure BDA0002876245490000199
发送依次发送给装置B或A2,在收到装置B或装置A2解密后的梯度后,再将由装置B或装置A2解密后的梯度发送给装置A2或装置B,直至所有的装置均对梯度进行解密。
装置B或装置A2对梯度
Figure BDA00028762454900001910
使用各自的私钥进行解密。
作为一种可选可选方式,步骤706可以使用分别解密的方式,如下:
以装置A1为例,装置A1将梯度
Figure BDA00028762454900001911
分别发送给装置B与A2,在收到装置B与装置A2解密后的梯度后,再将由装置B与装置A2解密后的梯度进行合成,得到最终的解密结果。
装置B与装置A2对梯度
Figure BDA00028762454900001912
使用各自的私钥进行解密。
以装置A1为例,根据模型A1可参考步骤414的描述。
作为一种可选方式,步骤706中各装置还可以不用将梯度发送给其它装置进行解密,而直接使用加密后的梯度进行模。
在密文状态下更新模型梯度的情况下,模型更新几轮后,可选对加密的参数进行一次解密的过程,用于校准密文状态下的模型参数。任意一方模型参数的校准需要一个代理方负责本方加密后参数的校准操作。此操作可选的实现方式为一以下两种:
第一种实现方式,参数方分别进行解密,以装置A1为例,待校准方A1的加密模型参数加噪后发送给代理方B,代理方将加噪后加密模型参数分别独立的发送给其他参与方,并且接收各方返回的解密结果,同时代理方同样解密此加噪后的加密模型参数,并将多方解密结果进行合成得到明文的带噪模型参数,并将其用合成的公钥进行加密后反馈给装置A1,装置A1对返回后的加密模型参数进行密文下去噪的操作,得到校准后的加密模型参数。
第二种实现方式,参数方依次进行解密,以装置A1为例,待校准方A1的加密模型参数加噪R1(密文下)后发送给代理方B,代理方加噪RB(密文下)后,将其依次发送给其他参与方,参与此循环的各方依次加入噪声(密文下),最后返回到代理方B。代理方将加入各方噪声的加密模型参数发送给各方(包括A1与B本身),各方分别进行解密后返回代理方B,B方得到带各方噪声的明文模型参数。之后B方利用合成密钥加密后,依次调用除A1的各方依次去噪(密文状态下),最后返回给A1。A1在密文状态下去噪R1,得到校准后的加密模型参数。
与图4对应的实施例相比,图7对应的实施例中有三个或三个以上的装置参与纵向联邦学习,各装置采用公共公钥对中间结果进行加密,由装置使用各自的私钥对其它装置生成的梯度进行解密。使得在纵向联邦学习的场景下既保证的数据安全,还由于各方加密操作只执行了一次,减少了交互次数,节省网络资源。
图8为本申请实施例提供的一种装置,包括接收模块801,处理模块802和发送模块803。
处理模块802用于根据第一数据子集生成第一中间结果。接收模块801,用于接收第二装置发送的加密后的第二中间结果,所述第二中间结果根据第二装置对应的第二数据子集生成。所述处理模块802进一步用于:获得第一模型的第一梯度,所述第一模型的第一梯度根据所述第一中间结果和加密后的所述第二中间结果生成;所述第一模型的第一梯度在使用第二私钥进行解密后,用于更新第一模型,所述第二私钥为所述第二装置生成的用于同态加密的解密密钥。
可选的,所述第二中间结果使用所述第二装置生成的用于同态加密的第二公钥加密,所述处理模块802进一步用于生成用于同态加密的第一公钥和第一私钥,以及使用所述第一公钥对所述第一中间结果进行加密。
可选的,发送模块803,用于发送所述加密后的第一中间结果发送。
作为另一种可选方式,发送模块803用于发送加密后的第一数据子集以及加密后的第一模型的第一参数,所述加密后的第一数据子集以及加密后的第一参数用于确定(或生成)加密后的第一中间结果。所述接收模块801用于,接收加密后所述第一模型的第一梯度,所述第一模型的第一梯度根据所述加密后的第一中间结果,所述加密后的第一参数以及加密后的第二中间结果确定(或生成).所述处理模块802用于,对所述加密后的第一梯度使用第一私钥进行解密,所述解密后的第一模型的第一梯度用于更新所述第一模型。
作为另一种可选方式,所述接收模块801用于,接收加密后的第一中间结果和加密后的第二中间结果,以及接收第一模型的参数。所述处理模块802,用于根据所述加密后的第一中间结果和所述加密后的第二中间结果,以及第一模型的参数确定(或生成)第一模型的第一梯度,对所述第一梯度进行解密,根据所述解密后的第一梯度,更新所述第一模型。
作为另一可选方式,所述图8中装置中的模块还可以用来执行图3,到图7中的方法流程中任意装置的任意步骤。本申请实施例在此不再详述。
作为一种可选方式,该装置可以是芯本。
如图9所示,为本申请实施例提供的装置的70的硬件结构示意图。该装置可以为图2A中的各实体或网元,也可以为图2B中的各装置。该装置可以是图3-图7中的任一装置。
图9所示的装置可以包括:处理器901、存储器202、通信接口904,输出设备905,输入设备906以及总线903。处理器901、存储器902以及通信接口904、输出设备905、输入设备906之间可以通过总线903连接。
处理器901是计算机设备的控制中心,可以是一个通用中央处理单元(centralprocessing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一个示例,处理器901可以包括一个或多个CPU。
存储器902可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
一种可能的实现方式中,存储器902可以独立于处理器901存在。存储器902可以通过总线903与处理器901相连接,用于存储数据、指令或者程序代码。处理器91调用并执行存储器902中存储的指令或程序代码时,能够实现本申请实施例提供的机器学习模型的更新方法,例如,图3图-图7任一所示的机器学习模型的更新方法。
另一种可能的实现方式中,存储器902也可以和处理器701集成在一起。
通信接口904,用于装置与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口904可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
总线903,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图9中示出的结构并不构成对计算机设备90的限定,除图9所示部件之外,计算机设备70可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对机器学习模型管理装置(如机器学习模型管理中心或联邦学习服务端)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。
另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (36)

1.一种机器学习模型的更新方法,其特征在于,包括:
第一装置根据第一数据子集和第一模型生成第一中间结果;
第一装置接收第二装置发送的加密后的第二中间结果,所述第二中间结果根据第二装置对应的第二数据子集和第二模型生成;
第一装置获得所述第一模型的第一梯度,所述第一梯度根据所述第一中间结果和加密后的所述第二中间结果生成;
所述第一梯度在使用第二私钥进行解密后,用于更新所述第一模型,所述第二私钥为所述第二装置生成的用于同态加密的解密密钥。
2.根据权利要求1所述的方法,其特征在于,所述第二中间结果使用所述第二装置生成的用于同态加密的第二公钥加密,该方法进一步包括:
所述第一装置生成用于同态加密的第一公钥和第一私钥;
所述第一装置使用所述第一公钥对所述第一中间结果进行加密。
3.根据权利要求2所述的方法,其特征在于,所述第一装置将所述加密后的第一中间结果发送给所述第二装置。
4.根据权利要求2所述的方法,其特征在于,所述第一模型的第一梯度根据所述第一中间结果和加密后的所述第二中间结果确定具体为:所述第一模型的第一梯度根据加密后的所述第一中间结果和加密后的所述第二中间结果确定,该方法进一步包括:
所述第一装置使用所述第一私钥对所述第一模型的第一梯度解密。
5.根据权利要求1-4任一所述的方法,其特征在于,该方法进一步包括:
所述第一装置生成所述第一模型的第一梯度的第一噪声;
所述第一装置将包含所述第一噪声的第一梯度发送给所述第二装置;
所述第一装置接收使用所述第二私钥解密后的第一梯度,所述解密后的梯度包含所述第一噪声。
6.根据权利要求1-5任一所述的方法,该方法进一步包括:
所述第一装置接收所述第二装置发送的第二模型的第二参数;
所述第一装置根据所述加密后第一中间结果和加密后的所述第二中间结果,以及所述第二模型的第二参数集确定所述第二模型的第二梯度;
所述第一装置将所述第二模型的第二梯度发送给所述第二装置。
7.根据权利要求6所述的方法,其特征在于,该方法进一步包括:
所述第一装置确定所述第二梯度的第二噪声;
所述发送给所述第二装置的第二梯度包含所述第二噪声。
8.根据权利要求6或7所述的方法,其特征在于,该方法进一步包括:
所述第一装置接收包含所述第二噪声的更新后的第二参数,所述第二参数集为用所述第二梯度更新所述第二模型的参数集;
所述第一装置去除包含在所述更新后的第二参数中的第二噪声。
9.根据权利要求1-8任一所述的方法,其特征在于,
所述第一装置接收至少两个用于同态加密的所述第二公钥,所述至少两个第二公钥由至少两个第二装置生成;
所述第一装置根据接收到所述至少两个第二公钥以及所述第一公钥生成用于同态加密的公共公钥;所述公共公钥用于加密所述第二中间结果和/或所述第一中间结果。
10.根据权利要求9所述的方法,其特征在于:所述第一模型的第一梯度使用第二私钥进行解密包括:
所述第一装置将所述第一模型的第一梯度依次发送给所述至少两个第二装置,并接收所述至少两个第二装置分别使用对应的第二私钥解密后的第一模型的第一梯度。
11.根据权利要求9或10所述的方法,其特征在于:该方法进一步包括:所述第一装置使用所述第一私钥对所述第一模型的第一梯度解密。
12.一种机器学习模型的更新方法,其特征在于,包括:
第一装置发送加密后的第一数据子集以及加密后的第一模型的第一参数,所述加密后的第一数据子集以及加密后的第一参数用于确定加密后的第一中间结果;
所述第一装置接收加密后所述第一模型的第一梯度,所述第一模型的第一梯度根据所述加密后的第一中间结果,所述加密后的第一参数以及加密后的第二中间结果确定;
所述第一装置对所述加密后的第一梯度使用第一私钥进行解密,所述解密后的第一模型的第一梯度用于更新所述第一模型。
13.根据权利要求12所述的方法,其特征在于,该方法进一步包括:
所述第一装置接收加密后的第二模型的第二梯度,所述加密后的第二梯度根据所述加密后的第一中间结果和加密后的第二中间结果确定,所述第二中间结果根据第二装置的第二数据子集和第二装置的第二模型的参数确定,所述加密后第二中间结果由所述第二装置对所述第二中间结果进行同态加密得到;
所述第一装置使用所述第一私钥解密所述第二梯度;
所述第一装置向所述第二装置发送经所述第一私钥解密后的第二梯度,所述解密后的第二梯度用于更新所述第二模型。
14.根据权利要求12或13的方法,其特征在于,所述第一装置接收的第一梯度包含第一噪声,所述解密后的第一梯度包含所述第一噪声,所述更新后的第一模型的参数包含所第一噪声。
15.根据权利要求12-14任一所述的方法,其特征在于,该方法进一步包括:
所述第一装置根据所述解密后的第一梯度更新所述第一模型;或
所述第一装置发送所述解密后的第一梯度。
16.根据权利要求12-15任一所述的方法,其特征在于,该方法进一步包括:
所述第一装置接收至少两个用于同态加密的所述第二公钥,所述至少两个第二公钥由至少两个第二装置生成;
所述第一装置根据接收到所述至少两个第二公钥以及所述第一公钥生成用于同态加密的公共公钥;所述公共公钥用于加密所述第二中间结果和/或所述第一中间结果。
17.一种机器学习模型的更新方法,其特征在于:
接收加密后的第一中间结果和加密后的第二中间结果,所述加密后的第一中间结果根据第一装置的加密后的第一数据子集和第一模型生成,所述加密后的第二中间结果根据第二装置的加密后的第二数据子集和第二模型生成;
接收第一模型的参数;
根据所述加密后的第一中间结果和所述加密后的第二中间结果,以及第一模型的参数确定第一模型的第一梯度;
对所述第一梯度进行解密;
根据所述解密后的第一梯度,更新所述第一模型。
18.根据权利要求17所述的方法,其特征在于,所述加密后的第一中间结果为使用第一公钥对第一中间结果进行同态加密后获得;所述加密后的第二中间结果为使用所述第一公钥对第二中间结果进行同态加密后获得。
19.根据权利要求18或17所述的方法,其特征在于:对所述第一梯度进行解密包括:
使用第一私钥对的第一梯度进行解密。
20.根据权利要求19所述的方法,其特征在于,该方法进一步包括:
将所述第一梯度发送给第一装置。
21.根据权利要求20所述的方法,其特征在于,该方法进一步包括:从第一装置获取第一公钥,将述第一公钥发送给第二装置。
22.一种机器学习模型更新的装置,其特征在于,包括接收模块和处理模块,
所述处理模块,用于根据第一数据子集和第一模型生成第一中间结果;
所述接收模块,用于接收第二装置发送的加密后的第二中间结果,所述第二中间结果根据第二装置对应的第二数据子集和第二模型生成;
所述处理模块进一步用于:获得所述第一模型的第一梯度,所述第一梯度根据所述第一中间结果和加密后的所述第二中间结果生成;所述第一模型的第一梯度在使用第二私钥进行解密后,用于更新第一模型,所述第二私钥为所述第二装置生成的用于同态加密的解密密钥。
23.根据权利要求22所述的装置,其特征在于,所述第二中间结果使用所述第二装置生成的用于同态加密的第二公钥加密,
所述处理模块进一步用于生成用于同态加密的第一公钥和第一私钥,以及使用所述第一公钥对所述第一中间结果进行加密。
24.根据权利要求23所述的装置,其特征在于,该装置进一步包括发送模块,用于发送所述加密后的第一中间结果发送。
25.根据权利要求22-24任一所述的装置,其特征在于,
所述处理模块进一步用于生成第一模型的第一梯度的第一噪声;
所述发送模块进一步用于,将包含所述第一噪声的第一梯度发送给所述第二装置;
所述接收模块进一步用于,接收使用所述第二私钥解密后的第一梯度,所述解密后的梯度包含所述第一噪声。
26.一种机器学习模型更新的装置,其特征在于,包括接收模块、处理模块和发送模块,
所述发送模块用于,发送加密后的第一数据子集以及加密后的第一模型的第一参数,所述加密后的第一数据子集以及加密后的第一参数用于确定加密后的第一中间结果;
所述接收模块用于,接收加密后所述第一模型的第一梯度,所述第一模型的第一梯度根据所述加密后的第一中间结果,所述加密后的第一参数以及加密后的第二中间结果确定;
所述处理模块用于,对所述加密后的第一梯度使用第一私钥进行解密,所述解密后的第一模型的第一梯度用于更新所述第一模型。
27.根据权利要求26所述的装置,其特征在于,
所述接收模块进一步用于,接收加密后的第二模型的第二梯度,所述加密后的第二梯度根据所述加密后的第一中间结果和加密后的第二中间结果确定,所述第二中间结果根据第二装置的第二数据子集和第二装置的第二模型的参数确定,所述加密后第二中间结果由所述第二装置对所述第二中间结果进行同态加密得到;
所述处理模块进一步用于,使用所述第一私钥解密所述第二梯度;
所述发送模块进一步用于,发送经所述第一私钥解密后的第二梯度,所述解密后的第二梯度用于更新所述第二模型。
28.根据权利要求26或27所述的装置,其特征在于,所述接收模块进一步用于,接收的第一梯度包含第一噪声,所述解密后的第一梯度包含所述第一噪声,所述更新后的第一模型的参数包含所第一噪声。
29.根据权利要求26-28任一所述的装置,其特征在于,
所述处理模块进一步用于,根据所述解密后的第一梯度更新所述第一模型。
30.根据权利要求26-29任一所述的装置,其特征在于,
所述接收模块进一步用于,接收至少两个用于同态加密的所述第二公钥,所述至少两个第二公钥由至少两个第二装置生成;
所述处理模块进一步用于,根据接收到所述至少两个第二公钥以及所述第一公钥生成用于同态加密的公共公钥;所述公共公钥用于加密所述第二中间结果和/或所述第一中间结果。
31.一种机器学习模型更新的装置,其特征在于,包括接收模块、处理模块,
所述接收模块用于,接收加密后的第一中间结果和加密后的第二中间结果,以及接收第一模型的参数,所述加密后的第一中间结果根据第一装置的加密后的第一数据子集和第一模型生成,所述加密后的第二中间结果根据第二装置的加密后的第二数据子集和第二模型生成;
所述处理模块,用于根据所述加密后的第一中间结果和所述加密后的第二中间结果,以及第一模型的参数确定第一模型的第一梯度,对所述第一梯度进行解密,根据所述解密后的第一梯度,更新所述第一模型。
32.根据权利要求31所述的装置,其特征在于,所述加密后的第一中间结果为使用第一公钥对第一中间结果进行同态加密后获得;所述加密后的第二中间结果为使用所述第一公钥对第二中间结果进行同态加密后获得。
33.一种通信装置,其特征在于,包括:
存储器,存储有可执行的程序指令;和
处理器,所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以使所述通信装置实现如权利要求1-22任一所述的方法。
34.如权利要求33所述的装置,其特征在于,所述装置为终端、终端中的芯片或者网络设备。
35.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-21任一所述的方法。
36.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-21中任意一项所述的方法。
CN202011635759.9A 2020-12-31 2020-12-31 机器学习模型更新的方法和装置 Pending CN114691167A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011635759.9A CN114691167A (zh) 2020-12-31 2020-12-31 机器学习模型更新的方法和装置
EP21913114.1A EP4270266A4 (en) 2020-12-31 2021-08-14 METHOD AND APPARATUS FOR UPDATE A MACHINE LEARNING MODEL
PCT/CN2021/112644 WO2022142366A1 (zh) 2020-12-31 2021-08-14 机器学习模型更新的方法和装置
US18/344,188 US20230342669A1 (en) 2020-12-31 2023-06-29 Machine learning model update method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011635759.9A CN114691167A (zh) 2020-12-31 2020-12-31 机器学习模型更新的方法和装置

Publications (1)

Publication Number Publication Date
CN114691167A true CN114691167A (zh) 2022-07-01

Family

ID=82135257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011635759.9A Pending CN114691167A (zh) 2020-12-31 2020-12-31 机器学习模型更新的方法和装置

Country Status (4)

Country Link
US (1) US20230342669A1 (zh)
EP (1) EP4270266A4 (zh)
CN (1) CN114691167A (zh)
WO (1) WO2022142366A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220210140A1 (en) * 2020-12-30 2022-06-30 Atb Financial Systems and methods for federated learning on blockchain
CN117792838A (zh) * 2022-09-27 2024-03-29 华为技术有限公司 传输数据的方法和相关装置
CN115796305B (zh) * 2023-02-03 2023-07-07 富算科技(上海)有限公司 一种纵向联邦学习的树模型训练方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554390B2 (en) * 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption
CN109886417B (zh) * 2019-03-01 2024-05-03 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、装置、设备及介质
CN110190946B (zh) * 2019-07-12 2021-09-03 之江实验室 一种基于同态加密的隐私保护多机构数据分类方法
CN111178538B (zh) * 2019-12-17 2023-08-15 杭州睿信数据科技有限公司 垂直数据的联邦学习方法及装置
CN111340247A (zh) * 2020-02-12 2020-06-26 深圳前海微众银行股份有限公司 纵向联邦学习系统优化方法、设备及可读存储介质

Also Published As

Publication number Publication date
EP4270266A4 (en) 2024-06-05
WO2022142366A1 (zh) 2022-07-07
US20230342669A1 (en) 2023-10-26
EP4270266A1 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
CN110008717B (zh) 支持隐私保护的决策树分类服务系统及方法
CN109165725B (zh) 基于迁移学习的神经网络联邦建模方法、设备及存储介质
Giacomelli et al. Privacy-preserving ridge regression with only linearly-homomorphic encryption
US20210409191A1 (en) Secure Machine Learning Analytics Using Homomorphic Encryption
CN114691167A (zh) 机器学习模型更新的方法和装置
RU2534944C2 (ru) Способ обеспечения безопасности связи в сети, используемые для этого устройство связи, сеть и компьютерная программа
CN104270247B (zh) 适用于量子密码系统的高效泛Hash函数认证方法
CN112800466B (zh) 基于隐私保护的数据处理方法、装置和服务器
CN111340247A (zh) 纵向联邦学习系统优化方法、设备及可读存储介质
CN111340453A (zh) 联邦学习开发方法、装置、设备及存储介质
CN115037477A (zh) 一种基于区块链的联邦学习隐私保护方法
WO2022213965A1 (zh) 用于控制带宽的多方联合数据处理方法及装置
CN113435592A (zh) 一种隐私保护的神经网络多方协作无损训练方法及系统
CN114003950A (zh) 基于安全计算的联邦机器学习方法、装置、设备及介质
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
CN111767411A (zh) 知识图谱表示学习优化方法、设备及可读存储介质
CN112818369A (zh) 一种联合建模方法及装置
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
CN113792890B (zh) 一种基于联邦学习的模型训练方法及相关设备
CN117478303B (zh) 区块链隐蔽通信方法、系统和计算机设备
CN114492850A (zh) 基于联邦学习的模型训练方法、设备、介质及程序产品
CN107196918A (zh) 一种匹配数据的方法和装置
CN110209994A (zh) 基于同态加密的矩阵分解推荐方法
CN112016698A (zh) 因子分解机模型构建方法、设备及可读存储介质
CN111985573A (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