联邦多目标分类方法及系统
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及隐私计算领域,尤其涉及一种联邦多目标分类方法及系统。
背景技术
在联邦用户画像的场景中,会涉及到多标签的场景。例如,银行风控场景中,有“诈骗”、“老赖”和“正常用户”等标签,对于一个用户来说这些标签有且只有一个。
在之前方案中,对模型的训练大部分采用one vs all的方案,这样会降低模型训练的效率。另外,在上述的场景中,“诈骗”、“老赖”等用户相对于正常用户,样本量还是比较少的(通常的比例低于1:100),模型训练的时候会存在样本不均衡的情况,训练得到的模型预测准确率较低。之前设计方案中,更多的是从采样的角度考虑,如上采样、SMOTE采样等,这样做会增加训练的样本量从而降低模型训练效率,且训练过程中存在样本标签泄露的风险。
针对现有技术中无法兼顾模型训练效率及模型预测准确率的问题,目前还没有一个有效的解决方法。
发明内容
为解决上述问题,本发明提供一种联邦多目标分类方法及系统,在诸如银行风控等涉及多目标分类联邦用户画像场景中,可通过该方案对这些场景中的各个标签进行更为准确的预估分类,通过在模型训练的过程中对预测函数中的参数进行更新,使正负样本不均衡的场景中,当对异常样本预测错误时加大惩罚,以多次迭代得到更加准确的预测函数,在不增加样本量的情况下保证模型预测的准确度,从而解决现有技术中在多目标分类的场景中无法兼顾模型训练效率及模型预测准确率的问题。
为达到上述目的,本发明提供一种联邦多目标分类方法,所述方法用于对银行用户的信用等级进行评估,所述方法包括:S1、发起方通过同态加密算法生成公钥和私钥,并将公钥发送至参与方;S2、发起方计算发起方数据集与发起方初始参数的第一乘积,参与方计算参与方数据集与参与方初始参数的第二乘积,发起方接收所述参与方发送的第二乘积,并计算第一乘积与第二乘积的乘积矩阵,通过所述乘积矩阵及预测函数得到预测值;S3、发起方通过标签矩阵与预测值计算梯度更新参数,将所述梯度更新参数采用公钥加密得到密文矩阵,将所述密文矩阵发送给参与方;S4、参与方计算密文矩阵与参与方数据集的第三乘积密文,掩码加密所述第三乘积密文得到加密结果,将所述加密结果发送至发起方,发起方通过所述私钥解密所述加密结果后得到解密结果,并将所述解密结果发送至参与方;S5、发起方根据所述梯度更新参数更新所述发起方初始参数,参与方根据所述解密结果更新所述参与方初始参数;S6、重复步骤S2-S5,直至所述预测函数收敛,采用所述预测函数对待预测数据的类别进行分类,根据分类结果对用户的信用等级进行评估。
进一步可选的,所述预测函数为:
其中,所述P′为样本的预测值,P为数据集和参数的乘积值组成的乘积矩阵,i为第i个类别,P
所述发起方通过标签矩阵与预测值计算梯度更新参数通过下式计算:
G=α(P′-Y)(1-P′)
其中,G为梯度更新参数,α为控制正负样本正确的权重,γ为调节因子,Y为标签矩阵。
进一步可选的,所述发起方根据所述梯度更新参数更新所述发起方初始参数,包括:计算所述梯度更新参数与发起方数据集的第四乘积;采用所述第四乘积更新所述发起方初始参数。
进一步可选的,所述参与方根据所述解密结果更新所述参与方初始参数,包括:对所述解密结果采用掩码进行解密,得到第三乘积;采用所述第三乘积更新所述参与方初始参数。
进一步可选的,所述采用所述第四乘积更新所述发起方初始参数,通过下式计算:
θ′
其中,θ′
所述采用所述第三乘积更新所述参与方初始参数,通过下式计算:
θ′
其中,θ′
另一方面,本发明还提供一种联邦多目标分类系统,所述系统用于对银行用户的信用等级进行评估,所述系统包括:同态加密模块,用于发起方通过同态加密算法生成公钥和私钥,并将公钥发送至参与方;计算模块,用于发起方计算发起方数据集与发起方初始参数的第一乘积,参与方计算参与方数据集与参与方初始参数的第二乘积,发起方接收所述参与方发送的第二乘积,并计算第一乘积与第二乘积的乘积矩阵,通过所述乘积矩阵及预测函数得到预测值;密文矩阵生成模块,用于发起方通过标签矩阵与预测值计算梯度更新参数,将所述梯度更新参数采用公钥加密得到密文矩阵,将所述密文矩阵发送给参与方;解密模块,用于参与方计算密文矩阵与参与方数据集的第三乘积密文,掩码加密所述第三乘积密文得到加密结果,将所述加密结果发送至发起方,发起方通过所述私钥解密所述加密结果后得到解密结果,并将所述解密结果发送至参与方;参数更新模块,用于发起方根据所述梯度更新参数更新所述发起方初始参数,参与方根据所述解密结果更新所述参与方初始参数;类别预测模块,用于重复计算模块、密文矩阵生成模块、解密模块及参数更新模块的步骤,直至所述预测函数收敛,采用所述预测函数对待预测数据的类别进行分类,根据分类结果对用户的信用等级进行评估。
进一步可选的,所述预测函数为:
其中,所述P′为样本的预测值,P为数据集和参数的乘积值组成的乘积矩阵,i为第i个类别,P
所述发起方通过标签矩阵与预测值计算梯度更新参数通过下式计算:
G=α(P′-Y)(1-P′)
其中,G为梯度更新参数,α为控制正负样本正确的权重,γ为调节因子,Y为标签矩阵。
进一步可选的,所述参数更新模块包括:乘积计算子模块,用于计算所述梯度更新参数与发起方数据集的第四乘积;发起方参数更新子模块,用于采用所述第四乘积更新所述发起方初始参数。
进一步可选的,所述参数更新模块包括:掩码解密子模块,用于对所述解密结果采用掩码进行解密,得到第三乘积;参与方参数更新子模块,用于采用所述第三乘积更新所述参与方初始参数。
进一步可选的,所述采用所述第四乘积更新所述发起方初始参数,通过下式计算:
θ′
其中,θ′
所述采用所述第三乘积更新所述参与方初始参数,通过下式计算:
θ′
其中,θ′
上述技术方案具有如下有益效果:通过对模型进行参数更新,以保证在样本不均衡的场景下,也可以对模型进行高效的训练;在模型训练过程中,加大对小类别样本预测错误时的惩罚,以调节正负样本在损失函数中的占比,进而保证训练后模型的预测准确度;在联邦学习过程中,对重要数据进行加密后传输,以提高传输安全性;保证具有较高的用户等级评价准确性,且在整个过程中保护用户数据安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的联邦多目标分类方法的流程图;
图2是本发明实施例提供的发起方参数更新方法的流程图;
图3是本发明实施例提供的参与方参数更新方法的流程图;
图4是本发明实施例提供的联邦多目标分类系统的结构示意图;
图5是本发明实施例提供的参数更新模块中用于更新发起方参数的子模块结构示意图;
图6是本发明实施例提供的参数更新模块中用于更新参与方参数的子模块结构示意图。
附图标记:100-同态加密模块;200-计算模块;300-密文矩阵生成模块;400-解密模块;500-参数更新模块;5001-乘积计算子模块;5002-发起方参数更新子模块;5003-掩码解密子模块;5004-参与方参数更新子模块;600-类别预测模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术中多类别模型训练效率低的问题,本发明提供了一种联邦多目标分类方法,该方法可适用于涉及到多标签的联邦用户画像的场景,如银行风控场景中。在银行风控场景中,客户数据(待预测数据)中包括有“诈骗”、“老赖”和“正常用户”等标签(类别),对于一个用户来说这些标签有且只有一个。但是“诈骗”、“老赖”等用户相对于正常用户,样本量还是比较少的(通常的比例低于1:100),这样在模型训练的时候会存在样本不均衡的情况,从而使得训练得到的模型预测准确率低。为解决此问题,本发明提供了一种联邦数据分类预测方法。图1是本发明实施例提供的联邦多目标分类方法的流程图,如图1所示,包括:
S1、发起方通过同态加密算法生成公钥和私钥,并将公钥发送至参与方;
在隐私计算领域中,可通过联邦学习实现多方数据的共同模型训练,在模型训练过程中,存在发起方(guest方)及参与方(host方)。
发起方(guest方)拥有发起方数据集X
参与方(host方)拥有参与方数据集X
本实施例中的算法可支持多个参与方(host方)的场景。
首先发起方(guest方)使用同态加密算法生成公钥和私钥,并将公钥发送给参与方(host方)。
S2、发起方计算发起方数据集与发起方初始参数的第一乘积,参与方计算参与方数据集与参与方初始参数的第二乘积,发起方接收参与方发送的第二乘积,并计算第一乘积与第二乘积的乘积矩阵,通过乘积矩阵及预测函数得到预测值;
发起方(guest方)计算发起方数据集X
参与方(host方)计算参与方数据集X
发起方(guest方)计算第一乘积P
需要注意的是,第一乘积、第二乘积与乘积矩阵均为矩阵形式。
S3、发起方通过标签矩阵与预测值计算梯度更新参数,将梯度更新参数采用公钥加密得到密文矩阵,将密文矩阵发送给参与方;
发起方(guest方)根据标签Y生成标签矩阵α,并根据标签矩阵α和预测值计算梯度更新参数G。
发起方(guest方)使用公钥加密梯度更新参数G,得到密文矩阵[G],并将密文矩阵发送给参与方(host方)。
该梯度更新参数可使类别较少的一方,样本预测错误时,对该错误增加更大的惩罚,以纠正模型学习到的参数空间。
S4、参与方计算密文矩阵与参与方数据集的第三乘积密文,掩码加密第三乘积密文得到加密结果,将加密结果发送至发起方,发起方通过私钥解密加密结果后得到解密结果,并将解密结果发送至参与方;
参与方(host方)计算密文矩阵[G]和参与方数据集X
发起方(guest方)收到加密结果[GX
S5、发起方根据梯度更新参数更新发起方初始参数,参与方根据解密结果更新参与方初始参数;
发起方(guest方)根据梯度更新参数G更新发起方梯度,并通过梯度更行发起方初始参数θ
S6、重复步骤S2-S5,直至预测函数收敛,采用预测函数对待预测数据的类别进行分类,根据分类结果对用户的信用等级进行评估。
采用更新后的发起方参数及更新后的参与方参数重复步骤S2-S5,直至预测函数达到一个理想的状态,此时采用预测函数对待预测数据进行分类,以保证在样本不均衡的情况下,提高模型训练的效率及准确率。例如,在银行风控场景中,通过预测函数对待预测数据(银行客户数据)的类别进行分类后,可以得到用户的标签,如“诈骗”、“老赖”和“正常用户”等标签。根据分类结果(即用户的标签)可以对用户的信用等级进行评估,从而对不同标签的用户进行相应的业务处理,例如调整用户的贷款额度等。
作为一种可选的实施方式,预测函数为:
其中,P′为预测值,P为数据集和参数的乘积值组成的乘积矩阵,i∈{1,2,3,…M}为类别信息;P
发起方通过标签矩阵与预测值计算梯度更新参数通过下式计算:
G=α(P′-Y)(1-P′)
其中,G为梯度更新参数,α为控制正负样本正确的权重,γ为调节因子,Y为标签矩阵。
前项函数:
其中,其中2
z
其中,x
在本实施例的联邦学习的过程中,上述前项函数为:
其中,P′为预测值,P为数据集和参数的乘积值组成的乘积矩阵,i为第i个类别,P
更进一步的,乘积矩阵P为样本信息(各方数据集)和权重(各方初始参数)的乘积之和,即P=P
对于前项函数使用交叉熵损失,得到损失函数:
其中,M是类别的数量,y
其中,p
对上述表达式关于w
本实施例的联邦算法中,梯度更新参数表示为:
G=α(P′-Y)(1-P′)
梯度分别表示为GX
作为一种可选的实施方式,图2是本发明实施例提供的发起方参数更新方法的流程图,如图2所示,发起方根据梯度更新参数更新发起方初始参数,包括:
S501、计算梯度更新参数与发起方数据集的第四乘积;
S502、采用第四乘积更新发起方初始参数。
发起方(guest方)计算梯度更新参数G与发起方数据集X
由于梯度更新参数G是在发起方计算得到的,因此发起方可以直接在计算得到梯度更新参数G后进一步计算得到更新的梯度GX
作为一种可选的实施方式,图3是本发明实施例提供的参与方参数更新方法的流程图,如图3所示,参与方根据解密结果更新参与方初始参数,包括:
S503、对解密结果采用掩码进行解密,得到第三乘积;
S504、采用第三乘积更新参与方初始参数。
参与方在接收到解密结果GX
第三乘积GX
作为一种可选的实施方式,采用第四乘积更新发起方初始参数,通过下式计算:
θ′
其中,θ′
采用第三乘积更新参与方初始参数,通过下式计算:
θ′
其中,θ′
基于上述求导公式,得到权重w
其中,η为学习率。
本实施例的联邦算法中,
θ′
对于参与方参数进行更新采用下式:
θ′
其中,学习率η可为人工设定的固定值,也可以根据训练过程中的结果进行动态调整,以保证最终的预测准确度。
作为一种可选的实施方式,本发明还提供了一种联邦多目标分类系统,所述系统用于对银行用户的信用等级进行评估,图4是本发明实施例提供的联邦多目标分类系统的结构示意图,如图4所示,该系统包括:
同态加密模块100,用于发起方通过同态加密算法生成公钥和私钥,并将公钥发送至参与方;
在隐私计算领域中,可通过联邦学习实现多方数据的共同模型训练,在模型训练过程中,存在发起方(guest方)及参与方(host方)。
发起方(guest方)拥有发起方数据集X
参与方(host方)拥有参与方数据集X
本实施例中的算法可支持多个参与方(host方)的场景。
首先发起方(guest方)使用同态加密算法生成公钥和私钥,并将公钥发送给参与方(host方)。
计算模块200,用于发起方计算发起方数据集与发起方初始参数的第一乘积,参与方计算参与方数据集与参与方初始参数的第二乘积,发起方接收参与方发送的第二乘积,并计算第一乘积与第二乘积的乘积矩阵,通过乘积矩阵及预测函数得到预测值;
发起方(guest方)计算发起方数据集X
参与方(host方)计算参与方数据集X
发起方(guest方)计算第一乘积P
需要注意的是,第一乘积、第二乘积与乘积矩阵均为矩阵形式。
密文矩阵生成模块300,用于发起方通过标签矩阵与预测值计算梯度更新参数,将梯度更新参数采用公钥加密得到密文矩阵,将密文矩阵发送给参与方;
发起方(guest方)根据标签Y生成标签矩阵α,并根据标签矩阵α和预测值计算梯度更新参数G。
发起方(guest方)使用公钥加密梯度更新参数G,得到密文矩阵[G],并将密文矩阵发送给参与方(host方)。
该梯度更新参数可使类别较少的一方,样本预测错误时,对该错误增加更大的惩罚,以纠正模型学习到的参数空间。
解密模块400,用于参与方计算密文矩阵与参与方数据集的第三乘积密文,掩码加密第三乘积密文得到加密结果,将加密结果发送至发起方,发起方通过私钥解密加密结果后得到解密结果,并将解密结果发送至参与方;
参与方(host方)计算密文矩阵[G]和参与方数据集X
发起方(guest方)收到加密结果[GX
参数更新模块500,用于发起方根据梯度更新参数更新发起方初始参数,参与方根据解密结果更新参与方初始参数;
发起方(guest方)根据梯度更新参数G更新发起方梯度,并通过梯度更行发起方初始参数θ
类别预测模块600,用于重复计算模块、密文矩阵生成模块、解密模块及参数更新模块的步骤,直至预测函数收敛,采用预测函数对待预测数据的类别进行分类,根据分类结果对用户的信用等级进行评估。
采用更新后的发起方参数及更新后的参与方参数重复计算模块、密文矩阵生成模块、解密模块及参数更新模块的步骤,,直至预测函数达到一个理想的状态,此时采用预测函数对待预测数据进行预测,以保证在样本不均衡的情况下,提高模型训练的效率及准确率。例如,在银行风控场景中,通过预测函数对待预测数据(银行客户数据)的类别进行分类后,可以得到用户的标签,如“诈骗”、“老赖”和“正常用户”等标签。根据分类结果(即用户的标签)可以对用户的信用等级进行评估,从而对不同标签的用户进行相应的业务处理,例如调整用户的贷款额度等。
作为一种可选的实施方式,预测函数为:
其中,P′为预测值,P为数据集和参数乘积值组成的乘积矩阵,i∈{1,2,3,…M}为类别信息;P
发起方通过标签矩阵与预测值计算梯度更新参数通过下式计算:
G=α(P′-Y)(1-P′)
其中,G为梯度更新参数,α为控制正负样本正确的权重,γ为调节因子,Y为标签矩阵。
前项函数:
其中,其中2
z
其中,x
在本实施例的联邦学习的过程中,上述前项函数为:
其中,P′为预测值,P为数据集和参数的乘积值组成的乘积矩阵,i为第i个类别,P
更进一步的,乘积矩阵P为样本信息(各方数据集)和权重(各方初始参数)的乘积之和,即P=P
对于前项函数使用交叉熵损失,得到损失函数:
其中,M是类别的数量,y
其中,p
对上述表达式关于w
本实施例的联邦算法中,梯度更新参数表示为:
G=α(P′-Y)(1-P′)
梯度分别表示为GX
作为一种可选的实施方式,图5是本发明实施例提供的参数更新模块中用于更新发起方参数的子模块结构示意图,如图5所示,参数更新模块500包括:
乘积计算子模块5001,用于计算梯度更新参数与发起方数据集的第四乘积;
发起方参数更新子模块5002,用于采用第四乘积更新发起方初始参数。
发起方(guest方)计算梯度更新参数G与发起方数据集X
由于梯度更新参数G是在发起方计算得到的,因此发起方可以直接在计算得到梯度更新参数G后进一步计算得到更新的梯度GX
作为一种可选的实施方式,图6是本发明实施例提供的参数更新模块中用于更新参与方参数的子模块结构示意图,如图6所示,参数更新模块500包括:
掩码解密子模块5003,用于对解密结果采用掩码进行解密,得到第三乘积;
参与方参数更新子模块5004,用于采用第三乘积更新参与方初始参数。
参与方在接收到解密结果GX
第三乘积GX
作为一种可选的实施方式,采用第四乘积更新发起方初始参数,通过下式计算:
θ′
其中,θ′
采用第三乘积更新参与方初始参数,通过下式计算:
θ′
其中,θ′
基于上述求导公式,得到权重w
其中,η为学习率。
本实施例的联邦算法中,
θ′
对于参与方参数进行更新采用下式:
θ′
其中,学习率η可为人工设定的固定值,也可以根据训练过程中的结果进行动态调整,以保证最终的预测准确度。
上述技术方案具有如下有益效果:通过对模型进行参数更新,以保证在样本不均衡的场景下,也可以对模型进行高效的训练;在模型训练过程中,加大对小类别样本预测错误时的惩罚,以调节正负样本在损失函数中的占比,进而保证训练后模型的预测准确度;在联邦学习过程中,对重要数据进行加密后传输,以提高传输安全性;保证具有较高的用户等级评价准确性,且在整个过程中保护用户数据安全。
以上发明的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上内容仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种联邦多任务学习中基于特征提取-子任务分类器的数据标签分类方法及系统
- 基于联邦半监督学习的流量分类方法及系统