纵向联邦学习模型训练优化方法、装置、设备及介质与流程

专利2022-06-29  83


本发明涉及人工智能技术领域,尤其涉及一种纵向联邦学习模型训练优化方法、装置、终端设备及计算机可读存储介质。



背景技术:

联邦学习是一种新型的通过分布式训练及加密技术确保用户隐私数据得到最大限度保护的机器学习理念。联邦学习可划分为横向的联邦学习和纵向的联邦学习,在纵向联邦学习下,各参与方(拥有各自本地数据的数据提供方)需要联合计算梯度,从而各参与方本地训练模型每训练一各轮次,都需要将各自本侧计算的模型中间结果互相进行传递。如此,纵向联邦学习整个训练过程中,中间结果的传输次数与模型训练的迭代次数成正比,导致现有纵向的联邦学习方案传输成本高,效率低下。



技术实现要素:

本发明的主要目的在于提供一种纵向联邦学习模型训练优化方法、装置、终端设备及计算机可读存储介质,旨在解决现有纵向的联邦学习方案传输成本高,效率低下的技术问题。

为实现上述目的,本发明提供一种纵向联邦学习模型训练优化方法,应用于参与纵向联邦学习的数据提供方,所述纵向联邦学习模型训练优化方法包括:

接收其他数据提供方在第i训练周期发送的模型训练中间结果;

根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

进一步地,所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,包括:

在本地模型的一轮本地训练过程中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数;

循环执行对所述本地模型的多轮本地训练,直到所述本地模型的训练轮数达到预设轮数。

进一步地,在所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤之后,还包括:

将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方。

进一步地,所述将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方的步骤,包括:

调用预设公有密钥对所述本地模型基于本地数据计算得到的所述本侧中间结果进行加密;

将加密后的所述本侧中间结果作为新的模型训练中间结果传递至所述其他数据提供方。

进一步地,所述联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数的步骤,包括:

联合所述本地模型计算的本侧中间结果和加密的模型训练中间结果,计算得到加密的梯度值;

调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新。

进一步地,所述调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新的步骤,包括:

将所述加密的梯度值传递至预设协调方,以供所述预设协调方调用预设私有密钥对所述加密的梯度值进行解密;

接收所述预设协调方反馈的解密后的梯度值,对所述本地模型的模型参数进行更新。

进一步地,所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,还包括:

联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算损失值,基于所述损失值判断所述本地模型的训练是否收敛,在判定收敛时结束所述本地模型的训练。

此外,为实现上述目的,本发明还提供一种纵向联邦学习模型训练优化装置,应用于参与纵向联邦学习的数据提供方,所述纵向联邦学习模型训练优化装置包括:

接收模块,用于接收其他数据提供方在第i训练周期发送的模型训练中间结果;

训练学习模块,用于根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的纵向联邦学习模型训练优化程序,所述纵向联邦学习模型训练优化程序被所述处理器执行时实现如上述中的纵向联邦学习模型训练优化方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的纵向联邦学习模型训练优化方法的步骤。

本发明提出的纵向联邦学习模型训练优化方法、装置、终端设备以及计算机可读存储介质,本发明提出的纵向联邦学习模型训练优化方法应用于参与纵向联邦学习的数据提供方,通过接收其他数据提供方在第i训练周期发送的模型训练中间结果;根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。实现了在纵向联邦学习训练的一个训练周期过程中,当前数据提供方利用其它数据提供方所传递的纵向联邦学习一轮模型参数更新的模型训练中间结果,在本地单独进行多轮本地模型参数的更新,随后在纵向联邦学习训练的下一个训练周期过程中,再利用其它数据提供方所传递的纵向联邦学习一轮模型参数更新的新的模型训练中间结果,继续单独进行多轮本地模型参数的更新,各数据提供方在利用接收到的一轮模型参数更新的模型训练中间结果,单独进行多轮本地模型参数的更新的一个训练周期过程中,不再互相交互各自计算的中间结果,如此,降低了纵向联邦学习中模型训练在一个训练周期相互传递中间结果的传输次数,从而减少了传输数据总量和传输成本,使得联邦学习可以被应用于更复杂的模型上,一定程度上解决了联邦学习的传输效率瓶颈。

附图说明

图1是本发明实施例方案涉及的硬件运行的结构示意图;

