一种基于树模型的预测方法和装置转让专利

申请号 : CN201911040223.X

文献号 : CN110795603B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈超超王力周俊

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例提供了一种保护隐私的树模型构建方法和装置及基于该树模型的预测方法和装置,所述构建方法包括:从至少两个数据方各自的设备获取M组分裂结果,M组分裂结果与M个特征分别对应;记录M组分裂结果各自对应的数据方;基于N个样本各自的标签值,分别计算各个分裂结果的分裂增益;获取具有最大分裂增益的分裂结果作为最优分裂结果;在最优分裂结果的分裂增益为正值的情况中,确定最优分裂结果对应的数据方;在对应的数据方为第二数据方的情况中,将最优分裂结果发送给第二数据方的设备,并记录第一节点与第二数据方的对应关系;对第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。

权利要求 :

1.一种树模型构建方法,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述方法由所述第一数据方的设备相对于所述第一节点执行,包括:从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;

记录所述M组分裂结果各自对应的数据方;

基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益;

获取具有最大分裂增益的分裂结果作为最优分裂结果;

在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;

在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;

对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。

2.根据权利要求1所述的方法,其中,所述M组分裂结果中的每组分裂结果包括与相应特征对应的P个分裂结果,其中P基于N个样本中包括的该相应特征的非重复的特征值的个数确定。

3.根据权利要求1所述的方法,还包括,通知至少两个数据方中除了所述第一数据方和所述第二数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。

4.根据权利要求1所述的方法,其中,所述第一数据方还具有N个样本各自的第一特征的特征值,所述方法还包括,在所述对应的数据方是所述第一数据方的情况中,并且,在确定所述最优分裂结果为与第一特征对应的分裂结果的情况中,将所述第一特征确定为所述第一节点对应的特征,并将所述最优分裂结果对应的分裂值确定为所述第一节点的第一特征的分裂值,并通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注,并相应地更新所述第一树的树结构。

5.根据权利要求1所述的方法,还包括,在所述最优分裂结果的分裂增益小于等于零的情况中,基于所述N个样本各自的标签值计算所述第一节点对应的分值,并通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注。

6.根据权利要求1所述的方法,其中,所述第一树为所述树模型中的第t棵树,其中,基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益包括,基于N个样本各自的标签值以及预先获取的所述树模型的第t-1棵树,分别计算所述M组分裂结果中各个分裂结果的分裂增益。

7.根据权利要求1所述的方法,其中,所述M组分裂结果中包括从至少两个数据方各自的设备分别接收的重合的至少两个分裂结果,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方包括,在基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果为与至少两个数据方对应的情况中,从所述至少两个数据方中随机确定一个数据方,作为所述最优分裂结果对应的数据方。

8.根据权利要求1所述的方法,其中,所述树模型为以下任一种树模型:Xgboost模型、GBDT模型、随机森林。

9.一种基于树模型的预测方法,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备中都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述方法由第一数据方的设备执行,包括:从模型请求方的设备接收针对第一对象的模型使用请求;

对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;

在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;

从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。

10.根据权利要求9所述的方法,其中,所述第一数据方的设备中记录有所述第一父节点对应于第一特征及相应的特征分裂值,所述第一数据方的设备中还具有所述第一对象的第一特征的特征值,所述方法还包括,在确定所述第一父节点对应的数据方为所述第一数据方的情况中,基于所述第一父节点的特征分裂值和所述第一对象的第一特征的特征值,将所述第一对象划分到所述第一父节点的一个子节点中。

11.根据权利要求10所述的方法,其中,所述第一数据方的设备中还记录有所述树模型中各个叶子节点的分值,所述划分结果将所述第一对象划分到所述第一父节点的第一子节点中,所述第一子节点为叶子节点,所述方法还包括,将该第一子节点的分值作为预测结果发送给所述模型请求方的设备。

12.一种树模型构建装置,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述装置相对于所述第一节点被部署在所述第一数据方的设备中,包括:第一获取单元,配置为,从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;

记录单元,配置为,记录所述M组分裂结果各自对应的数据方;

第一计算单元,配置为,基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益;

第二获取单元,配置为,获取具有最大分裂增益的分裂结果作为最优分裂结果;

第一确定单元,配置为,在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;

发送单元,配置为,在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;

标注单元,配置为,对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。

13.根据权利要求12所述的装置,其中,所述M组分裂结果中的每组分裂结果包括与相应特征对应的P个分裂结果,其中P基于N个样本中包括的该相应特征的非重复的特征值的个数确定。

14.根据权利要求12所述的装置,还包括,第一通知单元,配置为,通知至少两个数据方中除了所述第一数据方和所述第二数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注,并相应地更新所述第一树的树结构。

15.根据权利要求12所述的装置,其中,所述第一数据方还具有N个样本各自的第一特征的特征值,所述装置还包括,第二确定单元,配置为,在所述对应的数据方是所述第一数据方的情况中,并且,在确定所述最优分裂结果为与第一特征对应的分裂结果的情况中,将所述第一特征确定为所述第一节点对应的特征,并将所述最优分裂结果对应的分裂值确定为所述第一节点的第一特征的分裂值,第二通知单元,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。

16.根据权利要求12所述的装置,还包括,第二计算单元,配置为,在所述最优分裂结果的分裂增益小于等于零的情况中,基于所述N个样本各自的标签值计算所述第一节点对应的分值,以及,第三通知单元,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注。

17.根据权利要求12所述的装置,其中,所述第一树为所述树模型中的第t棵树,其中,所述第一计算单元还配置为,基于N个样本各自的标签值以及预先获取的所述树模型的第t-1棵树,分别计算所述M组分裂结果中各个分裂结果的分裂增益。

