基于联邦训练的样本预测方法、装置及存储介质与流程

文档序号:16538983发布日期:2019-01-08 20:10阅读:174来源:国知局
基于联邦训练的样本预测方法、装置及存储介质与流程
本发明涉及机器学习
技术领域
,尤其涉及一种基于联邦训练的样本预测方法、装置及计算机可读存储介质。
背景技术
:当前信息时代,人们的某些行为可以通过数据表现出来,比如消费行为,因而衍生出了大数据分析,通过机器学习构建相应的行为分析模型,进而可对人们的行为进行分类或者基于用户的行为特征进行预测等。现有的机器学习技术中通常都是由一方对样本数据进行独立训练,也即是单方建模。同时,基于建立的数学模型,可确定样本特征集中重要程度相对较高的特征。然而在很多跨领域的大数据分析场景中,比如用户既有消费行为,也有借贷行为,而用户消费行为数据产生在消费服务提供方,而用户借贷行为数据产生在金融服务提供方,如果金融服务提供方需要基于用户的消费行为特征预测用户的借贷行为,则需要使用消费服务提供方的消费行为数据并与本方的借贷行为数据一起进行机器学习来构建预测模型。因此,针对上述应用场景,需要一种新的建模方式来实现不同数据提供方的样本数据的联合训练,进而实现双方共同参与建模。技术实现要素:本发明的主要目的在于提供一种基于联邦训练的样本预测方法、装置及计算机可读存储介质,旨在解决现有技术无法实现不同数据提供方的样本数据的联合训练,进而无法实现双方共同参与建模与样本预测的技术问题。为实现上述目的,本发明提供一种基于联邦训练的样本预测方法,所述基于联邦训练的样本预测方法包括以下步骤:采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型,其中,所述梯度提升树模型包括多棵回归树,所述回归树的一个分裂节点对应训练样本的一个特征;基于所述梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分。可选地,所述基于联邦训练的样本预测方法包括:在进行联邦训练之前,采用盲签名和rsa加密演算法,对样本数据的id进行交互加密;通过比较双方加密后的id加密串,识别双方样本中的交集部分,并将样本中的交集部分作为样本对齐后的训练样本。可选地,所述两个对齐的训练样本分别为第一训练样本和第二训练样本;所述第一训练样本属性包括样本id以及部分样本特征,所述第二训练样本属性包括样本id、另一部分样本特征以及数据标签;所述第一训练样本由第一数据方提供并保存在第一数据方本地,所述第二训练样本由第二数据方提供并保存在第二数据方本地。可选地,所述采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型包括:在所述第二数据方侧,获取本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;若本轮节点分裂为构造回归树的首轮节点分裂,则对所述一阶梯度与所述二阶梯度进行加密后与所述样本集的样本id一起发送至所述第一数据方,以供在所述第一数据方侧基于加密的所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;若本轮节点分裂为构造回归树的非首轮节点分裂,则将所述样本集的样本id发送至所述第一数据方,以供在所述第一数据方侧沿用首轮节点分裂所使用的一阶梯度与二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;第二数据方接收所述第一数据方返回的所有分裂节点的加密收益值并进行解密;在所述第二数据方侧,基于所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;基于双方各自计算出的所有分裂节点的收益值,确定本轮节点分裂的全局最佳分裂节点;基于本轮节点分裂的全局最佳分裂节点,对当前节点对应的样本集进行分裂,生成新的节点以构建梯度提升树模型的回归树。可选地,所述在所述第二数据方侧,获取本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度的步骤之前,还包括:在进行节点分裂时,判断本轮节点分裂是否对应构造首棵回归树;若本轮节点分裂对应构造首棵回归树,则判断本轮节点分裂是否为构造首棵回归树的首轮节点分裂;若本轮节点分裂为构造首棵回归树的首轮节点分裂,则在所述第二数据方侧,初始化本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;若本轮节点分裂为构造首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度;若本轮节点分裂对应构造非首棵回归树,则判断本轮节点分裂是否为构造非首棵回归树的首轮节点分裂;若本轮节点分裂为构造非首棵回归树的首轮节点分裂,则根据上一轮联邦训练更新一阶梯度与二阶梯度;若本轮节点分裂为构造非首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度。可选地,所述基于联邦训练的样本预测方法还包括:当生成新的节点以构建梯度提升树模型的回归树时,在所述第二数据方侧,判断本轮回归树的深度是否达到预设深度阈值;若本轮回归树的深度达到所述预设深度阈值,则停止节点分裂,得到梯度提升树模型的一棵回归树,否则继续下一轮节点分裂;当停止节点分裂时,在所述第二数据方侧,判断本轮回归树的总数量是否达到预设数量阈值;若本轮回归树的总数量达到所述预设数量阈值,则停止联邦训练,否则继续下一轮联邦训练。可选地,所述基于联邦训练的样本预测方法还包括:在所述第二数据方侧,记录每一轮节点分裂确定的全局最佳分裂节点的相关信息;其中,所述相关信息包括:对应样本数据的提供方、对应样本数据的特征编码以及收益值。可选地,所述统计所述梯度提升树模型中同一特征对应的分裂节点的平均收益值包括:在所述第二数据方侧,以各全局最佳分裂节点作为所述梯度提升树模型中各回归树的分裂节点,统计同一特征编码对应的分裂节点的平均收益值。可选地,所述基于所述梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分包括:在所述第二数据方侧,遍历所述梯度提升树模型对应的回归树;若当前遍历节点的属性值记录在所述第二数据方,则通过比较本地待预测样本的数据点与当前遍历节点的属性值,以确定下一遍历节点;若当前遍历节点的属性值记录在所述第一数据方,则向所述第一数据方发起查询请求,以供在所述第一数据方侧,通过比较本地待预测样本的数据点与当前遍历节点的属性值,确定下一遍历节点并向所述第二数据方返回该节点信息;当遍历完所述梯度提升树模型对应的回归树时,基于待预测样本所属节点所对应的样本的数据标签,确定待预测样本的样本类别,或基于待预测样本所属节点的权重值,获得待预测样本的预测得分。进一步地,为实现上述目的,本发明还提供一种基于联邦训练的样本预测装置,所述基于联邦训练的样本预测装置包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的样本预测程序,所述样本预测程序被所述处理器执行时实现如上任一项所述的基于联邦训练的样本预测方法的步骤。进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有样本预测程序,所述样本预测程序被处理器执行时实现如上任一项所述的基于联邦训练的样本预测方法的步骤。本发明采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型,其中,梯度提升树模型为回归树集合,其包括有多棵回归树,每棵回归树的一个分裂节点对应训练样本的一个特征;最后在基于梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分。本发明实现了使用不同数据方的训练样本进行联邦训练建模,进而可实现对具有多方样本数据特征的样本进行预测。附图说明图1是本发明基于联邦训练的样本预测装置实施例方案涉及的硬件运行环境的结构示意图;图2为本发明基于联邦训练的样本预测方法一实施例的流程示意图;图3为本发明基于联邦训练的样本预测方法一实施例中进行样本对齐的流程示意图;图4为图2中步骤s10一实施例的细化流程示意图;图5为本发明基于联邦训练的样本预测方法一实施例的训练结果示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明提供一种基于联邦训练的样本预测装置。如图1所示,图1是本发明基于联邦训练的样本预测装置实施例方案涉及的硬件运行环境的结构示意图。本发明基于联邦训练的样本预测装置可以是个人电脑,也可以是服务器等具有计算处理能力的设备。如图1所示,基于联邦训练的样本预测装置可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的基于联邦训练的样本预测装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文件拷贝程序。在图1所示的基于联邦训练的样本预测装置中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的样本预测程序,并执行以下操作:采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型,其中,所述梯度提升树模型包括多棵回归树,所述回归树的一个分裂节点对应训练样本的一个特征;基于所述梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在进行联邦训练之前,采用盲签名和rsa加密演算法,对样本数据的id进行交互加密;通过比较双方加密后的id加密串,识别双方样本中的交集部分,并将样本中的交集部分作为样本对齐后的训练样本。进一步地,所述两个对齐的训练样本分别为第一训练样本和第二训练样本;所述第一训练样本属性包括样本id以及部分样本特征,所述第二训练样本属性包括样本id、另一部分样本特征以及数据标签;所述第一训练样本由第一数据方提供并保存在第一数据方本地,所述第二训练样本由第二数据方提供并保存在第二数据方本地;处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在所述第二数据方侧,获取本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;若本轮节点分裂为构造回归树的首轮节点分裂,则对所述一阶梯度与所述二阶梯度进行加密后与所述样本集的样本id一起发送至所述第一数据方,以供在所述第一数据方侧基于加密的所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;若本轮节点分裂为构造回归树的非首轮节点分裂,则将所述样本集的样本id发送至所述第一数据方,以供在所述第一数据方侧沿用首轮节点分裂所使用的一阶梯度与二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;第二数据方接收所述第一数据方返回的所有分裂节点的加密收益值并进行解密;在所述第二数据方侧,基于所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;基于双方各自计算出的所有分裂节点的收益值,确定本轮节点分裂的全局最佳分裂节点;基于本轮节点分裂的全局最佳分裂节点,对当前节点对应的样本集进行分裂,生成新的节点以构建梯度提升树模型的回归树。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在进行节点分裂时,判断本轮节点分裂是否对应构造首棵回归树;若本轮节点分裂对应构造首棵回归树,则判断本轮节点分裂是否为构造首棵回归树的首轮节点分裂;若本轮节点分裂为构造首棵回归树的首轮节点分裂,则在所述第二数据方侧,初始化本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;若本轮节点分裂为构造首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度;若本轮节点分裂对应构造非首棵回归树,则判断本轮节点分裂是否为构造非首棵回归树的首轮节点分裂;若本轮节点分裂为构造非首棵回归树的首轮节点分裂,则根据上一轮联邦训练更新一阶梯度与二阶梯度;若本轮节点分裂为构造非首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在所述第一数据方侧,基于加密的所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;或者在所述第一数据方侧,沿用首轮节点分裂所使用的一阶梯度与二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;对所有分裂节点的收益值进行加密后发送至所述第二数据方。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:当生成新的节点以构建梯度提升树模型的回归树时,在所述第二数据方侧,判断本轮回归树的深度是否达到预设深度阈值;若本轮回归树的深度达到所述预设深度阈值,则停止节点分裂,得到梯度提升树模型的一棵回归树,否则继续下一轮节点分裂;当停止节点分裂时,在所述第二数据方侧,判断本轮回归树的总数量是否达到预设数量阈值;若本轮回归树的总数量达到所述预设数量阈值,则停止联邦训练,否则继续下一轮联邦训练。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在所述第二数据方侧,记录每一轮节点分裂确定的全局最佳分裂节点的相关信息;其中,所述相关信息包括:对应样本数据的提供方、对应样本数据的特征编码以及收益值。进一步地,处理器1001调用存储器1005中存储的样本预测程序还执行以下操作:在所述第二数据方侧,遍历所述梯度提升树模型对应的回归树;若当前遍历节点的属性值记录在所述第二数据方,则通过比较本地待预测样本的数据点与当前遍历节点的属性值,以确定下一遍历节点;若当前遍历节点的属性值记录在所述第一数据方,则向所述第一数据方发起查询请求,以供在所述第一数据方侧,通过比较本地待预测样本的数据点与当前遍历节点的属性值,确定下一遍历节点并向所述第二数据方返回该节点信息;当遍历完所述梯度提升树模型对应的回归树时,基于待预测样本所属节点所对应的样本的数据标签,确定待预测样本的样本类别,或基于待预测样本所属节点的权重值,获得待预测样本的预测得分。基于上述基于联邦训练的样本预测装置实施例方案涉及的硬件运行环境,提出本发明基于联邦训练的样本预测方法的以下各实施例。参照图2,图2为本发明基于联邦训练的样本预测方法一实施例的流程示意图。本实施例中,所述基于联邦训练的样本预测方法包括以下步骤:步骤s10,采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型,其中,所述梯度提升树模型包括多棵回归树,所述回归树的一个分裂节点对应训练样本的一个特征;xgboost(extremegradientboosting)算法是在gbdt(gradientboostingdecisiontree,梯度提升树)算法的基础上对boosting算法进行的改进,内部决策树使用的是回归树,算法输出是回归树的集合,包含有多棵回归树,训练学习的基本思路是遍历训练样本所有特征的所有分割方法(也即节点分裂的方式),选择损失最小的分割方法,得到两个叶子(也即分裂节点而生成新节点),然后继续遍历,直至:(1)若满足停止分裂条件,则输出一棵回归树;(2)若满足停止迭代条件,则输出一个回归树集合。本实施例中,xgboost算法使用的训练样本为两个独立的训练样本,也即每一个训练样本分别归属不同的数据方。如果将两个训练样本看成一个整体训练样本,则由于两个训练样本归属不同的数据方,因此,可以看成是对整体训练样本进行切分,进而训练样本是同一样本的不同特征(样本纵切)。此外,由于两个训练样本分别归属不同的数据方,因此,为实现联邦训练建模,需要对双方提供的原始样本数据进行样本对齐。本实施例中,联邦训练是指样本训练过程由两数据方协作共同完成,最终训练得到的梯度提升树模型所包含的回归树,其分裂节点对应双方训练样本的特征。xgboost算法中,在遍历训练样本所有特征的所有分割方法时,通过收益值来评价分割方法的优劣,每次分裂节点都选择损失最小的分割方法。因此,分裂节点的收益值可作为特征重要性的评价依据,分裂节点的收益值越大,则节点分割损失越小,进而该分裂节点对应的特征的重要性也越大。本实施例中,由于训练得到的梯度提升树模型中包括有多棵回归树,而不同回归树有可能使用了相同特征进行节点分割,因此,需要统计梯度提升树模型包括的所有回归树中同一特征对应的分裂节点的平均收益值,并将平均收益值作为对应特征的评分。步骤s20,基于所述梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分。本实施例中,采用xgboost算法训练得到的梯度提升树模型可以实现对预测样本进行联合预测,从而实现对预测样本进行分类或进行打分。本实施例采用xgboost算法对两个对齐的训练样本进行联邦训练,以构建梯度提升树模型,其中,梯度提升树模型为回归树集合,其包括有多棵回归树,每棵回归树的一个分裂节点对应训练样本的一个特征;最后在基于梯度提升树模型,对待预测样本进行联合预测,以确定待预测样本的样本类别或获得待预测样本的预测得分。本发明实现了使用不同数据方的训练样本进行联邦训练建模,进而可实现对具有多方样本数据特征的样本进行预测。进一步地,为保证联邦建模过程中,不同数据方使用的样本梯度一致,因此,两个数据方在进行联邦建模之前,先进行双方样本对齐处理,具体处理流程如图3所示。双方样本对齐采用盲签名和rsa加密演算法对样本id进行交互加密方案,通过比较加密后的id加密串来识别双方样本中交集部分与非交集部分(隐私部分,彼此双方不可见),为实现对非交集部分样本数据的隐私保护,本发明在样本对齐过程中需要对样本数据进行加密。假设数据a方的样本id标识为xa:{u1,u2,u3,u4},数据b方的样本id标识为xb:{u1,u2,u3,u5},数据x的盲签名为e(x),b方生成的rsa密钥是(n,e,d),a方得到的rsa密钥是(n,e),进行如下示例过程:(1)a方对id加密:ya={(re%n)*e(u)|u∈xa},其中r是对应于xa中每一个不同的样本id生成的不同的随机数,然后a方把ya发送给b方;(2)b方把该id加密串进行再次加密:za={yd|y∈ya},b方再把双层加密的串za发给a方;(3)a方对za进行如下操作:(4)b方对id加密:zb={e(e(u))d|u∈xb},然后把zb发送给a方;(5)a方比较da和zb,如果这两个加密串相等,则表示xa和xb相等。相等的id则是样本交集部分({u1,u2,u3}),保留;不相等的部分({u4,u5}),因为是加密的形式,双方对此不可见,可丢弃。进一步地,为便于描述本发明的联合训练的具体实现方式,本实施例具体以两个独立的训练样本进行举例说明。本实施例中,第一数据方提供第一训练样本,第一训练样本属性包括样本id以及部分样本特征;第二数据方提供第二训练样本,第二训练样本属性包括样本id、另一部分样本特征以及数据标签。其中,样本特征是指样本所表现或具有的特征,比如样本为人,则对应的样本特征可以是年龄、性别、收入、学历等。数据标签用于对多个不同的样本进行分类,分类的结果具体依据于样本的特征进行判定得出。本发明联邦训练进行建模的主要意义在于实现双方样本数据的双向隐私保护。因此,在联邦训练过程中,第一训练样本保存在第一数据方本地,第二训练样本保存在第二数据方本地,例如下面表1中数据由第一数据方提供并保存在第一数据方本地,表面表2中数据由第二数据方提供并保存在第二数据方本地。表1如上表1所示,第一训练样本属性包含有样本id(x1~x5)、age特征、gender特征以及amountofgivencredit特征。表2样本idbillpaymenteducationlablex13102224x217250314x314027216x46787110x5280126如上表2所示,第二训练样本属性包含有样本id(x1~x5)、billpayment特征、education特征以及数据标签lable。进一步地,参照图4,图4为图2中步骤s10一实施例的细化流程示意图。基于上述实施例,本实施例中,上述步骤s10具体包括:步骤s101,在所述第二数据方侧,获取本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;xgboost算法是一种机器学习建模方法,需要使用分类器(也即分类函数)把样本数据映射到给定类别中的某一个,从而可以应用于数据预测。在利用分类器学习分类规则过程中,需要使用损失函数来判断机器学习的拟合误差大小。本实施例中,在每次进行节点分裂时,在第二数据方侧,获取本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度。其中,梯度提升树模型需要进行多轮联邦训练,每一轮联邦训练对应生成一棵回归树,而一棵回归树的生成需要进行多次节点分裂。因此,在每一轮联邦训练过程中,首次节点分裂使用的是最开始保存的训练样本,下一次的节点分裂则会使用上一次节点分裂所产生的新节点对应样本集的训练样本,并且同一轮联邦训练过程中,每一轮节点分裂都沿用首轮节点分裂所使用的一阶梯度与二阶梯度。而下一轮的联邦训练会使用上一轮联邦训练结果更新上一轮联邦训练所使用的一阶梯度与二阶梯度。xgboost算法支持自定义损失函数,使用自定义的损失函数对目标函数求一阶偏导数与二阶偏导数,对应得到本地待训练的样本数据的一阶梯度与二阶梯度。基于上述实施例中对于xgboost算法与梯度提升树模型的说明,因此,构建回归树需要确定分裂节点,而分裂节点可通过收益值确定。收益值gain的计算公式如下:其中,il代表当前节点分裂后左子节点的包含的样本集合,ir代表当前节点分裂后右子节点的包含的样本集合,gi表示样本i的一阶梯度,hi表示样本i的二阶梯度,λ、γ为常数。由于待训练的样本数据分别存在第一数据方与第二数据方,因此,需要在第一数据方侧与第二数据方侧分别计算各自样本数据在每一种分裂方式下分裂节点的收益值。本实施例中,由于第一数据方与第二数据方预先进行了样本对齐,因而双方具有相同的梯度特征,同时由于数据标签存在于第二数据方的样本数据中,因此,基于第二数据方的样本数据的一阶梯度与二阶梯度,计算双方样本数据在每一种分裂方式下分裂节点的收益值。步骤s102,若本轮节点分裂为构造回归树的首轮节点分裂,则对所述一阶梯度与所述二阶梯度进行加密后与所述样本集的样本id一起发送至所述第一数据方,以供在所述第一数据方侧基于加密的所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;本实施例中,为实现联邦训练过程中实现双方样本数据的双向隐私保护,因此,若本轮节点分裂为构造回归树的首轮节点分裂,则在第二数据方侧计算得到样本数据的一阶梯度与二阶梯度后,先进行加密,然后再发送给第一数据方。在第一数据方侧,基于接收到的样本数据的一阶梯度与二阶梯度,以及上述收益值gain的计算公式,计算得到第一数据方本地样本数据在每一种分裂方式下分裂节点的收益值,由于一阶梯度与二阶梯度进行了加密,因此,计算得到的收益值也是加密值,因而无需对收益值进行加密。在计算出样本数据的各种分割方式下分裂节点的收益值后,即可分裂生成新节点以构建回归树。本实施例优选由样本数据具有数据标签的第二数据方主导构建梯度提升树模型的回归树。因此,需要将在第一数据方侧计算得到的第一数据方本地样本数据在每一种分裂方式下分裂节点的收益值发送给第二数据方。步骤s103,若本轮节点分裂为构造回归树的非首轮节点分裂,则将所述样本集的样本id发送至所述第一数据方,以供在所述第一数据方侧沿用首轮节点分裂所使用的一阶梯度与二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;本实施例中,若本轮节点分裂为构造回归树的非首轮节点分裂,则只需将本轮节点分裂对应的样本集的样本id发送给第一数据方,而第一数据方继续沿用首轮节点分裂时所使用的一阶梯度与二阶梯度,计算本地与接收到的样本id对应的训练样本在每一种分裂方式下分裂节点的收益值。步骤s104,第二数据方接收所述第一数据方返回的所有分裂节点的加密收益值并进行解密;步骤s105,在所述第二数据方侧,基于所述一阶梯度与所述二阶梯度,计算本地与所述样本id对应的训练样本在每一种分裂方式下分裂节点的收益值;在第二数据方侧,基于计算得到的样本数据的一阶梯度与二阶梯度,以及上述收益值gain的计算公式,计算第二数据方本地待训练的样本数据在每一种分裂方式下分裂节点的收益值。步骤s106,基于双方各自计算出的所有分裂节点的收益值,确定本轮节点分裂的全局最佳分裂节点;由于双方初始的样本数据进行了样本对齐,因此,双方各自计算出的所有分裂节点的收益值可以看成是对双方整体数据样本在每一种分裂方式下分裂节点的收益值,因此,通过比较个收益值的大小,将收益值最大的分裂节点作为本轮节点分裂的全局最佳分裂节点。需要说明的是,该全局最佳分裂节点对应的样本特征既有可能属于第一数据方的训练样本,也有可能属于第二数据方的训练样本。可选的,由于梯度提升树模型的回归树构建由第二数据方主导,因此,在第二数据方侧,需要记录每一轮节点分裂确定的全局最佳分裂节点的相关信息;相关信息包括:对应样本数据的提供方、对应样本数据的特征编码以及收益值。例如,若数据方a持有全局最佳分割点对应的特征fi,则这条记录为(sitea,ea(fi),gain)。反之,若数据方b持有全局最佳分割点对应的特征fi,则这条记录为(siteb,eb(fi),gain)。其中,ea(fi)表示数据方a对特征fi进行编码,eb(fi)表示数据方b对特征fi进行编码,通过编码可以标示特征fi而不泄露其原始特征数据。可选的,在上述实施例中进行特征选择时,优选以各全局最佳分裂节点作为梯度提升树模型中各回归树的分裂节点,统计同一特征编码对应的分裂节点的平均收益值。步骤s107,基于本轮节点分裂的全局最佳分裂节点,对当前节点对应的样本集进行分裂,生成新的节点以构建梯度提升树模型的回归树。若本轮节点分裂的全局最佳分裂节点对应的样本特征属于第一数据方的训练样本,则本轮分割的当前节点对应的样本数据属于第一数据方。相应地,若本轮节点分裂的全局最佳分裂节点对应的样本特征属于第二数据方的训练样本,则本轮分割的当前节点对应的样本数据属于第二数据方。通过节点分裂,即可生成新的节点(左子节点和右子节点),从而构建回归树。而通过多轮节点分裂,则可以不断生成新的节点,进而得到树深度更深的回归树,而若停止节点分裂,则可得到梯度提升树模型的一棵回归树。本实施例中,由于双方计算通信的数据都是模型中间结果的加密数据,因此训练过程也不会泄露原始特征数据。同时整个训练过程中使用加密算法以保证数据的隐私性。优选采用部分同态加密算法,支持加法同态。进一步地,在一实施例中,基于节点分裂条件的不同,具体通过以下方式得到用于节点分裂的训练样本的一阶梯度与二阶梯度:1、本轮节点分裂对应构造首棵回归树1.1、若本轮节点分裂为构造首棵回归树的首轮节点分裂,则在第二数据方侧,初始化本轮节点分裂对应的样本集中各训练样本的一阶梯度与二阶梯度;1.2、若本轮节点分裂为构造首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度。2、本轮节点分裂对应构造非首棵回归树2.1、若本轮节点分裂对应构造非首棵回归树的首轮节点分裂,则根据上一轮联邦训练更新一阶梯度与二阶梯度;2.2、若本轮节点分裂为构造非首棵回归树的非首轮节点分裂,则沿用首轮节点分裂所使用的一阶梯度与二阶梯度。进一步地,在一实施例中,为降低回归树的复杂度,因此预设回归树的深度阈值以进行节点分裂限制。本实施例中,当每一轮生成新的节点以构建梯度提升树模型的回归树时,在第二数据方侧,判断本轮回归树的深度是否达到预设深度阈值;若本轮回归树的深度达到预设深度阈值,则停止节点分裂,进而得到梯度提升树模型的一棵回归树,否则继续下一轮节点分裂。需要说明的是,限制节点分裂的条件也可以是当节点不能继续分裂时停止节点分裂,比如当前节点对应的一个样本,则无法继续进行节点分裂。进一步地,在另一实施例中,为避免训练过程过度拟合,因此预设回归树的数量阈值以限制回归树的生成数量。本实施例中,当停止节点分裂时,在第二数据方侧,判断本轮回归树的总数量是否达到预设数量阈值;若本轮回归树的总数量达到预设数量阈值,则停止联邦训练,否则继续下一轮联邦训练。需要说明的是,限制回归树的生成数量的条件也可以是当节点不能继续分裂时停止构建回归树。为更好地理解本发明,下面基于上述实施例中表1、2中样本数据,对本发明联邦训练与建模过程进行举例说明。第一轮联邦训练:训练第一棵回归树(1)第一轮节点分裂1.1、在第二数据方侧,计算表2中样本数据的一阶梯度(gi)与二阶梯度(hi);对gi和hi进行加密后发送给第一数据方;1.2、在第一数据方侧,基于gi和hi,计算表1中样本数据所有可能的分裂方式下分裂节点的收益值gain;将收益值gain发送给第二数据方;由于表1中age特征具有5种样本数据划分方式、gender特征具有2种样本数据划分方式、amountofgivencredit特征5种样本数据划分方式,因此,表1中样本数据一共具有12种分裂方式,也即需要计算12种划分方式对应的分裂节点的收益值。1.3、在第二数据方侧,计算表2中样本数据所有可能的分裂方式下分裂节点的收益值gain;由于表2中billpayment特征具有5种样本数据划分方式、education特征具有3种样本数据划分方式,因此,表2中样本数据一共具有8种分裂方式,也即需要计算8种划分方式对应的分裂节点的收益值。1.4、从第一数据方侧计算出的12种划分方式对应的分裂节点的收益值以及从第二数据方侧计算出的8种划分方式对应的分裂节点的收益值中,选出最大收益值对应的特征作为本轮节点分裂的全局最佳分裂节点;1.5、基于本轮节点分裂的全局最佳分裂节点,对当前节点对应的样本数据进行分裂,生成新的节点以构建梯度提升树模型的回归树。1.6、判断本轮回归树的深度是否达到预设深度阈值;若本轮回归树的深度达到预设深度阈值,则停止节点分裂,进而得到梯度提升树模型的一棵回归树,否则继续下一轮节点分裂;1.7、判断本轮回归树的总数量是否达到预设数量阈值;若本轮回归树的总数量达到预设数量阈值,则停止联邦训练,否则进入下一轮联邦训练。(2)第二、三轮节点分裂2.1、假设上一轮节点分裂对应的特征为billpayment小于或等于3102,则该特征作为分裂节点(对应样本为x1、x2、x3、x4、x5),产生两个新的分节点,其中左节点对应小于或等于3102的样本集合(x1、x5),而右节点对应大于3102的样本集合(x2、x3、x4),将样本集合(x1、x5)和样本集合(x2、x3、x4)分别作为新的样本集继续第二、三轮节点分裂,以分别对两个新节点进行分裂,生成新的节点。;2.2、由于第二、三轮节点分裂属于同一轮联邦训练,因此继续沿用第一轮节点分裂所使用的样本梯度值。假设本轮的一个分裂节点对应的特征为amountofgivencredit小于或等于200,则该特征作为分裂节点(对应样本为x1、x5),产生两个新的分节点,其中左节点对应小于或等于200的样本x5,而右节点对应大于200的样本x1;同样地,本轮的另一个分裂节点对应的特征为age小于或等于35,则该特征作为分裂节点(对应样本为x2、x3、x4),产生两个新的分节点,其中左节点对应小于或等于35的样本x2、x3,而右节点对应大于35的样本x4。具体实现流程参考第一轮节点分裂过程。第二轮联邦训练:训练第二棵回归树3.1、由于本轮节点分裂属于下一轮联邦训练,因此以上一轮联邦训练结果更新上一轮联邦训练所使用的一阶梯度与二阶梯度,继续第二轮联邦训练进行节点分裂,以生成新的节点构建下一棵回归树,具体实现流程参考前一棵回归树的构建过程。3.2、如图5所示,上述实施例中表1、2中样本数据经过两轮联邦训练后产生了两棵回归树,第一棵回归树包括三个分裂节点,分别是:billpayment小于或等于3102、amountofgivencredit小于或等于200、age小于或等于35;第二棵回归树包括两个分裂节点,分别是:billpayment小于或等于6787、gender==1。3.3、基于如图5所示的梯度提升树模型的两棵回归树,样本数据的特征对应的平均收益值:billpayment为(gain1+gain4)/2;education为0;age为gain3;gender为gain5;amountofgivencredit为gain2。进一步地,在本发明基于联邦训练的样本预测方法一实施例中,对待预测样本进行联合预测的具体实现流程包括:(1)在第二数据方侧,遍历梯度提升树模型对应的回归树;(2)若当前遍历节点的属性值记录在第二数据方,则通过比较本地待预测样本的数据点与当前遍历节点的属性值,以确定下一遍历节点;(3)若当前遍历节点的属性值记录在第一数据方,则向第一数据方发起查询请求,以供在第一数据方侧,通过比较本地待预测样本的数据点与当前遍历节点的属性值,确定下一遍历节点并向第二数据方返回该节点信息;(4)当遍历完梯度提升树模型对应的回归树时,基于待预测样本所属节点所对应的样本的数据标签,确定待预测样本的样本类别,或基于待预测样本所属节点的权重值,获得待预测样本的预测得分。本实施例中,由于在生成回归树时,回归树的分裂节点记录保存在第二数据方侧,因此本实施例由第二数据方主导完成对待预测样本的联合预测,具体通过遍历梯度提升树模型对应的回归树以确定待预测样本的所属节点。其中,待预测样本的所属节点具体通过比较待预测样本的数据点与当前遍历节点的属性值进行确定。在确定了待预测样本的所属节点后,即可基于待预测样本所属节点对应的训练样本的数据标签,确定待预测样本的样本类别,或基于待预测样本所属节点的权重值,获得待预测样本的预测得分。本发明还提供一种计算机可读存储介质。本发明计算机可读存储介质上存储有样本预测程序,所述样本预测程序被处理器执行时实现如上述任一项实施例中所述的基于联邦训练的样本预测方法的步骤。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,这些均属于本发明的保护之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1