本发明涉及金融科技(fintech)技术领域,尤其涉及纵向联邦学习优化方法、装置、设备及存储介质。
背景技术:
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。例如,联邦学习中的纵向线性回归方法,现有的纵向线性回归方案是基于一阶梯度信息的随机梯度下降方法。以两方参与的纵向联邦线性回归为例,如设定a方和b方,a方为host(主人)方,只有数据的部分特征,b方为guest(客人)方,拥有一部分和a完全不同的数据特征,同时拥有数据标签。b方需要向a方请求当前模型参数与数据的内积用于计算损失函数值和梯度,这个过程中涉及到a方把自己加密的计算数据传给b方,在b方计算出加密的系数,通过该系数ab两方可以算出各自对应的梯度分量,传给第三方c进行解密和处理后发送回a和b两方作为下降方向,更新ab两方各自持有的模型参数,迭代这个步骤从而a和b能够得到训练好的模型。现有的方案基于目标损失函数的一阶梯度信息进行迭代优化,其收敛速度较慢,这导致abc之间需要大量轮数的数据交互,在跨企业合作中通信占用大量时间。
技术实现要素:
本发明的主要目的在于提出一种纵向联邦学习优化方法、装置、设备及存储介质,旨在解决目前进行纵向联邦学习时,耗时长的技术问题。
为实现上述目的,本发明提供一种纵向联邦学习优化方法,所述纵向联邦学习优化方法包括如下步骤:
副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;
将所述损失函数值和所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;
接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
可选地,所述副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,包括:
检测纵向联邦模型是否满足预设判定条件;
若满足,则副参与者获取所述主参与者发送的主加密数值和新加密数值,并将所述主加密数值和所述新加密数值作为所述主参与者发送的具有线性回归值的加密数值集合。
可选地,所述根据所述加密数值集合计算副加密数据的步骤,包括:
确定所述副参与者对应的当前迭代次数是否满足预设次数条件,
若满足,则根据所述加密数值集合计算中间结果值,并通过所述中间结果值计算副加密数据。
可选地,所述根据所述加密数值集合计算中间结果值,并通过所述中间结果值计算副加密数据的步骤,包括:
基于所述加密数值集合获取所述副参与者中本地模型参数的当前平均值,并获取所述当前平均值之前预设步数间隔的历史平均值;
计算所述当前平均值和所述历史平均值之间的差值,并根据所述差值计算中间结果值,通过所述中间结果值计算副加密数据。
可选地,所述接收所述协调者基于所述副加密数据发送的目标副梯度值的步骤,包括:
接收所述协调者基于所述副加密数据发送的目标副梯度值,其中,所述目标副梯度值由所述协调者根据目标数据更新的二阶导数矩阵获取的,所述目标数据为响应于纵向逻辑回归模型未收敛,且满足预设判定条件,将所述主加密数据和所述副参与者发送的副加密数据进行解密合并得到的。
可选地,所述接收所述协调者反馈的目标副梯度值的步骤,包括:
接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值由所述协调者对第一目标乘积进行拆分得到的,所述第一目标乘积为根据响应于所述纵向逻辑回归模型满足所述预设判定条件而更新的二阶导数矩阵、所述主参与者发送的主梯度值和所述副参与者发送的副梯度值合并的长向量,和预设步长之间的乘积。
可选地,所述接收所述协调者反馈的目标副梯度值的步骤,包括:
接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值为第二目标乘积,所述第二目标乘积为所述协调者响应于纵向逻辑回归模型未收敛,且不满足预设判定条件,计算的所述主参与者发送的主梯度值和预设的步长之间的乘积。
此外,本发明还提供一种纵向联邦学习优化方法包括如下步骤:
接收主参与者发送的主加密数据和副参与者发送的副加密数据,其中,所述副加密数据为根据所述副参与者中的中间结果值计算的,所述中间结果值为所述副参与者根据所述主参与者发送加密数值集合计算的,所述加密数值集合包括主加密数值和新加密数值;
响应于纵向逻辑回归模型未收敛,根据所述主加密数据和所述副加密数据更新二阶导数矩阵,并根据所述更新后的二阶导数矩阵计算目标副梯度值;
将所述目标副梯度值发送给所述副参与者,所述副参与者用于基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行所述副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
可选地,所述根据所述主加密数据和所述副加密数据更新二阶导数矩阵的步骤,包括:
判断所述纵向逻辑回归模型是否满足所述预设判定条件;
若满足,则将所述主加密数据和所述副加密数据进行解密合并,以获取目标数据;
将所述目标数据存储至预设长度的队列中,以获取目标队列,并通过所述目标队列对二阶导数矩阵进行更新。
可选地,所述判断所述纵向逻辑回归模型是否满足所述预设判定条件的步骤之后,包括:
若不满足,则所述协调者获取所述副参与者发送的副梯度值和预设的步长之间的第一乘积,并将所述第一乘积作为目标副梯度值发送至所述副参与者。
此外,为实现上述目的,本发明还提供一种纵向联邦学习优化装置,所述纵向联邦学习优化装置包括:
获取模块,用于副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;
发送模块,用于将所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;
第一接收模块,用于接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
可选地,所述纵向联邦学习优化装置还包括:
第二接收模块,用于接收主参与者发送的主加密数据和副参与者发送的副加密数据,其中,所述副加密数据为根据所述副参与者中的中间结果值计算的,所述中间结果值为所述副参与者根据所述主参与者发送加密数值集合计算的,所述加密数值集合包括主加密数值和新加密数值;
更新模块,用于响应于纵向逻辑回归模型未收敛,根据所述主加密数据和所述副加密数据更新二阶导数矩阵,并根据所述更新后的二阶导数矩阵计算目标副梯度值;
收敛模块,用于将所述目标副梯度值发送给所述副参与者,所述副参与者用于基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行所述副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
此外,为实现上述目的,本发明还提供一种纵向联邦学习优化设备,所述纵向联邦学习优化设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的纵向联邦学习优化程序,所述纵向联邦学习优化程序被所述处理器执行时实现如上所述的纵向联邦学习优化方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有纵向联邦学习优化程序,所述纵向联邦学习优化程序被处理器执行时实现如上所述的纵向联邦学习优化方法的步骤。
本发明通过副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;将所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。通过在副参与者获取到主参与者的加密数值集合后,计算并发送损失函数值和副加密数据至协调者,以便协调者根据损失函数值确定纵向联邦模型是否收敛,若未收敛,则根据副加密数据对二阶导数矩阵进行更新,并根据更新后的二阶导数矩阵计算目标副梯度值,再通过目标副梯度值更新副参与者的本地模型参数,从而避免了现有技术进行纵向联邦学习采用一阶算法而使得收敛速度较慢,需要进行大量轮次的数据交互的现象发生,减少了进行纵向联邦学习的通信量,提高了进行纵向联邦逻辑回归模型训练时的收敛速度,也就是减少了进行纵向联邦学习的时间。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明纵向联邦学习优化方法第一实施例的流程示意图;
图3为本发明纵向联邦学习优化方法另一实施例的流程示意图;
图4为本发明纵向联邦学习优化装置的装置模块示意图;
图5为本发明纵向联邦学习优化方法计算与交互的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例纵向联邦学习优化设备可以是pc机或服务器设备,其上运行有java虚拟机。
如图1所示,该纵向联邦学习优化设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及纵向联邦学习优化程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的纵向联邦学习优化程序,并执行下述纵向联邦学习优化方法中的操作。
基于上述硬件结构,提出本发明纵向联邦学习优化方法实施例。
参照图2,图2为本发明纵向联邦学习优化方法第一实施例的流程示意图,所述方法包括:
步骤s10,副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;
线性回归是一种基于线性模型去拟合数据特征(自变量)和数据标签(因变量)的方法。纵向联邦线性回归是指多个参与方希望将数据联合起来进行线性回归建模,但是各自持有一部分不同的数据特征,而数据标签往往只有一方拥有。因此,在本实施例中,主参与者只有数据的部分特征,而副参与者拥有一部分和主参与者完全不同的数据特征。线性回归(linearregression)的模型训练是在给定数据特征与标签(xi,yi)下通过最小化损失函数l(w)=∑i||wtxi-yi||2来得到模型参数w的过程。纵向联邦学习是指不同方各自拥有不同的特征数据,相当于把每一条完整的数据纵向切分成了多个部分,各方希望在保护数据隐私的情况下实现线性回归模型的训练,从而利用模型参数在新数据上对因变量值进行预测。本方案采用满足加法同态的加密方法,即[[ax]]=a[[x]],[[x]]+[[y]]=[[x+y]]。这里[[·]]代表同态加密操作。纵向联邦场景中只有一方持有数据标签,以两方为例,a方持有数据xa,维护对应的模型参数wa,b方持有xb,yb,拥有并维护对应的模型参数wb。
为了实现纵向联邦线性回归,需要计算损失函数值与梯度,分别为:
本方案利用二阶信息提出了一种快速收敛的技术方案,基于损失函数的二阶导数矩阵(即海森矩阵)
b方计算出对应数据id在s里的数值集合ub,ub2。b方利用同态加密的性质,计算出加密的loss(损失函数值)值,即
步骤s20,将所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;
ab两方各自利用同态加密的性质对每个[[d]]值乘以对应数据xa,xb,然后对得到的向量集合求和,计算出加密的梯度值[[ga]]=∑[[d]]xa,[[gb]]=∑[[d]]xb。b端将加密的loss值传给c端。a、b分别将[[ga]],[[gb]]传输给c。然后,判断当前迭代次数k与l的关系。如果当前迭代次数k是l的整数倍,且迭代次数k大于2l,则a、b两端分别根据中间结果值[[h]]计算出主加密数据和副加密数据[[va]]=∑[[h]]xa,[[vb]]=∑[[h]]xb,并传输给c方。c方(即协调者)对收到的数据进行解密,得到ga,gb,loss。根据loss判断纵向线性回归模型是否收敛,如果收敛,则发送迭代停止信号给a、b,结束算法。若未收敛,更新
如果k是l的整数倍,则c还收到了加密数据[[va]],[[vb]],将其进行解密后合并可以得到
ρ[j]=1/(v[j]ts[j]),h←(i-ρ[j]s[j]v[j]t)h(i-ρ[j]v[j]s[j]t)+ρ[j]s[j]s[j]t。
步骤s40,接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
在副参与者接收到协调者发送的目标副梯度值后,会根据目标副梯度值更新副参与者自身的本地模型参数,同时在主参与者接收到协调者发送到的目标主梯度值后,也会根据该乘积更新主参与者自身的模型参数。即ab两方分别用收到的未加密的向量来更新自己的本地模型参数,即:
并根据更新后的本地模型参数和公式
另外,为辅助理解本实施例中进行纵向联邦学习优化的流程,下面进行举例说明。
例如,如图5所示,存在有a、b、c三方进行模型训练,其中a方为主参与者,b方为副参与者,c方为协调者。a方本地计算与传输数据给b方,也就是将加密的
并且ab两方根据c方传递的未加密的向量来更新本地的模型参数,即
在本实施例中,通过副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;将所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。通过在副参与者获取到主参与者的加密数值集合后,计算并发送损失函数值和副加密数据至协调者,以便协调者根据损失函数值确定纵向联邦模型是否收敛,若未收敛,则根据副加密数据对二阶导数矩阵进行更新,并根据更新后的二阶导数矩阵计算目标副梯度值,再通过目标副梯度值更新副参与者的本地模型参数,从而避免了现有技术进行纵向联邦学习采用一阶算法而使得收敛速度较慢,需要进行大量轮次的数据交互的现象发生,减少了进行纵向联邦学习的通信量,提高了进行纵向联邦逻辑回归模型训练时的收敛速度。
进一步地,基于本发明纵向联邦学习优化方法第一实施例,提出本发明纵向联邦学习优化方法第二实施例。本实施例是本发明第一实施例的步骤s10,副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤的细化,包括:
步骤a,检测纵向联邦模型是否满足预设判定条件;
在本实施例中,在主参与者向副参与者发送数据时,还需要检测纵向联邦模型是否满足预设判定条件,例如判断纵向联邦模型的新迭代次数是否满足预设次数条件(如确定新迭代次数是否为迭代步数间隔的整数倍,且是否大于两倍大于预设次数)。并根据不同的判断结果执行不同的操作。并根据不同的检测结果执行不同的操作。
步骤b,若满足,则副参与者获取所述主参与者发送的主加密数值和新加密数值,并将所述主加密数值和所述新加密数值作为所述主参与者发送的具有线性回归值的加密数值集合。
在主参与者中,先获取一小批数据,并根据上述实施例提及的公式
在本实施例中,通过在确定纵向联邦模型满足预设判定条件时,副参与者获取到主参与者发送的主加密数值和副加密数值,并将其作为具有线性回归值的加密数值集合,从而提高了纵向线性回归模型的训练速度。
进一步地,根据所述加密数值集合计算副加密数据的步骤,包括:
步骤c,确定所述副参与者对应的当前迭代次数是否满足预设次数条件,
当在副参与者中获取到主参与者发送的副加密数值集合后,还需要判断副参与者自身模型的当前迭代次数(也就是更新次数)是否满足预设次数条件,并根据不同的判断结果执行不同的操作。
步骤d,若满足,则根据所述加密数值集合计算中间结果值,并通过所述中间结果值计算副加密数据。
当经过判断发现当前迭代次数满足预设次数条件时,如当前迭代次数k是l的整数倍,且迭代次数k大于2l:b端更新
在本实施例中,通过在确定副参与者对应的当前迭代次数满足预设次数条件时,根据加密数值集合计算中间结果值,并通过中间结果值计算副加密数据,从而保障了获取到副加密数据的准确性。
具体地,根据所述加密数值集合计算中间结果值,并通过所述中间结果值计算副加密数据的步骤,包括:
步骤e,基于所述加密数值集合获取所述副参与者中本地模型参数的当前平均值,并获取所述当前平均值之前预设步数间隔的历史平均值;
在副参与者获取到主参与者发送的加密数值集合后,还会获取副参与者中本地模型参数的当前平均值
步骤f,计算所述当前平均值和所述历史平均值之间的差值,并根据所述差值计算中间结果值,通过所述中间结果值计算副加密数据。
当获取到当前平均值和历史平均值后,还需要计算两者之间的差值,也就是计算本次(t)与上次(t-1)的
在本实施例中,通过驾驶副参与者中当前平均值和历史平均值之间的差值,并根据差值计算中间结果值,通过中间结果值计算副加密数据,从而保障了获取到副加密数据的准确性。
进一步地,基于本发明纵向联邦学习优化方法第一至第二任意一个实施例的基础上,提出本发明纵向联邦学习优化方法第三实施例。本实施例是本发明第一实施例的步骤s30,接收所述协调者基于所述副加密数据发送的目标副梯度值的步骤的细化,包括:
步骤g,接收所述协调者基于所述副加密数据发送的目标副梯度值,其中,所述目标副梯度值由所述协调者根据目标数据更新的二阶导数矩阵获取的,所述目标数据为响应于纵向逻辑回归模型未收敛,且满足预设判定条件,将所述主加密数据和所述副参与者发送的副加密数据进行解密合并得到的。
在副参与者接收到协调者反馈的目标副梯度值时,可以根据此目标副梯度值更新自身的本地模型参数,其中,目标副梯度值是协调者在确定纵向逻辑回归模型不收敛,且满足预设判定条件时,根据目标数据对二阶导数矩阵进行更新,并根据已进行更新的二阶导数矩阵进行计算获取的,其中,目标数据是在纵向逻辑回归模型未收敛,且满足预设判定条件时,将主参与者发送的主加密数据和副参与者发送的副加密数据进行解密合并得到的。而判断纵向逻辑回归模型是否满足预设判定条件,可以是例如判断纵向逻辑回归模型的新迭代次数是否满足预设次数条件(如确定新迭代次数是否为迭代步数间隔的整数倍,且是否大于两倍大于预设次数)。并根据不同的判断结果执行不同的操作。
在本实施例中,通过确定目标副梯度值是根据目标数据和更新的二阶导数矩阵获取的,并且目标数据是主加密数据和副加密数据进行合并得到的,从而保障了获取的目标副梯度值的准确性。
进一步地,接收所述协调者反馈的目标副梯度值的步骤,包括:
步骤h,接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值由所述协调者对第一目标乘积进行拆分得到的,所述第一目标乘积为根据响应于所述纵向逻辑回归模型满足所述预设判定条件而更新的二阶导数矩阵、所述主参与者发送的主梯度值和所述副参与者发送的副梯度值合并的长向量,和预设步长之间的乘积。
在副参与者接收到协调者反馈的目标副梯度值时,可以根据此目标副梯度值更新自身的本地模型参数,其中,目标副梯度值是由协调者对第一目标乘积进行拆分得到的,而第一目标乘积是纵向逻辑回归模型未收敛且满足预设判定条件时,根据已更新的二阶导数矩阵、主参与者发送的主梯度值和副参与者发送的副梯度值合并的长向量、预设的步长进行计算的乘积。
在本实施例中,通过确定目标副梯度值是协调者对第一目标乘积进行拆分得到的,而第一目标乘积是长向量、预设步长和更新的二阶导数矩阵的乘积,从而保障了获取到的目标副梯度值的准确性。
进一步地,接收所述协调者反馈的目标副梯度值的步骤,包括:
步骤k,接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值为第二目标乘积,所述第二目标乘积为所述协调者响应于纵向逻辑回归模型未收敛,且不满足预设判定条件,计算的所述副参与者发送的副梯度值和预设的步长之间的乘积。
在副参与者接收到协调者反馈的目标副梯度值时,可以根据此目标副梯度值更新自身的本地模型参数,其中,目标副梯度值是第二乘积,第二乘积是协调者在纵向逻辑回归模型未收敛,且不满足预设判定条件时,对副参与者发送的副梯度值和预设的步长之间进行计算,以获取其乘积,该乘积就是第二乘积,也就是目标副梯度值。
在本实施例中,通过确定目标副梯度值时在纵向逻辑回归模型未收敛,且不满足预设判定条件时,计算预设的步长和副梯度值的乘积,从而保障了获取到的目标主梯度值的准确性。
进一步地,参照图3,图3为本发明纵向联邦学习优化方法另一实施例的流程示意图,包括:
步骤s100,接收主参与者发送的主加密数据和副参与者发送的副加密数据,其中,所述副加密数据为根据所述副参与者中的中间结果值计算的,所述中间结果值为所述副参与者根据所述主参与者发送加密数值集合计算的,所述加密数值集合包括主加密数值和新加密数值;
在协调者中当根据副参与者发送的损失函数值确定纵向逻辑回归模型未收敛,且满足预设判定条件时,例如判断纵向逻辑回归模型的新迭代次数是否满足预设次数条件(如确定新迭代次数是否为迭代步数间隔的整数倍,且是否大于两倍大于预设次数),若满足预设次数条件,则确定纵向逻辑回归模型满足预设判定条件时,在接收到主参与者发送的主加密数据和副参与者发送的副加密数据后,根据主加密数据和副加密数据更新二阶导数矩阵。其中,副加密数据是副参与者基于主参与者发送的目标数值集合反馈的中间结果值计算得到的,也就是主参与者发送加密数值集合到副参与者,副参与者根据加密数值集合计算出中间结果值和损失函数值,并将损失函数值发送至协调者,根据中间结果值计算出副加密数据,并将副加密数据发送至协调者。其中,加密数值集合可以包括数据对应的主加密数值和新数据对应的新加密数值,也就是在主参与者对应的当前迭代次数是否满足预设条件(如当前迭代次数是否经过预设次数),若不满足,则可以将主加密数值作为目标数值集合,若满足,则可以将主加密数值和新加密数值作为加密数值集合。并且在本申请中数据加密的方式可以是采用同态加密的方式。
步骤s200,响应于纵向逻辑回归模型未收敛,根据所述主加密数据和所述副加密数据更新二阶导数矩阵,并根据所述更新后的二阶导数矩阵计算目标副梯度值;
在协调者检测到纵向逻辑回归模型未收敛时,可以根据主参与者发送的主加密数据和副参与者发送的副加密数据来更新二阶导数矩阵,也就是将主加密数据和副加密数据进行解密合并,并将其存储在一个预设长度的队列中,得到目标队列,并根据此目标队列来更新二阶导数矩阵h,其中,计算h的方法为利用存储器队列末尾的值初始化,即计算
并且在本实施例中,若纵向逻辑回归模型未收敛,则更新
步骤s300,将所述目标副梯度值发送给所述副参与者,所述副参与者用于基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行所述副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
在协调者计算得到目标副梯度值后,会将此目标副梯度值发送给副参与者,副参与者会根据此目标副梯度值来更新副参与者中的本地模型参数,并会继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合,直至协调者对应的纵向逻辑回归模型收敛,并发送迭代停止信号到主参与者和副参与者。同理主参与者也接收协调者反馈的主参与者对应的目标主梯度值以更新主参与者中的本地模型参数。
在本实施例中,通过协调者根据主加密数据和副加密数据更新二阶导数矩阵,并根据更新的二阶导数矩阵计算目标副梯度值,将目标副梯度值发送至副参与者,以更新副参与者中的本地模型参数,从而避免了现有技术进行纵向联邦学习采用一阶算法而使得收敛速度较慢,需要进行大量轮次的数据交互的现象发生,减少了进行纵向联邦学习的通信量。
进一步地,根据所述主加密数据和所述副加密数据更新二阶导数矩阵的步骤,包括:
步骤m,判断所述纵向逻辑回归模型是否满足所述预设判定条件;
在协调者接收到主参与者发送的主梯度值和副协调者发送的副梯度值、损失值,并确定纵向逻辑回归模型不收敛后,需要判断纵向逻辑回归模型是否满足预设判定条件,例如判断纵向逻辑回归模型的新迭代次数是否满足预设次数条件(如确定新迭代次数是否为迭代步数间隔的整数倍,且是否大于两倍大于预设次数)。并根据不同的判断结果执行不同的操作。
步骤n,若满足,则将所述主加密数据和所述副加密数据进行解密合并,以获取目标数据;
当经过判断发现纵向逻辑回归模型满足预设判定条件时,则协调者在接收到主参与者发送的主加密数据和副参与者发送的副加密数据后,进行解密合并得到目标数据,也就是将加密数据[[va]],[[vb]]进行解密后合得到目标数据
步骤p,将所述目标数据存储至预设长度的队列中,以获取目标队列,并通过所述目标队列对二阶导数矩阵进行更新。
协调者将目标数据存储在一个长度为m(即预设长度)的v队列中。同时,计算本次(t)与上次(t-1)的
利用存储器队列末尾的值初始化,即计算
在本实施例中,通过将主加密数据和副加密数据进行解密合并得到目标数据,再根据目标数据对二阶导数矩阵进行更新,从而保障了二阶导数矩阵更新的有效性。
进一步地,判断所述纵向逻辑回归模型是否满足所述预设判定条件的步骤之后,包括:
步骤x,若不满足,则所述协调者获取所述副参与者发送的副梯度值和预设的步长之间的第一乘积,并将所述第一乘积作为目标副梯度值发送至所述副参与者。
当经过判断发现纵向逻辑回归模型不满足预设判定条件,则协调者计算出事先选定的预设步长与副梯度值的第一乘积,和预设步长与主参与者对应的主梯度值的第三乘积,并将第一乘积作为目标副梯度值发送到副参与者中更新副参与者中的本地模型参数,将第三乘积发送到主参与者中更新主参与者中的本地模型参数,再根据更新后的各个模型参数重新进行模型训练,以获取新的损失函数值,并通过副参与者发送到协调者中。
在本实施例中,通过在确定纵向逻辑回归模型不满足预设判定条件时,计算副梯度值和预设的步长之间的第一乘积,并将第一乘积作为目标副梯度值,从而保障了获取到的目标主梯度值的准确性。
本发明的实施例还提供一种纵向联邦学习优化装置,参照图4,所述纵向联邦学习优化装置包括:
获取模块,用于副参与者获取主参与者发送的具有线性回归值的加密数值集合,并根据所述加密数值集合计算副加密数据;
发送模块,用于将所述副加密数据发送至协调者,其中,所述协调者用于响应于纵向联邦模型未收敛,根据所述副加密数据更新所述协调者中的二阶导数矩阵,并根据更新后的二阶导数矩阵计算目标副梯度值;
第一接收模块,用于接收所述协调者基于所述副加密数据发送的目标副梯度值,基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
可选地,所述获取模块,还用于:
检测纵向联邦模型是否满足预设判定条件;
若满足,则副参与者获取所述主参与者发送的主加密数值和新加密数值,并将所述主加密数值和所述新加密数值作为所述主参与者发送的具有线性回归值的加密数值集合。
可选地,所述获取模块,还用于:
确定所述副参与者对应的当前迭代次数是否满足预设次数条件,
若满足,则根据所述加密数值集合计算中间结果值,并通过所述中间结果值计算副加密数据。
可选地,所述获取模块,还用于:
基于所述加密数值集合获取所述副参与者中本地模型参数的当前平均值,并获取所述当前平均值之前预设步数间隔的历史平均值;
计算所述当前平均值和所述历史平均值之间的差值,并根据所述差值计算中间结果值,通过所述中间结果值计算副加密数据。
可选地,所述第一接收模块,还用于:
接收所述协调者基于所述副加密数据发送的目标副梯度值,其中,所述目标副梯度值由所述协调者根据目标数据更新的二阶导数矩阵获取的,所述目标数据为响应于纵向逻辑回归模型未收敛,且满足预设判定条件,将所述主加密数据和所述副参与者发送的副加密数据进行解密合并得到的。
可选地,所述第一接收模块,还用于:
接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值由所述协调者对第一目标乘积进行拆分得到的,所述第一目标乘积为根据响应于所述纵向逻辑回归模型满足所述预设判定条件而更新的二阶导数矩阵、所述主参与者发送的主梯度值和所述副参与者发送的副梯度值合并的长向量,和预设步长之间的乘积。
可选地,所述接收所述协调者反馈的目标副梯度值的步骤,包括:
接收所述协调者反馈的目标副梯度值,其中,所述目标副梯度值为第二目标乘积,所述第二目标乘积为所述协调者响应于纵向逻辑回归模型未收敛,且不满足预设判定条件,计算的所述主参与者发送的主梯度值和预设的步长之间的乘积。
可选地,所述纵向联邦学习优化装置还包括:
第二接收模块,用于接收主参与者发送的主加密数据和副参与者发送的副加密数据,其中,所述副加密数据为根据所述副参与者中的中间结果值计算的,所述中间结果值为所述副参与者根据所述主参与者发送加密数值集合计算的,所述加密数值集合包括主加密数值和新加密数值;
更新模块,用于响应于纵向逻辑回归模型未收敛,根据所述主加密数据和所述副加密数据更新二阶导数矩阵,并根据所述更新后的二阶导数矩阵计算目标副梯度值;
收敛模块,用于将所述目标副梯度值发送给所述副参与者,所述副参与者用于基于所述目标副梯度值更新所述副参与者中的本地模型参数,并继续执行所述副参与者获取主参与者发送的具有线性回归值的加密数值集合的步骤,直至所述协调者对应的纵向联邦模型收敛。
可选地,所述更新模块,还用于:
判断所述纵向逻辑回归模型是否满足所述预设判定条件;
若满足,则将所述主加密数据和所述副加密数据进行解密合并,以获取目标数据;
将所述目标数据存储至预设长度的队列中,以获取目标队列,并通过所述目标队列对二阶导数矩阵进行更新。
可选地,所述更新模块,还用于:
若不满足,则所述协调者获取所述副参与者发送的副梯度值和预设的步长之间的第一乘积,并将所述第一乘积作为目标副梯度值发送至所述副参与者。
上述各程序模块所执行的方法可参照本发明纵向联邦学习优化方法各个实施例,此处不再赘述。
本发明还提供一种存储介质。
本发明存储介质上存储有纵向联邦学习优化程序,所述纵向联邦学习优化程序被处理器执行时实现如上所述的纵向联邦学习优化方法的步骤。
其中,在所述处理器上运行的纵向联邦学习优化程序被执行时所实现的方法可参照本发明纵向联邦学习优化方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。