数据处理方法、装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法、装置和电子设备。
背景技术
在业务实际中,通常一方拥有需要保密的模型(以下称为模型方),另一方拥有需要保密的业务数据(以下称为数据方)。如何在所述模型方不泄漏所述模型、且所述数据方不泄漏所述业务数据的条件下,使得模型方和/或模型方获得基于所述模型对所述业务数据进行预测后的预测结果,是当前亟需解决的技术问题。
发明内容
本说明书实施例的目的是提供一种数据处理方法、装置和电子设备,以便于在第一设备不泄漏原始决策森林、且第二设备不泄漏业务数据的条件下,第一设备和/或第二设备获得基于所述原始决策森林对所述业务数据进行预测后的预测结果。
为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种数据处理方法,应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树;所述方法包括:向第二设备发送决策树的参数信息;所述参数信息包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。
根据本说明书一个或多个实施例的第二方面,提供了一种数据处理方法,应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树;所述装置包括:发送单元,用于向第二设备发送决策树的参数信息,所述参数信息包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。
根据本说明书一个或多个实施例的第三方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。
根据本说明书一个或多个实施例的第四方面,提供了一种数据处理方法,应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树;所述方法包括:为决策树生成对应的随机数;利用随机数对决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文;以决策树的各个叶子节点所对应的叶子值密文为输入,与第二设备进行不经意传输。
根据本说明书一个或多个实施例的第五方面,提供了一种数据处理装置,应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树;所述装置包括:生成单元,用于为决策树生成对应的随机数;加密单元,用于利用随机数对决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文;传输单元,用于以决策树的各个叶子节点所对应的叶子值密文为输入,与第二设备进行不经意传输。
根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第四方面所述的方法步骤。
根据本说明书一个或多个实施例的第七方面,提供了一种数据处理方法,应用于第二设备,所述第二设备提供有决策森林中决策树的参数信息;所述参数信息包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值;所述方法包括:基于决策树的参数信息确定目标位置标识,所述目标位置标识对应的叶子节点与业务数据相匹配;以所述目标位置标识为输入,与第一设备进行不经意传输;从第一设备输入的决策树的各个叶子节点所对应的叶子值密文中选择目标叶子值密文;叶子节点对应的叶子值密文由随机数对业主节点对应的叶子值进行加密得到。
根据本说明书一个或多个实施例的第八方面,提供了一种数据处理装置,应用于第二设备,所述第二设备提供有决策森林中决策树的参数信息;所述参数信息包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值;所述装置包括:确定单元,用于基于决策树的参数信息确定目标位置标识,所述目标位置标识对应的叶子节点与业务数据相匹配;传输单元,用于以所述目标位置标识为输入,与第一设备进行不经意传输;从第一设备输入的决策树的各个叶子节点所对应的叶子值密文中选择目标叶子值密文;叶子节点对应的叶子值密文由随机数对业主节点对应的叶子值进行加密得到。
根据本说明书一个或多个实施例的第九方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第七方面所述的方法步骤。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,通过不经意传输,可以在所述第一设备不泄漏决策森林、且第二设备不泄漏业务数据的条件下,第一设备和/或第二设备获得决策森林的预测结果,或者,获得比较结果。所述比较结果用于表示预测结果与预设阈值之间的大小关系。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种决策树的结构示意图;
图2为本说明书实施例一种数据处理方法的流程图;
图3为本说明书实施例一种满二叉树的结构示意图;
图4为本说明书实施例一种数据处理方法的流程图;
图5为本说明书实施例一种不经意传输方法的流程图;
图6为本说明书实施例一种数据处理方法的示意图;
图7为本说明书实施例一种数据处理方法的流程图;
图8为本说明书实施例一种数据处理装置的功能结构示意图;
图9为本说明书实施例一种数据处理装置的功能结构示意图;
图10为本说明书实施例一种数据处理装置的功能结构示意图;
图11为本说明书实施例一种电子设备的功能结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。此外,应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
为了便于本领域技术人员理解本说明书实施例的技术方案,下面先对本说明书实施例的技术术语进行说明。
决策树:一种有监督的机器学习模型。所述决策树可以为二叉树等。所述决策树包括了多个节点。每个节点可以对应有位置标识,所述位置标识可以用于标识该节点在决策树中的位置,具体例如可以为该节点的编号等。所述多个节点能够形成多个预测路径。所述预测路径的起始节点为所述决策树的根节点,终止节点为所述决策树的叶子节点。
所述决策树具体可以包括回归决策树和分类决策树。所述回归决策树的预测结果可以为一个具体的数值。所述分类决策树的预测结果可以为一个具体的类别。值得说明的是,为了便于计算,通常可以采用向量来表示类别。例如,向量[1 0 0]可以表示类别A,向量[0 1 0]可以表示类别B,向量[0 0 1]可以表示类别C。当然,此处的向量仅为示例,在实际应用中还可以采用其它的数学方式来表示类别。
分裂节点:当决策树中的一个节点能够向下分裂时,可以将该节点称为分裂节点。所述分裂节点具体可以包括根节点、以及除去叶子节点和根节点以外的其它节点(以下称为普通节点)。所述分裂节点对应有分裂条件,所述分裂条件可以用于选择预测路径。
叶子节点:当决策树中的一个节点不能够向下分裂时,可以将该节点称为叶子节点。所述叶子节点对应有叶子值。决策树的不同叶子节点所对应的叶子值可以相同或不同。每个叶子值可以表示一种预测结果。所述叶子值可以为数值或向量等。例如,回归决策树的叶子节点所对应的叶子值可以为数值,分类决策树的叶子节点所对应的叶子值可以为向量。
满二叉树:当一个二叉树除最后一层外,每一层上的所有节点都分裂为了两个子结点时,可以将该二叉树称为满二叉树。
为了便于对以上术语进行理解,以下介绍一个场景示例。请参阅图1。在本场景示例中,决策树Tree1可以包括节点1、2、3、4、5等5个节点。其中,节点1、节点2、节点3、节点4和节点5的位置标识可以分别为1、2、3、4和5。节点1为根节点;节点1和2分别为普通节点;节点3、4和5分别为叶子节点。节点1、节点2和节点4可以形成一个预测路径,节点1、节点2和节点5可以形成另一个预测路径,节点1和节点3可以形成另一个预测路径。
节点1、节点2和节点3对应的分裂条件如下表1所示。
表1
节点 |
分裂条件 |
节点1 |
年龄大于20岁 |
节点2 |
年收入大于5万 |
节点3、节点4和节点5对应的叶子值如下表2所示。
表2
节点 |
叶子值 |
节点3 |
200 |
节点4 |
700 |
节点5 |
500 |
分裂条件“年龄大于20岁”、“年收入大于5万”可以用于选择预测路径。当满足分裂条件时,可以选择左边的预测路径;当不满足分裂条件时,可以选择右边的预测路径。具体地,针对节点1,当满足分裂条件“年龄大于20岁”时,可以选择左边的预测路径,进而跳转到节点2;当不满足分裂条件“年龄大于20岁”时,可以选择右边的预测路径,进而跳转到节点3。针对节点2,当满足分裂条件“年收入大于5万”时,可以选择左边的预测路径,进而跳转到节点4;当不满足分裂条件“年收入大于5万”时,可以选择右边的预测路径,进而跳转到节点5。
一个或多个决策树可以构成决策森林。用于实现将多个决策树集成为决策森林的算法可以包括随机森林(Random Forest)、极值梯度提升(Extreme Gradient Boosting,XGBoost)、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)等算法。所述决策森林为一种有监督的机器学习模型,具体可以包括回归决策森林和分类决策森林。所述回归决策森林可以包括一个或多个回归决策树。当回归决策森林包括一个回归决策树时,可以将该回归决策树的预测结果作为该回归决策森林的预测结果。当回归决策森林包括多个回归决策树时,可以对所述多个回归决策树的预测结果进行求和处理,可以将求和结果作为该回归决策森林的预测结果。所述分类决策森林可以包括一个或多个分类决策树。当分类决策森林包括一个分类决策树时,可以将该分类决策树的预测结果作为该分类决策森林的预测结果。当分类决策森林包括多个分类决策树时,可以对所述多个分类决策树的预测结果进行统计,可以将统计结果作为该分类决策森林的预测结果。值得说明的是,在一些场景下,分类决策树的预测结果可以为向量,所述向量可以用于表示类别。如此,可以对分类决策森林中多个分类决策树预测出的向量进行求和处理,可以将求和结果作为该分类决策森林的预测结果。例如,某一分类决策森林可以包括分类决策树Tree2、Tree3、Tree4。分类决策树Tree2的预测结果可以为向量[1 0 0],向量[1 0 0]表示类别A。分类决策树Tree3的预测结果可以为向量[0 1 0],向量[0 1 0]表示类别B。分类决策树Tree4的预测结果可以为向量[1 0 0],向量[0 0 1]表示类别C。那么,可以对对向量[1 0 0]、[0 1 0]和[1 0 0]进行求和处理,得到向量[2 1 0]作为该分类决策森林的预测结果。向量[2 1 0]表示在分类决策森林中预测结果为类别A的次数为2次、预测结果为类别B的次数为1次,预测结果为类别C的次数为0次。
本说明书实施例提供一种数据处理系统。所述数据处理系统可以包括第一设备和第二设备。所述第一设备可以为服务器、手机、平板电脑、或个人电脑等设备;或者,也可以为由多台设备组成的系统,例如由多个服务器组成的服务器集群。所述第一设备拥有需要保密的决策森林。所述第二设备可以为服务器、手机、平板电脑、或个人电脑等设备;或者,也可以为由多台设备组成的系统,例如由多个服务器组成的服务器集群。所述第二设备拥有需要保密的业务数据,所述业务数据例如可以为交易数据、或借贷数据等等。
所述第一设备和所述第二设备可以进行协作计算,以便于所述第一设备和/或所述第二设备能够获得基于所述决策森林对所述业务数据进行预测后的预测结果。在此过程中,所述第一设备不能够泄漏自身拥有的决策森林,所述第二设备不能够泄漏自身拥有的业务数据。在一个场景示例中,所述第一设备隶属于金融机构。所述第二设备隶属于数据机构,诸如大数据公司、政府机构等。
基于所述数据处理系统,本说明书提供数据处理方法的一个实施例。在实际应用中该实施例可以应用于预处理阶段。请参阅图2。该实施例以第一设备为执行主体,可以包括以下步骤。
步骤S10:向第二设备发送决策森林中决策树的参数信息。
在一些实施例中,所述决策森林可以包括至少一个决策树。所述第一设备可以向所述第二设备发送所述决策森林中各个决策树的参数信息。所述第二设备可以接收所述决策森林中各个决策树的参数信息。其中,所述参数信息可以包括分裂节点对应的位置标识、分裂节点对应的分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。这样所述第二设备能够获得所述决策森林中决策树的分裂节点所对应的分裂条件,而无法获得所述决策森林中决策树的叶子节点所对应叶子值,从而实现了对决策森林的隐私保护。
在一些实施例中,决策森林中的一个或多个决策树为非满二叉树。如此,在步骤S10之前,所述第一设备还可以在非满二叉树的决策树中添加虚假的节点,以使得该决策树形成满二叉树。这样可以提高决策森林的隐私保护的力度。例如,请参阅图3。图1所示的决策树Tree1为非满二叉树。所述第一设备可以在图1所示的决策树Tree1中添加虚假的节点6和虚假的节点7。节点6对应的分裂条件可以随机生成,或者,还可以按照特定策略生成。节点7对应的叶子值可以与节点3相同。
在一些实施例中,在步骤S10之前,所述第一设备还可以在决策森林中添加一个或多个虚假的决策树。这样可以提高决策森林的隐私保护的力度。虚假的决策树的层数可以与决策森林中真实的决策树相同,也可以不同。虚假的决策树的分裂节点所对应的分裂条件可以随机生成,或者,还可以按照特定策略生成。虚假的决策树的叶子节点所对应的叶子值可以为特定数值,例如可以为0等。
进一步地,在添加了虚假的决策树之后,所述第一设备还可以对决策森林中的决策树进行乱序处理。这样可以避免在后续过程中第二设备猜测哪些决策树为真实决策树,哪些决策树为虚假的决策树。
本说明书实施例的数据处理方法,第一设备可以向第二设备发送决策森林中决策树的参数信息。所述参数信息可以包括分裂节点对应的位置标识、分裂节点对应的分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。这样一方面,实现了对决策森林的隐私保护。另一方面,便于第二设备基于决策森林对业务数据进行预测。
基于所述数据处理系统,本说明书提供数据处理方法的另一个实施例。在实际应用中该实施例可以应用于预测阶段。请参阅图4。该实施例可以包括以下步骤。
步骤S20:第一设备为决策森林中的决策树生成对应的随机数。
在一些实施例中,所述决策森林可以包括一个决策树。如此,所述第一设备可以为该决策树生成一个对应的随机数。
在另一些实施例中,所述决策森林可以包括多个决策树。如此,所述第一设备可以为所述多个决策树生成多个随机数。所述多个随机数的和可以为特定数值。所述特定数值可以为一个完全的随机数。具体地,所述第一设备可以为所述多个决策树中的每个决策树生成一个对应的随机数,从而使得所述特定数值为一个完全的随机数。或者,所述特定数值也可以为固定数值0。例如,所述决策森林包括k个决策树。所述第一设备可以为k-1个决策树生成k-1个随机数r1、r2、…、ri、…、rk-1;可以计算rk=0-(r1+r2+…+ri+…+rk-1)作为第k个决策树对应的随机数。又或者,所述特定数值还可以为一个预先生成的噪声数据(为了便于描述,以下称为第一噪声数据)。例如,所述决策森林包括k个决策树。所述第一设备可以为k-1个决策树生成k-1个随机数r1、r2、…、ri、…、rk-1;可以计算rk=s-(r1+r2+…+ri+…+rk-1)作为第k个决策树对应的随机数,这里s表示所述第一噪声数据。
步骤S22:第一设备利用随机数对决策森林中决策树的叶子节点所对应的叶子值进行加密,得到叶子值密文。
在一些实施例中,针对所述决策森林中的每个决策树,所述第一设备可以利用该决策树对应的随机数,对该决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文。在实际应用中,所述第一设备可以将该决策树对应的随机数分别与该决策树的各个叶子节点所对应的叶子值相加。例如,所述决策森林包括k个决策树,k个决策树对应的随机数分别为r1、r2、…、ri、…、rk,其中ri表示第i个决策树对应的随机数。第i个决策树可以包括N个叶子节点,N个叶子节点对应的叶子值分别为v_i1、v_i2、…、v_ij、…、v_iN,其中v_ij表示第i个决策树的第j个叶子节点所对应的叶子值。那么,所述第一设备可以将随机数ri分别与N个叶子节点对应的叶子值v_i1、v_i2、…、v_ij、…、v_iN相加,得到叶子值密文v_i1+ri、v_i2+ri、…、v_ij+ri、…、v_iN+ri。
步骤S24:第二设备基于决策树的参数信息确定目标位置标识,所述目标位置标识对应的叶子节点与业务数据相匹配。
在一些实施例中,经过预处理阶段(具体过程请参见图2对应的实施例),所述第二设备可以获得决策森林中各个决策树的参数信息。根据所述参数信息,所述第二设备可以重构决策树的骨架。由于所述参数信息中包括分裂节点对应的分裂条件、但不包括叶子节点对应的叶子值,因而重构的决策树骨架中包括分裂节点对应的分裂条件、但不包括叶子节点对应的叶子值。如此,所述第二设备可以基于决策森林中每个决策树的骨架,获取与业务数据相匹配的一条预测路径;可以将该预测路径中的叶子节点,作为该决策树中与所述业务数据相匹配的目标叶子节点;可以将所述目标叶子节点对应的位置标识作为目标位置标识。
步骤S26:第一设备以决策树森林中决策树的各个叶子节点所对应的叶子值密文为输入,第二设备以该决策树的目标位置标识为输入,进行不经意传输;第二设备从第一设备输入的叶子值密文中选择目标叶子值密文。
请参阅图5。在一些实施例中,不经意传输(Oblivious Transfer,OT),又称为茫然传输,是一种可以保护隐私的双方通信协议,能够使通信双方以一种选择模糊化的方式传递数据。发送方可以具有多个数据。经由不经意传输接收方能够获得所述多个数据中的一个或多个数据。在此过程中,发送方不知晓接收方接收的是哪些数据;而接收方不能够获得其所接收数据之外的其它任何数据。具体在本实施例中,所述第一设备可以以决策树森林中每个决策树的各个叶子节点所对应的叶子值密文为输入,第二设备可以以该决策树的目标位置标识为输入,进行不经意传输。通过不经意经意传输可以实现:第二设备从第一设备输入的叶子值密文中选择目标叶子值密文,所述目标叶子值密文即为所述目标叶子节点对应的叶子值密文。其中,该决策树的各个叶子节点所对应的叶子值密文可以视作第一设备在不经意传输过程中输入的秘密信息,该决策树的目标位置标识可以视作第二设备在不经意传输过程中输入的选择信息,这样便可以实现第二设备选择目标叶子值密文。根据不经意传输的特性,所述第一设备并不知晓所述第二设备具体选择哪个叶子值密文作为目标叶子值密文,所述第二设备也不能够知晓除了所选择的目标叶子值密文以外的其它叶子值密文。值得说明的是,这里可以采用现有的任意不经意传输协议来实现,具体传输协议不再做具体的介绍。
在一些实施例中,由所述第二设备获得决策森林的预测结果。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第二设备可以将所述目标叶子值密文作为决策森林的预测结果。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第一求和结果;可以将所述第一求和结果作为决策森林的预测结果。例如,所述决策森林包括k个决策树,k个决策树对应的随机数分别为r
1、r
2、…、r
i、…、r
k,其中r
i表示第i个决策树对应的随机数。k个决策树对应的随机数之和r
1+r
2+…+r
i+…+r
k=0。所述第二设备选择的k个目标叶子值密文分别为
其中
表示第二设备从第i个决策树选择的目标叶子值密文,目标叶子值密文
即为第i个决策树中位置标识为p
i的叶子节点所对应的叶子值密文。那么,所述第二设备可以计算
从而得到决策森林的预测结果u。另举一例,所述决策森林包括k个决策树,k个决策树对应的随机数分别为r
1、r
2、…、r
i、…、r
k,其中r
i表示第i个决策树对应的随机数。k个决策树对应的随机数之和r
1+r
2+…+r
i+…+r
k=s,s表示所述第一噪声数据。所述第二设备选择的k个目标叶子值密文分别为
其中
表示第二设备从第i个决策树选择的目标叶子值密文,目标叶子值密文
即为第i个决策树中位置标识为p
i的叶子节点所对应的叶子值密文。那么,所述第二设备可以计算
从而得到混入了第一噪声数据s后的预测结果u+s。
在另一些实施例中,由所述第一设备获得决策森林的预测结果。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第二设备可以向所述第一设备发送所述目标叶子值密文。所述第一设备可以接收所述目标叶子值密文;可以利用决策树对应的随机数,对所述目标叶子值密文进行解密,得到叶子值作为决策森林的预测结果。所述第一设备具体可以计算目标叶子值密文与随机数之间的差值,从而得到叶子值。或者,所述第二设备还可以对所述目标叶子值密文与噪声数据(为了便于描述,以下称为第二噪声数据)进行求和处理,得到第一求和结果;可以向第一设备发送所述第一求和结果。所述第一设备可以接收所述第一求和结果;可以利用决策树对应的随机数,对所述第一求和结果进行解密,得到混入了第二噪声数据后的叶子值;即,得到混入了第二噪声数据后的预测结果。所述第二噪声数据的大小可以根据实际需要灵活设定,通常小于所述业务数据。所述第一设备具体可以计算第一求和结果与随机数之间的差值,从而得到混入了第二噪声数据后的叶子值。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第二求和结果;可以向所述第一设备发送所述第二求和结果。所述第一设备可以接收所述第二求和结果;可以利用决策森林中各个决策树所对应的随机数之和,对所述第二求和结果进行解密,得到决策森林的预测结果。所述第一设备具体可以计算所述第二求和结果与随机数之和的差值,从而得到决策森林的预测结果。例如,所述决策森林包括k个决策树,k个决策树对应的随机数分别为r
1、r
2、…、r
i、…、r
k,其中r
i表示第i个决策树对应的随机数。k个决策树对应的随机数之和r
1+r
2+…+r
i+…+r
k=r,r为一个完全的随机数。所述第二设备选择的k个目标叶子值密文分别为
其中
表示第二设备从第i个决策树选择的目标叶子值密文,目标叶子值密文
即为第i个决策树中位置标识为p
i的叶子节点所对应的叶子值密文。那么,所述第二设备可以计算第二求和结果
可以向所述第一设备发送所述第二求和结果u+r。所述第一设备可以接收所述第二求和结果u+r;可以计算所述第二求和结果u+r与决策森林中各个决策树所对应的随机数之和r的差值,得到决策森林的预测结果u。或者,所述第二设备还可以对所述第二求和结果与所述第二噪声数据进行求和处理,得到第三求和结果;可以向所述第一设备发送所述第三求和结果。所述第一设备可以接收所述第三求和结果;可以利用决策森林中各个决策树所对应的随机数之和,对所述第三求和结果进行解密,得到混入了第二噪声数据后的预测结果。所述第一设备具体可以计算所述第三求和结果与随机数之和的差值,从而得到混入了第二噪声数据后的预测结果。
在另一些实施例中,由第一设备和/或第二设备获得比较结果。所述比较结果用于表示决策森林的预测结果与预设阈值之间的大小。所述预设阈值的大小可以根据实际需要灵活设定。在实际应用中,所述预设阈值可以为一个临界值。在预测结果大于所述预设阈值时,可以执行一种预置操作;在预测结果小于所述预设阈值时,可以执行另一种预置操作。例如,所述预设阈值可以为风险评估业务中的一个临界值。决策森林的预测结果可以为用户的信用分值。当某一用户的信用分值大于所述预设阈值时,则表示该用户的风险水平较高,可以拒绝执行对该用户进行贷款的操作;当某一用户的信用分值小于所述阈值时,则表示该用户的风险水平较低,可以执行对该用户进行贷款的操作。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第一设备可以对决策树对应的随机数与所述预设阈值进行求和处理,得到第四求和结果。所述第一设备可以以所述第四求和结果为输入,所述第二设备可以以所述目标叶子值密文为输入,共同执行多方安全比较算法。通过执行多方安全比较算法可以实现:在所述第一设备不泄漏所述第四求和结果、且所述第二设备不泄漏所述目标叶子值密文的条件下,所述第一设备和/或所述第二设备获得第一比较结果。所述第一比较结果表示所述第四求和结果与所述目标叶子值密文之间的大小关系。鉴于所述目标叶子值密文是通过将决策树所对应的随机数与叶子节点所对应的叶子值相加得到的,这样所述第一比较结果还能够表示所述目标叶子节点对应的明文数据(即,叶子值)与所述预设阈值之间的大小关系,这里所述目标叶子节点对应的明文数据即为决策森林的预测结果。值得说明的是,这里可以采用现有的任意多方安全比较算法来实现,具体比较过程不再做具体的介绍。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第二求和结果。所述第一设备将计算决策森林中各个决策树对应的随机数之和;可以对随机数之和与所述预设阈值进行求和处理,得到第四求和结果。所述第一设备可以以所述第四求和结果为输入,所述第二设备可以以所述第二求和结果为输入,共同执行多方安全比较算法。通过执行多方安全比较算法可以实现:在所述第一设备不泄漏所述第四求和结果、且所述第二设备不泄漏所述第二求和结果的条件下,所述第一设备和/或所述第二设备获得第二比较结果。所述第二比较结果表示所述第四求和结果与所述第二求和结果之间的大小关系。鉴于目标叶子值密文是通过将决策树所对应的随机数与叶子节点所对应的叶子值相加得到的,且所述第二求和结果是通过将所述多个目标叶子值密文相加得到的,这样所述第二比较结果还能够表示所述多个目标叶子节点所对应的叶子值之和与所述预设阈值之间的大小关系,这里所述多个目标叶子节点所对应的叶子值之和即为决策森林的预测结果。
本说明书实施例的数据处理方法,第一设备可以为决策森林中的决策树生成对应的随机数;可以利用随机数对决策森林中决策树的叶子节点所对应的叶子值进行加密,得到叶子值密文。第二设备可以基于决策树的参数信息确定目标位置标识。第一设备可以以决策树森林中决策树的各个叶子节点所对应的叶子值密文为输入,第二设备可以以该决策树的目标位置标识为输入,进行不经意传输;第二设备可以从第一设备输入的叶子值密文中选择目标叶子值密文。这样基于不经意传输,可以在所述第一设备不泄漏决策森林、且所述第二设备不泄漏业务数据的条件下,第一设备和/或第二设备获得决策森林的预测结果,或者,获得比较结果。所述比较结果用于表示预测结果与预设阈值之间的大小关系。
本说明书还提供数据处理方法的另一个实施例。在实际应用中该实施例可以应用于预测阶段。请参阅图6。该实施例以第一设备为执行主体。所述第一设备可以提供有决策森林,所述决策森林可以包括至少一个决策树。该实施例可以包括以下步骤。
步骤S30:为决策树生成对应的随机数。
在一些实施例中,所述决策森林可以包括一个决策树。如此,所述第一设备可以为该决策树生成一个对应的随机数。
在另一些实施例中,所述决策森林可以包括多个决策树。如此,所述第一设备可以为所述多个决策树生成多个随机数。所述多个随机数的和可以为特定数值。所述特定数值可以为一个完全的随机数;或者,也可以为固定数值0;或者,还可以为一个预先生成的噪声数据。
步骤S32:利用随机数对决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文。
在一些实施例中,针对所述决策森林中的每个决策树,所述第一设备可以利用该决策树对应的随机数,对该决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文。在实际应用中,所述第一设备可以将该决策树对应的随机数分别与该决策树的各个叶子节点所对应的叶子值相加。
步骤S34:以决策树的各个叶子节点所对应的叶子值密文为输入,与第二设备进行不经意传输。
在一些实施例中,第二设备可以获得目标位置标识。关于第二设备获得目标位置标识的过程可以参见前面的实施例。如此,所述第一设备可以以决策树森林中每个决策树的各个叶子节点所对应的叶子值密文为输入,第二设备可以以该决策树的目标位置标识为输入,进行不经意传输。通过不经意经意传输可以实现:第二设备从第一设备输入的叶子值密文中选择目标叶子值密文,所述目标叶子值密文即为所述目标叶子节点对应的叶子值密文。其中,该决策树的各个叶子节点所对应的叶子值密文可以视作第一设备在不经意传输过程中输入的秘密信息,该决策树的目标位置标识可以视作第二设备在不经意传输过程中输入的选择信息,这样便可以实现第二设备选择目标叶子值密文。根据不经意传输的特性,所述第一设备并不知晓所述第二设备具体选择哪个叶子值密文作为目标叶子值密文,所述第二设备也不能够知晓除了所选择的目标叶子值密文以外的其它叶子值密文。
本说明书实施例的数据处理方法,第一设备可以为决策树生成对应的随机数;可以利用随机数对决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文;可以以决策树的叶子节点所对应的叶子值密文为输入,与第二设备进行不经意传输。这样通过不经意传输,第一设备可以在不泄漏自身拥有的决策森林的前提下,向第二设备传输目标叶子值密文,以实现基于决策森林对业务数据进行预测。
本说明书还提供数据处理方法的另一个实施例。在实际应用中该实施例可以应用于预测阶段。请参阅图7。该实施例以第二设备为执行主体。所述第二设备可以提供有决策森林中决策树的参数信息。所述参数信息可以包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。该实施例可以包括以下步骤。
步骤S40:基于决策树的参数信息确定目标位置标识,所述目标位置标识对应的叶子节点与业务数据相匹配。
在一些实施例中,经过预处理阶段(具体过程请参见图2对应的实施例),所述第二设备可以获得决策森林中各个决策树的参数信息。根据所述参数信息,所述第二设备可以重构决策树的骨架。由于所述参数信息中包括分裂节点对应的分裂条件、但不包括叶子节点对应的叶子值,因而重构的决策树骨架中包括分裂节点对应的分裂条件、但不包括叶子节点对应的叶子值。如此,所述第二设备可以基于决策森林中每个决策树的骨架,获取与业务数据相匹配的一条预测路径;可以将该预测路径中的叶子节点,作为该决策树中与所述业务数据相匹配的目标叶子节点;可以将所述目标叶子节点对应的位置标识作为目标位置标识。
步骤S42:以所述目标位置标识为输入,与第一设备进行不经意传输;从第一设备输入的决策树的各个叶子节点所对应的叶子值密文中选择目标叶子值密文。
在一些实施例中,所述第一设备可以以决策树森林中每个决策树的各个叶子节点所对应的叶子值密文为输入,第二设备可以以该决策树的目标位置标识为输入,进行不经意传输。通过不经意经意传输可以实现:第二设备从第一设备输入的叶子值密文中选择目标叶子值密文,所述目标叶子值密文即为所述目标叶子节点对应的叶子值密文。其中,该决策树的各个叶子节点所对应的叶子值密文可以视作第一设备在不经意传输过程中输入的秘密信息,该决策树的目标位置标识可以视作第二设备在不经意传输过程中输入的选择信息,这样便可以实现第二设备选择目标叶子值密文。根据不经意传输的特性,所述第一设备并不知晓所述第二设备具体选择哪个叶子值密文作为目标叶子值密文,所述第二设备也不能够知晓除了所选择的目标叶子值密文以外的其它叶子值密文。
在一些实施例中,由所述第二设备获得决策森林的预测结果。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第二设备可以直接将所述目标叶子值密文作为决策森林的预测结果。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第一求和结果;可以将所述第一求和结果作为决策森林的预测结果。
在另一些实施例中,由所述第一设备获得决策森林的预测结果。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第二设备可以向所述第一设备发送所述目标叶子值密文。所述第一设备可以接收所述目标叶子值密文;可以利用决策树对应的随机数,对所述目标叶子值密文进行解密,得到叶子值作为决策森林的预测结果。或者,所述第二设备还可以对所述目标叶子值密文与噪声数据进行求和处理,得到第一求和结果;可以向第一设备发送所述第一求和结果。所述第一设备可以接收所述第一求和结果;可以利用决策树对应的随机数,对所述第一求和结果进行解密,得到混入了噪声数据后的叶子值;即,得到混入了噪声数据后的预测结果。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第二求和结果;可以向所述第一设备发送所述第二求和结果。所述第一设备可以接收所述第二求和结果;可以利用决策森林中各个决策树所对应的随机数之和,对所述第二求和结果进行解密,得到决策森林的预测结果。或者,所述第二设备还可以对所述第二求和结果与所述噪声数据进行求和处理,得到第三求和结果;可以向所述第一设备发送所述第三求和结果。所述第一设备可以接收所述第三求和结果;可以利用决策森林中各个决策树所对应的随机数之和,对所述第三求和结果进行解密,得到混入了噪声数据后的预测结果。
在另一些实施例中,由第一设备和/或第二设备可以获得比较结果。所述比较结果用于表示决策森林的预测结果与预设阈值之间的大小。所述预设阈值的大小可以根据实际需要灵活设定。在实际应用中,所述预设阈值可以为一个临界值。
在本实施例的一个实施方式中,所述决策森林可以包括一个决策树,这样所述第二设备可以获得一个目标叶子值密文。如此,所述第一设备可以对决策树对应的随机数与所述预设阈值进行求和处理,得到第四求和结果。所述第一设备可以以所述第四求和结果为输入,所述第二设备可以以所述目标叶子值密文为输入,共同执行多方安全比较算法。通过执行多方安全比较算法可以实现:在所述第一设备不泄漏所述第四求和结果、且所述第二设备不泄漏所述目标叶子值密文的条件下,所述第一设备和/或所述第二设备获得第一比较结果。所述第一比较结果用于表示所述第四求和结果与所述目标叶子值密文之间的大小关系;还能够表示所述目标叶子节点对应的明文数据(即,叶子值)与所述预设阈值之间的大小关系,这里所述目标叶子节点对应的明文数据即为决策森林的预测结果。
在本实施例的另一个实施方式中,所述决策森林可以包括多个决策树,这样所述第二设备可以获得多个目标叶子值密文。如此,所述第二设备可以对所述多个目标叶子值密文进行求和处理,得到第二求和结果。所述第一设备将计算决策森林中各个决策树对应的随机数之和;可以对计算的随机数之和与所述预设阈值进行求和处理,得到第四求和结果。所述第一设备可以以所述第四求和结果为输入,所述第二设备可以以所述第二求和结果为输入,共同执行多方安全比较算法。通过执行多方安全比较算法可以实现:在所述第一设备不泄漏所述第四求和结果、且所述第二设备不泄漏所述第二求和结果的条件下,所述第一设备和/或所述第二设备获得第二比较结果。所述第二比较结果用于表示所述第四求和结果与所述第二求和结果之间的大小关系;还能够表示多个目标叶子节点所对应的叶子值之和与所述预设阈值之间的大小关系,这里多个目标叶子节点所对应的叶子值之和即为决策森林的预测结果。
本说明书实施例的数据处理方法,第二设备可以基于决策树的参数信息确定目标位置标识;可以以所述目标位置标识为输入,与第一设备进行不经意传输,从第一设备输入的决策树的叶子节点所对应的叶子值密文中选择目标叶子值密文。这样基于不经意传输,可以在所述第一设备不泄漏决策森林、且第二设备不泄漏业务数据的条件下,第一设备和/或第二设备获得决策森林的预测结果,或者,获得比较结果。所述比较结果用于表示预测结果与预设阈值之间的大小关系。
请参阅图8。本说明书还提供一种数据处理装置的实施例。该实施例可以应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树。所述装置具体包括以下单元。
发送单元50,用于向第二设备发送决策树的参数信息,所述参数信息包括分裂节点对应的位置标识和分裂条件、以及叶子节点对应的位置标识,但不包括叶子节点对应的叶子值。
请参阅图9。本说明书还提供一种数据处理装置的实施例。该实施例可以应用于第一设备,所述第一设备提供有决策森林,所述决策森林包括至少一个决策树。所述装置具体包括以下单元。
生成单元60,用于为所述决策树生成对应的随机数。
加密单元62,用于利用随机数对决策树的各个叶子节点所对应的叶子值进行加密,得到叶子值密文。
传输单元64,用于以决策树的各个叶子节点所对应的叶子值密文为输入,与第二设备进行不经意传输。
请参阅图10。本说明书还提供一种数据处理装置的实施例。该实施例可以应用于第二设备,所述第二设备提供有决策森林中决策树的参数信息;所述参数信息包括分裂节点所对应的位置标识和分裂条件、以及叶子节点所对应的位置标识,但不包括叶子节点所对应的叶子值。所述装置具体包括以下单元。
确定单元70,用于基于决策树的参数信息确定目标位置标识,所述目标位置标识对应的叶子节点与业务数据相匹配。
传输单元72,用于以所述目标位置标识为输入,与第一设备进行不经意传输;从第一设备输入的决策树的各个叶子节点所对应的叶子值密文中选择目标叶子值密文。
下面介绍本说明书电子设备的一个实施例。图11是该实施例中一种电子设备的硬件结构示意图。如图11所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图11所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图11所示更多或者更少的组件单元;或者,具有与图11所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图2所对应实施例的程序指令或模块、图5所对应实施例的程序指令或模块、图6所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于数据处理方法实施例,所以描述的比较简单,相关之处参见数据处理方法实施例的部分说明即可。
另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。