在可信执行环境中训练GBDT模型的方法、装置及设备制造方法及图纸

技术编号:23765203 阅读:36 留言:0更新日期:2020-04-11 19:28
本说明书实施例提供一种在可信执行环境中训练GBDT模型的方法、装置及设备,在训练方法中,将D维特征依次作为当前特征,对当前节点进行节点分割判断,该判断包括:将当前特征的N个特征值依次作为当前特征值,基于第一数组,判断对应的当前样本是否落入当前节点中。若是,则对样本集进行假定分割。基于假定分割结果,确定当前最佳分裂特征和当前最佳特征阈值。在基于每项特征进行节点分割判断之后,将当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对样本集进行分割,生成对应的子节点。基于子节点的节点编号,对第一数组进行更新,并对下一节点进行节点分割判断,直至到达叶子节点。由此,可实现基于私有数据对GBDT模型的安全训练。

Method, device and equipment of training gbdt model in trusted execution environment

【技术实现步骤摘要】
在可信执行环境中训练GBDT模型的方法、装置及设备
本说明书一个或多个实施例涉及计算机
,尤其涉及一种在可信执行环境中训练GBDT模型的方法、装置及设备。
技术介绍
在互联网技术快速发展的背景下,对互联网中的数据挖掘工作变得越来越重要。通常,在数据挖掘中,通过机器学习基于标定数据进行建模,从而可使用训练好的模型处理待预测的数据。在多种机器学习算法中,GBDT(Gradientboostingdecisiontree,梯度提升决策树)算法由于其优异的学习性能,得到越来越广泛的应用。GBDT算法是一种用于回归、分类、排序等任务的机器学习技术,其通过结合多个弱学习器(通常为决策树)而获得强预测模型,也称GBDT模型。在训练GBDT模型的每棵决策树的过程中,针对该决策树中的节点,会执行对应样本集分割的操作。为了确定各个节点各自对应的样本集,传统技术中,针对每个节点,会生成相应的表格或者数组,其中记录分割到该节点的各个样本的样本ID。然而由于针对每个节点,都要建立相应的数组或者表格,由此,会大量占用存储空间。
技术实现思路
本说明书一个或多个实施例描述了一种在可信执行环境中训练GBDT模型的方法、装置及设备,可以大大节约存储空间。第一方面,提供了一种在可信执行环境中训练GBDT模型的方法,包括:将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断,所述节点分割判断包括:将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;将当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中;所述第一数组包括对应于所述N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号;若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割;基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点;基于所述子节点的节点编号,对所述第一数组进行更新;基于更新后的第一数组,对下一节点进行所述节点分割判断,直至到达叶子节点。第二方面,提供了一种在可信执行环境中训练GBDT模型的装置,包括:判断单元,用于将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断;所述判断单元具体包括:解密子单元,用于将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;确定子单元,用于将所述解密子单元解密得到的当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中;所述第一数组包括对应于所述N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号;若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割;基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;分割单元,用于在基于所述D维特征中每项特征进行所述判断单元执行的所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点;更新单元,用于基于所述子节点的节点编号,对所述第一数组进行更新;所述判断单元,还用于基于所述更新单元更新后的第一数组,对下一节点进行所述节点分割判断,直至到达叶子节点。第三方面,提供了一种在可信执行环境中训练GBDT模型的设备,包括:存储器;一个或多个处理器;以及一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断,所述节点分割判断包括:将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;将当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中;所述第一数组包括对应于所述N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号;若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割;基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点;基于所述子节点的节点编号,对所述第一数组进行更新;基于更新后的第一数组,对下一节点进行所述节点分割判断,直至到达叶子节点。本说明书一个或多个实施例提供的在可信执行环境中训练GBDT模型的方法、装置及设备,首先,在可信执行环境中,依次对GBDT模型中的多棵决策树进行训练,这可以保证模型训练过程中数据的安全性。此外,在训练GBDT模型的每棵决策树的过程中,可以基于一个数组来表示样本与节点之间的归属关系。具体地,该一个数组可以包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。由此,可以极大地节约存储空间。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1a为本说明书提供的在可信执行环境中训练GBDT模型的方法实施场景示意图之一;图1b为本说明书提供的在可信执行环境中训练GBDT模型的方法实施场景示意图之二;图2为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图;图3为本说明书提供的第一数组的示意图之一;图4为本说明书提供的第一数组的示意图之二;图5为本说明书提供的第一数组的示意图之三;图6为本说明书另一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图;图7为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置示意图;图8为本本文档来自技高网...

