CN111091197A - 在可信执行环境中训练gbdt模型的方法、装置及设备 - Google Patents

在可信执行环境中训练gbdt模型的方法、装置及设备 Download PDF

Info

Publication number
CN111091197A
CN111091197A CN201911151157.3A CN201911151157A CN111091197A CN 111091197 A CN111091197 A CN 111091197A CN 201911151157 A CN201911151157 A CN 201911151157A CN 111091197 A CN111091197 A CN 111091197A
Authority
CN
China
Prior art keywords
current
feature
node
sample
memory area
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
Application number
CN201911151157.3A
Other languages
English (en)
Other versions
CN111091197B (zh
Inventor
赵原
殷山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911151157.3A priority Critical patent/CN111091197B/zh
Publication of CN111091197A publication Critical patent/CN111091197A/zh
Application granted granted Critical
Publication of CN111091197B publication Critical patent/CN111091197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

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

Description

在可信执行环境中训练GBDT模型的方法、装置及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种在可信执行环境中训练GBDT模型的方法、装置及设备。
背景技术
在互联网技术快速发展的背景下,对互联网中的数据挖掘工作变得越来越重要。通常,在数据挖掘中,通过机器学习基于标定数据进行建模,从而可使用训练好的模型处理待预测的数据。在多种机器学习算法中,GBDT(Gradient boosting decision tree,梯度提升决策树)算法由于其优异的学习性能,得到越来越广泛的应用。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模型的设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下说明。
为保证模型训练过程中数据的安全性,本申请的申请人将在可信执行环境(Trusted Execution Environment,TEE)中执行GBDT模型的训练过程。TEE是进行安全计算的有力工具,可在一个安全域内进行外包计算或多方安全计算。TEE最主要的两个特性是隔离性和验证:隔离性保证安全域外无法访问安全域内的数据,验证用于用户确认安全域的安全性、完整性而后与安全域协商秘密。
目前比较常用的TEE技术是Intel SGX,Intel SGX是由Intel推出的程序安全执行框架,其具有机密性和完整性。Intel SGX可以被看作是一种服务器,其至少可以包括CPU和内存。SGX提供了围圈(Enclave),即SGX的内存中一个加密的可信执行区域,该区域也可以称为SGX EPC(英文全称:Enclave Page Cache)内存,简称为EPC内存。EPC内存是一段受保护的内存,通过CPU内的内存加密引擎(Memory Encryption Engine,MEE)对其中的数据进行加密。EPC内存中的加密数据只有进入CPU或者Cache后才被会解密成明文。Enclave的代码运行在EPC内存中受保护,不会被篡改,运行中数据在EPC内存中不会被敌手窃取。
在目前Intel SGX中,EPC内存最大设置为128MB,由于MEE要保证EPC内存的机密性和完整性,可用于存储数据和代码的EPC内存最大只有96MB。也就是说最大可用内存只有96MB。
在训练GBDT模型的过程中,针对每棵决策树,会通过对当前节点对应的样本集进行分割,来生成当前节点对应的子节点。然而在对样本集进行分割时,需要遍历每个样本中包含的对应于D维特征中每项特征的特征值。然而,用于训练GBDT模型的样本数量通常在百万级别,且每个样本可能具有几千维特征,从而最终建模数据的大小可达20GB。这个数据量远超最大可用的EPC内存96MB。
若无视最大可用内存大小,直接在SGX内存中申请大内存,由SGX的机制自动换入换出大内存数据,透明地对换出大内存的数据加密,换入大内存的数据解密,则在针对每个节点分割样本集的过程中,由于建模数据的大量换入换出,SGX自动会进行大量加密和解密计算,使模型训练的效率大幅下降。此外,在自动换入换出的过程中,可能会将一个马上要用的变量(比如,标签值或者残差)换出去,之后立马又要被换入,由此导致了换入换出颠簸的问题。
为了提升模型训练的效率,本申请中,可以通过如下两个阶段来完成GBDT模型的训练:第一阶段,数据准备阶段。在该阶段针对N个具有D维特征的样本,按照特征维度整理为D*N个加密数组。其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值,其具体整理过程后续说明。第二阶段,GBDT模型训练阶段。在该阶段,针对每棵决策树的每个节点,确定该节点的分裂特征和特征阈值,并基于该个节点的分裂特征和特征阈值,对对应的样本集进行分割,以生成当前节点对应的子节点,直至到达叶子节点。
以上就是本说明书提供的发明构思,基于该发明构思就可以得到本方案,以下对本方案进行详细阐述。
图1a和图1b为本说明书提供的在可信执行环境中训练GBDT模型的方法的实施场景示意图。图1a中,客户端可以请求服务器SGX进行隐私保护计算。具体地,客户端可以与服务器SGX的一个Enclave预先协商密钥。之后,客户端可以在可信域内对敏感数据加密,并将加密数据发送至服务器SGX。服务器SGX在Enclave中用与客户端协商的密钥对客户端的加密数据解密,进行计算。这里的计算可以包括但不限于GBDT模型的训练。
图1b中,服务器SGX可实现多方隐私保护计算。具体地,多个客户端可以分别与服务器SGX的一个Enclave预先协商密钥。之后,各客户端可以在各自的可信域内对各自的敏感数据加密,并将加密数据发送至服务器SGX。服务器SGX在Enclave中用与各方协商的密钥对各方加密数据解密,进行计算。这里的计算可以包括但不限于GBDT模型的训练。
以上述各客户端中某一方的计算为GBDT模型的训练为例来说,该客户端的敏感数据可以是指用于训练GBDT模型的N个具有D维特征的样本。在本说明书中,样本的加密可以理解为是对其包含的对应于D维特征的D个特征值进行加密。因此,在对上述样本加密后,每个样本可以包含D个加密特征值。服务器SGX在接收到上述各样本的D个加密特征值之后,可以将其存放在内存中一块连续的地址空间中,这里的地址空间可以称为非可信内存区域。可以理解的是,基于上述地址空间的起始地址以及每个样本的维度(每个维度占用的内存空间大小确定),可以确定出每个样本的位置。在确定出每个样本的位置之后,再结合样本中各特征的排列顺序,可以针对某个特征,从上述地址空间中确定出各样本对应于该特征的加密特征值。
可以理解的是,在完成上述样本的存储之后,就可以执行发明构思中提到的两个阶段的处理,进而完成GBDT模型的训练。
以下对发明构思中的第一阶段的处理进行详细说明。
图2示出了GBDT模型的第一阶段处理过程示意图。图2中,在服务器SGX的非可信内存区域中以数组形式存储了N个具有D维特征的样本,且该N个样本是按序排列的。N个样本中的每个样本包含对应于D维特征的D个加密特征值。之后,将D维特征中的每项特征依次作为当前特征,在非可信内存区域中确定出N个样本各自对应于当前特征的N个加密特征值,并将N个加密特征值从非可信内存区域加载到可信内存区域(如,EPC内存)中。上述N和D均为正整数。
在一个示例中,上述确定的过程具体可以为:确定当前特征对应的特征序号。基于特征序号,在非可信内存区域中确定出N个样本各自对应于当前特征的N个加密特征值。需要说明的是,这里的各样本可以是基于各样本的位置来区分。
在将当前特征的N个加密特征值加载到可信内存区域之后,可以对其进行解密,以得到N个原始特征值。将N个原始特征值中的各个特征值依次作为当前特征值,基于当前特征值以及包含该当前特征值对应的加密特征值的样本的样本序号形成第一数组。可以理解的是,N个原始特征值可以各自形成N个数组。在形成该N个数组之后,可以基于各数组中的原始特征值的大小,对N个数组进行排序。如,可以按照N个原始特征值从小到大的顺序,对各自形成的N个数组进行排序。之后对排序后的N个数组各自进行加密,得到当前特征对应的N个加密数组。之后,可以将当前特征对应的N个加密数组从可信内存区域移出,并保存至非可信内存区域中。
可以理解的是,在针对将D维特征中的每项特征,执行上述的加密特征值加载、加密特征值解密、形成N个数组、N个数组排序以及N个数组各自加密并移出等操作之后,非可信内存区域中可以存储有D维特征中每项特征对应的N个加密数组。
对于上述第一阶段的处理,需要说明的是,其解密和加密所适用的密钥为服务器SGX与请求模型训练的客户端预先协商好的。此外,上述密钥的个数可以为1个或多个,且该1个或多个密钥会同时保存在可信执行环境中的可信内存区域以及客户端的可信域中。
另外,在上述一阶段处理的过程中,若上述特征值(包括加密特征值和原始特征值)的数据类型为float型(对应4个字节,简写为4B),且样本序号的数据类型为int型(对应4B)。那么基于每个原始特征值形成的加密数组会占用可信内存区域8B大小的内存空间。因为每项特征对应N个加密数组,所以针对当前特征形成加密数组的过程中总占用空间:N*8B。
另外,需要说明的是,在针对每项特征形成N个加密数组的过程中,不断重复使用可信内存区域的临时空间(NUM*8B),即只需占用与样本数相关的内存空间,与特征数无关,在非可信内存区域中存储的排序后的加密数组与样本数和特征数相关。
在执行完成上述第一阶段的处理之后,就可以对GBDT模型进行训练了。以下对GBDT模型的训练过程进行说明。
图3为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,可以为图1a或者图1b中的服务器SGX。如图3所示,所述方法具体可以包括:
步骤302,对于当前决策树中的当前节点,将D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断。
上述当前决策树可以为GBDT模型中的多棵决策树中任一决策树。此外,当前节点可以为当前决策树中的任一节点。
上述步骤302中的节点分割判断具体可以包括:
步骤3022,将当前特征对应的N个加密数组从非可信内存区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到N个原始数组。
这里对每个加密数组进行解密时所使用的密钥可以为上述提到的、预先保存在可信内存区域中的一个或多个密钥。
可以理解的是,上述N个原始数组中的每个原始数组可以包括解密后的一个特征值(即上述原始特征值)和一个样本序号。
步骤3024,将N个原始数组中的各个数组依次作为当前数组,基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
本说明书所述的样本集可以由若干样本序号组成。
需要说明的是,若将当前特征的每个特征值看作一个候选划分点的话,本说明书中针对每个特征,考察包含n-1个元素的候选划分点集合Ta,其具体可表示如下:
Ta={ai|1≤i≤n-1}
其中,Ta为当前特征,ai为Ta的第i个特征值,也可以称为第i个候选划分点,n为样本个数。
在一个示例中,在基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割之前,可以先判断当前数组中的当前样本序号是否落入当前节点对应的样本集中。如果是,则基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割。如果否,则不执行假定分割操作。由此,可以避免无效分割的执行,进而可以达到节约计算资源的目的。
上述假定分割结果可以包括两个子样本集。步骤3024具体可以包括:基于当前节点对应的样本集以及两个子样本集,计算方差减少值。若计算得到的方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将当前特征作为当前节点的当前最佳分裂特征,将当前数组中的当前特征值作为当前节点的当前最佳特征阈值。
在一个示例中,上述基于当前节点对应的样本集以及两个子样本集,计算方差减少值,包括:基于当前节点对应的样本集中的样本序号对应的样本的残差,计算第一方差。分别基于两个子样本集中的样本序号对应的样本的残差,计算与两个子样本集各自对应的两个第二方差。对两个第二方差求和,以得到方差和。将第一方差与方差和之间的差值作为方差减少值。
上述就算公式可具体表示为如下公式:
Dre=D-(DL+DR) (公式1)
其中,Dre为方差减少值,D为第一方差,DL为一个第二方差,DR为另一个第二方差。这里的第一方差或者第二方差的计算公式可以如下:
Figure BDA0002283585690000101
其中,NUM为总样本数(如,图2中的N),Y为样本集或者子样本集中某样本的残差,
Figure BDA0002283585690000102
为样本集或者子样本集中各样本的残差的均值。这里样本的残差的计算方法后续说明。
需要说明的是,在上述例子中,Dre也可以称为不纯度减少值(其通常也可以看作是样本集基于当前特征及其某个候选划分点ai二分后的信息增益),D可以称为当前节点的不纯度,DL可以称为左子节点的不纯度,DR可以称为右子节点的不纯度。
另外,上述步骤3024也可以看作是寻找信息增益最大的特征及其划分点的过程。这里,寻找到的划分点也可以称为最优划分点。
步骤304,在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
需要说明的是,在执行上述节点分割判断的过程中,上述当前特征以及当前数组是不断更新的。随着当前特征以及当前数组的更新,当前节点对应的当前最佳分裂特征和当前最佳特征阈值也是不断更新的,直至在基于D维特征中每项特征进行节点分割判断之后,当前节点对应的当前最佳分裂特征和当前最佳特征阈值才更新结束。因此,可以在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值。
可以理解的是,在确定出当前节点对应的分裂特征和特征阈值之后,就可以对当前节点对应的样本集进行分割。其具体分割过程可以如下:
将当前节点的分裂特征对应的N个加密数组从非可信内存区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到分裂特征对应的N个原始数组。对于当前节点对应的样本集中的每个样本序号,从分裂特征对应的N个原始数组中查找包含该样本序号的目标数组,并将目标数组中的特征值与当前节点对应的特征阈值比较。基于比较结果将该样本序号分割到当前节点对应的子节点中,以生成当前节点对应的子节点。
在生成当前节点对应的子节点之后,可以将当前节点的子节点作为当前节点执行上述步骤302-步骤304的处理;直至到达叶子节点,至此就完成了GBDT模型中一棵决策树中的一个分支的训练。在本说明书中,可以将一棵决策树中一个分支的训练称为GBDT模型的训练。
在到达叶子节点之后,对于当前决策树的每个叶子节点,可以基于该叶子节点对应的样本集中的各样本序号对应的样本的标签值以及残差,确定该叶子节点的目标值。
这里的样本的标签值以及残差是预先存储在可信内存区域中的。以下对该两者的获取过程进行说明。
需要说明的是,在本说明书中,非可信内存区域中还存储有N个样本各自的加密标签值。在对当前决策树进行训练之前,也即在执行上述步骤302之前,可以将N个样本各自的加密标签值加载到可信内存区域中。在可信内存区域中,对N个加密标签值进行解密,得到解密后的N个标签值。将该N个标签值保存在可信内存区域中。这里,以标签值的数据类型为float类型为例来说,该N个标签值共占用可信内存区域(如,EPC内存)N*4B大小的内存空间。
在得到上述解密后的N个标签值之后,可以基于如下公式计算N个样本各自的残差。
Figure BDA0002283585690000121
其中,
Figure BDA0002283585690000122
为样本i的残差,yi为样本i的标签值,F(xi)为样本i在已完成训练的各棵决策树中被分割到的叶子节点的目标值的累加和。
需要说明的是,对于N个样本各自的残差也可以保存在可信内存区域中。这里,以残差的数据类型为float类型为例来说,该N个残差共占用可信内存区域(如,EPC内存)N*4B大小的内存空间。
在可信内存区域中存储N个样本各自的标签值以及残差之后,针对当前决策树的每个叶子节点,可以基于如下公式计算该叶子节点的目标值。
Figure BDA0002283585690000123
其中,γjm为决策树m中叶子节点j的目标值,
Figure BDA0002283585690000124
为样本i的残差,yi为样本i的标签值。
以下对GBDT模型训练过程中,可信内存区域的占用情况进行分析。首先,需要说明的是,各棵决策树在训练过程中重复使用相同的可信内存空间。其中,在训练一棵决策树的过程中,N个样本各自的标签值和残差,共占用N*8B大小的内存空间。此外,在进行节点分割判断的过程中,会将当前特征的N个加密数组加载到可信内存区域中,因此还会占用N*8B大小的内存空间。注意,这里的N*8B大小的内存空间是重复使用的。
综上,在GBDT模型训练过程中,会占用N*(8+8)B=N*16B大小的内存空间。也就是说,无论是上述一阶段的处理,还是GBDT模型训练,所占用的可信内存区域只与样本数相关,与样本的特征维度无关。即便样本的数量为百万级,N*16B的大小也不会超过96MB,从而本说明书提供的方案可在可信环境中有效执行。
需要说明的是,虽然在样本集分割的过程中,也会加载当前特征的N个加密数组(对应N*8B大小的内存空间),但是由于此时节点分割判断已经结束,样本集分割的过程中可以重复使用节点分割判断的过程中所占用的内存空间。
总之,本方案中,在阶段一数据准备和阶段二模型训练中各特征都循环占用可信内存区域的内存空间,总占用空间只与样本数相关,与特征数无关。对频繁使用的各样本的标签值和残差,始终保持在可信内存区域中。
本说明书实施例提供的GBDT模型的训练方法,在针对每个节点进行节点分割判断时,只对D维特征中每项特征对应的N个数组解密一遍,不做加密,且再无其他任何加密解密计算。因此,本方案的训练过程和明文实现基本一致。此外,本方案对于可信内存区域的使用,不会超出96MB,从而不会出现换入换出颠簸。综上,本方案提供的GBDT模型训练方法与基于明文训练GBDT模型的速度相接近,由此,实现了在不影响模型训练效率的前提下,确保了数据的安全性。
图4为本说明书提供的在可信执行环境中训练GBDT模型的过程示意图。图4中,首先,可以将N个样本各自的加密标签值加载到可信内存区域中。在可信内存区域中,对N个加密标签值进行解密,得到解密后的N个标签值Y。将该N个标签值Y保存在可信内存区域中。这里,以标签值Y的数据类型为float类型为例来说,该N个标签值Y共占用可信内存区域(如,EPC内存)N*4B大小的内存空间。
在得到上述解密后的N个标签值Y之后,可以基于公式3计算N个样本各自的残差
Figure BDA0002283585690000141
并保存。这里,以残差的数据类型为float类型为例来说,该N个残差
Figure BDA0002283585690000142
共占用可信内存区域(如,EPC内存)N*4B大小的内存空间。
之后,对于当前决策树中的当前节点,将D维特征中的每项特征依次作为当前特征,基于当前特征对当前节点进行节点分割判断。具体地的节点分割判断过程参见步骤3022-步骤3024,在此不复赘述。在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
与上述在可信执行环境中训练GBDT模型的方法对应地,本说明书一个实施例还提供的一种在可信执行环境中训练GBDT模型的装置。该装置设置于服务器中,这里的可信执行环境中包括可信内存区域,上述服务器还包括非可信内存区域。非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组。其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值。如图5所示,该装置可以包括:
判断单元502,用于对于当前决策树中的当前节点,将D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断。
判断单元502具体可以包括:
解密子单元5022,用于将当前特征对应的N个加密数组从非可信内存区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到N个原始数组。
确定子单元5024,用于将解密子单元5022解密得到的N个原始数组中的各个数组依次作为当前数组,基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
确定子单元5024具体可以用于:判断当前数组中的当前样本序号是否落入当前节点对应的样本集中。如果是,则基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割。
分割单元504,用于在基于D维特征中每项特征进行判断单元502执行的节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
分割单元504具体可以用于:
将当前节点的分裂特征对应的N个加密数组从非可信内存区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到分裂特征对应的N个原始数组。
对于当前节点对应的样本集中的每个样本序号,从分裂特征对应的N个原始数组中查找包括该样本序号的目标数组。
将目标数组中的特征值与当前节点对应的特征阈值进行比较,并基于比较结果将该样本序号分割到当前节点对应的子节点中,以生成当前节点对应的子节点。
可选地,上述假定分割结果可以包括两个子样本集。确定子单元5024具体可以用于:
基于当前节点对应的样本集以及两个子样本集,计算方差减少值。
若方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将当前特征作为当前节点的当前最佳分裂特征,将当前数组中的当前特征值作为当前节点的当前最佳特征阈值。
确定子单元5024还具体可以用于:
基于样本集中的样本序号对应的样本的残差,计算第一方差。
分别基于两个子样本集中的样本序号对应的样本的残差,计算与两个子样本集各自对应的两个第二方差。
对两个第二方差求和,以得到方差和。
将第一方差与方差和之间的差值作为方差减少值。
可选地,确定子单元5024,还用于对于当前决策树的每个叶子节点,基于该叶子节点对应的样本集中的各样本序号对应的样本的标签值以及残差,确定该叶子节点的目标值。
上述样本的残差基于样本的标签值以及样本在已完成训练的各棵决策树中对应的叶子节点的目标值的累加和确定。
可选地,上述非可信内存区域中还可以存储有N个样本各自的加密标签值。该装置还包括:保存单元(图中未示出)。
解密子单元5022,还用于将N个样本各自的加密标签值加载到可信内存区域中,在可信内存区域中对其进行解密,得到解密后的N个标签值。
保存单元,用于将解密子单元5022解密后的N个标签值保存在可信内存区域中。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置,可以确保模型训练过程中数据的安全性。
本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置可以为图1a或者图1b中服务器SGX中的一个模块或者单元。
与上述在可信执行环境中训练GBDT模型的方法对应地,本说明书实施例还提供了一种训练GBDT模型的设备,如图6所示,该设备可以包括:存储器602、一个或多个处理器604以及一个或多个程序。其中,存储器602包括可信内存区域和非可信内存区域,非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组。其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值。上述一个或多个程序也存储在存储器602中,并且被配置成由一个或多个处理器604执行,该程序被处理器604执行时实现以下步骤:
对于当前决策树中的当前节点,将D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,该节点分割判断包括:
将当前特征对应的N个加密数组从非可信内存区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到N个原始数组。
将N个原始数组中的各个数组依次作为当前数组,基于当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
本说明书一个实施例提供的训练GBDT模型的设备,可以确保模型训练过程中数据的安全性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (17)

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个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;
确定子单元,用于将所述解密子单元解密得到的所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;
分割单元,用于在基于所述D维特征中每项特征进行所述判断单元执行的所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
10.根据权利要求9所述的装置,所述确定子单元具体用于:
判断所述当前数组中的当前样本序号是否落入当前节点对应的样本集中;
如果是,则基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割。
11.根据权利要求9所述的装置,所述假定分割结果包括两个子样本集;所述确定子单元具体用于:
基于所述样本集以及所述两个子样本集,计算方差减少值;
若所述方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将所述当前特征作为当前节点的当前最佳分裂特征,将所述当前数组中的当前特征值作为当前节点的当前最佳特征阈值。
12.根据权利要求11所述的装置,所述确定子单元还具体用于:
基于所述样本集中的样本序号对应的样本的残差,计算第一方差;
分别基于所述两个子样本集中的样本序号对应的样本的残差,计算与所述两个子样本集各自对应的两个第二方差;
对所述两个第二方差求和,以得到方差和;
将所述第一方差与所述方差和之间的差值作为所述方差减少值。
13.根据权利要求9所述的装置,所述分割单元具体用于:
将当前节点的分裂特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到分裂特征对应的N个原始数组;
对于当前节点对应的样本集中的每个样本序号,从分裂特征对应的N个原始数组中查找包括该样本序号的目标数组;
将所述目标数组中的特征值与当前节点对应的特征阈值进行比较,并基于比较结果将该样本序号分割到当前节点对应的子节点中,以生成当前节点对应的子节点。
14.根据权利要求9所述的装置,所述确定子单元,还用于对于当前决策树的每个叶子节点,基于该叶子节点对应的样本集中的各样本序号对应的样本的标签值以及残差,确定该叶子节点的目标值。
15.根据权利要求14所述的装置,所述样本的残差基于所述样本的标签值以及所述样本在已完成训练的各棵决策树中对应的叶子节点的目标值的累加和确定。
16.根据权利要求14或15所述的装置,所述非可信内存区域中还存储有所述N个样本各自的加密标签值;所述装置还包括:保存单元;
所述解密子单元,还用于将所述N个样本各自的加密标签值加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到解密后的N个标签值;
所述保存单元,用于将所述解密子单元解密后的N个标签值保存在所述可信内存区域中。
17.一种训练GBDT模型的设备,所述GBDT模型包括多棵决策树;所述设备包括:
存储器,其中包括可信内存区域和非可信内存区域,所述非可信内存区域中存储有针对N个具有D维特征的样本,按照特征维度整理的D*N个加密数组;其中,D维特征中每项特征对应N个加密数组,每个加密数组包括经过加密的一个样本的样本序号以及该样本对应于该项特征的特征值;
一个或多个处理器;以及
一个或多个程序;所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
对于当前决策树中的当前节点,将所述D维特征中的每项特征依次作为当前特征,并基于当前特征对当前节点进行节点分割判断,所述节点分割判断包括:
将当前特征对应的N个加密数组从所述非可信内存区域加载到所述可信内存区域中,在所述可信内存区域中对其进行解密,得到N个原始数组;
将所述N个原始数组中的各个数组依次作为当前数组,基于所述当前数组中的当前特征值,对当前节点对应的样本集进行假定分割,并基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值;
在基于所述D维特征中每项特征进行所述节点分割判断之后,将所述当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点,直至到达叶子节点。
CN201911151157.3A 2019-11-21 2019-11-21 在可信执行环境中训练gbdt模型的方法、装置及设备 Active CN111091197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911151157.3A CN111091197B (zh) 2019-11-21 2019-11-21 在可信执行环境中训练gbdt模型的方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911151157.3A CN111091197B (zh) 2019-11-21 2019-11-21 在可信执行环境中训练gbdt模型的方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111091197A true CN111091197A (zh) 2020-05-01
CN111091197B CN111091197B (zh) 2022-03-01

Family

ID=70393593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911151157.3A Active CN111091197B (zh) 2019-11-21 2019-11-21 在可信执行环境中训练gbdt模型的方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111091197B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756846A (zh) * 2022-11-17 2023-03-07 抖音视界有限公司 模型训练方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081836A1 (en) * 2001-10-31 2003-05-01 Infowrap, Inc. Automatic object extraction
CN106384282A (zh) * 2016-06-14 2017-02-08 平安科技(深圳)有限公司 构建决策模型的方法和装置
US20170161520A1 (en) * 2015-12-04 2017-06-08 Xor Data Exchange, Inc. Systems and Methods of Determining Compromised Identity Information
CN108536650A (zh) * 2018-04-03 2018-09-14 北京京东尚科信息技术有限公司 生成梯度提升树模型的方法和装置
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质
US20190147430A1 (en) * 2017-11-10 2019-05-16 Apple Inc. Customizing payment sessions with machine learning models

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081836A1 (en) * 2001-10-31 2003-05-01 Infowrap, Inc. Automatic object extraction
US20170161520A1 (en) * 2015-12-04 2017-06-08 Xor Data Exchange, Inc. Systems and Methods of Determining Compromised Identity Information
CN106384282A (zh) * 2016-06-14 2017-02-08 平安科技(深圳)有限公司 构建决策模型的方法和装置
US20190147430A1 (en) * 2017-11-10 2019-05-16 Apple Inc. Customizing payment sessions with machine learning models
CN108536650A (zh) * 2018-04-03 2018-09-14 北京京东尚科信息技术有限公司 生成梯度提升树模型的方法和装置
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄琰等: "一种基于CHORD环的分布式登录模型", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756846A (zh) * 2022-11-17 2023-03-07 抖音视界有限公司 模型训练方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111091197B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US9942032B1 (en) Systems and methods for securely detecting data similarities
JP5975490B2 (ja) 検索システム、検索方法、およびプログラム
CN110457912B (zh) 数据处理方法、装置和电子设备
CN110457945B (zh) 名单查询的方法、查询方设备、服务方设备及存储介质
US20180011996A1 (en) Secret shared random access machine
CN110427969B (zh) 数据处理方法、装置和电子设备
CN109002883B (zh) 卷积神经网络模型计算装置及计算方法
CN111160572B (zh) 一种基于多标签的联邦学习方法、装置和系统
CN110851481B (zh) 一种可搜索加密方法、装置、设备及可读存储介质
EP3975023A1 (en) Trusted execution environment-based model training methods and apparatuses
CN111428887A (zh) 一种基于多个计算节点的模型训练控制方法、装置及系统
CN111126628B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
CN112766495A (zh) 一种基于混合环境的深度学习模型隐私保护方法及装置
CN112073444B (zh) 数据集的处理方法、装置和服务器
CN110990829B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
CN115905633A (zh) 一种隐私保护的图相似性检索方法及系统
CN111091197B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
Fang et al. SIFO: Secure computational infrastructure using FPGA overlays
CN113095430B (zh) 可保护隐私的模型更新方法、对象识别方法、系统、装置、介质和设备
CN113055153B (zh) 一种基于全同态加密算法的数据加密方法、系统和介质
CN111079153B (zh) 安全建模方法、装置、电子设备及存储介质
CN111046431B (zh) 数据处理方法、查询方法、装置、电子设备和系统
CN117421771A (zh) 一种面向结构化数据的可搜索加密方法、装置及电子设备
CN113254951B (zh) 一种数据处理方法及计算设备
CN114117487A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40029002

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant