联邦学习方法、系统及可读存储介质与流程

文档序号:16787693发布日期:2019-02-01 19:28阅读:191来源:国知局
联邦学习方法、系统及可读存储介质与流程
本发明涉及大数据处理
技术领域
,尤其涉及联邦学习方法、系统及可读存储介质。
背景技术
:当前,关于隐私保护的联邦机器学习方案主要停留在理论研究和学术论文中,根据调研发现,受限于技术形态与实际应用,目前工业界无相关的技术应用。当前现有的隐私保护联邦学习方案常出现在学术论文中,论文中较多的是针对简单的算法模型如logisticregression,或者单颗决策树decisiontree的简单构造方法,如id3、c4.5。对现实问题理解不足,更多地停留在理论阶段,缺乏对现实生产环境的思考,难以直接应用到工业界实际应用场景中。技术实现要素:本发明的主要目的在于提供一种联邦学习方法、系统及可读存储介质,旨在解决现有技术中解决单方或双方对应的样本训练效率低下的技术问题。为实现上述目的,本发明提供一种联邦学习方法,所述联邦学习方法包括以下步骤:数据终端基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型,其中,所述数据终端为多个,所述梯度树模型包括多棵回归树,所述回归树包括多个分割点,所述训练样本包括多个特征,所述特征与所述分割点一一对应;所述数据终端基于所述梯度树模型,对待预测样本进行联合预测,以确定待预测样本的预测值。优选地,所述多方训练样本包括各个所述数据终端分别存储有训练样本,各个所述训练样本具有相同的样本特征。优选地,所述各数据终端基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型的步骤包括:在构建本轮回归树时,针对本轮回归树的待处理节点,各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数;各数据终端确定自身的样本特征的所有分割方式对应的分割点集合;基于所述分割点集合中的每个分割点,各数据终端进行多方安全计算得到第一计算结果;各数据终端基于自身的分割点及所述第一计算结果得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和;各数据终端对所述左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和执行加密操作后发送给所述分割点所在的数据终端进行求和汇总,得到汇总结果;所述分割点所在的数据终端将所述汇总结果发送至协调终端,以供所述协调终端进行解密后得到左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和,基于所述左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和计算所述分割点对应的增益值,基于所述增益值计算最优分割点,并将所述最优分割点返回至所述最优分割点对应的第一数据终端;在接收到所述最优分割点时,所述第一数据终端将所述最优分割点发送至第二数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点,其中,所述第二数据终端为各数据终端中用于保存梯度树模型的数据终端。优选地,所述各数据终端基于自身的分割点及所述第一计算结果得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和的步骤包括:各数据终端基于自身的分割点及所述第一计算结果与各数据终端中除所述分割点对应的第三数据终端外的第四数据终端对应的本地待训练样本进行比较,得到第一比较结果;基于所述第一比较结果,各数据终端得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和。优选地,所述各数据终端对所述左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和执行加密操作后发送给所述分割点所在的数据终端进行求和汇总,得到汇总结果的步骤包括:各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和执行加密操作得到第一加密结果;各数据终端对所述左分枝的二阶导数之和、右分枝的二阶导数之和执行加密操作得到第二加密结果;各数据终端将所述第一加密结果和第二加密结果进行求和汇总,得到汇总结果,以供各数据终端将所述汇总结果发送至协调终端,其中所述第一加密结果和第二加密结果通过协调终端留存的私钥进行解密。优选地,所述各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数的步骤之前,所述联邦学习方法还包括:各数据终端接收所述协调终端发送的公钥,以供各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和、所述左分枝的二阶导数之和、右分枝的二阶导数之和分别执行加密操作。优选地,所述在接收到所述最优分割点时,所述第一数据终端将所述最优分割点发送至第二数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点的步骤之后,所述联邦学习方法还包括:当生成新的待处理节点以构建梯度树模型的回归树时,各数据终端判断本轮回归树是否达到叶子条件;若是,则所述新的待处理节点停止节点分裂,得到梯度树模型的一棵回归树,否则,各数据终端使用新的待处理节点对应的样本数据更新本地待训练的样本数据进入所述各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数的步骤。优选地,所述基于所述梯度树模型,对待预测样本进行联合预测,以确定待预测样本的预测值的步骤包括:第五数据终端遍历所述梯度树模型对应的回归树,其中,所述第五数据终端为各数据终端中拥有梯度树模型的数据终端;所述第五数据终端通过比较所述第五数据终端的本地待预测样本的第一数据点与当前第一遍历节点的属性值得到第二比较结果,基于所述第二比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,基于所述叶子节点得到第一预测结果;或;第六数据终端遍历所述梯度树模型对应的回归树,其中,所述第六数据终端为各数据终端中除所述第五数据终端以外的数据终端;所述第六数据终端通过所述第六数据终端的当前第二遍历节点的属性值与所述第五数据终端的当前第一遍历节点的属性值进行多方安全计算,得到第二计算结果,以供所述第五终端基于所述第二计算结果比较当前第一遍历节点的属性值和所述当前第二遍历节点的属性值得到第三比较结果,所述第五数据终端基于所述第三比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,在所述第五数据终端基于所述叶子节点得到第二预测结果后发送至第六数据终端。此外,为实现上述目的,本发明还提供一种系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的联邦学习程序,所述联邦学习程序被所述处理器执行时实现上述中任一项所述的联邦学习方法的步骤。此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有联邦学习程序,所述联邦学习程序被处理器执行时实现上述中任一项所述的联邦学习方法的步骤。本发明中,基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型,实现多方训练样本对应的数据终端的样本训练,适用于数据量规模大的场景,可以很好地满足现实生产环境需要;解决单方或双方对应的样本训练效率低下的问题;通过梯度树模型,对待预测样本进行联合预测,得到待预测样本的预测值,实现对待预测样本的预测。本发明通过gbdt算法对多方训练样本进行联邦训练,实现梯度树模型建立,通过梯度树模型,对待预测样本进行联合预测,实现对待预测样本的预测。附图说明图1为本发明实施例方案涉及的系统硬件结构示意图;图2为本发明联邦学习方法第一实施例的流程示意图;图3为本发明联邦学习方法第二实施例的流程示意图;图4为本发明联邦学习方法第二实施例中的流程框图;图5为本发明联邦学习方法第三实施例的流程示意图;图6为本发明联邦学习方法第四实施例的流程示意图;图7为本发明联邦学习方法第五实施例的流程示意图;图8为本发明联邦学习方法第五实施例的流程框图。本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。如图1所示,该系统可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,系统还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。当然,系统还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口单元以及联邦学习程序。在图1所示的系统中,网络接口1004主要用于连接后台装置,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的联邦学习程序,并执行以下操作:数据终端基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型,其中,所述数据终端为多个,所述梯度树模型包括多棵回归树,所述回归树包括多个分割点,所述训练样本包括多个特征,所述特征与所述分割点一一对应;所述数据终端基于所述梯度树模型,对待预测样本进行联合预测,以确定待预测样本的预测值。进一步地,处理器1001可以调用存储器1005中存储的联邦学习程序,还执行以下操作:在构建本轮回归树时,针对本轮回归树的待处理节点,各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数;各数据终端确定自身的样本特征的所有分割方式对应的分割点集合;基于所述分割点集合中的每个分割点,各数据终端进行多方安全计算得到第一计算结果;各数据终端基于自身的分割点及所述第一计算结果得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和;各数据终端对所述左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和执行加密操作后发送给所述分割点所在的数据终端进行求和汇总,得到汇总结果;所述分割点所在的数据终端将所述汇总结果发送至协调终端,以供所述协调终端进行解密后得到左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和,基于所述左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和计算所述分割点对应的增益值,基于所述增益值计算最优分割点,并将所述最优分割点返回至所述最优分割点对应的第一数据终端;在接收到所述最优分割点时,所述第一数据终端将所述最优分割点发送至第二数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点,其中,所述第二数据终端为各数据终端中用于保存梯度树模型的数据终端。进一步地,处理器1001可以调用存储器1005中存储的联邦学习程序,还执行以下操作:各数据终端基于自身的分割点及所述第一计算结果与各数据终端中除所述分割点对应的第三数据终端外的第四数据终端对应的本地待训练样本进行比较,得到第一比较结果;基于所述第一比较结果,各数据终端得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和。进一步地,处理器1001可以调用存储器1005中存储的联邦学习程序,还执行以下操作:各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和执行加密操作得到第一加密结果;各数据终端对所述左分枝的二阶导数之和、右分枝的二阶导数之和执行加密操作得到第二加密结果;各数据终端将所述第一加密结果和第二加密结果进行求和汇总,得到汇总结果,以供各数据终端将所述汇总结果发送至协调终端,其中所述第一加密结果和第二加密结果通过协调终端留存的私钥进行解密。进一步地,处理器1001可以调用存储器1005中存储的联邦学习程序,还执行以下操作:各数据终端接收所述协调终端发送的公钥,以供各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和、所述左分枝的二阶导数之和、右分枝的二阶导数之和分别执行加密操作。进一步地,处理器1001可以调用1005中存储的联邦学习程序,还执行以下操作:当生成新的待处理节点以构建梯度树模型的回归树时,各数据终端判断本轮回归树是否达到叶子条件;若是,则所述新的待处理节点停止节点分裂,得到梯度树模型的一棵回归树,否则,各数据终端使用新的待处理节点对应的样本数据更新本地待训练的样本数据进入所述各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数的步骤。进一步地,处理器1001可以调用存储器1005中存储的联邦学习程序,还执行以下操作:第五数据终端遍历所述梯度树模型对应的回归树,其中,所述第五数据终端为各数据终端中拥有梯度树模型的数据终端;所述第五数据终端通过比较所述第五数据终端的本地待预测样本的第一数据点与当前第一遍历节点的属性值得到第二比较结果,基于所述第二比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,基于所述叶子节点得到第一预测结果;或;第六数据终端遍历所述梯度树模型对应的回归树,其中,所述第六数据终端为各数据终端中除所述第五数据终端以外的数据终端;所述第六数据终端通过所述第六数据终端的当前第二遍历节点的属性值与所述第五数据终端的当前第一遍历节点的属性值进行多方安全计算,得到第二计算结果,以供所述第五终端基于所述第二计算结果比较当前第一遍历节点的属性值和所述当前第二遍历节点的属性值得到第三比较结果,所述第五数据终端基于所述第三比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,在所述第五数据终端基于所述叶子节点得到第二预测结果后发送至第六数据终端。参照图2,图2为本发明联邦学习方法第一实施例的流程示意图。在第一实施例中,联邦学习方法包括:步骤s10,数据终端基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型,其中,所述数据终端为多个,所述梯度树模型包括多棵回归树,所述回归树包括多个分割点,所述训练样本包括多个特征,所述特征与所述分割点一一对应。gbdt全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是即可以用于分类也可以用于回归,三是可以筛选特征。gbdt(gradientboostingdecisiontree,迭代的决策树),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和svm一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。本实施例中,采用梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型。gbdt主要由三个概念组成:regressiondecisiontree,即dt,gradientboosting,即gb,shrinkage,算法的一个重要演进分枝,目前大部分源码都按该版本实现。决策树(dt,decisiontree),在gbdt算法中通常指的是回归树,通过联邦训练构建的梯度树模型包括多棵回归树,且回归树的一个分割点对应训练样本的一个特征。通过同时对多方训练样本进行联邦训练,有效提高训练效率,适用于数据量规模大的场景,可以很好的满足现实生产环境需要。步骤s20,所述数据终端基于所述梯度树模型,对待预测样本进行联合预测,以确定待预测样本的预测值。本实施例中,数据终端基于梯度树模型,对待预测样本进行联合预测,以确定待预测样本的预测值。输入多方样本特征xowner及样本类别标签yowner,且xowner_o={[xi,1,xi,2,…xi,dim],i=1…n,n为xowner_o样本数},其中,dim为样本特征维度大小,各方样本特征维度dim相等,各特征维度含义一致,如[贷款额、贷款时长、负债情况]。基于gbdt算法对多方样本特征xowner及样本类别标签yowner进行联邦训练后,得到梯度树模型,通过梯度树模型,对待预测样本进行联合预测,从而确定待预测样本的预测值。本发明中,基于梯度下降树gbdt算法对多方训练样本进行联邦训练,以构建梯度树模型,实现多方训练样本对应的数据终端的样本训练,适用于数据量规模大的场景,可以很好地满足现实生产环境需要;解决单方或双方对应的样本训练效率低下的问题;通过梯度树模型,对待预测样本进行联合预测,得到待预测样本的预测值,实现对待预测样本的预测。本发明通过gbdt算法对多方训练样本进行联邦训练,实现梯度树模型建立,通过梯度树模型,对待预测样本进行联合预测,实现对待预测样本的预测。进一步地,所述多方训练样本包括各个所述数据终端分别存储有训练样本,各个所述训练样本具有相同的样本特征。本实施例中,多方训练样本包括多个数据终端分别对应的训练样本,各训练样本具有相同的样本特征并保存在各数据终端本地。由于数据终端有多个,各数据终端的数据通过横向切分,即每条样本特征是完整的存在其中一份数据中,且仅存在其中一份数据中,切分若干份保存便于后续的训练并行。如下表一所示,数据终端x包含的数据如表一所示:id证件号/电话号码年龄x110x220x330x440x550表一:数据终端x将表一进行横向切分为3份,得到如下表二所示的训练样本aid证件号/电话号码年龄x110表二:训练样本aid证件号/电话号码年龄x220x330表三:训练样本bid证件号/电话号码年龄x440x550表四:训练样本c如表二、表三及表四所示,通过对数据终端x拥有的数据进行横向切分成三份,得到训练样本a、训练样本b及训练样本c,三个训练样本具有相同的样本特征,并均保存在数据终端x中。基于第一实施例,提出本发明联邦学习方法的第二实施例,如图3-4所示,步骤s10包括:步骤s11,在构建本轮回归树时,针对本轮回归树的待处理节点,各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数;步骤s12,各数据终端确定自身的样本特征的所有分割方式对应的分割点集合;步骤s13,基于所述分割点集合中的每个分割点,各数据终端进行多方安全计算得到第一计算结果;步骤s14,各数据终端基于自身的分割点及所述第一计算结果得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和;步骤s15,各数据终端对所述左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和执行加密操作后发送给所述分割点所在的数据终端进行求和汇总,得到汇总结果;步骤s16,所述分割点所在的数据终端将所述汇总结果发送至协调终端,以供所述协调终端进行解密后得到左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和,基于所述左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和计算所述分割点对应的增益值,基于所述增益值计算最优分割点,并将所述最优分割点返回至所述最优分割点对应的第一数据终端;步骤s17,在接收到所述最优分割点时,所述第一数据终端将所述最优分割点发送至第二数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点,其中,所述第二数据终端为各数据终端中用于保存梯度树模型的数据终端。本实施例中,在构建本轮回归树时,针对本轮回归树的待处理节点,各数据终端通过上一轮得到的第一梯度树模型进行预测得到本地待训练样本的损失函数的一阶导数及二阶导数。针对本轮回归树为第t棵回归树,上一轮得到的第一梯度树模型为第t-1棵树。若t=1,则通过上一轮得到的第一梯度树模型进行预测即通过第一梯度树模型本身进行预测。基于所述分割点集合中的每个分割点,各数据终端进行多方安全计算得到第一计算结果。多方安全计算可以采用姚氏电路解决。姚氏百万富翁问题是多方安全计算的典型问题,通过采用0编码与1编码,将百万富翁问题转换为集合交集问题,提出一种基于可交换加密函数的百万富翁问题高效解决方案,并进行了安全性证明,该方案无需复杂的模指数运算,加解密运算为o(n),通信论数为4。当然,本案的多方安全计算也可采用其他方式,并不局限于姚氏电路的方式,只要能进行多方安全计算均可。本实施例中,具体如图4所示,模型拥有方h相当于第二数据终端,数据拥有方x1和数据拥有方x2相当于各数据终端,协调方c相当于协调终端。对于每个待处理树节点node,如果未达到停止计算条件,即叶子条件下,第二数据终端如模型拥有方h对于每列特征,选出若干个分割点,同时通知所有数据拥有方即数据拥有方x1和数据拥有方x2准备关于自身数据的各列特征分割点候选集。对于每个(特征,分割候选点)p,分割点p所在方x通知其他数据方进行多方安全计算(假设有n个其他数据参与方,n个参与方均参与p的计算),经过计算后,其他数据方根据与p的第一比较结果,得到划分到左、右分枝的一阶导数的和g,二阶导数和h,所有方将加密后的结果[[g]]、[[h]]发送给模型拥有方h求和汇总,得到(p,sum([[g]],sum([[h]])。等所有候选点p的结果均计算完毕后,各分割候选点所在方,将所有的(sum[[g]],sum[[h]])发送给协调方c解密,并进行最优分割值选择,协调方c选出最优的分割值s后,将该值对应的(sum[[g]),sum[[h]]]返回给分割值s所在方y,此处y为数据拥有方x1,y将s对应的p发送给模型拥有方h,同时增加两个新的待处理节点node1,node2。增益值的计算公式如下:其中,gain为增益值,gl为左分枝的一阶导数,gr为右分枝的一阶导数,hl为左分枝的二阶导数,hr为右分枝的二阶导数,γ为加入新的待处理节点引入的复杂度代价。以表一至四为例,在构建梯度树的第t棵回归树时,其中,t=1,2,3…n,首先在各数据终端,计算各自本地待训练样本的损失函数的一阶导数及二阶导数,以上表一至四为例,得到的梯度为a(gaha)、b(gb1hb1)、a(gb2hb2)、c(gc1hc1)、c(gc2hc2),接着,在各数据终端,确定各数据终端的样本特征的所有分割方式对应的分割点集合,以上表一至表四为例,得到分割点pa、pb及pc,如假设pa(年龄≤10),pb(年龄≤20),pc(年龄≤40);在各数据终端,通知其他数据终端联合计算各自分割点集合中所有分割点对应的左分枝的一阶导数之和gl与二阶导数之和hl、右分枝的一阶导数之和与二阶导数之和;在各数据终端,通过公钥将所述左分枝的一阶导数之和gl与二阶导数之和hl、右分枝的一阶导数之和gr与二阶导数之和hr分别加密后发送给模型拥有方h进行求和汇总,得到汇总结果(p,sum([[g]]),sum([[h]]))发送至协调终端;协调终端通过私钥将所有的sum([[g]]),sum([[h]])进行解密,得到左分枝的一阶导数之和及二阶导数之和、右分枝的一阶导数之和及二阶导数之和,并根据上述公式计算出每个分割点对应的增益值gain。根据增益值gain,协调终端计算分割点pa、pb及pc中的最优分割点,如最优分割点为pb,那么将最优分割点pb返回至pb所在的训练样本b中,训练样本b所在的数据终端为数据终端x;在所述数据终端接收到所述最优分割点后,发送至第一数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点,其中,所述第一数据终端为各数据终端中用于保存梯度树模型的数据终端。基于第二实施例,提出本发明联邦学习方法的第三实施例,如图5所示,步骤s14包括:步骤s141,各数据终端基于自身的分割点及所述第一计算结果与各数据终端中除所述分割点对应的第三数据终端外的第四数据终端对应的本地待训练样本进行比较,得到第一比较结果;步骤s142,基于所述第一比较结果,各数据终端得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和。本实施例中,每个分割点所在的数据终端通知其他数据终端进行多方安全计算,在各个数据终端进行多方安全计算得到第一计算结果后,各数据终端基于自身的分割点及所述第一计算结果与各数据终端中除所述分割点对应的第三数据终端外的第四数据终端对应的本地待训练样本进行比较,得到第一比较结果;基于所述第一比较结果,各数据终端得到划分到左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和。基于所述第一计算结果,如比如就月薪这一维度来说,数据终端x1有三个记录,为1000,2000,3000;数据终端x2的同一特征维度有三个记录,为2000,3000,4000,那么假设数据终端x1的分割点是1500和2500,数据终端x2的分割点是2500和3500,那么对于数据终端x1来说,他希望知道所有月薪数据中(x1与x2与a的并集)<1500的和已经>1500的和,x1的2500,x2的2500、3500同理。具体比较为,分割点1500与数据终端x1的三条记录1000,2000,3000及数据终端x2的三条记录2000,3000,4000形成的并集为(1000,2000,3000,2000,3000,4000)进行比较,在并集为(1000,2000,3000,2000,3000,4000)中找出<1500的和已经>1500的所有记录,很明显,此处<1500为(1000),大于1500为(2000,3000,4000),并且,数据终端x2给数据终端x1算出<1500的和>1500的代价导数,并把<1500的和>1500的代价导数的密文通过公钥发送给数据终端x1。由于数据终端x2给数据终端x1发送的是代价导数的密文,通过公钥加密,因此,数据终端x1不会得到数据终端x2中的具体记录,因此,实现数据终端x2的隐私保护。基于第三实施例,提出本发明联邦学习方法的第四实施例,如图6所示,步骤s15包括:步骤s151,各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和执行加密操作得到第一加密结果;步骤s152,各数据终端对所述左分枝的二阶导数之和、右分枝的二阶导数之和执行加密操作得到第二加密结果;步骤s153,各数据终端将所述第一加密结果和第二加密结果进行求和汇总,得到汇总结果,以供各数据终端将所述汇总结果发送至协调终端,其中所述第一加密结果和第二加密结果通过协调终端留存的私钥进行解密。各数据终端对所述左分枝的一阶导数之和与二阶导数之和、右分枝的一阶导数之和与二阶导数之和执行加密操作后发送给所述分割点所在的数据终端进行求和汇总,得到汇总结果具体为:各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和执行加密操作得到第一加密结果[[g]];各数据终端对所述左分枝的二阶导数之和、右分枝的二阶导数之和执行加密操作得到第二加密结果[[h]];在各个数据终端,将所述第一加密结果[[g]]和第二加密结果[[h]]发送至协调终端。各数据终端将g、h加密后的结果[[g]]、[[h]]发送给其他数据终端进行求和汇总,得到(p,sum([[g]],sum([[h]])。将sum([[g]],sum([[h]]发送至协调终端,协调终端通过存留的私钥对第一加密结果[[g]]和第二加密结果[[h]]进行解密。通过协调终端发送的公钥,使得各数据终端进行加密得到第一加密结果及第二加密结果,解密时通过协调方的私钥进行解密,保证各数据终端之间数据不会泄露。进一步地,在步骤s10之前,所述联邦学习方法还包括:各数据终端接收所述协调终端发送的公钥,以供各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和、所述左分枝的二阶导数之和、右分枝的二阶导数之和分别执行加密操作。通过协调终端给各数据终端发送公钥,以供各数据终端对所述左分枝的一阶导数之和、右分枝的一阶导数之和、所述左分枝的二阶导数之和、右分枝的二阶导数之和分别执行加密操作,得到第一加密结果及第二加密结果,实现协调终端在协调处理时对各数据终端的数据进行保密。基于第二实施例,提出本发明联邦学习方法的第五实施例,如图7所示,步骤s17之后,联邦学习方法还包括:步骤s18,当生成新的待处理节点以构建梯度树模型的回归树时,各数据终端判断本轮回归树是否达到叶子条件;步骤s191,若是,则所述新的待处理节点停止节点分裂,得到梯度树模型的一棵回归树;步骤s192,若否,各数据终端使用新的待处理节点对应的样本数据更新本地待训练的样本数据进入步骤s11。在所述数据终端接收到所述最优分割点后,发送至第一数据终端保存,且对所述待处理节点进行分裂得到两个新的待处理节点,实现了一个节点的处理,在处理了一个节点后,当生成新的节点以构建梯度树模型的回归树时,判断本轮回归树是否达到叶子条件,若是,则停止节点分裂,得到梯度树模型的一棵回归树,否则,使用新节点对应的样本数据更新本地待训练的样本数据进入下一轮节点分裂。一般来说,一棵回归树有多个叶子节点,随着回归树的生长,回归树分枝时所处理的样本数量在不断减少,回归树对数据总体珠代表程度在不断下降,在对根节点进行分枝时,处理的是全部样本,再往下分枝,则是处理的不同分组下的分组下的样本。为了避免过拟合,我们在非叶的条件下停止分裂,否则,将继续进行下一轮节点分裂。基于第一实施例,提出本发明联邦学习方法的第六实施例,步骤s20包括:第五数据终端遍历所述梯度树模型对应的回归树,其中,所述第五数据终端为各数据终端中拥有梯度树模型的数据终端;所述第五数据终端通过比较所述第五数据终端的本地待预测样本的第一数据点与当前第一遍历节点的属性值得到第二比较结果,基于所述第二比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,基于所述叶子节点得到第一预测结果;或;第六数据终端遍历所述梯度树模型对应的回归树,其中,所述第六数据终端为各数据终端中除所述第五数据终端以外的数据终端;所述第六数据终端通过所述第六数据终端的当前第二遍历节点的属性值与所述第五数据终端的当前第一遍历节点的属性值进行多方安全计算,得到第二计算结果,以供所述第五终端基于所述第二计算结果比较当前第一遍历节点的属性值和所述当前第二遍历节点的属性值得到第三比较结果,所述第五数据终端基于所述第三比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,在所述第五数据终端基于所述叶子节点得到第二预测结果后发送至第六数据终端。对于第五数据终端:本地直接按照普通gbdt规则直接预测,即遍历树的过程。具体为:所述第五数据终端通过比较所述第五数据终端的本地待预测样本的第一数据点与当前第一遍历节点的属性值得到第二比较结果,基于所述第二比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,基于所述叶子节点得到第一预测结果。例如,当前遍历树的节点n,n是(月薪<1500),那么月薪2000的话,就进入节点n的右子树,否则进入左子树,一直走到叶子节点,即可得到第一预测结果。对于除所述第五数据终端以外的数据终端的第六数据终端,第六数据终端遍历所述梯度树模型对应的回归树,所述第六数据终端通过所述第六数据终端的当前第二遍历节点的属性值与所述第五数据终端的当前第一遍历节点的属性值进行多方安全计算,得到第二计算结果,以供所述第五终端基于所述第二计算结果比较当前第一遍历节点的属性值和所述当前第二遍历节点的属性值得到第三比较结果,所述第五数据终端基于所述第三比较结果判断进入所述当前第一遍历节点的左子树或右子树,直至进入所述当前第一遍历节点的叶子节点,在所述第五数据终端基于所述叶子节点得到第二预测结果后发送至第六数据终端。对于除第五数据终端以外的第六数据终端,需要执行n次如下预测过程,n为gbdt中决策树的数量。对于每个决策树,假设当前位于点node(初始时位于树的根节点),b将预测数据各个(特征名、特征值)与模型拥有方h的node节点进行多方安全计算,在不泄露数据的同时,a得到(特征名,与node的边界数值比对结果),选择node的下一个分支节点node_child,a将当前节点node更新为node_child,重复此过程直到走到叶子节点,得到预测值。例如:当前节点是月薪<1500,那么假设有2个属性值,一个是月薪,一个是年龄,在一轮比较的时候,需要比较月薪和年龄,为了保密,第五数据终端不需要告知第六数据终端具体的年龄数据和月薪数据,假设子树是年龄,可以设定一个虚假的月薪数据,还有一个真实的年龄数据,然后,第五数据终端对着两个数据都进行比较,得到第三比较结果,基于第三比较结果判断进入所述当前节点的左子树或右子树,直至进入所述当前节点的叶子节点,在所述第五数据终端基于所述叶子节点得到第二预测结果后发送至第六数据终端,此时,第六数据终端得到的仅仅是第二预测结果,无法得知第五数据终端的其它任何数据,从而实现预测过程的保密。请参阅图8,图8为本发明的第五实施例的流程框图,模型拥有方h相当于第五数据终端,如果是模型拥有方本地预测,那就遍历自己的节点;如果是非模型拥有方预测,那就跟模型拥有方多方安全计算后,遍历模型拥有方的节点,并且,模型拥有方的数据保密,仅仅发送第二预测结果给其它数据方。此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有联邦学习程序,所述联邦学习程序被处理器执行时实现如上所述的联邦学习方法的步骤。本发明可读存储介质的具体实施例与上述联邦学习方法的各个实施例基本相同,在此不做赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台装置设备(可以是手机,计算机,装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1