本技术涉及计算机,特别是涉及一种基于纵向xgboost算法的全局模型获取方法及系统。
背景技术:
1、xgboost(extreme gradient boosting)又叫极度梯度提升树,是boosting算法的一种实现方式;纵向xgboost决策树联邦学习是指当每个样本的特征信息和标签信息掌握在不同所有者处,各方联合进行xgboost决策树的训练,并且各方在训练和推理过程中不希望向其他任意方泄露关于样本的特征信息或者标签信息。
2、目前,往往在一个机构中并未包含某种特征的全部信息(如在金融、医疗等领域;由于医学数据的类型、属性、表达方式是错综复杂的,且资源庞大,过程复杂,可能存在大量的冗余数据;数据类型多样,包括文字、影像和信号等,数据稀疏性强),而是分散在各个机构,由于各个机构中的数据都会存在隐私数据,这也使得各个机构不愿轻意地共享、集成相关的数据,从而使纵向xgboost决策树模型训练过程中和联合推理过程中,存在被动方的特征信息泄露严重的情况,难以保护各方样本特征信息的隐私安全性。
3、鉴于此,提供一种保证数据隐私安全性的同时提高训练效率的基于纵向xgboost算法的全局模型获取方法及系统是本领域技术人员亟待解决的技术问题。
技术实现思路
1、本发明的目的为提供一种基于纵向xgboost算法的全局模型获取方法及系统,从而有效地保证数据的隐私安全性,也提高了模型在获取过程中的安全性,同时也降低了在通信过程中的通信开销以及计算的复杂度。
2、为解决上述技术问题,本发明提供的技术方案如下:
3、一种基于纵向xgboost算法的全局模型获取方法,包括如下步骤:
4、s1.协作方生成公钥和私钥,并将所述公钥分别发送至第一参与方和第二参与方;
5、s2.所述第一参与方和所述第二参与方分别根据所述公钥完成数据加密对齐,以获取加密对齐后的样本数据;
6、s3.所述第一参与方根据加密对齐后的样本数据创建决策树,与所述第二参与方相配合,根据分裂点算法更新所述决策树;
7、s4.多次选代所述步骤s3,直至满足预设条件后停止迭代,以获取模型参数;
8、s5.所述协作方根据所述私钥解密所述模型参数,以获取全局模型。
9、优选地,所述步骤s2,包括如下步骤:
10、所述第一参与方根据所述公钥对第一样本数据进行加密,并将加密后的第一样本数据发送至所述第二参与方;
11、所述第二参与方根据所述公钥对第二样本数据进行加密,所述第二样本数据并跟加密后的所述第一样本数据进行交集处理,以获取加密对齐后的样本数据,所述第二参与方将加密对齐后的样本数据发送给所述第一参与方。
12、优选地,所述步骤s3中所述第一参与方根据加密对齐后的样本数据创建决策树,包括以下步骤:
13、所述第一参与方根据所述加密对齐后的样本数据计算出一阶导数和二阶导数,所述第一参与方将所述一阶导数和所述二阶导数发送至所述第二参与方;
14、根据所述一阶导数和所述二阶导数计算出一阶导数聚合值和二阶导数聚合值,以获取所述第一参与方的本地分裂点;
15、根据所述第一参与方的本地分裂点创建所述决策树。
16、优选地,所述步骤s3中与所述第二参与方相配合,根据分裂点算法更新所述决策树,包括如下步骤:
17、根据所述一阶导数和所述二阶导数计算出所述第二参与方的一阶导数聚合值和二阶导数聚合值;
18、将所述第二参与方的一阶导数聚合值和二阶导数聚合值发送至所述第一参与方,以计算出所述第二参与方的本地分裂点;
19、将所述第二参与方的本地分裂点与所述第一参与方的本地分裂点进行增益比较,以获取全局目标分裂点;
20、根据所述全局目标分裂点更新所述决策树。
21、还提供了一种基于纵向xgboost算法的全局模型获取系统,包括:发送模块、加密对齐模块、更新模块、迭代模块和解密模块;
22、所述发送模块,用于协作方生成公钥和私钥,并将所述公钥分别发送至第一参与方和第二参与方;
23、所述加密对齐模块,用于所述第一参与方和所述第二参与方分别根据所述公钥完成数据加密对齐,以获取加密对齐后的样本数据;
24、所述更新模块,用于所述第一参与方根据加密对齐后的样本数据创建决策树,与所述第二参与方相配合,根据分裂点算法更新所述决策树;
25、所述迭代模块,用于多次选代所述更新模块所执行的动作,直至满足预设条件后停止迭代,以获取模型参数;
26、所述解密模块,用于所述协作方根据所述私钥解密所述模型参数,以获取全局模型。
27、优选地,所述加密对齐模块,包括:第一加密模块和第二加密模块;
28、所述第一加密模块,用于所述第一参与方根据所述公钥对第一样本数据进行加密,并将加密后的第一样本数据发送至所述第二参与方;
29、所述第二加密模块,用于所述第二参与方根据所述公钥对第二样本数据进行加密,所述第二样本数据并跟加密后的所述第一样本数据进行交集处理,以获取加密对齐后的样本数据,所述第二参与方将加密对齐后的样本数据发送给所述第一参与方。
30、优选地,所述更新模块,包括:第一计算模块、第二计算模块和创建模块;
31、所述第一计算模块,用于所述第一参与方根据所述加密对齐后的样本数据计算出一阶导数和二阶导数,所述第一参与方将所述一阶导数和所述二阶导数发送至所述第二参与方;
32、所述第二计算模块,用于根据所述一阶导数和所述二阶导数计算出一阶导数聚合值和二阶导数聚合值,以获取所述第一参与方的本地分裂点;
33、所述创建模块,用于根据所述第一参与方的本地分裂点创建所述决策树。
34、优选地,所述更新模块,还包括:第三计算模块、第四计算模块、比较模块和决策树更新模块;
35、所述第三计算模块,用于根据所述一阶导数和所述二阶导数计算出所述第二参与方的一阶导数聚合值和二阶导数聚合值;
36、所述第四计算模块,用于将所述第二参与方的一阶导数聚合值和二阶导数聚合值发送至所述第一参与方,以计算出所述第二参与方的本地分裂点;
37、所述比较模块,用于将所述第二参与方的本地分裂点与所述第一参与方的本地分裂点进行增益比较,以获取全局目标分裂点;
38、所述决策树更新模块,用于根据所述全局目标分裂点更新所述决策树。
39、本发明提供了一种基于纵向xgboost算法的全局模型获取方法,通过s1.协作方生成公钥和私钥,并将公钥分别发送至第一参与方和第二参与方;s2.第一参与方和第二参与方分别根据公钥完成数据加密对齐,以获取加密对齐后的样本数据;s3.第一参与方根据加密对齐后的样本数据创建决策树,与第二参与方相配合,根据分裂点算法更新决策树;s4.多次选代步骤s3,直至满足预设条件后停止迭代,以获取模型参数;s5.协作方根据私钥解密模型参数,以获取全局模型;本方法通过协作方来统一生成公钥跟私钥,然后传输给各个参与方,保证了各个参与方的数据隐私安全,同时各个参与方之间只需要交换加密后的模型参数,从而有效提高了模型在获取过程中的安全性,同时也降低了在通信过程中的通信开销以及计算的复杂度。
40、本发明还提供了一种基于纵向xgboost算法的全局模型获取系统,由于该系统与该基于纵向xgboost算法的全局模型获取方法解决相同的技术问题,属于相同的技术构思,理应具有相同的有益效果,在此不再赘述。