模型参数更新方法、装置、设备、存储介质及程序产品
文献发布时间:2023-06-19 11:08:20
技术领域
本发明涉及机器学习技术领域,尤其涉及一种模型参数更新方法、装置、设备、存储介质及程序产品。
背景技术
随着人工智能的发展,人们为解决数据孤岛的问题,提出了“联邦学习”的概念,使得联邦双方在不用给出己方数据的情况下,也可进行模型训练得到模型参数,并且可以避免数据隐私泄露的问题。纵向联邦学习,纵向联邦学习是在参与者的数据特征重叠较小,而用户重叠较多的情况下,取出参与者用户相同而用户数据特征不同的那部分用户及数据进行联合训练机器学习模型。
当前纵向联邦学习的方案是基于不同的参与方之间交换模型输出和模型输出对应的梯度,而传输模型输出对应的梯度有信息泄露的风险,恶意参与方可能会基于梯度信息来推断出其他参与方的原始数据。
发明内容
本发明的主要目的在于提供一种模型参数更新方法、装置、设备、存储介质及程序产品,旨在解决现有通过传输模型输出对应的梯度的纵向联邦学习方案存在信息泄露风险的问题。
为实现上述目的,本发明提供一种模型参数更新方法,所述方法应用于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述方法包括以下步骤:
基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备采用第二模型处理训练数据集后输出的结果;
对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
可选地,所述对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出的步骤包括:
对所述预测损失进行优化以更新所述第一模型中的参数;
基于更新参数后的第一模型和所述原始模型输出更新所述预测损失,并对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出。
可选地,所述预设轮数为1,所述对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出的步骤包括:
计算更新后的预测损失相对于所述原始模型输出的梯度值;
根据所述梯度值对所述原始模型输出进行更新。
可选地,所述基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失的步骤包括:
将所述第一设备中的训练数据集输入所述第一模型进行处理得到本端模型输出;
基于所述本端模型输出和所述原始模型输出计算得到预测结果;
根据所述预测结果和所述第一设备中与所述预测结果对应的真实结果计算得到预测损失。
此外,为实现上述目的,本发明提供一种模型参数更新方法,所述方法应用于参与纵向联邦学习的第二设备,所述第二设备与参与纵向联邦学习的第一设备通信连接,所述方法包括以下步骤:
将所述第二设备中的训练数据集输入所述第二设备中的第二模型进行处理得到原始模型输出;
将所述原始模型输出发送给所述第一设备,以供所述第一设备基于所述第一设备中的第一模型和所述原始模型输出计算得到预测损失,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出,并将更新后的原始模型输出作为优化模型输出返回;
根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数。
可选地,所述根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数的步骤包括:
计算所述原始模型输出与接收到的所述优化模型输出之间的误差函数;
计算所述误差函数相对于所述第二模型中参数的梯度值;
根据所述梯度值更新所述第二模型中的参数。
此外,为实现上述目的,本发明提供一种用户风险预测方法,所述方法应用于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述方法包括以下步骤:
与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型,其中,所述第一设备与所述第二设备交互模型输出为一方向另一方发送模型输出,另一方返回更新后的模型输出;
采用所述本端风险预测模型预测得到待预测用户的风险值。
可选地,所述与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型的步骤包括:
基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备中第二模型处理训练数据集后输出的结果;
对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数;
检测更新参数后的第一模型是否达到预设模型条件;
若达到,则将更新参数后的第一模型作为所述本端风险预测模型;
若未达到,则返回执行所述基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失的步骤。
此外,为实现上述目的,本发明提供一种模型参数更新装置,所述装置部署于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述装置包括:
计算模块,用于基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备采用第二模型处理训练数据集后输出的结果;
更新模块,用于对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
发送模块,用于将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
此外,为实现上述目的,本发明提供一种模型参数更新装置,所述装置部署于参与纵向联邦学习的第二设备,所述第二设备与参与纵向联邦学习的第一设备通信连接,所述装置包括:
处理模块,用于将所述第二设备中的训练数据集输入所述第二设备中的第二模型进行处理得到原始模型输出;
发送模块,用于将所述原始模型输出发送给所述第一设备,以供所述第一设备基于所述第一设备中的第一模型和所述原始模型输出计算得到预测损失,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出,并将更新后的原始模型输出作为优化模型输出返回;
更新模块,用于根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数。
此外,为实现上述目的,本发明提供一种用户风险预测装置,所述装置部署于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述装置包括:
联邦学习模块,用于与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型,其中,所述第一设备与所述第二设备交互模型输出为一方向另一方发送模型输出,另一方返回更新后的模型输出;
预测模块,用于采用所述本端风险预测模型预测得到待预测用户的风险值。
此外,为实现上述目的,本发明还提供一种模型参数更新设备,所述模型参数更新设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的模型参数更新程序,所述模型参数更新程序被所述处理器执行时实现如上所述的模型参数更新方法的步骤。
此外,为实现上述目的,本发明还提供一种用户风险预测设备,所述用户风险预测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的用户风险预测程序,所述用户风险预测程序被所述处理器执行时实现如上所述的用户风险预测方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有模型参数更新程序,所述模型参数更新程序被处理器执行时实现如上所述的模型参数更新方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有用户风险预测程序,所述用户风险预测程序被处理器执行时实现如上所述的用户风险预测方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的模型参数更新方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的用户风险预测方法的步骤。
本发明中,通过第一设备基于第一模型和从第二设备接收到的原始模型输出计算得到预测损失,对预测损失进行优化以更新第一模型中的参数和原始模型输出,将更新后的原始模型输出作为优化模型输出发送给第二设备,以供第二设备根据原始模型输出与优化模型输出之间的误差更新第二模型中的参数,实现了第一设备和第二设备之间通过传递模型输出和更新后的模型输出即可完成纵向联邦学习,从而避免了传递模型输出对应的梯度值所导致的信息泄露风险,提升了纵向联邦学习过程中对各参与设备中隐私数据的保护力度,提升了纵向联邦学习的数据安全性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明模型参数更新方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种参与纵向联邦学习的设备硬件架构图;
图4为本发明实施例涉及的一种模型结构示意图;
图5为本发明实施例涉及的一种第一设备与第二设备进行联合更新参数的数据交互示意图;
图6为本发明模型参数更新装置较佳实施例的功能示意图模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例模型参数更新设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。所述模型参数更新设备是参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接。
如图1所示,该模型参数更新设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对模型参数更新设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及模型参数更新程序。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持模型参数更新程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与参与纵向联邦学习的其他参与方建立通信连接;处理器1001可以用于调用存储器1005中存储的模型参数更新程序,并执行以下操作:
基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备采用第二模型处理训练数据集后输出的结果;
对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
进一步地,所述对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出的步骤包括:
对所述预测损失进行优化以更新所述第一模型中的参数;
基于更新参数后的第一模型和所述原始模型输出更新所述预测损失,并对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出。
进一步地,所述预设轮数为1,所述对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出的步骤包括:
计算更新后的预测损失相对于所述原始模型输出的梯度值;
根据所述梯度值对所述原始模型输出进行更新。
进一步地,所述基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失的步骤包括:
将所述第一设备中的训练数据集输入所述第一模型进行处理得到本端模型输出;
基于所述本端模型输出和所述原始模型输出计算得到预测结果;
根据所述预测结果和所述第一设备中与所述预测结果对应的真实结果计算得到预测损失。
本发明实施例还提出一种模型参数更新设备,所述模型参数更新设备是参与纵向联邦学习的第二设备,所述第二设备与参与纵向联邦学习的第一设备通信连接。所述模型参数更新设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的用户风险预测程序,所述用户风险预测程序被所述处理器执行时实现如下步骤:
将所述第二设备中的训练数据集输入所述第二设备中的第二模型进行处理得到原始模型输出;
将所述原始模型输出发送给所述第一设备,以供所述第一设备基于所述第一设备中的第一模型和所述原始模型输出计算得到预测损失,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出,并将更新后的原始模型输出作为优化模型输出返回;
根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数。
进一步地,所述根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数的步骤包括:
计算所述原始模型输出与接收到的所述优化模型输出之间的误差函数;
计算所述误差函数相对于所述第二模型中参数的梯度值;
根据所述梯度值更新所述第二模型中的参数。
本发明实施例还提出一种用户风险预测设备,所述用户风险预测设备是参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述用户风险预测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的用户风险预测程序,所述用户风险预测程序被所述处理器执行时实现如下步骤:
与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型,其中,所述第一设备与所述第二设备交互模型输出为一方向另一方发送模型输出,另一方返回更新后的模型输出;
采用所述本端风险预测模型预测得到待预测用户的风险值。
进一步地,所述与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型的步骤包括:
基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备中第二模型处理训练数据集后输出的结果;
对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数;
检测更新参数后的第一模型是否达到预设模型条件;
若达到,则将更新参数后的第一模型作为所述本端风险预测模型;
若未达到,则返回执行所述基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失的步骤。
基于上述的结构,提出模型参数更新方法的各实施例。
参照图2,图2为本发明模型参数更新方法第一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明模型参数更新方法应用于参与纵向联邦学习的第一设备,第一设备与参与纵向联邦学习的第二设备通信连接,第一设备和第二设备可以是智能手机、个人计算机和服务器等设备。在本实施例中,模型参数更新方法包括:
步骤S10,基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备采用第二模型处理训练数据集后输出的结果;
在本实施例中,纵向联邦学习中的参与方分为两类,一类是拥有标签数据的数据应用参与方,一类是没有标签数据的数据提供参与方,一般情况下,数据应用参与方有一个,数据提供参与方有一个或多个。各个参与方分别部署有基于各自数据特征构建的数据集和机器学习模型,各个参与方的机器学习模型组合起来构成一个完整的模型,用于完成预测或分类等模型任务。其中,各个参与方的数据集的样本维度是对齐的,也即,各个数据集的样本ID是相同的,但是各个参与方的数据特征可各不相同。各个参与方预先可采用加密样本对齐的方式来构建样本维度对齐的数据集,在此不进行详细赘述。
参与方部署的机器学习模型可以是普通的机器学习模型,例如线性回归模型、神经网络模型等,也可以是自动机器学习中使用的模型,例如搜索网络。搜索网络是指用于进行模型参数更新(NAS)的网络;搜索网络中包括多个单元,每个单元对应一个网络层,其中部分单元之间设置有连接操作,以其中两个单元为例,这两个单元之前的连接操作可以是预先设置的N种连接操作,并定义了每种连接操作对应的权重,该权重即搜索网络的结构参数,单元内的网络层参数即搜索网络的模型参数;在模型训练过程中,需要进行模型参数更新以优化更新结构参数和模型参数,基于最终更新的结构参数即可确定最终的网络结构,即确定保留哪个或哪些连接操作。由于该网络的结构是经过网络搜索之后才确定的,各个参与方不需要像设计传统纵向联邦学习的模型一样去设置模型的网络结构,从而降低了设计模型的难度。
各参与方中模型的参数预先进行初始化设置,再进行多轮联合更新参数,以不断更新各自模型中的参数,提高整个模型的性能,如预测准确率。当各个参与方的模型是普通的机器学习模型时,各轮联合更新参数时所更新的参数为模型参数,例如神经网络中的权重参数。当各个参与方的模型是搜索网络时,各轮联合更新参数时所更新的参数可以是结构参数和/或模型参数。具体地,在本实施例中并不限制对结构参数和模型参数的更新顺序。例如,可以在前几轮联合更新参数时对结构参数进行更新,后几轮联合更新参数时对模型参数进行更新。又如,可以每一轮联合更新参数时都是对结构参数和模型参数一起更新。
在本实施例中,第一设备是拥有标签数据的数据应用参与方,对应地第二设备是没有标签数据的数据提供参与方。为示区分,以下将第一设备中的模型称为第一模型,将第二设备中的模型称为第二模型。
在一轮联合更新参数的过程中,第二设备将其训练数据集输入到第二模型进行处理得到模型输出,为示区分,以下称为原始模型输出;第二设备保存原始模型输出,并将原始模型输出发送给第一设备;第一设备接收到第二设备发送的原始模型输出后,基于第一模型和该原始模型输出计算得到预测损失。
具体地,根据第一模型和第二模型组合成完整模型的组合方式不同,第一设备根据第一模型和原始模型输出计算预测损失的过程不同。例如,在一实施方式中,组合方式为:第一模型的模型输出和第二模型的模型输出相加或相减得到的结果作为完整模型的预测结果。此时,第一设备可将其训练数据集输入到第一模型进行处理得到模型输出,为示区别,以下称为本端模型输出;第一设备将本端模型输出和原始模型输出相加或相减得到预测结果,并根据预测结果和第一设备中与该预测结果对应的真实结果计算得到预测损失。又如,在一实施方式中,组合方式为:完整模型包括第一模型和第二模型,第一模型包括两部分,第一部分的输出结果和第二模型的输出结果均作为第一模型的第二部分的输入,第二部分的输出作为完整模型的预测结果。此时,第一设备可以将其训练数据集输入到第一模型的第一部分进行处理得到模型输出,为示区分,以下称为本端模型输出;第一设备将本端模型输出和原始模型输出输入到第一模型的第二部分进行处理,得到预测结果,并根据预测结果和第一设备中与该预测结果对应的真实结果计算得到预测损失。在其他实施方式中,第一模型和第二模型也可以以其他可行的组合方式组合成完整模型。需要说明的是,预测损失可采用常用的损失函数计算方法计算得到,例如交叉熵损失函数,具体可以根据机器学习模型的类型不同选取不同的损失函数;根据预测结果和真实结果计算预测损失的方法也按照常用损失函数的计算方法,在本实施例中不进行详细赘述。
步骤S20,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
第一设备在计算得到预测损失后,对预测损失进行优化以更新第一模型中的参数和原始模型输出。其中,对预测损失进行优化即最小化预测损失的过程。具体地,优化可以按照梯度下降算法,计算预测损失相对于第一模型中参数的梯度值,采用梯度值更新该参数,以及计算预测损失相对于原始模型输出的梯度值,采用梯度值更新原始模型输出。进一步地,为避免第二设备可以根据原始模型输出和更新后的原始模型输出反向推导出梯度值,在一些实施方式中,第一设备在各轮联合更新参数中采用梯度值更新原始模型输出时所使用的学习率可以不同,或者在一些实施方式中,第一设备可以在本地对预测损失进行多轮优化,也即对第一模型的参数和原始模型输出进行多轮更新,以使得第二设备无法根据原始模型输出和更新后的原始模型输出反向推导出梯度值。
步骤S30,将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
为示区别,将更新后的原始模型输出称为优化模型输出,也即,第一设备将更新后的原始模型输出作为优化模型输出。第一设备将优化模型输出发送给第二设备。第二设备接收到优化模型输出后,根据优化模型输出和之前保存的原始模型输出之间误差更新第二模型中的参数。具体地,第二设备可以计算优化模型输出和原始模型输出之间的误差,再通过最小化误差的方式,来更新第二模型中的参数。其中,最小化误差的方式在本实施例中不作限制,例如可以将误差作为损失函数,采用梯度下降算法来优化误差。
至此,第一设备对第一模型的参数完成了一轮更新,第二设备对第二模型的参数也完成了一轮更新,一轮联合更新参数结束。第一设备和第二设备可以进行多轮联合更新参数,即在一轮联合更新参数结束后,第一设备和第二设备在更新了参数的第一模型和第二模型基础上,再进行下一轮联合更新参数,直到检测到满足预先设定的停止条件时,第一设备和第二设备停止联合更新参数。第一设备和第二设备可采用最终更新参数后的第一模型和第二模型完成预测任务。
如图3所示为一实施方式中参与纵向联邦学习的第一设备和第二设备的硬件架构图,第一设备和第二设备交互模型输出和更新后的模型输出,基于对方发送的模型输出,更新各自模型中的参数。如图4所示,为一实施方式中第一设备和第二设备模型结构示意图,图中Party K是第一设备,Party1~Party K-1是第二设备,Net
在本实施例中,通过第一设备基于第一模型和从第二设备接收到的原始模型输出计算得到预测损失,对预测损失进行优化以更新第一模型中的参数和原始模型输出,将更新后的原始模型输出作为优化模型输出发送给第二设备,以供第二设备根据原始模型输出与优化模型输出之间的误差更新第二模型中的参数,实现了第一设备和第二设备之间通过传递模型输出和更新后的模型输出即可完成纵向联邦学习,从而避免了传递模型输出对应的梯度值所导致的信息泄露风险,提升了纵向联邦学习过程中对各参与设备中隐私数据的保护力度,提升了纵向联邦学习的数据安全性。
进一步地,基于上述第一实施例,提出本发明模型参数更新方法第二实施例,在本实施例中,所述步骤S20包括:
步骤S201,对所述预测损失进行优化以更新所述第一模型中的参数;
在本实施例中,第一设备在计算得到预测损失后,可以对预测损失进行优化以更新第一模型中的参数。其中,对预测损失进行优化即最小化预测损失的过程。具体地,优化可以按照梯度下降算法,计算预测损失相对于第一模型中参数的梯度值,采用梯度值更新该参数。
步骤S202,基于更新参数后的第一模型和所述原始模型输出更新所述预测损失,并对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出。
第一设备在更新第一模型中的参数后,可以基于更新参数后的第一模型和原始模型输出更新预测损失,也即,基于更新参数后的第一模型和原始模型输出重新计算预测损失,计算方法与第一实施例中计算预测损失所采用的方法相同。第一设备对更新后的预测损失进行预设轮数的优化以更新原始模型输出。其中,预设轮数可以是根据需要预先设置的,例如1次或2次,需要说明的是,当预设轮数越大时,第二设备越难以根据更新后的原始模型输出推导出梯度值,同时当预设轮数越大时,更新后的原始模型输出失真程度越大,故预设轮数可以根据具体情况进行合理设置,在保证第二设备推导难度的同时,也保证数据的准确性。具体地,第一设备可以计算更新后的预测损失相对于原始模型输出的梯度值,再采用梯度值更新原始模型输出,再在更新后的原始模型输出的基础上重新计算预测损失,再次计算更新后的预测损失相对于更新后的原始模型输出的梯度值,如此循环迭代,达到预设轮数时停止,得到最终更新后的原始模型输出。
在本实施例中,由于第一设备先更新一次第一模型中的参数,再采用更新参数后的第一模型重新计算预测损失,使得根据更新后的预测损失计算出的原始模型输出的梯度值,不再是原预测损失相对于原始模型输出的梯度值,从而使得当根据梯度值更新原始模型输出,将更新后的原始模型输出发送给第二设备后,第二设备反向推导出的梯度值也不是元素预测损失相对于原始模型输出的梯度值,从而避免了第二设备根据梯度值反向推导出第一设备中训练数据的情况发生,进而进一步提升了纵向联邦学习的数据安全性。
进一步地,所述预设轮数为1,所述步骤S202中对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出的步骤包括:
步骤S203,计算更新后的预测损失相对于所述原始模型输出的梯度值;
步骤S204,根据所述梯度值对所述原始模型输出进行更新。
在一实施方式中,可以采用梯度下降算法对更新后的预测损失进行优化。具体地,当预设轮数为1时,第一设备可以计算更新后的预测损失相对于原始模型输出的梯度值。第一设备根据梯度值对原始模型输出进行更新,例如,原始模型输出采用O表示,原始模型输出的梯度值采用G(O)表示,则更新后的原始模型输出O’=O-γG(O),其中,γ是第一设备根据具体需要预先设置的学习率。
进一步地,所述步骤S10包括:
步骤S101,将所述第一设备中的训练数据集输入所述第一模型进行处理得到本端模型输出;
在一实施方式中,第一设备可将训练数据集输入第一模型进行处理得到模型输出,为示区别以下称为本端模型输出。需要说明的是,通过第一模型对训练数据集进行处理的方式可以参照现有通过机器学习模型处理训练数据的方式,在本实施例中不再详细赘述。
步骤S102,基于所述本端模型输出和所述原始模型输出计算得到预测结果;
第一设备根据本端模型输出和原始模型输出计算得到预测结果。具体地,根据第一模型和第二模型组合成完整模型的组合方式不同,计算预测结果的方式不同。例如,当组合方式是第一模型的模型输出和第二模型的模型输出相加的结果作为完整模型的预测结果时,第一设备可以将本端模型输出和原始模型输出相加得到预测结果。又如,当组合方式是完整模型包括第一模型、第二模型和一个输出层(例如二分类器)时,第一设备可以将本端模型输出和原始模型输出作为输出层的输入,通过输出层的处理得到预测结果。
步骤S103,根据所述预测结果和所述第一设备中与所述预测结果对应的真实结果计算得到预测损失。
第一设备的训练数据集中包括多条训练数据,第一设备中还包括各条训练数据分别对应的真实结果,第一设备在计算得到各条训练数据对应的预测结果后,即可根据各条数据对应的预测结果和各预测结果对应的真实结果计算得到预测损失。在此对预测损失的计算过程不进行展开叙述。
进一步地,基于上述第一和/或第二实施例,提出本发明模型参数更新方法第三实施例,在本实施例中,所述方法应用于参与纵向联邦学习的第二设备,所述第二设备与参与纵向联邦学习的第一设备通信连接,所述方法包括以下步骤:
步骤A10,将所述第二设备中的训练数据集输入所述第二设备中的第二模型进行处理得到原始模型输出;
在本实施例中,第一设备是拥有标签数据的数据应用参与方,对应地第二设备是没有标签数据的数据提供参与方。在一轮联合更新参数的过程中,第二设备将其训练数据集第二模型进行处理,得到原始模型输出;
步骤A20,将所述原始模型输出发送给所述第一设备,以供所述第一设备基于所述第一设备中的第一模型和所述原始模型输出计算得到预测损失,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出,并将更新后的原始模型输出作为优化模型输出返回;
第二设备将原始模型输出发送给第一设备;第一设备接收到第二设备发送的原始模型输出后,基于第一模型和该原始模型输出计算得到预测损失。第一设备在计算得到预测损失后,对预测损失进行优化以更新第一模型中的参数和原始模型输出。第一设备将更新后的原始模型输出作为优化模型输出发送给第二设备。
步骤A30,根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数。
第二设备接收到优化模型输出后,根据优化模型输出和之前保存的原始模型输出之间误差更新第二模型中的参数。
至此,第一设备对第一模型的参数完成了一轮更新,第二设备对第二模型的参数也完成了一轮更新,一轮联合更新参数结束。第一设备和第二设备可以进行多轮联合更新参数,即在一轮联合更新参数结束后,第一设备和第二设备在更新了参数的第一模型和第二模型基础上,再进行下一轮联合更新参数,直到检测到满足预先设定的停止条件时,第一设备和第二设备停止联合更新参数。第一设备和第二设备可采用最终更新参数后的第一模型和第二模型完成预测任务。
需要说明的是,本实施例中具体实施方式的拓展内容可参照上述第一和/或第二实施例,在此不做赘述。
在本实施例中,通过第二设备计算原始模型输出发送给第一设备,第一设备基于第一模型和原始模型输出计算得到预测损失,对预测损失进行优化以更新第一模型中的参数和原始模型输出,将更新后的原始模型输出作为优化模型输出发送给第二设备,第二设备根据原始模型输出与优化模型输出之间的误差更新第二模型中的参数,实现了第一设备和第二设备之间通过传递模型输出和更新后的模型输出即可完成纵向联邦学习,从而避免了传递模型输出对应的梯度值所导致的信息泄露风险,提升了纵向联邦学习过程中对各参与设备中隐私数据的保护力度,提升了纵向联邦学习的数据安全性。
进一步地,在一实施方式中,所述步骤A30包括:
步骤A301,计算所述原始模型输出与接收到的所述优化模型输出之间的误差函数;
第二设备可计算原始模型输出和从第一设备接收到的优化模型输出之间的误差函数。具体地,误差函数可以采用常用误差函数的计算方法,例如均方误差函数(MSE)、绝对值误差函数(MAE),具体计算过程在本实施例中不进行详细赘述。
步骤A302,计算所述误差函数相对于所述第二模型中参数的梯度值;
步骤A303,根据所述梯度值更新所述第二模型中的参数。
计算得到误差函数后,第二设备计算误差函数相对于第二模型中参数的梯度值,也即计算误差函数对第二模型参数的导数。第二设备再根据梯度值更新第二模型中的参数,以完成对第二模型中参数的一轮优化更新。需要说明的是,在各个实施例中,模型的参数都可以有多个,计算多个参数的梯度值,是分别计算每个参数对应的梯度值,进而根据参数所对应的梯度值来更新该参数,实现对各个参数的更新。
在本实施例中,通过由第二设备根据原始模型输出和第一设备发送优化模型输出计算误差函数,并计算误差函数相对于第二模型中参数的梯度值,根据梯度值来更新参数,使得在第一设备向第二设备发送的是优化后的模型输出时,第二设备也能够利用优化后的模型输出对第二模型中的参数进行更新,从而使得纵向联邦学习仍然能够正常进行,且由于第一设备发送的是优化后的模型输出而不是模型输出对应的梯度值,使得第二设备无法根据梯度值来反向推导出第一设备中的原始训练数据,从而进一步地提高了纵向联邦学习的数据安全性。
进一步地,基于上述第一、第二和/或第三实施例,提出本发明用户风险预测方法第四实施例,在本实施例中,所述方法应用于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述方法包括以下步骤:
步骤B10,与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型,其中,所述第一设备与所述第二设备交互模型输出为一方向另一方发送模型输出,另一方返回更新后的模型输出;
在本实施例中,第一设备与第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型。具体地,第一设备和第二设备中可以预先设置用于进行纵向联邦学习的训练数据集,两个训练数据集在用户维度上相同,在特征维度上不同,以下将第一设备中训练数据集的数据特征称为第一数据特征,将第二设备中训练数据集的数据特征称为第二数据特征;第一数据特征和第二数据特征可以是与用户风险相关的特征,其中,用户风险可以是贷款前的借款风险、贷款后的还款风险等,与用户风险有关的特征可以是用户的历史违约次数、历史贷款次数、年收入等等;第一设备和第二设备中其中一方还可以设置与各个用户对应的标签数据,根据具体的风险预测任务不同,标签数据可以不同,例如风险预测任务是预测用户违约的风险大小,则标签数据可以是表示用户违约风险大小的数据。
例如,在一实施方式中,第一设备可以是部署于银行的设备,存储有银行的用户数据,用户数据涉及到的数据特征是与银行的贷款业务相关的数据特征;第二设备可以是部署于电商机构的设备,存储有电商机构的用户数据,用户数据涉及到的数据特征是电商业务相关的数据特征;银行想要训练一个预测用户贷款后还款风险的预测模型,则可以由第一设备和第二设备采用各自的用户数据构建训练数据集,通过纵向联邦学习联合训练用户风险预测模型。
在纵向联邦学习的各轮联合更新参数过程中,第一设备与第二设备交互的是模型输出,也即,一方向另一方发送模型输出,另一方返回更新后的模型输出,通过交互模型输出,两方完成对各自模型中参数的更新。在纵向联邦学习结束后,第一设备将其更新后的模型作为本端风险预测模型,对应地,第二设备也可将其更新后的模型作为他端风险预测模型。需要说明的是,纵向联邦学习的其他具体过程可以参照现有的纵向联邦学习方法,在本实施例中不进行详细赘述。
在一实施方式中,第一设备可以是拥有标签数据的数据应用参与方,对应地第二设备是没有标签数据的数据提供参与方。在一轮联合更新参数中,第二设备向第一设备发送模型输出,第一设备返回给第二设备更新后的该模型输出,第一设备和第二设备依据对方发送的数据完成对各自模型中参数的更新。具体实施方式的扩展内容可参照上述第一、第二和/或第三实施例,在此不进行详细赘述。
在一实施方式中,第一设备可以是没有标签数据的数据提供参与方,对应的第二设备是拥有标签数据的数据应用参与方。在一轮联合更新参数中,第一设备向第二设备发送模型输出,第二设备返回给第一设备更新后的该模型输出,第一设备和第二设备依据对方发送的数据完成对各自模型中参数的更新。将第一设备与上述第一、第二和/或第三实施例中的第二设备相对应,将第二设备与上述第一、第二和/或第三实施例中的第一设备相对应后,具体实施方式的扩展内容可参照上述第一、第二和/或第三实施例,在此不进行详细赘述。
步骤B20,采用所述本端风险预测模型预测得到待预测用户的风险值。
第一设备在获得本端风险预测模型后,可采用本端风险预测模型预测待预测用户的风险值。具体地,第一设备可以采用本端风险预测模型,联合第二设备中的他端风险预测模型进行预测得到待预测用户的风险值。其中,风险值的数据形式可以是根据风险预测任务的需求而设置,例如,风险值可以是一个表示用户的风险程度大小的值,也可以是可贷款金额。
在一实施方式中,第二设备可以将他端风险预测模型发送给第一设备,第一设备将待预测用户在第一数据特征下的用户数据输入到本端风险预测模型得到一个模型输出,再将待预测用户在第二数据特征下的用户数据输入到他端风险预测模型得到一个模型输出,根据两个模型输出得到待预测用户的风险值,例如,将两个模型直接相加。在另一实施方式中,若第一设备是拥有标签数据的数据应用参与方,则第一设备将待预测用户在第一数据特征下的用户数据输入到本端风险预测模型得到一个模型输出;第二设备将待预测用户在第二数据特征下的用户数据输入到他端风险预测模型得到一个模型输出,并发送给第一设备;第一设备根据两个模型输出计算得到待预测用户的风险值,例如第一设备的本端风险预测模型包括如图4所示的Net
在本实施例中,第一设备通过与第二设备交互模型输出进行纵向联邦学习得到本端风险预测模型,并采用本端风险预测模型预测得到待预测用户的风险值,避免了第二设备在纵向联邦学习过程中通过梯度值反向推导出第一设备中原始用户数据的情况,从而提高了第一设备与第二设备联合进行用户风险预测的数据安全性,进一步地保护了第一设备中用户数据的隐私安全。
进一步地,所述步骤B10包括:
步骤B101,基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备中第二模型处理训练数据集后输出的结果;
在一实施方式中,第一设备可以是拥有标签数据的数据应用参与方,对应地第二设备是没有标签数据的数据提供参与方。在一轮联合更新参数过程中,第二设备将其训练数据集输入到第二模型进行处理得到原始模型输出;第二设备保存原始模型输出,并将原始模型输出发送给第一设备;第一设备接收到第二设备发送的原始模型输出后,基于第一模型和该原始模型输出计算得到预测损失。
步骤B102,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
步骤B103,将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
第一设备在计算得到预测损失后,对预测损失进行优化以更新第一模型中的参数和原始模型输出。第一设备将更新后的原始模型输出作为优化模型输出发送给第二设备。第二设备接收到优化模型输出后,根据优化模型输出和之前保存的原始模型输出之间误差更新第二模型中的参数。需要说明的是,本实施例中具体实施方式的拓展内容可参照上述第一和/或第二实施例,在此不做赘述。
步骤B104,检测更新参数后的第一模型是否达到预设模型条件;
步骤B105,若达到,则将更新参数后的第一模型作为所述本端风险预测模型;
步骤B106,若未达到,则返回执行所述步骤B101。
第一设备在完成一轮联合更新参数后,可以检测更新参数后的第一模型是否达到预设模型条件。其中,预设模型条件可以是预测损失收敛,联合更新参数的时长达到预设时长,或联合更新参数的轮次达到预设轮数。其中,检测预测损失是否收敛的方式可按照现有的损失函数收敛检测方法,在此不进行详细赘述。预设时长和预设轮数可以根据具体需要进行设置。
若第一设备检测到第一模型达到预设模型条件,则第一设备可将更新参数后的第一模型作为本端风险预测模型。进一步地,第一设备可以发送结束指令给第二设备,第二设备根据结束指令结束联邦学习,将更新参数后的第二模型作为他端风险预测模型。
若第一设备检测到第一模型未达到预设模型条件,则第一设备可以返回执行步骤B101,也即,第一设备联合第二设备进行下一轮的联合更新参数。进一步地,第一设备可以发送用于指示开始下一轮联合更新参数的指令给第二设备,以供第二设备根据指令开始下一轮联合更新参数。
此外本发明实施例还提出一种模型参数更新装置,参照图6,所述装置部署于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述装置包括:
计算模块10,用于基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备采用第二模型处理训练数据集后输出的结果;
更新模块20,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
发送模块30,将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数。
进一步地,所述更新模块20包括:
第一更新单元,用于对所述预测损失进行优化以更新所述第一模型中的参数;
第二更新单元,用于基于更新参数后的第一模型和所述原始模型输出更新所述预测损失,并对更新后的预测损失进行预设轮数的优化以更新所述原始模型输出。
进一步地,所述预设轮数为1,所述第二更新单元包括:
计算子单元,用于计算更新后的预测损失相对于所述原始模型输出的梯度值;
更新子单元,用于根据所述梯度值对所述原始模型输出进行更新。
进一步地,所述计算模块10包括:
处理单元,用于将所述第一设备中的训练数据集输入所述第一模型进行处理得到本端模型输出;
第一计算单元,用于基于所述本端模型输出和所述原始模型输出计算得到预测结果;
第二计算单元,用于根据所述预测结果和所述第一设备中与所述预测结果对应的真实结果计算得到预测损失。
本发明模型参数更新装置的具体实施方式的拓展内容与上述模型参数更新方法各实施例基本相同,在此不做赘述。
此外本发明实施例还提出一种模型参数更新装置,所述装置部署于参与纵向联邦学习的第二设备,所述第二设备与参与纵向联邦学习的第一设备通信连接,所述装置包括:
处理模块,用于将所述第二设备中的训练数据集输入所述第二设备中的第二模型进行处理得到原始模型输出;
发送模块,用于将所述原始模型输出发送给所述第一设备,以供所述第一设备基于所述第一设备中的第一模型和所述原始模型输出计算得到预测损失,对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出,并将更新后的原始模型输出作为优化模型输出返回;
更新模块,用于根据所述原始模型输出与接收到的所述优化模型输出之间的误差更新所述第二模型中的参数。
进一步地,所述更新模块包括:
第一计算单元,用于计算所述原始模型输出与接收到的所述优化模型输出之间的误差函数;
第二计算单元,用于计算所述误差函数相对于所述第二模型中参数的梯度值;
更新单元,用于根据所述梯度值更新所述第二模型中的参数。
本发明模型参数更新装置的具体实施方式的拓展内容与上述模型参数更新方法各实施例基本相同,在此不做赘述。
此外本发明实施例还提出一种用户风险预测装置,所述装置部署于参与纵向联邦学习的第一设备,所述第一设备与参与纵向联邦学习的第二设备通信连接,所述装置包括:
联邦学习模块,用于与所述第二设备通过交互模型输出进行纵向联邦学习得到本端风险预测模型,其中,所述第一设备与所述第二设备交互模型输出为一方向另一方发送模型输出,另一方返回更新后的模型输出;
预测模块,用于采用所述本端风险预测模型预测得到待预测用户的风险值。
进一步地,所述联邦学习模块包括:
计算单元,用于基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失,其中,所述原始模型输出为所述第二设备中第二模型处理训练数据集后输出的结果;
更新单元,用于对所述预测损失进行优化以更新所述第一模型中的参数和所述原始模型输出;
发送单元,用于将更新后的原始模型输出作为优化模型输出发送给所述第二设备,以供所述第二设备根据所述原始模型输出与所述优化模型输出之间的误差更新所述第二模型中的参数;
检测单元,用于检测更新参数后的第一模型是否达到预设模型条件;
确定单元,用于若达到,则将更新参数后的第一模型作为所述本端风险预测模型;
返回单元,用于若未达到,则返回执行所述基于所述第一设备中的第一模型和从所述第二设备接收到的原始模型输出计算得到预测损失的步骤。
本发明用户风险预测装置的具体实施方式的拓展内容与上述用户风险预测方法各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有模型参数更新程序,所述模型参数更新程序被处理器执行时实现如上所述的模型参数更新方法的步骤。本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的模型参数更新方法的步骤。本发明模型参数更新设备、计算机可读存储介质和计算机产品的各实施例,均可参照本发明模型参数更新方法各实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有用户风险预测程序,所述用户风险预测程序被处理器执行时实现如上所述的用户风险预测方法的步骤。本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的用户风险预测方法的步骤。本发明用户风险预测设备、计算机可读存储介质和计算机产品的各实施例,均可参照本发明用户风险预测方法各实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 模型参数更新方法、装置、设备、存储介质及程序产品
- 模型参数调整的方法、设备、存储介质及程序产品