CN113449880B - 用于纵向联邦学习决策树模型的异构加速***及方法 - Google Patents
用于纵向联邦学习决策树模型的异构加速***及方法 Download PDFInfo
- Publication number
- CN113449880B CN113449880B CN202111001656.1A CN202111001656A CN113449880B CN 113449880 B CN113449880 B CN 113449880B CN 202111001656 A CN202111001656 A CN 202111001656A CN 113449880 B CN113449880 B CN 113449880B
- Authority
- CN
- China
- Prior art keywords
- data
- bitmaps
- party
- schemes
- bitmap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种用于纵向联邦学习决策树模型的异构加速***及方法。该方法包括:第一参与方根据当前决策树模型和第一参与方的数据,计算出一阶导数grad和二阶导数hess作为中间参数,并将加密后中间参数发送给第二参与方;第二参与方,确定第二参与方的数据中与多个分割方案中的每一个分割方案各自对应的有效数据,并且根据与多个分割方案各自对应的有效数据筛选加密后第一参与方的中间参数以进行密态求和运算,得到与多个分割方案对应的密态求和运算结果,以及将密态求和运算结果发送给第一参与方,从而改进当前决策树模型。多个分割方案通过先对第二参与方的特征遍历再对当前决策树模型的树节点遍历确定。如此提高整体计算效率。
Description
技术领域
本申请涉及数据安全和隐私保护技术领域,具体涉及用于纵向联邦学习决策树模型的异构加速***及方法。
背景技术
随着人工智能和大数据挖掘分析等应用领域的发展,对数据量的需求越来越大。例如训练人工智能的应用模型需要使用大量带有合适的数据标签或者特征数值的训练数据。高质量的数据往往来源于经营活动中产生和积累的应用数据。但是应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。随着数据所有权的重要性、用户隐私和数据安全等受到更多重视,也随着法律法规对数据收集处理提出更严格的约束和要求,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习(Federated Learning,FL)的概念。联邦学习指的是拥有数据的各个参与方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。其中,联邦学习根据训练数据在不同参与方之间的数据特征空间和样本空间的分布情况,可以划分为在数据特征空间重叠较大而在样本空间重叠较小的横向联邦学习,在数据特征空间重叠较小而在样本空间重叠较大的纵向联邦学习,以及在数据特征空间和样本空间均重叠较小的联邦迁移学习。
纵向联邦学习在金融行业中有广泛应用,例如结合同一个用户的银行账户信息和在通信方面的信息。纵向联邦学习中常见的算法/模型有纵向线性回归、纵向逻辑回归(hetero logistic regression,Hetero-LR)、纵向泊松回归,还有决策树模型(decisiontree mode)如secureboost算法等。其中,金融行业对训练模型在可解释性和可追查性上有较高的要求。相对于可解释性较差的深度神经网络(Deep Neural Networks,DNN)或者训练效果较差的统计机器学习线性模型,决策树模型如secureboost算法等具有较好的训练效果也在可解释性和可追查性上表现良好,在联邦学习商业化应用中特别是在金融行业中的纵向联邦学习相关应用场景中有广泛应用。但是,决策树模型及类似算法涉及到大量的密态运算和大整数位宽的加密后数据(例如对一个浮点数的原始数据加密后可得到1024比特的加密后数据),并且随着决策树的深度的增加也会增加调用密态运算算子的次数,从而提出了从存储资源到计算性能的巨大挑战。现有技术中,通过中央处理器(centralprocessing unit,CPU)来执行纵向联邦学习下的决策树模型训练任务面临计算效率低下的问题,而通过图形处理器(graphics processing unit,GPU)的并行化处理来执行纵向联邦学习下的决策树模型训练任务则面临着数据开销大且并行度低的问题。为此,需要一种用于纵向联邦学习决策树模型的异构加速***及方法,能够在保证数据集不被泄露的前提下实现决策树模型的训练,同时还能很好应对大整数位宽数据和密态运算以及决策树算法特性所带来的对存储资源和计算性能的需求。
发明内容
第一方面,本申请实施例提供了一种异构加速方法,应用于纵向联邦学习决策树模型。所述方法包括:第一参与方根据当前决策树模型和所述第一参与方的数据,计算出所述第一参与方的数据的一阶导数grad和二阶导数hess作为所述第一参与方的中间参数,并将半同态加密或者全同态加密的加密后所述第一参与方的中间参数发送给第二参与方;所述第二参与方,确定所述第二参与方的数据中与多个分割方案中的每一个分割方案各自对应的有效数据,并且根据与所述多个分割方案各自对应的有效数据筛选加密后所述第一参与方的中间参数以进行密态求和运算,从而得到与所述多个分割方案对应的密态求和运算结果,以及将与所述多个分割方案对应的密态求和运算结果发送给所述第一参与方;和所述第一参与方对与所述多个分割方案对应的密态求和运算结果进行解密,从而改进所述当前决策树模型。其中,所述多个分割方案通过先对所述第二参与方的特征遍历再对所述当前决策树模型的树节点遍历确定。
第一方面所描述的技术方案,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二参与方,确定所述第二参与方的数据中与所述多个分割方案中的每一个分割方案各自对应的有效数据,包括:确定所述第二参与方的数据的每一个数据样本,根据当前特征的当前分割方案来分割当前的树节点,是否会被分割到左节点,如果是,则该数据样本属于与所述当前分割方案对应的有效数据,其中,所述当前决策树模型中左边的叶子节点的数量小于所述当前决策树模型中右边的叶子节点的数量。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二参与方,确定所述第二参与方的数据中与所述多个分割方案中的每一个分割方案各自对应的有效数据,包括:确定所述第二参与方的数据的每一个数据样本,根据当前特征的当前分割方案来分割当前的树节点,是否会被分割到右节点,如果是,则该数据样本属于与所述当前分割方案对应的有效数据,其中,所述当前决策树模型中右边的叶子节点的数量小于所述当前决策树模型中左边的叶子节点的数量。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述方法还包括:根据与所述多个分割方案各自对应的有效数据分别生成多个bitmap,所述多个bitmap与所述多个分割方案一一对应,所述多个bitmap的每一个bitmap包括多个向量并且所述多个向量与加密后所述第一参与方的中间参数一一对应,所述多个bitmap的每一个bitmap所包括的多个向量用于指示与该bitmap所对应的分割方案对应的有效数据,其中,加密后所述第一参与方的中间参数在所述第二参与方处的并行计算单元的内存中连续存储。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述方法还包括:将所述多个bitmap的每一个bitmap所包括的多个向量作为行向量以组成bitmap矩阵,其中,所述bitmap矩阵的列向量指示了加密后所述第一参与方的同一个中间参数在所述多个分割方案中分别是否用于密态求和运算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述方法还包括:根据所述多个bitmap的每一个bitmap确定与该bitmap所对应的分割方案的有效数据样本的数量和分布,以及根据所述有效数据样本的数量和分布,判断与该bitmap所对应的分割方案是否有效。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述方法还包括:根据所述多个bitmap的每一个bitmap确定与该bitmap所对应的分割方案的无效数据样本,并对所确定的无效数据样本进行默认操作,所述默认操作是左值操作、右值操作或者密态归零操作,其中,所述左值操作将从该无效数据样本往左边方向分布的第一个有效数据作为该无效数据样本的返回值,所述右值操作将从该无效数据样本往右边方向分布的第一个有效数据作为该无效数据样本的返回值,所述密态归零操作将预先设定的密态数据作为该无效数据样本的返回值。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:从所述多个bitmap中确定有交集的至少两个bitmap,所述至少两个bitmap之间的公有部分被用于确定与所述至少两个bitmap各自对应的至少两个分割方案之间的重复计算内容;和将所述重复计算内容通过所述并行计算单元计算一次并且将所述重复计算内容的计算结果共享于所述至少两个分割方案各自相关的密态求和运算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述至少两个bitmap之间的公有部分通过按位比较所述至少两个bitmap各自包括的多个向量而确定。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述至少两个bitmap之间的公有部分的范围可调整。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:从所述多个bitmap中确定没有交集的至少两个bitmap;和将所述至少两个bitmap合并后通过所述并行计算单元进行计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:根据已确定的最优分割方案,对在所述并行计算单元的内存中连续存储的加密后所述第一参与方的中间参数进行内存重排操作。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:根据所述并行计算单元的计算资源和所述并行计算单元的显存资源调节所述并行计算单元进行并行计算的并行度。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述bitmap矩阵的稀疏性/稠密性被用于提高所述并行计算单元进行并行计算的稠密程度。
第二方面,本申请实施例提供了一种非瞬时性计算机可读存储介质,该计算机存储介质保存计算机指令。该计算机指令被处理装置执行时,使得所述处理装置执行根据第一方面中任一项所述的方法。
第二方面所描述的技术方案,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。
第三方面,本申请实施例提供了一种异构加速***。所述异构加速***包括:接收模块,用于接收加密后中间参数,所述加密后中间参数由非本地方根据当前决策树模型和所述非本地方的数据计算出所述非本地方的数据的一阶导数grad和二阶导数hess并且进行加密后作为所述加密后中间参数;GPU显存,所述GPU显存与所述接收模块连接,其中,所述加密后中间参数在所述GPU显存中连续存储;bitmap生成模块,用于确定本地方的数据中与多个分割方案中的每一个分割方案各自对应的有效数据,并且根据与所述多个分割方案各自对应的有效数据分别生成多个bitmap,其中,所述多个bitmap的每一个bitmap包括多个向量并且所述多个向量与所述加密后中间参数一一对应,所述多个bitmap的每一个bitmap所包括的多个向量用于指示与该bitmap所对应的分割方案对应的有效数据;和密态求和运算模块,用于根据所述多个bitmap筛选所述加密后中间参数以进行密态求和运算,从而得到与所述多个分割方案对应的密态求和运算结果,其中,所述多个分割方案通过先对所述本地方的特征遍历再对所述当前决策树模型的树节点遍历确定。
第三方面所描述的技术方案,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述密态求和运算模块进行并行计算,所述异构计算***还包括计算优化模块,所述计算优化模块用于:从所述多个bitmap中确定有交集的至少两个bitmap,所述至少两个bitmap之间的公有部分被用于确定与所述至少两个bitmap各自对应的至少两个分割方案之间的重复计算内容;和将所述重复计算内容通过所述密态求和运算模块计算一次并且将所述重复计算内容的计算结果共享于所述至少两个分割方案各自相关的密态求和运算。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个分割方案各自相关的密态求和运算通过所述密态求和运算模块进行并行计算,所述异构计算***还包括计算优化模块,所述计算优化模块用于:从所述多个bitmap中确定没有交集的至少两个bitmap;和将所述至少两个bitmap合并后通过所述密态求和运算模块进行计算。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的用于纵向联邦学习决策树模型的异构加速方法的流程示意图。
图2示出了本申请实施例提供的由与多种分割方案对应的多个bitmap所组成的矩阵的示意图。
图3示出了本申请实施例提供的用于纵向联邦学习决策树模型的异构加速***的框图。
具体实施方式
本申请实施例为了解决如何能够在保证数据集不被泄露的前提下实现决策树模型的训练,同时还能很好应对大整数位宽数据和密态运算以及决策树算法特性所带来的对存储资源和计算性能的需求,这样的技术难题,通过提供了一种用于纵向联邦学习决策树模型的异构加速***及方法,从而实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。
本申请实施例可用于以下应用场景,包括但是不限于,多方联邦学习、纵向联邦学习、决策树模型特别是secureboost算法、数据安全、隐私保护或者应用隐私计算框架或算法的其它应用场景。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
请参阅图1,图1示出了本申请实施例提供的用于纵向联邦学习决策树模型的异构加速方法的流程示意图。在联邦学习特别是纵向联邦学习的场景中,决策树模型例如secureboost算法等,涉及到两种参与方,一种参与方是持有数据和标签的参与方也叫做guest方或者主动方,另一种参与方只持有数据而不持有标签也叫做host方或者被动方。一般会存在多个host方而只有一个guest方,或者说在同一次联邦学习迭代中可能存在多个数据提供方也即host方但是只有一个持有标签的参与方也就是guest方。典型的训练纵向联邦学习决策树模型的过程中需要guest方和host方之间的数据交互和协作,具体包括:guest方也即主动方根据当前决策树模型计算出中间参数,也就是根据guest方的数据计算数据样本的一阶导数grad和二阶导数hess,并对中间参数进行加密后将加密的中间参数发送给被动方也就是Host方;host方根据当前决策树模型在每一个非叶子节点(也叫做树节点)上对每个特征可能的分割后模型进行计算,也就是根据当前分割方案对被分割到左节点上的数据的grad和hess分别进行密态求和运算,得到与全部分割方案对应的全部密态求和运算结果,并将与全部分割方案对应的全部密态求和运算结果发送给guest方;guest方先对与全部分割方案对应的全部密态求和运算结果进行解密,然后针对每一个树节点计算出最优解,从而可用于改进当前决策树模型。应当理解的是,guest方从host方获得与全部分割方案对应的全部密态求和运算结果后进行解密,然后根据预设规则计算出最优解或者说最优的分割方案。但是,guest方并不知悉host方是如何进行分割的,guest方仅仅获得与所有分割方案对应的全部密态求和运算结果,因此guest方并不知道host方的具体分割过程(例如host方根据特定特征或者某个特征中具体数值进行分割)。上述的guest方和host方之间的数据交互和协作可见于secureboost算法或者采用了secureboost算法的联邦学习框架,例如FATE开源框架、FedLearner框架等。这些联邦学习框架或者更笼统地说用于隐私计算的框架,通过例如Paillier密钥***实现其中的加密解密计算,实现了决策树生成和联邦密态计算。并且,这些联邦学习框架和用于纵向联邦学习决策树模型,可以应用于各种可能的商业化应用场景中,例如在金融行业的商业化应用场景中将存款和收入作为用于进行分割的特征。下面结合图1所示的异构加速方法100的流程示意图及其中各个步骤进一步说明。应当理解的是,异构加速方法100中的步骤可以根据实际需要进行顺序调整、合并和删减。如图1所示,异构加速方法100包括以下步骤。
步骤S102:持有数据和标签的guest方以及只持有数据的host方进行预处理操作。
其中,预处理操作可以单独执行而不作为异构加速方法100的一部分,也就是说可以将经过预处理操作的数据作为初始数据开始执行异构加速方法100的剩下步骤。或者,预处理操作可以作为异构加速方法100中的初始化操作的一部分,用于将初始数据调整为适合开始执行异构加速方法100的状态;或者,步骤S102可以部分地被执行甚至完全不被执行,比如让未经过处理的原始值用于后续处理。并且,预处理操作可以包括任意合适的操作,在此不做具体限定。在一种可能的实施方式中,预处理操作可以包括以下之一:数据对齐、构造决策树模型和原始值替代。数据对齐指的是各个参与方确定数据交集也就是对齐数据样本,例如guest方和host方确定各自数据的交集,可以通过满足隐私保护和数据安全需求的数据ID匹配实现,例如通过RSA交集算法。构造决策树模型指的是通过联邦学习的方法构建初始的决策树模型,包括通过secureboost算法和其变种以及任意合适的算法并且适用于所有基于决策树的联邦学习模型框架,例如可以通过xgboost模型。并且,构造决策树模型可以使用guest方的数据或者host方的数据,例如FATE框架中所包含的fast_secureboost算法;或者,构造决策树模型可以完全只使用guest方的数据并且不与host方进行数据交换,例如FATE框架中所包含的complete_secureboost。构造决策树模型或者说生成初始的决策树模型所使用的数据的来源,可以根据具体的联邦学习模型框架来确定,在此不做具体限定。原始值替代指的是对数据集中特征的原始值进行处理,例如用分割值/中位数/索引等替代原始值,从而方便后续进行数据分类。在一种可能的实施方式中,可以根据事先计算出的每一个特征的可能的分割点,对数据集中特征的原始值进行处理。例如,设特征为年龄,并且作为特征的年龄的分割点为10岁和20岁,则可以分别用0、1、2等索引值来代替原始值,如用0表示不到10岁,1表示10岁和20岁之间,而2表示大于20岁,从而将作为特征的年龄的原始值替代成索引值(0、1和2),这样有利于后续的数据分类。类似地,可以通过分割值和中位数来替代原始值,还可以采用任意合适的方式来简化原始值,只要简化后仍等效于通过原始值进行数据分类或者回归等,这些可以根据具体需求和应用场景来调整,在此不做具体限定。
步骤S104:guest方根据当前决策树模型和guest方的数据,计算出guest方的数据的中间参数也即guest方的数据的一阶导数grad和二阶导数hess,并将加密后的中间参数发送给host方。
其中,对中间参数也即guest方的数据的一阶导数grad和二阶导数hess进行加密的方式,可以通过任意适用于基于决策树的联邦学习模型框架的加密算法,如同态加密算法以利于后续的密态运算,而且可以通过任意合适的同态加密算法如Paillier加密。因此,本申请实施例所涉及的密钥***可以是支持同态加法的任意同态密钥***,例如Paillier密钥***。应当理解的是,guest方的数据可以指的是通过步骤S102对初始数据进行预处理操作后的数据,也可以是未经过预处理的原始值。guest方向host方发送加密后的中间参数也可以通过任意适用于基于决策树的联邦学习模型框架的通信方式,在此不做具体限定。
步骤S106:host方,针对多个分割方案中的每一个分割方案,对在该分割方案中被分割到左节点/右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算,得到与所述多个分割方案对应的密态求和运算结果,以及将与所述多个分割方案对应的密态求和运算结果发送给guest方,其中,所述多个分割方案根据所述host方的数据以及在所述当前决策树模型下每一个非叶子节点(树节点)上每个特征可能的分割后模型确定。
其中,步骤S106可以理解为host方进行的推理过程,就是由host方根据当前决策树模型来确定所有可能的分割方案,然后针对多个分割方案中的每一个分割方案,对该分割方案中被分割到左节点/右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。这里,所述多个分割方案根据所述host方的数据以及在当前决策树模型下的每一个非叶子节点(树节点)上每个特征可能的分割后模型确定。树节点也叫做非叶子节点,是决策树模型的内部节点,用于逻辑判断;而叶子节点可以是类别标记或者其它标记,用于指示预测结果。host方需要对各个特征可能的分割后模型进行计算,意味着根据当前分割方案对当前树节点所对应的数据集进行再次分割,从而使得一部分数据被分割到左节点或右节点上。应当理解的是,决策树模型中的左节点和右节点是相对的概念。假设所构造的决策树模型中左边的叶子节点的数量永远小于右边的叶子节点的数量,则在步骤S106中要求对该分割方案中被分割到左节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算;相对地,假设所构造的决策树模型中右边的叶子节点的数量永远小于左边的叶子节点的数量,则可以相应地在步骤S106要求对该分割方案中被分割到右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。因此,在一种可能的实施方式中,为了更一般性地体现决策树模型中的左节点和右节点是相对的概念,步骤S106被表述为针对多个分割方案中的每一个分割方案,对该分割方案中被分割到左节点/右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。因此,host方对各个特征可能的分割后模型进行计算,本质上是对具有较小的叶子节点的数量的左边/右边的树节点上的数据进行密态运算。所述多个分割方案根据所述host方的数据以及在所述当前决策树模型下每一个非叶子节点(树节点)上每个特征可能的分割后模型确定,意味着host方根据host方的数据来从所述当前决策树模型中筛选出要进行密态求和运算的树节点并将这些筛选出的树节点分割到左边/右边,然后在筛选出的树节点上根据相对应的guest方的数据的grad和hess进行密态求和运算。这意味着,host方根据自身的数据确定如何分割也就是根据host方的数据来确定host方的具体分割过程,而在分割后则根据guest方的数据的grad和hess来进行密态求和运算。如此,在步骤S106所进行的host方的推理过程需要用到host方的数据和guest方的数据,因此需要guest方和host方之间的数据交互和协作。
继续参阅步骤S106,host方根据自身的数据确定如何分割需要根据当前决策树模型来确定所有可能的分割方案并且对所有可能的分割方案进行遍历及密态求和运算,也就是在每一个分割方案的遍历中对在该分割方案中被分割到左节点/右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。而每个分割方案中如何确定分割到左节点/右节点上的host方的数据,则需要根据所述host方的数据以及在所述当前决策树模型下每一个非叶子节点(树节点)上每个特征可能的分割后模型进行计算。这样就使得遍历所有可能的分割方案的整体计算量受到三个变量的影响,分别是树节点总数(node num),特征总数(feature num),以及分割点总数(split num)。并且,可能的分割方案的总数或者说进行遍历计算的轮次数,是由这三个变量也即树节点总数、特征总数以及分割点总数的乘积来决定。这意味着完成步骤S106的计算涉及到三个不同层次的遍历计算,分别是对所有的树节点进行遍历,对所有的可行特征进行遍历以及针对每一个特征可能的分割点进行遍历。这样就使得在决策树模型的训练过程中,每一次host方进行推理过程都涉及到大量的遍历计算,特别是大整数位宽密态数据的密态求和运算。而且,需要对分散在各个树节点上的可行特征及特征的可能分割点进行遍历计算,也需要对不连续分布的guest方的数据的grad和hess分别进行密态求和运算,这样可能导致一轮次的遍历计算中的数据量较大。并且,随着决策树的深度加深,每一轮次的遍历计算中的数据量会逐渐降低但是会逐渐增加用于密态求和运算的算子的调用次数,从而导致频繁地调用加密算子、解密算子以及密态求和运算算子,这样使得单个轮次计算的数量下降、并行度和加速比也下降,整体数据开销增加。为此,本申请实施例提供了数据存储结构的优化,循环计算过程的优化以及计算并行度的优化,从而对在联邦学习特别是纵向联邦学习的场景中,基于决策树的任意联邦学习模型框架,相关的决策树模型的推理过程所涉及到的遍历计算和密态计算,例如secureboost算法的执行流程和密态运算内容,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率,下面对这些优化进行详细说明。
请参考上述步骤S104和步骤S106,在一种可能的实施方式中,本申请实施例提供了数据存储结构的优化。其中,在步骤S104中,guest方根据当前决策树模型和guest方的数据,计算出guest方的数据的中间参数也即guest方的数据的一阶导数grad和二阶导数hess,并将加密后的中间参数发送给host方。在步骤S106中,host方需要对分散在各个树节点上的可行特征及特征的可能分割点进行遍历计算,也需要对不连续分布的guest方的数据的grad和hess分别进行密态求和运算。考虑到在进行遍历计算和密态求和运算时,与host方的各个数据对应的guest方的数据的grad和hess保持不变,host方根据host方的数据来确定host方的具体分割过程也就是根据host方的数据来确定哪些guest方的数据的grad和hess用于密态求和运算。换句话说。在具体的分割方案被确定之后,host方的各个数据各自对应的guest方的数据的grad和hess之中的一部分根据被确定的分割方案而被筛选出来用于密态求和运算。因此,在进行遍历计算和密态求和运算时,用于密态求和运算的算子会被多次调用,根据与多个分割方案各自对应的多个分割方式,每一次筛选出guest方的数据的grad和hess之中的一部分用于密态求和运算。而这些被筛选出的用于密态求和运算的guest方的数据的grad和hess之中的一部分,往往是不连续分布的,并且不同的分割方案可以对应不同的分布情况。为此,本申请实施例提供了一种优化的数据存储结构以及相应的数据存储方式。具体地,host方接收到来自guest方的加密后的中间参数,也就是密态数据形式的guest方的数据的grad和hess,host方将密态数据形式的guest方的数据的grad和hess写入或者拷贝到位于host方一侧的GPU的显存中,或者位于host方一侧的用于并行计算的处理***的内存。而且,以GPU的显存为例,在一些示例性实施例中,host方将密态数据形式的guest方的数据的grad和hess写入或者拷贝到GPU的显存中例如GPU的全局缓存(globalmemory)中。上面提到guest方的数据的grad和hess保持不变,这意味着在进行遍历计算和密态求和运算时不需要修改写入GPU的显存中的guest方的数据的grad和hess,这样就避免了因为数据读写而带来的延迟,也就是只需要第一次写入操作后就可以让各个算子并行读取GPU的显存中的数据,有利于节省在CPU和GPU之间的数据交互所带来的开销,也有利于充分发挥GPU的计算并行度高的特性。另外,为了防止数据量过大,特别是加密后的中间参数作为密态数据一般具有较大的位宽,从而可能导致GPU的显存不足,在一些实施例中,可以通过mini-batch技术将原始数据集分割成若干份子集(例如分割成等量的子集),针对每一个子集进行上述计算,有利于应对计算资源受限的情况。
请参考上述步骤S104和步骤S106,在一种可能的实施方式中,本申请实施例提供了循环计算过程的优化。上面提到,步骤S106的计算涉及到三个不同层次的遍历计算,分别是对所有的树节点进行遍历,对所有的可行特征进行遍历以及针对每一个特征可能的分割点进行遍历。这意味着,为了计算出所有可能的分割方案,host方需要经过三个层次的遍历计算,或者说从外到内经过三重循环计算,在最外层也是第一重循环对所有的树节点进行遍历,然后在次外层也是第二重循环对所有的可行特征进行遍历,最后在最内层也是第三重循环针对每一个特征可能的分割点进行遍历。可能的分割方案的总数或者说进行遍历计算的轮次数,是由三个变量也即树节点总数、特征总数以及分割点总数的乘积来决定。考虑到决策树模型中,数据是分布在不同的树节点上,而当前分割方案中对同一特征需要对特定树节点的所有数据进行遍历以确定该当前分割方案所产生的分割结果,因此用于密态求和运算的算子本质上是遍历了整个数据集。为此,本申请实施例提供了循环计算过程的优化。具体地,本申请实施例对步骤S106的遍历计算进行了优化,将最外层也是第一重循环设为对所有的可行特征进行遍历,然后在次外层也就是第二重循环对所有的树节点进行遍历。如此,通过先对所有的可行特征进行遍历然后对所有的树节点进行遍历,使得在进行次外层也就是第二重循环中,可以进行判断操作。该判断操作是根据当前特征的当前分割方案来分割当前的树节点,确定特定数据样本是否会被分割到左节点(假设所构造的决策树模型中左边的叶子节点的数量永远小于右边的叶子节点的数量)。上面提到,在步骤S106中,host方,针对多个分割方案中的每一个分割方案,对在该分割方案中被分割到左节点/右节点上的host方的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。并且,host方对各个特征可能的分割后模型进行计算,本质上是对具有较小的叶子节点的数量的左边/右边的树节点上的数据进行密态运算。因此,通过本申请实施提供的优化后的遍历计算,可以先对所有的可行特征进行遍历然后对所有的树节点进行遍历,并且在对所有的树节点进行遍历的循环中就判断出当前特征的当前分割方案下特定数据样本是否被分割到左节点(假设左边的树节点具有较小的叶子节点的数量)或者被分割到右节点(假设右边的树节点具有较小的叶子节点的数量)。这意味着可以节省底层计算量,简化了整体的遍历计算。并且,上述的判断操作,也就是根据当前特征的当前分割方案来分割当前的树节点,确定特定数据样本是否会被分割到具有较小的叶子节点的数量的一侧(左节点或者右节点),等效于做出二选一的判断操作,也即可以用0和1来表示判断操作的结果。例如,假设左边的树节点具有较小的叶子节点的数量,则可以用0表示特定数据样本没有被分割到左节点,用1表示特定数据样本被分割到左节点。上面提到,决策树模型中的左节点和右节点是相对的概念,例如,假设右边的树节点具有较小的叶子节点的数量,则可以用0表示特定数据样本没有被分割到右节点,用1表示特定数据样本被分割到右节点。总之,可以用0和1或者类似的数学表达方式来区分特定数据样本是否会被分割到具有较小的叶子节点的数量的一侧。如此,可以将上述的判断操作,等效于根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1。下面以用0表示特定数据样本没有被分割到具有较小的叶子节点的数量的一侧,而用1表示特定数据样本被分割到具有较小的叶子节点的数量的一侧,这样的表达方式来进行说明。应当理解的是,0和1仅用于说明并非限制性,在一些示例性实施例中也可以用1表示特定数据样本没有被分割到具有较小的叶子节点的数量的一侧,而用0表示特定数据样本被分割到具有较小的叶子节点的数量的一侧。另外,除了0和1之外的类似的数学表达方式也可以作为本申请实施例的一些示例性实施例,也属于本申请旨在覆盖的范围,在此不做具体限定。
通过根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,可以生成与当前特征的当前分割方案对应的bitmap。bitmap是多个表示为0或者1的向量所组成,用于指示数据是否有效。例如,bitmap上的第5位的向量为1,则意味着第5个数据有效,这里某个数据有效被定义为该数据被分割到具有较小的叶子节点的数量的一侧,也就是说需要对该数据所对应的guest方的数据的grad和hess分别进行密态求和运算。这意味着,host方针对多个分割方案中的每一个分割方案可以通过上述的判断操作来生成与该分割方案对应的bitmap,其中,bitmap包括多个向量,该多个向量与多个数据分别对应且用于指示数据是否有效,host方对被指示为有效的数据所对应的guest方的数据的grad和hess分别进行密态求和运算。因此,多个bitmap与多个分割方案一一对应,每个bitmap用于提供与该bitmap相对应的分割方案的索引,从而可以确定在与该bitmap相对应的分割方案下的特定数据是否有效。下面结合图2进一步说明如何利用bitmap来改进计算效率,其中,图2示出了本申请实施例提供的由与多种分割方案对应的多个bitmap所组成的矩阵的示意图。
请参阅图2,图2示出了GPU内存数据200,其中包括多个中间参数,分别编号为1至8。上面提到,在图1所示的步骤S104,guest方根据当前决策树模型和guest方的数据,计算出guest方的数据的中间参数也即guest方的数据的一阶导数grad和二阶导数hess,并将加密后的中间参数发送给host方。host方接收到来自guest方的加密后的中间参数,也就是密态数据形式的guest方的数据的grad和hess,host方将密态数据形式的guest方的数据的grad和hess写入或者拷贝到位于host方一侧的GPU的显存中,或者位于host方一侧的用于并行计算的处理***的内存。仅出于示例性目的,图2所示的GPU内存数据200包括了8个中间参数。应当理解的是,根据实际需要和应用场景,GPU内存数据200可以包括任意数量的中间参数,也就是任意数量的密态数据形式的guest方的数据的grad和hess,在此不做具体限定。如上所述,根据与多个分割方案各自对应的多个分割方式,每一次筛选出guest方的数据的grad和hess之中的一部分用于密态求和运算。以图2所示的GPU内存数据200为例,根据与多个分割方案各自对应的多个分割方式,每一次筛选出中间参数1至中间参数8中间的一部分或者全部用于密态求和运算。结合上述的与多个分割方案一一对应的多个bitmap,可以通过每个bitmap所包括的向量来确定数据是否有效,也就是用于对中间参数1至中间参数8进行筛选。其中,图2示出了6种分割方案,分别为分割方案1至分割方案6,以及与分割方案1至分割方案6一一对应的bitmap 1至bitmap6。每个bitmap都包括多个向量,该多个向量与GPU内存数据200所存储的中间参数1至中间参数8一一对应。例如,在分割方案1以及与分割方案1对应的bitmap 1中,与中间参数1对应的向量为1,这意味着在分割方案1下中间参数1有效,也就是说在分割方案1下需要对中间参数1进行密态求和运算;与中间参数8对应的向量为0,这意味着在分割方案1下中间参数8无效,也就是说在分割方案1下不会对中间参数8进行密态求和运算。如上所述,host方根据自身的数据确定如何分割也就是根据host方的数据来确定host方的具体分割过程,而在分割后则根据guest方的数据的grad和hess来进行密态求和运算。因此,GPU内存数据200所存储的各个中间参数来自于guest方,是加密后的guest方的数据的grad和hess;而各个分割方案及各自对应的bitmap则是host方根据host方的数据来确定的具体分割过程或者说分割方式。这意味着,bitmap中的为1的向量对应有效的host方的数据也对应被筛选出来进行密态求和运算的guest方的数据的grad和hess,而bitmap中的为0的向量对应无效的host方的数据。因此,bitmap中的为1的向量和为0的向量的分布,代表了该bitmap所对应的分割方案的具体分割过程。又因为在进行遍历计算和密态求和运算时,与host方的各个数据对应的guest方的数据的grad和hess保持不变,这意味着GPU内存数据200所存储的各个中间参数的数值和地址是不变的。因此,可以结合多个bitmap而组成如图2所示的bitmap矩阵210,bitmap矩阵210包括bitmap 1至bitmap6,可以理解为6行8列的矩阵,矩阵中的每个阵元是1或者0。bitmap矩阵210的行向量对应一个bitmap或者说一个分割方案,而bitmap矩阵210的列向量则用于指示在不同的分割方案下同一个中间参数或者说同一个guest方的数据的grad和hess是否进行密态求和运算。例如,bitmap矩阵210的第一个列向量,对应中间参数1,该第一个列向量为100000,这意味着中间参数1只有在分割方案1才有效也即需要进行密态求和运算,而在分割方案2至分割方案7中均无效也即不需要进行密态求和运算。如此,通过本申请实施提供的优化后的遍历计算,可以根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,进而生成与当前的分割方案对应的bitmap,从而为所有可能的分割方案生成对应的多个bitmap,而这些bitmap所组成的bitmap矩阵中的行向量及列向量还有稀疏性、稠密性等可用来指示各种能用于优化计算的信息,有利于改进整体计算效率,下面详细说明。
请参阅图1和图2,在一种可能的实施方式中,图1所示的用于纵向联邦学习决策树模型的异构加速方法100可以利用图2所示的bitmap矩阵210的可压缩特性来节省存储空间和简化数据存储结构。具体地,bitmap矩阵210如图2所示,可以表示为多个行向量或者多个列向量,并且矩阵阵元为0或者1。这样使得每个矩阵阵元可以通过一个比特位来表示数据是有效或者无效,从而可以压缩为整型数据或者字符串数据用于存储所有可能的分割方案。这样有利于节省存储空间和简化数据存储结构。并且,在所有可能的分割方案中,每个数据样本是否被分割到左节点(假设左边的树节点具有较小的叶子节点的数量)的判断是彼此独立的,而host方从guest方获得的guest方的数据的grad和hess在GPU的显存中是连续存储的。这意味着,在GPU的显存中连续存储的guest方的数据的grad和hess,其中有一部分是有效而剩余部分是无效,或者其中全部有效,或者其中全部无效。而有效的部分是用于密态求和运算,并且对应被分割到左节点的host方的数据也对应bitmap中为1的向量或者bitmap矩阵中为1的矩阵阵元。因此,通过多个bitmap和由多个bitmap所组成的bitmap矩阵210,可以便利地标识出在GPU的显存中连续存储的guest方的数据的grad和hess之中的有效部分。从统计角度考虑,在连续分布的多个数据中出现无效数据的概率和出现有效数据的概率均是随机的,因此上述的每一次筛选出guest方的数据的grad和hess之中的一部分用于密态求和运算,相当于从连续分布的多个数据(也即在GPU的显存中连续存储的guest方的数据的grad和hess)中选择随机分布的有效数据。并且,不同的决策树模型,不同的分割方案,均会影响哪些树节点被分割到左节点以及与这些树节点对应的数据被视为有效。这一点体现在bitmap上的为0的向量和为1的向量的数量和分布上的变化,从而提供了各种能用于优化计算的信息,有利于改进整体计算效率,下面详细说明。
请参阅图1和图2,在一种可能的实施方式中,图1所示的用于纵向联邦学习决策树模型的异构加速方法100可以利用图2所示的bitmap矩阵210进行合法性检查和有效性判断。这里,合法性检查是对当前分割方案所对应的bitmap进行合法性检查,以确定各个数据样本是否有效,如果有效则可用于密态求和运算,如果无效则执行默认操作。合法性检查是为了筛选出与当前分割方案对应的有效的数据样本,而默认操作的设定是为了符合密态运算的特性而对无效的数据样本执行的操作。默认操作包括三种类型:左值操作,右值操作以及密态归零操作。其中,默认操作中的左值操作指的是,对于在合法性检查中被确定为无效的数据样本,从该数据样本往左边方向分布的第一个有效数据被作为该数据样本的返回值;默认操作中的右值操作指的是,对于在合法性检查中被确定为无效的数据样本,从该数据样本往右边方向分布的第一个有效数据被作为该数据样本的返回值;默认操作中的密态归零操作用预先设定的密态数据(例如为零的密态数据)作为该数据样本的返回值。通过多个bitmap和由多个bitmap所组成的bitmap矩阵210,可以便利地进行合法性检查并且根据需求设定默认操作从而让无效的数据样本的返回值符合密态运算。另外,有效性判断是判断当前的分割方案是否有效,通过将有效的数据样本的数量或者比例与预设阈值或者参考值进行比较。当有效的数据样本数量太少或者有效的数据样本占的比例太低或者有效的数据样本分布过于稀疏,可以认为当前分割方案是效率过低且是不满足有效性判断要求的。在一些示例性实施例中,合法性检查和有效性判断可以合并进行,例如在合法性检查中判断为无效的数据样本,可以设定在执行左值操作或者右值操作时的搜索范围,如果在该搜索范围内没有在从该数据样本往左边方向或者右边方向找到第一个有效数据则可以认为没有通过有效性判断。应当理解的是,每个bitmap都包括多个向量,这些向量与GPU显存中的数据一一对应,例如与GPU内存数据200所存储的中间参数1至中间参数8一一对应。如上所述,GPU显存中的数据是连续存储的,因此向左分布或者向右分布是相对概念,指的是沿着这些连续存储的数据向单一方向逐个排列。例如,以图2所示的bitmap矩阵210的bitmap1为例,其中与中间参数5对应的向量为0,这意味着无效数据,则默认操作中的左值操作将找到往左边方向分布的第一个有效数据也就是与中间参数4对应的为1的向量,但是默认操作中的右值操作无法在往右边方向分布上找到有效数据。如此,通过本申请实施提供的优化后的遍历计算,可以根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,进而生成与当前的分割方案对应的bitmap,从而为所有可能的分割方案生成对应的多个bitmap,并且多个bitmap以及多个bitmap所组成的bitmap矩阵有利于进行合法性检查和有效性判断。
请参阅图1和图2,在一种可能的实施方式中,图1所示的用于纵向联邦学习决策树模型的异构加速方法100可以利用图2所示的bitmap矩阵210从而根据不同分割方案之间的相似性进行并行计算。具体地,一个bitmap对应一种分割方案,而一种分割方案对应需要进行密态求和运算的多个host方的数据所对应的guest方的数据的grad和hess。通过GPU等适合并行计算的处理器,可以对多个bitmap进行并行化计算,例如通过给每个bitmap分配一个线程ID,再对多个线程进行并行计算。GPU可以有多个线程或者多个计算核,每个线程或者每个计算核对应一个bitmap,这样多个bitmap就通过该GPU的多线程并行处理能力得到加速处理,或者通过该GPU的多个计算核进行加速处理;又或者,可以通过多个GPU进行并行化处理。这样有利于提高整体计算效率。进一步地,不同分割方案之间的相似性体现在不同bitmap之间有重叠性。具体地,不同的分割方案下,可能同一个host方的数据均为有效数据。上面提到,图2所示的bitmap矩阵210的列向量用于指示在不同的分割方案下同一个中间参数或者说同一个guest方的数据的grad和hess是否进行密态求和运算。因此,面对两个或者更多个bitmap或者同一个bitmap矩阵的不同行向量,可以通过按位比较的方式确定公有部分(为1的向量或者为0的向量的重叠部分),然后先计算公有部分,再通过多线程或者并行计算方式分别计算各个bitmap的非公有部分,从而达到均衡负载和降低重复计算内容的目的。具体地,在多个bitmap的分布相似的情况下,可以将这些bitmap的全部或者部分交集合并,然后将合并后内容交给同一个计算引擎去完成,从而减少重复计算的内容。在secureboost算法或者类似算法中,根据不同的特征进行分割,可能得到相似度较高的bitmap。例如,假设第一个特征是身高小于140厘米,而第二个特征是年龄小于12岁,考虑到人类的身高与年龄的成长曲线,可能存在相当多的数据样本同时满足身高小于140厘米和年龄小于12岁,也就是说按照身高小于140厘米这一特征进行分割得到的有效数据与按照年龄小于12岁这一特征进行分割得到的有效数据之间有相当大的重叠部分,而这些重叠部分体现在两个bitmap之间有较大的交集或者说公有部分。因此,通过按位比较的方式确定按照身高小于140厘米这一特征进行分割的分割方案所对应的bitmap和按照年龄小于12岁这一特征进行分割的分割方案所对应的bitmap,确定交集或者说公有部分,将交集的部分或者全部交给同一个计算引擎去完成,从而减少重复计算的内容,同时分别记录并计算剩余非公有部分,可以有效降低不同计算核之间计算重复工作需要的内容。以图2为例,bitmap 2(01111110)和bitmap 3(01111100)之间有较大的交集,与中间参数2至中间参数6对应的向量均为1,或者说有5个为1的向量是公有部分。这样,可以将公有部分的部分或者全部交给同一个计算引擎去完成。应当理解的是,按位比较的方式只是一种确定不同bitmap之间的交集或者公有部分的方式,还可以通过任意合适的方式确定交集。例如,可以将不同bitmap视作0和1的二进制序列,将该二进制序列转换成10进制或者更高进制,再通过数值比对的方式快速判断不同的bitmap之间的相似性。另外,根据实际需要,可以灵活调整根据不同bitmap之间的相似性进行并行计算的程度。例如,可以设定不同bitmap之间的交集或者公有部分的范围,如规定交集至多拥有5个或者10个的数据,这样可以灵活调整与确定不同bitmap之间的交集相关的计算开销。换句话说,可以规定不同bitmap以及不同分割方案之间的相似度,并在相似度所允许的范围内通过上述的操作对交集或者公有部分进行合并从而减少重复计算的内容。另外,bitmap矩阵的稀疏程度或者说稠密程度,也就是矩阵阵元中0和1的分布,可以用来进一步优化不同的bitmap的并行计算。例如,可以借助稀疏矩阵和稠密矩阵的相关技术,压缩矩阵中的为0的矩阵阵元,但是仍保留其中有效的数据,从而使得压缩后的矩阵仍然保留着各个矩阵阵元与每个分割方案及每个数据的对应关系,因此仍可用来进行密态求和运算。
请参阅图1和图2,在一种可能的实施方式中,图1所示的用于纵向联邦学习决策树模型的异构加速方法100可以利用图2所示的bitmap矩阵210从而根据不同分割方案之间的不重叠性进行合并计算。上面提到了,根据不同分割方案之间的相似性可以将不同bitmap之间的交集或者公有部分进行合并,再对各个bitmap的非公有部分进行并行计算,从而减少重复计算的内容和均衡负载。当不同的bitmap之间完全没有交集时或者说完全没有重叠数据时,这种不重叠性可以被利用来拼接两个或者更多个bitmap从而进行合并计算。具体地,两个bitmap之间完全没有交集,意味着这两个bitmap各自对应的两个分割方案之间使用的有效数据集完全没有交集。因此,这两个bitmap各自对应的密态求和运算可以进行合并,即交由同一个计算引擎完成。例如,在某种分割方案中,可能位于决策树模型的同一层上不同树节点上的数据彼此之间不会有重叠,但是可以被拼接成一个较大的bitmap进行计算,从而将原本稀疏度较高的多个bitmap进行了合并操作,得到稀疏度较低的bitmap,有利于提高运算的稠密程度,并且防止了单个计算。另外,可以通过预先设定树状求和直至剩余多少个节点时停止,从而可以保证计算结果的数量和准确性不会收到影响。以图2所示的bitmap矩阵210为例,bitmap 1与bitmap 4之间完全没有重叠,因此可以将bitmap 1和bitmap 4合并成一个较大的bitmap进行计算。另外,bitmap 5和bitmap 6都是稀疏度较高,并且彼此之间完全没有重叠,因此可以将bitmap 5和bitmap 6合并成稀疏度较低的bitmap进行计算。再例如,假设总共有十个数据样本,决策树模型的当前树层次上共有2个树节点,分别有4个元素和6个元素;再假设某个分割方案将第一个树节点分为0110,将第二个树节点分割为101111,则这两种分割方案之间没有重叠的有效数据,可以被合并为0110101111,同时设定好分割点以便分别计算。如此,可以根据不同分割方案之间的不重叠性(体现为不同bitmap之间的不重叠性)进行合并计算,有利于提高运算的稠密程度,并且防止了单个计算。
请参阅图1和图2,在一种可能的实施方式中,图1所示的用于纵向联邦学习决策树模型的异构加速方法100可以利用图2所示的bitmap矩阵210来重新排列当前节点对应的数据集,也就是改变GPU所存储的中间参数的排列,有利于后续的计算。这是因为,随着决策树深度的不断增加,每一个树节点上的数据量在不断降低,因此如果默认地始终对整个数据集对应的guest方数据的grad和hess进行密态求和运算,可能引入大量无意义的合法性检查和有效性判断,造成资源的浪费。换句话说,随着决策树深度的不断增加以及树节点上数据量下降,信息增益也在下降并且可能下降到某个程度使得从提高计算效率的角度来看不值得对整个数据集进行遍历。因此,在满足特定条件的前提下,可以根据给定的规则重新排列当前节点对应的数据集,达到提高信息增益和计算效率的目的。例如,设满足年龄大于18岁、身高小于180厘米并且月收入大于10000元的数据样本的数量较小;则考虑对整个数据集对应的guest方数据的grad和hess进行密态求和运算,可能引入大量无意义的合法性检查和有效性判断。因此随着决策树的深度不断地增加,可以根据已经确定的最优分割方案,对原始的连续数据存储进行修改。具体地,可以根据给定的规则重新排列当前节点对应的数据集。例如,可以根据年龄小于20岁这一特征对树节点进行分割,将所有符合年龄小于20岁的数据样本所对应的guest方数据的grad和hess全部取出后重新排列为连续的内存。类似地,对于符合年龄大于20岁的数据样本所对应的guest方数据的grad和hess也进行类似的内存重排操作。这样内存重排操作之后,如若继续从年龄小于20岁的树节点继续向下分割节点,所有的数据必然满足年龄小于20岁这一前提条件,因此无需再对数据集进行这方面的合法性检查和有效性判断,从而减少了计算开销。应当理解的是,这样的内存重排操作只会在决策树模型的最优分割节点被确定下来后进行,也就是说内存重排操作只会进行一次。并且,因为进行内存重排操作之后,剩余的计算只针对当前树节点对应的数据集,从而降低了整体计算规模,减少计算资源消耗。另外,这样的内存重排操作利用了空间局部性,也就是在某个树节点上经常被重复访问的数据可以被集中在同一块区域,从而提高了读取效率和运行速度。总之,根据已经确定的最优分割方案,对原始的连续数据存储进行修改也就是根据给定的规则重新排列当前节点对应的数据集,可以降低整体计算规模和减少计算资源消耗,也可以应对当决策树深度较大时数据集过于分散带来的问题,有利于提高计算资源的利用效率。
请参阅图1和图2,在一种可能的实施方式中,除了上述用0表示特定数据样本没有被分割到具有较小的叶子节点的数量的一侧,而用1表示特定数据样本被分割到具有较小的叶子节点的数量的一侧,可以用其它整型数据例如1、2、3和4来标记同一组数据。也就是说,可以将图2所示的比特位(只包含0、1)扩展为整型数据(如1、2、3和4),其中不同的整数表示需要计算的同一组数据,从而可以将所有标记为1的数据相加,所有标记为2的数据相加,依次类推。换句话说,可以用更丰富的整型数据来分类标识数据,被标识为同一类的数据可以进行密态求和运算,从而可以提供能用于优化计算的信息,有利于改进整体计算效率。
请参阅图1和图2,在一种可能的实施方式中,可以根据当前可用的GPU的显存和GPU的计算资源,来调度当前计算的并行度。当GPU的显存和计算资源充足时,可以将多个特征一起放入显存进行并行计算,从而缩减第一重循环的迭代次数。当GPU计算资源不足时,可以放弃对树节点的并行计算,只进行对于分割点数量的并行计算,也可以对数据集进行拆分,例如通过mini-batch技术,从而防止数据量过大导致GPU显存负载过重。如此,可以根据GPU的显存容量等硬件信息,来适当提升或者降低数据并行化的程度,或者可以选择性地对特征进行并行计算或者对节点进行并行计算。
总之,本申请实施例提供了数据存储结构的优化,循环计算过程的优化以及计算并行度的优化,从而对在联邦学习特别是纵向联邦学习的场景中,基于决策树的任意联邦学习模型框架,相关的决策树模型的推理过程所涉及到的遍历计算和密态计算,例如secureboost算法的执行流程和密态运算内容,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。具体地,本申请实施例提供了数据存储结构的优化,通过将密态数据形式的guest方的数据的grad和hess写入或者拷贝到GPU的显存中例如GPU的全局缓存,让各个算子并行读取GPU的显存中的数据,有利于节省在CPU和GPU之间的数据交互所带来的开销,也有利于充分发挥GPU的计算并行度高的特性。本申请实施例还提供了循环计算过程的优化,通过先对所有的可行特征进行遍历然后对所有的树节点进行遍历,并且在对所有的树节点进行遍历的循环中就判断出当前特征的当前分割方案下特定数据样本是否被分割到左节点(假设左边的树节点具有较小的叶子节点的数量)或者被分割到右节点(假设右边的树节点具有较小的叶子节点的数量),从而节省底层计算量以及简化了整体的遍历计算。循环计算过程的优化还可以包括,通过根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,进而生成与当前特征的当前分割方案对应的bitmap,为所有可能的分割方案生成对应的多个bitmap。这些bitmap所组成的bitmap矩阵中的行向量及列向量还有稀疏性、稠密性等可用来指示各种能用于优化计算的信息,有利于改进整体计算效率,包括但是不限于,bitmap矩阵的可压缩特性可用于节省存储空间和简化数据存储结构,bitmap矩阵可用于进行合法性检查和有效性判断,根据不同bitmap之间的相似性进行并行计算,根据不同bitmap之间的不重叠性进行合并计算,bitmap矩阵用于重新排列当前节点对应的数据集而实现内存重排操作,用更丰富的整型数据来分类标识数据。循环计算过程的优化还可以包括,根据当前可用的GPU的显存和GPU的计算资源,来调度当前计算的并行度。以上所述的数据存储结构的优化,循环计算过程的优化以及计算并行度的优化可以单独实行或者合并实行,并且其中的具体优化方式也可以单独实行或者合并实行,在此不做具体限定。
另外,除了上述的数据存储结构的优化,循环计算过程的优化以及计算并行度的优化,本申请实施例还提供了可以结合或者单独实行的其它优化方式。例如,通过决策树模型优化计算,也就是计算二叉决策树的树节点对应的全部可能分割方案时,只计算左节点/右节点的全部可能分割方案,而右节点/左节点的分割方案由父节点的总数据和左节点/右节点相减得到。具体地,可以通过修改待计算的节点列表实现,也就是修改当前针对树节点的批次。
请参阅图1和图2,在一些示例性实施例中,guest方的数据集包括以下特征域:数据ID、年龄、身高、体重等。而host方的数据集包括以下特征域:数据ID、存款、月收入等。其中,数据ID是双方共有,用于标识同一数据样本,也用于求交集。secureboost算法的训练目标就是构建出基于决策树模型的boost模型,用于准确预测guest方所含有的标签集合,且保证本地关键信息不会泄露给其他参与方。secureboost算法的大致执行流程可以理解为:1、guest方根据现有信息(初始默认值、已有的决策树模型等)计算出grad和hess,并进行加密,将密态下的grad和hess发送给host方;2、host方对于存款、收入这两个方面进行求和运算,具体地host方根据事先约定好的分割点(如针对存款这一特征域可以约定如下分割点:存款小于等于10000元等),计算出各个分割点左侧的数据样本对应的密态grad之和和hess之和(例如对数据集进行线性扫描并累加求和),并且求和过程在密态下进行;3、host方根据不同分割点的计算结果,生成不同的分割方案,一起发送给guest方;4、在host方进行密态计算的同时,guest方也会在明文下根据年龄,身高,体重三个不同的特征域的不同分割点,生成全部的可能分割方案;5、guest方获得了自身的全部明文分割方案以及所有host方发送的密态分割方案,guest方将全部的密态方案解密后,从所有的方案中(包括自身的和host方的)依据某种规则计算出最优的分割方案,若该最优分割方案来源于某个guest方,则和对应的guest方同步相关信息,并且和相应的host方同步相关信息。host方在确认分割方法之后,利用该分割方法分割数据集,并和所有的参与方同步分割信息。如此,所有参与方都可以更新本地的树结构。并开始下一轮的迭代。
步骤S108:guest方对与所述多个分割方案对应的密态求和运算结果进行解密,并针对所述当前决策树模型的每一个树节点计算出最优解,从而改进所述当前决策树模型。
其中,guest方从host方获得与全部分割方案对应的全部密态求和运算结果后进行解密,然后根据预设规则计算出最优解或者说最优的分割方案。但是,guest方并不知悉host方是如何进行分割的,guest方仅仅获得与所有分割方案对应的全部密态求和运算结果,因此guest方并不知道host方的具体分割过程(例如host方根据特定特征或者某个特征中具体数值进行分割)。
图3示出了本申请实施例提供的用于纵向联邦学习决策树模型的异构加速***的框图。如图3所示,异构加速***300包括接收模块302,本地数据存储模块304,预处理模块306,bitmap生成模块308,计算优化模块310以及并行计算单元320。其中,异构加速***300是位于host方一侧,也就是只持有数据而不持有标签的参与方。如上所述,典型的训练纵向联邦学习决策树模型的过程中需要guest方和host方之间的数据交互和协作。具体地,guest方也即主动方根据当前决策树模型计算出中间参数,也就是根据guest方的数据计算数据样本的一阶导数grad和二阶导数hess,并对中间参数进行加密后将加密的中间参数发送给被动方也就是Host方;host方根据当前决策树模型在每一个非叶子节点(也叫做树节点)上对每个特征可能的分割后模型进行计算,也就是根据当前分割方案对被分割到左节点上的数据的grad和hess分别进行密态求和运算,得到与全部分割方案对应的全部密态求和运算结果,并将与全部分割方案对应的全部密态求和运算结果发送给guest方;guest方先对与全部分割方案对应的全部密态求和运算结果进行解密,然后针对每一个树节点计算出最优解,从而可用于改进当前决策树模型。
请继续参阅图3,接收模块302用于接收guest方发送的密态数据,也就是根据guest方的数据计算数据样本的一阶导数grad和二阶导数hess,均未密态数据。接收模块302与并行计算单元320连接,并将来自guest方的密态数据写入并行计算单元320。本地数据存储模块304用于存储host方的本地数据,本地数据存储模块304与预处理模块306连接并将host方的本地数据发送给预处理模块306。预处理模块306用于对host方的本地数据进行预处理操作,参考上述图1所示的步骤S102,在此不再赘述。应当理解的是,预处理操作可以部分地被执行甚至完全不被执行,比如让未经过处理的原始值用于后续处理。因此,预处理模块306可以另外提供或者不作为异构加速***300的一部分,也就是本地数据存储模块304可以直接将host方的本地数据绕过预处理模块306发送给后续模块。预处理模块306与bitmap生成模块308连接,bitmap生成模块308从预处理模块306接收经过预处理的host方的本地数据或者直接从本地数据存储模块304获得未经过预处理的host方的本地数据。bitmap生成模块308用于先对所有的可行特征进行遍历然后对所有的树节点进行遍历,并且根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,从而生成与当前特征的当前分割方案对应的bitmap,进而为所有可能的分割方案生成对应的多个bitmap。bitmap生成模块308生成多个bitmap以及用多个bitmap所组成的bitmap矩阵的有关细节,可以参考上述图1所示的步骤S106,在此不再赘述。bitmap生成模块308与计算优化模块310连接并且将生成的多个bitmap发送给计算优化模块310。计算优化模块310用于根据多个bitmap以及用多个bitmap所组成的bitmap矩阵进行计算优化,包括上面提到的循环计算过程的优化以及计算并行度的优化。计算优化模块310与并行计算单元320连接并可以控制并行计算单元320。并行计算单元320包括密态求和运算模块324和GPU显存322。接收模块302可以将密态数据形式的guest方的数据的grad和hess写入或者拷贝到GPU显存322中,让各个算子并行读取GPU显存322中的数据,有利于节省在CPU和GPU之间的数据交互所带来的开销,也有利于充分发挥GPU的计算并行度高的特性。因此,GPU显存322可以提供数据存储结构的优化,参考上述图1的具体实施例。另外,密态求和运算模块324可以接收来自计算优化模块310的控制指令,并从GPU显存322中筛选出GPU显存322所存储的数据的一部分或者全部用于密态求和运算。密态求和运算模块324可以是例如GPU等适合并行计算的处理器,可以有多个线程或者多个计算核,每个线程或者每个计算核对应一个bitmap,这样多个bitmap就通过密态求和运算模块324的GPU的多线程并行处理能力得到加速处理,或者通过密态求和运算模块324的GPU的多个计算核进行加速处理;又或者,密态求和运算模块324可以对应多个GPU,可以通过密态求和运算模块324的多个GPU进行并行化处理。这样有利于提高整体计算效率。
请参阅图1、图2和图3,异构加速***300提供了数据存储结构的优化,循环计算过程的优化以及计算并行度的优化,从而对在联邦学习特别是纵向联邦学习的场景中,基于决策树的任意联邦学习模型框架,相关的决策树模型的推理过程所涉及到的遍历计算和密态计算,例如secureboost算法的执行流程和密态运算内容,实现了提升计算并行度以及降低计算复杂度和计算开销,有利于提高整体计算效率。具体地,GPU显存322提供了数据存储结构的优化,通过将密态数据形式的guest方的数据的grad和hess写入或者拷贝到GPU显存322,让各个算子并行读取GPU显存322中的数据,有利于节省在CPU和GPU之间的数据交互所带来的开销,也有利于充分发挥GPU的计算并行度高的特性。bitmap生成模块308和计算优化模块310一起提供了循环计算过程的优化,通过先对所有的可行特征进行遍历然后对所有的树节点进行遍历,并且在对所有的树节点进行遍历的循环中就判断出当前特征的当前分割方案下特定数据样本是否被分割到左节点(假设左边的树节点具有较小的叶子节点的数量)或者被分割到右节点(假设右边的树节点具有较小的叶子节点的数量),从而节省底层计算量以及简化了整体的遍历计算。循环计算过程的优化还可以包括,通过根据当前特征的当前分割方案来分割当前的树节点,确定与特定数据样本所对应的数值为0或者1,进而生成与当前特征的当前分割方案对应的bitmap,为所有可能的分割方案生成对应的多个bitmap。这些bitmap所组成的bitmap矩阵中的行向量及列向量还有稀疏性、稠密性等可用来指示各种能用于优化计算的信息,有利于改进整体计算效率,包括但是不限于,bitmap矩阵的可压缩特性可用于节省存储空间和简化数据存储结构,bitmap矩阵可用于进行合法性检查和有效性判断,根据不同bitmap之间的相似性进行并行计算,根据不同bitmap之间的不重叠性进行合并计算,bitmap矩阵用于重新排列当前节点对应的数据集而实现内存重排操作,用更丰富的整型数据来分类标识数据。循环计算过程的优化还可以包括,根据当前可用的GPU的显存和GPU的计算资源,来调度当前计算的并行度。以上所述的数据存储结构的优化,循环计算过程的优化以及计算并行度的优化可以单独实行或者合并实行,并且其中的具体优化方式也可以单独实行或者合并实行,在此不做具体限定。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的***总线或数据传输***。***总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,***总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是***的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共***。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或***的具体限定。在本申请另一些实施例中,有关装置或***可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (18)
1.一种异构加速方法,应用于纵向联邦学习决策树模型,其特征在于,所述方法包括:
第一参与方根据当前决策树模型和所述第一参与方的数据,计算出所述第一参与方的数据的一阶导数grad和二阶导数hess作为所述第一参与方的中间参数,并将半同态加密或者全同态加密的加密后所述第一参与方的中间参数发送给第二参与方,其中,加密后所述第一参与方的中间参数存储在所述第二参与方处的并行计算单元的内存中;
所述第二参与方,确定所述第二参与方的数据中与多个分割方案中的每一个分割方案各自对应的有效数据,并且,通过调用所述并行计算单元及读取所述并行计算单元的内存中所存储的加密后所述第一参与方的中间参数,根据与所述多个分割方案各自对应的有效数据筛选加密后所述第一参与方的中间参数以进行密态求和运算,从而得到与所述多个分割方案对应的密态求和运算结果,以及将与所述多个分割方案对应的密态求和运算结果发送给所述第一参与方;和
所述第一参与方对与所述多个分割方案对应的密态求和运算结果进行解密,从而改进所述当前决策树模型,
其中,所述多个分割方案通过先对所述第二参与方的特征遍历再对所述当前决策树模型的树节点遍历确定。
2.根据权利要求1所述的异构加速方法,其特征在于,所述第二参与方,确定所述第二参与方的数据中与所述多个分割方案中的每一个分割方案各自对应的有效数据,包括:
确定所述第二参与方的数据的每一个数据样本,根据当前特征的当前分割方案来分割当前的树节点,是否会被分割到左节点,如果是,则该数据样本属于与所述当前分割方案对应的有效数据,
其中,所述当前决策树模型中左边的叶子节点的数量小于所述当前决策树模型中右边的叶子节点的数量。
3.根据权利要求1所述的异构加速方法,其特征在于,所述第二参与方,确定所述第二参与方的数据中与所述多个分割方案中的每一个分割方案各自对应的有效数据,包括:
确定所述第二参与方的数据的每一个数据样本,根据当前特征的当前分割方案来分割当前的树节点,是否会被分割到右节点,如果是,则该数据样本属于与所述当前分割方案对应的有效数据,
其中,所述当前决策树模型中右边的叶子节点的数量小于所述当前决策树模型中左边的叶子节点的数量。
4.根据权利要求2或3所述的异构加速方法,其特征在于,所述方法还包括:
根据与所述多个分割方案各自对应的有效数据分别生成多个bitmap,所述多个bitmap与所述多个分割方案一一对应,所述多个bitmap的每一个bitmap包括多个向量并且所述多个向量与加密后所述第一参与方的中间参数一一对应,所述多个bitmap的每一个bitmap所包括的多个向量用于指示与该bitmap所对应的分割方案对应的有效数据,其中,加密后所述第一参与方的中间参数在所述并行计算单元的内存中连续存储。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述多个bitmap的每一个bitmap所包括的多个向量作为行向量以组成bitmap矩阵,其中,所述bitmap矩阵的列向量指示了加密后所述第一参与方的同一个中间参数在所述多个分割方案中分别是否用于密态求和运算。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述多个bitmap的每一个bitmap确定与该bitmap所对应的分割方案的有效数据样本的数量和分布,以及根据所述有效数据样本的数量和分布,判断与该bitmap所对应的分割方案是否有效。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述多个bitmap的每一个bitmap确定与该bitmap所对应的分割方案的无效数据样本,并对所确定的无效数据样本进行默认操作,所述默认操作是左值操作、右值操作或者密态归零操作,
其中,所述左值操作将从该无效数据样本往左边方向分布的第一个有效数据作为该无效数据样本的返回值,
所述右值操作将从该无效数据样本往右边方向分布的第一个有效数据作为该无效数据样本的返回值,
所述密态归零操作将预先设定的密态数据作为该无效数据样本的返回值。
8.根据权利要求4所述的方法,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:
从所述多个bitmap中确定有交集的至少两个bitmap,所述至少两个bitmap之间的公有部分被用于确定与所述至少两个bitmap各自对应的至少两个分割方案之间的重复计算内容;和
将所述重复计算内容通过所述并行计算单元计算一次并且将所述重复计算内容的计算结果共享于所述至少两个分割方案各自相关的密态求和运算。
9.根据权利要求8所述的方法,其特征在于,所述至少两个bitmap之间的公有部分通过按位比较所述至少两个bitmap各自包括的多个向量而确定。
10.根据权利要求9所述的方法,其特征在于,所述至少两个bitmap之间的公有部分的范围可调整。
11.根据权利要求4所述的方法,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:
从所述多个bitmap中确定没有交集的至少两个bitmap;和
将所述至少两个bitmap合并后通过所述并行计算单元进行计算。
12.根据权利要求4所述的方法,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:
根据已确定的最优分割方案,对在所述并行计算单元的内存中连续存储的加密后所述第一参与方的中间参数进行内存重排操作。
13.根据权利要求4所述的方法,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述并行计算单元进行并行计算,其中,所述方法还包括:
根据所述并行计算单元的计算资源和所述并行计算单元的内存资源调节所述并行计算单元进行并行计算的并行度。
14.根据权利要求5所述的方法,其特征在于,所述bitmap矩阵的稀疏性/稠密性被用于提高所述并行计算单元进行并行计算的稠密程度。
15.一种非瞬时性计算机可读存储介质,该计算机存储介质保存计算机指令,其特征在于,该计算机指令被处理装置执行时,使得所述处理装置执行根据权利要求1至权利要求14中任一项所述的方法。
16.一种异构加速***,其特征在于,所述异构加速***包括:
接收模块,用于接收加密后中间参数,所述加密后中间参数由非本地方根据当前决策树模型和所述非本地方的数据计算出所述非本地方的数据的一阶导数grad和二阶导数hess并且进行加密后作为所述加密后中间参数;
GPU显存,所述GPU显存与所述接收模块连接,其中,所述加密后中间参数在所述GPU显存中连续存储;
bitmap生成模块,用于确定本地方的数据中与多个分割方案中的每一个分割方案各自对应的有效数据,并且根据与所述多个分割方案各自对应的有效数据分别生成多个bitmap,其中,所述多个bitmap的每一个bitmap包括多个向量并且所述多个向量与所述加密后中间参数一一对应,所述多个bitmap的每一个bitmap所包括的多个向量用于指示与该bitmap所对应的分割方案对应的有效数据;和
密态求和运算模块,配置为,通过调用与所述GPU显存对应的GPU及读取在所述GPU显存中连续存储的加密后中间参数,根据所述多个bitmap筛选所述加密后中间参数以进行密态求和运算,从而得到与所述多个分割方案对应的密态求和运算结果,
其中,所述多个分割方案通过先对所述本地方的特征遍历再对所述当前决策树模型的树节点遍历确定。
17.根据权利要求16所述的异构加速***,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述密态求和运算模块进行并行计算,所述异构计算***还包括计算优化模块,所述计算优化模块用于:
从所述多个bitmap中确定有交集的至少两个bitmap,所述至少两个bitmap之间的公有部分被用于确定与所述至少两个bitmap各自对应的至少两个分割方案之间的重复计算内容;和
将所述重复计算内容通过所述密态求和运算模块计算一次并且将所述重复计算内容的计算结果共享于所述至少两个分割方案各自相关的密态求和运算。
18.根据权利要求16所述的异构加速***,其特征在于,所述多个分割方案各自相关的密态求和运算通过所述密态求和运算模块进行并行计算,所述异构计算***还包括计算优化模块,所述计算优化模块用于:
从所述多个bitmap中确定没有交集的至少两个bitmap;和
将所述至少两个bitmap合并后通过所述密态求和运算模块进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111001656.1A CN113449880B (zh) | 2021-08-30 | 2021-08-30 | 用于纵向联邦学习决策树模型的异构加速***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111001656.1A CN113449880B (zh) | 2021-08-30 | 2021-08-30 | 用于纵向联邦学习决策树模型的异构加速***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449880A CN113449880A (zh) | 2021-09-28 |
CN113449880B true CN113449880B (zh) | 2021-11-30 |
Family
ID=77818894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111001656.1A Active CN113449880B (zh) | 2021-08-30 | 2021-08-30 | 用于纵向联邦学习决策树模型的异构加速***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449880B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017549B (zh) * | 2022-08-09 | 2022-11-18 | 深圳致星科技有限公司 | 隐私计算、隐私数据和联邦学习的决策树计算装置及*** |
CN116108934B (zh) * | 2023-04-13 | 2023-06-20 | 中电科大数据研究院有限公司 | 联邦学习***、联邦学习方法和装置 |
CN116208316B (zh) * | 2023-04-27 | 2023-07-18 | 蓝象智联(杭州)科技有限公司 | 节约存储空间的半同态加密方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
CN111724174A (zh) * | 2020-06-19 | 2020-09-29 | 安徽迪科数金科技有限公司 | 一种应用Xgboost建模的市民信用积分评估方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11139961B2 (en) * | 2019-05-07 | 2021-10-05 | International Business Machines Corporation | Private and federated learning |
-
2021
- 2021-08-30 CN CN202111001656.1A patent/CN113449880B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、***及可读存储介质 |
CN111724174A (zh) * | 2020-06-19 | 2020-09-29 | 安徽迪科数金科技有限公司 | 一种应用Xgboost建模的市民信用积分评估方法 |
Non-Patent Citations (1)
Title |
---|
肖林声 等.基于使用MapReduce并行的同态加密和梯度选择的联邦迁移学习算法.《网络空间安全》.2021,第12卷(第1期),第32-40页. * |
Also Published As
Publication number | Publication date |
---|---|
CN113449880A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113449880B (zh) | 用于纵向联邦学习决策树模型的异构加速***及方法 | |
CN112632045B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
Kawaguchi et al. | Effect of depth and width on local minima in deep learning | |
Halappanavar et al. | Scalable static and dynamic community detection using grappolo | |
Wang et al. | Efficient updating rough approximations with multi-dimensional variation of ordered data | |
Cordova et al. | DBSCAN on resilient distributed datasets | |
Sudjianto et al. | Unwrapping the black box of deep ReLU networks: interpretability, diagnostics, and simplification | |
Cai et al. | Fair allocation through selective information acquisition | |
Liu et al. | Continual learning and private unlearning | |
Jarmulska | Random forest versus logit models: Which offers better early warning of fiscal stress? | |
CN115017549B (zh) | 隐私计算、隐私数据和联邦学习的决策树计算装置及*** | |
CN110619231A (zh) | 一种基于MapReduce的差分可辨性k原型聚类方法 | |
Marconato et al. | Neuro-symbolic continual learning: Knowledge, reasoning shortcuts and concept rehearsal | |
CN113326862A (zh) | 审计大数据融合聚类与风险数据检测方法、介质、设备 | |
Kang et al. | A CWGAN-GP-based multi-task learning model for consumer credit scoring | |
Plummer et al. | Shapeshifter networks: Cross-layer parameter sharing for scalable and effective deep learning | |
Niu et al. | A survey on membership inference attacks and defenses in Machine Learning | |
Wu | Data association rules mining method based on improved apriori algorithm | |
Panfilo | Generating Privacy-Compliant, Utility-Preserving Synthetic Tabular and Relational Datasets Through Deep Learning | |
Jones et al. | Federated xgboost on sample-wise non-iid data | |
US11823066B2 (en) | Enterprise market volatility predictions through synthetic DNA and mutant nucleotides | |
Zhang et al. | GENIU: A Restricted Data Access Unlearning for Imbalanced Data | |
Chen et al. | Spatial Gene Expression Prediction Using Coarse and Fine Attention Network | |
Rai et al. | WBIN-Tree: A Single Scan Based Complete, Compact and Abstract Tree for Discovering Rare and Frequent Itemset Using Parallel Technique | |
Ambika et al. | Review of existing research contribution toward dimensional reduction methods in high-dimensional data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |