一种联邦梯度提升决策树投票并行训练方法

文档序号:25171292发布日期:2021-05-25 14:41阅读:198来源:国知局
一种联邦梯度提升决策树投票并行训练方法

本发明涉及联邦学习技术领域,具体涉及一种联邦梯度提升决策树投票并行训练方法。



背景技术:

基于梯度提升决策树gbdt的学习算法在表格类数据挖掘、预测方面具有巨大的优势,在贷款风险、疾病预测、入侵检测等领域具有广泛的应用。但是,由于用户的数据信息(患者电子病历、用户资产状况等数据)分散在各个不同的主体(地方性医院、地方性银行)中,导致了以下几个现实问题:(1)由于样本数量不足,对于单个地方性医院和银行来说,其用户数量往往是比较少的,数据量不足以驱动大规模、高精度的数据挖掘任务。(2)单个地方性医院和银行往往局限于单一的分布,例如地方性医院患者的性别比例或年龄层次等分布情况具有一定偏差,因此其进行数据挖掘建模也会具有一定的局限性。(3)某些罕见疾病、信用诈骗等案例往往在用户总量中占有很小的比例,但是如果能更好的预测出罕见疾病或者信用卡诈骗,都可以为主体带来巨大的利益,甚至挽救生命。然而现实中每一个地方性医院和地方性银行中可能仅仅存在很少的案例,也就是存在正负样本不平衡问题,无法完成这一具有挑战性的数据挖掘任务。(4)另外,由于信息时代各个国家对公民隐私保护的重视,不同的地方性医院或银行需要保护各自用户的隐私信息,简单的共享数据来实现海量数据挖掘甚至会触犯法律法规。当前联邦学习(federalearning)为这种情况提出了一种在不共享数据的前提下协同训练机器学习模型的范式,但不同于已经存在大量研究工作的深度神经网络(deepneuralnetwork),gbdt的联邦训练对表格数据(例如电子病历、客户信息)进行建模更为主流方法,然而在联邦场景中实现其算法优化还有很多挑战。

基于对当前背景技术的分析,当前的联邦gbdt训练面临以下三个问题:

1.非独立同分布问题(non-iid)。现有的分布式并行gbdt训练中,大多基于了同分布假设,也就是每个worker的数据是从总数据集中随机采样出来的,因此符合独立同分布(iid)的假设。由于联邦场景的情况下,不同的worker之间享有着不同的数据集,并且大多数在地理位置、用户习惯等特征中存在有较大的分布差异。

2.通信代价(communicationcost):联邦gbdt训练中,由于协同训练期间的信息交换问题,通信量通常与样本数量呈正比,在样本数量巨大的训练任务面临着巨大的通信量开销,这对于位于地理位置不同的worker来说,意味着巨大的时间开销,甚至超过了计算开销。因此,如何缩减时间开销也是联邦gbdt中面临的技术挑战。

3.隐私保护(privacyprotection):联邦场景下,为了实现在不共享数据集的情况下协同训练,需要交换中间参数更新来实现协调学习任务,然而最新研究表明:即使是少数的中间信息交换,也极有可能泄露本地隐私信息,由此如何在联邦训练过程中实现加密、差分隐私等技术也是需要解决的技术问题。

虽然已经有一些工作针对联邦式gbdt模型训练机制展开了研究,然而尚未有方案同时解决上述三个问题。



技术实现要素:

本发明所要解决的是在多个训练参与方协同训练gbdt模型的问题,提供一种联邦梯度提升决策树投票并行训练方法。

为解决上述问题,本发明是通过以下技术方案实现的:

一种联邦梯度提升决策树投票并行训练方法,包括步骤如下:

步骤1、每个参与方利用基于隐私保护的表格数据的对抗生成网络将本地原始样本集生成本地合成样本集后,上传至中心服务器;

步骤2、中心服务器先将所有参与方所上传的本地合成样本集聚合为全局合成样本集,再利用全局合成样本集构建全局kd-tree,后将全局kd-tree发送给所有参与方;

