一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种GBDT模型的横向训练方法、装置、电子设备及系统与流程

2022-04-25 03:22:23 来源:中国专利 TAG:

一种gbdt模型的横向训练方法、装置、电子设备及系统
技术领域
1.本技术涉及机器学习技术领域和多方安全计算技术领域,尤其涉及一种gbdt模型的横向训练方法、装置、电子设备及系统。


背景技术:

2.gbdt(gradient boosting decision tree,梯度提升决策树),是一套使用决策树技术进行模型训练的监督学习算法。通过拟合多棵决策树的方式,使模型预测结果接近训练时使用的真实值,每棵决策树所拟合的目标值,等于训练集真实值与前面若干棵决策树的预测值的差值。gbdt模型通常被应用于分类、回归等问题。
3.目前,针对gbdt模型的实际应用中,对gbdt模型进行训练时的多个样本的各种特征的特征数据,是由不同的参与方持有的,而这些参与方之间不希望泄露自身所持有的多个样本的特征数据,从而导致无法实现对gbdt模型的有效训练。


技术实现要素:

4.本技术实施例提供一种gbdt模型的横向训练方法、装置、电子设备及系统,用以在确保参与训练的各数据节点不泄露自身持有样本的特征数据的情况下,实现针对gbdt模型的横向训练。
5.本技术实施例提供一种gbdt模型的横向训练方法,应用于训练系统中的数据节点,所述训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相同种类特征的特征数据;依次将初始gbdt模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:通过与所述密文计算节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;分别针对所述当前层的每个节点,按照每种特征的所述合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当所述当前层为根节点所属的第一层时,持有的多个样本均位于根节点;通过与所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;当所述当前层不为最后一棵决策树的最后一层时,按照所述当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
6.进一步的,所述通过与所述密文计算节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界,包括:按照自身持有的每种特征的分箱数,确定该种特征的分箱边界;向所述密文计算节点发送自身持有的每种特征的分箱边界,使得所述密文计算节点将接收的所述多个数据节点发送的每种特征的分箱边界进行合并,得到每种特征的合并后分箱边界;接收所述密文计算节点发送的所述合并后分箱边界。
7.进一步的,还包括:针对所述当前决策树,按照所述初始gbdt模型的损失函数,计算自身持有的多个样本中每个样本的梯度;所述通过与所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,包括:分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果;向所述密文计算节点密文方式发送自身持有的每种特征的梯度聚合结果,使得所述密文计算节点将接收的所述多个数据节点发送的每种特征的梯度聚合结果,按照相同分箱进行对应聚合,得到针对所述多个数据节点持有的所有样本的每种特征的整体梯度聚合结果;接收所述密文计算节点密文方式发送的所述整体梯度聚合结果;针对能够用于进行所述当前层的节点分裂的各种分裂标准,使用每种特征的所述整体梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值。
8.本技术实施例还提供一种gbdt模型的横向训练方法,应用于训练系统中的密文计算节点,所述训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相同种类特征的特征数据;依次将初始gbdt模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:依次将所述当前决策树的每一层作为当前层,采用如下步骤进行节点分裂:通过与所述多个数据节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;向所述多个数据节点发送所述合并后分箱边界,使得所述数据节点分别针对所述当前层的每个节点,按照每种特征的所述合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当所述当前层为根节点所属的第一层时,每个数据节点持有的多个样本均位于根节点;通过与所述多个数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,每个数据节点按照所述当前层的分裂标
准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
9.进一步的,所述通过与所述多个数据节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界,包括:接收每个数据节点发送的所持有的每种特征的分箱边界,该分箱边界为该数据节点按照自身持有的每种特征的分箱数确定的;将接收的所述多个数据节点发送的每种特征的分箱边界进行合并,得到每种特征的合并后分箱边界。
10.进一步的,所述通过与所述多个数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,包括:接收每个数据节点密文方式发送的该数据节点自身持有的每种特征的梯度聚合结果,该梯度聚合结果为该数据节点分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合得到的,该数据节点自身持有的多个样本中每个样本的梯度,为该数据节点针对所述当前决策树,按照所述初始gbdt模型的损失函数计算得到的;将接收的所述多个数据节点发送的每种特征的梯度聚合结果,按照相同分箱进行对应聚合,得到针对所述多个数据节点持有的所有样本的每种特征的整体梯度聚合结果;向每个数据节点密文方式发送所述整体梯度聚合结果,使得每个数据节点针对能够用于进行所述当前层的节点分裂的各种分裂标准,使用每种特征的所述整体梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值。
11.本技术实施例还提供一种gbdt模型的横向训练装置,应用于训练系统中的数据节点,所述训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相同种类特征的特征数据;所述横向训练装置,包括:分箱边界确定模块,用于依次将初始gbdt模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对当前层,通过与所述密文计算节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;样本分箱模块,用于分别针对所述当前层的每个节点,按照每种特征的所述合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当所述当前层为根节点所属的第一层时,持有的多个样本均位于根节点;分裂标准确定模块,用于通过与所述密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准;节点分裂模块,用于当所述当前层不为最后一棵决策树的最后一层时,按照所述
当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
12.本技术实施例还提供一种gbdt模型的横向训练装置,应用于训练系统中的密文计算节点,所述训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相同种类特征的特征数据;所述横向训练装置,包括:分箱边界确定模块,用于依次将初始gbdt模型的每棵决策树作为当前决策树,依次将所述当前决策树的每一层作为当前层,针对当前层,通过与所述多个数据节点之间的信息交互和数据计算,确定所述多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;分箱边界发送模块,用于向所述多个数据节点发送所述合并后分箱边界,使得所述数据节点分别针对所述当前层的每个节点,按照每种特征的所述合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当所述当前层为根节点所属的第一层时,每个数据节点持有的多个样本均位于根节点;分裂标准确定模块,用于通过与所述多个数据节点之间密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,所述各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为所述当前层的分裂标准,使得当所述当前层不为最后一棵决策树的最后一层时,每个数据节点按照所述当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到所述当前层的节点分裂结果,当所述当前层为所述当前决策树的最后一层时,所述当前决策树训练完成,当所述当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
13.本技术实施例还提供一种gbdt模型的横向训练系统,包括:多个上述任一数据节点和上述任一密文计算节点。
14.本技术实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的方法。
15.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法。
16.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。
17.本技术有益效果包括:本技术实施例提供的方法中,参与训练的多个数据节点,各自持有不同样本的相同种类特征的特征数据,针对每棵决策树的每一层的训练中,首先,多个数据节点与密文计算节点之间通过信息交互和数据计算,确定该多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界,然后,每个数据节点分别针对当前层的每个节点,按照每种特征的合
并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,然后,每个数据节点与密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,评分增益值最高的分裂标准,作为当前层的分裂标准,完成当前层的训练,然后,如果当前层不为最后一棵决策树的最后一层,每个数据节点按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,用于下一层以及下一棵决策树的训练,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。从而在确保参与训练的各数据节点不泄露自身持有样本的特征数据的情况下,实现了针对gbdt模型的横向训练。
18.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
19.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,与本技术实施例一起用于解释本技术,并不构成对本技术的限制。在附图中:图1为本技术实施例提供的gbdt模型的横向训练系统的结构示意图;图2为本技术实施例提供的应用于数据节点的gbdt模型的横向训练方法的流程图;图3为本技术实施例提供的应用于密文计算节点的gbdt模型的横向训练方法的流程图;图4为本技术实施例提供的gbdt模型的横向训练方法的流程图;图5为本技术实施例提供的应用于数据节点的gbdt模型的横向训练装置的结构示意图;图6为本技术实施例提供的应用于密文计算节点的gbdt模型的横向训练装置的结构示意图;图7为本技术实施例提供的电子设备的结构示意图。
具体实施方式
20.为了给出在确保参与训练的各数据节点不泄露自身持有样本的特征数据的情况下,针对gbdt模型的横向训练的实现方案,本技术实施例提供了一种gbdt模型的横向训练方法、装置、电子设备及系统,以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术。并且在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
21.本技术实施例提供一种gbdt模型的横向训练方案,如图1所示,该方案应用于包括多个数据节点和密文计算节点的训练系统。
22.训练系统中的每个数据节点,属于一个数据提供方,各数据节点具有用于训练的
样本,且不同数据节点具有不同样本,不同的数据节点持有相同种类特征的特征数据,数据节点主要用于本地的特征数据存储以及明文计算。
23.每个数据节点,还持有每个样本的进行gbdt模型训练所需要的目标值,也可以称作目标数据或标签数据,例如,如果是针对分类问题的分类模型,可以是每个样本的0-1标签数据,如果是针对回归问题的回归模型,可以是每个样本的目标值。
24.密文计算节点,采用密文计算协议,实现gbdt模型训练中的密文计算,所采用的密文计算协议可以是可行的各种协议,例如,本技术实施例中可以采用ss4协议,其是一种基于秘密分享(secret sharing)的加密协议。
25.基于所采用的密文计算协议的需要,可以包括多个密文计算节点。
26.本技术实施例中,多个数据节点和密文计算节点之间,通过信息交互和数据计算,共同完成gbdt模型的横向训练,即横向切分联邦学习(federated learning)的训练,其中,密文计算节点与数据节点之间的信息交互和数据计算,在一些情况下,针对一些指定的信息和数据,将采用密文方式,从而可以确保各数据节点不泄露自身持有样本的特征数据。
27.基于上述训练系统,本技术实施例提供一种gbdt模型的横向训练方法,应用于训练系统中的数据节点;依次将初始gbdt模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:依次将当前决策树的每一层作为当前层,如图2所示,采用如下步骤进行节点分裂:步骤21、通过与密文计算节点之间的信息交互和数据计算,确定多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;步骤22、分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当当前层为根节点所属的第一层时,持有的多个样本均位于根节点;步骤23、通过与密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;步骤24、当当前层不为最后一棵决策树的最后一层时,按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
28.相应的,本技术实施例还提供一种gbdt模型的横向训练方法,应用于训练系统中的密文计算节点;依次将初始gbdt模型的每棵决策树作为当前决策树,采用如下步骤进行决策树训练:依次将当前决策树的每一层作为当前层,如图3所示,采用如下步骤进行节点分裂:步骤31、通过与多个数据节点之间的信息交互和数据计算,确定多个数据节点持
有的每种特征的分箱边界,作为合并后分箱边界;步骤32、向多个数据节点发送合并后分箱边界,使得数据节点分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当当前层为根节点所属的第一层时,每个数据节点持有的多个样本均位于根节点;步骤33、通过与多个数据节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准,使得当当前层不为最后一棵决策树的最后一层时,每个数据节点按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
29.采用本技术实施例提供的上述方法,参与训练的多个数据节点,各自持有不同样本的相同种类特征的特征数据,针对每棵决策树的每一层的训练中,首先,多个数据节点与密文计算节点之间通过信息交互和数据计算,确定该多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界,然后,每个数据节点分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,然后,每个数据节点与密文计算节点之间通过密文方式的信息交互和数据计算,针对能够用于进行所述当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,评分增益值最高的分裂标准,作为当前层的分裂标准,完成当前层的训练,然后,如果当前层不为最后一棵决策树的最后一层,每个数据节点按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,用于下一层以及下一棵决策树的训练,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。从而在确保参与训练的各数据节点不泄露自身持有样本的特征数据的情况下,实现了针对gbdt模型的横向训练。
30.下面结合附图,用具体实施例对本技术提供的方法及装置和相应系统进行详细描述。
31.本技术实施例提供一种gbdt模型的横向训练方法,如图4所示,包括如下步骤:步骤401、数据节点进行数据初始化(data_init)。
32.本步骤中,数据初始化运行在所有数据节点,将所持有的原始特征数据初始化。初始化后的数据可以是浮点型的原始特征数据,并存储在数据节点本地。
33.初始化的过程中,也可以按列生成离散化器,离散化器的功能是将浮点型的原始特征数据,转换为整型的离散数据,用于后续gbdt模型的训练。所生成的离散化数据,可以储存在数据节点本地。
34.步骤402、数据节点进行gbdt模型的模型初始化(model_init),得到初始gbdt模型,初始gbdt模型包括多棵决策树。
35.本步骤中,每个数据节点均进行gbdt模型的模型初始化,且得到相同结构的初始gbdt模型。
36.步骤403、每个数据节点按照初始gbdt模型包括的多棵决策树的排列顺序,将未训练的各决策树中的第一棵决策树作为当前决策树,对当前决策树进行树初始化(tree_init),在对当前决策树进行初始化后,当前决策树的节点结构已经确定,并且,用于训练的多个样本均被分配至当前决策树的根节点。
37.本步骤中,除了确定当前决策树的节点结构,还可以针对当前决策树,计算每个样本的梯度,按照初始gbdt模型的损失函数,计算自身持有的多个样本中每个样本的梯度,用于后续进行梯度聚合和评分增益值的计算。
38.本技术实施例中,针对当前决策树,具体可以采用如下公式计算自身持有的多个样本中每个样本的梯度:;;其中,为多个样本中第个样本的一阶梯度,为第个样本的二阶梯度,为初始gbdt模型的损失函数,为第个样本的目标值,为训练第棵决策树时,使用前棵决策树对第个样本进行预测的预测值的和值。
39.步骤404、每个数据节点按照当前决策树包括的各层节点的排列顺序(从根节点指向子节点的顺序),将未训练的各层中的第一层作为当前层,对当前层进行层初始化(tree_depth_init)。
40.本步骤中,每个数据节点按照自身持有的每种特征的分箱数,确定该种特征的分箱边界,并向密文计算节点发送自身持有的每种特征的分箱边界。
41.步骤405、密文计算节点执行合并分箱边界(tree_depth_merge),即在接收到每个数据节点发送的所持有的每种特征的分箱边界之后,将接收的多个数据节点发送的每种特征的分箱边界进行合并,得到每种特征的合并后分箱边界,并向每个数据节点发送该合并后分箱边界。
42.本技术实施例中,由于不同的数据节点针对同一特征所确定的分箱边界可能不同,所以,本步骤中,密文计算节点将所有数据节点所针对同一特征所确定的分箱边界进行合并,得到合并后分箱边界,用于每个数据节点后续基于该合并后分箱边界对持有的样本进行分箱。
43.步骤406、数据节点执行特征值分箱(tree_depth_split),即每个数据节点分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当当前层为根节点所属的第一层时,持有的多个样本均位于根节点,当当前层不为第一层时,每个节点所包括的样本可以基于上一层的节点分裂结果确定。
44.本步骤中,针对一种特征,对一个节点包括的所有样本进行分箱,可以理解为针对该种特征预先划分了多个连续的特征值区间,每个特征值区间对应一个分箱,按照样本的该特征的特征数据,将该样本分配到该特征数据所属的特征值区间对应的分箱,其中,每个特征值区间的边界,相当于所对应的分箱的边界。
45.步骤407、每个数据节点执行梯度聚合(tree_depth_gradactive)。
46.每个数据节点分别针对自身持有的每种特征的分箱结果的每个分箱,将该分箱包括的样本的梯度进行聚合,得到针对该种特征的梯度聚合结果,并向密文计算节点密文方式发送自身持有的每种特征的梯度聚合结果。
47.步骤408、密文计算节点执行聚合结果求和(tree_depth_grad),即在接收每个数据节点密文方式发送的该数据节点自身持有的每种特征的梯度聚合结果后,将接收的多个数据节点发送的每种特征的梯度聚合结果,按照相同分箱进行对应聚合,得到针对多个数据节点持有的所有样本的每种特征的整体梯度聚合结果,并向每个数据节点密文方式发送该整体梯度聚合结果。
48.针对每个节点的每种特征的每个分箱的整体梯度聚合结果,可以理解为是针对多个数据节点所持有的所有样本的梯度聚合结果。
49.步骤409、每个数据节点执行层训练完成(tree_depth_finish),即在接收到密文计算节点密文方式发送的整体梯度聚合结果后,针对能够用于进行当前层的节点分裂的各种分裂标准,使用每种特征的整体梯度聚合结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,并将评分增益值最高的分裂标准,作为当前层的分裂标准。
50.本步骤中,各种分裂标准为基于所有特征的所有分箱边界确定的,例如,一个节点按照一种特征的分裂标准,可以是按照该特征的一个分箱边界,如果一个样本该特征的特征数据小于该分箱边界,将该样本分配到该节点的左子节点,如果该样本该特征的特征数据不小于该分箱边界,将该样本分配到该节点的右子节点。
51.本步骤中,针对能够用于进行当前层的节点分裂的各种分裂标准,具体可以采用如下公式计算每种分裂标准的评分增益值:;其中,为该分裂标准的评分增益值,样本集合为按照该分裂标准进行节点分裂被分配到左子节点的样本的集合,样本集合为按照该分裂标准进行节点分裂被分配到右子节点的样本的集合,和为预设参数。
52.其中,由于分裂标准均是按照分箱边界确定的,所以,样本集合的梯度和值,样本集合的梯度和值,均可以基于当前层的每个节点的每种特征的每个分箱的整体梯度聚合结果进行计算。
53.本步骤中,在分别计算按照每种分裂标准进行节点分裂的评分增益值,选出当前
层的分裂标准后之后,还可以针对当前层的分裂标准,计算当前层的每个节点的左子节点和右子节点的权重。
54.具体可以采用如下公式计算当前层的每个节点的左子节点和右子节点的权重:;;其中,为左子节点的权重,为右子节点的权重;前棵决策树中每棵决策树对第个样本进行预测的预测值,为使用该棵决策树对第个样本进行分类时,第个样本所位于的节点的权重。
55.本步骤中,每个数据节点还按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,该节点分裂结果能够表示目前位于当前层的每个节点的样本,将被分配到该节点的哪一个子节点,即被分配到该节点的左子节点还是右子节点。
56.通过本步骤,每个数据节点均完成当前层的训练(tree_depth_finish),并且,由于每个数据节点所获得的合并后分箱边界和整体梯度聚合结果均相同,所以,针对当前层所确定的分裂标准也是相同的,但由于每个数据节点所持有的样本不同,所以,按照该相同的分裂标准对自身持有的样本进行节点分裂,得到的当前层的节点分裂结果是不同的。
57.如果当前层不是当前决策树的最后一层,则返回上述步骤404,开启当前决策树的下一层的训练,如果当前层是当前决策树的最后一层,执行下述步骤410。
58.步骤410、每个数据节点生成当前决策树的树模型,即完成当前决策树的训练(tree_finish)。
59.本步骤中还可以删除当前决策树中存储的缓存数据。
60.如果当前决策树不是gbdt模型的最后一棵决策树,则返回上述步骤403,开启gbdt模型的下一棵决策树的训练,如果当前决策树是gbdt模型的最后一棵决策树,执行下述步骤411。
61.步骤411、每个数据节点生成训练完成的gbdt模型,即完成gbdt模型的训练(model_finish),且所有数据节点所的得到的完成训练的gbdt模型时相同的。
62.本步骤中,还可以删除gbdt模型中存储的缓存数据。
63.采用本技术实施例提供的上述gbdt模型的横向训练方法,通过基于密文计算的梯度聚合步骤,保证了各参与方的数据在模型的训练过程中,既不会泄露原始的特征数据,也不会泄露关键的敏感中间数据,能够更好地实现算法安全性与算法运行效率之间的平衡。
64.基于同一发明构思,根据本技术上述实施例提供的gbdt模型的横向训练方法,相应地,本技术另一实施例还提供了一种gbdt模型的横向训练装置,应用于训练系统中的数据节点,训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相
同种类特征的特征数据;该横向训练装置,如图5所示,包括:分箱边界确定模块51,用于依次将初始gbdt模型的每棵决策树作为当前决策树,依次将当前决策树的每一层作为当前层,针对当前层,通过与密文计算节点之间的信息交互和数据计算,确定多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;样本分箱模块52,用于分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当当前层为根节点所属的第一层时,持有的多个样本均位于根节点;分裂标准确定模块53,用于通过与密文计算节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准;节点分裂模块54,用于当当前层不为最后一棵决策树的最后一层时,按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
65.本技术实施例还提供一种gbdt模型的横向训练装置,应用于训练系统中的密文计算节点,训练系统包括:多个数据节点和密文计算节点,不同的数据节点具有不同样本的相同种类特征的特征数据;该横向训练装置,如图6所示,包括:分箱边界确定模块61,用于依次将初始gbdt模型的每棵决策树作为当前决策树,依次将当前决策树的每一层作为当前层,针对当前层,通过与多个数据节点之间的信息交互和数据计算,确定多个数据节点持有的每种特征的分箱边界,作为合并后分箱边界;分箱边界发送模块62,用于向多个数据节点发送合并后分箱边界,使得数据节点分别针对当前层的每个节点,按照每种特征的合并后分箱边界包括的分箱边界,对该节点包括的所有样本进行分箱,得到分箱结果,作为该种特征的分箱结果,当当前层为根节点所属的第一层时,每个数据节点持有的多个样本均位于根节点;分裂标准确定模块63,用于通过与多个数据节点之间密文方式的信息交互和数据计算,针对能够用于进行当前层的节点分裂的各种分裂标准,基于所有数据节点的每种特征的分箱结果,分别计算按照每种分裂标准进行节点分裂的评分增益值,各种分裂标准为基于所有特征的所有分箱边界确定的,评分增益值最高的分裂标准,作为当前层的分裂标准,使得当当前层不为最后一棵决策树的最后一层时,每个数据节点按照当前层的分裂标准,基于自身持有的多个样本的该分裂标准对应的特征的特征数据,进行节点分裂,得到当前层的节点分裂结果,当当前层为当前决策树的最后一层时,当前决策树训练完成,当当前层为最后一棵决策树的最后一层时,gbdt模型训练完成。
66.上述各模块的功能可对应于图2至图4所示流程中的相应处理步骤,在此不再赘述。
67.本技术的实施例所提供的上述gbdt模型的横向训练装置可通过计算机程序实现。
本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要上述gbdt模型的横向训练装置具有上述功能,都应该在本技术的保护范围之内。
68.本技术实施例还提供一种gbdt模型的横向训练系统,如图1所示,包括:多个上述任一数据节点和上述任一密文计算节点。
69.本技术实施例还提供一种电子设备,如图7所示,包括处理器71和机器可读存储介质72,机器可读存储介质72存储有能够被处理器71执行的机器可执行指令,处理器71被机器可执行指令促使:实现上述任一的方法。
70.本技术实施例还提供一种计算机可读存储介质,其特征在于,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一的方法。
71.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一的方法。
72.上述电子设备中的机器可读存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
73.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
74.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、系统、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
75.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
76.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
77.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
78.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
79.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献