18.根据权利要求12所述的装置,其中,所述M组分裂结果中包括从至少两个数据方各自的设备分别接收的重合的至少两个分裂结果,所述第一确定单元还配置为,在基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果为与至少两个数据方对应的情况中,从所述至少两个数据方中随机确定一个数据方,作为所述最优分裂结果对应的数据方。

19.根据权利要求12所述的装置,其中,所述树模型为以下任一种树模型:Xgboost模型、GBDT模型、随机森林。

20.一种基于树模型的预测装置,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备中都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述装置部署在第一数据方的设备中,包括:第一接收单元,配置为,从模型请求方的设备接收针对第一对象的模型使用请求;

确定单元,配置为,对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;

通知单元,配置为,在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;

第二接收单元,配置为,从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。

21.根据权利要求20所述的装置,其中,所述第一数据方的设备中记录有所述第一父节点对应于第一特征及相应的特征分裂值,所述第一数据方的设备中还具有所述第一对象的第一特征的特征值,所述装置还包括,划分单元,配置为,在确定所述第一父节点对应的数据方为所述第一数据方的情况中,基于所述第一父节点的特征分裂值和所述第一对象的第一特征的特征值,将所述第一对象划分到所述第一父节点的一个子节点中。

22.根据权利要求21所述的装置,其中,所述第一数据方的设备中还记录有所述树模型中各个叶子节点的分值,所述划分结果将所述第一对象划分到所述第一父节点的第一子节点中,所述第一子节点为叶子节点,所述装置还包括,发送单元,配置为,将该第一子节点的分值作为预测结果发送给所述模型请求方的设备。

23.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。

24.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。

说明书 :

一种基于树模型的预测方法和装置

技术领域

[0001] 本说明书实施例涉及机器学习技术领域,更具体地,涉及一种树模型构建方法和装置、以及一种基于树模型的预测方法和装置。

背景技术

[0002] 能够保护数据安全的机器学习是当前广泛关注的技术问题。即,多个数据方拥有自己的数据,在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用。线性回归/逻辑回归树模型是工业界广为使用的回归/分类模型。在使用情况下往往面临如下的问题:多个数据方拥有自己的数据,他们想共同使用彼此的数据来统一建模树模型,如Xgboos t或GBDT模型,但并不想把各自的数据提供给对方。例如,假设有两个数据方A和B,多个数据方也类似,对于一条样本而言,每个数据方拥有各自的特征,即x_A和x_B。同时其中一方拥有该样本的标签,即y。比如,对于样本1,A拥有该样本1的特征 及标签y1,B拥有该样本1的特征 在现有技术中,如果使用A拥有的特征 及标签y1、以及B拥有的特征共同建模树模型,将会使得将A拥有的数据公开给B、将B拥有的数据公开给A。
[0003] 因此,需要一种更有效的保护隐私的树模型构建和使用方案。

发明内容

[0004] 本说明书实施例旨在提供一种更有效的保护隐私的树模型构建和使用方案,以解决现有技术中的不足。
[0005] 为实现上述目的,本说明书一个方面提供一种树模型构建方法,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述方法由所述第一数据方的设备相对于所述第一节点执行,包括:
[0006] 从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;
[0007] 记录所述M组分裂结果各自对应的数据方;
[0008] 基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益;
[0009] 获取具有最大分裂增益的分裂结果作为最优分裂结果;
[0010] 在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;
[0011] 在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;
[0012] 对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。
[0013] 在一个实施例中,所述M组分裂结果中的每组分裂结果包括与相应特征对应的P个分裂结果,其中P基于N个样本中包括的该相应特征的非重复的特征值的个数确定。
[0014] 在一个实施例中,所述方法还包括,通知至少两个数据方中除了所述第一数据方和所述第二数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。
[0015] 在一个实施例中,所述第一数据方还具有N个样本各自的第一特征的特征值,所述方法还包括,在所述对应的数据方是所述第一数据方的情况中,并且,在确定所述最优分裂结果为与第一特征对应的分裂结果的情况中,将所述第一特征确定为所述第一节点对应的特征,并将所述最优分裂结果对应的分裂值确定为所述第一节点的第一特征的分裂值,并通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注,并相应地更新所述第一树的树结构。
[0016] 在一个实施例中,所述方法还包括,在所述最优分裂结果的分裂增益小于等于零的情况中,基于所述N个样本各自的标签值计算所述第一节点对应的分值,并通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注。
[0017] 在一个实施例中,所述第一树为所述树模型中的第t棵树,其中,基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益包括,基于N个样本各自的标签值以及预先获取的所述树模型的第t-1棵树,分别计算所述M组分裂结果中各个分裂结果的分裂增益。
[0018] 在一个实施例中,所述M组分裂结果中包括从至少两个数据方各自的设备分别接收的重合的至少两个分裂结果,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方包括,在基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果为与至少两个数据方对应的情况中,从所述至少两个数据方中随机确定一个数据方,作为所述最优分裂结果对应的数据方。
[0019] 在一个实施例中,所述树模型为以下任一种树模型:Xgboost模型、GBDT模型、随机森林。
[0020] 本说明书另一方面提供一种基于树模型的预测方法,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备中都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述方法由第一数据方的设备执行,包括:
[0021] 从模型请求方的设备接收针对第一对象的模型使用请求;
[0022] 对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;
[0023] 在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;
[0024] 从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。
[0025] 在一个实施例中,所述第一数据方的设备中记录有所述第一父节点对应于第一特征及相应的特征分裂值,所述第一数据方的设备中还具有所述第一对象的第一特征的特征值,所述方法还包括,在确定所述第一父节点对应的数据方为所述第一数据方的情况中,基于所述第一父节点的特征分裂值和所述第一对象的第一特征的特征值,将所述第一对象划分到所述第一父节点的一个子节点中。
[0026] 在一个实施例中,所述第一数据方的设备中还记录有所述树模型中各个叶子节点的分值,所述划分结果将所述第一对象划分到所述第一父节点的第一子节点中,所述第一子节点为叶子节点,所述方法还包括,将该第一子节点的分值作为预测结果发送给所述模型请求方的设备。
[0027] 本说明书另一方面提供一种树模型构建装置,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述装置相对于所述第一节点被部署在所述第一数据方的设备中,包括:
[0028] 第一获取单元,配置为,从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;
[0029] 记录单元,配置为,记录所述M组分裂结果各自对应的数据方;
[0030] 第一计算单元,配置为,基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益;
[0031] 第二获取单元,配置为,获取具有最大分裂增益的分裂结果作为最优分裂结果;
[0032] 第一确定单元,配置为,在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;
[0033] 发送单元,配置为,在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;
[0034] 标注单元,配置为,对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。
[0035] 在一个实施例中,所述装置还包括,第一通知单元,配置为,通知至少两个数据方中除了所述第一数据方和所述第二数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注,并相应地更新所述第一树的树结构。
[0036] 在一个实施例中,所述第一数据方还具有N个样本各自的第一特征的特征值,所述装置还包括,第二确定单元,配置为,在所述对应的数据方是所述第一数据方的情况中,并且,在确定所述最优分裂结果为与第一特征对应的分裂结果的情况中,将所述第一特征确定为所述第一节点对应的特征,并将所述最优分裂结果对应的分裂值确定为所述第一节点的第一特征的分裂值,第二通知单元,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。
[0037] 在一个实施例中,所述装置还包括,第二计算单元,配置为,在所述最优分裂结果的分裂增益小于等于零的情况中,基于所述N个样本各自的标签值计算所述第一节点对应的分值,以及,第三通知单元,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注。
[0038] 在一个实施例中,所述第一树为所述树模型中的第t棵树,其中,所述第一计算单元还配置为,基于N个样本各自的标签值以及预先获取的所述树模型的第t-1棵树,分别计算所述M组分裂结果中各个分裂结果的分裂增益。
[0039] 在一个实施例中,所述M组分裂结果中包括从至少两个数据方各自的设备分别接收的重合的至少两个分裂结果,所述第一确定单元还配置为,在基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果为与至少两个数据方对应的情况中,从所述至少两个数据方中随机确定一个数据方,作为所述最优分裂结果对应的数据方。
[0040] 本说明书另一方面提供一种基于树模型的预测装置,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备中都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述装置部署在第一数据方的设备中,包括:
[0041] 第一接收单元,配置为,从模型请求方的设备接收针对第一对象的模型使用请求;
[0042] 确定单元,配置为,对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;
[0043] 通知单元,配置为,在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;
[0044] 第二接收单元,配置为,从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。
[0045] 在一个实施例中,所述第一数据方的设备中记录有所述第一父节点对应于第一特征及相应的特征分裂值,所述第一数据方的设备中还具有所述第一对象的第一特征的特征值,所述装置还包括,划分单元,配置为,在确定所述第一父节点对应的数据方为所述第一数据方的情况中,基于所述第一父节点的特征分裂值和所述第一对象的第一特征的特征值,将所述第一对象划分到所述第一父节点的一个子节点中。
[0046] 在一个实施例中,所述第一数据方的设备中还记录有所述树模型中各个叶子节点的分值,所述划分结果将所述第一对象划分到所述第一父节点的第一子节点中,所述第一子节点为叶子节点,所述装置还包括,发送单元,配置为,将该第一子节点的分值作为预测结果发送给所述模型请求方的设备。
[0047] 本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
[0048] 本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
[0049] 通过根据本说明书实施例的树模型构建方案,可以使用多个数据方的数据共同构建树模型,同时保护各个数据方的数据不泄露给其它数据方,在扩充了用于构建树模型的数据量,增加树模型的预测准确率的同时,保护了各个数据方的数据安全。

附图说明

[0050] 通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
[0051] 图1示出根据本说明书实施例的保护隐私的树模型构建和使用系统的示意图;
[0052] 图2示出根据本说明书实施例的一种保护隐私的树模型构建方法;
[0053] 图3示意示出了在经过图2所示的树模型构建过程之后数据方A、B、C各方拥有的模型数据;
[0054] 图4示出根据本说明书实施例的一种基于树模型的预测方法;
[0055] 图5示出根据本说明书实施例的一种保护隐私的树模型构建装置500;
[0056] 图6示出根据本说明书实施例的一种基于树模型的预测装置600。

具体实施方式

