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

技术编号:24011638 阅读:21 留言:0更新日期:2020-05-02 01:56
本说明书实施例提供一种在可信执行环境中训练GBDT模型的方法、装置及设备,在训练方法中,对于当前决策树中的当前节点,将D维特征中的每项特征依次作为当前特征,对当前节点进行节点分割判断。节点分割判断包括:将当前特征的N个加密数组加载到可信内存区域中并解密。将得到的N个原始数组中的各个数组依次作为当前数组,基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。在基于D维特征中每项特征进行节点分割判断之后,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。由此,可实现基于私有数据对GBDT模型的安全训练。

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

【技术实现步骤摘要】
在可信执行环境中训练GBDT模型的方法、装置及设备
本说明书一个或多个实施例涉及计算机
,尤其涉及一种在可信执行环境中训练GBDT模型的方法、装置及设备。
技术介绍
在互联网技术快速发展的背景下,对互联网中的数据挖掘工作变得越来越重要。通常,在数据挖掘中,通过机器学习基于标定数据进行建模,从而可使用训练好的模型处理待预测的数据。在多种机器学习算法中,GBDT(Gradientboostingdecisiontree,梯度提升决策树)算法由于其优异的学习性能,得到越来越广泛的应用。GBDT算法是一种用于回归、分类、排序等任务的机器学习技术,其通过结合多个弱学习器(通常为决策树)而获得强预测模型,也称GBDT模型。然而在训练GBDT模型的过程中,会存在数据泄露的风险。因此,如何保证GBDT模型训练过程中数据的安全性就成为要解决的问题。
技术实现思路
本说明书一个或多个实施例描述了一种在可信执行环境中训练GBDT模型的方法、装置及设备,可以确保在模型训练过程中数据的安全性。第一方面,提供了一种在可信执行环境中训练GBDT模型的方法,包括:对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,所述节点分割判断包括:将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;将所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。第二方面,提供了一种在可信执行环境中训练GBDT模型的装置,包括:判断单元,用于对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断;所述判断单元具体包括:解密子单元,用于将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;确定子单元,用于将所述解密子单元解密得到的所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;分割单元,用于在基于所述D维特征中每项特征进行所述判断单元执行的所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。第三方面,提供了一种训练GBDT模型的设备,包括:存储器,其中包括可信内存区域和非可信内存区域,所述非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组;其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值;一个或多个处理器;以及一个或多个程序;所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,所述节点分割判断包括:将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;将所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。本说明书一个或多个实施例提供的在可信执行环境中训练GBDT模型的方法、装置及设备,可以在可信执行环境中,依次对GBDT模型中的多棵决策树进行训练,这可以确保模型训练过程中数据的安全性。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1a为本说明书提供的在可信执行环境中训练GBDT模型的方法实施场景示意图之一;图1b为本说明书提供的在可信执行环境中训练GBDT模型的方法实施场景示意图之二;图2为本说明书提供的数据准备阶段的处理过程示意图;图3为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图;图4为本说明书提供的在可信执行环境中训练GBDT模型的过程示意图;图5为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置示意图;图6为本说明书一个实施例提供的训练GBDT模型的设备示意图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。在描述本说明书提供的方案之前,先对本方案的专利技术构思作以下说明。为保证模型训练过程中数据的安全性,本申请的申请人将在可信执行环境(TrustedExecutionEnvironment,TEE)中执行GBDT模型的训练过程。TEE是进行安全计算的有力工具,可在一个安全域内进行外包计算或多方安全计算。TEE最主要的两个特性是隔离性和验证:隔离性保证安全域外无法访问安全域内的数据,验证用于用户确认安全域的安全性、完整性而后与安全域协商秘密。目前比较常用的TEE技术是IntelSGX,IntelSGX是由Intel推出的程序安全执行框架,其具有机密性和完整性。IntelSGX可以被看作是一种服务器,其至少可以包括CPU和内存。SGX提供了围圈(Enclave),即SGX的内存中一个加密的可信执行区域,该区域也可以称为SGXEPC(英文全称:EnclavePageCache)内存,简称为EPC内存。EPC内存是一段受保护的内存,通过CPU内的内存加密引擎(MemoryEncryptionEngine,MEE)对其中的数据进行加密。EPC内存中的加密数据只有进入CPU或者Cache后才被会解密成明文。Enclave的代码运行在EPC内存中受保护,不会被篡改,运行中数据在EPC内存中不会被敌手窃取。在目本文档来自技高网...

【技术保护点】
1.一种在可信执行环境中训练GBDT模型的方法,所述可信执行环境中包括可信内存区域,所述可信执行环境所在的服务器还包括非可信内存区域,所述非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组;其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值;所述GBDT模型包括多棵决策树;所述方法包括:/n对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,所述节点分割判断包括:/n将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;/n将所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;/n在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。/n...

【技术特征摘要】
1.一种在可信执行环境中训练GBDT模型的方法,所述可信执行环境中包括可信内存区域,所述可信执行环境所在的服务器还包括非可信内存区域,所述非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组;其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值;所述GBDT模型包括多棵决策树;所述方法包括:
对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,所述节点分割判断包括:
将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;
将所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;
在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。


2.根据权利要求1所述的方法,所述基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,包括:
判断所述当前数组中的当前样本序号是否落入当前节点对应的样本集中;
如果是,则基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割。


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


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


5.根据权利要求1所述的方法,所述对当前节点对应的样本集进行分割,包括:
将当前节点的分裂特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到分裂特征对应的N个原始数组;
对于当前节点对应的样本集中的每个样本序号,从分裂特征对应的N个原始数组中查找包括该样本序号的目标数组;
将所述目标数组中的特征值与当前节点对应的特征阈值进行比较,并基于比较结果将该样本序号分割到当前节点对应的子节点中,以生成当前节点对应的子节点。


6.根据权利要求1所述的方法,还包括:
对于当前决策树的每个叶子节点,基于该叶子节点对应的样本集中的各样本序号对应的样本的标签值以及残差,确定该叶子节点的目标值。


7.根据权利要求6所述的方法,所述样本的残差基于所述样本的标签值以及所述样本在已完成训练的各棵决策树中对应的叶子节点的目标值的累加和确定。


8.根据权利要求6或7所述的方法,所述非可信内存区域中还存储有所述N个样本各自的加密标签值;所述样本的标签值通过以下步骤获得:
将所述N个样本各自的加密标签值加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到解密后的N个标签值;
将所述解密后的N个标签值保存在所述可信内存区域中。


9.一种在可信执行环境中训练GBDT模型的装置,设置于服务器;所述可信执行环境中包括可信内存区域,所述服务器还包括非可信内存区域,所述非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组;其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值;所述GBDT模型包括多棵决策树;所述装置包括:
判断单元,用于对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断;
所述判断单元具体包括:
解密子单元,用于将当前特征对应的N个加密数组从所...

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

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

1