纵向联邦学习系统优化方法、装置、设备及可读存储介质与流程

文档序号:20920647发布日期:2020-05-29 14:06阅读:275来源:国知局
纵向联邦学习系统优化方法、装置、设备及可读存储介质与流程

本发明涉及机器学习技术领域,尤其涉及一种纵向联邦学习系统优化方法、装置、设备及可读存储介质。



背景技术:

随着人工智能的发展,人们为解决数据孤岛的问题,提出了“联邦学习”的概念,使得联邦双方在不用给出己方数据的情况下,也可进行模型训练得到模型参数,并且可以避免数据隐私泄露的问题。

纵向联邦学习是在参与者的数据特征重叠较小,而用户重叠较多的情况下,取出参与者用户相同而用户数据特征不同的那部分用户及数据进行联合训练机器学习模型。比如有属于同一个地区的两个参与者a和b,其中参与者a是一家银行,参与者b是一个电商平台。参与者a和b在同一地区拥有较多相同的用户,但是a与b的业务不同,记录的用户数据特征是不同的。特别地,a和b记录的用户数据特征可能是互补的。在这样的场景下,可以使用纵向联邦学习来帮助a和b构建联合机器学习预测模型,帮助a和b向他们的客户提供更好的服务。

但是,目前对于纵向联邦学习中使用深度神经网(deepneuralnetworks,dnn)算法构建联邦模型的场景,当前业界方案更多地是使用一方的数据源和另一方的标签,无法真正意义上使用双方的数据进行联邦dnn训练,对于纵向场景的dnn联邦建模,更多地处于理论研究阶段。



技术实现要素:

本发明的主要目的在于提供一种纵向联邦学习系统优化方法、装置、设备及可读存储介质,旨在解决目前缺少使用双方的数据进行纵向联邦dnn训练方案的问题。

为实现上述目的,本发明提供一种纵向联邦学习系统优化方法,应用于基于纵向联邦学习训练深度神经网络dnn的第一设备,所述第一设备拥有标签数据,所述dnn包括所述第一设备中的第一底层模型、交互层模型和上层模型,还包括参与纵向联邦学习的第二设备中的第二底层模型,所述方法包括以下步骤:

将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出;

与所述第二设备进行交互,获得所述交互层模型的交互层输出,其中,所述交互层模型用于拼接所述第一底层输出和第二底层输出,所述第二设备将第二训练数据输入所述第二底层模型得到所述第二底层输出;

将所述交互层输出输入所述上层模型,采用上层模型输出和所述标签数据计算最终误差,并后向传播所述最终误差以更新所述dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。

可选地,所述与所述第二设备进行交互,获得所述交互层模型的交互层输出的步骤包括:

采用所述第一底层输出和所述交互层模型中与所述第一设备对应的第一拼接参数计算得到第一拼接部分。

与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分;

采用所述交互层模型对所述第一拼接部分和第二拼接部分进行拼接,得到交互层输出。

可选地,所述与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分的步骤包括:

接收所述第二设备发送的第二加密底层输出,其中,所述第二设备采用预设加密算法对所述第二底层输出进行加密,得到所述第二加密底层输出;

采用所述第二加密底层输出,和所述交互层模型中与所述第二设备对应的带累积噪声的第二拼接参数,计算得到第二加密拼接部分;

对所述第二加密拼接部分进行加噪声操作,并将加噪声的第二加密拼接部分返回给所述第二设备,以供所述第二设备对所述加噪声的第二加密拼接部分进行解密,并对解密结果进行去除累积噪声操作得到第二带噪声拼接部分;

对从所述第二设备接收到的所述第二带噪声拼接部分进行去噪声操作,得到第二拼接部分。

可选地,所述后向传播所述最终误差以更新所述dnn中各层模型的模型参数的步骤包括:

采用所述最终误差计算所述上层模型的模型参数对应的上层梯度,并根据所述上层梯度更新所述上层模型的模型参数;

根据所述最终误差计算得到交互层误差,并根据所述交互层误差和所述第一底层输出计算得到所述第一设备对应的第一拼接参数的第一梯度,以及根据所述交互层误差和所述第一拼接参数计算得到第一底层模型误差;

采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差;

采用所述第二带噪声梯度更新所述第二设备对应的带累积噪声的第二拼接参数,采用所述第一梯度更新所述第一拼接参数,以及根据所述第一底层模型误差更新所述第一底层模型的模型参数;

将所述加密的第二底层模型误差发送给所述第二设备,以供所述第二设备对加密的第二底层模型误差进行解密后,采用解密结果更新所述第二底层模型的模型参数。

可选地,所述采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差的步骤包括:

根据所述第二加密底层输出和所述交互层误差,计算得到所述第二设备对应的第二拼接参数的第二加密梯度;

对所述第二加密梯度进行加噪声操作得到加噪声的第二加密梯度并发送给所述第二设备,以供所述第二设备对所述加噪声的第二加密梯度进行解密后进行加噪声操作得到双重噪声的第二梯度,并将所述双重噪声的第二梯度和加密的累积噪声返回给所述第一设备;

根据所述交互层误差、所述加密的累积噪声和所述第二设备对应的带累积噪声的第二拼接参数计算得到加密的第二底层模型误差;

对所述双重噪声的第二梯度进行去噪声操作,得到第二带噪声梯度。

可选地,所述将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出的步骤之前,还包括:

与所述第二设备进行样本对齐确定交集样本;

从样本数据集中获取所述交集样本对应的第一训练数据。

可选地,所述预设加密算法为同态加密算法。

可选地,所述目标dnn用于预测用户购买意向,所述循环迭代直到满足预设停止条件时得到训练完成的目标dnn的步骤之后,还包括:

将待预测用户的第一数据输入所述目标dnn的第一底层模型,得到第一底层预测输出;

与所述第二设备进行交互,获得所述目标dnn的交互层模型的交互层预测输出,其中,所述目标dnn的交互层模型用于拼接所述第一底层预测输出和第二底层预测输出,所述第二设备将所述待预测用户的第二数据输入所述目标dnn的第二底层模型得到所述第二底层预测输出;

将所述交互层预测输出输入所述目标dnn的上层模型,得到所述待预测用户的购买意向。

为实现上述目的,本发明还提供一种纵向联邦学习系统优化装置,部署于基于纵向联邦学习训练深度神经网络dnn的第一设备,所述第一设备拥有标签数据,所述dnn包括所述第一设备中的第一底层模型、交互层模型和上层模型,还包括参与纵向联邦学习的第二设备中的第二底层模型,所述方法包括以下步骤:

输入模块,用于将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出;

交互模块,用于与所述第二设备进行交互,获得所述交互层模型的交互层输出,其中,所述交互层模型用于拼接所述第一底层输出和第二底层输出,所述第二设备将第二训练数据输入所述第二底层模型得到所述第二底层输出;

训练模块,用于将所述交互层输出输入所述上层模型,采用上层模型输出和所述标签数据计算最终误差,并后向传播所述最终误差以更新所述dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。

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

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有纵向联邦学习系统优化程序,所述纵向联邦学习系统优化程序被处理器执行时实现如上所述的纵向联邦学习系统优化方法的步骤。

本发明中,通过在拥有训练数据和标签数据的第一设备中配置第一底层模型、交互层模型和上层模型,在仅拥有训练数据的第二设备中配置第二底层模型;并通过第一设备将第一训练数据输入第一底层模型得到第一底层输出;第二设备将第二训练数据输入第二底层模型得到第二底层输出;第一设备与第二设备进行交互,获得交互层模型的交互层输出;第一设备将交互层输出输入上层模型,采用上层模型输出和标签数据计算最终误差,并后向传播最终误差以更新dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。通过上述方案,使得第一设备和第二设备均可以使用各自的特征数据进行纵向联邦dnn训练,从而实现了充分利用双方的数据来进行dnn的训练,扩大了纵向联邦的应用场景。并且通过纵向联邦学习的架构,使得双方不需要交互原始的训练数据,从而避免了双方隐私数据的泄露,提高了联合训练模型的安全性。

附图说明

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

图2为本发明纵向联邦学习系统优化方法第一实施例的流程示意图;

图3为本发明实施例涉及的一种dnn模型结构示意图;

图4为本发明纵向联邦学习系统优化装置较佳实施例的功能示意图模块图。

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

具体实施方式

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

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

需要说明的是,本发明实施例纵向联邦学习系统优化设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。

如图1所示,该纵向联邦学习系统优化设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对纵向联邦学习系统优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及纵向联邦学习系统优化程序。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持纵向联邦学习系统优化程序以及其它软件或程序的运行。所述设备可以是基于纵向联邦学习训练深度神经网络dnn的第一设备,所述第一设备拥有标签数据,所述dnn包括所述第一设备中的第一底层模型、交互层模型和上层模型,还包括参与纵向联邦学习的第二设备中的第二底层模型。

在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与参与联邦学习的参与设备建立通信连接;而处理器1001可以用于调用存储器1005中存储的纵向联邦学习系统优化程序,并执行以下操作:

将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出;

与所述第二设备进行交互,获得所述交互层模型的交互层输出,其中,所述交互层模型用于拼接所述第一底层输出和第二底层输出,所述第二设备将第二训练数据输入所述第二底层模型得到所述第二底层输出;

将所述交互层输出输入所述上层模型,采用上层模型输出和所述标签数据计算最终误差,并后向传播所述最终误差以更新所述dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。

进一步地,所述与所述第二设备进行交互,获得所述交互层模型的交互层输出的步骤包括:

采用所述第一底层输出和所述交互层模型中与所述第一设备对应的第一拼接参数计算得到第一拼接部分。

与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分;

采用所述交互层模型对所述第一拼接部分和第二拼接部分进行拼接,得到交互层输出。

进一步地,所述与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分的步骤包括:

接收所述第二设备发送的第二加密底层输出,其中,所述第二设备采用预设加密算法对所述第二底层输出进行加密,得到所述第二加密底层输出;

采用所述第二加密底层输出,和所述交互层模型中与所述第二设备对应的带累积噪声的第二拼接参数,计算得到第二加密拼接部分;

对所述第二加密拼接部分进行加噪声操作,并将加噪声的第二加密拼接部分返回给所述第二设备,以供所述第二设备对所述加噪声的第二加密拼接部分进行解密,并对解密结果进行去除累积噪声操作得到第二带噪声拼接部分;

对从所述第二设备接收到的所述第二带噪声拼接部分进行去噪声操作,得到第二拼接部分。

进一步地,所述后向传播所述最终误差以更新所述dnn中各层模型的模型参数的步骤包括:

采用所述最终误差计算所述上层模型的模型参数对应的上层梯度,并根据所述上层梯度更新所述上层模型的模型参数;

根据所述最终误差计算得到交互层误差,并根据所述交互层误差和所述第一底层输出计算得到所述第一设备对应的第一拼接参数的第一梯度,以及根据所述交互层误差和所述第一拼接参数计算得到第一底层模型误差;

采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差;

采用所述第二带噪声梯度更新所述第二设备对应的带累积噪声的第二拼接参数,采用所述第一梯度更新所述第一拼接参数,以及根据所述第一底层模型误差更新所述第一底层模型的模型参数;

将所述加密的第二底层模型误差发送给所述第二设备,以供所述第二设备对加密的第二底层模型误差进行解密后,采用解密结果更新所述第二底层模型的模型参数。

进一步地,所述采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差的步骤包括:

根据所述第二加密底层输出和所述交互层误差,计算得到所述第二设备对应的第二拼接参数的第二加密梯度;

对所述第二加密梯度进行加噪声操作得到加噪声的第二加密梯度并发送给所述第二设备,以供所述第二设备对所述加噪声的第二加密梯度进行解密后进行加噪声操作得到双重噪声的第二梯度,并将所述双重噪声的第二梯度和加密的累积噪声返回给所述第一设备;

根据所述交互层误差、所述加密的累积噪声和所述第二设备对应的带累积噪声的第二拼接参数计算得到加密的第二底层模型误差;

对所述双重噪声的第二梯度进行去噪声操作,得到第二带噪声梯度。

进一步地,所述将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出的步骤之前,还包括:

与所述第二设备进行样本对齐确定交集样本;

从样本数据集中获取所述交集样本对应的第一训练数据。

进一步地,所述预设加密算法为同态加密算法。

进一步地,所述目标dnn用于预测用户购买意向,所述循环迭代直到满足预设停止条件时得到训练完成的目标dnn的步骤之后,还包括:

将待预测用户的第一数据输入所述目标dnn的第一底层模型,得到第一底层预测输出;

与所述第二设备进行交互,获得所述目标dnn的交互层模型的交互层预测输出,其中,所述目标dnn的交互层模型用于拼接所述第一底层预测输出和第二底层预测输出,所述第二设备将所述待预测用户的第二数据输入所述目标dnn的第二底层模型得到所述第二底层预测输出;

将所述交互层预测输出输入所述目标dnn的上层模型,得到所述待预测用户的购买意向。

基于上述的结构,提出纵向联邦学习系统优化方法的各个实施例。

本发明实施例提供了纵向联邦学习系统优化方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明第一实施例纵向联邦学习系统优化方法应用于基于纵向联邦学习训练dnn的第一设备,第一设备拥有标签数据,所述dnn包括第一设备中的第一底层模型、交互层模型和上层模型,还包括参与纵向联邦学习的第二设备中的第二底层模型,本发明实施例中的第一设备和第二设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。

参照图2,图2为本发明纵向联邦学习系统优化方法第一实施例的流程示意图。在本实施例中,所述纵向联邦学习系统优化方法包括:

步骤s10,将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出;

在本实施例中,第一设备与第二设备可通过握手、身份认证预先建立通信连接。第一设备采用其拥有的第一训练数据来训练dnn,第二设备采用其拥有的第二训练数据来训练dnn,第一训练数据的特征数据与第二训练数据的特征数据不完全相同,可能是完全互补,因此,需要通过纵向联邦学习结合两个设备的数据特征进行机器学习模型的训练。

预先在第一设备中和第二设备中配置dnn的模型结构,需要说明的是,本实施例中的dnn不仅限于包含多层隐藏层的多层神经网络,在网络层中还可嵌入卷积层等其他非全连接的网络层,具体可根据训练任务来配置。具体地,第一设备中预先配置第一底层模型、交互层模型和上层模型,第二设备中预先配置第二底层模型,也即,待训练的dnn模型结构至少包括第一底层模型、第二底层模型、交互层模型和上层模型。其中,第一底层模型的输入配置为第一训练数据对应的特征数据,第一底层模型可以是包括多层;第二底层模型的输入配置为第二训练数据对应的特征数据;交互层模型可配置为全连接层,用于拼接第一底层模型和第二底层模型的输出,并连接上层模型;上层模型用于输出整个dnn的输出结果,如当训练任务是用户购买意向的预测任务时,上层模型的输出可以配置为用于标识用户是否购买的标签,如输出1表示购买,输出0表示不购买。如图3所示,为一种dnn模型结构图,图中,第一设备对应b方,第二设备对应a方。

需要说明的是,根据第一设备和第二设备所拥有数据的实际情况,可以灵活配置第一底层模型和第二底层模型,例如,当第一设备中只有标签数据没有特征数据时,第一底层模型也可以是配置为空模型,即没有第一底层模型。

配置dnn的模型结构后,需要对模型进行训练,确定dnn中各层模型的模型参数,以使得训练完成的目标dnn能够完成目标任务,如预测用户购买意向。模型训练可以分为多次模型参数更新的过程。在一次模型参数更新的过程中,第一设备将第一训练数据输入第一底层模型得到第一底层输出。

进一步地,步骤s10之前还包括:

步骤s40,与所述第二设备进行样本对齐确定交集样本;

步骤s50,从样本数据集中获取所述交集样本对应的第一训练数据。

第一设备在与第二设备进行联合训练之前,第一设备可先与第二设备进行样本对齐,确定交集样本。具体地,第一设备中包括第一样本集,第一样本集中包括多个样本的id,第一设备有第一样本集中各个样本的样本数据构成的第一样本数据集。第二设备中包括第二样本集,第二样本集中包括多个样本的id,第二设备有第二样本集中各个样本的样本数据构成的第二样本数据集。第一样本集和第二样本集中可能包括不同的样本,而第一设备和第二设备需要采用相同样本的样本数据来进行训练,因此,第一设备和第二设备可先进行样本对齐,确定第一样本集和第二样本集的交集,获得交集样本,交集样本中包括双方共有的样本的id。

在确定交集样本后,第一设备从第一样本数据集中获取交集样本对应的第一训练数据,也即,从第一样本数据集中选取交集样本中的各个样本对应的样本数据,构成第一训练数据。而第二设备也同样地从第二样本数据集中选取交集样本中的各个样本对应的样本数据,构成第二训练数据。

步骤s20,与所述第二设备进行交互,获得所述交互层模型的交互层输出,其中,所述交互层模型用于拼接所述第一底层输出和第二底层输出,所述第二设备将第二训练数据输入所述第二底层模型得到所述第二底层输出;

第一设备与第二设备进行交互,获得交互层模型的交互层输出。具体地,第二设备将第二训练数据输入第二底层模型,得到第二底层输出,并与第一设备进行交互。第一设备与第二设备交互的过程可以是第一设备直接将第二底层输出发送给第一设备,第一设备采用交互层模型拼接第二底层输出和第一底层输出,得到交互层输出。若第二设备直接将第二底层输出发送给第一设备,第一设备可能根据第二底层输出推断出第二设备的第二训练数据,从而导致第二设备的数据隐私泄露,因此,当第一设备与第二设备互相信任的场景或对数据安全需求较低时,第一设备与第二设备可采用上面直接发送第二底层输出的交互方式。当第一设备与第二设备互不信任的场景或对数据安全需求较高时,第一设备与第二设备可通过加密和加噪声技术进行交互,从而避免双方的隐私数据泄露给对方或第三方。

步骤s30,将所述交互层输出输入所述上层模型,采用上层模型输出和所述标签数据计算最终误差,并后向传播所述最终误差以更新所述dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。

第一设备将交互层输出输入上层模型,得到上层模型输出,并采用上层模型输出和第一设备本地的标签数据计算最终误差。第一设备采用最终误差来计算上层模型的各个模型参数的上层梯度,并根据上层梯度来更新上层模型的各个模型参数。并将最终误差反向传播给交互层模型、第一底层模型和第二底层模型,通过链式法则来计算各层模型的模型参数的梯度,并根据梯度更新各层模型的模型参数,将dnn各层模型的模型参数都更新一遍,就完成了一次模型参数更新过程。再以更新后的模型参数为基础,进行多次上述的模型参数更新过程,即循环迭代,直到满足预设停止条件时就停止训练,以最后一次更新得到的模型参数作为最终的模型参数,从而得到了训练完成的目标dnn。其中,预设停止条件可以是预先根据需要进行设置的停止条件,如损失函数收敛,或迭代训练的次数达到最大次数,或迭代训练的时间达到最大训练时间。

在本实施例中,通过在拥有训练数据和标签数据的第一设备中配置第一底层模型、交互层模型和上层模型,在仅拥有训练数据的第二设备中配置第二底层模型;并通过第一设备将第一训练数据输入第一底层模型得到第一底层输出;第二设备将第二训练数据输入第二底层模型得到第二底层输出;第一设备与第二设备进行交互,获得交互层模型的交互层输出;第一设备将交互层输出输入上层模型,采用上层模型输出和标签数据计算最终误差,并后向传播最终误差以更新dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。通过上述方案,使得第一设备和第二设备均可以使用各自的特征数据进行纵向联邦dnn训练,从而实现了充分利用双方的数据来进行dnn的训练,扩大了纵向联邦的应用场景。并且通过纵向联邦学习的架构,使得双方不需要交互原始的训练数据,从而避免了双方隐私数据的泄露,提高了联合训练模型的安全性。

进一步地,基于上述第一实施例,提出本发明纵向联邦学习系统优化方法第二实施例,在本发明纵向联邦学习系统优化方法第二实施例中,所述步骤s20包括:

步骤s201,采用所述第一底层输出和所述交互层模型中与所述第一设备对应的第一拼接参数计算得到第一拼接部分。

在本实施例中,交互层模型中包括第一拼接参数和第二拼接参数,第一拼接参数是与第一设备对应的参数,第二拼接参数是与第二设备对应的参数。第一设备采用第一底层输出和第一拼接参数计算得到第一拼接部分。具体地,第一设备可以将第一底层输出与第一拼接参数相乘,得到第一拼接部分。

步骤s202,与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分;

第一设备可以与第二设备基于加密和加噪声技术进行交互,获得第二设备对应的第二拼接部分。具体地,第二拼接部分也是由第二底层输出和第二拼接参数计算得到,但是由于不能泄露双方隐私数据,所以通过加密和加噪声技术来间接交互计算得到第二拼接部分。

步骤s203,采用所述交互层模型对所述第一拼接部分和第二拼接部分进行拼接,得到交互层输出。

第一设备采用交互层模型对第一拼接部分和第二拼接部分进行拼接,得到交互层输出。需要说明的是,根据交互层模型的配置不同,拼接的方法不同,例如交互层模型是对第一底层输出和第二底层输出的进行简单加权平均的模型,则第一拼接参数和第二拼接参数就是加权平均的权重,拼接就是直接将第一拼接部分和第二拼接部分相加,或者在相加的基础上在加上一个偏置参数,得到的结果就是交互层输出。

进一步地,步骤s202包括:

步骤s2021,接收所述第二设备发送的第二加密底层输出,其中,所述第二设备采用预设加密算法对所述第二底层输出进行加密,得到所述第二加密底层输出;

在本实施例中,第一设备与第二设备可采用加密和加噪声技术来进行交互,从而避免双方隐私数据泄露给对应。

具体地,第二设备在得到第二底层输出后,采用预设加密算法对第二底层输出进行加密,得到第二加密底层输出。其中,预设加密算法可以是预先设置的加密算法,例如可以是预设的同态加密算法,如paillier算法,同态加密算法的效果是对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。采用同态加密算法,密文加上或乘上明文得到的结果也是密文。

第一设备接收第二设备发送的第二加密底层输出。

步骤s2022,采用所述第二加密底层输出,和所述交互层模型中与所述第二设备对应的带累积噪声的第二拼接参数,计算得到第二加密拼接部分;

第一设备采用第二加密底层输出和带累积噪声的第二拼接参数,计算得到第二加密拼接部分。在反向传播更新梯度的过程中,第二设备在返回给第一设备的第二拼接参数对应的梯度中可添加第二设备产生的噪声,使得第一设备在使用第二拼接参数对应的梯度更新第二拼接参数时,每次都要多减去一个噪声,也即,第一设备得到的第二拼接参数是带噪声的,并且由于每一轮都多减去一个噪声。噪声累积起来,所以第一设备拥有的第二拼接参数始终都是带有一个累积噪声。由于第一设备中始终无法获得实际的第二拼接参数和实际的第二拼接参数的梯度,因此无法根据第二拼接参数和对应的梯度推测第二设备中的训练数据,从而加强了对第二设备中训练数据的隐私保护。

步骤s2023,对所述第二加密拼接部分进行加噪声操作,并将加噪声的第二加密拼接部分返回给所述第二设备,以供所述第二设备对所述加噪声的第二加密拼接部分进行解密,并对解密结果进行去除累积噪声操作得到第二带噪声拼接部分;

第一设备可对第二加密拼接部分进行加噪声操作,得到加噪声的第二加密拼接部分。其中,加噪声操作可以是对数据进行加上一个随机数或减去一个随机数,第一设备可以是采用预先生成的随机数来进行加噪声操作,由于这个随机数是第一设备随机产生的,所以第二设备无法获知。

第一设备将加噪声的第二加密拼接部分返回给第二设备。第二设备对加噪声的第二加密拼接部分进行解密,解密可以采用与加密对应的密钥。解密得到的结果在带累积噪声的第二拼接参数与第二底层输出拼接的基础上,还带了第一设备的噪声。由于累积噪声是第二设备中产生的噪声的累积,第二设备可以在解密结果上去除累积噪声,得到还带有第一设备噪声的第二带噪声拼接部分。第二设备将第二带噪声拼接部分返回给第一设备。

需要说明的是,第一设备对第二加密拼接部分进行加噪声操作的目的是为了避免第二设备获取第二拼接参数、根据第二拼接参数推测第一设备中的训练数据,因此,在第一设备允许第二设备获得第二拼接参数的情况下,第一设备也可以不进行加噪声操作,直接把第二加密拼接部分发送给第二设备,对应地后续第一设备也就不用进行去噪声操作了。

步骤s2024,对从所述第二设备接收到的所述第二带噪声拼接部分进行去噪声操作,得到第二拼接部分;

第一设备从第二设备接收第二带噪声拼接部分,对第二带噪声拼接部分进行去噪声操作,得到第二拼接部分。其中,去噪声操作即执行与加噪声操作相反的操作,例如,加噪声操作是在数据基础上加上一个随机数,则去噪声操作是在加噪声的数据上减去该随机数,就得到了还原的数据。

在本实施例中,通过在前向传播的过程中,第一设备与第二设备采用加密和加噪声技术对交互的数据进行保护,使得双方都无法根据交互的数据推测对方的数据,从而避免了双方隐私数据的泄露,提高了第一设备和第二设备的在联合进行建模过程中的数据安全性。

例如,将交互层模型简化地表示为z=wa*aa+wb*ab,其中,wa是第二拼接参数,wb是第一拼接参数,aa是第二底层输出,ab是第二底层输出,带累积噪声的第二拼接参数wa’=wa-εacc,其中,εacc是累积参数,采用[]来表示加密的数据。第一设备接收第二设备发送的[aa],然后计算第二加密拼接部分[za’]=[aa]*wa’。

第一设备对[za’]添加噪声εb,将加噪声的第二加密拼接部分[za’]+εb返回给第二设备。第二设备对[za’]+εb进行解密,得到za’+εb;第二设备进行去除累积噪声操作,得到第二带噪声拼接部分za+εb,去除累积操作是在的za’+εb基础上加上aa*εacc,

也即za+εb=za’+εb+aa*εacc=aa*wa’+εb+aa*εacc=(wa’+εacc)*aa+εb=wa*aa+εb。第二设备将za+εb返回给第一设备。

第一设备对za+εb去除噪声得到za,并计算交互层输出z。

进一步地,基于上述第一和第二实施例,提出本发明纵向联邦学习系统优化方法第三实施例,在本发明纵向联邦学习系统优化方法第三实施例中,所述步骤s30中后向传播所述最终误差以更新所述dnn中各层模型的模型参数的步骤包括:

步骤s301,采用所述最终误差计算所述上层模型的模型参数对应的上层梯度,并根据所述上层梯度更新所述上层模型的模型参数;

