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

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

Info

Publication number
CN110990829A
CN110990829A CN201911151159.2A CN201911151159A CN110990829A CN 110990829 A CN110990829 A CN 110990829A CN 201911151159 A CN201911151159 A CN 201911151159A CN 110990829 A CN110990829 A CN 110990829A
Authority
CN
China
Prior art keywords
node
current
feature
sample
array
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
CN201911151159.2A
Other languages
English (en)
Other versions
CN110990829B (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 CN201911151159.2A priority Critical patent/CN110990829B/zh
Publication of CN110990829A publication Critical patent/CN110990829A/zh
Application granted granted Critical
Publication of CN110990829B publication Critical patent/CN110990829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

在可信执行环境中训练GBDT模型的方法、装置及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种在可信执行环境中训练GBDT模型的方法、装置及设备。
背景技术
在互联网技术快速发展的背景下,对互联网中的数据挖掘工作变得越来越重要。通常,在数据挖掘中,通过机器学习基于标定数据进行建模,从而可使用训练好的模型处理待预测的数据。在多种机器学习算法中,GBDT(Gradient boosting decision tree,梯度提升决策树)算法由于其优异的学习性能,得到越来越广泛的应用。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为本说明书另一个实施例提供的在可信执行环境中训练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模型的每棵决策树的过程中,针对该决策树中的节点,可能会执行对应样本集分割的操作。为了达到节约存储空间的目的,本方案中,可以基于一个数组来表示样本与节点之间的归属关系。具体地,该一个数组可以包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。这里的N为正整数。
以上就是本说明书提供的发明构思,基于该发明构思就可以得到本方案,以下对本方案进行详细阐述。
图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个加密的特征值之后,可以对N个样本按照特征维度进行整理。经过整理之后,可以得到D维特征中每项特征对应于N个样本的N个加密的特征值。最后,可以将整理结果存放在内存中一块连续的地址空间中,这里的地址空间可以称为非可信区域。可以理解的是,基于上述地址空间的起始地址以及每个样本的维度(每个维度占用的内存空间大小确定),可以确定出每个样本的位置。在确定出每个样本的位置之后,再结合样本中各特征的排列顺序,可以针对某个特征,从上述地址空间中确定出各样本对应于该特征的加密的特征值。
需要说明的是,由于在后续的分割过程中通常要求特征值按照从小到大的顺序进行排序。因此,针对D维特征中每项特征的N个加密的特征值还可以进行排序。为了确定出排序后的每个加密的特征值对应的样本,可以以数组的形式存储每项特征的N个加密的特征值。具体地,数组中可以包括一个样本的加密的样本编号以及该样本对应于该项特征的加密的特征值。从而,针对D维特征中的每项特征,可以得到N个数组,其中,每个数组包括两个元素。
当然,如果D维特征中每项特征的N个加密的特征值原本就是排好序的,则不需要整理成数组形式,而直接可以将其存储在非可信区域中。
图2为本说明书一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,可以为图1a或者图1b中的服务器SGX。如图2所示,所述方法具体可以包括:
步骤202,将D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断。
上述当前决策树可以为GBDT模型中的多棵决策树中任一决策树。此外,当前节点可以为当前决策树中的任一节点。
上述步骤202中的节点分割判断具体可以包括:
步骤2022,将当前特征的加密的N个特征值从非可信区域加载到可信执行环境中,在可信执行环境中对其进行解密,得到当前特征的N个特征值。
在一个示例中,可以是读取当前特征对应的N个数组,每个数组包括一个样本的加密的样本编号以及该样本对应于当前特征的加密的特征值。在对N个数组解密之后,就可以得到当前特征的N个特征值。此外,还可以得到每个特征值对应的样本编号。
在另一个示例中,也可以直接从非可信区域中读取当前特征的加密的N个特征值。
步骤2024,将当前特征的N个特征值依次作为当前特征值,基于保存在可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中。
上述第一数组可以包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。此外,上述判断当前特征值对应的当前样本是否落入当前节点对应的样本集中可以包括:判断当前特征值对应的样本编号是否落入当前节点对应的样本集中。这里,当前特征值对应的样本编号是指与当前特征值属于同一数组的样本编号。
在一个示例中,N个元素中各个元素各自对应的样本的样本编号与各自的数组下标相对应。以元素对应的样本的样本编号与其数组下标相等为例来说,上述第一数组可以如图3所示。图3中,第一数组包括N个元素,每个元素与一个矩形框相对应,各矩形框内的数值为节点编号,每个矩形框下方的数值为样本编号。从图3中可以看出,各元素的样本编号与其数组下标相等。
步骤2024中,基于保存在可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中,包括:确定当前样本的样本编号对应的数组下标。基于确定的数组下标,在第一数组的N个元素中查找对应的元素。若查找的元素的元素值与当前节点的节点编号相等,则确定当前特征值对应的当前样本落入当前节点对应的样本集中。否则,确定当前特征值对应的当前样本未落入当前节点对应的样本集中。
以图3为例来说,假设当前样本的样本编号为i。由于在图3中,同一元素对应的样本编号与数组下标相等,因此,可以i为下标在第一数组中查找对应的元素。即查找到的元素的元素值为节点编号2。如果当前节点的节点编号为2,那么可以确定当前样本落入当前节点对应的样本集中。而如果当前节点的节点编号为3,那么可以确定当前样本未落入当前节点对应的样本集中。
步骤2026,若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割,基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
本说明书所述的样本集可以由若干样本编号组成。
需要说明的是,若将当前特征的每个特征值看作一个候选划分点的话,本说明书中针对每个特征,考察包含n-1个元素的候选划分点集合Ta,其具体可表示如下:
Ta={ai|1≤i≤n-1}
其中,Ta为当前特征,ai为Ta的第i个特征值,也可以称为第i个候选划分点,n为样本个数。
上述假定分割结果可以包括两个子样本集。步骤2026具体可以包括:基于当前节点对应的样本集以及两个子样本集,计算方差减少值。若计算得到的方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将当前特征作为当前节点的当前最佳分裂特征,将当前特征值作为当前节点的当前最佳特征阈值。
在一个示例中,上述基于当前节点对应的样本集以及两个子样本集,计算方差减少值,包括:基于当前节点对应的样本集中的样本编号对应的样本的残差,计算第一方差。分别基于两个子样本集中的样本编号对应的样本的残差,计算与两个子样本集各自对应的两个第二方差。对两个第二方差求和,以得到方差和。将第一方差与方差和之间的差值作为方差减少值。
上述就算公式可具体表示为如下公式:
Dre=D-(DL+DR) (公式1)
其中,Dre为方差减少值,D为第一方差,DL为一个第二方差,DR为另一个第二方差。这里的第一方差或者第二方差的计算公式可以如下:
Figure BDA0002283585280000101
其中,NUM为总样本数(如,图2中的N),Y为样本集或者子样本集中某样本的残差,
Figure BDA0002283585280000102
为样本集或者子样本集中各样本的残差的均值。这里样本的残差的计算方法后续说明。
需要说明的是,在上述例子中,Dre也可以称为不纯度减少值(其通常也可以看作是样本集基于当前特征及其某个候选划分点ai二分后的信息增益),D可以称为当前节点的不纯度,DL可以称为左子节点的不纯度,DR可以称为右子节点的不纯度。
还需要说明的是,如果判断当前特征值对应的当前样本未落入当前节点对应的样本集中,那么可以略过当前特征值,而对当前特征的下一特征值进行判断。由此,可以避免无效的假定分割,进而可以提升模型训练效率。
另外,上述步骤2026也可以看作是寻找信息增益最大的特征及其划分点的过程。这里,寻找到的划分点也可以称为最优划分点。
步骤204,在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点。
需要说明的是,在执行上述节点分割判断的过程中,上述当前特征以及当前特征值是不断更新的。随着当前特征以及当前特征值的更新,当前节点对应的当前最佳分裂特征和当前最佳特征阈值也是不断更新的,直至在基于D维特征中每项特征进行节点分割判断之后,当前节点对应的当前最佳分裂特征和当前最佳特征阈值才更新结束。因此,可以在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值。
可以理解的是,在确定出当前节点对应的分裂特征和特征阈值之后,就可以对当前节点对应的样本集进行分割。
在一个示例中,上述分割过程可以如下:将当前节点的分裂特征对应的N个数组从非可信区域加载到可信内存区域中,在可信内存区域中对其进行解密,得到分裂特征对应的N个数组。对于当前节点对应的样本集中的每个样本编号,从分裂特征对应的N个数组中查找包含该样本编号的目标数组,并将目标数组中的特征值与当前节点对应的特征阈值比较。基于比较结果将该样本编号分割到当前节点对应的子节点中,以生成当前节点对应的子节点。
步骤206,基于子节点的节点编号,对第一数组进行更新。
这里的子节点可以包括左子节点和右子节点。
在基于子节点的节点编号,对第一数组进行更新之前,可以先基于当前节点的节点编号以及第一函数,确定左子节点的节点编号。这里的第一函数的常数项可以为奇数。例如,第一函数可以为:y1=2x+1,其中,x为父节点的节点编号,y1为左子节点的节点编号。以及
可以基于当前节点的节点编号以及第二函数,确定右子节点的节点编号。这里的第二函数的常数项可以为偶数。例如,第二函数可以为:y2=2x+1,其中,x为父节点的节点编号,y2为右子节点的节点编号。
应理解,上述只是一种确定左右子节点的节点编号方式,在实际应用中,也可以通过其它方式来确定左右子节点的节点编号,例如,预先设定各节点的节点编号等,只需保证各节点的节点编号唯一即可。
在确定出左子节点的编号以及右子节点的编号之后,可以基于左子节点的节点编号和右子节点的节点编号,对第一数组进行更新。
上述对第一数组进行更新的过程可以为:对于样本集中被分割到左子节点的第一样本编号,确定对应的第一下标。将第一数组的N个元素中对应于第一下标的元素替换为左子节点的节点编号。以及,对于样本集中被分割到右子节点的第二样本编号,确定对应的第二下标。将第一数组的N个元素中对应于第二下标的元素替换为右子节点的节点编号。
以图3所示的第一数组为例来说,假设当前节点的节点编号为1,当前节点的左子节点的节点编号为2,当前节点的右子节点的节点编号为4。此外,还假设样本编号0被分割到左子节点中,样本编号N-1被分割到右子节点中。那么基于样本编号0可以确定下标0,之后可以将第一数组中下标0的元素(即1)替换为3。同理,基于样本编号N-1可以确定下标N-1,之后可以将第一数组中下标N-1的元素(即1)替换为4。更新后的第一数组可以如图4所示。
步骤208,基于更新后的第一数组,对下一节点进行节点分割判断,直至到达叶子节点。
可以理解的是,在执行完成步骤208之后,就完成了GBDT模型中一棵决策树中的一个分支的训练。在本说明书中,可以将一棵决策树中一个分支的训练称为GBDT模型的训练。
在到达叶子节点之后,对于当前决策树的每个叶子节点,可以基于该叶子节点对应的样本集中的样本编号对应的样本的标签值以及残差,确定该叶子节点的目标值。
在一个示例中,各样本的标签值通过以下步骤获得:可以将非可信区域中存储的N个样本各自的加密的标签值加载到可信执行环境中。在可信执行环境中,对N个加密的标签值进行解密,得到解密后的N个标签值。
在得到上述解密后的N个标签值之后,可以基于如下公式计算N个样本各自的残差。
Figure BDA0002283585280000131
其中,
Figure BDA0002283585280000132
为样本i的残差,yi为样本i的标签值,F(xi)为样本i在已完成训练的各棵决策树中被分割到的叶子节点的目标值的累加和。
上述确定每个叶子节点的目标值的步骤具体可以为:对于当前决策树的每个叶子节点,基于该叶子节点的节点编号,从第一数组的N个元素中确定出目标元素。该目标元素的元素值等于叶子节点的节点编号。基于目标元素的数组下标,确定落入该叶子节点对应的样本集中的样本编号。基于确定的样本编号对应的样本的标签值以及残差,计算该叶子节点的目标值。
举例来说,假设在到达叶子节点之后,第一数组中的各元素如图5所示。那么对于节点编号为6的叶子节点,从第一数组中确定出的目标元素的元素值可以为6。从图5中可以看出,该目标元素的数组下标为1和i。因此,可以将节点编号为6的叶子节点对应的样本集中的样本编号确定为:1和i。之后,可以基于样本编号为1和i的样本的标签值和残差,计算节点编号为6的叶子节点的目标值。
在一个示例中,可以基于如下公式计算各叶子节点的目标值。
Figure BDA0002283585280000133
其中,γjm为决策树m中叶子节点j的目标值,
Figure BDA0002283585280000134
为样本i的残差,yi为样本i的标签值。
在计算得到当前决策树的各叶子节点的目标值后,当前决策树的训练过程结束,并进入下一决策树的训练过程,如此多次循环,直至完成最后一棵决策树的训练,至此DBDT模型的训练过程结束。
本方案中,第一数组占用空间的大小可以为:N*元素占用空间大小,其中,N为样本数。元素占用空间的大小可以根据决策树中节点的个数灵活调整。举例来说,假设某一决策树中节点的个数不超过256个,那么每个元素占用空间的大小可以为1个字节(Byte)。因为1个字节=8bit,从而每个元素可以对应28=256个不同的值,每个值可以表示256个节点中1个节点的节点编号。可以理解的是,当元素占用空间的大小为4个字节(Byte)时,那么每个元素可以表示232个不同的节点。因为决策树中节点的个数一般不会超过232个。因此,上述第一数组占用空间的大小不会超过N*4B。
需要说明的是,因第一数组具有指定大小,所以可以一直被保存在可信执行环境中。此外,基于本说明书所述的第一数组,可以在节约存储空间的情况下,有效表示样本与节点之间的归属关系,进而可以确保GBDT模型训练过程在可信执行环境中的有效进行。
图6为本说明书另一个实施例提供的在可信执行环境中训练GBDT模型的方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,可以为图1a或者图1b中的服务器SGX。如图6所示,所述方法具体可以包括:
步骤602,将D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中当前层级中的各个节点进行节点分割判断。
上述当前决策树可以为GBDT模型中的多棵决策树中任一决策树。此外,当前层级可以为当前决策树的任一层级。
上述步骤602中的节点分割判断具体可以包括:
步骤6022,将当前特征的加密的N个特征值从非可信区域加载到可信执行环境中,在可信执行环境中对其进行解密,得到当前特征的N个特征值。
步骤6024,将当前特征的N个特征值依次作为当前特征值,基于保存在可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前层级中任意的第一节点对应的样本集中。
这里的第一数组包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。该第一数组可以如图3所示。
步骤6026,若是,则基于当前特征以及当前特征值,对第一节点对应的样本集进行假定分割,基于假定分割结果,确定第一节点的当前最佳分裂特征和当前最佳特征阈值。
步骤604,在基于D维特征中每项特征进行节点分割判断之后,将当前层级的各个节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对各个节点各自对应的样本集进行分割,生成下一层级节点。
可选地,在针对当前层级的每个节点,进行样本集分割之时或者之后,可以确定该节点对应的左子节点和右子节点的节点编号并记录。具体确定方法同上所述,在此不复赘述。
当然,在实际应用,每个节点对应的左右子节点的编号也可以预先设定,本说明书对此不作限定。
步骤606,基于下一层级节点的节点编号,对第一数组进行更新。
可以理解的是,这里的下一层级节点可以由上述当前层级的各个节点的左子节点和/或右子节点构成。因此,这里对第一数组更新的过程可以是指:针对上述当前层级的每个节点,将该节点的编号替换为预先记录的左子节点或者右子节点编号。具体替换过程可参见步骤208的前一段落所述,在此不复赘述。
步骤608,基于更新后的第一数组,对下一层级节点进行节点分割判断,直至到达叶子节点。
综上,本说明书实施例提供的在可信执行环境中训练GBDT模型的方法,可以在节约存储空间的情况下,有效表示样本与节点之间的归属关系,进而可以确保GBDT模型训练过程在可信执行环境中的有效进行。
与上述在可信执行环境中训练GBDT模型的方法对应地,本说明书实施例还提供的一种在可信执行环境中训练GBDT模型的装置,该GBDT模型包括多棵决策树,每棵决策树中的各个节点具有对应的节点编号。该装置基于N个具有D维特征的样本实施,D维特征中每项特征对应于N个样本的N个特征值以加密的形式保存在非可信区域中。如图7所示,该装置可以包括:
判断单元702,用于将D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断。
判断单元702具体可以包括:
解密子单元7022,用于将当前特征的加密的N个特征值从非可信区域加载到可信执行环境中,在可信执行环境中对其进行解密,得到当前特征的N个特征值。
确定子单元7024,用于将解密子单元7022解密得到的当前特征的N个特征值依次作为当前特征值,基于保存在可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中。第一数组包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割。基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
其中,N个元素中各个元素各自对应的样本的样本编号与各自的数组下标相对应。
分割单元704,用于在基于D维特征中每项特征进行判断单元702执行的节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点。
更新单元706,用于基于子节点的节点编号,对第一数组进行更新。
判断单元702,还用于基于更新单元706更新后的第一数组,对下一节点进行节点分割判断,直至到达叶子节点。
确定子单元7024还具体可以用于:
确定当前样本的样本编号对应的数组下标。
基于确定的数组下标,在第一数组的N个元素中查找对应的元素。
若查找的元素的元素值与当前节点的节点编号相等,则确定当前特征值对应的当前样本落入当前节点对应的样本集中。否则,确定当前特征值对应的当前样本未落入当前节点对应的样本集中。
可选地,当前节点的子节点可以包括左子节点和右子节点。
确定子单元7024,还用于基于当前节点的节点编号以及第一函数,确定左子节点的节点编号,这里的第一函数的常数项可以为奇数。以及
基于当前节点的节点编号以及第二函数,确定右子节点的节点编号,这里的第二函数的常数项为偶数。
更新单元706具体可以用于:
基于左子节点的节点编号和右子节点的节点编号,对第一数组进行更新。
更新单元706还具体可以用于:
对于样本集中被分割到左子节点的第一样本编号,确定对应的第一下标。将第一数组的N个元素中对应于第一下标的元素替换为左子节点的节点编号。以及对于样本集中被分割到右子节点的第二样本编号,确定对应的第二下标。将第一数组的N个元素中对应于第二下标的元素替换为右子节点的节点编号。
可选地,该装置还可以包括:计算单元(图中未示出)。
确定子单元7024,还用于对于当前决策树的每个叶子节点,基于叶子节点的节点编号,从第一数组的N个元素中确定出目标元素,目标元素的元素值等于叶子节点的节点编号。
确定子单元7024,还用于基于目标元素的数组下标,确定落入叶子节点对应的样本集中的样本编号。
计算单元,用于基于确定子单元7024确定的样本编号对应的样本的标签值以及残差,计算叶子节点的目标值。
可选地,上述假定分割结果可以包括两个子样本集。
确定子单元7024具体可以用于:
基于样本集以及两个子样本集,计算方差减少值。
若方差减少值大于当前节点的当前方差减少值,则将当前方差减少值更新为计算得到的方差减少值,以及将当前特征作为当前节点的当前最佳分裂特征,将当前特征的特征值作为当前节点的当前最佳特征阈值。
确定子单元7024还具体可以用于:
基于样本集中的样本编号对应的样本的残差,计算第一方差。
分别基于两个子样本集中的样本编号对应的样本的残差,计算与两个子样本集各自对应的两个第二方差。
对两个第二方差求和,以得到方差和。
将第一方差与方差和之间的差值作为方差减少值。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置,可以在节约存储空间的情况下,有效表示样本与节点之间的归属关系,进而可以确保GBDT模型训练过程在可信执行环境中的有效进行。
本说明书一个实施例提供的在可信执行环境中训练GBDT模型的装置可以为图1a或者图1b中服务器SGX中的一个模块或者单元。
与上述在可信执行环境中训练GBDT模型的方法对应地,本说明书实施例还提供了一种在可信执行环境中训练GBDT模型的设备,如图8所示,该设备可以包括:存储器802、一个或多个处理器804以及一个或多个程序。其中,该一个或多个程序存储在存储器802中,并且被配置成由一个或多个处理器604执行,该程序被处理器804执行时实现以下步骤:
将D维特征中的每项特征依次作为当前特征,基于当前特征对当前决策树中的当前节点进行节点分割判断,该节点分割判断包括:
将当前特征的加密的N个特征值从非可信区域加载到可信执行环境中,在可信执行环境中对其进行解密,得到当前特征的N个特征值。
将当前特征的N个特征值依次作为当前特征值,基于保存在可信执行环境中的第一数组,判断当前特征值对应的当前样本是否落入当前节点对应的样本集中。第一数组包括对应于N个样本的N个元素,每个元素用于表示对应样本当前落入对应样本集的节点的节点编号。
若是,则基于当前特征以及当前特征值,对当前节点对应的样本集进行假定分割。基于假定分割结果,确定当前节点的当前最佳分裂特征和当前最佳特征阈值。
在基于D维特征中每项特征进行节点分割判断之后,将当前节点对应的当前最佳分裂特征和当前最佳特征阈值作为其分裂特征和特征阈值,对当前节点对应的样本集进行分割,生成当前节点对应的子节点。
基于子节点的节点编号,对第一数组进行更新。
基于更新后的第一数组,对下一节点进行节点分割判断,直至到达叶子节点。
本说明书一个实施例提供的在可信执行环境中训练GBDT模型的设备,可以在节约存储空间的情况下,有效表示样本与节点之间的归属关系,进而可以确保GBDT模型训练过程在可信执行环境中的有效进行。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (17)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN110990829A true CN110990829A (zh) 2020-04-10
CN110990829B CN110990829B (zh) 2021-09-28

Family

ID=70085771

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN110990829B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737719A (zh) * 2020-07-17 2020-10-02 支付宝(杭州)信息技术有限公司 保护隐私的文本分类方法及装置
CN111738450A (zh) * 2020-05-21 2020-10-02 平安科技(深圳)有限公司 基于模型训练的节点解析方法、装置、设备及存储介质
CN115756846A (zh) * 2022-11-17 2023-03-07 抖音视界有限公司 模型训练方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130303154A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
CN105718493A (zh) * 2014-12-05 2016-06-29 阿里巴巴集团控股有限公司 基于决策树的搜索结果排序方法及其装置
US20170169231A1 (en) * 2014-12-23 2017-06-15 Intel Corporation Technologies for enhanced user authentication using advanced sensor monitoring
CN108536650A (zh) * 2018-04-03 2018-09-14 北京京东尚科信息技术有限公司 生成梯度提升树模型的方法和装置
CN108665277A (zh) * 2017-03-27 2018-10-16 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN108681750A (zh) * 2018-05-21 2018-10-19 阿里巴巴集团控股有限公司 Gbdt模型的特征解释方法和装置
CN109034398A (zh) * 2018-08-10 2018-12-18 深圳前海微众银行股份有限公司 基于联邦训练的特征选择方法、装置及存储介质
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质
CN109416721A (zh) * 2016-06-22 2019-03-01 微软技术许可有限责任公司 隐私保护机器学习
CN110222527A (zh) * 2019-05-22 2019-09-10 暨南大学 一种隐私保护方法
CN110232448A (zh) * 2019-04-08 2019-09-13 华南理工大学 提高梯度提升树模型的特征值作用和防止过拟合的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130303154A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
CN105718493A (zh) * 2014-12-05 2016-06-29 阿里巴巴集团控股有限公司 基于决策树的搜索结果排序方法及其装置
US20170169231A1 (en) * 2014-12-23 2017-06-15 Intel Corporation Technologies for enhanced user authentication using advanced sensor monitoring
CN109416721A (zh) * 2016-06-22 2019-03-01 微软技术许可有限责任公司 隐私保护机器学习
CN108665277A (zh) * 2017-03-27 2018-10-16 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN108536650A (zh) * 2018-04-03 2018-09-14 北京京东尚科信息技术有限公司 生成梯度提升树模型的方法和装置
CN108681750A (zh) * 2018-05-21 2018-10-19 阿里巴巴集团控股有限公司 Gbdt模型的特征解释方法和装置
CN109034398A (zh) * 2018-08-10 2018-12-18 深圳前海微众银行股份有限公司 基于联邦训练的特征选择方法、装置及存储介质
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质
CN110232448A (zh) * 2019-04-08 2019-09-13 华南理工大学 提高梯度提升树模型的特征值作用和防止过拟合的方法
CN110222527A (zh) * 2019-05-22 2019-09-10 暨南大学 一种隐私保护方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
QINBIN LI 等: "A Survey on Federated Learning Systems:Vision, Hype and Reality for Data Privacy and Protection", 《MACHINE LEARNING》 *
江佳伟 等: "面向高维特征和多分类的分布式梯度提升树", 《软件学报》 *
陈启伟 等: "基于Ext-GBDT集成的类别不平衡信用评分模型", 《计算机应用研究》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111738450A (zh) * 2020-05-21 2020-10-02 平安科技(深圳)有限公司 基于模型训练的节点解析方法、装置、设备及存储介质
CN111738450B (zh) * 2020-05-21 2024-05-28 平安科技(深圳)有限公司 基于模型训练的节点解析方法、装置、设备及存储介质
CN111737719A (zh) * 2020-07-17 2020-10-02 支付宝(杭州)信息技术有限公司 保护隐私的文本分类方法及装置
CN115756846A (zh) * 2022-11-17 2023-03-07 抖音视界有限公司 模型训练方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110990829B (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
JP5975490B2 (ja) 検索システム、検索方法、およびプログラム
CN110990829B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
US9438412B2 (en) Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
US9942032B1 (en) Systems and methods for securely detecting data similarities
JP4455661B2 (ja) エクスパンダグラフからのハッシュ関数構築
US20180011996A1 (en) Secret shared random access machine
US11177944B1 (en) Method and system for confidential string-matching and deep packet inspection
CN110851481B (zh) 一种可搜索加密方法、装置、设备及可读存储介质
CN112100680B (zh) 保护隐私的多平台数据处理方法及装置
US10083194B2 (en) Process for obtaining candidate data from a remote storage server for comparison to a data to be identified
EP3497613A1 (en) Protected indexing and querying of large sets of textual data
CN112073444B (zh) 数据集的处理方法、装置和服务器
CN111126628B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
CN115905633A (zh) 一种隐私保护的图相似性检索方法及系统
CN112100677B (zh) 隐私数据的保护方法、装置及电子设备
CN111091197B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
JPWO2017168798A1 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
Gaikwad et al. Privacy preserving outsourced k nearest neighbors classification: comprehensive study
Bag et al. A New Leakage Resilient Symmetric Searchable Encryption Scheme for Phrase Search.
CN114095236B (zh) 密钥查找方法、装置、计算设备及存储介质
CN116881866A (zh) Sdk工具数据处理方法、装置和计算机设备
CN117951730A (zh) 一种基于哈希索引的云端安全可搜索加密方法
CN117910055A (zh) 芯片数据的加密传输方法、装置、芯片和存储介质
Khan et al. Secure and efficient retrieval of video file using bloom filter and hybrid encryption algorithms

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: 40026934

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant