CN112464287B - 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法 - Google Patents

基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法 Download PDF

Info

Publication number
CN112464287B
CN112464287B CN202011451287.1A CN202011451287A CN112464287B CN 112464287 B CN112464287 B CN 112464287B CN 202011451287 A CN202011451287 A CN 202011451287A CN 112464287 B CN112464287 B CN 112464287B
Authority
CN
China
Prior art keywords
order gradient
vector
participant
tree
col
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
Application number
CN202011451287.1A
Other languages
English (en)
Other versions
CN112464287A (zh
Inventor
刘嘉琦
谢仑辰
史清江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongji University
Original Assignee
Tongji University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tongji University filed Critical Tongji University
Priority to CN202011451287.1A priority Critical patent/CN112464287B/zh
Publication of CN112464287A publication Critical patent/CN112464287A/zh
Application granted granted Critical
Publication of CN112464287B publication Critical patent/CN112464287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,包括多个参与方与一个协调方,所述参与方和协调方对本地存储的特征信息数据进行预处理操作和值映射操作得到隐私保护后的数据,每个参与方结合隐私保护后的数据,与云端服务器通过分布式协同完成模型的训练,得到全局预测树模型,将待预测的数据处理后输入到全局预测树模型进行预测,得到目标安全预测结果。与现有技术相比,本发明具有提高多方协作用户隐私的安全性、在保障各自信息数据安全的同时提升模型的预测能力等优点。

Description

基于秘密共享与联邦学习的多方XGBoost安全预测模型训练 方法
技术领域
本发明涉及安全预测技术领域,尤其是涉及一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法。
背景技术
近年来,由于机器学习的广泛应用,基于机器学习或者深度学习的方法应用于多个技术领域并且取得了巨大的成功。在进行数据协作时同样存在对机器学习的运用,但是在多方协作进行预测时,存在传递的个人数据隐私会泄露的情况。联邦学习(Federatedmachine learning/Federated Learning),是指一种机器学习框架,能有效帮助多个节点(可以代表个人或机构)在满足数据隐私保护的要求下,联合训练机器学习或者深度学习模型。
数据隐私保护是通过联邦学习来实现的,其中联邦学习的设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。
联邦学习适用于两个数据集共享相同的样本ID空间但特征空间不同的情况。纵向联邦学习是聚合这些不同特征并以保护隐私的方式计算训练损失和梯度的过程,以利用双方的数据共同构建模型。
XGBoost(极端梯度提升树)的英文全称是eXtreme Gradient Boosting,是2014年2月诞生的专注于梯度提升算法的机器学习函数库,因其优良的学习效果以及高效的训练速度而获得广泛的关注。
发明内容
本发明的目的就是为了克服上述现有技术存在的多方协作进行预测时传递的个人数据隐私存在泄露的缺陷而提供一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法。
本发明的目的可以通过以下技术方案来实现:
一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,包括多个参与方与一个协调方,所述参与方和协调方对本地存储的特征信息数据进行预处理操作和值映射操作得到隐私保护后的数据,每个参与方结合隐私保护后的数据,与云端服务器通过分布式协同完成模型的训练,得到全局预测树模型,将待预测的数据处理后输入到全局预测树模型进行预测,得到目标安全预测结果。
所述参与方的类型包括第一参与方,所述第一参与方持有样本集中各样本的一个或一个以上特征的特征值及样本标签值。
所述训练预测模型的具体步骤为:
S1:第一参与方设定构建树的初始数量t=1、初始深度d=1、正则化参数λ与最大深度dmax,利用秘密共享拆分产生{λ}i,将所有设定的参数分发至所有参与方i,为每个拥有numi个特征的参与方i产生随机不重复的numi个特征编号索引,由持有标签的第一参与方利用当前模型预测结果向量
Figure BDA0002831883390000027
和样本标签向量y计算得到一阶梯度向量G和二阶梯度向量H,并产生初始的全1指示向量S,分别进行秘密共享拆分,对于总共N个参与方,拆分为N份一阶梯度向量分片{G}i、二阶梯度向量分片{H}i和指示向量分片{S}i,并分别分发至所有参与方i,i=1,…N;
S2:每个参与方i收到{G}i,{H}i、{S}i后,计算自身拥有的一阶梯度和的第i分片{SG}i与二阶梯度和的第i分片{SH}i,并利用秘密共享方法,直接计算各特征下各分组分别对应分裂增益的第i分片,对于XGBoost算法,在某个树节点时,对于该节点具有的所有数据一阶梯度和SG、二阶梯度和SH、正则项λ,未分裂增益表示为:
Figure BDA0002831883390000021
每个参与方i使用秘密共享加、减、乘、除操作,利用第j个特征第k个分组得到分裂增益值{<Lsplit>}j,k
Figure BDA0002831883390000022
其中公式中
Figure BDA0002831883390000023
为秘密共享乘法,
Figure BDA0002831883390000024
为秘密共享加法,
Figure BDA0002831883390000025
为秘密共享除法,
Figure BDA0002831883390000026
为秘密共享减法,{<Lsplit>}j,k表示分裂增益值,{SGLi}为收到的一阶梯度分片,{SGLi}为利用拆分后的一阶梯度得到分支节点左子树的一阶梯度,{SGRi}为利用拆分后的一阶梯度得到分支节点右子树的一阶梯度,{SH}为收到的二阶梯度分片,{SHl}为利用拆分后的二阶梯度得到分支节点左子树的二阶梯度,{SHr}为利用拆分后的二阶梯度得到分支节点右子树的二阶梯度,{λi}表示超参数λ的第i分片;
秘密共享算法为一种将一份数据θ拆分为多份分片{θ}i,不同参与方i对各自的分片进行同类型、同步骤的计算生成{θ′}i,在计算结束后通过加法合并,产生数据
Figure BDA0002831883390000031
且θ′等同于对θ执行同类型、同步骤计算后的结果,对分裂增益的计算使用了秘密共享加、减、乘、除计算;通过协调方确定最大分裂增益及所属的特征、分组与是否进行划分,当进行划分时,若选中的特征属于参与方i′,生成划分后的左子树指示向量SL与右子树指示向量SR,所述SL与SR分别指示根据所述最大分裂增益对应特征及分组对所述样本集进行划分得到的左子集与右子集中样本,左子集与左子树对应,右子集与右子树对应;将所述SL与SR通过秘密共享拆分为N个分片{SL}i与{SR}i,i=1,…,N,并分发至参与方i;每个参与方i利用接收的{SL}i、{SR}i与自身拥有的指示向量分片{S}i计算样本集被划分到左子树后的左子树一阶梯度向量分片{SGL}i与二阶梯度向量分片{SHL}i,计算样本集被划分到右子树后的右子树一阶梯度向量分片{SGR}i与二阶梯度向量分片{SHR}i,使用{SGL}i、{SHL}i、{SL}i递归进行步骤S2构建左子树,使用{SGR}i、{SHR}i、{SR}i递归进行步骤S2构建右子树,并设定深度d=d+1,若不进行划分或到达树停止条件d=dmax,每个参与方i利用秘密共享加、乘、除法计算决策树上当前叶子节点σ的权值的第i分片
Figure BDA0002831883390000032
其中,{SG}i为拆分后的一阶梯度分片,{SH}i为拆分后的二阶梯度分片,{λ}i表示预设系数分片;
S3:对于每一条数据样本xp,每个参与方i利用所持有部分特征的样本
Figure BDA0002831883390000033
计算当前第t棵树的预测结果
Figure BDA0002831883390000034
累加至前t-1棵树的结果中,产生t棵树对于数据样本xp的综合预测结果
Figure BDA0002831883390000035
其中
Figure BDA0002831883390000036
表示第q棵树对第p条数据样本xp的预测结果,
Figure BDA0002831883390000037
表示
Figure BDA0002831883390000038
中第p个元素,对于一共M条数据样本,遍历p=1,…,M产生完整的
Figure BDA0002831883390000039
S4:增加树的数量t=t+1,迭代步骤S1-S3,直到构建完毕t=T棵决策树。
进一步地,步骤S1、S2、S3使用的秘密共享算法为一种将一份数据θ拆分为多份分片{θ}i,不同参与方i对各自的分片进行同类型、同步骤的计算生成{θ′}i,在计算结束后通过加法合并,产生数据
Figure BDA00028318833900000310
且θ′等同于对θ执行同类型、同步骤计算后的结果,所涉及的具体计算包括:
a.秘密共享拆分
对于1维数据θ,参与方i进行秘密共享拆分时,对于一共N个参与方,生成N-1个随机数,并将这N-1个随机数指定为分片{θ}i′,i′≠i,供参与方i′使用,而参与方i生成自己的数据分片{θ}i=θ-∑i′{θ}i′
b.秘密共享加法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i利用持有的{θA}i与{θB}i可直接使用普通的加法计算{θA}i+{θB}i={θ′}i,故为叙述方便,直接使用普通加法阐述;
c.秘密共享减法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i利用持有的{θA}i与{θB}i可直接使用普通的减法计算{θA}i-{θB}i={θ′}i,故为叙述方便,直接使用普通减法阐述;
d.秘密共享乘法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i持的{θA}i与{θB}i,首先利用协调方生成一维变量a,b,c=a*b,通过秘密共享拆分为{a}1,…,{a}N、{b}1,…,{b}N与{c}1,…,{c}N并发送给每个参与方i,每个参与方i收到{a}i,{b}i,{c}i并计算{e}i={θA}i-{a}i与{f}i={θB}i-{b}i,发送至第一参与方,第一参与方计算
Figure BDA0002831883390000041
Figure BDA0002831883390000042
发送给所有参与方,第一参与方计算得到{θ′}1,其他参与方i计算得到{θ′}i,最终秘密共享乘法
Figure BDA0002831883390000043
表示为:
Figure BDA0002831883390000044
Figure BDA0002831883390000045
e.秘密共享除法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,如需进行两数相除运算,先运算得到除数的倒数,再通过新定义的乘法操作,进行被除数与除数的倒数相乘,得到最终结果。本专利采用迭代法得到除数的倒数,迭代过程使用的乘法运算皆为秘密共享乘法运算。选定一个整数K,使得10K-1<max{{θB}1,…,{θB}N}<10K,设X0=10-K,利用公式XT·(2-θB·XT)进行迭代,得到的结果即为除数的倒数。再利用秘密共享乘法操作,得到秘密共享除法的结果。
对于以上步骤,均可从一维数据推广至多维数据。
进一步地,所述步骤S1具体包括:
第一参与方设定构建树的初始数量t=1、初始深度d=1、正则化参数λ与最大深度dmax,利用秘密共享拆分产生{λ}i,将所有设定的参数分发至所有参与方i,对于每个拥有numi个特征的参与方i,协调方统计参与方的特征总数numfeature=∑i=1numi,产生元素为[1,2,…,numfeature]的数组,为每个参与方i随机分配numi个打乱顺序的数组元素,各参与方之间得到的数组元素不重合,各参与方建立乱序数组元素j到自身拥有特征编号的一对一映射map(j)并在己方进行记录存储;
所有参与方计算自身拥有样本特征中最大的特征取值数量kselfmax,并发送给协调方,协调方确定全体参与方最大的特征取值数量kmax=max kselfmax并广播至所有参与方;
从持有标签数据的第一参与方启动,各参与方使用同一种损失函数l(·),第一参与方利用模型预测结果向量
Figure BDA0002831883390000051
和标签值向量y计算一阶梯度向量
Figure BDA0002831883390000052
二阶梯度向量
Figure BDA0002831883390000053
与初始的全1指示向量S,每一条数据xp的初始预测结果
Figure BDA0002831883390000054
当t=1时为0,否则表示为已有的t-1棵树的预测权重和
Figure BDA0002831883390000055
对于总共N个参与方,将G、H、S秘密共享拆分为N份一阶梯度向量分片{G}i、二阶梯度向量分片{H}i和指示向量分片{S}i,i=1,…N,并分发至参与方i;
进一步地,步骤S2具体包括:
每个参与方i收到一阶梯度向量第i分片{G}i、二阶梯度向量第i分片{H}i和指示向量第i分片{S}i后,计算自身拥有的一阶梯度和的第i分片{SG}i与二阶梯度和的第i分片{SH}i,{SG}i与{SH}i分别通过参与方i拥有的{G}i和{H}i分别对向量元素求和得到;
每个参与方i利用自身拥有的一阶梯度向量分片与二阶梯度向量分片,计算自己所有特征所有划分区间下的一阶梯度和分片矩阵BGi与二阶梯度和分片矩阵BHi
对于特征j,每个参与方i初始化记录左子树累积一阶梯度分片的变量SGLi与记录右子树累积二阶梯度分片的变量SHLi
每个参与方i遍历划分区间数量k,计算左子树累积一阶梯度分片为:
Figure BDA0002831883390000056
计算左子树累积二阶梯度分片为:
Figure BDA0002831883390000057
同理可计算右子树累积一阶梯度分片SGRi与二阶梯度分片SHRi
SGRi=SGi-SGLi
SHRi=SHi-SHLi
每个参与方i使用秘密共享加、减、乘、除操作,利用第j个特征第k个分组得到分裂增益值:
Figure BDA0002831883390000061
其中,
Figure BDA0002831883390000062
为秘密共享乘法,
Figure BDA0002831883390000063
为秘密共享加法,
Figure BDA0002831883390000064
为秘密共享除法,
Figure BDA0002831883390000065
为秘密共享减法,{<Lsplit>}j,k表示分裂增益值,{SGLi}为收到的一阶梯度分片,{SGLi}为利用拆分后的一阶梯度得到分支节点左子树的一阶梯度,{SGRi}为利用拆分后的一阶梯度得到分支节点右子树的一阶梯度,{SH}为收到的二阶梯度分片,{SHl}为利用拆分后的二阶梯度得到分支节点左子树的二阶梯度,{SHr}为利用拆分后的二阶梯度得到分支节点右子树的二阶梯度,{λi}表示超参数λ的第i分片;
每个参与方i利用得到的分裂增益值,计算不同特征j的不同取值区间k之间的分裂增益差值,通过协调方比较以确定最大分裂增益对应的挑选特征p与取值区间q;
各参与方将最大分裂增益分片处理后发送到协调方,协调方对合成的最大增益进行正负判断,如果为正值,将符号向量设为1;如果为负值,将符号向量设为-1;如果为0,设为0;
当符号变量为1时,对于特征p,当第i′个参与方拥有特征p时,设置一个记录样本落入特征划分后左子树的M维向量SL,取出第q个取值区间(leftq,rightq),令样本集中样本特征p取值valuep满足valuep<rightq的SL位置取值为1,其余位置取值为0,设置一个记录样本落入特征划分后右子树的M维向量
Figure BDA0002831883390000066
即对SL取反,对于总共N个参与方,将SL与SR通过秘密共享拆分为N个分片{SL}i与{SR}i,i=1,…,i′,…,N,并分发至参与方i;
每个参与方i接收{SL}i与{SR}i,重新计算自身拥有的左子树指示向量分片{SL}i与右子树指示向量分片{SR}i
{SL}i={S}i⊙{SL}i
{SR}i={S}i⊙{SR}i
其中,⊙表示向量的同位置元素之间执行秘密共享乘法
Figure BDA0002831883390000067
得到一个维度{S}i相同的向量,计算自身拥有的落入左子树样本的一阶梯度向量分片{GL}i与落入右子树样本的一阶梯度向量分片{GR}i
{GL}i={G}i⊙{SL}i
{GR}i={G}i⊙{SR}i
计算自身拥有的落入左子树样本的二阶梯度向量分片{HL}i与落入右子树样本的二阶梯度向量分片{HR}i
{HL}i={H}i⊙{SL}i
{HR}i={H}i⊙{SR}i
对于每个参与方i,设定{GL}i、{HL}i和{SL}i为左子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片,设定{GR}i、{HR}i和{SR}i为右子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片;
当树的深度达到设定限度或符号变量不为1时,利用秘密共享加、乘、除法计算叶子结点权重值
Figure BDA0002831883390000071
其中,
Figure BDA0002831883390000072
表示利用拆分后的一阶梯度分片、二阶梯度分片计算得到的叶节点权重,{SG}i为拆分后的一阶梯度分片,{SH}i为拆分后的二阶梯度分片,{λ}i表示预设系数分片;
递归执行步骤,完成一棵XGBoost决策树模型的构建;
每个参与方i利用自身拥有的一阶梯度向量分片与二阶梯度向量分片,计算自己所有特征所有划分区间下的一阶梯度和分片矩阵BGi与二阶梯度和分片矩阵BHi具体包括:
所有参与方i初始化记录区间一阶梯度和分片的numfeature*kmax维矩阵{BG}i与记录区间二阶梯度和分片的numfeature*kmax维矩阵{BH}i
对于特征j,j=1,2,…,numfeature,当第i′个参与方拥有特征编号j时,利用特征索引,将j映射至参与方i′所拥有的自身特征map(j)中,统计该特征拥有的所有划分取值并记录取值的数量kj
参与方i′设置一个记录样本落入特征7划分的kmax*M维矩阵Matrixindex,M为样本个数,对于第j号特征,遍历其拥有的取值区间kj,取出第k个取值区间(leftk,rightk),设定一个维度M*1的全0向量S′,令参与方i′样本集中样本特征map(j)取值valuemap(j)满足leftk<valuemap(j)≤rightk的S′位置取值为1,记录Matrixindex第k行向量Matrixindex[k,:]=S′T,S′T为S′的转置向量,待划分遍历结束后,对于总共N个参与方,参与方i′将Matrixindex通过秘密共享拆分为N个分片{Matrixindex}i,并分发至所有参与方i,i=1,…,i′,…,N;
参与方i接收{Matrixindex}i,对第j号特征,遍历k直至最大取值区间数量kmax,计算一阶梯度和分片{BG}i[j,k]与二阶梯度和分片{BH}i[j,k]:
{BG}i[j,k]=sum({Matrixindex}i[k,:]⊙{G}i)
{BH}i[j,k]=sum({Matrixindex}i[k,:]⊙{H}i)
其中,[k,:]表示选取矩阵的第k行所有元素,式中sum(v)表示对向量v的元素求和;
遍历特征数量j,使所有参与方i完成{BG}i和{BH}i的计算;
每个参与方i利用得到的分裂增益值,计算不同特征j的不同取值区间k之间的分裂增益差值,通过协调方比较以确定最大分裂增益对应的挑选特征p与取值区间q,具体包括:
对于特征j,每个参与方i取出该特征的增益分片Lsplit[j,:],其中[j,:]表示选取矩阵的第j行所有元素,设定当前参与比对的初始划分索引列表向量col=[1,2,…,kmax],记录其长度为Rcol,设定初始各特征划分索引列表向量colselected
计算上述向量分片的隔位计算结果:
Figure BDA0002831883390000081
其中,col[r]表示索引列表col中的第r个元素,[j,col[r]]表示矩阵的第j行的第col[r]个元素,
Figure BDA0002831883390000082
表示对
Figure BDA0002831883390000083
向下取整;
设定空列表new_col,遍历col_nominator,若元素位r非负,则将col[r*2]这个索引加入new_col中,否则将col[r*2+1]这个索引加入new_col中,遍历完毕后若col长度为奇数,将col最后一位添加至new_col,接下来协调方向所有参与方广播new_col,参与方令col=new_col;
当col长度大于1时,迭代直到col的长度变为1,取出col中的唯一元素col[0],记录colselected[j]=col[0];
遍历所有特征j,得到每一个特征的挑选划分位置,组合为完整的特征划分索引列表向量colselected,设定当前参与比对的初始当前划分索引列表向量row=[1,2,…,numfeature],记录其长度为Rrow
计算向量分片的隔位计算结果:
row_nominator[r]
=Lsplit[row[r],colselected[row[r]]]-Lsplit[row[r+1],colselected[row[r]]]
其中,row[r]表示索引列表row中的第r个元素,colselected[row[r]]表示colselected中以row[r]为索引位置的元素,
Figure BDA0002831883390000096
表示对Rrow/2向下取整;
设定空列表new_row,遍历row_nominator,若元素位r非负,则将row[r*2]这个索引加入new_row中,否则将row[r*2+1]这个索引加入new_row中,遍历完毕后若row长度为奇数,将row最后一位添加至new_row,接下来协调方向所有参与方广播new_row,参与方令row=new_row;
当row长度大于1时,迭代直到row的长度变为1,取出该元素,记录为j_best,所有参与方得到挑选后的最好特征j_best与该特征最佳划分位置colselected[jbest];
各参与方将最大分裂增益分片处理后发送到协调方,协调方对合成的最大增益进行正负判断具体包括:
对于指定的最大分裂增益特征p与划分区间q,每个参与方i计算自身的分裂增益分片Lspliti
每个参与方分别在本地将分裂增益分片乘以相同的数字K,得到Lspliti·K,再向协调方发送,协调方搜集Lspliti·K(i=1...N)并计算
Figure BDA0002831883390000091
设定协调方符号标志sign判定其正负号,令:
Figure BDA0002831883390000092
Figure BDA0002831883390000093
Figure BDA0002831883390000094
协调方将sign向所有参与方广播,所有参与方接收该值为当前确立的符号变量;
进一步地,步骤S3具体包括:
对于第T′棵树treeT′,每个参与方i对于待预测数据样本data,使用所持有部分特征的datai根据本地树模型
Figure BDA0002831883390000095
进行叶子节点预测,其中对于每个树节点,若其划分信息为datai中拥有的特征,则根据该特征与取值进行左(右)子树划分并继续预测,设置未进入的分支子树全部叶子结点标志位为0,若划分信息非datai中拥有的特征,则沿着该树节点的所有左右子树进行预测,直到找到确定datai归属的叶节点,设置标志位为1,最终每个参与方i得到该树预测datai产生的所有叶子节点标志位并按叶子节点排列顺序拼接为标志向量indexi,同时按照相同顺序拼接δ个叶子权重
Figure BDA0002831883390000101
为结果向量
Figure BDA0002831883390000102
每个参与方i将indexi进行秘密共享拆分,分为{indexi}i′,i′=1,…,i,…,N发送给参与方i′;
每个参与方i′接收到参与方i发来的标志向量分片{indexi}i′,计算所有向量分片的按位累乘向量{index}i′={index1}i′⊙{index2}i′⊙…⊙{indexN}i′,并计算该标志向量分片与自身的权值分片的按位乘结果{vresult}i′={index}i′⊙{vw}i′
每个参与方i′对{vresult}i′进行元素求和为{weightp}i′=sum({vresult}i′),并将结果发送至第一参与方,第一参与方接收并计算
Figure BDA0002831883390000103
并计算
Figure BDA0002831883390000104
成为第t轮结束后样本xp的预测结果;
遍历所有p,计算所有数据样本xp第t轮预测结果组合而成的向量
Figure BDA0002831883390000105
与现有技术相比,本发明具有以下有益效果:
本发明中标签的参与方利用当前模型预测结果与标签值计算一阶、二阶梯度向量与指示向量,各参与方通过秘密共享与协调方协助,构建基于XGBoost算法的决策树模型,经过参与方共同协作,确定待训练数据的预测结果,通过迭代完成多棵决策树模型的构建,获得完整的无损安全多方预测模型,通过秘密共享算法进行拆分和加减乘除的操作,提高了多方协作用户隐私的安全性。
附图说明
图1为本发明的流程示意图;
图2为本发明模型训练过程的流程示意图;
图3为本发明模型训练过程的通信流图;
图4为本发明实施例中多方树模型及其对应的等效模型示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例一
一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,包括多个参与方与一个协调方,所述参与方和协调方对本地存储的特征信息数据进行预处理操作和值映射操作得到隐私保护后的数据,每个参与方结合隐私保护后的数据,与云端服务器通过分布式协同完成模型的训练,得到全局预测树模型,将待预测的数据处理后输入到全局预测树模型进行预测,得到目标安全预测结果。
本发明中,“多方”可以表示至少两方,例如可以是两方、三方或者三方以上。本实施例中,多方为三方进行描述。
本实施例中,计算节点0表示协调方,计算节点1表示有标签的参与方,其余计算节点为普通参与方。在本地,评判的标准是准确率、召回率(正确率=提取出的正确信息条数/提取出的信息条数,召回率=提取出的正确信息条数/样本中的信息条数)。经过实验,多方训练模型的准确率与召回率与单机训练模型无差。
本发明主要关注于当各个参与方的用户群体重叠较多,数据特征重叠较少的情况下,取出用户群体相同、数据特征不同的那一部分进行联合机器学习,记录有相同的客户群体,然而由于机构的性质不同,数据特征基本不重叠。为了利用尽可能多的数据训练一个科学的模型,可以将相应的机构作为参与方,进行协同训练如图4所示。
在实施例中由于多方中运算的皆为分片数据,分片之间运算采用秘密共享的加、减、乘、除操作。本发明使用了一种名为秘密共享的多方协作算法,为一种将一份数据θ拆分为多份分片{θ}i,不同参与方i对各自的分片进行同类型、同步骤的计算生成{θ′}i,在计算结束后通过加法合并,产生数据
Figure BDA0002831883390000111
且θ′等同于对θ执行同类型、同步骤计算后的结果,所涉及的具体计算包括:
a.秘密共享拆分
对于一维数据θ,参与方i进行秘密共享拆分时,对于一共N个参与方,生成N-1个随机数,并将这N-1个随机数指定为分片{θ}i′,i′≠i,供参与方i′使用,而参与方i生成自己的数据分片{θ}i=θ-∑i′{θ}i′
b.秘密共享加法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i利用持有的{θA}i与{θB}i可直接使用普通的加法计算{θA}i+{θB}i={θ′}i,故为叙述方便,直接使用普通加法阐述;
c.秘密共享减法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i利用持有的{θA}i与{θB}i可直接使用普通的减法计算{θA}i-{θB}i={θ′}i,故为叙述方便,直接使用普通减法阐述;
d.秘密共享乘法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,每个参与方i持的{θA}i与{θB}i,首先利用协调方生成一维变量a,b,c=a*b,通过秘密共享拆分为{a}1,…,{a}N、{b}1,…,{b}N与{c}1,…,{c}N并发送给每个参与方i,每个参与方i收到{a}i,{b}i,{c}i并计算{e}i={θA}i-{a}i与{f}i={θB}i-{b}i,发送至第一参与方,第一参与方计算
Figure BDA0002831883390000121
Figure BDA0002831883390000122
发送给所有参与方,第一参与方计算得到{θ′}1,其他参与方i计算得到{θ′}i,最终秘密共享乘法
Figure BDA0002831883390000123
表示为:
Figure BDA0002831883390000124
Figure BDA0002831883390000125
e.秘密共享除法
对于一维的分片数据{θA}1,…,{θA}N与{θB}1,…,{θB}N,如需进行两数相除运算,先运算得到除数的倒数,再通过新定义的乘法操作,进行被除数与除数的倒数相乘,得到最终结果。本专利采用迭代法得到除数的倒数,迭代过程使用的乘法运算皆为秘密共享乘法运算。选定一个整数K,使得10K-1<max{{θB}1,…,{θB}N}<10K,设X0=10-K,利用公式XT·(2-θB·XT)进行迭代,得到的结果即为除数的倒数。再利用秘密共享乘法操作,得到秘密共享除法的结果。
对于以上步骤,均可从一维数据推广至多维数据。
本发明主要流程如图2和图3所示,本实施例中,使用来自UCI Machine LearningRepository的Iris数据集,选取其中类别标签为0与1的两类共100条数据,包含sepallength、sepal width、pedal length、pedal width四个特征,将四个特征中的sepallength与pedal length分配给第一参与方,sepal width分配至参与方2,pedal width分配至参与方3,所有参与方均将80%的数据样本当作训练集,剩余的20%当作测试集。
如图1所示,训练预测模型的具体步骤为:
S1:设定t=1,产生初始建树参数与特征索引,计算产生梯度向量与指示向量分片,具体包括:
S1-1:设定初始建树参数与特征索引:
第一参与方设定构建树的初始数量t=1、初始深度d=1、正则化参数λ与最大深度dmax,本实施例设定λ=1,dmax=4,对于总共N=3个参与方,计算{λ}i=1/3,分发至所有参与方i,对于每个拥有numi个特征的参与方i,协调方统计参与方的特征总数numfeature=∑i= 1numi,产生元素为[1,2,…,numfeature]的数组,为每个参与方i随机分配numi个打乱顺序的数组元素,各参与方之间得到的数组元素不重合,各参与方建立乱序数组元素j到自身拥有特征编号的一对一映射map(j)并在己方进行记录存储,例如对于拥有第一个特征sepallength与第三个特征pedal length的第一参与方,这两个特征在其本地通过编号0与1进行访问,而第一参与方被分配到索引2与0,其建立映射0=map(2)与1=map(0),在后续迭代中对于特征索引号2,第一参与方拥有该特征索引号,通过映射转换为自己特征集中对应的特征编号0,从而访问该特征;
S1-2:确定最大特征取值数量:
所有参与方计算自身拥有样本特征中最大的特征取值数量kselfmax,并发送给协调方,协调方确定全体参与方最大的特征取值数量kmax=maxkselfmax并广播至所有参与方;
S1-3:计算产生梯度向量与指示向量分片:
从持有标签数据的第一参与方启动,各参与方使用同一种损失函数l(·),在实施例中选用平方损失函数MSE,即
Figure BDA0002831883390000131
第一参与方利用模型预测结果向量
Figure BDA0002831883390000132
和标签值向量y计算一阶梯度向量
Figure BDA0002831883390000133
二阶梯度向量
Figure BDA0002831883390000134
与初始的全1指示向量S,每一条数据xp的初始预测结果
Figure BDA0002831883390000135
当t=1时为0,否则表示为已有的t-1棵树的预测权重和
Figure BDA0002831883390000136
对于总共N个参与方,将G、H、S秘密共享拆分为N份一阶梯度向量分片{G}i、二阶梯度向量分片{H}i和指示向量分片{S}i,i=1,…N,并分发至参与方i;
S2:多方共同构建第t棵基于XGBoost算法的决策树:
每个参与方i收到{G}i,{H}i和{S}i后,计算自身拥有的一阶梯度和的第i分片{SG}i与二阶梯度和的第i分片{SH}i,并利用秘密共享方法,计算各特征下各分组分别对应分裂增益的第i分片,通过协调方确定最大分裂增益及所属的特征、分组与是否进行划分,当进行划分时,若选中的特征属于参与方i′,生成划分后的左子树指示向量SL与右子树指示向量SR,所述SL与SR分别指示根据所述最大分裂增益对应特征及分组对所述样本集进行划分得到的左子集与右子集中样本,左子集、右子集分别与左子树、右子树对应,具体如下:
S2-1:每个参与方收到一阶梯度向量第分片、二阶梯度向量第分片和指示向量第分片后,计算自身拥有的一阶梯度和的第分片与二阶梯度和的第分片,与分别通过参与方拥有的和分别对向量元素求和得到;
S2-:2:所有参与方i初始化记录区间一阶梯度和分片的nunfeature*kmax维矩阵{BG}i与记录区间二阶梯度和分片的numfeature*kmax维矩阵{BH}i
对于特征j,j=1,2,…,numfeature,当第i′个参与方拥有特征编号j时,利用步骤S1-1所述的特征索引,将j映射至参与方i′所拥有的自身特征map(j)中,统计该特征拥有的所有划分取值并记录取值的数量kj
参与方i′设置一个记录样本落入特征划分的kmax*M维矩阵Matrixindex,M为样本个数,对于第j号特征,遍历其拥有的取值区间kj,取出第k个取值区间(leftk,rightk),设定一个维度M*1的全0向量S′,令参与方i′样本集中样本特征map(j)取值valuemap(j)满足leftk<valuemap(j)≤rightk的S′位置取值为1,记录Matrixindex第k行向量Matrixindex[k,:]=S′T,S′T为S′的转置向量,待划分遍历结束后,对于总共N个参与方,参与方i′将Matrixindex通过秘密共享拆分为N个分片{Matrixindex}i,并分发至所有参与方i,i=1,…,i′,…,N;
参与方i接收{Matrixindex}i,对第j号特征,遍历k直至最大取值区间数量kmax,计算一阶梯度和分片{BG}i[j,k]与二阶梯度和分片{BH}i[j,k]:
{BG}i[j,k]=sum({Matrixindex}i[k,:]⊙{G}i)
{BH}i[j,k]=sum({Matrixindex}i[k,:]⊙{H}i)
其中[k,:]表示选取矩阵的第k行所有元素,式中sum(v)表示对向量v的元素求和;
遍历特征数量j,使所有参与方i完成{BG}i和{BH}i的计算;
S2-3:对于特征j,每个参与方i初始化记录左子树累积一阶梯度分片的变量SGLi与记录右子树累积二阶梯度分片的变量SHLi
S2-4:实施例每个参与方i遍历划分区间数量k,计算左子树累积一阶梯度分片为:
Figure BDA0002831883390000141
计算左子树累积二阶梯度分片为:
Figure BDA0002831883390000151
同理可计算右子树累积一阶梯度分片SGRi与二阶梯度分片SHRi
SGRi=SGi-SGLi
SHRi=SHi-SHLi
S2-5:实施例每个参与方i使用秘密共享加、减、乘、除操作,利用第j个特征第k个分组得到分裂增益值{<Lsplit>}j,k
Figure BDA0002831883390000152
其中公式中
Figure BDA0002831883390000153
为秘密共享乘法,
Figure BDA0002831883390000154
为秘密共享加法,
Figure BDA0002831883390000155
为秘密共享除法,
Figure BDA0002831883390000156
为秘密共享减法,{<Lsplit>}j,k表示分裂增益值,{SGLi}为收到的一阶梯度分片,{SGLi}为利用拆分后的一阶梯度得到分支节点左子树的一阶梯度,{SGRi}为利用拆分后的一阶梯度得到分支节点右子树的一阶梯度,{SH}为收到的二阶梯度分片,{SHl}为利用拆分后的二阶梯度得到分支节点左子树的二阶梯度,{SHr}为利用拆分后的二阶梯度得到分支节点右子树的二阶梯度,{λi}表示超参数λ的第i分片;
S2-6:对于特征j,每个参与方i取出该特征的增益分片:
Lsplit[j,:]
其中[j,:]表示选取矩阵的第j行所有元素,设定当前参与比对的初始划分索引列表向量col=[1,2,…,kmax],记录其长度为Rcol,设定初始各特征划分索引列表向量colselected
计算向量分片的隔位计算结果:
Figure BDA0002831883390000157
其中col[r]表示索引列表col中的第r个元素,[j,col[r]]表示矩阵的第j行的第col[r]个元素,
Figure BDA0002831883390000158
表示对
Figure BDA0002831883390000159
向下取整;
设定空列表new_col,遍历col_nominator,若元素位r非负,则将col[r*2]这个索引加入new_col中,否则将col[r*2+1]这个索引加入new_col中,遍历完毕后若col长度为奇数,将col最后一位添加至new_col,接下来协调方向所有参与方广播new_col,参与方令col=new_col;
当col长度大于1时,迭代直到col的长度变为1,取出col中的唯一元素col[0],记录colselected[j]=col[0];
遍历所有特征j,得到每一个特征的挑选划分位置,组合为完整的特征划分索引列表向量colselected,设定当前参与比对的初始当前划分索引列表向量row=[1,2,…,numfeature],记录其长度为Rrow
计算向量分片的隔位计算结果:
row_nominator[r]
=Lsplit[row[r],colselected[row[r]]]-Lsplit[row[r+1],colselected[row[r]]]
其中row[r]表示索引列表row中的第r个元素,colselected[row[r]]表示colselected中以row[r]为索引位置的元素,
Figure BDA0002831883390000165
表示对Rrow/2向下取整;
设定空列表new_row,遍历row_nominator,若元素位r非负,则将row[r*2]这个索引加入new_row中,否则将row[r*2+1]这个索引加入new_row中,遍历完毕后若row长度为奇数,将row最后一位添加至new_row,接下来协调方向所有参与方广播new_row,参与方令row=new_row;
当row长度大于1时,迭代直到row的长度变为1,取出该元素,记录为j_best,所有参与方得到挑选后的最好特征j_best与该特征最佳划分位置colselected[jbest];
S2-7:对于指定的最大分裂增益特征p与划分区间q,每个参与方i计算自身的分裂增益分片Lspliti
每个参与方分别在本地将分裂增益分片乘以相同的数字K,得到Lspliti·K,再向协调方发送。协调方1搜集Lspliti·K(i=1...N)并计算
Figure BDA0002831883390000161
设定协调方符号标志sign判定其正负号,令:
Figure BDA0002831883390000162
Figure BDA0002831883390000163
Figure BDA0002831883390000164
协调方将sign向所有参与方广播,所有参与方接收该值为当前确立的符号变量;
S2-8:符号变量为1时,对于特征p,当第i′个参与方拥有特征p时,设置一个记录样本落入特征划分后左子树的M维向量SL,取出第q个取值区间(leftq,rightq),令样本集中样本特征p取值valuep满足valuep<rightq的SL位置取值为1,其余位置取值为0,设置一个记录样本落入特征划分后右子树的M维向量
Figure BDA0002831883390000171
即对SL取反,对于总共N个参与方,将SL与SR通过秘密共享拆分为N个分片{SL}i与{SR}i,i=1,…,i′,…,N,并分发至参与方i;
S2-9:实施例中每个参与方i接收{SL}i与{SR}i,重新计算自身拥有的左子树指示向量分片{SL}i与右子树指示向量分片{SR}i
{SL}i={S}i⊙{SL}i
{SR}i={S}i⊙{SR}i
其中,⊙表示向量的同位置元素之间执行秘密共享乘法
Figure BDA0002831883390000172
得到一个维度{S}i相同的向量,计算自身拥有的落入左子树样本的一阶梯度向量分片{GL}i与落入右子树样本的一阶梯度向量分片{GR}i
{GL}i={G}i⊙{SL}i
{GR}i={G}i⊙{SR}i
计算自身拥有的落入左子树样本的二阶梯度向量分片{HL}i与落入右子树样本的二阶梯度向量分片{HR}i
{HL}i={H}i⊙{SL}i
{HR}i={H}i⊙{SR}i
S2-10:对于每个参与方i,设定{GL}i、{HL}i和{SL}i为左子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片,设定{GR}i、{HR}i和{SR}i为右子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片;
S2-11:当树模型的深度达到设定限度或符号变量不为1时,利用秘密共享加、乘、除法计算叶子结点权重值
Figure BDA0002831883390000173
其中,
Figure BDA0002831883390000174
表示利用拆分后的一阶梯度分片、二阶梯度分片计算得到的叶节点权重,{SG}i为拆分后的一阶梯度分片,{SH}i为拆分后的二阶梯度分片,{λ}i表示预设系数分片;
S2-12:递归执行上述步骤,完成一棵XGBoost决策树模型的构建;
S3:本地结果预测:
对于第t棵树treet,每个参与方i对于数据样本xp,使用所持有部分特征的
Figure BDA0002831883390000175
根据本地树模型
Figure BDA0002831883390000176
进行叶子节点预测,其中对于每个树节点,若其划分信息为
Figure BDA0002831883390000177
中拥有的特征,则根据该特征与取值进行左(右)子树划分并继续预测,设置未进入的分支子树全部叶子结点标志位为0,若划分信息非
Figure BDA0002831883390000181
中拥有的特征,则沿着该树节点的所有左右子树进行预测,直到找到确定
Figure BDA0002831883390000182
归属的叶节点,设置标志位为1,最终每个参与方i得到该树预测
Figure BDA0002831883390000183
产生所有叶子节点σ,σ=1,2,…,δ的标志位并按叶子节点σ的决策树结构顺序拼接为标志向量indexi,同时按照相同顺序拼接δ个叶子权重
Figure BDA0002831883390000184
为结果向量
Figure BDA0002831883390000185
例如图4所示,三个参与方对于某数据样本,均可在本地确定出其对应的标志向量,同时各参与方均拥有结果向量分片
Figure BDA0002831883390000186
这里第一参与方持有特征-划分对(j1,k1)与(j4,k4),参与方2持有特征-划分对(j2,k2),参与方3持有特征-划分对(j3,k3),三棵决策树等价于数据储存于单机时进行训练得到的一棵含有完整划分信息的决策树,而第一参与方至3分别根据自己的已知信息进行样本划分,当含有划分信息时选定左或右子树,否则对左右子树均作搜寻,最终分别给出某数据样本的归属标志向量(1,1,1,0,0)、(0,0,1,1,1)与(0,1,1,0,0),具体包括:
S3-1:标志向量拆分与传播:
每个参与方i将indexi进行秘密共享拆分,分为{indexi}i′,发送给所有参与方i′,i′=1,…,i,…,N;
S3-2:所有参与方计算各自的预测结果分片:
每个参与方i′接收到参与方i发来的标志向量分片{indexi}i′,计算所有向量分片的按位累乘向量{index}i′={index1}i′⊙{index2}i′⊙…⊙{indexN}i′,并计算该标志向量分片与自身的权值分片的按位乘结果{vresult}i′={index}i′⊙{vw}i′
S3-3:合并预测结果分片:
每个参与方i′对{vresult}i′进行元素求和为{weightp}i′=sum({vresult}i′),并将结果发送至第一参与方,第一参与方接收并计算
Figure BDA0002831883390000187
并计算
Figure BDA0002831883390000188
成为第t轮结束后样本xp的预测结果;
S3-4:计算所有样本预测结果:
遍历所有p,计算所有数据样本xp第t轮预测结果组合而成的向量
Figure BDA0002831883390000189
S4:迭代增加训练轮次,完成所有决策树构建:
增加树的数量t=t+1,迭代步骤S1-S3,直到构建完毕t=T棵决策树模型。
此外,需要说明的是,本说明书中所描述的具体实施例子,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等效变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (8)

1.一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,包括多个参与方与一个协调方,所述参与方和协调方对本地存储的特征信息数据进行预处理操作和值映射操作得到隐私保护后的数据,每个参与方结合隐私保护后的数据,与云端服务器通过分布式协同完成模型的训练,得到全局预测树模型,将待预测的数据处理后输入到全局预测树模型进行预测,得到目标安全预测结果;
所述参与方的类型包括第一参与方,所述第一参与方持有样本集中各样本的一个或一个以上特征的特征值及样本标签值;
所述训练预测模型的具体步骤为:
S1:第一参与方设定构建树的初始数量、初始深度、正则化参数与最大深度,将正则化参数秘密共享拆分,将所有设定的参数发至所有参与方,为每个拥有相应数量特征的参与方产生随机不重复的特征编号索引,由持有标签的第一参与方利用当前模型预测结果向量和样本标签向量计算得到一阶梯度向量和二阶梯度向量,并产生初始的全1指示向量,分别进行秘密共享拆分,对于每个参与方,拆分为相应数量的一阶梯度向量分片、二阶梯度向量分片和指示向量分片,并分别分发至所有参与方;
S2:每个参与方收到所述一阶梯度向量分片、二阶梯度向量分片和指示向量分片后,计算自身拥有的一阶梯度和的分片与二阶梯度和的分片,并利用秘密共享方法,直接计算各特征下各分组分别对应分裂增益的分片,对于XGBoost算法,在某个树节点时,对于该节点具有的所有数据一阶梯度和、二阶梯度和和正则项,计算未分裂增益,具体如下:
Figure FDA0003562884280000011
其中,SG为一阶梯度和,SH为二阶梯度和,λ为正则项;
每个参与方i使用秘密共享加、减、乘、除操作,利用第j个特征第k个分组得到分裂增益值{<Lsplit>}j,k
Figure FDA0003562884280000021
其中,
Figure FDA0003562884280000022
为秘密共享乘法,
Figure FDA0003562884280000023
为秘密共享加法,
Figure FDA0003562884280000024
为秘密共享除法,
Figure FDA0003562884280000025
为秘密共享减法,{<Lsplit>}j,k表示分裂增益值,{SGLi}为收到的一阶梯度分片,{SGLi}为利用拆分后的一阶梯度得到分支节点左子树的一阶梯度,{SGRi}为利用拆分后的一阶梯度得到分支节点右子树的一阶梯度,{SH}为收到的二阶梯度分片,{SHl}为利用拆分后的二阶梯度得到分支节点左子树的二阶梯度,{SHr}为利用拆分后的二阶梯度得到分支节点右子树的二阶梯度,{λi}表示超参数λ的第i分片;
S3:对于每一条数据样本,每个参与方利用所持有部分特征的样本,计算当前树模型的预测结果,累加至已经生成的树模型的结果中,产生多种树模型对于数据样本的综合预测结果,遍历数据样本,产生完整的预测结果;
S4:增加树的数量,迭代步骤S1-S3,直到构建完毕目标数量的树模型。
2.根据权利要求1所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述秘密共享算法包括秘密共享拆分、秘密共享加法、秘密共享减法、秘密共享乘法和秘密共享除法。
3.根据权利要求1所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S1具体包括:
S1-1:第一参与方设定构建树模型的初始数量、初始深度、正则化参数与最大深度,将正则化参数秘密共享拆分,将所有设定的参数发至所有参与方,对于每个拥有相应数量特征的参与方,协调方统计参与方的特征总数,产生元素为相应数量的数组,为每个参与方随机分配相应数量的打乱顺序的数组元素,各参与方之间得到的数组元素不重合,各参与方建立乱序数组元素到自身拥有特征编号的一对一映射并在己方进行记录存储;
S1-2:所有参与方计算自身拥有样本特征中最大的特征取值数量,并发送给协调方,协调方确定全体参与方最大的特征取值数量并广播至所有参与方;
S1-3:从持有标签数据的所述第一参与方启动,各参与方使用同一种损失函数,第一参与方利用模型预测结果向量和标签值向量计算一阶梯度向量、二阶梯度向量与初始的全1指示向量,每一条数据的初始预测结果,对于每个参与方,将一阶梯度向量、二阶梯度向量和指示向量经秘密共享算法拆分为多份一阶梯度向量分片、二阶梯度向量分片和指示向量分片,并分发至相应的参与方。
4.根据权利要求1所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S2具体包括:
S2-1:每个参与方收到一阶梯度向量分片、二阶梯度向量分片和指示向量分片后,计算自身拥有的一阶梯度和的分片与二阶梯度和的分片;
S2-2:每个参与方利用自身拥有的一阶梯度向量分片与二阶梯度向量分片,计算自己所有特征所有划分区间下的一阶梯度和分片矩阵与二阶梯度和分片矩阵;
S2-3:根据计算得到的特征,每个参与方初始化记录左子树累积一阶梯度分片的变量与记录右子树累积二阶梯度分片的变量;
S2-4:每个参与方遍历划分区间数量,计算左子树累积一阶梯度分片为:
Figure FDA0003562884280000031
其中,SGLi为左子树累积一阶梯度分片变量,
Figure FDA0003562884280000032
为一阶梯度和分片矩阵;
计算左子树累积二阶梯度分片为:
Figure FDA0003562884280000033
其中,SHLi为右子树累积一阶梯度分片变量,
Figure FDA0003562884280000034
为二阶梯度和分片矩阵;
同理计算右子树累积一阶梯度分片SGRi与二阶梯度分片SHRi
SGRi=SGi-SGLi
SHRi=SHi-SHLi
其中,SGRi为右子树累积一阶梯度分片,SHRi为右子树累积二阶梯度分片,SGi为一阶梯度和分片,SHi为二阶梯度和分片;
S2-5:对于XGBoost算法,在某个树节点时,对于该节点具有的所有数据一阶梯度和、二阶梯度和和正则项,计算未分裂增益,具体如下:
Figure FDA0003562884280000035
其中,SG为一阶梯度和,SH为二阶梯度和,λ为正则项;
每个参与方使用秘密共享算法,利用相应特征及其分组得到分裂增益值:
Figure FDA0003562884280000036
其中,
Figure FDA0003562884280000037
为秘密共享乘法,
Figure FDA0003562884280000038
为秘密共享加法,
Figure FDA0003562884280000039
为秘密共享除法,
Figure FDA00035628842800000310
为秘密共享减法,{<Lsplit>}j,k表示分裂增益值,{SGLi}为收到的一阶梯度分片,{SGLi}为利用拆分后的一阶梯度得到分支节点左子树的一阶梯度,{SGRi}为利用拆分后的一阶梯度得到分支节点右子树的一阶梯度,{SH}为收到的二阶梯度分片,{SHl}为利用拆分后的二阶梯度得到分支节点左子树的二阶梯度,{SHr}为利用拆分后的二阶梯度得到分支节点右子树的二阶梯度,{λi}表示超参数λ的第i分片;
S2-6:每个参与方利用步骤S2-5得到的分裂增益值,计算每个特征的取值区间之间的分裂增益差值,通过协调方比来较以确定最大分裂增益对应的挑选特征与取值区间;
S2-7:各参与方将最大分裂增益分片处理后发送到协调方,协调方对合成的最大增益进行正负判断,如果为正值,将符号向量设为1;如果为负值,将符号向量设为-1;如果为0,设为0;
S2-8:当符号变量为1时,对于每个参与方拥有特征,设置一个记录样本落入特征划分后左子树的多维向量,取出目标取值区间,令样本集中样本特征的取值满足特定位置的取值为1,其余位置取值为0,设置一个记录样本落入特征划分后右子树的多维向量,对于全部参与方,将左子树指示向量与右子树指示向量通过秘密共享拆分为多个分片并分发至每个参与方;
S2-9:每个参与方接收左子树指示向量与右子树指示向量的分片,重新计算自身拥有的左子树指示向量分片与右子树指示向量分片:
{SL}i={S}i⊙{SL}i
{SR}i={S}i⊙{SR}i
其中,{SL}i为左子树指示向量分片,{SR}i为右子树指示向量分片,⊙表示向量的同位置元素之间执行秘密共享乘法得到一个维度相同的向量,计算自身拥有的落入左子树样本的一阶梯度向量分片与落入右子树样本的一阶梯度向量分片:
{GL}i={G}i⊙{SL}i
{GR}i={G}i⊙{SR}i
其中,{GL}i为落入左子树样本的一阶梯度向量分片,{GR}i为落入右子树样本的一阶梯度向量分片;
计算自身拥有的落入左子树样本的二阶梯度向量分片与落入右子树样本的二阶梯度向量分片:
{HL}i={H}i⊙{SL}i
{HR}i={H}i⊙{SR}i
其中,{HL}i为落入左子树样本的二阶梯度向量分片,{HR}i为落入右子树样本的二阶梯度向量分片;
S2-10:对于每个参与方,设定左子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片,并设定右子树使用的一阶梯度向量分片、二阶梯度向量分片与指示向量分片;
S2-11:当树模型的深度达到设定限度或符号变量不为1时,每个参与方利用秘密共享算法来计算决策树上当前叶子节点的权值分片;
S2-12:递归执行步骤S2-1至步骤S2-11,完成一棵XGBoost树模型的构建。
5.根据权利要求4所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S2-2具体包括:
S2-2-1:所有参与方初始化记录区间一阶梯度和分片的多维矩阵与二阶梯度和分片的多维矩阵;
S2-2-2:对于拥有特征编号的参与方,利用步骤S1-1所述的特征编号索引,将特征映射至参与方所拥有的自身特征地图中,统计该特征拥有的所有划分取值并记录取值的数量;
S2-2-3:参与方设置一个记录样本落入特征划分的多维矩阵,对于相应排列序号的特征,遍历其拥有的取值区间,取出相应的取值区间,设定一个目标维度的全0列向量,令参与方样本的集中样本特征的取值满足预设位置取值为1,记录相应的行向量,待划分遍历结束后,对于全部的参与方,将所述行向量通过秘密共享算法拆分为多个分片,并分发至所有参与方;
S2-2-4:参与方接收行向量分片,对第j号特征,遍历k直至最大取值区间数量kmax,计算一阶梯度和分片{BG}i[j,k]与二阶梯度和分片{BH}i[j,k]:
{BG}i[j,k]=sum({Matrixindex}i[k,:]⊙{G}i)
{BH}i[j,k]=sum({Matrixindex}i[k,:]⊙{H}i)
其中,{BG}i[j,k]为一阶梯度和分片,{BH}i[j,k]为二阶梯度和分片,[k,:]表示选取矩阵的第k行所有元素,sum(v)表示对向量v的元素求和;
S2-2-5:遍历全部的特征数量,执行S2-3-2至S2-3-4,使所有参与方完成一阶梯度和分片与二阶梯度和分片的计算。
6.根据权利要求4所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S2-6具体包括:
S2-6-1:对于特征j,每个参与方i取出该特征的增益分片:
Lsplit[j,:]
其中[j,:]表示选取矩阵的第j行所有元素,设定当前参与比对的初始划分索引列表向量col=[1,2,…,kmax],记录其长度为Rcol,设定初始各特征划分索引列表向量colselected
S2-6-2:计算S2-6-1中向量分片的隔位计算结果:
Figure FDA0003562884280000061
其中,col[r]表示索引列表col中的第r个元素,[j,col[r]]表示矩阵的第j行的第col[r]个元素,
Figure FDA0003562884280000062
表示对
Figure FDA0003562884280000063
向下取整;
S2-6-3:设定空列表new_col,遍历col_nominator,若元素位r非负,则将col[r*2]这个索引加入new_col中,否则将col[r*2+1]这个索引加入new_col中,遍历完毕后若col长度为奇数,将col最后一位添加至new_col,接下来协调方向所有参与方广播new_col,参与方令col=new_col;
S2-6-4:当col长度大于1时,迭代步骤S2-6-2到S2-6-3直到col的长度变为1,取出col中的唯一元素col[0],记录colselected[j]=col[0];
S2-6-5:遍历所有特征j,迭代步骤S2-6-1至S2-6-4,得到每一个特征的挑选划分位置,组合为完整的特征划分索引列表向量colselected,设定当前参与比对的初始当前划分索引列表向量row=[1,2,…,numfeature],记录其长度为Rrow
S2-6-6:计算S2-6-1中向量分片的隔位计算结果:
row_nominator[r]
=Lsplit[row[r],colselected[row[r]]]-Lsplit[row[r+1],colselected[row[r]]]
其中,row[r]表示索引列表row中的第r个元素,colselected[row[r]]表示colselected中以row[r]为索引位置的元素,
Figure FDA0003562884280000064
表示对Rrow/2向下取整;
S2-6-7:设定空列表new_row,遍历row_nominator,若元素位r非负,则将row[r*2]这个索引加入new_row中,否则将row[r*2+1]这个索引加入new_row中,遍历完毕后若row长度为奇数,将row最后一位添加至new_row,接下来协调方向所有参与方广播new_row,参与方令row=new_row;
S2-6-8:当row长度大于1时,迭代步骤S2-6-6到S2-6-7直到row的长度变为1,取出该元素,记录为j_best,所有参与方得到挑选后的最好特征j_best与该特征最佳划分位置colselected[jbest]。
7.根据权利要求4所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S2-7具体包括:
S2-7-1:对于指定的最大分裂增益特征与划分区间,每个参与方计算自身的分裂增益分片;
S2-7-2:每个参与方分别在本地将分裂增益分片乘以相同的数字,得到相应倍数的分裂增益分片,再向协调方发送,协调方进行搜集并计算,设定协调方符号标志,判定其正负号,令:
Figure FDA0003562884280000071
Figure FDA0003562884280000072
Figure FDA0003562884280000073
协调方将协调方符号标志向所有参与方广播,所有参与方接收该值为当前确立的符号变量。
8.根据权利要求1所述的一种基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法,其特征在于,所述步骤S3具体包括:
S3-1:每个参与方对于数据样本,使用所持有部分特征,根据本地树模型进行叶子节点预测,其中对于每个树节点,根据其划分信息进行预测,设置未进入的分支子树全部叶子节点标志位为0,若划分信息非数据样本中拥有的特征,则沿着该树节点的所有左右子树进行预测,直到找到确定特征归属的叶节点,设置标志位为1,最终每个参与方得到该树预测特征产生所有叶子节点的标志位并按叶子节点的联合决策树结构顺序拼接为标志向量,同时按照相同顺序拼接多个叶子权重为结果向量;
S3-2:每个参与方将标志向量进行秘密共享拆分,发送给所有参与方;
S3-3:每个参与方接收到其他参与方发来的标志向量分片,计算所有向量分片的按位累乘向量分片,并计算该按位累乘向量分片与自身的权值分片的按位乘结果;
S3-4:每个参与方根据所述按位乘结果进行元素求和并将结果发送至第一参与方,第一参与方接收并计算预测结果;
S3-5:遍历所有数据样本,计算相应的预测结果组合而成的预测结果向量。
CN202011451287.1A 2020-12-12 2020-12-12 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法 Active CN112464287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011451287.1A CN112464287B (zh) 2020-12-12 2020-12-12 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011451287.1A CN112464287B (zh) 2020-12-12 2020-12-12 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法

Publications (2)

Publication Number Publication Date
CN112464287A CN112464287A (zh) 2021-03-09
CN112464287B true CN112464287B (zh) 2022-07-05

Family

ID=74800702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011451287.1A Active CN112464287B (zh) 2020-12-12 2020-12-12 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法

Country Status (1)

Country Link
CN (1) CN112464287B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113222175B (zh) * 2021-04-29 2023-04-18 深圳前海微众银行股份有限公司 信息处理方法及系统
CN113407987B (zh) * 2021-05-24 2023-10-20 支付宝(杭州)信息技术有限公司 保护隐私的确定业务数据特征有效值的方法及装置
CN113037489B (zh) * 2021-05-25 2021-08-27 北京百度网讯科技有限公司 数据处理方法、装置、设备和存储介质
CN113674843A (zh) * 2021-07-08 2021-11-19 浙江一山智慧医疗研究有限公司 医疗费用预测的方法、装置、系统、电子装置和存储介质
CN115730631A (zh) * 2021-08-30 2023-03-03 华为云计算技术有限公司 联邦学习的方法和装置
CN114186694B (zh) * 2021-11-16 2024-06-11 浙江大学 一种高效安全,低通信的纵向联邦学习方法
CN114091624B (zh) * 2022-01-18 2022-04-26 蓝象智联(杭州)科技有限公司 一种无第三方的联邦梯度提升决策树模型训练方法
CN114282688B (zh) * 2022-03-02 2022-06-03 支付宝(杭州)信息技术有限公司 一种两方决策树训练方法和系统
CN114338017B (zh) * 2022-03-04 2022-06-10 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序方法和系统
CN114282256B (zh) * 2022-03-04 2022-06-07 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序打乱方法和恢复方法
CN114362948B (zh) * 2022-03-17 2022-07-12 蓝象智联(杭州)科技有限公司 一种联邦衍生特征逻辑回归建模方法
CN114662156B (zh) * 2022-05-25 2022-09-06 蓝象智联(杭州)科技有限公司 一种基于匿名化数据的纵向逻辑回归建模方法
CN115396101B (zh) * 2022-10-26 2022-12-27 华控清交信息科技(北京)有限公司 一种基于秘密分享的不经意打乱方法和系统
CN115630711B (zh) * 2022-12-19 2023-04-07 华控清交信息科技(北京)有限公司 一种训练XGBoost模型的方法和多方安全计算平台
CN116738494B (zh) * 2023-08-16 2023-11-14 北京瑞莱智慧科技有限公司 基于秘密分享的多方安全计算的模型训练方法和装置
CN116886271B (zh) * 2023-09-07 2023-11-21 蓝象智联(杭州)科技有限公司 一种用于纵向联邦XGboost模型训练的梯度聚合方法
CN117093903B (zh) * 2023-10-19 2024-03-29 中国科学技术大学 一种纵向联邦学习场景中标签推理攻击方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165683A (zh) * 2018-08-10 2019-01-08 深圳前海微众银行股份有限公司 基于联邦训练的样本预测方法、装置及存储介质
CN111241567A (zh) * 2020-01-16 2020-06-05 深圳前海微众银行股份有限公司 基于秘密共享的纵向联邦学习方法、系统及存储介质
CN111626886A (zh) * 2020-07-30 2020-09-04 工保科技(浙江)有限公司 基于多方协作的工程履约保证保险风险识别方法与平台
CN111695697A (zh) * 2020-06-12 2020-09-22 深圳前海微众银行股份有限公司 多方联合决策树构建方法、设备及可读存储介质
CN111737756A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 经由两个数据拥有方进行的xgb模型预测方法、装置及系统
CN111782550A (zh) * 2020-07-31 2020-10-16 支付宝(杭州)信息技术有限公司 基于用户隐私保护训练指标预测模型的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970402B2 (en) * 2018-10-19 2021-04-06 International Business Machines Corporation Distributed learning preserving model security
CN110990871B (zh) * 2019-11-29 2023-04-07 腾讯云计算(北京)有限责任公司 基于人工智能的机器学习模型训练方法、预测方法及装置
CN111860829A (zh) * 2020-06-19 2020-10-30 光之树(北京)科技有限公司 联邦学习模型的训练方法及装置
CN111832074B (zh) * 2020-07-14 2023-04-07 西安电子科技大学 基于spdz安全多方计算的安全验证协作学习方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165683A (zh) * 2018-08-10 2019-01-08 深圳前海微众银行股份有限公司 基于联邦训练的样本预测方法、装置及存储介质
CN111241567A (zh) * 2020-01-16 2020-06-05 深圳前海微众银行股份有限公司 基于秘密共享的纵向联邦学习方法、系统及存储介质
CN111695697A (zh) * 2020-06-12 2020-09-22 深圳前海微众银行股份有限公司 多方联合决策树构建方法、设备及可读存储介质
CN111626886A (zh) * 2020-07-30 2020-09-04 工保科技(浙江)有限公司 基于多方协作的工程履约保证保险风险识别方法与平台
CN111737756A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 经由两个数据拥有方进行的xgb模型预测方法、装置及系统
CN111782550A (zh) * 2020-07-31 2020-10-16 支付宝(杭州)信息技术有限公司 基于用户隐私保护训练指标预测模型的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
联邦学习安全与隐私保护综述;陈兵;《南京航空航天大学学报》;20201031;第52卷(第5期);全文 *

Also Published As

Publication number Publication date
CN112464287A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464287B (zh) 基于秘密共享与联邦学习的多方XGBoost安全预测模型训练方法
CN112700031B (zh) 一种保护多方数据隐私的XGBoost预测模型训练方法
CN112364908A (zh) 一种面向决策树的纵向联邦学习方法
Liu et al. Detecting community structure in complex networks using simulated annealing with k-means algorithms
CN108874914A (zh) 一种基于图卷积与神经协同过滤的信息推荐方法
CN111737535B (zh) 一种基于元结构和图神经网络的网络表征学习方法
CN106503106A (zh) 一种基于深度学习的图像哈希索引构建方法
US20230281517A1 (en) Efficient, secure and low-communication vertical federated learning method
CN113065143A (zh) 基于区块链的工业数据安全共享
Singh et al. Genetic algorithm for solving multiple traveling salesmen problem using a new crossover and population generation
Yi et al. Small-world topology can significantly improve the performance of noisy consensus in a complex network
CN114817946A (zh) 基于可信执行环境的联邦学习梯度提升决策树训练方法
CN111985623A (zh) 基于最大化互信息和图神经网络的属性图群组发现方法
CN113222181A (zh) 一种面向k-means聚类算法的联邦学习方法
CN113723477A (zh) 一种基于孤立森林的跨特征联邦异常数据检测方法
CN107169871A (zh) 一种基于关系组合优化和种子扩张的多关系社区发现方法
CN116386899A (zh) 基于图学习的药物疾病关联关系预测方法及相关设备
CN115659807A (zh) 一种基于贝叶斯优化模型融合算法对人才表现预测的方法
CN116975778A (zh) 一种基于信息级联的社交网络信息传播影响力预测方法
CN107590189A (zh) 智能合约执行方法、装置、设备及存储介质
CN117236465A (zh) 一种基于信息熵的联邦决策树信息量度量方法
CN116975018A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
CN116957112A (zh) 联合模型的训练方法、装置、设备及存储介质
US20220188649A1 (en) Decision tree-oriented vertical federated learning method
US20220215126A1 (en) Distance preserving hash method

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