CN114118312A - 一种gbdt模型的纵向训练方法、装置、电子设备及系统 - Google Patents
一种gbdt模型的纵向训练方法、装置、电子设备及系统 Download PDFInfo
- Publication number
- CN114118312A CN114118312A CN202210110534.4A CN202210110534A CN114118312A CN 114118312 A CN114118312 A CN 114118312A CN 202210110534 A CN202210110534 A CN 202210110534A CN 114118312 A CN114118312 A CN 114118312A
- Authority
- CN
- China
- Prior art keywords
- node
- splitting
- current layer
- layer
- 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.)
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Complex Calculations (AREA)
- Optical Communication System (AREA)
Abstract
本申请公开了一种GBDT模型的纵向训练方法、装置、电子设备及系统,包括:针对初始GBDT模型的当前决策树的当前层,获取多个样本各自位于当前层的节点的节点编号;分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果;针对能够用于进行当前层的节点分裂的各种分裂标准,分别计算按照每种分裂标准进行节点分裂的评分增益值,评分增益值最高的分裂标准,作为当前层的分裂标准;按照该分裂标准,进行节点分裂,得到当前层的节点分裂结果,完成GBDT模型训练。采用该方案,在各数据节点不泄露自身的特征数据的情况下,实现了针对GBDT模型的纵向训练。
Description
技术领域
本申请涉及机器学习技术领域和多方安全计算技术领域,尤其涉及一种GBDT模型的纵向训练方法、装置、电子设备及系统。
背景技术
GBDT(Gradient Boosting Decision Tree,梯度提升决策树),是一套使用决策树技术进行模型训练的监督学习算法。通过拟合多棵决策树的方式,使模型预测结果接近训练时使用的真实值,每棵决策树所拟合的目标值,等于训练集真实值与前面若干棵决策树的预测值的差值。GBDT模型通常被应用于分类、回归等问题。
目前,针对GBDT模型的实际应用中,对GBDT模型进行训练时的多个样本的各种特征的特征数据,是由不同的参与方持有的,而这些参与方之间不希望泄露多个样本的自身所持有的特征的特征数据,从而导致无法实现对GBDT模型的有效训练。
发明内容
本申请实施例提供一种GBDT模型的纵向训练方法、装置、电子设备及系统,用以在确保参与训练的各数据节点不泄露自身持有特征的特征数据的情况下,实现针对GBDT模型的纵向训练。
本申请实施例提供一种GBDT模型的纵向训练方法,应用于训练系统中的主动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
基于所述当前层的上一层的节点分裂结果,获取多个样本各自位于所述当前层的节点的节点编号,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
通过与所述被动方数据节点和所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
当所述当前层不为最后一棵决策树的最后一层时,通过与所述被动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练方法,应用于训练系统中的被动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
接收多个样本各自位于所述当前层的节点的节点编号,所述多个样本各自的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
向所述密文计算节点发送自身持有的每种特征的分箱结果,使得所述主动方数据节点和所述密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
当所述当前层不为最后一棵决策树的最后一层时,通过与所述主动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练方法,应用于训练系统中的密文计算节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
接收所述被动方数据节点发送的所持有的每种特征的分箱结果,所述分箱结果为该被动方数据节点分别针对所述当前层的每个节点,基于多个样本各自位于所述当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,所述多个样本的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
通过与所述主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,所述主动方数据节点与所述被动方数据节点之间通过信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练装置,应用于训练系统中的主动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
编号获取模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,基于所述当前层的上一层的节点分裂结果,获取多个样本各自位于所述当前层的节点的节点编号,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
样本分箱模块,用于分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块,用于通过与所述被动方数据节点和所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
节点分裂模块,用于当所述当前层不为最后一棵决策树的最后一层时,通过与所述被动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练装置,应用于训练系统中的被动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
编号接收模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,接收多个样本各自位于所述当前层的节点的节点编号,所述多个样本各自的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
样本分箱模块,用于分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块,用于向所述密文计算节点发送自身持有的每种特征的分箱结果,使得所述主动方数据节点和所述密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
节点分裂模块,用于当所述当前层不为最后一棵决策树的最后一层时,通过与所述主动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练装置,应用于训练系统中的密文计算节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
分箱结果接收模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,接收所述被动方数据节点发送的所持有的每种特征的分箱结果,所述分箱结果为该被动方数据节点分别针对所述当前层的每个节点,基于多个样本各自位于所述当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,所述多个样本的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分裂标准确定模块,用于通过与所述主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,所述主动方数据节点与所述被动方数据节点之间通过信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练系统,包括:上述任一主动方数据节点、上述任一被动方数据节点和上述任一密文计算节点。
本申请实施例还提供一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的方法。
本申请实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
本申请有益效果包括:
本申请实施例提供的方法中,针对用于训练的多个样本,包括主动方数据节点和被动方数据节点的各数据节点,均持有该多个样本的至少一种特征的特征数据,即不同的数据节点持有该多个样本的不同特征的特征数据,针对每棵决策树的每一层的训练中,首先,基于当前层的上一层的节点分裂结果,获取多个样本各自位于当前层的节点的节点编号,主动方数据节点和被动方数据节点,均分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,然后,主动方数据节点、被动方数据节点和密文计算节点之间,通过密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,评分增益值最高的分裂标准,作为当前层的分裂标准,即完成了当前层的训练,然后,如果当前层不为最后一棵决策树的最后一层,主动方数据节点与被动方数据节点之间通过信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,用于下一层以及下一棵决策树的训练,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。从而在确保参与训练的各数据节点不泄露自身持有特征的特征数据的情况下,实现了针对GBDT模型的纵向训练。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的GBDT模型的纵向训练系统的结构示意图;
图2为本申请实施例提供的应用于主动方数据节点的GBDT模型的纵向训练方法的流程图;
图3为本申请实施例提供的应用于被动方数据节点的GBDT模型的纵向训练方法的流程图;
图4为本申请实施例提供的应用于密文计算节点的GBDT模型的纵向训练方法的流程图;
图5为本申请实施例提供的GBDT模型的纵向训练方法的流程图;
图6为本申请实施例提供的应用于主动方数据节点的GBDT模型的纵向训练装置的结构示意图;
图7为本申请实施例提供的应用于被动方数据节点的GBDT模型的纵向训练装置的结构示意图;
图8为本申请实施例提供的应用于密文计算节点的GBDT模型的纵向训练装置的结构示意图;
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出在确保参与训练的各数据节点不泄露自身持有特征的特征数据的情况下,针对GBDT模型的纵向训练的实现方案,本申请实施例提供了一种GBDT模型的纵向训练方法、装置、电子设备及系统,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种GBDT模型的纵向训练方案,如图1所示,该方案应用于包括数据节点和密文计算节点的训练系统,其中,数据节点包括:一个主动方数据节点和至少一个被动方数据节点。
训练系统中的每个数据节点,属于一个数据提供方,各数据节点具有用于训练的多个样本,并且,持有该多个样本的至少一个特征的特征数据,不同的数据节点可以持有不同特征的特征数据,数据节点主要用于本地的特征数据存储以及明文计算。
数据节点中的主动方数据节点,还持有每个样本的进行GBDT模型训练所需要的目标值,也可以称作目标数据或标签数据,例如,如果是针对分类问题的分类模型,可以是每个样本的0-1标签数据,如果是针对回归问题的回归模型,可以是每个样本的目标值。
密文计算节点,采用密文计算协议,实现GBDT模型训练中的密文计算,所采用的密文计算协议可以是可行的各种协议,例如,本申请实施例中可以采用SS4协议,其是一种基于秘密分享(Secret sharing)的加密协议。
基于所采用的密文计算协议的需要,可以包括多个密文计算节点。
本申请实施例中,主动方数据节点、被动方数据节点和密文计算节点之间,通过信息交互和数据计算,共同完成GBDT模型的纵向训练,即纵向切分联邦学习(Federatedlearning)的训练,其中,密文计算节点与数据节点之间的信息交互和数据计算,将采用密文方式,从而可以确保各数据节点不泄露自身持有特征的特征数据。
基于上述训练系统,本申请实施例提供一种GBDT模型的纵向训练方法,应用于训练系统中的主动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将当前决策树的每一层作为当前层,如图2所示,采用如下步骤进行节点分裂:
步骤21、基于当前层的上一层的节点分裂结果,获取多个样本各自位于当前层的节点的节点编号,当当前层为根节点所属的第一层时,多个样本均位于根节点;
步骤22、分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
步骤23、通过与被动方数据节点和密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;
步骤24、当当前层不为最后一棵决策树的最后一层时,通过与被动方数据节点之间的信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
相应的,本申请实施例还提供一种GBDT模型的纵向训练方法,应用于训练系统中的被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将当前决策树的每一层作为当前层,如图3所示,采用如下步骤进行节点分裂:
步骤31、接收多个样本各自位于当前层的节点的节点编号,多个样本各自的节点编号为主动方数据节点基于当前层的上一层的节点分裂结果获取的,当当前层为根节点所属的第一层时,多个样本均位于根节点;
步骤32、分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
步骤33、向密文计算节点发送自身持有的每种特征的分箱结果,使得主动方数据节点和密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;
步骤34、当当前层不为最后一棵决策树的最后一层时,通过与主动方数据节点之间的信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
相应的,本申请实施例还提供一种GBDT模型的纵向训练方法,应用于训练系统中的密文计算节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将当前决策树的每一层作为当前层,如图4所示,采用如下步骤进行节点分裂:
步骤41、接收被动方数据节点发送的所持有的每种特征的分箱结果,分箱结果为该被动方数据节点分别针对当前层的每个节点,基于多个样本各自位于当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,多个样本的节点编号为主动方数据节点基于当前层的上一层的节点分裂结果获取的,当当前层为根节点所属的第一层时,多个样本均位于根节点;
步骤42、通过与主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准,使得当当前层不为最后一棵决策树的最后一层时,主动方数据节点与被动方数据节点之间通过信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
采用本申请实施例提供的上述方法,针对用于训练的多个样本,包括主动方数据节点和被动方数据节点的各数据节点,均持有该多个样本的至少一种特征的特征数据,即不同的数据节点持有该多个样本的不同特征的特征数据,针对每棵决策树的每一层的训练中,首先,基于当前层的上一层的节点分裂结果,获取多个样本各自位于当前层的节点的节点编号,主动方数据节点和被动方数据节点,均分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,然后,主动方数据节点、被动方数据节点和密文计算节点之间,通过密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,评分增益值最高的分裂标准,作为当前层的分裂标准,即完成了当前层的训练,然后,如果当前层不为最后一棵决策树的最后一层,主动方数据节点与被动方数据节点之间通过信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,用于下一层以及下一棵决策树的训练,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。从而在确保参与训练的各数据节点不泄露自身持有特征的特征数据的情况下,实现了针对GBDT模型的纵向训练。
下面结合附图,用具体实施例对本申请提供的方法及装置和相应系统进行详细描述。
本申请实施例提供一种GBDT模型的纵向训练方法,如图5所示,包括如下步骤:
步骤501、数据节点进行数据初始化(data_init)。
本步骤中,数据初始化运行在所有数据节点,将所持有的原始特征数据初始化。具体可以是按列生成离散化器,离散化器的功能是将浮点型的原始特征数据,转换为整型的离散数据,用于后续GBDT模型的训练。所生成的离散化数据,可以储存在数据节点本地。
步骤502、主动方数据节点进行GBDT模型的模型初始化(model_init),得到初始GBDT模型,初始GBDT模型包括多棵决策树。
步骤503、主动方数据节点按照初始GBDT模型包括的多棵决策树的排列顺序,将未训练的各决策树中的第一棵决策树作为当前决策树,对当前决策树进行树初始化(tree_init),在对当前决策树进行初始化后,当前决策树的节点结构已经确定,并且,用于训练的多个样本均被分配至当前决策树的根节点。
本步骤中,除了确定当前决策树的节点结构,还可以针对当前决策树,计算每个样本的梯度,按照初始GBDT模型的损失函数,计算多个样本中每个样本的梯度,用于后续进行梯度聚合和评分增益值的计算。
本申请实施例中,针对当前决策树,具体可以采用如下公式计算多个样本中每个样本的梯度:
本步骤中所生成的每个样本的梯度,密文方式发送至密文计算节点,用于后续由密文计算节点进行梯度聚合。
步骤504、按照当前决策树包括的各层节点的排列顺序(从根节点指向子节点的顺序),将未训练的各层中的第一层作为当前层,对当前层进行层初始化(tree_depth_init)。
本步骤中,具体的,主动方数据节点基于当前层的上一层的节点分裂结果,获取多个样本各自位于当前层的节点的节点编号,当当前层为根节点所属的第一层时,多个样本均位于根节点。
所获取的多个样本的节点编号,可以通过生成节点编号向量进行表示。
步骤505、主动方数据节点执行节点编号传送(tree_depth_insts),即将获取的多个样本的节点编号,发送至被动方数据节点。
本步骤中,也可以通过密文计算节点,将多个样本的节点编号,转发至被动方数据节点。
步骤506、数据节点执行特征值分箱(tree_depth_split),即每个数据节点分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果。
本步骤中,针对一种特征,对一个节点包括的所有样本进行分箱,可以理解为针对该种特征预先划分了多个连续的特征值区间,每个特征值区间对应一个分箱,按照样本的该特征的特征数据,将该样本分配到该特征数据所属的特征值区间对应的分箱,其中,每个特征值区间的边界,相当于所对应的分箱的边界。
本步骤中,无论主动方数据节点,还是被动方数据节点,均执行该分箱操作,并且,被动方数据节点还将得到的分箱结果发送至密文计算节点。
步骤507、主动方数据节点执行梯度聚合(tree_depth_gradactive),密文计算节点执行梯度聚合(tree_depth_grad)。
主动方数据节点分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果;
密文计算节点基于密文方式接收的每个样本的梯度,以及接收的被动方数据节点持有的每种特征的分箱结果,分别针对被动方数据节点持有的每种特征的分箱结果的每个分箱,按照密文方式,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果。
密文计算节点向主动方数据节点密文方式发送被动方数据节点持有的每种特征的梯度聚合结果。
步骤508、主动方数据节点执行节点分裂(tree_depth_collect),即针对能够用于进行当前层的节点分裂的各种分裂标准,使用每种特征的梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,并将评分增益值最高的分裂标准,作为当前层的分裂标准。
本步骤中,各种分裂标准为基于所有特征的所有分箱边界确定的,例如,一个节点按照一种特征的分裂标准,可以是按照该特征的一个分箱边界,如果一个样本该特征的特征数据小于该分箱边界,将该样本分配到该节点的左子节点,如果该样本该特征的特征数据不小于该分箱边界,将该样本分配到该节点的右子节点。
本步骤中,针对能够用于进行当前层的节点分裂的各种分裂标准,具体可以采用如下公式计算每种分裂标准的评分增益值:
本步骤中,在分别计算按照每种分裂标准进行节点分裂的评分增益值,选出当前层的分裂标准后之后,还可以针对当前层的分裂标准,计算当前层的每个节点的左子节点和右子节点的权重。
具体可以采用如下公式计算当前层的每个节点的左子节点和右子节点的权重:
步骤509、主动数据节点执行分裂信息传递(tree_depth_sendcompare),即将当前层的分裂标准对应的特征,发送至持有该特征的被动方数据节点。
本步骤中,也可以将当前层的分裂标准对应的特征,通过密文计算节点转发至持有该特征的被动方数据节点。
本申请实施例中,可以通过分裂标准对应的特征和特征阈值,表示分裂标准。
步骤510、数据节点执行分裂对比(tree_depth_compare),即数据节点当当前层的分裂标准对应的特征包括自身持有的特征时,按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的该特征的节点分裂结果,该节点分裂结果能够表示目前位于当前层的每个节点的样本,将被分配到该节点的哪一个子节点,即被分配到该节点的左子节点还是右子节点。
本步骤中,主动方数据节点和被动方数据节点,只要当前层的分裂标准对应的特征包括自身持有的特征,均执行本步骤。
步骤511、被动方数据节点执行分裂结果传送(tree_depth_reccompare),即向主动方数据节点发送当前层的自身持有的该特征的节点分裂结果。
本步骤中,也可以向主动方数据节点,通过密文计算节点转发当前层的自身持有的该特征的节点分裂结果。
本申请实施例中,主动方数据节点按照分裂标准进行节点分裂得到的节点分裂结果,和各被动方数据节点按照分裂标准进行节点分裂得到的节点分裂结果,共同作为当前层的节点分裂结果。
步骤512、主动方数据节点在接收到被动方数据节点发送的节点分裂结果后,按照当前层的节点分裂结果,针对当前层的每个节点,将属于该节点的每个样本,分配给该节点的左子节点或右子节点,完成当前层的训练(tree_depth_finish)。
如果当前层不是当前决策树的最后一层,则返回上述步骤504,开启当前决策树的下一层的训练,如果当前层是当前决策树的最后一层,执行下述步骤513。
步骤513、主动方数据节点生成当前决策树的树模型,即完成当前决策树的训练(tree_finish)。
本步骤中还可以删除当前决策树中存储的缓存数据。
如果当前决策树不是GBDT模型的最后一棵决策树,则返回上述步骤503,开启GBDT模型的下一棵决策树的训练,如果当前决策树是GBDT模型的最后一棵决策树,执行下述步骤514。
步骤514、主动方数据节点生成训练完成的GBDT模型,即完成GBDT模型的训练(model_finish)。
本步骤中,还可以删除GBDT模型中存储的缓存数据。
采用本申请实施例提供的上述GBDT模型的纵向训练方法,通过基于密文计算的梯度聚合步骤,保证了各参与方的数据在模型的训练过程中,既不会泄露原始的特征数据,也不会泄露关键的敏感中间数据,能够更好地实现算法安全性与算法运行效率之间的平衡。
基于同一发明构思,根据本申请上述实施例提供的应用于主动方数据节点的GBDT模型的纵向训练方法,相应地,本申请另一实施例还提供了一种GBDT模型的纵向训练装置,应用于训练系统中的主动方数据节点,训练系统包括:数据节点和密文计算节点,数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
如图6所示,该纵向训练装置,包括:
编号获取模块61,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将当前决策树的每一层作为当前层,针对当前层,基于当前层的上一层的节点分裂结果,获取多个样本各自位于当前层的节点的节点编号,当当前层为根节点所属的第一层时,多个样本均位于根节点;
样本分箱模块62,用于分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块63,用于通过与被动方数据节点和密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;
节点分裂模块64,用于当当前层不为最后一棵决策树的最后一层时,通过与被动方数据节点之间的信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练装置,应用于训练系统中的被动方数据节点,训练系统包括:数据节点和密文计算节点,数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
如图7所示,该纵向训练装置,包括:
编号接收模块71,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将当前决策树的每一层作为当前层,针对当前层,接收多个样本各自位于当前层的节点的节点编号,多个样本各自的节点编号为主动方数据节点基于当前层的上一层的节点分裂结果获取的,当当前层为根节点所属的第一层时,多个样本均位于根节点;
样本分箱模块72,用于分别针对当前层的每个节点,基于多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块73,用于向密文计算节点发送自身持有的每种特征的分箱结果,使得主动方数据节点和密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;
节点分裂模块74,用于当当前层不为最后一棵决策树的最后一层时,通过与主动方数据节点之间的信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
本申请实施例还提供一种GBDT模型的纵向训练装置,应用于训练系统中的密文计算节点,训练系统包括:数据节点和密文计算节点,数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
如图8所示,该纵向训练装置,包括:
分箱结果接收模块81,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将当前决策树的每一层作为当前层,针对当前层,接收被动方数据节点发送的所持有的每种特征的分箱结果,分箱结果为该被动方数据节点分别针对当前层的每个节点,基于多个样本各自位于当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,多个样本的节点编号为主动方数据节点基于当前层的上一层的节点分裂结果获取的,当当前层为根节点所属的第一层时,多个样本均位于根节点;
分裂标准确定模块82,用于通过与主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准,使得当当前层不为最后一棵决策树的最后一层时,主动方数据节点与被动方数据节点之间通过信息交互和数据计算,按照当前层的分裂标准,基于多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
上述各模块的功能可对应于图2-图5所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的上述GBDT模型的纵向训练装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要上述GBDT模型的纵向训练装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种GBDT模型的纵向训练系统,如图1所示,包括:上述任一主动方数据节点、上述任一被动方数据节点和上述任一密文计算节点。
本申请实施例还提供一种电子设备,如图9所示,包括处理器91和机器可读存储介质92,机器可读存储介质92存储有能够被处理器91执行的机器可执行指令,处理器91被机器可执行指令促使:实现上述任一的方法。
本申请实施例还提供一种计算机可读存储介质,其特征在于,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一的方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、系统、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种梯度提升决策树GBDT模型的纵向训练方法,其特征在于,应用于训练系统中的主动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
基于所述当前层的上一层的节点分裂结果,获取多个样本各自位于所述当前层的节点的节点编号,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
通过与所述被动方数据节点和所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
当所述当前层不为最后一棵决策树的最后一层时,通过与所述被动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
2.如权利要求1所述的方法,其特征在于,还包括:
针对所述当前决策树,按照所述初始GBDT模型的损失函数,计算所述多个样本中每个样本的梯度;
所述通过与所述被动方数据节点和所述密文计算节点之间的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,包括:
分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果;
接收密文计算节点密文方式发送的所述被动方数据节点持有的每种特征的梯度聚合结果,所述被动方数据节点持有的每种特征的梯度聚合结果,为所述密文计算节点分别针对所述被动方数据节点持有的每种特征的分箱结果的每个分箱,按照密文方式,将该分箱包括的样本的梯度进行聚合得到的,每个样本的梯度为密文方式发送至所述密文计算节点的;
针对能够用于进行所述当前层的节点分裂的各种分裂标准,使用每种特征的梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值。
3.如权利要求1所述的方法,其特征在于,所述通过与所述被动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,包括:
当所述当前层的分裂标准对应的特征包括自身持有的特征时,按照所述当前层的分裂标准,基于自身持有的所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的该特征的节点分裂结果;
当所述当前层的分裂标准对应的特征包括被动方数据节点持有的特征时,向该被动方数据节点发送所述当前层的分裂标准;
接收来自该被动方数据节点的所述当前层的该特征的节点分裂结果,所述当前层的该特征的节点分裂结果为该被动方数据节点,基于所持有的所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂得到的。
4.一种梯度提升决策树GBDT模型的纵向训练方法,其特征在于,应用于训练系统中的被动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
接收多个样本各自位于所述当前层的节点的节点编号,所述多个样本各自的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
向所述密文计算节点发送自身持有的每种特征的分箱结果,使得所述主动方数据节点和所述密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
当所述当前层不为最后一棵决策树的最后一层时,通过与所述主动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
5.如权利要求4所述的方法,其特征在于,所述通过与所述主动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,包括:
当所述当前层的分裂标准对应的特征包括自身持有的特征时,按照所述当前层的分裂标准,基于自身持有的所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的该特征的节点分裂结果;
向所述主动方数据节点发送所述当前层的该特征的节点分裂结果,与其他被动方数据节点和所述主动方数据节点持有的特征的节点分裂结果,共同作为所述当前层的节点分裂结果。
6.一种梯度提升决策树GBDT模型的纵向训练方法,其特征在于,应用于训练系统中的密文计算节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
依次将初始GBDT模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:
依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:
接收所述被动方数据节点发送的所持有的每种特征的分箱结果,所述分箱结果为该被动方数据节点分别针对所述当前层的每个节点,基于多个样本各自位于所述当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,所述多个样本的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
通过与所述主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,所述主动方数据节点与所述被动方数据节点之间通过信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
7.如权利要求6所述的方法,其特征在于,所述通过与所述主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,包括:
接收所述主动方数据节点密文方式发送的每个样本的梯度,每个样本的梯度为所述主动方数据节点针对所述当前决策树,按照所述初始GBDT模型的损失函数计算得到的;
分别针对所述被动方数据节点持有的每种特征的分箱结果的每个分箱,按照密文方式,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果;
向所述主动方数据节点密文方式发送所述被动方数据节点持有的每种特征的梯度聚合结果,使得所述主动方数据节点针对能够用于进行所述当前层的节点分裂的各种分裂标准,使用每种特征的梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的梯度聚合结果,为所述主动方数据节点分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合得到的。
8.一种梯度提升决策树GBDT模型的纵向训练装置,其特征在于,应用于训练系统中的主动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
编号获取模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,基于所述当前层的上一层的节点分裂结果,获取多个样本各自位于所述当前层的节点的节点编号,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
样本分箱模块,用于分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块,用于通过与所述被动方数据节点和所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述被动方数据节点持有的每种特征的分箱结果,为被动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
节点分裂模块,用于当所述当前层不为最后一棵决策树的最后一层时,通过与所述被动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
9.一种梯度提升决策树GBDT模型的纵向训练装置,其特征在于,应用于训练系统中的被动方数据节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
编号接收模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,接收多个样本各自位于所述当前层的节点的节点编号,所述多个样本各自的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
样本分箱模块,用于分别针对所述当前层的每个节点,基于所述多个样本各自的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果;
分裂标准确定模块,用于向所述密文计算节点发送自身持有的每种特征的分箱结果,使得所述主动方数据节点和所述密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;
节点分裂模块,用于当所述当前层不为最后一棵决策树的最后一层时,通过与所述主动方数据节点之间的信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
10.一种梯度提升决策树GBDT模型的纵向训练装置,其特征在于,应用于训练系统中的密文计算节点,所述训练系统包括:数据节点和密文计算节点,所述数据节点包括:一个主动方数据节点和至少一个被动方数据节点;
所述纵向训练装置,包括:
分箱结果接收模块,用于依次将初始GBDT模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对所述当前层,接收所述被动方数据节点发送的所持有的每种特征的分箱结果,所述分箱结果为该被动方数据节点分别针对所述当前层的每个节点,基于多个样本各自位于所述当前层的节点的节点编号,按照自身持有的每种特征的分箱数,对该节点包括的所有样本进行分箱得到的,所述多个样本的节点编号为所述主动方数据节点基于所述当前层的上一层的节点分裂结果获取的,当所述当前层为根节点所属的第一层时,所述多个样本均位于根节点;
分裂标准确定模块,用于通过与所述主动方数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述主动方数据节点持有的每种特征的分箱结果,为主动方数据节点对样本进行分箱得到的,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,所述主动方数据节点与所述被动方数据节点之间通过信息交互和数据计算,按照所述当前层的分裂标准,基于所述多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,GBDT模型训练完成。
11.一种梯度提升决策树GBDT模型的纵向训练系统,其特征在于,包括:权利要求8中所述的主动方数据节点、权利要求9中所述被动方数据节点和权利要求10中所述的密文计算节点。
12.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-3任一所述的方法,或者,实现权利要求4-5任一所述的方法,实现权利要求6-7任一所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法,或者,实现权利要求4-5任一所述的方法,实现权利要求6-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210110534.4A CN114118312B (zh) | 2022-01-29 | 2022-01-29 | 一种gbdt模型的纵向训练方法、装置、电子设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210110534.4A CN114118312B (zh) | 2022-01-29 | 2022-01-29 | 一种gbdt模型的纵向训练方法、装置、电子设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114118312A true CN114118312A (zh) | 2022-03-01 |
CN114118312B CN114118312B (zh) | 2022-05-13 |
Family
ID=80361755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210110534.4A Active CN114118312B (zh) | 2022-01-29 | 2022-01-29 | 一种gbdt模型的纵向训练方法、装置、电子设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118312B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114529108A (zh) * | 2022-04-22 | 2022-05-24 | 北京百度网讯科技有限公司 | 基于树模型的预测方法、装置、设备、介质及程序产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
CN111724174A (zh) * | 2020-06-19 | 2020-09-29 | 安徽迪科数金科技有限公司 | 一种应用Xgboost建模的市民信用积分评估方法 |
CN112529102A (zh) * | 2020-12-24 | 2021-03-19 | 深圳前海微众银行股份有限公司 | 特征拓展方法、设备、介质及计算机程序产品 |
US20210150372A1 (en) * | 2019-09-30 | 2021-05-20 | Tencent Technology (Shenzhen) Company Limited | Training method and system for decision tree model, storage medium, and prediction method |
CN113051557A (zh) * | 2021-03-15 | 2021-06-29 | 河南科技大学 | 基于纵向联邦学习的社交网络跨平台恶意用户检测方法 |
CN113762328A (zh) * | 2021-06-16 | 2021-12-07 | 京东科技控股股份有限公司 | 基于联邦学习的模型训练方法、装置、设备以及存储介质 |
WO2021249086A1 (zh) * | 2020-06-12 | 2021-12-16 | 深圳前海微众银行股份有限公司 | 多方联合决策树构建方法、设备及可读存储介质 |
WO2022007321A1 (zh) * | 2020-07-10 | 2022-01-13 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、装置、设备及可读存储介质 |
CN113947211A (zh) * | 2021-10-11 | 2022-01-18 | 京东科技控股股份有限公司 | 联邦学习模型的训练方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-29 CN CN202210110534.4A patent/CN114118312B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210150372A1 (en) * | 2019-09-30 | 2021-05-20 | Tencent Technology (Shenzhen) Company Limited | Training method and system for decision tree model, storage medium, and prediction method |
CN111368901A (zh) * | 2020-02-28 | 2020-07-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的多方联合建模方法、设备和介质 |
WO2021249086A1 (zh) * | 2020-06-12 | 2021-12-16 | 深圳前海微众银行股份有限公司 | 多方联合决策树构建方法、设备及可读存储介质 |
CN111724174A (zh) * | 2020-06-19 | 2020-09-29 | 安徽迪科数金科技有限公司 | 一种应用Xgboost建模的市民信用积分评估方法 |
WO2022007321A1 (zh) * | 2020-07-10 | 2022-01-13 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、装置、设备及可读存储介质 |
CN112529102A (zh) * | 2020-12-24 | 2021-03-19 | 深圳前海微众银行股份有限公司 | 特征拓展方法、设备、介质及计算机程序产品 |
CN113051557A (zh) * | 2021-03-15 | 2021-06-29 | 河南科技大学 | 基于纵向联邦学习的社交网络跨平台恶意用户检测方法 |
CN113762328A (zh) * | 2021-06-16 | 2021-12-07 | 京东科技控股股份有限公司 | 基于联邦学习的模型训练方法、装置、设备以及存储介质 |
CN113947211A (zh) * | 2021-10-11 | 2022-01-18 | 京东科技控股股份有限公司 | 联邦学习模型的训练方法、装置、电子设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114529108A (zh) * | 2022-04-22 | 2022-05-24 | 北京百度网讯科技有限公司 | 基于树模型的预测方法、装置、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN114118312B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829882B2 (en) | System and method for addressing overfitting in a neural network | |
CN109299728B (zh) | 基于构建梯度树模型的样本联合预测方法、系统及介质 | |
US10491947B1 (en) | Systems and methods for personalized video rendering | |
WO2023174018A1 (zh) | 一种纵向联邦学习方法、装置、系统、设备及存储介质 | |
CN114118312B (zh) | 一种gbdt模型的纵向训练方法、装置、电子设备及系统 | |
US10997528B2 (en) | Unsupervised model evaluation method, apparatus, server, and computer-readable storage medium | |
CN111739285A (zh) | 交通流量的预测方法、装置、设备及计算机存储介质 | |
CN104915436A (zh) | 自适应多标签预测方法 | |
CN111797319B (zh) | 推荐方法、装置、设备及存储介质 | |
CN113704805B (zh) | 一种风控规则匹配方法、装置及电子设备 | |
CN110213660B (zh) | 节目的分发方法、系统、计算机设备和存储介质 | |
CN111738360A (zh) | 一种两方决策树训练方法和系统 | |
CN113011522B (zh) | 基于有向无环图的多标签联邦学习方法、控制器和介质 | |
CN114386533B (zh) | 一种gbdt模型的横向训练方法、装置、电子设备及系统 | |
CN111710153A (zh) | 交通流量的预测方法、装置、设备及计算机存储介质 | |
CN116306905A (zh) | 半监督非独立同分布的联邦学习蒸馏方法及装置 | |
CN113159152B (zh) | 基于树形结构的多标签预测方法、控制器和介质 | |
CN114118641B (zh) | 风电场功率预测方法、gbdt模型纵向训练方法及装置 | |
CN114118638B (zh) | 风电场功率预测方法、gbdt模型横向训练方法及装置 | |
CN114422105A (zh) | 联合建模方法、装置、电子设备及存储介质 | |
CN111784078A (zh) | 一种针对决策树的分布式预测方法和系统 | |
CN114065950B (zh) | 一种gbdt模型训练中的梯度聚合方法、装置及电子设备 | |
US10482373B1 (en) | Grid long short-term memory neural networks | |
CN110730270B (zh) | 一种短信分组方法、装置及计算机存储介质、电子设备 | |
CN112200234B (zh) | 模型分类的过程中防止模型窃取的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |