【技术实现步骤摘要】
一种两方决策树训练方法和系统
[0001]本说明书涉及信息
,特别涉及一种两方决策树训练方法和系统。
技术介绍
[0002]为了保护各方数据隐私,在机器学习领域会采用分布式训练方案。即,在不泄露任一参与方持有的样本数据的前提下,任一参与方可训练属于自己的模型。决策树是一种树结构的模型即树模型,有非常广泛的应用,例如应用于各种场景的决策、分类等。
[0003]目前,希望提供一种针对决策树的分布式训练方案。
技术实现思路
[0004]本说明书实施例之一提供一种两方决策树训练方法,其中,样本集中各样本的一个或多个特征的特征值以及标签值垂直分布于所述两方,所述方法由第一方的设备执行,所述第一方为两方中的任一方,第二方为两方中的另一方;所述方法包括:按以下分裂步骤对任一节点进行分裂:获得所述节点的标志向量的第一分片、第一梯度向量的第一分片以及第二梯度向量的第一分片;标志向量指示属于相应节点的样本,第一梯度向量包括属于相应节点的样本对应的第一梯度,第二梯度向量包括属于相应节点的样本对应的第二梯度;对于第一方 ...
【技术保护点】
【技术特征摘要】
1.一种两方决策树训练过程中的节点分裂方法,用于对决策树中的某一节点进行分裂,其中,样本集中各样本的一个或多个特征的特征值以及标签值垂直分布于所述两方,所述方法由第一方的设备执行,所述第一方为两方中的任一方,第二方为两方中的另一方;所述方法包括:获得所述节点的第一梯度向量的第一分片以及第二梯度向量的第一分片;第一梯度向量包括属于相应节点的样本对应的第一梯度,第二梯度向量包括属于相应节点的样本对应的第二梯度;对于第一方的任一特征:按该特征的特征值对所述样本集排序并得到第一排列向量,排列向量用于标识对等长序列进行排序的操作,其元素指示所述等长序列中位置对应的数据在排序结果序列中的位置;基于第一梯度向量的第一分片、所述第一排列向量与第二方基于第一梯度向量的第二分片,通过安全排列方法按该特征值对第一梯度向量进行排列,获得第一梯度排序结果向量的第一分片,同时第二方获得第一梯度排序结果向量的第二分片;基于第二梯度向量的第一分片、所述第一排列向量与第二方基于第二梯度向量的第二分片,通过安全排列方法按该特征值对第二梯度向量进行排列,获得第二梯度排序结果向量的第一分片,同时第二方获得第二梯度排序结果向量的第二分片;按预设划分方式分别对第一梯度排序结果向量的第一分片中的元素与第二梯度排序结果向量的第一分片中的元素进行划分,得到第一梯度向量的第一分片的多个第一分组与第二梯度向量的第一分片的多个第一分组,对于多个第一分组中的每一个:计算第一梯度向量的第一分片的该第一分组所包括元素之和,得到该第一分组对应的第一梯度和的第一分片;计算第二梯度向量的第一分片的该第一分组所包括元素之和,得到该第一分组对应的第二梯度和的第一分片;对于第二方的任一特征:基于第一梯度向量的第一分片与第二方基于第一梯度向量的第二分片、第二排列向量,通过安全排列方法按该特征的特征值对第一梯度向量进行排列,获得第一梯度排序结果向量的第一分片,同时第二方获得第一梯度排序结果向量的第二分片;基于第二梯度向量的第一分片与第二方基于第二梯度向量的第二分片、第二排列向量,通过安全排列方法按该特征值对第二梯度向量进行排列,获得第二梯度排序结果向量的第一分片,同时第二方获得第二梯度排序结果向量的第二分片;其中,所述第二排列向量由第二方按该特征的特征值对所述样本集排序得到;按预设划分方式分别对第一梯度排序结果向量的第一分片中的元素与第二梯度排序结果向量的第一分片中的元素进行划分,得到第一梯度向量的第一分片的多个第二分组与第二梯度向量的第一分片的多个第二分组,对于多个第二分组中的每一个:计算第一梯度向量的第一分片的该第二分组所包括元素之和,得到该第二分组对应的第一梯度和的第一分片;计算第二梯度向量的第一分片的该第二分组所包括元素之和,得到该第二分组对应的第二梯度和的第一分片;按照多方安全计算协议与第二方的设备交互,以基于各特征下的各分组分别对应的第一梯度和的第一分片以及第二梯度和的第一分片,计算各特征下的各分组分别对应的分裂增益的第一分片;
按照多方安全比较协议与第二方的设备交互,以基于各特征下的各分组分别对应的分裂增益的第一分片,确定最大分裂增益,并根据所述最大分裂增益对应的特征及分组记录所述节点的分裂信息。2.如权利要求1所述的方法,还包括:获得所述节点的标志向量的第一分片,标志向量指示属于相应节点的样本;当所述最大分裂增益对应第一方的特征时,生成所述节点的左子树向量和右子树向量,所述左子树向量指示根据所述最大分裂增益对应的特征及分组划分所述样本集得到的左子集中的样本,所述右子树向量指示根据所述最大分裂增益对应的特征及分组划分所述样本集得到的右子集中的样本,左子集与左子树对应,右子集与右子树对应;将所述左子树向量拆分成第一分片和第二分片,并将所述左子树向量的第二分片发送给第二方的设备;将所述右子树向量拆分成第一分片和第二分片,并将所述右子树向量的第二分片发送给第二方的设备;当所述最大分裂增益对应第二方的特征时,从第二方的设备接收所述节点的左子树向量的第一分片和右子树向量的第一分片;按照多方安全计算协议与第二方的设备交互,以基于所述节点的标志向量的第一分片以及所述左子树向量的第一分片,计算所述节点的左子树的标志向量的第一分片;按照多方安全计算协议与第二方的设备交互,以基于所述节点的标志向量的第一分片以及所述右子树向量的第一分片,计算所述节点的右子树的标志向量的第一分片。3.如权利要求2所述的方法,还包括:按照多方安全计算协议与第二方的设备交互,以基于所述节点的第一梯度向量的第一分片以及所述节点的左子树的标志向量的第一分片,计算所述节点的左子树的第一梯度向量的第一分片;按照多方安全计算协议与第二方的设备交互,以基于所述节点的第二梯度向量的第一分片以及所述节点的左子树的标志向量的第一分片,计算所述节点的左子树的第二梯度向量的第一分片;按照多方安全计算协议与第二方的设备交互,以基于所述节点的第一梯度向量的第一分片以及所述节点的右子树的标志向量的第一分片,计算所述节点的右子树的第一梯度向量的第一分片;按照多方安全计算协议与第二方的设备交互,以基于所述节点的第二梯度向量的第一分片以及所述节点的右子树的标志向量的第一分片,计算所述节点的右子树的第二梯度向量的第一分片。4.如权利要求1所述的方法,所述预设划分方式包括按照预设频数划分。5.如权利要求1所述的方法,其中,所述按照多方安全计算协议与第二方的设备交互,以基于各特征下的各分组分别对应的第一梯度和的第一分片以及第二梯度和的第一分片,计算各特征下的各分组分别对应的分裂增益的第一分片,包括:对于任一特征:基于该特征下的各分组分别对应的第一梯度和的第一分片,计算该特征下的各分组分别对应的左子树第一梯度和的第一分片和右子树第一梯度和的第一分片;其中,左子树第一梯度和等于第一梯度向量的第一分片和第二分片中与属于左子集的样本对应的元素之和,右子树第一梯度和等于第一梯度向量的第一分片和第二分片中与属于右子集的样本对应的元素之和;基于该特征下的各分组分别对应的第二梯度和的第一分片,计算该特征下的各分组分
别对应的左子树第二梯度和的第一分片和右子树第二梯度和的第一分片;其中,左子树第二梯度和等于第二梯度向量的第一分片和第二分片中与属于左子集的样本对应的元素之和,右子树第二梯度和等于第二梯度向量的第一分片和第二分片中与属于右子集的样本对应的元素之和;对于任一特征的任一分组:按照多方安全计算协议与第二方的设备交互,根据根据计算该特征下的该分组对应的分裂增益的第一分片,其中,表示该特征下的该分组对应的分裂增益,G
L
表示该特征下的该分组对应的左子树第一梯度和的第一分片与第二分片之和,G
R
表示该特征下的该分组对应的右子树第一梯度和的第一分片与第二分片之和,H
L
表示该特征下的该分组对应的左子树第二梯度和的第一分片与第二分片之和,H
R
表示该特征下的该分组对应的右子树第二梯度和的第一分片与第二分片之和,表示预设系数。6.如权利要求1所述的方法,其中,安全排序方法包括:第一参与方从第三方获取第一中间排列向量、第一数据列的第一分片和基于所述第一中间排列向量对所述第一数据列进行排序的第一结果序列的第一分片;第二参与方从可信第三方处获取第一数据列的第二分片和第一结果序列的第二分片;第一参与方基于目标排列向量对所述第一中间排列向量进行排序,得到第二中间排列向量,并将其发送给第二参与方;第一参与方将待排序数据列的第一分片与第一数据列的第一分片作差,获得第二数据列的第一分片,同时从第二方获取第二数据列的第二分片;第二数据列的第二分片为第二参与方将待排序数据列的第二分片与第一数据列的第二分片作差得到;第一参与方基于第二数据列的第一分片以及第二数据列的第二分片,获得第二数据列,并基于目标排列向量对第二数据列进行排序,得到第二结果数据列;基于第二中间排列向量对所述第一结果数据列的第一分片进行排序,得到第三结果数据列;以及,对第二结果数据列和第三结果数据列求和,获得目标数据列的第一分片;第二参与方基于第二中间排列向量对第一结果序列的第二分片进行排序,获得目标数据列的第二分片;所述目标数据列等于基于所述目标排列向量对所述待排序数据列进行排序的结果序列;当基于第一梯度向量的第一分片、所述第一排列向量与第二方基于第一梯度向量的第二分片,通过安全排列方法按该特...
【专利技术属性】
技术研发人员:方文静,王力,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。