第一设备在计算得到最终误差后,后向传播最终误差。具体地,第一设备根据链式法则采用最终误差计算得到上层模型的模型参数对应的上层梯度,并根据上层梯度更新上层模型的模型参数。根据梯度更新模型参数的方法可采用现有的参数更新方法,在此不作具体说明。

步骤s302,根据所述最终误差计算得到交互层误差,并根据所述交互层误差和所述第一底层输出计算得到所述第一设备对应的第一拼接参数的第一梯度,以及根据所述交互层误差和所述第一拼接参数计算得到第一底层模型误差;

第一设备根据链式法则采用最终误差计算得到交互层误差。其中,交互层误差是交互层输出的误差,由于交互层模型的输出是上层模型的输入,所以通过链式法则可以根据最终误差计算得到上层模型的输入的误差,就得到了交互层误差。后面的第一底层模型误差、第二底层模型误差均是与交互层误差类似的解释。

第一设备需要计算第一拼接参数对应的第一梯度,第二拼接参数对应的第二梯度,用于更新第一拼接参数和第二拼接参数,还需要计算第二底层模型误差,用于更新第二底层模型的模型参数。第二设备则需要第一底层模型误差,用于更新第一底层模型。

计算公式:(1)当前这一层模型的模型参数的梯度=当前这一层模型的输入*当前这一层模型的输出误差;(2)下层模型的误差=当前这一层模型的输出误差*下层模型的输出在当前这一层模型中对应的权重参数。根据该计算公式,第一梯度=第一底层输出*交互层误差,第二梯度=第一底层输出*交互层误差;第一底层模型误差=交互层误差*第一拼接参数,第二底层模型误差=交互层误差*第二拼接参数。

第一设备可根据上述计算公式,根据交互层误差和第一底层输出计算得到第一梯度,以及根据交互层误差和第一拼接参数计算得到第一底层模型误差。

步骤s303,采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差;

第一设备采用交互层误差和第一设备进行交互计算,得到第二拼接参数对应的第二噪声梯度。由于对于第一设备来说,只有加密的第二底层输出,也只有带累积噪声的第二拼接参数,因此,第一设备需要与第二设备交互计算第二梯度和第二底层模型误差。

进一步地,所述步骤s303包括:

步骤s3031,根据所述第二加密底层输出和所述交互层误差,计算得到所述第二设备对应的第二拼接参数的第二加密梯度;

第一设备根据第二加密底层输出和交互层误差,计算得到第二拼接参数对应的第二加密梯度。具体地,可按照上述计算公式(1)计算第二加密梯度,由于第一设备只有第二加密底层输出,因此根据公式(1)计算得到的是第二加密梯度。

步骤s3032,对所述第二加密梯度进行加噪声操作得到加噪声的第二加密梯度并发送给所述第二设备,以供所述第二设备对所述加噪声的第二加密梯度进行解密后进行加噪声操作得到双重噪声的第二梯度,并将所述双重噪声的第二梯度和加密的累积噪声返回给所述第一设备;

第一设备对第二加密梯度进行加噪声操作,得到加噪声的第二加密梯度,并发送给第二设备。第二设备对加噪声的第二加密梯度进行解密,并在解密结果上进行加噪声操作,得到双重噪声的第二梯度。需要说明的是,第一设备和第二设备进行加噪声操作所采用的随机数是各自生成的,对方都无法获知。进一步地,第二设备对生成的噪声除以学习率,采用得到的结果来进行加噪声操作,以便于后续根据梯度更新带累积噪声的第二拼接参数时,能够抵消与梯度相乘的学习率。

此外,第二设备将当前的累积噪声进行加密,得到加密的累积噪声,将加密的累积噪声发送给第一设备。然后更新当前的累积噪声,也即在当前的累积参数的基础上,加上第二设备上面生成的噪声。需要说明的是,累积噪声初始化可以是0。

步骤s3033,根据所述交互层误差、所述加密的累积噪声和带累积噪声的所述第二拼接参数计算得到加密的第二底层模型误差;

第一设备根据交互层误差、加密的累积噪声和当前的带累积噪声的第二拼接参数计算得到第二底层模型误差。具体地,第一设备先采用加密的累积噪声对当前的带累积噪声的第二拼接参数去除累积噪声,由于是加密的累积噪声,所以得到的是加密的第二拼接参数;第一设备再采用加密的第二拼接参数和交互层误差,按照上述的计算公式(2)计算得到加密的第二底层模型误差。

步骤s3034,对所述双重噪声的第二梯度进行去噪声操作,得到第二带噪声梯度。

第一设备对双重噪声的第二梯度进行去噪声操作,得到第二带噪声梯度。其中,第一设备对双重噪声的第二梯度进行去除噪声操作是去除自己这一方添加的噪声,去除噪声得到的结果上还带有第二设备添加的噪声。

步骤s304,采用所述第二带噪声梯度更新所述第二设备对应的带累积噪声的第二拼接参数,采用所述第一梯度更新所述第一拼接参数,以及根据所述第一底层模型误差更新所述第一底层模型的模型参数;

第一设备采用交互计算得到的第二带噪声梯度更新带累积噪声的第二拼接参数,更新后的带累积噪声的第二拼接参数仍然带累积噪声,与实际的第二拼接参数之间又多了一个噪声。

第二设备采用计算得到的第一梯度更新第一拼接参数,根据第一底层模型误差更新第一底层模型的模型参数。具体地,根据第一底层模型误差计算第一底层模型中各模型参数对应的梯度,并根据该梯度更新第一底层模型中的各个模型参数。