图2是本发明一种纵向联邦学习模型训练优化方法第一实施例的流程示意图;

图3是本发明一种纵向联邦学习模型训练优化方法一实施例中步骤s200的细化流程示意图;

图4是本发明一种纵向联邦学习模型训练优化方法一实施例中应用场景示意图

图5是本发明一种纵向联邦学习模型训练优化装置的结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。

需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是pc,便携计算机等终端设备。

如图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所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的纵向联邦学习模型训练优化程序,并执行以下操作:

接收其他数据提供方在第i训练周期发送的模型训练中间结果;

根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,还执行以下操作:

在本地模型的一轮本地训练过程中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数;

循环执行对所述本地模型的多轮本地训练,直到所述本地模型的训练轮数达到预设轮数。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,在执行根据所述模型训练中间结果进行多轮本地模型参数更新之后,还执行以下操作:

将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,还执行以下操作:

调用预设公有密钥对所述本地模型基于本地数据计算得到的所述本侧中间结果进行加密;

将加密后的所述本侧中间结果作为新的模型训练中间结果传递至所述其他数据提供方。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,还执行以下操作:

所述联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数的步骤,包括:

联合所述本地模型计算的本侧中间结果和加密的模型训练中间结果,计算得到加密的梯度值;

调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,还执行以下操作:

将所述加密的梯度值传递至预设协调方,以供所述预设协调方调用预设私有密钥对所述加密的梯度值进行解密;

接收所述预设协调方反馈的解密后的梯度值,对所述本地模型的模型参数进行更新。

进一步地,处理器1001可以调用存储器1005中存储的纵向联邦学习模型训练优化程序,还执行以下操作:

联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算损失值,基于所述损失值判断所述本地模型的训练是否收敛,在判定收敛时结束所述本地模型的训练。

基于上述的结构,提出本发明纵向联邦学习模型训练优化方法的各个实施例。

请参照图2,图2为本发明纵向联邦学习模型训练优化方法第一实施例的流程示意图。

本发明实施例提供了纵向联邦学习模型训练优化方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明实施例纵向联邦学习模型训练优化方法应用于上述终端设备,本发明实施例终端设备可以是pc,便携计算机等终端设备,在此不做具体限制。

本实施例纵向联邦学习模型训练优化方法应用于参与纵向联邦学习的数据提供方,本实施例纵向联邦学习模型训练优化方法,包括:

步骤s100,接收其他数据提供方在第i训练周期发送的模型训练中间结果。

在纵向联邦学习的多个数据提供方参与联邦学习模型训练的过程中,其中任意一个数据提供方,接收当前联邦中的其他数据提供方所传递的该其他数据提供方,在进行当前纵向联邦学习一个训练周期的模型参数更新过程中计算的模型训练中间结果。

需要说明的是,i为任意大于0的正整数,数据提供方在一个训练周期中,需要进行当前纵向联邦学习多轮的模型参数更新过程。

具体地,例如,当前参与纵向联邦学习的有数据提供方a和数据提供方b,其中,a方和b方独立进行各自本地模型的数据计算,在a方和b方进行纵向联邦学习的模型训练时,a方接收由b方在参与当前纵向联邦学习一轮模型训练,以进行b方本地模型参数更新过程中所计算b方一侧的模型训练中间结果。

步骤s200,根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

在纵向联邦学习的多个数据提供方参与联邦学习模型训练的过程中,当其中任意一个数据提供方,接收到其他数据提供方所传递的该其他数据提供方一侧的模型训练中间结果之后,该数据提供方基于该模型训练中间结果和自己本侧的特征梯度进行多轮本地模型参数的更新,并在完成该多轮本地模型参数的更新之后,再次接收参与当前纵向联邦学习多个数据提供方中的其他任意一个数据提供方,传递的该其他数据提供方一侧经过当前训练周期中多轮的模型参数更新过程之后计算的模型训练中间结果,并继续基于该模型训练中间结果和自己本侧特征梯度进行多轮本地模型参数的更新,如此循环直至训练结束。

具体地,例如,在a方和b方进行纵向联邦学习的模型训练的过程中,当a方接收到由b方在参与当前纵向联邦学习一轮模型训练,以进行b方本地模型参数更新过程中所计算b方一侧的模型训练中间结果之后,a方通过本侧所拥有特征数据的梯度以及接收到的b方一侧的模型训练中间结果,在a方本地模型进行多轮的模型参数更新,并在a方完成该多轮本地模型参数的更新之后,再一次接收由b方参与当前纵向联邦学习经当前训练周期模型训练,以进行本地模型参数更新中所计算的b方一侧的模型训练中间结果,并继续通过a方本侧所拥有特征数据的梯度以及再次接收到的b方一侧的模型训练中间结果,在a方本地模型进行多轮的模型参数更新,a方循环执行上述过程,直到a方的本地模型训练结束。

进一步地,请参照图3,图3上述步骤s200中,根据所述模型训练中间结果进行多轮本地模型参数更新的步骤的细化流程示意图。步骤s200中,根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,包括:

步骤s201,在本地模型的一轮本地训练过程中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数;

在参与纵向联邦学习的多个数据提供方中的任意一个数据提供方,接收到其他数据提供方所传递的该其他数据提供方一侧的模型训练中间结果,以基于该模型训练中间结果和自己本侧的特征梯度进行多轮本地模型参数更新时,在该数据提供方基于该中间结果和自己本侧的特征梯度进行的每一轮本地模型参数更新过程中,该数据提供方基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的其他数据提供方传递的模型训练中间结果计算本地模型当前轮次迭代训练过程中的梯度值,该数据提供方随即根据联合计算得到的该梯度值对本地模型的各模型参数对应进行一次更新。

具体地,例如,在a方通过本侧所拥有特征数据的梯度以及接收到的b方一侧的模型训练中间结果,在a方本地模型进行的每一轮次模型参数更新过程中,a方基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的b方传递的b方一侧中间结果,计算a方本地模型当前轮次迭代训练过程的梯度值,然后a方随即根据联合计算得到的梯度值对本地模型的各模型参数对应进行一次更新。

步骤s202,循环执行对所述本地模型的多轮本地训练,直到所述本地模型的训练轮数达到预设轮数。

参与纵向联邦学习的多个数据提供方中的任意一个数据提供方,基于接收到其他数据提供方所传递的该其他数据提供方一侧的模型训练中间结果和自己本侧的特征梯度,循环执行训练以进行本地模型参数更新,直到该数据提供方进行训练更新本地模型参数的训练轮数达到预设轮数,即结束利用当前接收到的其他数据提供方一侧的模型训练中间结果继续进行本地模型参数更新。

需要说明的是,本实施例中,为保证参与当前纵向联邦学习的各数据提供方的模型训练能够准确收敛,以及模型训练结果稳定,需要预先设定数据提供方基于接收到的其他数据提供方的模型训练中间结果进行训练以更新本地模型参数的训练轮数,即预设轮数,应当理解的是,该预设轮数的具体数值可基于不同模型训练的训练需求进行设定,本发明纵向联邦学习模型训练优化方法并不对该预设轮数的具体数值进行限定。

具体地,例如,当a方接收到b方所传递的b方一侧的模型训练中间结果,以基于该模型训练中间结果和自己本侧的特征梯度,循环执行训练以进行a方本地模型参数的更新,直到a方进行训练更新本地模型参数的训练轮数达到预设轮数(如预设轮数为10次,a方进行训练更新本地模型参数的训练轮数也达到了10次),即结束利用当前接收到的b方一侧的中间结果继续进行a方本地模型参数的更新。

本实施例中,通过在纵向联邦学习的多个数据提供方参与联邦学习模型训练的过程中,其中任意一个数据提供方,接收当前联邦中的其他数据提供方所传递的该其他数据提供方,在进行当前纵向联邦学习一个训练周期的模型参数更新过程中计算的模型训练中间结果,在纵向联邦学习的多个数据提供方参与联邦学习模型训练的过程中,当其中任意一个数据提供方,接收到其他数据提供方所传递的该其他数据提供方一侧的模型训练中间结果之后,该数据提供方基于该模型训练中间结果和自己本侧的特征梯度进行多轮本地模型参数的更新,并在完成该多轮本地模型参数的更新之后,再次接收参与当前纵向联邦学习多个数据提供方中的其他任意一个数据提供方,传递的该其他数据提供方一侧经过当前训练周期中多轮的模型参数更新过程之后计算的模型训练中间结果,并继续基于该模型训练中间结果和自己本侧特征梯度进行多轮本地模型参数的更新,如此循环直至训练结束。

实现了在纵向联邦学习训练的一个训练周期过程中,当前数据提供方利用其它数据提供方所传递的纵向联邦学习一轮模型参数更新的模型训练中间结果,在本地单独进行多轮本地模型参数的更新,随后在纵向联邦学习训练的下一个训练周期过程中,再利用其它数据提供方所传递的纵向联邦学习一轮模型参数更新的新的模型训练中间结果,继续单独进行多轮本地模型参数的更新,各数据提供方在利用接收到的一轮模型参数更新的模型训练中间结果,单独进行多轮本地模型参数的更新的一个训练周期过程中,不再互相交互各自计算的中间结果,如此,降低了纵向联邦学习中模型训练在一个训练周期相互传递中间结果的传输次数,从而减少了传输数据总量和传输成本,使得联邦学习可以被应用于更复杂的模型上,一定程度上解决了联邦学习的传输效率瓶颈。

进一步地,基于上述纵向联邦学习模型训练优化方法第一实施例,提出本发明纵向联邦学习模型训练优化方法的第二实施例。

在本发明纵向联邦学习模型训练优化方法的第二实施例中,在上述第一实施例的步骤s200,根据所述模型训练中间结果进行多轮本地模型参数更新的步骤之后,本发明纵向联邦学习模型训练优化方法,还包括:

步骤a,将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方。

参与纵向联邦学习的多个数据提供方中的任意一个数据提供方,基于接收到其他数据提供方所传递的该其他数据提供方一侧的模型训练中间结果和自己本侧的特征梯度,循环执行训练以进行本地模型参数更新到达预设轮数的最后一轮次训练时,将该数据提供方基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,作为新的其他数据提供方传递的模型训练中间结果,传递给参与当前纵向联邦学习多个数据提供方中除自己之外的其他数据提供方。

具体地,例如,当a方接收到b方所传递的b方一侧的模型训练中间结果,以基于该模型训练中间结果和自己本侧的特征梯度,循环执行第10次训练以进行a方本地模型参数的更新(预设轮数为10次)时,将当前轮次训练过程中,a方基于自己本侧的特征梯度计算得到的自己一侧的本侧中间结果,作为当前纵向联邦学习一轮模型参数更新中新的模型训练中间结果并传递给b方,以供b方基于该新的中间结果和b方本侧的特征梯度进行多轮本地模型参数的更新。

进一步地,步骤a,包括:

步骤a1,调用预设公有密钥对所述本地模型基于本地数据计算得到的所述本侧中间结果进行加密;

步骤a2,将加密后的所述本侧中间结果作为新的模型训练中间结果传递至所述其他数据提供方。

需要说明的是,本实施例中,参与纵向联邦学习的各个数据提供方之间在传递各自本侧的模型训练中间结果时,可以使用加密传递的方式互相传递中间结果,从而保证了互相之间数据的隐私安全。

具体地,例如,a方调用在参与当前纵向联邦学习是分配得到的公有密钥,使用同态加密算法对循环执行第10次训练以进行a方本地模型参数的更新(预设轮数为10次)时,将当前轮次训练过程中,a方基于自己本侧的特征梯度计算得到的自己一侧的本侧中间结果进行加密,并将该加密之后的本侧中间结果作为当前纵向联邦学习一轮模型参数更新中新的模型训练中间结果并传递给b方,以供b方基于该新的中间结果和b方本侧的特征梯度进行多轮本地模型参数的更新。

进一步地,上述步骤s201中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数的步骤,包括:

步骤s2011,联合所述本地模型计算的本侧中间结果和加密的模型训练中间结果,计算得到加密的梯度值;

步骤s2012,调用预设私有密钥对所述梯度值进行解密,并基于解密后的所述梯度值对所述本地模型的模型参数进行更新。

参与纵向联邦学习的各个数据提供方,基于联合本侧中间结果和接收到的其他数据提供方传递加密的模型训练中间结果,计算得到加密的梯度值,从而在各个数据提供方进行本地模型参数更新过程中,基于调用在参与当前纵向联邦学习时各自分配得到的唯一私有密钥对该加密的梯度值进行解密,然后使用解密得出的梯度值对本地模型的各模型参数对应进行更新。

具体地,例如,a方和b方在进行本地模型的模型参数更新过程中,a方和b方基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的对方传递的基于同态加密算法加密后的模型训练中间结果,计算得到a方和b方本地模型当前轮次迭代训练过程加密的梯度值,然后a方和b方调用在参与当前纵向联邦学习时分配得到的各自唯一的私有密钥对该加密的梯度值进行解密,并使用解密得出的梯度值对本地模型的各模型参数对应进行更新。

进一步地,在另一个实施例中,在上述步骤s2012,包括:

步骤c,将所述加密的梯度值传递至预设协调方,以供所述预设协调方调用预设私有密钥对所述加密的梯度值进行解密;

步骤d,接收所述预设协调方反馈的解密后的梯度值,对所述本地模型的模型参数进行更新。

需要说明的是,本实施例中,参与纵向联邦学习的各个数据提供方还可以基于当前纵向联邦学习中的协调方的协调控制,进行各自本地模型的训练更新,在各个数据提供方基于协调方进行模型训练时,由协调方统一分配加密算法的公有密钥给各个数据提供方,且由协调方自己保留唯一的私有秘钥。

在参与纵向联邦学习的各个数据提供方,基于联合本侧中间结果和接收到的其他数据提供方传递加密的模型训练中间结果计算得到加密的梯度值之后,将该加密的梯度值发送给协调方,协调方接收该加密的梯度值并调用唯一拥有的私有秘钥进行解密,然后将解密得到的梯度值反馈给各自对应的数据提供方,各数据提供方接收该协调方反馈回传的经过解密后的梯度值对各自本地模型的各模型参数对应进行更新。

具体地,例如,在如图4所示的应用场景中,c方(协调方)在当前纵向联邦学习开始模型训练时,将同态加密算法的公共的密钥下发至a方(数据提供方)和b方(另一数据提供方),a方和b方在进行本地模型的模型参数更新过程中,调用公有密钥,使用同态加密算法对预设轮数中最后一轮次训练过程中,a方和b方各自基于自己本侧的特征梯度计算得到的自己一侧的本侧中间结果进行加密,并将该加密之后的本侧中间结果作为当前纵向联邦学习一轮模型参数更新中的中间结果互相传递给对方,a方和b方各自接收到对方传递的加密的中间结果之后,联合基于各自本侧的特征梯度计算得到自己一侧的本侧中间结果,计算得到a方和b方本地模型当前轮次迭代训练过程加密的梯度值,然后将计算得到的加密的梯度值传递至c方,c方接收该加密的梯度值并调用自己保留的唯一的私有秘钥对该加密的梯度值进行解密,c方将解密得出的a方和b方各自的梯度值对应返回至a方和b方,从而a方和b方使用解密得出的梯度值对本地模型的各模型参数对应进行更新。

本实施例中,参与纵向联邦学习的各个数据提供方之间在传递各自本侧的模型训练中间结果时,可以使用加密传递的方式互相传递模型训练中间结果,参与纵向联邦学习的各个数据提供方,调用在参与当前纵向联邦学习时分配得到的唯一私有密钥对该加密的梯度值进行解密,然后使用解密得出的梯度值对本地模型的各模型参数对应进行更新,或者,参与纵向联邦学习的各个数据提供方,将该加密的梯度值发送给协调方,协调方接收该加密的梯度值并调用唯一拥有的私有秘钥进行解密,然后将解密得到的梯度值反馈给各自对应的数据提供方,以供该各数据提供方使用解密得出的梯度值对各自本地模型的各模型参数对应进行更新。在保证降低纵向联邦学习中模型训练中间结果的传输次数,从而减少传输数据总量和传输成本的前提下,进一步保证了各数据提供方互相之间数据的隐私安全。

进一步地,基于上述纵向联邦学习模型训练优化方法第一实施例和第二实施例,提出本发明纵向联邦学习模型训练优化方法的第三实施例。

在本发明纵向联邦学习模型训练优化方法的第三实施例中,上述步骤s200中,根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,还包括:

步骤e,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算损失值,基于所述损失值判断所述本地模型的训练是否收敛,在判定收敛时结束所述本地模型的训练。

在参与纵向联邦学习的多个数据提供方中的数据提供方,基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的其他数据提供方传递的模型训练中间结果计算本地模型当前轮次迭代训练过程中的梯度值的同时,联合该本侧中间结果和接收到的其他数据提供方传递的模型训练中间结果计算当前轮次迭代训练过程中的损失值,并基于损失值判断数据提供方本地模型当前轮次的迭代训练是否收敛,并在判断到收敛时结束对本地模型的继续迭代训练。

具体地,例如,在a方通过本侧所拥有特征数据的梯度以及接收到的b方一侧的中间结果,在a方本地模型进行的每一轮次模型参数更新过程中,当a方基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的b方传递的b方一侧中间结果,计算a方本地模型当前轮次迭代训练过程的梯度值的同时,联合该本侧中间结果和接收到的b方传递的b方一侧中间结果,计算a方本地模型当前轮次迭代训练过程的损失值,并在检测到该损失值小于预设阈值时判定a方本地模型当前轮次迭代训练已经收敛,即停止a方本地模型继续进行模型参数更新。

需要说明的是,本实施例中,判断各数据提供方参与纵向联邦学习进行模型训练是否收敛,还可以基于各数据提供方参与纵向联邦学习进行模型训练迭代训练轮数进行判断,应当理解的是,本发明纵向联邦学习模型训练优化方法并不对判断各数据提供方参与纵向联邦学习进行模型训练是否收敛,以确定接收各数据提供方继续进行模型训练的方式进行限定。

本实施例中,在参与纵向联邦学习的多个数据提供方中的数据提供方,基于自己本侧的特征梯度计算得到自己一侧的本侧中间结果,并联合该本侧中间结果和接收到的其他数据提供方传递的模型训练中间结果计算本地模型当前轮次迭代训练过程中的梯度值的同时,联合该本侧中间结果和接收到的其他数据提供方传递的模型训练中间结果计算当前轮次迭代训练过程中的损失值,并基于损失值判断数据提供方本地模型当前轮次的迭代训练是否收敛,并在判断到收敛时结束对本地模型的继续迭代训练,实现了实时监测各数据提供方参与纵向联邦学习进行模型训练的过程,以确保一旦检测到模型训练收敛即停止当前数据提供方继续进行不必要的训练,既保证了纵向联邦学习不浪费训练资源,还避免了过度的模型训练导致模型效果不稳定的问题,综合提升了纵向联邦学习的效率。

此外,请参照图5,本发明实施例还提出一种纵向联邦学习模型训练优化装置,应用于参与纵向联邦学习的数据提供方,本发明纵向联邦学习模型训练优化装置,包括:

接收模块,用于接收其他数据提供方在第i训练周期发送的模型训练中间结果;

训练学习模块,用于根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

优选地,训练学习模块,包括:

计算更新单元,用于在本地模型的一轮本地训练过程中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数;

循环单元,用于循环执行对所述本地模型的多轮本地训练,直到所述本地模型的训练轮数达到预设轮数。

优选地,训练学习模块,还包括:

第一传递单元,用于将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方。

优选地,第一传递单元,包括:

加密单元,用于调用预设公有密钥对所述本地模型基于本地数据计算得到的所述本侧中间结果进行加密;

传递子单元,用于将加密后的所述本侧中间结果作为新的模型训练中间结果传递至所述其他数据提供方。

优选地,计算更新单元,包括:

计算单元,用于联合所述本地模型计算的本侧中间结果和加密的模型训练中间结果,计算得到加密的梯度值;

更新单元,用于调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新。

优选地,更新单元,还包括:

第二传递单元,用于将所述加密的梯度值传递至预设协调方,以供所述预设协调方调用预设私有密钥对所述加密的梯度值进行解密;

更新子单元,用于接收所述预设协调方反馈的解密后的梯度值,对所述本地模型的模型参数进行更新。

优选地,训练学习模块,还包括:

训练结束单元,用于联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算损失值,基于所述损失值判断所述本地模型的训练是否收敛,在判定收敛时结束所述本地模型的训练。