[0057] 下面将结合附图描述本说明书实施例。
[0058] 图1示出根据本说明书实施例的保护隐私的树模型构建和使用系统的示意图。该系统包括至少两个数据方,图中示意示出了三个数据方,数据方A、数据方B和数据方C。该三个数据方使用其各自拥有的数据(图中示出为数据1~数据3)共同构建并使用树模型。例如,数据方A、B、C分别为银行、保险机构、平台,其用户中可能具有多个共同的用户(例如用户a、b、c、d、e),所不同的是,数据方A(例如银行)具有各个用户的特征1的特征值(例如存款余额)、数据方B(保险机构)具有各个用户的特征2的特征值(例如保险金额),数据方C(例如平台)具有各个用户的特征3的特征值(例如消费金额)和标签值(例如是否购买特定商品),从而,数据方A、B、C可基于其各自的数据共同构建树模型,其中构建样本包括一个用户的各个特征的特征值及标签值。由于在树模型的节点中确定分裂值时需要用到样本标签值,因此,由拥有标签值的一方(即数据方C)主导模型的构建和使用过程。
[0059] 在模型构建过程中,例如,针对模型的根节点,数据方A基于各个用户的特征1的特征值,获取对a、b、c、d、e五个用户的6个分裂结果,并将该6个分裂结果发送给数据方C;数据方B基于各个用户的特征2的特征值,获取对a、b、c、d、e五个用户的6个分裂结果,并将该6个分裂结果发送给数据方C;数据方C基于各个用户的特征3的特征值,获取对a、b、c、d、e五个用户的6个分裂结果,并计算上述共18个分裂结果各自的增益值,从而获取增益最大的最优分裂结果。之后,如果该增益值大于0,且如果该最优分裂结果不是出自数据方C自身获取的6个分裂结果,则数据方C将最优分裂结果发送给该分裂结果对应的一方(例如A方),以使得A方更新自己的树模型。例如,数据方A更新该节点对应的特征和相应的特征分裂值,并在树结构中增加该节点的两个子节点。同时,数据方C将自己的树模型中的该节点标注为空节点,并相应地更新树结构。
[0060] 在通过上述方式构建好树模型之后,各个数据方都具有相同的树结构,所不同的是,各个数据方具有相应节点的节点数据,例如,根节点与数据方A的特征1对应,则数据方A具有根节点的节点数据(如节点对应的特征、特征分裂值),而数据方B和数据方C仅将树模型中的根节点标注为空(dummy)节点,也就是说,数据方B和数据方C都未获取数据方A的数据。在通过该树模型进行预测时,例如模型请求方希望对第一用户进行预测,而数据方A具有第一用户的特征1的特征值,数据方B具有第一用户的特征2的特征值,数据方C具有第一用户的特征3的特征值。在该情况中,由数据方C主导该预测过程,模型请求方向数据方C发送模型请求,数据方C从根节点开始对第一用户进行预测,例如,数据方C处记录了根节点与数据方A相对应,则数据方C基于该记录通知数据方A在根节点对第一用户进行预测,从而数据方A使用第一用户的特征1的特征值和根节点处的第一特征的分裂值,将第一用户分到根节点的下一个子节点中,如果该下一个子节点为叶子节点,则数据方A将该划分结果发送给数据方C,数据方可将该叶子节点的分值作为模型预测值发送给模型请求方,如果该下一个子节点为与数据方C对应的节点,则由数据方C继续进行在该子节点中对第一用户的划分。
[0061] 可以理解,图1所示的根据本说明书实施例的系统仅仅是示意性的,而不是限定性的。例如,所述样本不限于为各个用户的数据,在各个数据方为各个购物平台且具有共同的商品的情况中,所述样本也可以为所述各个购物平台共同具有的商品的数据。下文中,将以各个用户的数据样本为例进行描述。
[0062] 下面将详细描述根据本说明书实施例的保护隐私的树模型构建方案和使用方案。
[0063] 图2示出根据本说明书实施例的一种树模型构建方法,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述方法由所述第一数据方的设备相对于所述第一节点执行,包括:
[0064] 步骤S202,从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;
[0065] 步骤S204,记录所述M组分裂结果各自对应的数据方;
[0066] 步骤S206,基于N个样本各自的标签值,分别计算所述M组分裂结果各自的分裂增益;
[0067] 步骤S208,获取具有最大分裂增益的分裂结果作为最优分裂结果;
[0068] 步骤S210,在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;
[0069] 步骤S212,在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;
[0070] 步骤S214,对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。
[0071] 首先,在步骤S202,从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果。
[0072] 如上文所述,例如数据方A、数据方B和数据方C具有共同的用户a、b、c、d、e,其中,数据方A具有各个用户的特征1(f1)的特征值(xa1、xb1、xc1、xd1、xe1),数据方B具有各个用户的特征2(f2)的特征值(xa2、xb2、xc2、xd2、xe2),数据方C具有各个用户的特征3(f3)的特征值(xa3、xb3、xc3、xd3、xe3)和标签值(ya、yb、yc、yd、ye)。同样如上文所述,假设数据方A为银行,f1为存款余额,数据方B为保险机构,f2为保险金额,数据方C为平台,f3为消费金额,标签值指示用户是否购买特定商品。例如,假设,(xa1、xb1、xc1、xd1、xe1)=(10,15,13,12,16),(xa2、xb2、xc2、xd2、xe2)=(7,9,8,6,10),(xa3、xb3、xc3、xd3、xd3)=(5,3,4,2,6),(ya、yb、yc、yd、ye)=(0,1,0,0,1)。这些数据可用于构建树模型,例如,所述树模型为Xgboost模型,可以理解,本说明书实施例的方案不限于Xgboost模型,而还可以为GBDT、随机森林等各种树模型,下文中将以Xgboost模型为例进行说明。
[0073] 在开始构建树模型之后,首先,使用上述全部用户的数据来构建第1棵树的根节点(例如将该节点表示为节点1),即,在根节点处确定分裂特征和分裂值,并基于确定好的分裂特征和分裂值对所述全部用户进行分裂。可以理解,这里以根节点为例进行描述,然而,该构建的节点可以为树模型中的任一棵树中的任一个节点,与根节点不同的是,用于构建非根节点的用户数据将不是全部用户的用户数据,而是被分到该非根节点的用户的用户数据,并且,用于构建该非根节点的特征数据将不是各个用户的全部特征的特征值,而需要除去在其之前已经与其它节点相对应的特征。
[0074] 在上述数据方A、B、C中,数据方C具有各个用户各自的标签值,也就是说,数据方C为所述第一数据方,从而,图2所示方法在数据方C的设备处执行,所述设备例如为服务器、终端、计算机等。从而数据方C的设备从各个数据方的设备获取M组分裂结果,其中,每组分裂结果都包括基于N个用户的相应特征的特征值进行分裂所获取的对该N个用户的多个分裂结果,这里,M=3,即特征数,N=5,即样本数,也就是用户数。基于每个特征的各个用户的特征值,通过不同的分裂算法都可获取与该特征对应的对5个用户的多个分裂结果。例如,通过贪心算法(Exact Greedy Algorithm)可找到与该特征对应的例如N+1=5+1=6种分裂结果。这里,如果数据方C自身包括某个特征的各个用户的特征数据,则所述各个数据方也包括数据方C自身。也就是说,数据方C的设备从数据方A的设备获取与特征f1对应的6个分裂结果,从数据方B的设备获取与特征f2对应的6个分裂结果,从自身获取与特征f3对应的6个分裂结果,从而数据方C的设备获取共三组分裂结果,每组分裂结果包括6个分裂结果。
[0075] 基于各个用户的某个特征的特征值获取与该特征对应的分裂结果可通过本领域已有的各种分裂算法进行。例如,可使用贪心算法(Exact Greedy Algorithm)对样本(这里即用户)进行分裂,贪心算法是一种通过穷举法找到最优分裂的算法。例如,对于特征f1,各个用户的特征f1的特征值为a:10,b:15,c:13,d:12,e:16可首先按照该特征值的从小到大的顺序对各个用户进行排序,即:adcbe,从而可基于排序获取与f1对应的六种分裂结果:(0,adcbe)、(a,dcbe)、(ad,cbe)、(adc,be)、(adcb,e)和(adcbe,0)。可以理解,各个用户的特征值有可能是相同的,例如该特征对应于年龄,则用户的年龄有可能相同,例如,假设用户a和用户b的特征f1的特征值相同,则在使用特征f1对用户进行分裂时,将用户a和用户b视为一个分裂对象(ab),以与其他用户按照该特征值f1从小到大的顺序排列,并进行上述分裂过程。例如,各个用户的特征f1的特征值为a:10,b:10,c:13,d:12,e:16可首先按照该特征值的从小到大的顺序对各个用户进行排序,即:(ab)dce,从而可基于排序获取与f1对应的五种分裂结果:(0,abdce)、(ab,dce)、(abd,ce)、(abdc,e)、(abdce,0)。也就是说,在该情况中,对于该五个用户可获取与f1对应的5个分裂结果。
[0076] 对于特征f2和f3可通过同样的方式对五个用户进行分裂,假设各个用户的特征值没有重合的情况,则可获得如表1所示的与各个特征分别对应的分裂结果:
[0077] f1 0,adcbe a,dcbe ad,cbe adc,be adcb,e adcbe,0f2 0,dacbe d,acbe da,cbe dac,be dacb,e dacbe,0
f3 0,dbcae d,bcae db,cae dbc,ae dbca,e dbcae,0
[0078] 表1
[0079] 在步骤S204,记录所述M组分裂结果各自对应的数据方。
[0080] 例如数据方A在基于其拥有的各个用户的f1值确定表1中所示的6个分裂结果之后,为了保护其数据不泄露给数据方C,其只将该6个分裂结果发送给数据方C,而不将f1告知数据方C。其中,每个分裂结果中包括两组用户各自的标识,例如对于分裂结果(a,dcbe),其中的a为从当前节点1分到其左边子节点(例如将其标识为节点2)的用户a的用户标识,d、c、b、e分别为从当前节点分到其右边子节点(例如将其标识为节点3)的用户d、c、b、e各自的用户标识。数据方C在从数据方A接收到该6个分裂结果之后,记录该6个分裂结果是从数据方A接收到的。相应地,数据方C在从数据方B接收到6个分裂结果之后,也记录该6个分裂结果与数据方B对应(即,从数据方B接收),数据方C在从自身拥有的数据获取6个分裂结果之后,也记录该6个分裂结果与数据方C对应,从而数据方C处记录了如表2所示的18个分裂结果及相应的数据方:
[0081] 数据方A 0,adcbe a,dcbe ad,cbe adc,be adcb,e adcbe,0数据方B 0,dacbe d,acbe da,cbe dac,be dacb,e dacbe,0
数据方C 0,dbcae d,bcae db,cae dbc,ae dbca,e dbcae,0
[0082] 表2
[0083] 在步骤S206,基于N个样本各自的标签值,分别计算所述M组分裂结果中各个分裂结果的分裂增益。
[0084] 在树模型中,通用地,对于当前构建的节点1,可通过计算各种可能的分裂结果的分裂增益来确定该节点的分裂特征及相应的特征值。不同的树模型可能具有不同的计算分裂增益的公式,但是所共通的是,需要基于样本的标签值来计算分裂增益,也就是说,分裂增益是与模型预测的准确性相一致的,分裂增益越大,模型预测的准确性越高,即模型预测值与相应标签值之间的误差越小。
[0085] 例如在Xgboost模型中,通过如下公式(1)计算该模型中第t棵树中一次分裂的分裂增益Lsp:
[0086]
[0087] 其中,λ和γ为超参数,IL为当前节点分裂之后的左边子节点的样本集合,IR为当前节点分裂之后的右边子节点的样本集合,I为当前节点的样本集合,其中,gi和hi分别通过下面的公式(2)和(3)计算:
[0088]
[0089]
[0090] 其中,l()为该模型中第t-1棵树的预测损失函数,其中对于t=1的第1棵树,即为 可随机确定。
[0091] 从公式(2)和(3)可以得出,在已经确定了第t-1棵树之后,对于第t棵树,每个用户i的gi和hi都是确定的。
[0092] 例如,对于上述表2中的一个分裂结果(a,dcbe),根据公式(1)可计算该分裂结果的增益如下面的公式(4)所示:
[0093]
[0094] 其中,对于与f1对应的分裂结果(0,abdce),由于各个用户的f1的特征值可能是缺失的,例如在用户a的f1特征值缺失的情况中,在公式(1)中的第一项的求和中将不包括用户a,因此,通过公式(1)计算的增益也有可能大于0。
[0095] 通过该方法,可以对表2中的各个分裂结果计算分裂增益。在表2中,可以看到,存在重合的分裂结果,例如,数据方A对应的(ad,cbe)与数据方B对应的(da,cbe)为重合的分裂结果,在该情况下,可对其仅计算一次分裂增益。在实际中,由于样本数和特征数都较大,存在重合的分裂结果的概率较小。
[0096] 如上文所述,根据本说明书实施例的树模型不限于Xgboost模型,例如,所述树模型可以为GBDT模型,则可通过信息增益、基尼指数等作为分裂增益,在此不再详述。
[0097] 在步骤S208,获取具有最大分裂增益的分裂结果作为最优分裂结果。
[0098] 在通过如上所述获取表2中各个分裂结果的分裂增益之后,可将具有最大分裂增益的分裂结果作为最优分裂结果,在表2中存在重合的分裂结果的情况中,例如,具有最大分裂增益的分裂结果为数据方A的(ad,cbe)和数据方B的(da,cbe),则可在数据方A的分裂结果和数据方B的分裂结果之间随机确定一个分裂结果作为最优分裂结果。
[0099] 在步骤S210,在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方。
[0100] 在所述最优分裂结果的分裂增益为正值的情况中,说明通过使用与该最优分裂结果对应的特征对当前节点继续分裂,可以带来更好的预测效果。由于如上文所述,例如在表2中记录了各个分裂结果与相应数据方的对应关系,从而,在确定表2中的最优分裂结果之后,可根据表2确定该最优分裂结果对应的数据方。例如,最优分裂结果为表2中的18个分裂结果中的(a,dcbe),则根据表2可以得出,该最优分裂结果对应的数据方为数据方A。
[0101] 在所述最优分裂结果的分裂增益小于等于零的情况中,说明对模型的继续分裂不能带来更多的收益,因此将停止对该当前节点的分裂,将该当前节点作为叶子节点,并根据本地存储的各个样本的标签值,计算该叶子节点的分值。具体是,计算各个样本的标签值的均值,从而获得该叶子节点的分值。从而可以看出,由于只有数据方C具有各个样本的标签值,因此,该树模型的全部叶子节点的分值都在数据方C处,即,全部叶子节点都与数据方C相对应。
[0102] 在步骤S212,在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系。
[0103] 例如,如上文所述,确定其中的最优分裂结果(a,dcbe)与数据方A(即所述第二数据方)对应,则将该分裂结果作为最优分裂结果发送给数据方A的设备,以使得数据方A的设备可获知该最优分裂结果。
[0104] 数据方A的设备在获取该最优分裂结果之后,可确定该最优分裂结果与本地的特征f1的特征数据相对应,从而将节点1与特征f1相对应,并根据该最优分裂结果对应的分裂值确定节点1的特征分裂值,从而在数据方A的设备中可更新该树模型的模型数据,即,更新节点1对应的特征和相应的特征分裂值,并将树模型的树结构从节点往下延伸两个子节点(即,节点2和节点3)。
[0105] 在步骤S214,对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。
[0106] 由于所述节点1与数据方A对应,即,仅数据方A拥有节点1的节点数据,而数据方C并没有节点1的节点数据,因此,数据方C的设备在本地的树模型中例如可将节点1标注为空节点,并从将该模型树的树结构从该节点1往下延伸两个子节点(节点2和节点3),以存储相应的树结构。可以理解,在本说明书实施例中,不限于将节点1标注为空节点,而可以标注为预定标识,只要其指示本地没有第一节点的节点数据即可。
[0107] 在上述描述中,基于数据方A、B、C各自拥有的a、b、c、d、e五个用户的数据进行模型构建,从而得出Xgboost模型的根节点(节点1),该节点1的数据由数据方A拥有,并且该节点1具有两个子节点,节点2和节点3。之后,可以分别以节点2和节点3为所述第一节点,由数据方C的设备执行图2所示方法,以确定各个数据方的树结构和节点数据。
[0108] 在一个实施例中,以节点1的左边子节点(节点2)为所述第一节点执行图2所示方法。如上文所述,在进行节点1的分裂之后,节点2中仅包括用户a,这种情况中,不可能对节点2再进行分裂,因此,数据方C的设备将节点2标注为叶子节点,并根据用户a的标签值计算节点2的分值。同时,数据方C的设备通知数据方A和数据方B各自的设备,节点2为叶子节点,从而,数据方A和数据方B各自的设备都将节点2标注为空节点。
[0109] 在一个实施例中,以节点1的右边的子节点(节点3)为所述第一节点执行图2所示方法。如上文所述,在进行节点1的分裂之后,节点3中包括用户d、c、b、e,也就是说,在该情况中,用户数为4个,即N=4,可用于进行分裂的特征数为2个(f2,f3),数据方C的设备类似地获取对用户d、c、b、e的M(N+1)=2*5=10种分裂结果,并类似地进行上述步骤S204-S208。例如,确定最优分裂结果(dbc,e)对应的数据方为数据方C自身,数据方C中包括用户d、c、b、e各自的特征f3的特征值,基于上文所述的用户b、c、d、e的特征值(3,4,2,6),可获得对用户的五种分裂方式(0,dbce)、(d,bce)、(db,ce)、(dbc,e)和(dbce,0),从而,数据方C的设备可确定该最优分裂结果与特征f3相对应。可以理解,在数据方C仅具有各个用户的一个特征的特征值时,可直接确定最优分裂结果与该特征相对应,而当数据方C具有各个用户的多个特征的特征值时,则可通过如上所述将最优分裂结果与各个特征对应的分裂结果进行比对,从而获取与最优分裂结果对应的特征。从而,在数据方C的设备中,将f3确定为与节点3对应的特征,并根据所述最优分裂结果对应的分裂值,确定节点3的特征分裂值,并将树模型的树结构从节点3往下延伸两个子节点(节点4和节点5)。之后,数据方C的设备可通知数据方A和数据方B各自的设备,使其将本地的树模型中的节点3都标注为空节点,并相应地更新树结构,即,将节点3往下延伸两个子节点(节点4和节点5)。
[0110] 如上文所述,节点4中包括用户d、b、c,节点5中包括用户e,与节点2类似地,节点e为叶子节点,数据方C的设备可进行与节点2中相同的处理。
[0111] 对于节点4,可再次将节点4作为第一节点执行图2所示方法。例如,在节点4,确定与数据方B对应的分裂结果(d,cb)为增益值大于0的最优分裂结果,则数据方C的设备与上文类似地将该分裂结果发送给数据方B的设备,从而数据方B的设备与节点3类似地获取节点4的节点数据,并将树模型往下延伸到节点6和节点7,同时,数据方C的设备将本地树模型的节点4标注为空节点并更新树结构,并通知数据方A的设备将其树模型的节点4标注为空节点并更新树结构。
[0112] 对于新分出的节点6和节点7,由于节点6中只包括用户d,其同样为叶子节点,在此不再详述。节点7中包括用户b和c,由于这里没有其它特征用于继续分裂该节点,因此节点7也为叶子节点。在还有其它特征用于分裂的情况中,例如数据方A具有各个用户的特征f4的特征值,可计算分裂结果(b,c)的分裂增益,如果该分裂增益大于0,则可以由数据方A将节点7继续往下分两个子节点,如果该分裂增益小于等于0,则不需要继续分裂,只将节点7作为叶子节点,由数据方C的设备基于用户b和c的标签值计算两个标签值的均值作为节点7的分值,例如用户b和c的标签值为1和0,则节点7的分值为0.5。
[0113] 图3示意示出了在经过上述树模型构建过程之后,数据方A、B、C各方拥有的模型数据。如图3中所示,数据方A、B、C具有共同的树结构,即7个节点:节点1~7,及各个节点之间的连接关系。其中,数据方A仅具有节点1的节点数据(分裂特征f1、分裂值s1),其中将节点2~7都标注为空节点。数据方B仅具有节点4的节点数据(分裂特征f2、分裂值s2),数据方C具有节点3的节点数据(分裂特征f3、分裂值s3)和各个叶子节点的分值(v1,v2,v3,v4)。也就是说,由于数据方A具有用户的f1的特征值,而节点1与f1相对应,因此,数据方A与节点1相对应,类似地,数据方B与节点4相对应,数据方C与节点2、3、5、6、7相对应。另外,数据方C中在节点1处记录的(A)指示节点1与数据方A相对应,在节点4处记录的(B)指示节点4与数据方B相对应。
[0114] 在上述实例中,只构建出了一棵树,然而,在例如数据方A、B、C具有各个用户的更多特征的特征值的情况中,可使用该更多的特征,通过图2所示方法对a~e五个用户构建第二棵树,从而使得模型的预测更加准确。
[0115] 在获取图3所示的由数据方A、B、C各拥有一部分的树模型之后,可通过该树模型进行对对象的预测。
[0116] 图4示出根据本说明书实施例的一种基于树模型的预测方法,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备中都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述方法由第一数据方的设备执行,包括:
[0117] 步骤S402,从模型请求方的设备接收针对第一对象的模型使用请求;
[0118] 步骤S404,对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;
[0119] 步骤S406,在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;
[0120] 步骤S408,从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。
[0121] 首先,在步骤S402,从模型请求方的设备接收针对第一对象的模型使用请求。
[0122] 例如,所述第一对象为数据方C(即平台)中的第一用户,模型请求方可能是特定商品的厂商、营销商等,其希望预测一下第一用户是否会购买特定商品,因此,模型请求方的设备可向数据方C的设备提出针对第一用户的模型预测请求。
[0123] 在步骤S404,对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方。
[0124] 例如对于图3所示的已经构建好的树模型,数据方C的设备根据已经记录的节点1与数据方的对应关系,可获知节点1与数据方A(第二数据方)相对应。
[0125] 在步骤S406,在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分。
[0126] 即,在数据方C的设备确定节点1与数据方A对应之后,数据方C的设备通知数据方A的设备进行节点1中对第一用户的划分。在所述通知中,数据方C的设备可以第一用户的用户标识来标识第一用户,如第一用户的身份标识、数据方A与数据方C约定的第一用户的用户编号等。数据方A的设备在接收到该通知之后,由于节点1与f1相对应,并且数据方A拥有各个用户的f1的特征值,从而,数据方A的设备可从本地获取第一用户的f1值,并基于第一节点的f1的特征分裂值对第一用户进行划分,以划分到节点2或节点3中。并且,数据方A的设备在完成对第一用户的划分之后,将该划分结果发送给数据方C的设备。
[0127] 在步骤S408,从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。
[0128] 在一个实施例中,数据方A的设备将第一用户划分到节点2,即叶子节点,从而,数据方C的设备在接收到该划分结果之后,可将节点2的分值作为对第一用户的预测值发送给模型请求方的设备。
[0129] 在一个实施例中,数据方A的设备将第一用户划分到节点3,节点3的节点数据在数据方C中,从而,数据方C的设备可基于本地存储的节点3的f3的分裂值和第一用户的f3值进行对第一用户的再次划分,以将第一用户划分到节点4或节点5中。
[0130] 图5示出根据本说明书实施例的一种保护隐私的树模型构建装置500,其中,当前用于构建所述树模型的构建数据由至少两个数据方各自的设备拥有的数据组成,所述构建数据包括N个样本各自的M个特征的特征值,所述至少两个数据方中包括第一数据方和第二数据方,所述第一数据方的设备中具有N个样本各自的标签值,所述树模型中当前包括第一树,所述第一树中当前包括第一节点,所述装置相对于所述第一节点被部署在所述第一数据方的设备中,包括:
[0131] 第一获取单元501,配置为,从所述至少两个数据方各自的设备获取M组分裂结果,其中,所述M组分裂结果与所述M个特征分别对应,每组分裂结果中包括基于所述N个样本各自的相应特征的特征值进行分裂的多个分裂结果;
[0132] 记录单元502,配置为,记录所述M组分裂结果各自对应的数据方;
[0133] 第一计算单元503,配置为,基于N个样本各自的标签值,分别计算所述M组分裂结果各个分裂结果的分裂增益;
[0134] 第二获取单元504,配置为,获取具有最大分裂增益的分裂结果作为最优分裂结果;
[0135] 第一确定单元505,配置为,在所述最优分裂结果的分裂增益为正值的情况中,基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果对应的数据方;
[0136] 发送单元506,配置为,在所述对应的数据方为所述第二数据方的情况中,将所述最优分裂结果发送给所述第二数据方的设备,并记录所述第一节点与所述第二数据方的对应关系;
[0137] 标注单元507,配置为,对所述第一节点进行标注,以指示本地没有第一节点的节点数据,并相应地更新所述第一树的树结构。
[0138] 在一个实施例中,所述装置还包括,第一通知单元508,配置为,通知至少两个数据方中除了所述第一数据方和所述第二数据方之外的其它数据方的设备,以指示所述其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。
[0139] 在一个实施例中,所述第一数据方还具有N个样本各自的第一特征的特征值,所述装置还包括,第二确定单元509,配置为,在所述对应的数据方是所述第一数据方的情况中,并且,在确定所述最优分裂结果为与第一特征对应的分裂结果的情况中,将所述第一特征确定为所述第一节点对应的特征,并将所述最优分裂结果对应的分裂值确定为所述第一节点的第一特征的分裂值,第二通知单元510,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注并相应地更新所述第一树的树结构。
[0140] 在一个实施例中,所述装置还包括,第二计算单元511,配置为,在所述最优分裂结果的分裂增益小于等于零的情况中,基于所述N个样本各自的标签值计算所述第一节点对应的分值,以及,第三通知单元512,配置为,通知所述至少两个数据方中除所述第一数据方之外的其它数据方的设备,以指示其它数据方的设备对所述第一节点进行所述标注。
[0141] 在一个实施例中,所述第一树为所述树模型中的第t棵树,其中,所述第一计算单元还配置为,基于N个样本各自的标签值以及预先获取的所述树模型的第t-1棵树,分别计算所述M组分裂结果中各个分裂结果的分裂增益。
[0142] 在一个实施例中,所述M组分裂结果中包括从至少两个数据方各自的设备分别接收的重合的至少两个分裂结果,所述第一确定单元还配置为,在基于本地记录的所述M组分裂结果各自对应的数据方,确定所述最优分裂结果为与至少两个数据方对应的情况中,从所述至少两个数据方中随机确定一个数据方,作为所述最优分裂结果对应的数据方。
[0143] 在一个实施例中,所述树模型为以下任一种树模型:Xgboost模型、GBDT模型、随机森林。
[0144] 图6示出根据本说明书实施例的一种基于树模型的预测装置600,其中,所述树模型的模型数据由至少两个数据方各自的设备拥有的数据组成,其中,每个数据方的设备都具有所述树模型的树结构,所述至少两个数据方中包括第一数据方和第二数据方,其中,所述第一数据方的设备中记录有所述树模型中各个节点与数据方的对应关系,所述装置部署在第一数据方的设备中,包括:
[0145] 第一接收单元61,配置为,从模型请求方的设备接收针对第一对象的模型使用请求;
[0146] 确定单元62,配置为,对于所述树模型中的第一树中的第一父节点,基于所述树模型中各个节点与数据方的对应关系,确定所述第一父节点对应的数据方;
[0147] 通知单元63,配置为,在确定所述第一父节点对应的数据方为所述第二数据方的情况中,通知所述第二数据方的设备进行第一父节点中对第一对象的划分;
[0148] 第二接收单元64,配置为,从所述第二数据方的设备接收第一父节点中对第一对象的划分结果,以继续对所述第一对象的预测。
[0149] 在一个实施例中,所述第一数据方的设备中记录有所述第一父节点对应于第一特征及相应的特征分裂值,所述第一数据方的设备中还具有所述第一对象的第一特征的特征值,所述装置还包括,划分单元65,配置为,在确定所述第一父节点对应的数据方为所述第一数据方的情况中,基于所述第一父节点的特征分裂值和所述第一对象的第一特征的特征值,将所述第一对象划分到所述第一父节点的一个子节点中。
[0150] 在一个实施例中,所述第一数据方的设备中还记录有所述树模型中各个叶子节点的分值,所述划分结果将所述第一对象划分到所述第一父节点的第一子节点中,所述第一子节点为叶子节点,所述装置还包括,发送单元66,配置为,将该第一子节点的分值作为预测结果发送给所述模型请求方的设备。
[0151] 本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
[0152] 本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
[0153] 通过根据本说明书实施例的树模型构建方案,可以使用多个数据方的数据共同构建树模型,同时保护各个数据方的数据不泄露给其它数据方,在扩充了用于构建树模型的数据量,增加树模型的预测准确率的同时,保护了各个数据方的数据安全。
[0154] 需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
[0155] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0156] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0157] 本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0158] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0159] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。