步骤3、每个参与方基于全局kd-tree的树结构,利用本地原始样本集构建各自的本地kd-tree;

步骤4、每个参与方利用全局kd-tree和本地kd-tree中对应叶子节点的样本数量,确定kd-tree的每个叶子节点的采样样本,并将kd-tree的所有叶子节点的采样样本形成各自的本地混合样本集后,上传至中心服务器;

在确定kd-tree的每个叶子节点的采样样本时:

①若采用过采样的方式确定kd-tree的每个叶子节点的采样样本,此时:

先计算全局kd-tree的第i个叶子节点的采样数量

再从全局kd-tree的第i个叶子节点的所有样本中随机采样出个样本,并加上本地kd-tree的第i个叶子节点的所有样本,作为第i个叶子节点的采样样本;

②若采用欠采样的方式确定kd-tree的每个叶子节点的采样样本,此时:

先计算本地kd-tree的第i个叶子节点的采样数量

再从本地kd-tree的第i个叶子节点的所有样本中随机采样出个样本,作为第i个叶子节点的采样样本;

上述式中,为全局kd-tree中第i个叶子节点的样本数量,|s(li)|为本地kd-tree中第i个叶子节点的样本数量,|x′|为全局合成样本集的样本数量,|xj|为本地原始样本集的样本数量,δ为分布控制参数,0<δ<1;

步骤5、中心服务器协同所有参与方利用其本地混合样本集和本地原始样本集采用基于投票特征的联邦梯度提升决策树训练方法去训练梯度提升决策树。

上述步骤5中,基于投票特征的联邦梯度提升决策树训练方法的每一次训练过程具体如下:

步骤5.1、每个参与方先根据其当前本地混合样本集,生成当前本地混合样本集的所有特征的梯度直方图;再根据每个特征的梯度直方图计算每个特征的增益值;后将根据增益值从大到小对所有特征进行排序,并将排在前k位的特征作为本地特征上传至中心服务器;

步骤5.2、中心服务器对所有参与方所上传的k个本地特征进行投票统计,其中本地特征被一个参与方上传记为该本地特征获得一票,并将票数排在前2k位的本地特征作为全局特征发送给每个参与方;

步骤5.3、每个参与方根据其当前本地原始样本集,生成这2k个全局特征的梯度直方图,并对2k个梯度直方图加入差分隐私噪声后得到2k个加噪梯度直方图,上传至中心服务器;

步骤5.4、中心服务器先将所有参与方所上传的2k个加噪梯度直方图进行对应全局特征地聚合,得到2k个全局梯度直方图;再根据2k个全局梯度直方图计算2k个全局特征的增益值和分割阈值;后将增益值最大的全局特征作为分割特征,并将该分割特征及其分割阈值发送给每个参与方;

步骤5.5、每个参与方根据所返回的分割特征和分割阈值对当前本地混合样本集和当前本地原始样本集进行划分;

上述k为设定值。

上述步骤5中,在训练梯度提升决策树之前,中心服务器需要确定梯度提升决策树的模型参数,其中模型参数包括弱决策树的深度,弱决策树的个数和损失函数,并将模型参数发送给每个参与方。

上述步骤1中,生成样本集的样本数据的数量为其中|xj|为本地原始样本集xj的样本数量,m为参与方的数量。

上述参与方为医院或银行。

与现有技术相比,本发明具有如下特点:

1、由于联邦场景的情况下,不同的参与方之间享有不同的数据集,并且大多数在地理位置、用户习惯等特征中存在有较大的分布差异,本发明使用了基于表格数据并具有差分隐私的对抗生成网络(pate-gan)生成了本地合成样本,同时使用kd-tree对本地合成样本和本地原始样本分别空间分割采样的方法生成本地混合样本集,以此来实现接近于总体数据分布的混合样本。

2、考虑到原有的并行运算中大多数算法都与数据量直接相关或者与样本特征数量直接相关,本发明中采用了直方图优化算法使通信量样本量无关,采用了投票特征的方法使得通信量和特征数量无关,极大减小了通信代价,从而让在地理位置较远的不同参与方之间通信代价减小。