【技术保护点】
1.一种在可信执行环境中训练GBDT模型的方法,所述GBDT模型包括多棵决策树,每棵决策树中的各个节点具有对应的节点编号;所述方法基于N个具有D维特征的样本进行,所述D维特征中每项特征对应于N个样本的N个特征值以加密的形式保存在非可信区域中;所述方法包括:/n将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断,所述节点分割判断包括:/n将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;/n将当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中;所述第一数组包括对应于所述N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号;/n若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割;基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;/n在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点;/n基于所述子节点的节点编号,对所述第一数组进行更新;/n基于更新后的第一数组,对下一节点进行所述节点分割判断,直至到达叶子节点。/n...

【技术特征摘要】
1.一种在可信执行环境中训练GBDT模型的方法,所述GBDT模型包括多棵决策树,每棵决策树中的各个节点具有对应的节点编号;所述方法基于N个具有D维特征的样本进行,所述D维特征中每项特征对应于N个样本的N个特征值以加密的形式保存在非可信区域中;所述方法包括:
将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断,所述节点分割判断包括:
将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;
将当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中;所述第一数组包括对应于所述N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号;
若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割;基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;
在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点;
基于所述子节点的节点编号,对所述第一数组进行更新;
基于更新后的第一数组,对下一节点进行所述节点分割判断,直至到达叶子节点。


2.根据权利要求1所述的方法,所述N个元素中各个元素各自对应的样本的样本编号与各自的数组下标相对应。


3.根据权利要求2所述的方法,所述基于保存在所述可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中,包括:
确定当前样本的样本编号对应的数组下标;
基于确定的数组下标,在所述第一数组的N个元素中查找对应的元素;
若查找的元素的元素值与当前节点的节点编号相等,则确定当前特征值对应的当前样本落入当前节点对应的样本集中;否则,确定当前特征值对应的当前样本未落入当前节点对应的样本集中。


4.根据权利要求2所述的方法,所述当前节点的子节点包括左子节点和右子节点;
在所述基于所述子节点的节点编号,对所述第一数组进行更新之前,还包括:
基于所述当前节点的节点编号以及第一函数,确定所述左子节点的节点编号;所述第一函数的常数项为奇数;
基于所述当前节点的节点编号以及第二函数,确定所述右子节点的节点编号;所述第二函数的常数项为偶数;
所述基于所述子节点的节点编号,对所述第一数组进行更新,包括:
基于所述左子节点的节点编号和所述右子节点的节点编号,对所述第一数组进行更新。


5.根据权利要求4所述的方法,所述基于所述左子节点的节点编号和所述右子节点的节点编号,对所述第一数组进行更新,包括:
对于所述样本集中被分割到所述左子节点的第一样本编号,确定对应的第一下标;将所述第一数组的N个元素中对应于所述第一下标的元素替换为所述左子节点的节点编号;以及
对于所述样本集中被分割到所述右子节点的第二样本编号,确定对应的第二下标;将所述第一数组的N个元素中对应于所述第二下标的元素替换为所述右子节点的节点编号。


6.根据权利要求2所述的方法,还包括:
对于当前决策树的每个叶子节点,基于所述叶子节点的节点编号,从所述第一数组的N个元素中确定出目标元素,所述目标元素的元素值等于所述叶子节点的节点编号;
基于所述目标元素的数组下标,确定落入所述叶子节点对应的样本集中的样本编号;
基于确定的样本编号对应的样本的标签值以及残差,计算所述叶子节点的目标值。


7.根据权利要求1所述的方法,所述假定分割结果包括两个子样本集;所述基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值,包括:
基于所述样本集以及所述两个子样本集,计算方差减少值;
若所述方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将所述当前特征作为当前节点的当前最佳分裂特征,将所述当前特征的特征值作为当前节点的当前最佳特征阈值。


8.根据权利要求7所述的方法,所述基于所述样本集以及所述两个子样本集,计算方差减少值,包括:
基于所述样本集中的样本编号对应的样本的残差,计算第一方差;
分别基于所述两个子样本集中的样本编号对应的样本的残差,计算与所述两个子样本集各自对应的两个第二方差;
对所述两个第二方差求和,以得到方差和;
将所述第一方差与所述方差和之间的差值作为所述方差减少值。


9.一种在可信执行环境中训练GBDT模型的装置,所述GBDT模型包括多棵决策树,每棵决策树中的各个节点具有对应的节点编号;所述装置基于N个具有D维特征的样本实施,所述D维特征中每项特征对应于N个样本的N个特征值以加密的形式保存在非可信区域中;所述装置包括:
判断单元,用于将所述D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断;
所述判断单元具体包括:
解密子单元,用于将当前特征的加密的N个特征值从所述非可信区域加载到所述可信执行环境中,在所述可信执行环境中对其进行解密,得到当前特征的N个特征值;
确定子单元,用于将所述解密子单元解密得到的当前特征的N个特征值依次作为当前特征值,基于保存在所述可信执行环境中的第一数组,判...

【专利技术属性】
技术研发人员:赵原殷山
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1