CN113822311A - 一种联邦学习模型的训练方法、装置及电子设备 - Google Patents
一种联邦学习模型的训练方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113822311A CN113822311A CN202011617342.XA CN202011617342A CN113822311A CN 113822311 A CN113822311 A CN 113822311A CN 202011617342 A CN202011617342 A CN 202011617342A CN 113822311 A CN113822311 A CN 113822311A
- Authority
- CN
- China
- Prior art keywords
- training
- splitting
- feature
- node
- data instance
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- 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
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种联邦学习模型的训练方法、装置及电子设备,应用于服务端,该方法包括:如果训练节点满足预设***条件,则获取训练节点对应的目标***方式;其中,训练节点为多个提升树中一个提升树上的节点;通知客户端基于目标***方式进行节点***;以训练节点***后生成的左子树节点重新作为训练节点进行下一轮训练,直至更新的训练节点不再满足预设***条件;以一个提升树的其它非叶子节点重新作为训练节点进行下一轮训练;如果多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。由此,本申请通过将横向和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,提升了联邦学习模型的性能。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种联邦学习模型的训练方法、装置及电子设备。
背景技术
联邦学习,一种新兴的人工智能基础技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。其中,联邦学习可使用的机器学习算法不局限于神经网络,还包括随机森林等重要算法。联邦学习有望成为下一代人工智能协同算法和协作网络的基础。
根据数据特点,联邦学习主要分为横向联邦学习和纵向联邦学习。其中,横向联邦学习要求数据是同构的;纵向联邦学习要求数据是异构的。但合作进行联邦学习的多方数据,很难完全保证异构或同构,因此,在基于联邦学习进行模型训练时,只能丢弃部分同构或者异构的数据。当丢弃的数据较多时,导致基于联邦学习训练得到的模型的性能较差。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种联邦学习模型的训练方法,用于解决现有联邦学习模型的训练方法过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的技术问题。
本发明的第二个目的在于提出另一种联邦学习模型的训练方法。
本发明的第三个目的在于提出一种联邦学习模型的训练装置。
本发明的第四个目的在于提出另一种联邦学习模型的训练装置。
本发明的第五个目的在于提出一种电子设备。
本发明的第六个目的在于提出一种计算机可读存储介质。
为了实现上述目的,本申请第一方面实施例提供了一种联邦学习模型的训练方法,应用于服务端,所述方法包括以下步骤:如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式;其中,所述训练节点为多个提升树中一个提升树上的节点;通知客户端基于所述目标***方式进行节点***;以所述训练节点***后生成的左子树节点重新作为所述训练节点进行下一轮训练,直至更新的所述训练节点不再满足所述预设***条件;以所述一个提升树的其它非叶子节点重新作为所述训练节点进行下一轮训练;如果所述多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
另外,根据本申请上述实施例的联邦学习模型的训练方法还可以具有如下附加的技术特征:
根据本申请的一个实施例,所述获取所述训练节点对应的目标***方式,包括:基于第一训练集合,协同所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值;基于第二训练集合,协同所述客户端进行纵向联邦学习,以得到所述训练节点对应的第二***值;根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式。
根据本申请的一个实施例,所述根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式,包括:确定所述第一***值与所述第二***值中较大的值为所述训练节点对应的目标***值;根据所述目标***值,确定所述训练节点对应的***方式。
根据本申请的一个实施例,所述基于第一训练集合,协和所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值,包括:从所述第一训练集合中产生所述训练节点可用的第一特征子集,并发送给所述客户端;接收所述客户端发送的所述第一特征子集中每个特征的特征值;根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值;根据所述每个特征对应的所述横向***值,确定所述训练节点的所述第一***值。
根据本申请的一个实施例,所述根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值,包括:针对所述第一特征子集中任一特征,根据所述任一特征的特征值,确定所述任一特征的***阈值;根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,所述第一数据实例标识集合包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识;根据所述第一数据实例标识集合和所述第二数据实例标识集合,确定所述任一特征对应的所述横向***值。
根据本申请的一个实施例,所述根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,包括:向所述客户端发送所述***阈值;接收所述客户端发送所述训练节点对应的初始数据实例标识集合,其中,所述初始数据实例标识集合为所述客户端根据所述***阈值对所述任一特征进行节点***时生成的,所述初始数据实例标识集合包括属于所述第一左子树空间的数据实例标识;基于所述初始数据实例标识集合和所有数据实例标识,获得所述第一数据实例标识集合和所述第二数据实例标识集合。
根据本申请的一个实施例,所述基于所述初始数据实例标识集合,获得所述第一数据实例标识集合和所述第二数据实例标识集合,包括:将所述初始数据实例标识集合中的每个数据实例标识,与所述客户端的数据实例标识进行对比,获取存在异常的数据实例标识;对所述异常的数据实例标识进行预处理,获取所述第一数据实例标识集合;基于所有数据实例标识和所述第一数据实例标识集合,获取所述第二数据实例标识集合。
根据本申请的一个实施例,所述基于第二训练集合,协和所述客户端进行纵向联邦学习,得到所述训练节点对应的第二***值,包括:通知所述客户端基于所述第二训练集合进行纵向联邦学习;接收所述客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值;根据每个特征对应的纵向***值,确定所述训练节点的所述第二***值。
根据本申请的一个实施例,所述根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值,包括:针对任一特征,根据所述总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;针对每个第一梯度信息,根据所述第一梯度信息和所述第一梯度信息相对应的第二梯度信息,获取所述任一特征的候选纵向***值;选取所述候选纵向***值中的最大值,作为所述任一特征的纵向***值。
根据本申请的一个实施例,其中,所述第一梯度信息包括属于所述第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二左子树空间的数据实例所对应的特征的二阶梯度之和;所述第二梯度信息包括属于所述第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二右子树空间的数据实例所对应的特征的二阶梯度之和。
根据本申请的一个实施例,还包括:若所述训练节点未满足预设***条件,则确定所述训练节点为叶子节点,并获取所述叶子节点的权重值;将所述叶子节点的权重值发送给所述客户端。
根据本申请的一个实施例,所述获取所述叶子节点的权重值,包括:获取属于所述叶子节点的数据实例;获取所述属于所述叶子节点的数据实例的一阶梯度信息以及二阶梯度信息,并根据所述一阶梯度信息以及所述二阶梯度信息,获取所述叶子节点的权重值。
根据本申请的一个实施例,所述通知所述客户端基于所述目标***方式进行节点***之前,还包括:向所述客户端发送***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值。
根据本申请的一个实施例,所述目标***方式为纵向***方式时,所述通知所述客户端基于所述目标***方式进行节点***之前,还包括:向有标签的客户端发送所述***信息;接收所述有标签的客户端发送的左子树空间集合;根据所述左子树空间集合,对所述第二训练集合进行***;将所述训练节点与所述有标签的客户端的标识进行关联。
根据本申请的一个实施例,所述如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式之前,所述方法还包括:接收所述客户端发送的数据实例标识;根据所述数据实例标识,确定客户端之间的共同数据实例标识,其中,所述共同数据实例标识用于指示所述客户端确定所述第一训练集合和所述第二训练集合。
本申请第一方面实施例提供了联邦学习模型的训练方法,服务端通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
为了实现上述目的,本申请第二方面实施例提供了一种联邦学习模型的训练方法,应用于客户端,所述方法包括以下步骤:接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,所述训练节点为多个提升树中一个提升树上的节点;基于所述目标***方式对所述训练节点进行节点***。
根据本申请的一个实施例,所述基于所述目标***方式对所述训练节点进行节点***之前,还包括:基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值;基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值;将所述第一***值和所述第二***值发送给所述服务端。
根据本申请的一个实施例,所述基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值,还包括:接收所述服务端从所述第一训练集合中产生的所述训练节点可用的第一特征子集;向所述服务端发送所述第一特征子集中每个特征的特征值;接收所述服务端发送的所述每个特征的***阈值;基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,并将所述初始数据实例标识集合发送给所述服务端;其中,所述初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,所述第一数据实例标识集合和所述初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
根据本申请的一个实施例,所述基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,包括:针对任一特征,将所述任一特征的***阈值分别与所述任一特征的特征值进行比较,获取所述特征值小于所述***阈值的数据实例标识,生成所述初始数据实例标识集合。
根据本申请的一个实施例,所述基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值之前,还包括:接收所述服务端发送的梯度信息请求;根据所述梯度信息请求,从第二训练集合中产生第二特征子集;获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;将所述第三数据实例标识集合的第一梯度信息发送给所述服务端。
根据本申请的一个实施例,所述获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,包括:针对任一特征,获取所述任一特征的所有特征值,基于所述特征值对对所述任一特征进行分桶;获取所述任一特征每个分桶的所述第三数据实例标识集合的第一梯度信息。
根据本申请的一个实施例,所述基于所述目标***方式对所述训练节点进行节点***,还包括:接收所述服务端发送的***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值;基于所述***信息,对所述训练节点进行节点***。
根据本申请的一个实施例,所述对所述训练节点进行节点***之后,还包括:将***生成的左子树空间发送给所述服务端。
根据本申请的一个实施例,还包括:若所述训练节点为叶子节点,接收所述服务器发送的所述叶子节点的权重值;据所述叶子节点的权重值确定其包含的各数据的残差;将所述残差作为下一个提升树的残差输入。
本申请第二方面实施例提供了联邦学习模型的训练方法,客户端可以通过接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点,并基于目标***方式对训练节点进行节点***,使得可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
为了实现上述目的,本申请第三方面实施例提供了一种联邦学习模型的训练装置,应用于服务端,包括:获取模块,用于如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式;其中,所述训练节点为多个提升树中一个提升树上的节点;通知模块,用于通知客户端基于所述目标***方式进行节点***;第一训练模块,用于以所述训练节点***后生成的左子树节点重新作为所述训练节点进行下一轮训练,直至更新的所述训练节点不再满足所述预设***条件;第二训练模块,用于以所述一个提升树的其它非叶子节点重新作为所述训练节点进行下一轮训练;生成模块,用于如果所述多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
根据本申请的一个实施例,所述获取模块,包括:第一学习子模块,用于基于第一训练集合,协同所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值;第二学习子模块,用于基于第二训练集合,协同所述客户端进行纵向联邦学习,以得到所述训练节点对应的第二***值;确定子模块,用于根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式。
根据本申请的一个实施例,所述确定子模块,包括:第一确定单元,用于确定所述第一***值与所述第二***值中较大的值为所述训练节点对应的目标***值;第二确定单元,用于根据所述目标***值,确定所述训练节点对应的***方式。
根据本申请的一个实施例,所述第一学习子模块,包括:产生单元,用于从所述第一训练集合中产生所述训练节点可用的第一特征子集,并发送给所述客户端;第一接收单元,用于接收所述客户端发送的所述第一特征子集中每个特征的特征值;第三确定单元,用于根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值;第四确定单元,用于根据所述每个特征对应的所述横向***值,确定所述训练节点的所述第一***值。
根据本申请的一个实施例,所述第三确定单元,包括:第一确定子单元,用于针对所述第一特征子集中任一特征,根据所述任一特征的特征值,确定所述任一特征的***阈值;第一获取子单元,用于根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,所述第一数据实例标识集合包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识;第二确定子单元,用于根据所述第一数据实例标识集合和所述第二数据实例标识集合,确定所述任一特征对应的所述横向***值。
根据本申请的一个实施例,所述第一获取子单元,还用于:向所述客户端发送所述***阈值;接收所述客户端发送所述训练节点对应的初始数据实例标识集合,其中,所述初始数据实例标识集合为所述客户端根据所述***阈值对所述任一特征进行节点***时生成的,所述初始数据实例标识集合包括属于所述第一左子树空间的数据实例标识;基于所述初始数据实例标识集合和所有数据实例标识,获得所述第一数据实例标识集合和所述第二数据实例标识集合。
根据本申请的一个实施例,所述获取子单元,还用于:将所述初始数据实例标识集合中的每个数据实例标识,与所述客户端的数据实例标识进行对比,获取存在异常的数据实例标识;对所述异常的数据实例标识进行预处理,获取所述第一数据实例标识集合;基于所有数据实例标识和所述第一数据实例标识集合,获取所述第二数据实例标识集合。
根据本申请的一个实施例,所述第二学习子模块,包括:通知单元,用于通知所述客户端基于所述第二训练集合进行纵向联邦学习;接收单元,用于接收所述客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;第五确定单元,用于根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值;第六确定单元,用于根据每个特征对应的纵向***值,确定所述训练节点的所述第二***值。
根据本申请的一个实施例,所述第五确定单元,包括:第二获取子单元,用于针对任一特征,根据所述总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;第三获取子单元,用于针对每个第一梯度信息,根据所述第一梯度信息和所述第一梯度信息相对应的第二梯度信息,获取所述任一特征的候选纵向***值;选取子单元,用于选取所述候选纵向***值中的最大值,作为所述任一特征的纵向***值。
根据本申请的一个实施例,其中,所述第一梯度信息包括属于所述第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二左子树空间的数据实例所对应的特征的二阶梯度之和;所述第二梯度信息包括属于所述第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二右子树空间的数据实例所对应的特征的二阶梯度之和。
根据本申请的一个实施例,还包括:确定模块,用于若所述训练节点未满足预设***条件,则确定所述训练节点为叶子节点,并获取所述叶子节点的权重值;发送模块,用于将所述叶子节点的权重值发送给所述客户端。
根据本申请的一个实施例,所述确定模块,包括:第一获取单元,用于获取属于所述叶子节点的数据实例;第二获取单元,用于获取所述属于所述叶子节点的数据实例的一阶梯度信息以及二阶梯度信息,并根据所述一阶梯度信息以及所述二阶梯度信息,获取所述叶子节点的权重值。
根据本申请的一个实施例,所述确定子模块,还包括:发送单元,用于向所述客户端发送***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值。
根据本申请的一个实施例,所述发送单元,还用于:向有标签的客户端发送所述***信息;接收所述有标签的客户端发送的左子树空间集合;根据所述左子树空间集合,对所述第二训练集合进行***;将所述训练节点与所述有标签的客户端的标识进行关联。
根据本申请的一个实施例,所述获取模块,还用于:接收所述客户端发送的数据实例标识;根据所述数据实例标识,确定客户端之间的共同数据实例标识,其中,所述共同数据实例标识用于指示所述客户端确定所述第一训练集合和所述第二训练集合。
本申请第三方面实施例提供了联邦学习模型的训练装置,服务端通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
为了实现上述目的,本申请第四方面实施例提供了一种联邦学习模型的训练装置,应用于客户端,包括:第一接收模块,用于接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,所述训练节点为多个提升树中一个提升树上的节点;***模块,用于基于所述目标***方式对所述训练节点进行节点***。
根据本申请的一个实施例,所述***模块,包括:第一学习子模块,用于基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值;第二学习子模块,用于基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值;发送子模块,用于将所述第一***值和所述第二***值发送给所述服务端。
根据本申请的一个实施例,所述第一学习子模块,包括:第一接收单元,用于接收所述服务端从所述第一训练集合中产生的所述训练节点可用的第一特征子集;第一发送单元,用于向所述服务端发送所述第一特征子集中每个特征的特征值;第二接收单元,用于接收所述服务端发送的所述每个特征的***阈值;第一获取单元,用于基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,并将所述初始数据实例标识集合发送给所述服务端;其中,所述初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,所述第一数据实例标识集合和所述初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
根据本申请的一个实施例,所述第一获取单元,还用于:针对任一特征,将所述任一特征的***阈值分别与所述任一特征的特征值进行比较,获取所述特征值小于所述***阈值的数据实例标识,生成所述初始数据实例标识集合。
根据本申请的一个实施例,所述第二学习子模块,包括:第三接收单元,用于接收所述服务端发送的梯度信息请求;产生单元,用于根据所述梯度信息请求,从第二训练集合中产生第二特征子集;第二获取单元,用于获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;第二发送单元,用于将所述第三数据实例标识集合的第一梯度信息发送给所述服务端。
根据本申请的一个实施例,所述第二获取单元,包括:分桶子单元,用于针对任一特征,获取所述任一特征的所有特征值,基于所述特征值对对所述任一特征进行分桶;第一获取子单元,用于获取所述任一特征每个分桶的所述第三数据实例标识集合的第一梯度信息。
根据本申请的一个实施例,所述***模块,包括:接收子模块,用于接收所述服务端发送的***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值;***子模块,用于基于所述***信息,对所述训练节点进行节点***。
根据本申请的一个实施例,所述***子模块,还用于:将***生成的左子树空间发送给所述服务端。
根据本申请的一个实施例,还包括:第二接收模块,用于若所述训练节点为叶子节点,接收所述服务器发送的所述叶子节点的权重值;确定模块,用于据所述叶子节点的权重值确定其包含的各数据的残差;输入模块,用于将所述残差作为下一个提升树的残差输入。
本申请第四方面实施例提供了联邦学习模型的训练装置,客户端可以通过接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点,并基于目标***方式对训练节点进行节点***,使得可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
为了实现上述目的,本申请第五方面实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请第一方面实施例,或者实现如本申请第三方面实施例中任一项所述的联邦学习模型的训练方法。
为了实现上述目的,本申请第六方面实施例提供了一种计算机可读存储介质,该程序被处理器执行时实现如本申请第一方面实施例,或者实现如本申请第三方面实施例中任一项所述的联邦学习模型的训练方法。
附图说明
图1为本申请一个实施例提供的联邦学习应用场景的示意图;
图2为本申请一个实施例公开的联邦学习模型的训练方法的流程示意图;
图3为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图4为本申请一个实施例公开的数据分布的示意图;
图5为本申请一个实施例公开的节点***的示意图;
图6为本申请一个实施例公开的数据分布的示意图;
图7为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图8为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图9为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图10为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图11为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图12为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图13为本申请一个实施例公开的按照桶映射规则进行分桶的示意图;
图14为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图15为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图16为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图17为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图18为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图19为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图20为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图21为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图22为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图23为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图24为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图25为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图26为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图27为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图28为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图29为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图30为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图31为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图32为本申请另一个实施例公开的联邦学习模型的训练方法的流程示意图;
图33为本申请一个实施例公开的联邦学习模型的训练装置的结构示意图;
图34为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图35为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图36为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图37为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图38为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图39为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图40为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图41为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图42为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图43为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图44为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图45为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图46为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图47为本申请另一个实施例公开的联邦学习模型的训练装置的结构示意图;
图48为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
应当理解,本申请实施例中涉及的“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
首先,对本申请实施例所涉及的部分词汇进行介绍。
同构数据:不同数据提供方所拥有的数据记录具有相同的特征属性。
异构数据:不同数据提供方所拥有的的数据记录,除了数据实例标识(ID)一样,其他特征属性都不一样。
XGBoost:简称XGB,是一套提升树可扩展的机器学习***。
在介绍本申请的技术方案之前,首先结合本申请的一个具体应用场景引出现有技术存在的问题以及本申请的技术构思过程。
在实际应用中,合作进行联邦学习的多方数据,很难完全保证全部异构或全部同构,所以在用提升树(boosting tree)进行联邦学习训练时,只能够丢弃部分同构或者异构的数据,然后采用横向联邦学习或者纵向联邦学习。但是由于丢弃的数据往往比较多,导致基于联邦学习训练得到的模型的性能较差。而且,即使采用横向联邦学习或者纵向联邦学习,数据的标签需要保证在某一方存在,不能够随机存在于多方中,而这在现实中几乎不可能的,所以目前技术也限制了联邦学习的实际应用。
针对上述问题,发明人通过研究发现,通过混合横向联邦学习和纵向联邦学习的联邦学习的设计,可以解决以往联邦学习需要关心数据分布方式的问题,也能够解决没法充分利用所有数据进行学习的问题,同时解决由于数据利用不充分导致训练得到的模型效果不佳的问题。
通过该方案的设计,在异构数据较多的情况下,方案倾向于采用纵向联邦学习(即纵向提升树(boosting tree))的方式,从而使得训练得到的模型能够具有无损的特点,同时,也能够利用同构数据;在同构数据较多的情况下,方案倾向于采用横向联邦学习(即横向提升树(boosting tree))的方式,同时也利用了异构数据进行模型训练,从而使训练得到的模型具有纵向方式无损的能力,提升了模型的性能。
示例性的,图1是本申请提供的基于联邦学习的模型训练方法的应用场景示意图。如图1所示,该应用场景可以包括:至少一个客户端(图1示出了三个客户端,分别为客户端111、客户端112、客户端113)、网络12和服务端13。其中,每个客户端与服务端13均可以通过网络12进行通信。
需要说明的是,图1仅是本申请实施例提供的一种应用场景的示意图,本申请实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定,例如,在图1所示的应用场景中,还可以包括数据存储设备,该数据存储设备相对服务端13可以是外部存储器,也可以是集成在服务端13中的内部存储器。
本申请提供了一种基于联邦学习的模型训练方法、装置及存储介质,通过混合横向联邦学习和纵向联邦学习的设计,提升训练所得的模型的性能。下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
下面参照附图描述根据本申请实施例提出的一种联邦学习模型的训练方法、装置及电子设备。
图2为本申请一个实施例公开的一种联邦学习模型的训练方法的流程示意图。
如图2所示,以服务端作为执行主体,对本申请实施例提出的联邦学习模型的训练方法进行解释说明,具体包括以下步骤:
S201、如果训练节点满足预设***条件,则获取训练节点对应的目标***方式;其中,训练节点为多个提升树中一个提升树上的节点。
本申请实施例中,如果训练节点满足预设***条件,说明当前所处的训练节点需要继续***,此种情况下,可以获取训练节点对应的目标***方式。
其中,预设***条件可以根据实际情况进行设定,例如,可以设定预设***条件为当前处理的训练节点所在的层次未达到最大的树深度要求、损失函数未满足约束条件等。
其中,目标***方式包括:横向***方式和纵向***方式。
其中,提升树(Boosting Tree),指的是采用加法模型与前向分布算法,以决策树(Decision Tree)为基函数的提升方法。
S202、通知客户端基于目标***方式进行节点***。
本申请实施例中,在获取训练节点对应的目标***方式后,服务端可以向客户端发送获取到的目标***方式,并通知客户端基于目标***方式进行节点***。相应地,客户端可以接收服务端的目标***方式,并基于目标***方式对训练节点进行节点***。
S203、以训练节点***后生成的左子树节点重新作为训练节点进行下一轮训练,直至更新的训练节点不再满足预设***条件。
本申请实施例中,服务端可以将以训练节点***后生成的左子树节点重新作为训练节点进行下一轮训练,然后判断更新的训练节点层次是否满足预设***条件,并在确定更新的训练节点需要继续***,即满足预设***条件时,可以继续获取更新的训练节点对应的目标***方式,并通知客户端基于目标***方式继续进行节点***,直至更新的训练节点不再满足预设***条件。其中,预设***条件可以包括树深度阈值,***后样本的数量阈值或者联邦学习模型的误差阈值等。
S204、以一个提升树的其它非叶子节点重新作为训练节点进行下一轮训练。
本申请实施例中,服务端可以回溯到当前提升树的其它非叶子节点,重新作为当前训练节点,进行下一轮训练。
S205、如果多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
本申请实施例中,如果多个提升树的节点数据集均为空,则可以停止训练并生成目标联邦学习模型。进一步地,可以对生成的目标联邦学习模型进行验证,直至达到预设训练次数后,清理信息并保留模型。
由此,本申请提出的联邦学习模型的训练方法,服务端可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
需要说明的是,本申请中,在试图获取训练节点对应的目标***方式时,可以通过协同客户端进行联邦学习,获取到对应的***值,进而根据***值,确定训练节点对应的目标***方式。
作为一种可能的实现方式,如图3所示,在上述实施例的基础上,上述步骤中,获取训练节点对应的目标***方式的过程,具体包括以下步骤:
S301、基于第一训练集合,协同客户端进行横向联邦学习,以得到训练节点对应的第一***值。
需要说明的是,训练节点需要继续***时,需要确定***方式,即横向***或者纵向***。其中,大部分节点都经过一次横向、一次纵向共两次候选***,然后选择两种候选***中***增益(gain)较大的***方式,作为该节点的最终***方式。
在试图进行预判断时,符合以下条件的节点只做纵向***或只做横向***,并直接作为最终***结果:
(1)树越深,节点上需要***的样本总数越少。判断节点上样本中共同样本的占比,如果少于预先设定的值,例如为10%,说明共同样本极少,则可以把该节点上的数据分布情况作为横向分布处理,只进行横向***。
(2)如果节点上样本中共同样本比例超过预先设定的值,例如为98%,则可以只进行纵向***。
需要说明的是,前述两个预判断条件的设定,是为了节省训练时间,两个比例是在训练参数里可以设置的。
下面分别针对横向***和纵向***,两种***方式中涉及的数据进行解释说明。
举例而言,如图4所示,共有10000个样本进行训练,在***达到某个节点时有100个样本。此时,数据分布如下所示:100个样本中有70个是两个平台共同样本。其中A平台有90个样本(包括20个私有样本和70个共有样本),B平台有80个样本(包括10个私有样本和70个共有样本)。A平台有个18特征(包括10个私有特征和8个共有特征),B平台有18个特征(包括10个私有特征和8个共有特征)。
针对横向***,该节点全部的样本都参与***,由服务端选定多个候选特征和特征阈值。
对于共同特征f和取值v:A平台将本地的90个样本分到左右子树,B平台将本地的80个样本分到左右子树,并分别告知服务端样本分流情况;服务端根据这100个样本的左右分流计算***增益,作为特征f的增益。
对于平台A的私有特征f和取值v:A平台将本地的90个样本分到左右子树,B平台将本地的70个共同样本分到左右子树,10个无特征f取值的样本全部分到左子树或右子树,作为两种分流,并分别告知服务端样本分流情况;服务端根据这100个样本的两种分流计算***增益,较大的作为特征f的增益。
对于平台B的私有特征f和取值v:和上述类似。
服务端将所有特征中最大的增益值记为gain1。
针对纵向***,仅该节点共同的70个样本参与***。和普通的纵向联邦学习类似,在70个样本上计算最大的特征***增益gain2。
取横向***最大增益gain1和纵向***最大增益gain2两个增益中较大的,该节点采用对应的***方式进行***。进入下一节点。
需要说明的是,无论采用横向***方式还是纵向方式***,节点样本集均根据以下规则进行***:最大增益来自A平台本地特征f1;最大增益来自共同特征f2;最大增益来自B平台本地特征f3。
举例而言,如图5(a)所示,若节点按f1***,A的90个样本按特征取值小于等于阈值的样本向左,大于阈值的样本向右;B的10个样本没有特征值,按最大增益对应的方式,如果是缺失值样本归右子树的,那么这10个样本向右,如果是缺失值样本归左子树的,那么这10个样本向左。
如图5(b)所示,若节点按f2***,所有样本都有特征值,小于等于阈值的样本向左,大于阈值的样本向右。
如图5(c)所示,若节点按f3***,具体过程与节点按f1***的过程相似,此处不再赘述。
本申请实施例中,客户端可以基于第一训练集合进行横向联邦学习,以得到训练节点对应的第一***值,并发送给服务端。相应地,服务端可以接收训练节点对应的第一***值,以得到训练节点对应的第一***值。
S302、基于第二训练集合,协同客户端进行纵向联邦学习,以得到训练节点对应的第二***值。
本申请实施例中,客户端可以基于第二训练集合进行横向联邦学习,以得到训练节点对应的第二***值,并发送给服务端。相应地,服务端可以接收训练节点对应的第二***值,以得到训练节点对应的第二***值。
S303、根据第一***值和第二***值,确定训练节点对应的目标***方式。
需要说明的是,传统的联邦学***台数据,即横向数据,例如图6中所示的数据(1.2)+(3)+(5.1);针对纵向联邦学***台数据,即纵向数据,例如图6中所示的数据(2)+(3)+(4)。由上可知,现有技术中,仅能对完全横向或完全纵向的数据进行建模,也就是说,仅能用上图6中的部分数据。
本申请实施例中,第一训练集合,即参与横向联邦学习的数据,是多个客户端的所有数据样本,例如图6中所示的数据(1)+(2)+(3)+(4)+(5);第二训练集合,即参与纵向联邦学习的数据,是多个客户端的共同数据样本,这些样本的所有特征参与训练,例如图6中所示的(2)+(3)+(4)。由上可知,本申请提出的联邦学习模型的训练方法,能够应用在横纵向交叉的数据上,也就是说,能够用上图6中的所有数据。
由此,本申请实施例中,可以基于第一训练集合与第二训练集合,协同客户端进行横向联邦学习与纵向联邦学习,以得到训练节点对应的第一***值和第二***值。
需要说明的是,本申请中,在试图根据第一***值和第二***值,确定训练节点对应的目标***方式时,可以通过比较第一***值和第二***值,确定目标***值,进而根据目标***值,确定对应的目标***方式。
作为一种可能的实现方式,如图7所示,在上述实施例的基础上,上述步骤S303中,根据第一***值和第二***值,确定训练节点对应的目标***方式的过程,具体包括以下步骤:
S501、确定第一***值与第二***值中较大的值为训练节点对应的目标***值。
本申请实施例中,服务端在得到训练节点对应的第一***值和第二***值后,可以将第一***值和第二***值进行比较,并将其中较大的值,作为训练节点对应的目标***值。
举例而言,获取到的第一***值为Gain1、第二***值为Gain2,且Gain1>Gain2,此种情况下,可以将Gain1作为训练节点对应的目标***值。
S502、根据目标***值,确定训练节点对应的***方式。
本申请实施例中,在将第一***值和第二***值中较大的值作为训练节点对应的目标***值后,服务端可以根据目标***值,确定训练节点对应的***方式。
由此,本申请提出的联邦学习模型的训练方法,可以通过协同客户端进行横向联邦学习和纵向联邦学习,分别得到第一***值和第二***值,进而将取值较大的作为训练节点对应的目标***值,进而根据目标***值,确定训练节点对应的***方式,使得根据目标***值,能够自动地选择匹配的学习方式的倾向性,无须关心数据分布方式。
需要说明的是,本申请中,在试图基于第一训练集合,协同客户端进行横向联邦学习,以得到训练节点对应的第一***值时,可以获取每个特征对应的横向***值,进而根据横向***值,确定训练节点的第一***值。
作为一种可能的实现方式,如图8所示,在上述实施例的基础上,上述步骤S301中,基于第一训练集合,协同客户端进行横向联邦学习,以得到训练节点对应的第一***值的过程,具体包括以下步骤:
S601、从第一训练集合中产生训练节点可用的第一特征子集,并发送给客户端。
可选地,服务端可以从第一训练集合中随机产生当前训练节点可用的第一特征子集,例如,可以随机产生当前第一训练集合所有特征的一半特征,组成一个新的特征集合作为第一特征子集,并将产生的第一特征子集发送给各个客户端。相应地,各个客户端可以接收第一特征子集,并根据得到的第一特征子集合,遍历得到集合中的每个特征的特征值,进而根据本地数据,即本地存储的特征的特征值,发送给服务端。
S602、接收客户端发送的第一特征子集中每个特征的特征值。
本申请实施例中,客户端可以将第一特征子集中每个特征的特征值发送给服务端。相应地,服务端可以接收客户端发送的第一特征子集中每个特征的特征值。
S603、根据第一特征子集中每个特征的特征值,分别确定每个特征作为***特征点对应的横向***值。
作为一种可能的实现方式,如图9所示,在上述实施例的基础上,上述步骤S603中,根据第一特征子集中每个特征的特征值,分别确定每个特征作为***特征点对应的横向***值的过程,具体包括以下步骤:
S701、针对第一特征子集中任一特征,根据任一特征的特征值,确定任一特征的***阈值。
本申请实施例中,在服务端接收客户端发送的第一特征子集中每个特征的特征值后,可以根据特征值,生成特征值列表。进一步地,针对第一特征子集中任一特征,可以从特征值标中随机选择一个特征值,作为当前特征的全局最优***阈值。
S702、根据***阈值,获取任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,第一数据实例标识集合包括属于第一左子树空间的数据实例标识,第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
作为一种可能的实现方式,如图10所示,在上述实施例的基础上,上述步骤S702中,根据***阈值,获取任一特征对应的第一数据实例标识集合和第二数据实例标识集合的过程,具体包括以下步骤:
S801、向客户端发送***阈值。
本申请实施例中,在确定任一特征的***阈值后,可以将此***阈值广播给客户端。相应地,客户端可以接收该***阈值,并基于每个特征的***阈值,获取训练节点对应的初始数据实例标识集合,并将初始数据实例标识集合发送给服务端。
S802、接收客户端发送训练节点对应的初始数据实例标识集合,其中,初始数据实例标识集合为客户端根据***阈值对任一特征进行节点***时生成的,初始数据实例标识集合包括属于第一左子树空间的数据实例标识。
本申请实施例中,服务端可以接收客户端发送的IL,即包括属于第一左子树空间的数据实例标识的初始数据实例标识集合IL。
S803、基于初始数据实例标识集合和所有数据实例标识,获得第一数据实例标识集合和第二数据实例标识集合。
作为一种可能的实现方式,如图11所示,在上述实施例的基础上,上述步骤S803中,基于初始数据实例标识集合,获得第一数据实例标识集合和第二数据实例标识集合的过程,具体包括以下步骤:
S901、将初始数据实例标识集合中的每个数据实例标识,与客户端的数据实例标识进行对比,获取存在异常的数据实例标识。
其中,存在异常的数据实例标识,可以为重复数据实例标识、存在矛盾的数据实例标识等。
S902、对异常的数据实例标识进行预处理,获取第一数据实例标识集合。
本申请实施例中,服务端在接收到IL后,可以从各个IL集合中过滤掉重复的实例ID,处理存在矛盾的ID信息,以确定最终的IL。
举例而言,针对客户端A,如果将实例ID加入IL中,但是针对客户端B,存在ID,没有将实例加进去,此时,则可以认为这个ID应该存在于IL中。
S903、基于所有数据实例标识和第一数据实例标识集合,获取第二数据实例标识集合。
本申请实施例中,在获取第一数据实例标识集合后,可以从所有数据实例标识中去掉第一数据实例标识集合IL,则可以获取到第二数据实例标识集合IR。
需要说明的是,本申请中,在试图基于第二训练集合,协和所述客户端进行纵向联邦学习,得到所述训练节点对应的第二***值时,可以根据每个特征对应的纵向***值,确定训练节点的第二***值。
作为一种可能的实现方式,如图12所示,在上述实施例的基础上,上述步骤中,获取训练节点对应的目标***方式的过程,具体包括以下步骤:
S1001、通知客户端基于第二训练集合进行纵向联邦学习。
本申请实施例中,在服务端通知客户端基于第二训练集合进行纵向联邦学习后,可以向客户端发送梯度信息请求,以获取Gkv和Hkv信息。相应地,客户端可以根据共同ID的那部分数据,得到当前节点还未被处理的数据,随机得到特征集合,根据集合中每个特征k和对应特征的所有取值每个值v,对每个样本进行分桶映射,计算出左子树空间的Gkv和Hkv作为第一梯度信息,并在进行同态加密处理后发送给服务端。
其中,xi,k表示数据实例xi的特征k的值。
比如,原本取值在1-100岁的人群,映射到20岁以下、20-50岁、50岁以上三个桶中。一个分桶里的样本,要么全分到左边,要么全分到右边。理论上为向服务器发送的G和H是累计和,比如上述例子,发出去的G应当有三个:1-20岁的G之和、1-50岁的G之和、1-100岁的G之和(分别对应左子树的G)。由于同态加密的密文运算很慢、密文还会变长增加通信量,因此,实际中客户端发送的是这三个分桶分别的G:1-20岁的G之和、20-50岁的G之和、50以上的G之和。有Label的平台接收到这三个桶的G后,它先解密成明文,再计算累计的1-20岁/1-50岁/1-100岁的G。上述两个公式就是这个过程,表示计算每个分桶的g之和。sk,v是当前桶的最大取值(50岁),sk,v-1是上一个桶最大的特征取值(20岁),这样过滤出20-50岁的x。通过特征分桶的方式,可以减少计算量。
S1002、接收客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,第三数据实例标识集合包括属于第二左子树空间的数据实例标识,第二左子树空间为按照特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的第二左子树空间。
本申请实施例中,客户端可以针对任一特征,获取任一特征的所有特征值,基于特征值对任一特征进行分桶,并获取任一特征每个分桶的第三数据实例标识集合的第一梯度信息。相应地,服务端可以接收客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息。
S1003、根据每个特征的第一梯度信息和训练节点的总梯度信息,分别确定每个特征的纵向***值。
S1004、根据每个特征对应的纵向***值,确定训练节点的第二***值。
下面以示例形式对梯度信息进行解释说明。
举例而言,如图13所示,以客户端A上编号为k的特征为例,可以对当前节点上的所有样本排序,按照在特征k上的特征取值由小到大排序。进一步地,可以按照桶映射规则,将这些样本按序切分为多个数据桶(对应多个由小到大的特征阈值)。进一步地,可以计算第v个分桶包含样本的一阶梯度g的总和G,以及二阶梯度h的总和H,即第v个特征阈值v对应的Gkv和Hkv。
其中,Gkv,表示的是根据编号为k的特征的取值对节点样本进行排序,并按次序切分为多个数据桶,排序后第v个桶中全部样本的一阶梯度g总和。
其中,Hkv为这些样本的二阶梯度h的总和。
需要说明的是,前述桶映射规则有很多种,本申请对于桶映射规则的具体方式不作限定,只需要保证特征值相同的样本,例如图11中取值为1的两个样本,分在同一个数据桶中即可。
例如,可以将相同取值的样本作为一个桶,即n个样本,在一个特征上如果有m种取值,就切分为m个桶,对应的特征阈值就是这m种取值。
又例如,可以限定桶的个数,例如限制至多划分m个桶,此种情况下,如果特征k的取值少于m个,则可以按照上一种方式进行划分;如果多于m个,则可以按照近似平分的方法,分到m个桶中。
需要说明的是,在试图确定每个特征的纵向***值时,可以选取候选纵向***值中的最大值,作为任一特征的纵向***值。
作为一种可能的实现方式,如图14所示,在上述实施例的基础上,上述步骤S1003中,根据每个特征的第一梯度信息和训练节点的总梯度信息,分别确定每个特征的纵向***值的过程,具体包括以下步骤:
S1201、针对任一特征,根据总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;
S1202、针对每个第一梯度信息,根据第一梯度信息和第一梯度信息相对应的第二梯度信息,获取任一特征的候选纵向***值;
S1203、选取候选纵向***值中的最大值,作为任一特征的纵向***值。
其中,第一梯度信息包括属于第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于第二左子树空间的数据实例所对应的特征的二阶梯度之和;第二梯度信息包括属于第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于第二右子树空间的数据实例所对应的特征的二阶梯度之和。
作为一种可能的实现方式,本申请实施例中,服务端向各个客户端请求获取Gkv和Hkv信息。相应地,客户端可以根据共同ID的那部分数据,得到当前节点还未被处理的数据,随机得到特征集合,根据集合中每个特征k和对应特征的所有取值每个值v,对每个样本桶映射,计算出左子树空间的Gkv和Hkv,同态加密后发送到服务端。此外,客户端可以根据共同数据标识和本地数据,计算损失函数的一些中间结果,例如损失函数的一阶导数gi和二阶导数hi,并发送至服务端。
进一步地,服务端可以对客户端发送的Gkv和Hkv进行解密,并根据当前节点的共同ID对应的数据,以及得到的所有gi和hi,可以计算出当前节点的左子树空间所有gi的和GL、右子树空间所有gi的和GR和左子树空间所有hi的和HL、右子树空间所有hi的和HR。
以XGB为例,目标函数如下式所示:
在XGB中提出使用二阶泰勒展开式近似表示上面的公式。泰勒展开式的二阶形式为:
其中,gi和hi的计算公式为:
从上述泰勒展开式可以看到gi是一阶导数,hi是二阶导数。其中,GL、HL可以分别通过以下公式进行计算,
其中,n表示左子树空间实例个数,也就是说,此种情况下,左子树空间总共有n个实例。
进一步地,服务端根据前述结果,可以算出各个特征的最优分割点,进而根据这些***点信息,确定全局最优分割点(k,v,Gain)。其中,如果某几个客户端拥有相同的特征,服务端将会对接收到的Gkv随机取一个作为当前特征的Gkv,同理Hkv也如此处理。
进一步地,服务端可以根据(k,v,Gain),向对应的客户端请求IL信息。相应地,客户端接收到分割点信息(k,v,Gain),查找得到分割点阈值value,记录该分割点(k,value)信息。本地数据集根据该分割点进行分割,得到IL集合,发送(record,IL,value)到服务端。其中,record表示该条记录在客户端的索引。
进一步地,服务端接受客户端发送的(record,IL,value)信息,对所在节点空间的所有共同ID的实例进行分割,并通过(client id,record)关联当前节点和客户端。记录(client id,record_id,IL,feature_name,feature_value)这些信息,作为纵向***的信息,即任一特征的纵向***值。
需要说明的是,节点***,选择了最优分割点对应的特征和取值,此种情况下,可以将当前节点的样本,按照在这个特征的取值,分到左子树右子树节点上。
S604、根据每个特征对应的横向***值,确定训练节点的第一***值。
需要说明的是,本申请实施例中,可选地,可以先进行横向***,然后再进行纵向***;可选地,可以先进行纵向***,然后再进行横向***。
进一步地,由于横向***方式使用了全部的数据,而纵向***方式仅使用了ID相同的那部分数据,可知,针对横向***方式,利用的数据更多、有更大概率获得较好的效果,针对纵向***方式,客户端和服务端的数据交互量更小,速度更快。因此,为了在训练中断时,可以尽量获得更深一层的训练临时结果,可以先进行横向***,然后再进行纵向***。
需要说明的是,本申请实施例中,如果训练节点满足预设***条件,说明当前所处的训练节点需要继续***,此种情况下,可以获取训练节点对应的目标***方式;如果训练节点未满足预设***条件,说明当前所处的训练节点不需要继续***,此种情况下,可以确定叶子节点,并将叶子节点的权重值发送给客户端。
作为一种可能的实现方式,如图15所示,在上述实施例的基础上,具体包括以下步骤:
S1301、若训练节点未满足预设***条件,则确定训练节点为叶子节点,并获取叶子节点的权重值。
本申请实施例中,若训练节点未满足预设***条件,服务端可以将所在节点作为叶子节点,计算出该叶子节点的权重值wj,存储该wj的值,作为纵向的叶子节点权重值。
其中,叶子节点的权重值Wj,用于计算样本预测分数,可以通过以下公式进行计算:
其中,Gj表示节点j的所有实例对应的gi之和,Hj表示节点j的所有实例对应的hi之和。
S1302、将叶子节点的权重值发送给客户端。
本申请实施例中,客户端在获取叶子节点的权重值之后,可以将叶子节点的权重值发送给客户端,通知各个客户端不再进行纵向方式的叶子节点***,也就是说,完成节点***的操作。
需要说明的是,本申请实施例中,在试图通知客户端基于目标***方式进行节点***之前,可以向客户端发送***信息,其中,***信息包括目标***方式、选为特征***点的目标***特征和目标***值。
如图16所示,在上述实施例的基础上,若目标***方式为纵向***方式,则可以通知客户端基于目标***方式进行节点***之前,具体包括以下步骤:
S1401、向有标签的客户端发送***信息。
本申请实施例中,服务端可以向有标签的客户端发送***信息。相应地,有标签的客户端可以接收***信息,并基于***信息,对训练节点进行节点***。
针对纵向***方式,可选地,服务端可以根据记录的纵向***信息,包括(client_id,record_id,IL,feature_name,feature_value),通知各个客户端进行真正的节点***操作。其中client_id对应的客户端知道所有信息,即知道(client_id,record_id,IL,feature_name,feature_value),其他客户端仅需要知道IL信息即可。进一步地,服务端将当前***后的左子树节点作为当前的处理节点。
相应地,客户端接收服务端发送的IL或者全部信息,即(client_id,record_id,IL,feature_name,feature_value),进行纵向方式的节点***操作;如果存在(client_id,record_id,IL,feature_name,feature_value)信息,在***时,客户端还需要记录和存储这些信息。进一步地,在***完毕之后,客户端可以将***后的左子树节点作为当前的处理节点。
针对横向***方式,可选地,服务端可以使用横向方式进行该节点***,即根据横向方式得到的(k,value)信息,对当前节点进行***操作,可以得到IL信息,将IL广播各个客户端。
相应地,客户端可以接收服务端的(k,value)信息,对共同ID的数据进行节点***,***方式是对于共同ID数据的特征k,如果值小于value,将该条数据的ID应该投放到IL集合中,否则投放到IR集合中。如果数据不存在特征k,则投放到右子树空间中。
S1402、接收有标签的客户端发送的左子树空间集合。
本申请实施例中,有标签的客户端在对训练节点进行节点***之后,可以将***生成的左子树空间发送给服务端。相应地,服务端可以接收有标签的客户端发送的左子树空间集合。
S1403、根据左子树空间集合,对第二训练集合进行***。
S1404、将训练节点与有标签的客户端的标识进行关联。
需要说明的是,本申请中,在响应于当前训练节点满足预设***条件之前,可以进行初始化。
作为一种可能的实现方式,如图17所示,在上述实施例的基础上,具体包括以下步骤:
S1501、接收客户端发送的数据实例标识。
本申请实施例中,客户端可以将自己每条数据的唯一标识ID,发送给服务端。相应地,客户端可以接收每条数据的唯一标识ID,即数据实例标识。
S1502、根据数据实例标识,确定客户端之间的共同数据实例标识,其中,共同数据实例标识用于指示客户端确定第一训练集合和第二训练集合。
本申请实施例中,服务端可以收集各个客户端的所有实例ID,得到客户端之间的共同ID,通知各个客户端。进一步地,服务端可以选择一个客户端作为验证客户端,从该客户端中选择一部分有标签的数据作为验证数据集,这部分数据集不存在于共同ID的数据集中,并修改该客户端对应的训练数据集列表,初始化验证数据集的信息。然后通知各个客户端验证ID列表、共同ID列表的信息。相应地,客户端可以接收服务端发送的共同ID列表和验证ID列表(若存在的话),并初始化全局的本地数据信息。
进一步地,服务端可以针对当前XGB森林列表和训练轮次,进行每一轮训练的信息初始化,并针对当前树节点和当前XGB森林列表,进行每一颗树的信息初始化,进而通知客户端进行每一轮训练的信息初始化或者每一棵树训练的初始化。
进一步地,在获得目标联邦学习模型之后,可以对生成的目标联邦学习模型进行验证。
可选地,服务端可以基于验证集合,协同验证客户端对目标联邦学习模型进行验证,验证客户端为参与联邦学习模型训练的客户端中一个,验证集合分别与第一训练集合和第二训练集合互斥。
作为一种可能的实现方式,服务端可以通知客户端进行验证初始化操作。相应地,客户端进行验证初始化。
进一步地,服务端可以选择一个ID开始进行验证,初始化XGB树,并通知客户端开始进行验证。相应地,客户端初始化验证信息。
进一步地,服务端可以根据当前树,将***节点信息和验证的数据ID发送给验证客户端。相应地,客户端可以根据数据ID,获取对应的数据,然后根据服务端发送的***节点信息,判断应该往左子树走还是右子树走,并将判定结果返回给服务端。
进一步地,服务端可以根据客户端返回的走向,进入下一个节点。然后判断是否已经到达叶子节点,如果未到达叶子节点,选择一个ID重新开始进行验证,初始化XGB树,并通知客户端重新开始进行验证。如果以及到达叶子节点,则可以记录叶子节点的权重,计算出预测值,进行存储。如果当前预测的ID非所有预测ID最后一个,则可以选择一个ID重新开始进行验证,初始化XGB树,并通知客户端重新开始进行验证;如果当前预测的ID是所有预测ID最后一个,则可以将所有预测结果发送给客户端。相应地,客户端可以接收所有预测结果,进行出最终的验证结果,与上一次的验证结果对比,判断是否需要保留并使用当前的模型,并将判定结果通知服务端。
进一步地,服务端可以根据客户端返回的验证结果,判断是否保留并使用当前的模型,并将判定结果广播给所有客户端。相应地,各个客户端接收服务端的广播信息,进行处理。
进一步地,服务端可以判断是否已经是达到最终的预测轮次,若未达到最终的预测轮次,则可以针对当前XGB森林列表换热训练轮次,重新进行每一轮训练的信息初始化;若已达到最终的预测轮次,则可以结束所有训练,清理信息,保留模型。相应地,客户端结束所有训练,清理信息,保留模型。
由此,本申请提出的联邦学习模型的训练方法,可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
图18为本申请一个实施例公开的联邦学习模型的训练方法的流程示意图。
如图18所示,以客户端作为执行主体,对本申请实施例提出的联邦学习模型的训练方法进行解释说明,具体包括以下步骤:
S1601、接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点。
本申请实施例中,如果训练节点满足预设***条件,说明当前所处的训练节点需要继续***,此种情况下,服务端可以获取训练节点对应的目标***方式,并知客户端基于目标***方式进行节点***。相应地,客户端可以接收服务端在确定训练节点满足预设***条件时发送的目标***方式。
S1602、基于目标***方式对训练节点进行节点***。
本申请实施例中,服务端可以根据第一***值和第二***值,确定训练节点对应的目标***方式。相应地,客户端可以接收服务端发送的IL或者(client_id,record_id,IL,feature_name,feature_value)信息,并根据目标***方式,对训练节点进行节点***。其中,如果存在(client_id,record_id,IL,feature_name,feature_value)信息,在对训练节点进行节点***时,客户端还需要记录和存储这些信息。
进一步地,在***完毕之后,客户端可以将***后的左子树节点作为当前的处理节点。
由此,本申请提出的联邦学习模型的训练方法,客户端可以通过接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点,并基于目标***方式对训练节点进行节点***,使得可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
需要说明的是,本申请中,客户端在基于目标***方式对训练节点进行节点***之前,可以协同服务端进行联邦学习,并获取对应的***值。
作为一种可能的实现方式,如图19所示,在上述实施例的基础上,具体包括以下步骤:
S1701、基于第一训练集合进行横向联邦学习,以得到训练节点对应的第一***值。
需要说明的是,本申请中,在试图基于第一训练集合进行横向联邦学习,以得到训练节点对应的第一***值时,可以获取训练节点对应的初始数据实例标识集合,并将初始数据实例标识集合发送给服务端。
作为一种可能的实现方式,如图20所示,在上述实施例的基础上,具体包括以下步骤:
S1801、接收服务端从第一训练集合中产生的训练节点可用的第一特征子集。
本申请实施例中,服务端可以从第一训练集合中随机产生当前训练节点可用的第一特征子集合,例如,可以随机产生当前第一训练集合所有特征的一半特征,组成一个新的特征集合作为第一特征子集合,并将产生的第一特征子集合发送给各个客户端。相应地,各个客户端可以接收第一特征子集。
S1802、向服务端发送第一特征子集中每个特征的特征值。
本申请实施例中,客户端可以根据得到的第一特征子集,遍历得到集合中的每个特征的特征值,进而根据本地数据,即本地存储的特征的特征值,随机选择该特征所有取值中的一个,发送给服务端。相应地,服务端收集各个客户端发送的特征取值信息,组成一个取值列表,从列表中随机选择一个作为当前特征的全局最优***阈值,将这个***阈值广播给各个客户端。
S1803、接收服务端发送的每个特征的***阈值。
本申请实施例中,服务端可以根据接收到的第一特征子集中每个特征的特征值,确定每个特征的***阈值,并发送给客户端。相应地,客户端可以接收服务端发送的每个特征的***阈值。
S1804、基于每个特征的***阈值,获取训练节点对应的初始数据实例标识集合,并将初始数据实例标识集合发送给服务端;其中,初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,第一数据实例标识集合和初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
本申请实施例中,在试图基于每个特征的***阈值,获取训练节点对应的初始数据实例标识集合时,可以针对任一特征,将任一特征的***阈值分别与任一特征的特征值进行比较,获取特征值小于***阈值的数据实例标识,生成初始数据实例标识集合。其中,***阈值可以根据实际情况,在开始训练之前进行设定。
作为一种可能的实现方式,客户端可以根据接收特征***阈值信息,对当前特征进行节点***,得到IL,通知服务端;如果客户端不存在对应的特征,则返回空的IL。
其中,IL为左子树空间中的实例ID集合;计算方式如下:收到服务端发送的特征k的阈值value,本地数据中如果实力ID1对应的特征k的取值小于value,则将ID1加入到IL集合中;用公式表示如下:
SIL={ID|IDk<value}
其中,IDk表示实例ID特征A的取值,SIL表示集合IL。
S1702、基于第二训练集合进行纵向联邦学习,以得到训练节点对应的第二***值。
需要说明的是,本申请中,在试图基于第二训练集合进行纵向联邦学习,以得到训练节点对应的第二***值之前,可以获取至少一个第三数据实例标识集合的第一梯度信息,并将第三数据实例标识集合的第一梯度信息发送给服务端。
作为一种可能的实现方式,如图21所示,在上述实施例的基础上,具体包括以下步骤:
S1901、接收服务端发送的梯度信息请求。
本申请实施例中,服务端可以向客户端发送梯度信息请求,以请求获取Gkv和Hkv信息。相应地,客户端可以接收服务端发送的梯度信息请求。
S1902、根据梯度信息请求,从第二训练集合中产生第二特征子集。
S1903、获取第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,第三数据实例标识集合包括属于第二左子树空间的数据实例标识,第二左子树空间为按照特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的第二左子树空间。
作为一种可能的实现方式,如图22所示,在上述实施例的基础上,具体包括以下步骤:
S2001、针对任一特征,获取任一特征的所有特征值,基于特征值对任一特征进行分桶。
本申请实施例中,可以根据集合中每个特征k和对应特征的所有取值每个值v,对每个样本桶映射。
需要说明的是,前述桶映射规则有很多种,本申请对于桶映射规则的具体方式不作限定,只需要保证特征值相同的样本,例如图11中取值为1的两个样本,分在同一个数据桶中即可。
例如,可以将相同取值的样本作为一个桶,即n个样本,在一个特征上如果有m种取值,就切分为m个桶,对应的特征阈值就是这m种取值。
又例如,可以限定桶的个数,例如限制至多划分m个桶,此种情况下,如果特征k的取值少于m个,则可以按照上一种方式进行划分;如果多于m个,则可以按照近似平分的方法,分到m个桶中。
S2002、获取任一特征每个分桶的第三数据实例标识集合的第一梯度信息。
本申请实施例中,客户端可以获取任一特征每个分桶的第三数据实例标识集合的第一梯度信息。相应地,服务端可以接收客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息。
S1904、将第三数据实例标识集合的第一梯度信息发送给服务端。
本申请实施例中,客户端可以根据共同ID的那部分数据,得到当前节点还未被处理的数据,随机得到特征集合,根据集合中每个特征k和对应特征的所有取值每个值v,对每个样本桶映射,计算出左子树空间的Gkv和Hkv,同态加密后发送到服务端。
S1703、将第一***值和第二***值发送给服务端。
本申请实施例中,在客户端基于第一训练集合和第二训练集合进行横向联邦学习和纵向联邦学习,以得到训练节点对应的第二***值后,可以将第一***值和第二***值发送给服务端。相应地,服务端可以接收第一***值和第二***值。
需要说明的是,本申请中,在试图基于目标***方式对训练节点进行节点***时,可以根据服务端发送的***信息进行节点***。
作为一种可能的实现方式,如图23所示,在上述实施例的基础上,具体包括以下步骤:
S2101、接收服务端发送的***信息,其中,***信息包括目标***方式、选为特征***点的目标***特征和目标***值。
本申请实施例中,在试图通知客户端基于目标***方式进行节点***之前,服务端可以向客户端发送***信息,其中,***信息包括目标***方式、选为特征***点的目标***特征和目标***值。相应地,客户端可以接收服务端发送的***信息。
作为一种可能的实现方式,服务端可以使用横向方式进行该节点***,即根据横向方式得到的(k,value)信息,对当前节点进行***操作,进而可以得到IL信息,并将IL广播各个客户端。
S2102、基于***信息,对训练节点进行节点***。
作为一种可能的实现方式,客户端可以根据接收到的服务端的(k,value)信息,对共同ID的数据进行节点***,***方式是对于共同ID数据的特征k,如果值小于value,将该条数据的ID应该投放到IL集合中,否则投放到IR集合中。如果数据不存在特征k,则投放到右子树空间中。
进一步地,在对训练节点进行节点***之后,客户端可以将***生成的左子树空间发送给服务端。相应地,服务端可以接收***生成的左子树空间。
需要说明的是,本申请实施例中,如果训练节点满足预设***条件,说明当前所处的训练节点需要继续***;如果训练节点未满足预设***条件,说明当前所处的训练节点不需要继续***,此种情况下,客户端可以将残差作为下一个提升树的残差输入,同时进行节点回溯。
作为一种可能的实现方式,如图24所示,在上述实施例的基础上,具体包括以下步骤:
S2201、若训练节点为叶子节点,接收服务器发送的叶子节点的权重值。
本申请实施例中,若训练节点未满足预设***条件,服务端可以将所在节点作为叶子节点,计算出该叶子节点的权重值wj,存储该wj的值,作为纵向的叶子节点权重值。相应地,客户端可以接收服务器发送的叶子节点的权重值wj。
S2202、根据叶子节点的权重值确定其包含的各数据的残差。
S2203、将残差作为下一个提升树的残差输入。
本申请实施例中,客户端可以根据[Ij(m),wj],计算出新的y`(t-1)(i),并回溯到当前树的其他非叶子节点,作为当前节点。其中,y`(t-1)(i)表示第i个实例所对应的Label(标签)残差,t表示当前是第t棵树,t-1表示上一棵树。
由此,本申请提出的联邦学习模型的训练方法,客户端可以通过接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点,并基于目标***方式对训练节点进行节点***,使得可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
需要说明的是,本申请实施例中,联邦学习模型的训练过程主要包括进行节点***、生成模型以及验证模型等几个阶段。下面分别针对服务端作为执行主体以及验证客户端作为执行主体,以进行联邦学习模型的训练的节点***、生成模型以及验证模型阶段为例,对本申请实施例提出的联邦学习模型的训练方法进行解释说明。
针对服务端作为执行主体,如图25所示,本申请实施例提出的联邦学习模型的训练方法,具体包括以下步骤:
S2301、如果训练节点满足预设***条件,则获取训练节点对应的目标***方式;其中,训练节点为多个提升树中一个提升树上的节点。
S2302、通知客户端基于目标***方式进行节点***,并获取更新的训练节点。
S2303、确定更新的训练节点满足停止训练条件,停止训练并生成目标联邦学习模型。
需要说明的是,步骤S2301~S2303的相关内容可参见上述实施例,此处不再赘述。
S2304、获取验证集合,协同验证客户端对目标联邦学习模型进行验证,验证客户端为参与联邦学习模型训练的客户端中一个。
其中,验证集合,通常为训练集合中的部分采样。可选地,可以按照预设比例,随机从训练集合中进行采样,以作为验证集合。本申请实施例中,验证集合包括数据实例标识,且验证集合分别与第一训练集合和第二训练集合互斥。
由此,本申请提出的联邦学习模型的训练方法,在生成联邦学习模型后,服务端可以通过获取验证集合,并协同验证客户端对目标联邦学习模型进行验证,以在用户数据同构较多的情况下,通过采用训练结合验证的方式,减低了联邦学习模型的验证损失,提高了联邦学习模型的推理效果,进一步提高了联邦学习模型训练过程中的有效性及可靠性。
需要说明的是,本申请实施例中,更新的训练节点,包括:训练节点***后生成的左子树节点和一个提升树的其它非叶子节点。其中,更新的训练满足停止训练条件,包括:更新的训练节点不再满足预设***条件;或者,更新的训练节点为多个提升树的最后一个节点。
需要说明的是,本申请实施例中,在试图获取验证集合,协同验证客户端对目标联邦学习模型进行验证时,可以逐一验证验证集合中的数据实例标识,直至验证集合中的数据实例标识均被验证。
作为一种可能的实现方式,如图26所示,在上述实施例的基础上,上述步骤S2304中获取验证集合,协同验证客户端对目标联邦学习模型进行验证的过程,具体包括以下步骤:
S2401、向验证客户端发送验证集合中的一个数据实例标识,以及验证节点的***信息,其中,验证节点为多个提升树其中一个提升树上的节点。
本申请实施例中,服务端可以将任一数据实例标识发送至验证客户端,同时发送验证节点的***信息。相应地,验证客户端可以接收该数据实例标识和验证节点的***信息,根据数据实例标识获取对应的数据,并根据***信息,判断验证节点对应的节点走向,即判断节点走向为向左子树走或者向右子树走。
其中,***信息包括用于***的特征以及***阈值。
S2402、接收验证客户端发送的验证节点对应的节点走向,其中,节点走向为验证客户端根据数据实例标识和***信息确定的。
本申请实施例中,验证客户端在确定了验证节点对应的节点走向之后,可以将节点走向发送至服务端。相应地,服务端可以接收验证客户端发送的验证节点对应的节点走向。
S2403、根据节点走向进入下一个节点,以下一个节点作为更新的验证节点。
本申请实施例中,服务端可以根据验证客户端返回的节点走向,进入下一个节点,以下一个节点作为更新的验证节点。进一步地,服务端可以判断更新的验证节点是否满足预设节点***条件,若更新的验证节点满足预设节点***条件,说明未到达叶子节点,则可以执行步骤S2404;若更新的验证节点未满足预设节点***条件,说明已经到达叶子节点,则可以执行步骤S2405。
S2404、若更新的验证节点满足预设节点***条件,返回执行向验证客户端发送数据实例标识和***信息,直至验证集合中的数据实例标识均被验证。
S2405、若更新的验证节点未满足预设节点***条件,确定更新的验证节点为叶子节点,获取数据实例标识所表征的数据实例的模型预测值。
本申请实施例中,服务端在确定更新的验证节点为叶子节点后,可以记录叶子节点的权重值,计算并存储数据实例标识所表征的数据实例的模型预测值。
其中,数据实例标识所表征的数据实例的模型预测值,指的是每个样本的预测值。在进行验证时,每个样本在每棵树上走到某个叶子结点时,该叶子的Leaf Score(叶子节点分数)即为样本在这棵树的打分,进而一个样本在所有树的打分之和,即为预测值。
进一步地,在完成上述步骤S2404之后,可以确定是否保留并使用目标联邦学习模型。
作为一种可能的实现方式,如图27所示,在上述实施例的基础上,上述步骤S2404之后,具体包括以下步骤:
S2501、若验证集合中数据实例标识均被验证,发送数据实例的模型预测值给验证客户端。
本申请实施例中,若验证集合中数据实例标识均被验证,也就是说,当前预测的数据实例标识为所有预测数据实例标识中的最后一个,则可以发送数据实例的模型预测值给验证客户端。相应地,验证客户端可以接收所有预测结果,并计算出最终的验证结果,进而将其与上一次的验证结果进行比较,以判断是否需要保留并使用当前的目标联邦学习模型,并根据判定结果生成验证指示信息。
需要说明的是,客户端在试图生成验证指示信息时,可以针对验证集合中的所有样本,计算得到预测值。由于验证客户端有它们的真实Label值,此种情况下,客户端可以根据预测值和Lable值,计算二者之间值的相关差异指标,例如Aaccuracy(准确率,又称精确程度)、RMSE(Root Mean Squared Error,均方根误差)等指标,并通过前述指标确定当前Epoch中的模型的性能。
其中,当前Epoch,又称当前一代训练,指的是一个所有训练样本在神经网络中均进行了一次正向传播和一次反向传播的过程,也就是说,一个Epoch就是将所有训练样本训练一次的过程。由此,若获取到的相关差异指标优于上一个Epoch的指标,则可以保留当前得到的模型;若获取到的相关差异指标劣于上一个Epoch的指标,则可以丢弃当前得到的模型。
S2502、接收验证客户端发送的验证指示信息,其中,验证指示信息为根据模型预测值获得的用于指示模型是否保留的指示信息。
本申请实施例中,验证客户端可以将验证指示信息发送至服务端。相应地,服务端可以接收验证客户端发送的验证指示信息。
S2503、根据验证指示信息,确定是否保留并使用目标联邦学习模型,并将确定结果发送给客户端。
本申请实施例中,服务端可以根据验证指示信息,确定是否保留并使用目标联邦学习模型,并将确定结果发送所有给客户端。
针对验证客户端作为执行主体,如图28所示,本申请实施例提出的联邦学习模型的训练方法,具体包括以下步骤:
S2601、接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点。
S2602、基于目标***方式对训练节点进行节点***。
需要说明的是,步骤S2601~S2602的相关内容可参见上述实施例,此处不再赘述。
S2603、接收服务器发送的验证集合,基于验证集合,对目标联邦学习模型进行验证。
本申请实施例中,服务端可以获取验证集合,并发送至验证客户端。相应地,验证客户端可以接收服务器发送的验证集合,并基于验证集合,对目标联邦学习模型进行验证。
其中,接收服务器发送的验证集合,基于验证集合,对目标联邦学习模型进行验证。
由此,本申请提出的联邦学习模型的训练方法,在基于目标***方式对训练节点进行节点***后,验证客户端可以通过接收服务器发送的验证集合,基于验证集合,对目标联邦学习模型进行验证,以在用户数据同构较多的情况下,通过采用训练结合验证的方式,减低了联邦学习模型的验证损失,提高了联邦学习模型的推理效果,进一步提高了联邦学习模型训练过程中的有效性及可靠性。
需要说明的是,本申请实施例中,在验证客户端试图基于验证集合,对目标联邦学习模型进行验证时,可以逐一验证验证集合中的数据实例标识,直至验证集合中的数据实例标识均被验证。
作为一种可能的实现方式,如图29所示,在上述实施例的基础上,上述步骤S2603中基于验证集合,对目标联邦学习模型进行验证的过程,具体包括以下步骤:
S2701、接收服务端发送验证集合中的一个数据实例标识,以及验证节点的***信息,其中,验证节点为多个提升树其中一个提升树上的节点。
本申请实施例中,服务端可以将任一数据实例标识发送至验证客户端,同时发送验证节点的***信息。相应地,验证客户端可以接收该数据实例标识和验证节点的***信息。
其中,***信息包括用于***的特征以及***阈值。
S2702、根据数据实例标识和***信息,确定验证节点的节点走向。
本申请实施例中,验证客户端可以根据数据实例标识获取对应的数据,并根据***信息,判断验证节点对应的节点走向,即判断节点走向为向左子树走或者向右子树走。
作为一种可能的实现方式,如图30所示,上述步骤S2702中根据数据实例标识和***信息,确定验证节点的节点走向的过程,具体包括以下步骤:
S2801、根据数据实例标识,确定数据实例标识对应的每个特征的特征值。
需要说明的是,步骤S2801的相关内容可参见上述实施例,此处不再赘述。
S2802、根据***信息和每个特征的特征值,确定节点走向。
本申请实施例中,验证客户端可以根据***信息,确定用于***的特征,以及基于该特征的特征值和***阈值,进而确定节点走向。
S2703、向服务端发送的节点走向,以使服务端根据节点走向进入下一个节点,以下一个节点作为更新的验证节点。
本申请实施例中,验证客户端在确定了验证节点对应的节点走向之后,可以将节点走向发送至服务端。相应地,服务端可以接收验证客户端发送的验证节点对应的节点走向。
进一步地,在完成上述步骤S2703之后,可以确定是否保留并使用目标联邦学习模型。
作为一种可能的实现方式,如图27所示,在上述实施例的基础上,上述步骤S2703之后,具体包括以下步骤:
S2901、若验证集合中数据实例标识均被验证,接收服务端发送的数据实例标识所表征的数据实例的模型预测值。
本申请实施例中,若验证集合中数据实例标识均被验证,也就是说,当前预测的数据实例标识为所有预测数据实例标识中的最后一个,则可以发送数据实例的模型预测值给验证客户端。相应地,验证客户端可以接收所有预测结果,并计算出最终的验证结果,进而将其与上一次的验证结果进行比较,以判断是否需要保留并使用当前的目标联邦学习模型,并根据判定结果生成验证指示信息。
需要说明的是,验证客户端在试图生成验证指示信息时,可以针对验证集合中的所有样本,计算得到预测值。由于验证客户端有它们的真实Label值,此种情况下,客户端可以根据预测值和Lable值,计算二者之间值的相关差异指标,例如Aaccuracy(准确率,又称精确程度)、RMSE(Root Mean Squared Error,均方根误差)等指标,并通过前述指标确定当前Epoch中的模型的性能。
其中,当前Epoch,又称当前一代训练,指的是一个所有训练样本在神经网络中均进行了一次正向传播和一次反向传播的过程,也就是说,一个Epoch就是将所有训练样本训练一次的过程。由此,若获取到的相关差异指标优于上一个Epoch的指标,则可以保留当前得到的模型;若获取到的相关差异指标劣于上一个Epoch的指标,则可以丢弃当前得到的模型。
S2902、根据模型预测值获得最终的验证结果,并将验证结果与之前验证结果进行比较,以生成用于指示是否保留并使用目标联邦学习模型的验证指示信息。
本申请实施例中,验证客户端可以将验证指示信息发送至服务端。相应地,服务端可以接收验证客户端发送的验证指示信息。
S2903、向服务端发送验证指示信息。
本申请实施例中,服务端可以根据验证客户端发送的验证指示信息,确定是否保留并使用目标联邦学习模型,并将确定结果发送所有给客户端。
图32为本申请一个实施例公开的一种联邦学习模型的训练方法的流程示意图。
如图32所示,以XGB为例,对服务端和客户端(包括验证客户端)进行联邦学习模型的训练的全过程为例,对本申请实施例提出的联邦学习模型的训练方法进行解释说明,具体包括以下步骤:
S3001、服务端与客户端分别进行初始化处理。
可选地,客户端发送数据标识给服务端。具体地,客户端将自己每条数据的数据标识,发送给服务端。其中,数据标识是唯一区分每条数据的。相应地,服务端接收各客户端发送的数据标识。
进一步地,服务端根据其接收的数据标识,确定客户端之间的共同数据标识。其中,共同数据标识是服务端根据各客户端上报的数据标识,确定的不同客户端中所具有的相同的数据标识。
进一步地,服务端发送共同数据标识给客户端。
进一步地,客户端根据共同数据标识和本地数据,获得损失公式的导数,并进行同态加密处理。具体地,客户端根据共同数据标识和本地数据,计算损失函数的一些中间结果,例如损失函数的一阶导数gi和二阶导数hi。其中,gi和hi的计算公式为:
其中,yi为样本i的预测结果;各符号含义请参考相关技术。
损失函数的计算公式为:
在XGB中提出使用二阶泰勒展开式近似表示上面的公式。泰勒展开式的二阶形式为:
进一步地,客户端发送加密后的导数给服务端。相应地,服务端接收客户端发送的加密后的导数。
进一步地,服务端对接收到的加密后的导数进行解密处理,并对解密后的导数进行求均值处理,得到均值。针对同一共同数据标识,基于各客户端对应的导数累加后求均值。例如,计算方式如前所述,分别对共同数据标识所对应的一阶导数gi和二阶导数hi累加后求均值。具体地:
其中,n表示具有共同数据ID的个数,gi(j)表示数据j的一阶导数gi,hi(j)表示数据j的二阶导数hi。
进一步地,服务端发送均值给客户端。示例性地,服务端以列表的形式,发送均值给客户端。一种实现中,一阶导数gi和二阶导数hi可共同存在于同一个列表中;另一种实现中,一阶导数gi和二阶导数hi分别存在于不同列表中,例如,一阶导数gi存在于列表A,二阶导数hi存在于列表B。相应地,客户端接收服务端发送的均值。
进一步地,客户端更新本地存储的均值。
S3002、服务端与客户端开始进行横向XGB处理。
可选地,服务端判断当前所处的树节点是否需要继续***。例如,服务端根据当前所处的树节点所在的层次是否达到最大的树深度,来确树节点定是否需要继续***;若树节点不需要继续***,服务端将所在节点作为叶子节点,计算出该叶子节点的权重值wj,存储该wj的值,作为横向XGB的叶子节点权重值;若树节点需要继续***,服务端从所有特征的集合中随机产生当前节点可用的特征集合,将这个特征集合发送给各个客户端。
进一步地,服务端从所有特征的集合中随机产生当前节点可用的特征集合,将这个特征集合发送给各个客户端。
进一步地,客户端根据得到的特征集合,遍历特征集合中每个特征,根据本地数据,随机选择该特征所有取值中的一个,发送给服务端。
进一步地,服务端收集各个客户端发送的特征取值信息,组成一个取值列表,从取值列表中随机选择一个作为当前特征的全局最优***阈值,将这个全局最优***阈值广播给各个客户端。
进一步地,客户端根据接收到的全局最优***阈值,对当前特征进行节点***,得到IL,通知服务端;如果客户端不存在对应的特征,则返回空的IL。
其中,IL为左子树空间中的实例ID集合,计算方式如下:客户端接收到服务端发送的特征k的全局最优***阈值value,本地数据中如果实例ID1对应的特征k的取值小于全局最优***阈值value,则将ID1加入到IL集合中。用公式表示如下:
SIL={ID|IDk<value}
其中,IDk表示实例ID特征k的取值,SIL表示集合IL。
进一步地,服务端对当前特征,接收各个客户端发送的IL,从各个IL中过滤重复的实例ID,处理存在矛盾的ID信息。对于某些客户端,会将实例ID加入IL中;但某些客户端存在ID,却没有加进去,此时会认为这个ID应该存在于IL中,从而确定最终的IL和IR。如果某个客户端的数据中,不存在当前特征,则将这个客户端的数据实例ID投放到IR中。然后,计算GL、GR和HL、HR,进而计算并得到当前特征的***值Gain:
其中,GL为左子树空间中所有一阶导数gi的和;GR为右子树空间所有一阶导数gi的和;HL为左子树空间所有二阶导数hi的和;HR为右子树空间所有二阶导数hi的和。计算方式如下:
其中,n1表示左子树空间中的实例个数,n2表示右子树空间中的实例个数。
服务端协同客户端遍历处理随机选出来的特征集合中的每个特征,可以根据每个特征作为***节点所计算出来的***值,并将***值最大的特征,作为当前节点的最佳效果特征。同时,服务端也知道***节点对应的阈值信息,将***阈值、***值Gain以及所选特征等信息作为横向XGB当前节点最优***的信息。
进一步地,服务端进行横向方式的节点***后的清理操作,服务端通知各个客户端不再进行横向方式的节点***操作,即完成横向方式的节点***操作。
进一步地,服务端将所在节点作为叶子节点,计算出该叶子节点的权重值wj,存储该wj的值,作为横向XGB的叶子节点权重值。
进一步地,服务端通知各个客户端不再进行横向方式的节点***操作,即完成横向方式的节点***操作。
进一步地,客户端进行完成横向节点***后的处理。
S3003、服务端与客户端开始进行纵向XGB处理。
可选地,服务端通知客户端,进行纵向XGB的处理。
进一步地,服务端向各客户端请求获取Gkv和Hkv信息。
进一步地,客户端根据共同数据标识的那部分数据,得到当前节点还未被处理的数据,随机得到特征集合,根据集合中每个特征k和对应特征的所有取值v,对每个样本桶映射,计算出左子树空间的Gkv和Hkv,同态加密后发送到服务端。可选地,可以将数据集中特征k的取值排序后,进行投桶操作,分为下面几个桶:{sk,1,sk,2,sk,3,…,sk,v-1};则Gkv和Hkv的计算公式如下:
其中,xi,k表示数据xi的特征k的值。
进一步地,服务端对各客户端发送的[[Gkv]]和[[Hkv]]进行解密,并根据当前节点的共同数据标识那部分数据,以及前面得到的所有gi和hi,可以计算出当前节点的G和H。可选地,若部分客户端拥有相同的特征,服务端将会对接收到的Gkv随机取一个作为当前特征的Gkv,同理Hkv也这样处理。进一步地,可以根据G、H和Gkv、Hkv,可以算出各个特征的最优分割点,并根据前述***点信息,确定全局最优分割点(k,v,Gain)。
本申请实施例中,可以将接收到的信息与预设的阈值进行比较,若Gain小于或者等于阈值,则不进行纵向方式的节点***,可以执行步骤S3027;若Gain大于阈值,则可以执行步骤S3023。
进一步地,服务端根据(k,v,Gain),向对应的客户端请求IL。
进一步地,客户端C接收到分割点信息(k,v,Gain),查找得到分割点阈值value,记录该分割点(k,value)信息。本地数据集根据该分割点进行分割,得到IL,发送(record,IL,value)到服务端。其中,record表示该条记录在客户端的索引,IL计算方式如前面提及那样。
进一步地,服务端接受客户端C发送的(record,IL,value)信息,对所在节点空间的所有共同ID的实例进行分割,并通过(client id,record)关联当前节点和客户端C。本申请实施例中,服务端可以记录(client id,record_id,IL,feature_name,feature_value),以作为纵向***的信息,并执行步骤S3027。
进一步地,服务端将所在节点作为叶子节点,计算出该叶子节点的权重值wj,存储该wj,作为纵向的叶子节点权重值。
进一步地,服务端通知各个客户端不再进行纵向方式的叶子节点***;或者说,完成节点***的操作。
进一步地,各个客户端进行完成纵向节点***后的处理。
S3004、服务端与客户端开始进行横向XGB和纵向XGB的混合处理。
可选地,服务端判断当前节点是否需要进行***。本申请实施例中,若当前节点不需要进行***,服务端将所在节点作为叶子节点,计算出该叶子节点的权重值wj,发送信息[Ij(m),wj]给所有客户端;若当前节点需要进行***,服务端根据横向XGB得到的Gain和纵向XGB得到的Gain,并根据Gain确定目标Gain,从而确定节点***方式进行节点***。
进一步地,服务端根据横向XGB得到的Gain和纵向XGB得到的Gain,并根据Gain确定目标Gain,从而确定节点***方式进行节点***。本申请实施例中,若为如果横向XGB方式,服务端使用横向方式进行该节点***,即根据上面横向方式得到的(k,value)信息,对当前节点进行***操作,可以得到IL信息,将IL广播各个客户端;若为纵向XGB方式,客户端根据服务端记录的纵向***的(client_id,record_id,IL,feature_name,feature_value),通知各个客户端进行真正的节点***操作。
进一步地,客户端根据服务端记录的纵向***的(client_id,record_id,IL,feature_name,feature_value),通知各个客户端进行真正的节点***操作。其中,client_id对应的客户端必须知道(client_id,record_id,IL,feature_name,feature_value)所有信息,其他客户端仅需要知道IL信息即可。
服务端将当前***后的左子树节点作为当前的处理节点。
进一步地,客户端接收服务端发送的IL或者(client_id,record_id,IL,feature_name,feature_value),进行纵向方式的节点***操作;如果存在(client_id,record_id,IL,feature_name,feature_value)信息,在***时,客户端还需要记录和存储这些信息。本申请实施例中,在***完毕之后,将***后的左子树节点作为当前的处理节点。
进一步地,服务端返回步骤S3002继续后续的处理,且客户端返回步骤S3002,等待服务端消息。需要说明的是,由于此时仅完成了当前节点的***,还需要进行下一层的左子树、右子树节点的***。因此,返回步骤S3002,进行下一个节点的节点***。
进一步地,服务端使用横向方式进行该节点***,即根据上面横向方式得到的(k,value)信息,对当前节点进行***操作,可以得到IL信息,将IL广播各个客户端。其中,IL可以通过以下公式进行表示:
SIL={ID|IDk<value}
其中,IDk表示实例ID特征k的取值,SIL表示集合IL。
进一步地,客户端接收服务端广播的IL,根据IL结合本地非共同ID的数据,能够确定当前节点的IL和IR,然后进行节点***操作。需要说明的是,IL和IR的确定,就是本地非共同ID数据的ID,如果不在服务端发送的IL集合中,说明在IR集合里面。
进一步地,服务端使用横向方式进行节点***时,是根据所选特征k和阈值value进行的,将(k,value)广播到客户端。
进一步地,各个客户端接收服务端的(k,value)信息,对共同ID的数据进行节点***,***方式是对于共同ID数据的特征k。其中,如果值小于value,则将该条数据的ID应该投放到IL集合中,否则投放到IR集合中。如果数据不存在特征k,则投放到右子树空间中。
进一步地,服务端返回步骤S3002继续进行下一个节点的***操作,且客户端返回步骤S3002,等待服务端消息。
进一步地,服务端将所在节点作为叶子节点,计算出该叶子节点的权重值wj,发送信息[Ij(m),wj]给所有客户端。其中,Ij(m)为当前节点空间的实例ID集合,wj为当前节点的权重。
进一步地,客户端根据[Ij(m),wj],计算出新的y`(t-1)(i),并回溯到当前树的其他非叶子节点,作为当前节点。其中,y`(t-1)(i)表示第i个实例所对应的Label残差,t表示当前是第t棵树,t-1表示上一棵树。
进一步地,服务端回溯到当前树的其他非叶子节点,作为当前节点。
进一步地,如果回溯后的当前节点存在且不为空,返回步骤S3002进行下一步处理,且客户端返回步骤S3002,等待服务端消息。
进一步地,如果当前节点为空,则进行模型的验证操作。
S3005、服务端与验证客户端进行目标联邦学习模型的验证。
可选地,服务端通知验证客户端进行验证初始化操作
进一步地,验证客户端进行验证初始化。
进一步地,服务端选择一个ID开始进行验证。初始化XGB树,通知验证客户端开始进行验证。
进一步地,验证客户端初始化验证信息。
进一步地,服务端根据当前的XGB树,将***节点信息和验证的数据ID发送给验证客户端。
进一步地,验证客户端根据数据ID,获取对应的数据,然后根据服务端发送的***节点信息,判断应该往左子树走还是右子树走,返回给服务端。
进一步地,服务端根据验证客户端返回的走向,进入下一个节点。然后判断是否已经到达叶子节点,如果是,服务端记录叶子节点的权重,计算出预测值,进行存储;反之,服务端选择一个ID开始进行验证。初始化XGB树,通知验证客户端开始进行验证。
进一步地,服务端记录叶子节点的权重,计算出预测值,进行存储。如果当前预测的ID是所有预测ID最后一个,服务端将所有预测结果发送给客户端;反之,服务端选择一个ID开始进行验证。初始化XGB树,通知验证客户端开始进行验证。
进一步地,服务端将所有预测结果发送给客户端。
进一步地,验证客户端接收所有预测结果,进行出最终的验证结果,与上一次的验证结果对比,判断是否需要保留并使用当前的模型,并通知服务端。
进一步地,服务端根据验证客户端返回的验证结果,判断是否保留并使用当前的模型,并通知所有客户端。
进一步地,各个客户端接收服务端的广播信息,进行处理。
进一步地,服务端判断是否已经是达到最终的预测轮次,如果是,则执行步骤S3006。
S3006、服务端与客户端分别结束训练,并保留目标联邦学习模型。
可选地,服务端结束所有训练,清理信息,保留模型。
进一步地,客户端结束所有训练,清理信息,保留模型。
综上所述,根据本申请实施例的一种联邦学习模型的训练方法,可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
基于同一申请构思,本申请实施例还提供了一种联邦学习模型的训练方法对应的装置。
图33为本申请实施例提供的联邦学习模型的训练装置的结构示意图。
如图33所示,该联邦学习模型的训练装置1000,应用于服务端,包括:获取模块110、通知模块120、第一训练模块130、第二训练模块140和生成模块150。
其中,获取模块110,用于如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式;其中,所述训练节点为多个提升树中一个提升树上的节点;
通知模块120,用于通知客户端基于所述目标***方式进行节点***;
第一训练模块130,用于以所述训练节点***后生成的左子树节点重新作为所述训练节点进行下一轮训练,直至更新的所述训练节点不再满足所述预设***条件;
第二训练模块140,用于以所述一个提升树的其它非叶子节点重新作为所述训练节点进行下一轮训练;
生成模块150,用于如果所述多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
根据本申请的一个实施例,如图34所示,图33中的获取模块110,包括:
第一学习子模块111,用于基于第一训练集合,协同所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值;
第二学习子模块112,用于基于第二训练集合,协同所述客户端进行纵向联邦学习,以得到所述训练节点对应的第二***值;
确定子模块113,用于根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式。
根据本申请的一个实施例,如图35所示,图34中的确定子模块113,包括:
第一确定单元1131,用于确定所述第一***值与所述第二***值中较大的值为所述训练节点对应的目标***值;
第二确定单元1132,用于根据所述目标***值,确定所述训练节点对应的***方式。
根据本申请的一个实施例,如图36所示,图33中的第一学习子模块111,包括:
产生单元1111,用于从所述第一训练集合中产生所述训练节点可用的第一特征子集,并发送给所述客户端;
第一接收单元1112,用于接收所述客户端发送的所述第一特征子集中每个特征的特征值;
第三确定单元1113,用于根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值;
第四确定单元1114,用于根据所述每个特征对应的所述横向***值,确定所述训练节点的所述第一***值。
根据本申请的一个实施例,如图37所示,图36中的第三确定单元1113,包括:
第一确定子单元11131,用于针对所述第一特征子集中任一特征,根据所述任一特征的特征值,确定所述任一特征的***阈值;
第一获取子单元11132,用于根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,所述第一数据实例标识集合包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识;
第二确定子单元11133,用于根据所述第一数据实例标识集合和所述第二数据实例标识集合,确定所述任一特征对应的所述横向***值。
根据本申请的一个实施例,第一获取子单元11132,还用于:向所述客户端发送所述***阈值;接收所述客户端发送所述训练节点对应的初始数据实例标识集合,其中,所述初始数据实例标识集合为所述客户端根据所述***阈值对所述任一特征进行节点***时生成的,所述初始数据实例标识集合包括属于所述第一左子树空间的数据实例标识;基于所述初始数据实例标识集合和所有数据实例标识,获得所述第一数据实例标识集合和所述第二数据实例标识集合。
根据本申请的一个实施例,第一获取子单元11132,还用于:将所述初始数据实例标识集合中的每个数据实例标识,与所述客户端的数据实例标识进行对比,获取存在异常的数据实例标识;对所述异常的数据实例标识进行预处理,获取所述第一数据实例标识集合;基于所有数据实例标识和所述第一数据实例标识集合,获取所述第二数据实例标识集合。
根据本申请的一个实施例,如图38所示,图34中的第二学习子模块112,包括:
通知单元1121,用于通知所述客户端基于所述第二训练集合进行纵向联邦学习;
第二接收单元1122,用于接收所述客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
第五确定单元1123,用于根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值;
第六确定单元1124,用于根据每个特征对应的纵向***值,确定所述训练节点的所述第二***值。
根据本申请的一个实施例,如图39所示,图38中的第五确定单元1123,包括:
第二获取子单元11231,用于针对任一特征,根据所述总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;
第三获取子单元11232,用于针对每个第一梯度信息,根据所述第一梯度信息和所述第一梯度信息相对应的第二梯度信息,获取所述任一特征的候选纵向***值;
选取子单元11233,用于选取所述候选纵向***值中的最大值,作为所述任一特征的纵向***值。
根据本申请的一个实施例,其中,所述第一梯度信息包括属于所述第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二左子树空间的数据实例所对应的特征的二阶梯度之和;所述第二梯度信息包括属于所述第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二右子树空间的数据实例所对应的特征的二阶梯度之和。
根据本申请的一个实施例,如图40所示,该联邦模型的训练装置1000,还包括:
确定模块160,用于若所述训练节点未满足预设***条件,则确定所述训练节点为叶子节点,并获取所述叶子节点的权重值;
发送模块170,用于将所述叶子节点的权重值发送给所述客户端。
根据本申请的一个实施例,如图41所示,图40中的确定模块160,包括:
第一获取子模块161,用于获取属于所述叶子节点的数据实例;
第二获取子模块162,用于获取所述属于所述叶子节点的数据实例的一阶梯度信息以及二阶梯度信息,并根据所述一阶梯度信息以及所述二阶梯度信息,获取所述叶子节点的权重值。
根据本申请的一个实施例,如图35所示,图34中的确定子模块113,还包括:
发送单元1133,用于向所述客户端发送***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值。
根据本申请的一个实施例,发送单元1133,还用于:向有标签的客户端发送所述***信息;接收所述有标签的客户端发送的左子树空间集合;根据所述左子树空间集合,对所述第二训练集合进行***;将所述训练节点与所述有标签的客户端的标识进行关联。
根据本申请的一个实施例,获取模块110,还用于:接收所述客户端发送的数据实例标识;根据所述数据实例标识,确定客户端之间的共同数据实例标识,其中,所述共同数据实例标识用于指示所述客户端确定所述第一训练集合和所述第二训练集合。
由此,本申请提出的联邦学习模型的训练装置,服务端可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
基于同一申请构思,本申请实施例还提供了另一种联邦学习模型的模型评估方法对应的装置。
图42为本申请实施例提供的联邦学习模型的训练装置的结构示意图。如图42所示,该联邦学习模型的模型评估装置2000,应用于客户端,包括:第一接收模块210和***模块220。
其中,第一接收模块210,用于接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,所述训练节点为多个提升树中一个提升树上的节点;
***模块220,用于基于所述目标***方式对所述训练节点进行节点***。
根据本申请的一个实施例,如图43所示,图42中的***模块220,包括:
第一学习子模块221,用于基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值;
第二学习子模块222,用于基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值;
发送子模块223,用于将所述第一***值和所述第二***值发送给所述服务端。
根据本申请的一个实施例,如图44所示,图43中的第一学习子模块221,包括:
第一接收单元2211,用于接收所述服务端从所述第一训练集合中产生的所述训练节点可用的第一特征子集;
第一发送单元2212,用于向所述服务端发送所述第一特征子集中每个特征的特征值;
第二接收单元2213,用于接收所述服务端发送的所述每个特征的***阈值;
第一获取单元2214,用于基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,并将所述初始数据实例标识集合发送给所述服务端;
其中,所述初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,所述第一数据实例标识集合和所述初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
根据本申请的一个实施例,第一获取单元2214,还用于:针对任一特征,将所述任一特征的***阈值分别与所述任一特征的特征值进行比较,获取所述特征值小于所述***阈值的数据实例标识,生成所述初始数据实例标识集合。
根据本申请的一个实施例,如图45所示,图43中的第二学习子模块222,包括:
第三接收单元2221,用于接收所述服务端发送的梯度信息请求;
产生单元2222,用于根据所述梯度信息请求,从第二训练集合中产生第二特征子集;
第二获取单元2223,用于获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
第二发送单元2224,用于将所述第三数据实例标识集合的第一梯度信息发送给所述服务端。
根据本申请的一个实施例,如图46所示,图45中的第二获取单元2223,包括:
分桶子单元22231,用于针对任一特征,获取所述任一特征的所有特征值,基于所述特征值对对所述任一特征进行分桶;
第一获取子单元22232,用于获取所述任一特征每个分桶的所述第三数据实例标识集合的第一梯度信息。
根据本申请的一个实施例,如图43所示,图42中的***模块220,还包括:
接收子模块224,用于接收所述服务端发送的***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值;
***子模块225,用于基于所述***信息,对所述训练节点进行节点***。
根据本申请的一个实施例,***子模块225,还用于:将***生成的左子树空间发送给所述服务端。
根据本申请的一个实施例,如图47所示,该联邦模型的训练装置1000,还包括:
第二接收模块230,用于若所述训练节点为叶子节点,接收所述服务器发送的所述叶子节点的权重值;
确定模块240,用于据所述叶子节点的权重值确定其包含的各数据的残差;
输入模块250,用于将所述残差作为下一个提升树的残差输入。
由此,本申请提出的联邦学习模型的训练装置,客户端可以通过接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,训练节点为多个提升树中一个提升树上的节点,并基于目标***方式对训练节点进行节点***,使得可以通过将横向***方式和纵向***方式进行混合,自动地选择匹配的学习方式的倾向性,无须关心数据分布方式,解决了现有联邦学习模型的训练过程中存在的无法充分利用所有数据进行学习以及由于数据利用不充分导致训练效果不佳的问题,同时,减少了联邦学习模型的损失,提升了联邦学习模型的性能。
基于同一申请构思,本申请实施例还提供了一种电子设备。
图48为本申请实施例提供的电子设备的结构示意图。如图48所示,该电子设备3000,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序,处理器执行程序时,实现前述的联邦学习模型的训练方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (50)
1.一种联邦学习模型的训练方法,其特征在于,应用于服务端,包括:
如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式;其中,所述训练节点为多个提升树中一个提升树上的节点;
通知客户端基于所述目标***方式进行节点***;
以所述训练节点***后生成的左子树节点重新作为所述训练节点进行下一轮训练,直至更新的所述训练节点不再满足所述预设***条件;
以所述一个提升树的其它非叶子节点重新作为所述训练节点进行下一轮训练;
如果所述多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
2.根据权利要求1所述的联邦学习模型的训练方法,其特征在于,所述获取所述训练节点对应的目标***方式,包括:
基于第一训练集合,协同所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值;
基于第二训练集合,协同所述客户端进行纵向联邦学习,以得到所述训练节点对应的第二***值;
根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式。
3.根据权利要求2所述的联邦学习模型的训练方法,其特征在于,所述根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式,包括:
确定所述第一***值与所述第二***值中较大的值为所述训练节点对应的目标***值;
根据所述目标***值,确定所述训练节点对应的***方式。
4.根据权利要求2所述的联邦学习模型的训练方法,其特征在于,所述基于第一训练集合,协和所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值,包括:
从所述第一训练集合中产生所述训练节点可用的第一特征子集,并发送给所述客户端;
接收所述客户端发送的所述第一特征子集中每个特征的特征值;
根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值;
根据所述每个特征对应的所述横向***值,确定所述训练节点的所述第一***值。
5.根据权利要求4所述的联邦学习模型的训练方法,其特征在于,所述根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值,包括:
针对所述第一特征子集中任一特征,根据所述任一特征的特征值,确定所述任一特征的***阈值;
根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,所述第一数据实例标识集合包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识;
根据所述第一数据实例标识集合和所述第二数据实例标识集合,确定所述任一特征对应的所述横向***值。
6.根据权利要求5所述的联邦学习模型的训练方法,其特征在于,所述根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,包括:
向所述客户端发送所述***阈值;
接收所述客户端发送所述训练节点对应的初始数据实例标识集合,其中,所述初始数据实例标识集合为所述客户端根据所述***阈值对所述任一特征进行节点***时生成的,所述初始数据实例标识集合包括属于所述第一左子树空间的数据实例标识;
基于所述初始数据实例标识集合和所有数据实例标识,获得所述第一数据实例标识集合和所述第二数据实例标识集合。
7.根据权利要求6所述的联邦学习模型的训练方法,其特征在于,所述基于所述初始数据实例标识集合,获得所述第一数据实例标识集合和所述第二数据实例标识集合,包括:
将所述初始数据实例标识集合中的每个数据实例标识,与所述客户端的数据实例标识进行对比,获取存在异常的数据实例标识;
对所述异常的数据实例标识进行预处理,获取所述第一数据实例标识集合;
基于所有数据实例标识和所述第一数据实例标识集合,获取所述第二数据实例标识集合。
8.根据权利要求2所述的联邦学习模型的训练方法,其特征在于,所述基于第二训练集合,协和所述客户端进行纵向联邦学习,得到所述训练节点对应的第二***值,包括:
通知所述客户端基于所述第二训练集合进行纵向联邦学习;
接收所述客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值;
根据每个特征对应的纵向***值,确定所述训练节点的所述第二***值。
9.根据权利要求8所述的联邦学习模型的训练方法,其特征在于,所述根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值,包括:
针对任一特征,根据所述总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;
针对每个第一梯度信息,根据所述第一梯度信息和所述第一梯度信息相对应的第二梯度信息,获取所述任一特征的候选纵向***值;
选取所述候选纵向***值中的最大值,作为所述任一特征的纵向***值。
10.根据权利要求9所述的联邦学习模型的训练方法,其特征在于,其中,所述第一梯度信息包括属于所述第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二左子树空间的数据实例所对应的特征的二阶梯度之和;所述第二梯度信息包括属于所述第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二右子树空间的数据实例所对应的特征的二阶梯度之和。
11.根据权利要求1-10任一项所述的联邦学习模型的训练方法,其特征在于,还包括:
若所述训练节点未满足预设***条件,则确定所述训练节点为叶子节点,并获取所述叶子节点的权重值;
将所述叶子节点的权重值发送给所述客户端。
12.根据权利要求11所述的联邦学习模型的训练方法,其特征在于,所述获取所述叶子节点的权重值,包括:
获取属于所述叶子节点的数据实例;
获取所述属于所述叶子节点的数据实例的一阶梯度信息以及二阶梯度信息,并根据所述一阶梯度信息以及所述二阶梯度信息,获取所述叶子节点的权重值。
13.根据权利要求3所述的联邦学习模型的训练方法,其特征在于,所述通知所述客户端基于所述目标***方式进行节点***之前,还包括:
向所述客户端发送***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值。
14.根据权利要求13所述的联邦学习模型的训练方法,其特征在于,所述目标***方式为纵向***方式时,所述通知所述客户端基于所述目标***方式进行节点***之前,还包括:
向有标签的客户端发送所述***信息;
接收所述有标签的客户端发送的左子树空间集合;
根据所述左子树空间集合,对所述第二训练集合进行***;
将所述训练节点与所述有标签的客户端的标识进行关联。
15.根据权利要求2-10任一项所述的联邦学习模型的训练方法,其特征在于,所述如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式之前,所述方法还包括:
接收所述客户端发送的数据实例标识;
根据所述数据实例标识,确定客户端之间的共同数据实例标识,其中,所述共同数据实例标识用于指示所述客户端确定所述第一训练集合和所述第二训练集合。
16.一种联邦学习模型的训练方法,其特征在于,应用于客户端,包括:
接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,所述训练节点为多个提升树中一个提升树上的节点;
基于所述目标***方式对所述训练节点进行节点***。
17.根据权利要求16所述的联邦学习模型的训练方法,其特征在于,所述基于所述目标***方式对所述训练节点进行节点***之前,还包括:
基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值;基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值;
将所述第一***值和所述第二***值发送给所述服务端。
18.根据权利要求17所述的联邦学习模型的训练方法,其特征在于,所述基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值,还包括:
接收所述服务端从所述第一训练集合中产生的所述训练节点可用的第一特征子集;
向所述服务端发送所述第一特征子集中每个特征的特征值;
接收所述服务端发送的所述每个特征的***阈值;
基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,并将所述初始数据实例标识集合发送给所述服务端;
其中,所述初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,所述第一数据实例标识集合和所述初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
19.根据权利要求18所述的联邦学习模型的训练方法,其特征在于,所述基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,包括:
针对任一特征,将所述任一特征的***阈值分别与所述任一特征的特征值进行比较,获取所述特征值小于所述***阈值的数据实例标识,生成所述初始数据实例标识集合。
20.根据权利要求16所述的联邦学习模型的训练方法,其特征在于,所述基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值之前,还包括:
接收所述服务端发送的梯度信息请求;
根据所述梯度信息请求,从第二训练集合中产生第二特征子集;
获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
将所述第三数据实例标识集合的第一梯度信息发送给所述服务端。
21.根据权利要求20所述的联邦学习模型的训练方法,其特征在于,所述获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,包括:
针对任一特征,获取所述任一特征的所有特征值,基于所述特征值对对所述任一特征进行分桶;
获取所述任一特征每个分桶的所述第三数据实例标识集合的第一梯度信息。
22.根据权利要求16-21任一项所述的联邦学习模型的训练方法,其特征在于,所述基于所述目标***方式对所述训练节点进行节点***,还包括:
接收所述服务端发送的***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值;
基于所述***信息,对所述训练节点进行节点***。
23.根据权利要求22所述的联邦学习模型的训练方法,其特征在于,所述对所述训练节点进行节点***之后,还包括:
将***生成的左子树空间发送给所述服务端。
24.根据权利要求16-21任一项所述的联邦学习模型的训练方法,其特征在于,还包括:
若所述训练节点为叶子节点,接收所述服务器发送的所述叶子节点的权重值;
据所述叶子节点的权重值确定其包含的各数据的残差;
将所述残差作为下一个提升树的残差输入。
25.一种联邦学习模型的训练装置,其特征在于,应用于服务端,包括:
获取模块,用于如果训练节点满足预设***条件,则获取所述训练节点对应的目标***方式;其中,所述训练节点为多个提升树中一个提升树上的节点;
通知模块,用于通知客户端基于所述目标***方式进行节点***;
第一训练模块,用于以所述训练节点***后生成的左子树节点重新作为所述训练节点进行下一轮训练,直至更新的所述训练节点不再满足所述预设***条件;
第二训练模块,用于以所述一个提升树的其它非叶子节点重新作为所述训练节点进行下一轮训练;
生成模块,用于如果所述多个提升树的节点数据集均为空,停止训练并生成目标联邦学习模型。
26.根据权利要求25所述的联邦学习模型的训练装置,其特征在于,所述获取模块,包括:
第一学习子模块,用于基于第一训练集合,协同所述客户端进行横向联邦学习,以得到所述训练节点对应的第一***值;
第二学习子模块,用于基于第二训练集合,协同所述客户端进行纵向联邦学习,以得到所述训练节点对应的第二***值;
确定子模块,用于根据所述第一***值和所述第二***值,确定所述训练节点对应的目标***方式。
27.根据权利要求26所述的联邦学习模型的训练装置,其特征在于,所述确定子模块,包括:
第一确定单元,用于确定所述第一***值与所述第二***值中较大的值为所述训练节点对应的目标***值;
第二确定单元,用于根据所述目标***值,确定所述训练节点对应的***方式。
28.根据权利要求26所述的联邦学习模型的训练装置,其特征在于,所述第一学习子模块,包括:
产生单元,用于从所述第一训练集合中产生所述训练节点可用的第一特征子集,并发送给所述客户端;
第一接收单元,用于接收所述客户端发送的所述第一特征子集中每个特征的特征值;
第三确定单元,用于根据所述第一特征子集中每个特征的特征值,分别确定所述每个特征作为***特征点对应的横向***值;
第四确定单元,用于根据所述每个特征对应的所述横向***值,确定所述训练节点的所述第一***值。
29.根据权利要求28所述的联邦学习模型的训练装置,其特征在于,所述第三确定单元,包括:
第一确定子单元,用于针对所述第一特征子集中任一特征,根据所述任一特征的特征值,确定所述任一特征的***阈值;
第一获取子单元,用于根据所述***阈值,获取所述任一特征对应的第一数据实例标识集合和第二数据实例标识集合,其中,所述第一数据实例标识集合包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识;
第二确定子单元,用于根据所述第一数据实例标识集合和所述第二数据实例标识集合,确定所述任一特征对应的所述横向***值。
30.根据权利要求29所述的联邦学习模型的训练装置,其特征在于,所述获第一获取子单元,还用于:
向所述客户端发送所述***阈值;
接收所述客户端发送所述训练节点对应的初始数据实例标识集合,其中,所述初始数据实例标识集合为所述客户端根据所述***阈值对所述任一特征进行节点***时生成的,所述初始数据实例标识集合包括属于所述第一左子树空间的数据实例标识;
基于所述初始数据实例标识集合和所有数据实例标识,获得所述第一数据实例标识集合和所述第二数据实例标识集合。
31.根据权利要求30所述的联邦学习模型的训练装置,其特征在于,所述第一获取子单元,还用于:
将所述初始数据实例标识集合中的每个数据实例标识,与所述客户端的数据实例标识进行对比,获取存在异常的数据实例标识;
对所述异常的数据实例标识进行预处理,获取所述第一数据实例标识集合;
基于所有数据实例标识和所述第一数据实例标识集合,获取所述第二数据实例标识集合。
32.根据权利要求26所述的联邦学习模型的训练装置,其特征在于,所述第二学习子模块,包括:
通知单元,用于通知所述客户端基于所述第二训练集合进行纵向联邦学习;
接收单元,用于接收所述客户端发送的每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
第五确定单元,用于根据每个特征的所述第一梯度信息和所述训练节点的总梯度信息,分别确定每个特征的纵向***值;
第六确定单元,用于根据每个特征对应的纵向***值,确定所述训练节点的所述第二***值。
33.根据权利要求32所述的联邦学习模型的训练装置,其特征在于,所述第五确定单元,包括:
第二获取子单元,用于针对任一特征,根据所述总梯度信息和每个第一梯度信息,分别获取与每个第一梯度信息相对应的第二梯度信息;
第三获取子单元,用于针对每个第一梯度信息,根据所述第一梯度信息和所述第一梯度信息相对应的第二梯度信息,获取所述任一特征的候选纵向***值;
选取子单元,用于选取所述候选纵向***值中的最大值,作为所述任一特征的纵向***值。
34.根据权利要求33所述的联邦学习模型的训练装置,其特征在于,其中,所述第一梯度信息包括属于所述第二左子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二左子树空间的数据实例所对应的特征的二阶梯度之和;所述第二梯度信息包括属于所述第二右子树空间的数据实例所对应的特征的一阶梯度之和,以及属于所述第二右子树空间的数据实例所对应的特征的二阶梯度之和。
35.根据权利要求25-34任一项所述的联邦学习模型的训练装置,其特征在于,还包括:
确定模块,用于若所述训练节点未满足预设***条件,则确定所述训练节点为叶子节点,并获取所述叶子节点的权重值;
发送模块,用于将所述叶子节点的权重值发送给所述客户端。
36.根据权利要求35所述的联邦学习模型的训练装置,其特征在于,所述确定模块,包括:
第一获取单元,用于获取属于所述叶子节点的数据实例;
第二获取单元,用于获取所述属于所述叶子节点的数据实例的一阶梯度信息以及二阶梯度信息,并根据所述一阶梯度信息以及所述二阶梯度信息,获取所述叶子节点的权重值。
37.根据权利要求27述的联邦学习模型的训练装置,其特征在于,所述确定子模块,还包括:
发送单元,用于向所述客户端发送***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值。
38.根据权利要求37所述的联邦学习模型的训练装置,其特征在于,所述发送单元,还用于:
向有标签的客户端发送所述***信息;
接收所述有标签的客户端发送的左子树空间集合;
根据所述左子树空间集合,对所述第二训练集合进行***;
将所述训练节点与所述有标签的客户端的标识进行关联。
39.根据权利要求26-34任一项所述的联邦学习模型的训练装置,其特征在于,所述获取模块,还用于:
接收所述客户端发送的数据实例标识;
根据所述数据实例标识,确定客户端之间的共同数据实例标识,其中,所述共同数据实例标识用于指示所述客户端确定所述第一训练集合和所述第二训练集合。
40.一种联邦学习模型的训练装置,其特征在于,应用于客户端,包括:
第一接收模块,用于接收服务端在确定训练节点满足预设***条件时发送的目标***方式,其中,所述训练节点为多个提升树中一个提升树上的节点;
***模块,用于基于所述目标***方式对所述训练节点进行节点***。
41.根据权利要求40所述的联邦学习模型的训练装置,其特征在于,所述***模块,包括:
第一学习子模块,用于基于第一训练集合进行横向联邦学习,以得到所述训练节点对应的第一***值;
第二学习子模块,用于基于第二训练集合进行纵向联邦学习,以得到所述训练节点对应的第二***值;
发送子模块,用于将所述第一***值和所述第二***值发送给所述服务端。
42.根据权利要求41所述的联邦学习模型的训练装置,其特征在于,所述第一学习子模块,包括:
第一接收单元,用于接收所述服务端从所述第一训练集合中产生的所述训练节点可用的第一特征子集;
第一发送单元,用于向所述服务端发送所述第一特征子集中每个特征的特征值;
第二接收单元,用于接收所述服务端发送的所述每个特征的***阈值;
第一获取单元,用于基于所述每个特征的***阈值,获取所述训练节点对应的初始数据实例标识集合,并将所述初始数据实例标识集合发送给所述服务端;
其中,所述初始数据实例标识集合用于指示服务器生成第一数据实例标识集合和第二数据实例标识集合,所述第一数据实例标识集合和所述初始数据实例标识集合均包括属于第一左子树空间的数据实例标识,所述第二数据实例标识集合包括属于第一右子树空间的数据实例标识。
43.根据权利要求42所述的联邦学习模型的训练装置,其特征在于,所述第一获取单元,还用于:
针对任一特征,将所述任一特征的***阈值分别与所述任一特征的特征值进行比较,获取所述特征值小于所述***阈值的数据实例标识,生成所述初始数据实例标识集合。
44.根据权利要求40所述的联邦学习模型的训练方法,其特征在于,所述第二学习子模块,包括:
第三接收单元,用于接收所述服务端发送的梯度信息请求;
产生单元,用于根据所述梯度信息请求,从第二训练集合中产生第二特征子集;
第二获取单元,用于获取所述第二特征子集中每个特征的至少一个第三数据实例标识集合的第一梯度信息,其中,所述第三数据实例标识集合包括属于第二左子树空间的数据实例标识,所述第二左子树空间为按照所述特征的其中一个特征值***形成的左子树空间,不同的特征值对应不同的所述第二左子树空间;
第二发送单元,用于将所述第三数据实例标识集合的第一梯度信息发送给所述服务端。
45.根据权利要求44所述的联邦学习模型的训练装置,其特征在于,所述第二获取单元,包括:
分桶子单元,用于针对任一特征,获取所述任一特征的所有特征值,基于所述特征值对对所述任一特征进行分桶;
第一获取子单元,用于获取所述任一特征每个分桶的所述第三数据实例标识集合的第一梯度信息。
46.根据权利要求40-45任一项所述的联邦学习模型的训练装置,其特征在于,所述***模块,包括:
接收子模块,用于接收所述服务端发送的***信息,其中,所述***信息包括所述目标***方式、选为特征***点的目标***特征和所述目标***值;
***子模块,用于基于所述***信息,对所述训练节点进行节点***。
47.根据权利要求46所述的联邦学习模型的训练装置,其特征在于,所述***子模块,还用于:
将***生成的左子树空间发送给所述服务端。
48.根据权利要求40-45任一项所述的联邦学习模型的训练装置,其特征在于,还包括:
第二接收模块,用于若所述训练节点为叶子节点,接收所述服务器发送的所述叶子节点的权重值;
确定模块,用于据所述叶子节点的权重值确定其包含的各数据的残差;
输入模块,用于将所述残差作为下一个提升树的残差输入。
49.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-15,或者实现如权利要求16-24中任一项所述的联邦学习模型的训练方法。
50.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-15,或者实现如权利要求16-24中任一项所述的联邦学习模型的训练方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617342.XA CN113822311B (zh) | 2020-12-31 | 2020-12-31 | 一种联邦学习模型的训练方法、装置及电子设备 |
KR1020237022514A KR20230113804A (ko) | 2020-12-31 | 2021-12-31 | 연합 학습 모델의 훈련 방법, 장치 및 전자 기기 |
JP2023540566A JP2024501568A (ja) | 2020-12-31 | 2021-12-31 | 連合学習モデルの訓練方法、装置及び電子機器 |
PCT/CN2021/143890 WO2022144001A1 (zh) | 2020-12-31 | 2021-12-31 | 一种联邦学习模型的训练方法、装置及电子设备 |
US18/270,281 US20240127123A1 (en) | 2020-12-31 | 2021-12-31 | Federated learning model training method and apparatus, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617342.XA CN113822311B (zh) | 2020-12-31 | 2020-12-31 | 一种联邦学习模型的训练方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113822311A true CN113822311A (zh) | 2021-12-21 |
CN113822311B CN113822311B (zh) | 2023-09-01 |
Family
ID=78912326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011617342.XA Active CN113822311B (zh) | 2020-12-31 | 2020-12-31 | 一种联邦学习模型的训练方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113822311B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114386533A (zh) * | 2022-01-28 | 2022-04-22 | 华控清交信息科技(北京)有限公司 | 一种gbdt模型的横向训练方法、装置、电子设备及*** |
WO2022144001A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技控股股份有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
WO2022144000A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技信息技术有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
CN115169576A (zh) * | 2022-06-24 | 2022-10-11 | 上海富数科技有限公司广州分公司 | 基于联邦学习的模型训练方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018218155A1 (en) * | 2017-05-26 | 2018-11-29 | Google Llc | Machine-learned model system |
CN109165683A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦训练的样本预测方法、装置及存储介质 |
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
US20200220851A1 (en) * | 2019-12-13 | 2020-07-09 | TripleBlind, Inc. | Systems and methods for efficient computations on split data and split algorithms |
CN111401570A (zh) * | 2020-04-10 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 针对隐私树模型的解释方法和装置 |
CN111428881A (zh) * | 2020-03-20 | 2020-07-17 | 深圳前海微众银行股份有限公司 | 识别模型的训练方法、装置、设备及可读存储介质 |
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
-
2020
- 2020-12-31 CN CN202011617342.XA patent/CN113822311B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018218155A1 (en) * | 2017-05-26 | 2018-11-29 | Google Llc | Machine-learned model system |
CN109165683A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦训练的样本预测方法、装置及存储介质 |
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
US20200220851A1 (en) * | 2019-12-13 | 2020-07-09 | TripleBlind, Inc. | Systems and methods for efficient computations on split data and split algorithms |
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
CN111428881A (zh) * | 2020-03-20 | 2020-07-17 | 深圳前海微众银行股份有限公司 | 识别模型的训练方法、装置、设备及可读存储介质 |
CN111401570A (zh) * | 2020-04-10 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 针对隐私树模型的解释方法和装置 |
CN111598186A (zh) * | 2020-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 基于纵向联邦学习的决策模型训练方法、预测方法及装置 |
Non-Patent Citations (1)
Title |
---|
李健萌: "基于联邦学习的大数据风险控制技术研究与应用", 中国优秀硕士学位论文全文数据库 信息科技辑 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022144001A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技控股股份有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
WO2022144000A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技信息技术有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
CN114386533A (zh) * | 2022-01-28 | 2022-04-22 | 华控清交信息科技(北京)有限公司 | 一种gbdt模型的横向训练方法、装置、电子设备及*** |
CN115169576A (zh) * | 2022-06-24 | 2022-10-11 | 上海富数科技有限公司广州分公司 | 基于联邦学习的模型训练方法、装置及电子设备 |
CN115169576B (zh) * | 2022-06-24 | 2024-02-09 | 上海富数科技有限公司 | 基于联邦学习的模型训练方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113822311B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113807544B (zh) | 一种联邦学习模型的训练方法、装置及电子设备 | |
CN113822311B (zh) | 一种联邦学习模型的训练方法、装置及电子设备 | |
CN113807380B (zh) | 一种联邦学习模型的训练方法、装置及电子设备 | |
CN106649464B (zh) | 一种中文地址树的构建方法及装置 | |
CN109889538B (zh) | 用户异常行为检测方法及*** | |
CN111627204B (zh) | 路径确定方法、装置、电子设备及存储介质 | |
CN110275929B (zh) | 一种基于网格分割的候选路段筛选方法及网格分割方法 | |
CN112738172B (zh) | 区块链节点的管理方法、装置、计算机设备和存储介质 | |
CN112380531A (zh) | 黑产团伙识别方法、装置、设备及存储介质 | |
CN110166344A (zh) | 一种身份标识识别方法、装置以及相关设备 | |
CN110543584B (zh) | 一种建立人脸索引的方法、装置、处理服务器及存储介质 | |
CN103430175A (zh) | 用于对视频进行比较的方法和装置 | |
CN113240139B (zh) | 告警因果评估方法、故障根因定位方法及电子设备 | |
Ogawa et al. | Correlation-aware attention branch network using multi-modal data for deterioration level estimation of infrastructures | |
CN105354343B (zh) | 基于远程对话的用户特征挖掘方法 | |
CN110610434A (zh) | 基于人工智能的社区发现方法 | |
Nguyen et al. | Blockchain-based secure client selection in federated learning | |
WO2022144001A1 (zh) | 一种联邦学习模型的训练方法、装置及电子设备 | |
da Silva et al. | Inference in distributed data clustering | |
CN115150152B (zh) | 基于权限依赖图缩减的网络用户实际权限快速推理方法 | |
Mu et al. | Recommend taxi pick-up hotspots based on density-based clustering | |
CN113946651B (zh) | 维修知识推荐方法、装置、电子设备、介质及产品 | |
CN116185296A (zh) | 一种基于多媒体远程会议信息的分布式安全储存*** | |
JPH0535484A (ja) | 故障診断方法 | |
KR101907551B1 (ko) | 확률 그래프의 효과적인 그래프 클러스터링 장치 및 방법 |
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 |