3、本发明通过加入了差分隐私噪声的pate-gan实现合成样本的隐私保护,又通过加入差分隐私噪声的梯度直方图实现了一阶二阶梯度直方图的隐私保护,从而实现了全局的隐私保护。

4、本发明可以在数据集分布不均、数据不平衡的现实场景中,在常数级的通信开销下实现不同数据所有者协同训练高精度的gbdt模型,同时保护各个数据所有者的隐私安全,

附图说明

图1为一种联邦梯度提升决策树投票并行训练方法的原理图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。

参见图1,本发明所提出的一种联邦梯度提升决策树投票并行训练方法,具体包括步骤如下:

步骤1、步骤1、每个参与方利用基于隐私保护的表格数据的对抗生成网络将本地原始样本集xj生成本地合成样本集x′j,并将本地合成样本集x′j上传至中心服务器。

所述参与方为分散在不同地方,并参与联邦学习的参与方,其可以为地方性医院或地方性银行等。

在本发明中,每个样本均包括多个特征。如参与方为医院时,其样本为患者的医疗数据,其特征包括患者的人口统计数据(患者性别、年龄、身高、出生地等)、患者生理特征(疾病史、血压、血糖、疼痛类型等)、药物治疗(抗生素、药物服用历史等)等。如参与方为银行时,其样本为用户的交易数据,其特征包括客户人口统计数据(性别、年龄、常住地等)、收入情况(周薪、年薪、投资收益、固定资产等)、职业领域(行业领域、岗位级别等)、信用历史(贷款历史、信用卡交易记录等)、贷款时间、贷款期限等。

生成样本集x′j中的样本的数量为其中|xj|为本地样本集xj的样本的数量,j∈[1,m],m为参与方的数量,这样能够保证每个参与方都具有相同的生成比例。

步骤2、中心服务器先将所有参与方所上传的本地合成样本集x′j聚合为全局合成样本集x′,再利用全局合成样本集x′构建全局kd-tree(kdt′),后将全局kd-tree发送给所有参与方。

kd-tree(k-dimensional树的简称),是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。常被用于高维空间中的搜索,比如范围搜索和最近邻搜索。kd-tree是二进制空间划分树的一种特殊情况,每次选择一个维度把样本切分为两个部分,最终每个叶子节点中都包括了一部分较为相似的样本数据。

本发明中使用了kd-tree的建树过程建立全局kd-tree,全局kd-tree的每个叶子节点中记录着全局合成样本集的样本索引:首先计算全局合成样本集合x′每个维度的方差,选择方差最大的维度作为切分平面,然后再计算所有样本维度的中位数把当前平面切分为两个矩形,把所有叶子节点划分进左右两个集合中,递归上述步骤直到每个叶子节点的数量少于一定阈值。建树完成之后,全局kd-tree的每个叶子节点中记录着对应超空间中的全局合成样本索引集合。

步骤3、每个参与方基于全局kd-tree的树结构,利用本地原始样本集xj构建本地kd-tree(kdtj)。

参与方以kdt′的树结构构建树kdtj,即把kdt′中的所有非叶子节点直接加入kdtj,然后把xj中的所有样本依次放入kdtj中,通过每个中间节点的划分条件落入不同的叶子节点中,然后在对应的叶子节点中记录该样本的索引。至此kdtj的叶子节点中记录着对应超空间中的本地原始样本索引集合。

步骤4、每个参与方利用全局kd-tree和本地kd-tree中对应叶子节点的样本数量,确定kd-tree的每个叶子节点的采样样本,并将kd-tree的所有叶子节点的采样样本形成本地混合样本集每个参与方将其本地混合样本集上传至中心服务器。

由于全局kd-tree和本地kd-tree具有相同的树结构,因此全局kd-tree和本地kd-tree中的kd-tree的叶子节点一一对应。每个参与方j,根据kdt′和kdtj中第i个叶子节点中的样本进行采样,形成本地混合样本集

①当空间si中合成样本占比时,代表本地的样本分布在该空间中不足,则该空间内样本全部采样,此时需要计算全局kd-tree的s′(li)的过采样率osri:

并根据采样率得到全局kd-tree的第i个叶子节点的采样数量为:

n{s(l′i)}=|s(l′i)|*osri

此时,从全局kd-tree的第i个叶子节点中随机采样出n{s(l′i)}个样本,并加上本地kd-tree的第i个叶子节点的所有样本,作为第i个叶子节点的采样样本。

②当空间si中合成样本占比时,代表本医院的患者样本分布在该空间中过多,则该空间内样本进行欠采样,此时需要计算本地kd-tree的s(li)的欠采样率usri:

并根据欠采样率得到本地kd-tree的第i个叶子节点的采样数量为:

此时,从本地kd-tree的第i个叶子节点中随机采样出个样本,作为第i个叶子节点的采样样本。

上述式中,|s′(li)|为全局kd-tree中第i个叶子节点的样本数量,|s(li)|为本地kd-tree中第i个叶子节点的样本数量,|x′|为全局合成样本集的样本数量,|xj|为本地原始样本集的样本数量,i∈[1,n],n为全局kd-tree或本地kd-tree的叶子节点的数量,j∈[1,m],m为参与方的数量,δ为一个用于控制拟合x′分布程度的分布控制参数,0<δ<1。

步骤5、中心服务器协同所有参与方利用其本地混合样本集和本地原始样本集采用基于投票特征的联邦梯度提升决策树训练方法去训练梯度提升决策树gbdt。

梯度提升决策树gbdt属于集成学习的一种,通过采用加法模型(即基函数的线性组合),通过不断减小训练过程产生的损失来达到将数据分类或者回归的算法。梯度提升决策树的弱分类器一般会选择为分类回归树(carttree),每个分类回归树的深度较小,树结构简单。最终的总分类器是将每轮训练得到的弱分类器加权求和求得。

在迭代递归训练梯度提升决策树之前,中心服务器需要确定梯度提升决策树的模型参数,并将模型参数发送给每个参与方。其中模型参数包括弱决策树的深度h,弱决策树的个数n_tree和损失函数,其均通过人为设定。弱决策树的深度h决定了单棵梯度提升决策树递归训练次数,一次完整的内层递归过程生成一个深度为h的弱决策树,内层的每一次递归训练生成弱决策树的一个节点。弱决策树的个数n_tree决定了梯度提升决策树递归训练的外层迭代次数。完整的外层迭代过程生成n_tree个深度为h的弱决策树,每一次外层迭代训练生成一个深度为h的弱决策树。

在本实施例中,所设定损失函数为以下形式:

舍弃其中的常数项后为:

其中j表示第j个叶子节点,ij表示第j个叶子节点中实例的集合,其中wj代表节点所占的权重,计算如下:

因此,对于一个候选分割点,也就是一个固定的结构,可以计算其最小值:

本发明所采用的基于投票特征的联邦梯度提升决策树训练方法在现有联邦梯度提升决策树训练方法上进行改进,整体个算法的递归训练过程不变,其不同是在每次递归训练的过程中,首先使用拟合全局样本分布的混合数据集计算梯度直方图,对增益值较高的特征投票选取出少量需要通信的特征,然后计算原始样本集的梯度直方图,提交被选特征的原始梯度直方图,在减少通信量的同时保证了模型精度。

具体来说,改进的联邦梯度提升决策树训练方法的每一次递归训练过程具体如下:

步骤5.1、每个参与方先根据其当前本地混合样本集,生成当前本地混合样本集的所有特征的梯度直方图;再根据每个特征的梯度直方图计算每个特征的增益值;后将根据增益值从大到小对所有特征进行排序,并将排在前k位的特征作为本地特征上传至中心服务器。k为设定值。