其中,本发明纵向联邦学习模型训练优化装置的各功能模块在运行时所实现的步骤,可参照本发明纵向联邦学习模型训练优化方法的各个实施例,此处不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质,应用于计算机,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质上存储有纵向联邦学习模型训练优化程序,所述纵向联邦学习模型训练优化程序被处理器执行时实现如上所述的纵向联邦学习模型训练优化方法的步骤。

其中,在所述处理器上运行的纵向联邦学习模型训练优化程序被执行时所实现的步骤,可参照本发明纵向联邦学习模型训练优化方法的各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种纵向联邦学习模型训练优化方法,其特征在于,应用于参与纵向联邦学习的数据提供方,所述纵向联邦学习模型训练优化方法,包括:

接收其他数据提供方在第i训练周期发送的模型训练中间结果;

根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

2.如权利要求1所述的纵向联邦学习模型训练优化方法,其特征在于,所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,包括:

在本地模型的一轮本地训练过程中,联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数;

循环执行对所述本地模型的多轮本地训练,直到所述本地模型的训练轮数达到预设轮数。

3.如权利要求2所述的纵向联邦学习模型训练优化方法,其特征在于,在所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤之后,还包括:

将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方。

4.如权利要求3所述的纵向联邦学习模型训练优化方法,其特征在于,所述将所述本地模型计算得到的本侧中间结果,作为新的模型训练中间结果传递至所述其他数据提供方的步骤,包括:

调用预设公有密钥对所述本地模型基于本地数据计算得到的所述本侧中间结果进行加密;

将加密后的所述本侧中间结果作为新的模型训练中间结果传递至所述其他数据提供方。

5.如权利要求4所述的纵向联邦学习模型训练优化方法,其特征在于,所述联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算得到梯度值,并基于所述梯度值更新所述本地模型的模型参数的步骤,包括:

联合所述本地模型计算的本侧中间结果和加密的模型训练中间结果,计算得到加密的梯度值;

调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新。

6.如权利要求5所述的纵向联邦学习模型训练优化方法,其特征在于,所述调用预设私有密钥对所述加密的梯度值进行解密,并基于解密后的梯度值对所述本地模型的模型参数进行更新的步骤,包括:

将所述加密的梯度值传递至预设协调方,以供所述预设协调方调用预设私有密钥对所述加密的梯度值进行解密;

接收所述预设协调方反馈的解密后的梯度值,对所述本地模型的模型参数进行更新。

7.如权利要求2所述的纵向联邦学习模型训练优化方法,其特征在于,所述根据所述模型训练中间结果进行多轮本地模型参数更新的步骤,还包括:

联合所述本地模型计算的本侧中间结果和所述模型训练中间结果计算损失值,基于所述损失值判断所述本地模型的训练是否收敛,在判定收敛时结束所述本地模型的训练。

8.一种纵向联邦学习模型训练优化装置,其特征在于,应用于参与纵向联邦学习的数据提供方,所述纵向联邦学习模型训练优化装置,包括:

接收模块,用于接收其他数据提供方在第i训练周期发送的模型训练中间结果;

训练学习模块,用于根据所述模型训练中间结果进行多轮本地模型参数更新,并接收所述其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。

9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的纵向联邦学习模型训练优化程序,所述纵向联邦学习模型训练优化程序被所述处理器执行时实现如权利要求1至7中任一项所述的纵向联邦学习模型训练优化方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的纵向联邦学习模型训练优化方法的步骤。

技术总结
本发明公开了一种纵向联邦学习模型训练优化方法、装置、终端设备及计算机可读存储介质,通过接收其他数据提供方在第i训练周期发送的模型训练中间结果;根据模型训练中间结果进行多轮本地模型参数更新,并接收其他数据提供方在第i 1训练周期发送的模型训练中间结果继续进行多轮本地模型参数更新。本发明利用其它数据提供方传递的纵向联邦学习一轮模型参数更新的模型训练中间结果进行多轮的本地模型参数的更新,随后再利用其它数据提供方所传递的新的模型训练中间结果,继续进行多轮的本地模型参数的更新,降低了纵向联邦学习中模型训练中间结果的传输次数,从而减少了传输数据总量和传输成本,一定程度上解决了联邦学习的传输效率瓶颈。

技术研发人员:刘洋;康焱;陈天健;杨强
受保护的技术使用者:深圳前海微众银行股份有限公司
技术研发日:2020.01.09
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-52496.html

最新回复(0)