步骤s305,将所述加密的第二底层模型误差发送给所述第二设备,以供所述第二设备对加密的第二底层模型误差进行解密后,采用解密结果更新所述第二底层模型的模型参数。

第一设备将交互计算得到的加密的第二底层模型误差发送给第二设备。第二设备对加密的第二底层模型误差进行解密,得到第二底层模型误差,并采用第二底层模型误差来更新第二底层模型。具体地,第二设备根据第二底层模型误差计算第二底层模型中各个模型参数对应的梯度,并根据该梯度来更新第二底层模型中的各个模型参数。

在本实施例中,第一设备与第二设备之间通过加密和加噪声技术进行后向传播过程中数据的交互,使得第一设备和第二设备均无法获知对方的训练数据,甚至无法获知对方模型的模型参数和梯度,从而避免了双方通过梯度或参数推测另一方的原始数据,极大地提高了联合训练dnn过程中的数据安全性。

例如,第一设备计算得到交互层误差δt,上述计算公式(1)为dw=δ*a,(2)为δ’=δ*w,其中,δ’是下层模型的误差。

需要计算第一梯度dwb、第二梯度的dwa、第一底层模型误差δb和第二底层模型误差δa。第一设备可直接计算dwb=δt*ab,δb=δt*wb。

第一设备计算第二加密梯度[dwa]=[aa]*δt,并对[dwa]加上噪声εb得到[dwa]+εb,发送给第二设备。

第二设备产生噪声εa;对当前的累积噪声进行加密得到加密的累积噪声[εacc];对[dwa]+εb进行解密得到dwa+εb,并通过加噪声操作得到双重噪声的第二梯度dwa+εb+εa/η;将dwa+εb+εa/η和[εacc]返回给第一设备,其中η是学习率;更新累积噪声εacc+=εa。

第一设备计算第二加密底层模型误差[δa]=δt*(wa’+[εacc])=δt*[wa],并将[δa]发送给第二设备。

第一设备对dwa+εb+εa/η去噪声得到第二带噪声梯度dwa+εa/η,并采用dwa+εa/η更新wa’,即计算wa’-=η*(dwa+εa/η)。可以知道的是wa=wa’+∑εa=wa’+εacc。

第二设备对[δa]解密得到δa,并采用δa更新第二底层模型的模型参数。

第一设备采用dwb更新wb,采用δb更新第一底层模型的模型参数。

进一步地,基于上述第一、第二和第三实施例,提出本发明纵向联邦学习系统优化方法第四实施例,在本发明纵向联邦学习系统优化方法第四实施例中,所述目标dnn用于预测用户购买意向,所述纵向联邦学习系统优化方法还包括:

步骤s60,将待预测用户的第一数据输入所述目标dnn的第一底层模型,得到第一底层预测输出;

在本实施例中,训练得到的目标dnn可以是用于预测用户购买意向,也即目标dnn的输出标签可以是购买意向,如输出结果为0或1,1表示用户会购买,0表示用户不会购买。第一设备可以是部署于电商机构的设备,第二设备可以是部署于银行机构的设备,由于业务不同,第一设备与第二设备中的用户数据的数据特征不相同,第一设备中用户数据的数据特征可包括用户身份特征,如年龄、存款、月薪等等,第二设备中用户数据的数据特征可包括用户购买特征,如购买次数、购买偏好等等。

第一设备可以联合第二设备对待预测用户的购买意向进行预测。具体地,第一设备中有待预测用户的第一数据,第二设备中有待预测用户的第二数据。

第一设备将待预测用户的第一数据输入目标dnn的第一底层模型,得到第一底层预测输出。

步骤s70,与所述第二设备进行交互,获得所述目标dnn的交互层模型的交互层预测输出,其中,所述目标dnn的交互层模型用于拼接所述第一底层预测输出和第二底层预测输出,所述第二设备将所述待预测用户的第二数据输入所述目标dnn的第二底层模型得到所述第二底层预测输出;

第二设备将待预测用户的第二数据输入目标dnn的第二底层模型,得到第二底层预测输出。

第一设备与第二设备进行交互,获得目标dnn的交互层模型的交互层输出,交互层模型用于拼接第一底层预测输出和第二底层预测输出。具体地,在第一设备与第二设备互相信任的场景或对数据安全需求较低时,第二设备可以直接将第二底层预测输出发送给第一设备。在第一设备与第二设备互不信任的场景或对数据安全需求较高时,第一设备与第二设备可通过加密和加噪声技术进行交互,从而避免双方的隐私数据泄露给对方或第三方。需要说明的是,若采用加密和加噪声技术进行交互,则第一设备和第二设备进行交互,计算交互层预测输出的过程,与上述第二实施例中的交互计算交互层输出的过程类似,在此不进行详细说明。

步骤s80,将所述交互层预测输出输入所述目标dnn的上层模型,得到所述待预测用户的购买意向。

第一设备将交互层预测输出输入目标dnn的上层模型,得到待预测用户的购买意向。需要说明的是,目标dnn还可以是用于除购买意向预测以外其他的应用场景,如还可以应用于绩效等级预测、论文价值评价、机器翻译、语音识别、广告推荐、视觉安防、情感分类等等,本发明实施例在此不做限定。

此外,此外本发明实施例还提出一种纵向联邦学习系统优化装置,部署于基于纵向联邦学习训练深度神经网络dnn的第一设备,所述第一设备拥有标签数据,所述dnn包括所述第一设备中的第一底层模型、交互层模型和上层模型,还包括参与纵向联邦学习的第二设备中的第二底层模型,参照图4,所述纵向联邦学习系统优化装置包括:

输入模块10,用于将所述第一设备中的第一训练数据输入所述第一底层模型得到第一底层输出;

交互模块20,用于与所述第二设备进行交互,获得所述交互层模型的交互层输出,其中,所述交互层模型用于拼接所述第一底层输出和第二底层输出,所述第二设备将第二训练数据输入所述第二底层模型得到所述第二底层输出;

训练模块30,用于将所述交互层输出输入所述上层模型,采用上层模型输出和所述标签数据计算最终误差,并后向传播所述最终误差以更新所述dnn中各层模型的模型参数,循环迭代直到满足预设停止条件时得到训练完成的目标dnn。

进一步地,所述交互模块20包括:

第一计算单元,用于采用所述第一底层输出和所述交互层模型中与所述第一设备对应的第一拼接参数计算得到第一拼接部分。

第一交互单元,用于与所述第二设备基于加密和加噪声技术进行交互,获得所述第二设备对应的第二拼接部分;

拼接单元,用于采用所述交互层模型对所述第一拼接部分和第二拼接部分进行拼接,得到交互层输出。

进一步地,所述交互单元包括:

接收子单元,用于接收所述第二设备发送的第二加密底层输出,其中,所述第二设备采用预设加密算法对所述第二底层输出进行加密,得到所述第二加密底层输出;

第一计算子单元,用于采用所述第二加密底层输出,和所述交互层模型中与所述第二设备对应的带累积噪声的第二拼接参数,计算得到第二加密拼接部分;

第一噪声添加子单元,用于对所述第二加密拼接部分进行加噪声操作,并将加噪声的第二加密拼接部分返回给所述第二设备,以供所述第二设备对所述加噪声的第二加密拼接部分进行解密,并对解密结果进行去除累积噪声操作得到第二带噪声拼接部分;

第一去噪声子单元,用于对从所述第二设备接收到的所述第二带噪声拼接部分进行去噪声操作,得到第二拼接部分。

进一步地,所述训练模块30包括:

第二计算单元,用于采用所述最终误差计算所述上层模型的模型参数对应的上层梯度,并根据所述上层梯度更新所述上层模型的模型参数;

第三计算单元,用于根据所述最终误差计算得到交互层误差,并根据所述交互层误差和所述第一底层输出计算得到所述第一设备对应的第一拼接参数的第一梯度,以及根据所述交互层误差和所述第一拼接参数计算得到第一底层模型误差;

第二交互单元,用于采用所述交互层误差和所述第一设备进行交互计算,得到所述第二设备对应的第二拼接参数的第二带噪声梯度和加密的第二底层模型误差;

更新单元,用于采用所述第二带噪声梯度更新所述第二设备对应的带累积噪声的第二拼接参数,采用所述第一梯度更新所述第一拼接参数,以及根据所述第一底层模型误差更新所述第一底层模型的模型参数;

发送单元,用于将所述加密的第二底层模型误差发送给所述第二设备,以供所述第二设备对加密的第二底层模型误差进行解密后,采用解密结果更新所述第二底层模型的模型参数。

进一步地,所述第二交互单元包括:

第二计算子单元,用于根据所述第二加密底层输出和所述交互层误差,计算得到所述第二设备对应的第二拼接参数的第二加密梯度;

第二噪声添加子单元,用于对所述第二加密梯度进行加噪声操作得到加噪声的第二加密梯度并发送给所述第二设备,以供所述第二设备对所述加噪声的第二加密梯度进行解密后进行加噪声操作得到双重噪声的第二梯度,并将所述双重噪声的第二梯度和加密的累积噪声返回给所述第一设备;

第三计算子单元,用于根据所述交互层误差、所述加密的累积噪声和所述第二设备对应的带累积噪声的第二拼接参数计算得到加密的第二底层模型误差;

第二去噪声子单元,对所述双重噪声的第二梯度进行去噪声操作,得到第二带噪声梯度。

进一步地,所述纵向联邦学习系统优化装置还包括:

对齐模块,用于与所述第二设备进行样本对齐确定交集样本;

获取模块,用于从样本数据集中获取所述交集样本对应的第一训练数据。

进一步地,所述预设加密算法为同态加密算法。

进一步地,所述输入模块10还用于将待预测用户的第一数据输入所述目标dnn的第一底层模型,得到第一底层预测输出;

所述交互模块20还用于与所述第二设备进行交互,获得所述目标dnn的交互层模型的交互层预测输出,其中,所述目标dnn的交互层模型用于拼接所述第一底层预测输出和第二底层预测输出,所述第二设备将所述待预测用户的第二数据输入所述目标dnn的第二底层模型得到所述第二底层预测输出;

所述纵向联邦学习系统优化装置还包括:

预测模块,用于将所述交互层预测输出输入所述目标dnn的上层模型,得到所述待预测用户的购买意向。

本发明纵向联邦学习系统优化装置的具体实施方式的拓展内容与上述纵向联邦学习系统优化方法各实施例基本相同,在此不做赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有纵向联邦学习系统优化程序,所述纵向联邦学习系统优化程序被处理器执行时实现如下所述的纵向联邦学习系统优化方法的步骤。

本发明纵向联邦学习系统优化设备和计算机可读存储介质的各实施例,均可参照本发明纵向联邦学习系统优化方法各个实施例,此处不再赘述。

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

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1