梯度直方图的bin代表了横坐标区间。具体来说对于离散特征,bin的数量就是类别数量;对于连续特征的直方图,其bin是由样本集中该特征的最大值与最小值之差等量划分出的。梯度直方图的纵坐标代表了对应区间之内的梯度之和,因为每一个样本可以在所有特征的直方图中找到对应的区间bin,因此将每一个样本的梯度都加入所有特征直方图的bin中就构建出了所有特征的梯度直方图。

决策树的增益值是评判一个特征是否值得作为划分的标准,增益值越高代表对应特征越值得被分裂。梯度提升决策树中增益值就是所有样本的损失值之和,分裂之后的损失值越小代表了对应特征越值得被分裂。

每个梯度直方图的增益值,增益值计算如下:

其中,

步骤5.2、中心服务器对所有参与方所上传的k个本地特征进行投票统计,其中本地特征被一个参与方上传记为该本地特征获得一票,并将票数排在前2k位的本地特征作为全局特征发送给每个参与方。

步骤5.3、每个参与方根据其当前本地原始样本集,生成这2k个全局特征的梯度直方图,并对2k个梯度直方图加入差分隐私噪声后得到2k个加噪梯度直方图,上传至中心服务器。

对梯度直方图添加差分隐私噪声这样攻击者无法通过梯度直方图反推出数据集中用户的隐私信息,从而保护了模型输出端的隐私。需要注意的是,算法整体的隐私保护预算为ε=ε1+ε2。其中,针对指数机制的噪声,在此分配隐私预算为ε2(ε2表示隐私保护程度,ε2越小隐私保护水平越高)敏感度δf由以下公式计算得来:

其中,x和x′是仅相差一条记录的相邻数据集。在本发明中,该数据集被应该视为梯度信息,因此对样本梯度gi添加指数机制的差分隐私噪声:

将具有噪声的梯度直方图发送给中心服务器。

步骤5.4、中心服务器先将所有参与方所上传的2k个加噪梯度直方图进行对应全局特征地聚合,得到2k个全局梯度直方图;再根据2k个全局梯度直方图计算2k个全局特征的增益值和分割阈值;后将增益值最大的全局特征作为分割特征,并将该分割特征及其分割阈值发送给每个参与方。

步骤5.5、每个参与方根据所返回的分割特征和分割阈值对当前本地混合样本集和当前本地原始样本集进行划分。

每个参与方在完成梯度提升决策树gbdt的递归训练后,会都得到到一组相同的参数(a1,w1),(a2,w2),(a3,w3)...(at,wt),其中每一组参数都代表了基学习器中决策树节点的分割阈值。

迭代递归训练梯度提升决策树的过程包括2层循环结构,即内层递归和外层迭代。在进行每一次外层迭代中第一次内层递归训练时,其当前本地混合样本集为步骤4所得到未划分前的本地混合样本集,当前本地原始样本集为步骤1所得到的未划分前的本地原始样本集;而在进行每一次外层迭代中内层递归的第2至h次的递归训练时,其当前本地混合样本集为上一次递归训练划分所得到的对应递归方向上的本地混合样本集,当前本地原始样本集为上一次递归训练划分所得到的的对应递归方向上的本地原始样本集。

步骤6、将参与方将所需预测的样本实例输入到步骤5所训练好的梯度提升决策树中,由此完成对样本实例的预测。

当参与方需要对样本实例进行预测时,把样本实例的特征输入到训练好的梯度提升决策树gbdt中,gbdt模型执行以下计算:

其中,其中q对应于独立的树结构和叶子权重。fk(x)代表第k个叶子节点的输出结果,最终累加所有树的结构,作为gbdt的模型输出,模型输出结果即为最终患者可能会患有该疾病的可能性大小。

当输入预测样本实例时,就会根据参数划分得到对应基学习器的权重,最终每个决策树的结构之和就是预测结果。

这个预测结果在参与方为医院时,可以代表该患者可能患有某种疾病的可能性,当参与方为银行时,该客户申请信用卡可能会用于诈骗的可能性等。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1