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

文档序号:19572576发布日期:2019-12-31 19:06阅读:182来源:国知局
纵向联邦学习系统优化方法、装置、设备及可读存储介质与流程

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



背景技术:

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

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

但是,目前在使用通过纵向联邦学习训练好的模型时,需要结合参与联邦学习的所有参与者的数据才能够进行完成预测任务,然而,现实场景可能是一个参与者需要对其本地的用户进行预测,但其他参与者并不是都有该用户的数据,或者,该参与者因为合作取消等原因不能获得其他参与者的数据,从而导致该参与者无法使用训练好的模型对该用户进行预测,导致训练好的模型使用范围存在局限性。



技术实现要素:

本发明的主要目的在于提供一种纵向联邦学习系统优化方法、装置、设备及可读存储介质,旨在实现纵向联邦学习的参与者在使用通过纵向联邦学习训练好的模型时,无需其他参与者的配合也能够独立使用模型。

为实现上述目的,本发明提供一种纵向联邦学习系统优化方法,所述纵向联邦学习系统优化方法应用于协调设备,所述协调设备与至少两个参与设备通信连接,所述纵向联邦学习系统优化方法包括以下步骤:

获取对各所述参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各所述参与设备各自拥有的样本的数据特征不完全相同;

根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据;

根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。

可选地,所述待训练机器学习模型包括协调方子模型和参与方子模型,所述协调方子模型的输入数据特征维度可变,所述协调方子模型存储在所述协调设备中,所述参与方子模型存储在所述参与设备中,所述根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据的步骤包括:

接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自的参与方子模型,得到各条样本分别对应的所述中间输出;

根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

所述根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型的步骤包括:

将多组所述输入数据输入所述协调方子模型得到多组目标输出;

根据所述多组目标输出计算梯度信息以更新所述协调方子模型,并将所述梯度信息反向传播给各所述参与设备,以供各所述参与设备更新所述参与方子模型;

迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型。

可选地,协调设备中包括tee模块,所述接收各所述参与设备发送的中间输出的步骤包括:

接收各所述参与设备发送的加密后的中间输出,其中,各所述参与设备将所述中间输出加密后发送给所述协调设备;

在所述tee模块中对所述加密后的中间输出进行解密,根据解密得到的所述中间输出在所述tee模块中执行步骤:根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

在所述tee模块中得到所述梯度信息后,所述并将所述梯度信息反向传播给各所述参与设备的步骤包括:

对所述梯度信息进行加密,将加密后的所述梯度信息反向传播给各所述参与设备。

可选地,所述迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型的步骤之后,还包括:

接收各所述参与设备中部分参与设备发送的预测中间输出,其中,所述部分参与设备是在各自本地拥有待预测用户的数据的参与设备,所述部分参与设备采用各自本地的数据输入各自本地训练完成的参与方子模型,得到所述预测中间输出;

将所述预测中间输出组合得到所述待预测用户对应的一组预测输入数据;

将所述预测输入数据输入训练完成的协调方子模型,得到所述待预测用户的目标预测结果。

可选地,所述迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型的步骤之后,还包括:

将训练完成的协调方子模型发送给各所述参与设备,以供各所述参与设备使用训练完成的协调方子模型,和各自本地训练完成的参与方子模型,预测得到各自本地的待预测用户的目标预测结果。

可选地,所述参与方子模型是输入数据特征维度可变的模型,所述接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出的步骤包括:

接收各所述参与设备发送的中间输出,其中,各所述参与设备对各自训练样本集中各条样本的数据进行数据特征选择,得到各条样本部分数据特征的数据,将所述部分数据特征的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出。

可选地,所述待训练机器学习模型是有监督学习模型,所述纵向联邦学习系统优化方法还包括:

接收拥有标签数据的参与设备发送的标签数据;

所述根据所述多组目标输出计算梯度信息的步骤包括:

根据所述多组目标输出和所述标签数据计算预设损失函数,根据所述预设损失函数计算梯度信息。

为实现上述目的,本发明还提供一种纵向联邦学习系统优化装置,所述纵向联邦学习系统优化装置部署于协调设备,所述协调设备与至少两个参与设备通信连接,其特征在于,所述纵向联邦学习系统优化装置包括:

获取模块,用于获取对各所述参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各所述参与设备各自拥有的样本的数据特征不完全相同;

协作模块,用于根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据;

训练模块,用于根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。

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

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

本发明中,通过获取对各参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各参与设备各自拥有的样本的数据特征不完全相同;根据样本对齐结果与各参与设备协作得到多组数据维度不同的输入数据;根据多组输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。本发明实现了纵向联邦学习的参与者在使用通过纵向联邦学习训练好的模型时,在没有其他参与者的配合的情况下,也能够独立使用模型,从而扩大了纵向联邦学习的应用范围。

附图说明

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

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

图3为本发明实施例涉及的一种协调设备和参与设备协作训练模型的示意图;

图4为本发明实施例涉及的一种协调设备和参与设备在tee模块中协作训练模型的示意图;

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

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

具体实施方式

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

如图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中可以包括操作系统、网络通信模块、用户接口模块以及纵向联邦学习系统优化程序。还可包括tee(trustedexecutionenvironment,可信执行环境)模块。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持联邦学习隐私数据处理程序以及其它软件或程序的运行。tee是主处理器内的安全区域,运行在一个独立的环境中且与操作系统并行运行,它确保tee中加载的代码和数据的机密性和完整性都得到保护。tee中运行的受信任应用程序可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。在本实施例中,tee模块的实现方式可以有多种,如基于intel的softwareguardextensions(软件保护扩展,sgx)、amd的secureencryptedvirtualization(安全虚拟化加密,sev)、arm的trustzone或mit的sanctum。对tee模块的认证和鉴权,可以通过第三方安全服务器来完成。例如,当tee是使用intel的sgx时,可以通过intel的安全服务器对所述tee进行认证,即保证所述tee的安全。

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

所述纵向联邦学习系统优化方法应用于协调设备,所述协调设备与至少两个参与设备通信连接,所述纵向联邦学习系统优化方法包括以下步骤:

获取对各所述参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各所述参与设备各自拥有的样本的数据特征不完全相同;

根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据;

根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。

进一步地,所述待训练机器学习模型包括协调方子模型和参与方子模型,所述协调方子模型的输入数据特征维度可变,所述协调方子模型存储在所述协调设备中,所述参与方子模型存储在所述参与设备中,所述根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据的步骤包括:

接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自的参与方子模型,得到各条样本分别对应的所述中间输出;

根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

所述根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型的步骤包括:

将多组所述输入数据输入所述协调方子模型得到多组目标输出;

根据所述多组目标输出计算梯度信息以更新所述协调方子模型,并将所述梯度信息反向传播给各所述参与设备,以供各所述参与设备更新所述参与方子模型;

迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型。

进一步地,协调设备中包括tee模块,所述接收各所述参与设备发送的中间输出的步骤包括:

接收各所述参与设备发送的加密后的中间输出,其中,各所述参与设备将所述中间输出加密后发送给所述协调设备;

在所述tee模块中对所述加密后的中间输出进行解密,根据解密得到的所述中间输出在所述tee模块中执行步骤:根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

在所述tee模块中得到所述梯度信息后,所述并将所述梯度信息反向传播给各所述参与设备的步骤包括:

对所述梯度信息进行加密,将加密后的所述梯度信息反向传播给各所述参与设备。

进一步地,所述迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型的步骤之后,处理器1001还可以用于调用存储器1005中存储的联邦学习隐私数据处理程序,并执行以下步骤:

接收各所述参与设备中部分参与设备发送的预测中间输出,其中,所述部分参与设备是在各自本地拥有待预测用户的数据的参与设备,所述部分参与设备采用各自本地的数据输入各自本地训练完成的参与方子模型,得到所述预测中间输出;

将所述预测中间输出组合得到所述待预测用户对应的一组预测输入数据;

将所述预测输入数据输入训练完成的协调方子模型,得到所述待预测用户的目标预测结果。

进一步地,所述迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型的步骤之后,处理器1001还可以用于调用存储器1005中存储的联邦学习隐私数据处理程序,并执行以下步骤:

将训练完成的协调方子模型发送给各所述参与设备,以供各所述参与设备使用训练完成的协调方子模型,和各自本地训练完成的参与方子模型,预测得到各自本地的待预测用户的目标预测结果。

进一步地,所述参与方子模型是输入数据特征维度可变的模型,所述接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出的步骤包括:

接收各所述参与设备发送的中间输出,其中,各所述参与设备对各自训练样本集中各条样本的数据进行数据特征选择,得到各条样本部分数据特征的数据,将所述部分数据特征的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出。

进一步地,所述待训练机器学习模型是有监督学习模型,所述纵向联邦学习系统优化方法还包括:

接收拥有标签数据的参与设备发送的标签数据;

所述根据所述多组目标输出计算梯度信息的步骤包括:

根据所述多组目标输出和所述标签数据计算预设损失函数,根据所述预设损失函数计算梯度信息。

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

本发明实施例提供了纵向联邦学习系统优化方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明第一实施例联邦学习隐私数据处理方法应用于协调设备,协调设备与至少一个参与设备通信连接,本发明实施例协调设备和参与设备可以是智能手机、个人计算机和服务器等设备,参与设备可支持联邦学习模型的训练,在此不做具体限制。

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

步骤s10,获取对各所述参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各所述参与设备各自拥有的样本的数据特征不完全相同;

在本实施例中,协调设备与各参与设备可通过握手、身份认证预先建立通信连接。各个参与设备各自本地拥有用于训练机器学习模型的训练样本集以及样本对应的数据集,各个参与设备本地的样本的数据特征不完全相同,可能是完全互补,因此,需要通过纵向联邦学习结合各个参与设备的数据特征进行机器学习模型的训练。

各个参与设备可预先采用各自的训练样本集进行样本对齐,确定各个参与设备共有的样本,或进一步确定各个参与设备非共有的样本,样本对齐的方式有多种。可以是各个参与设备将各自本地的训练样本集发送给协调设备,由协调设备对各个训练样本集进行样本对齐,得到样本对齐结果。也可以是各个参与设备之间两两进行样本对齐,确定两个训练样本集的交集和并集,然后将各个参与设备样本对齐的结果汇总到协调设备,协调设备综合各个样本对齐的结果得到一个整体的样本对齐结果。样本对齐结果中可包括各个参与设备拥有的样本的并集,以及样本并集中各条样本在各个参与设备中的数据分布情况。如参与设备有3个,分别是a、b和c,样本并集是{u1,u2,u3},样本对齐结果是参与设备a、b和c均有u1的数据,参与设备a和b有u2的数据,参与设备b和c有u3的数据。

需要说明的是,协调设备也可以是拥有样本数据的参与设备,同时发挥协调设备和参与设备的功能,那么此时,与协调设备通信连接的参与设备可以只有一个,也即,保证至少有两个参与设备进行纵向联邦学习。

步骤s20,根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据;

协调设备在获取到样本对齐结果后,可与各个参与设备协作,得到多组数据维度不同的输入数据。其中,输入数据可以是向量也可以是矩阵,数据维度是指向量或矩阵的维度。由于各条样本在各个参与设备的数据分布情况不都相同,如上述样本u1、u2和u3在参与设备中的数据分布各不相同,因此,各条样本所对应的数据的特征维度不都相同,如u1对应数据的特征维度是参与设备a、b和c的数据特征维度相加,u2对应数据的特征维度是参与设备a和b的数据特征维度相加。将各个参与设备中各条样本的数据进行组合,可得到各条样本的维度不同的数据,如若参与设备a、b和c的数据特征维度仅为10,则u1的数据维度是30,u2的数据维度是20,u3的数据维度是20。根据协调设备与参与设备协作的方式不同,可将各条样本对应的数据直接作为输入数据,也可以进行转化,将转化后的结果作为输入数据。

具体地,协调设备与参与设备协作的方式可以是:各参与设备在本地将训练样本集中样本对应的数据进行加密,发送给协调设备;协调设备中预先构建tee模块,在tee模块中对各参与设备发送的数据进行解密,然后根据样本对齐结果将各个数据进行组合,得到多组数据维度不同的数据,作为输入数据。由于协调设备是在tee模块中进行数据的解密以及后续的使用等操作,在协调设备tee模块之外无法获知各参与设备的数据,从而避免了在协调设备与参与设备互不信任的场景下,参与设备的隐私数据泄露给协调设备。

步骤s30,根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。

协调设备中预先设置了待训练的机器学习模型,该待训练机器学习模型的输入数据特征维度可变。具体地,输入数据特征维度可变的机器学习模型可采用动态的循环神经网络模型,例如,动态的长短时记忆(longshorttermmemorynetwork,lstm),或者是动态的门控循环单元(gatedrecurrentunit,gru),或者,也可以是空间金字塔池化卷积网络(spatialpyramidpoolingconvolutionalnetworks,sppnet)这样的模型,sppnet是一种可以不用考虑图像大小的网络结构。

协调设备在获取到多组输入数据后,根据多组输入数据对待训练机器学习模型进行训练,训练完成即得到目标机器学习模型。具体地,协调设备可将多组数据分别输入待训练机器学习模型,根据输出值调整待训练学习模型的参数,经过多次迭代训练,确定最终的参数,即得到训练完成的机器学习模型,作为目标机器学习模型。

进一步地,若待训练机器学习模型是有监督的学习模型,则协调设备需要获取标签数据,具体地,拥有标签数据的参与设备可将标签数据发送给协调设备。

在本实施例中,目标机器学习模型的训练过程中,模型的输入数据可以是来自一个参与设备的数据,也可以是几个参与设备的数据,即输入数据的维度是可变的,因此可以充分利用各个参与设备的本地数据进行模型训练,而不只是采用各个参与设备都有的样本的数据进行训练,提高了数据利用率;在目标机器学习模型的使用过程中,模型的输入数据的维度也是可变的,即可以是只有一个参与设备的数据,也可以是有多个参与设备的数据,若目标机器学习模型用于完成预测任务,则根据待预测对象的数据分布情况不同,输入数据的维度不同;因此,当只有一个参与设备或者是只有部分参与设备拥有待预测对象的数据时,也能够使用目标机器学习模型完成预测任务,从而扩大了目标机器学习模型的应用范围,也即扩大了纵向联邦学习应用范围。

因此,在本实施例中,通过获取对各参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各参与设备各自拥有的样本的数据特征不完全相同;根据样本对齐结果与各参与设备协作得到多组数据维度不同的输入数据;根据多组输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。本实施例实现了纵向联邦学习的参与者在使用通过纵向联邦学习训练好的模型时,在没有其他参与者的配合的情况下,也能够独立使用模型,从而扩大了纵向联邦学习的应用范围。

进一步地,目标机器学习模型可以是用于预测用户购买意向的预测模型,目标机器学习模型的输出标签可以是购买意向,如输出结果为0或1,1表示用户会购买,0表示用户不会购买;各个参与设备本地拥有用户不同数据特征的数据,如部署于银行机构的参与设备拥有的数据特征可包括用户身份特征,如年龄、存款、月薪等等,部署于电商机构的参与设备拥有的数据特征可包括用户购买特征,如购买次数、购买偏好等等;当协调设备或其中一个参与设备需要对待预测用户使用预测模型时,先与其他参与设备进行样本对齐,即确定其他参与设备是否拥有该待预测用户的数据,若有该待预测用户的数据并可以提供数据,则与其他参与设备联合进行预测,若没有则采用本地的数据进行预测;拥有该待预测用户的数据的参与设备,可将数据发送给协调设备,由协调设备将各个参与设备发送的数据进行组合,作为输入数据输入预测模型,得到购买意向预测结果,将预测结果发送给待预测用户对应的参与设备;还可以是协调设备将训练好的预测模型发送给各个参与设备,各个参与设备在使用时不通过协调设备即可完成预测任务。

需要说明的是,目标机器学习模型还可以是用于除购买意向预测以外其他的应用场景,如还可以应用于绩效等级预测、论文价值评价、机器翻译、语音识别、广告推荐、视觉安防、情感分类等,本发明实施例在此不做限定。

进一步地,基于上述第一实施例,提出本发明纵向联邦学习系统优化方法第二实施例,在本发明纵向联邦学习系统优化方法第二实施例中,所述待训练机器学习模型包括协调方子模型和参与方子模型,所述协调方子模型的输入数据特征维度可变,所述协调方子模型存储在所述协调设备中,所述参与方子模型存储在所述参与设备中,所述步骤s20包括:

步骤s201,接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自的参与方子模型,得到各条样本分别对应的所述中间输出;

进一步地,在本实施例中,如图3所示,协调设备与参与设备协作的方式可以是:协调设备中存储有待训练的协调方子模型(以下用m0表示),各参与设备中分别存储有一个待训练的参与方子模型(以下用mk表示,其中k是参与设备编号,k=0,1,2…);各参与设备中的参与方子模型可以是由协调设备发送给各个参与设备的,也可以是预先在各参与设备中设置的,本实施例中对协调方子模型和参与方子模型的来源不作限制;m0和mk均可以是机器学习模型,m0的输入数据的维度可变,具体可采用动态的循环神经网络模型等实现输入数据维度可变;mk的输入是对应的参与设备本地样本的数据,输入数据的维度可以是对应参与设备本地的数据特征维度,如用fk表示各参与设备的数据特征,fk可以是一个向量或矩阵,用dk表示参与设备数据特征fk的维度,则mk的输入数据维度是dk;mk的输出数据用rk表示,rk可以是序列、或者矩阵、或者向量;m0的输入数据可以是{r1,r2,…rk}中的任意组合,m0的输出可根据训练模型的目标进行设置,如目标是对购买意向进行预测,则输出可以是0或1,以用于表示用户是否购买的意向。协调设备和参与设备可通过分裂学习(splitlearning)的方式进行协调方子模型和参与方子模型的训练。

具体地,各个参与设备在本地采用训练样本集中各条样本的数据输入各自的参与方子模型,得到各条样本对应的中间输出,如参与设备k采用训练样本集中各条样本的数据xi输入mk中,得到rk,其中,i表示样本编号,xi是数据特征fk下的数据,维度是dk。由于样本在各个参与设备的数据分布情况不同,所以各条样本对应的中间输出的个数和来源可能不同,如样本u1在参与设备1和2中有数据,则样本u1对应的中间输出有两个,即参与设备1和2采用本地数据得到的中间输出,样本u2在参与设备1、2和3中有数据,则样本u2对应的中间输出有三个,即参与设备1、2和3采用本地数据得到的中间输出。各参与设备将中间输出发送给协调设备,进一步地,为避免数据在传输过程中泄露,可对中间输出进行加密后发送给协调设备,协调设备在使用时先解密。

步骤s202,根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

协调设备接收各个参与设备发送的中间输出,根据样本对齐结果中各条样本在各参与设备的数据分布情况,将各中间输出进行组合,得到多组数据维度不同的输入数据。具体地,协调设备将同一条样本对应的中间输出进行组合,得到该条样本对应的输入数据;如上述例子中,协调设备将参与设备1和2发送的样本u1对应的中间输出进行组合,作为一条输入数据,该输入数据的维度是r1的维度加r2的维度;将参与设备1、2和3发送的样板u1对应的中间输出进行组合,作为一条输入数据,该输入数据的维度是r1的维度加r2的维度加r3的维度。那么,协调设备组合得到的输入数据的组数,就是各个参与设备训练样本集的并集中样本的条数,各组输入数据的维度可能相同也可能不相同。

所述步骤s30包括:

步骤s301,将多组所述输入数据输入所述协调方子模型得到多组目标输出;

协调设备将多组输入数据输入协调方子模型,得到多组目标输出,即得到每组输入数据对应的输出。

步骤s302,根据所述多组目标输出计算梯度信息以更新所述协调方子模型,并将所述梯度信息反向传播给各所述参与设备,以供各所述参与设备更新所述参与方子模型;

协调设备根据多组目标输出计算梯度信息,并根据梯度信息更新协调方子模型的模型参数,并将梯度信息反向传播给各个参与设备,供各个参与设备更新参与方子模型的模型参数。具体地,协调设备计算的梯度信息可包括协调方子模型的损失函数对于协调方子模型的各个模型参数的梯度信息,还包括损失函数对于协调方子模型的输入数据特征的梯度信息。协调设备根据协调方子模型的各个模型参数的梯度信息,更新协调方子模型的各个模型参数,将协调方子模型的输入数据特征的梯度信息对应发送给各个参与设备,各个参与设备根据接收到的梯度信息,反向推导参与方子模型的各个模型参数的梯度信息,根据参与方子模型的各个模型参数的梯度信息更新参与方子模型的各个模型参数。

步骤s303,迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型。

协调设备可在每次模型参数更新前或更新后检测是否满足预设停止条件。其中,预设停止条件可以是预先根据需要进行设置的停止条件,损失函数收敛,或迭代训练的次数达到最大次数,或迭代训练的时间达到最大训练时间。若协调设备检测到满足预设停止条件,则不再继续更新模型参数,以当前的模型参数作为最终的模型参数,确定了模型参数的协调方子模型和参与方子模型就是训练完成的协调方子模型和参与方子模型,将训练完成的协调方子模型和参与方子模型作为目标机器学习模型。若协调设备检测未满足预设停止条件,则参与设备在更新模型参数后,继续使用本地数据输入参与方子模型得到中间输出,发送给协调设备,循环迭代直到协调设备检测到满足预设停止条件。

进一步地,当目标机器学习模型是有监督学习模型时,所述纵向联邦学习系统优化方法还包括:

步骤s40,接收拥有标签数据的参与设备发送的标签数据;

当目标机器学习模型是有监督学习模型时,协调设备需要根据标签数据计算损失函数的值。标签数据可能在一个或多个参与设备中,拥有标签数据的参与设备可将标签数据发送给协调设备。若协调设备是一个拥有标签数据的参与设备,则无需其他参与设备发送标签数据。

所述步骤s302中的根据所述多组目标输出计算梯度信息的步骤包括:

步骤s3021,根据所述多组目标输出和所述标签数据计算预设损失函数,根据所述预设损失函数计算梯度信息。

协调设备将多组目标输出和标签数据代入预设的损失函数,并计算损失函数对协调方子模型的各个模型参数以及对协调方子模型的输入数据特征的梯度信息。

在本实施例中,在参与方子模型和协调方子模型的训练过程中,协调方子模型的输入数据可以是来自一个参与设备的数据,也可以是来自几个参与设备的数据,即输入数据的维度是可变的,因此可以充分利用各个参与设备的本地数据进行模型训练,而不只是采用各个参与设备都有的样本的数据进行训练,提高了数据利用率;在使用训练完成的目标机器学习模型时,由于协调方子模型的输入数据特征维度是可变的,所以可以只采用一个参与设备发送的中间输出作为输入数据,也可以采用多个参与设备的中间输出作为输入数据,若目标机器学习模型用于完成预测任务,则具体根据待预测对象的数据分布情况不同,输入数据的维度不同;因此,当只有一个参与设备或者是只有部分参与设备拥有待预测对象的数据时,也能够使用目标机器学习模型完成预测任务,从而扩大了目标机器学习模型的应用范围,也即扩大了纵向联邦学习应用范围。

进一步地,基于上述第一和第二实施例,提出本发明纵向联邦学习系统优化方法第三实施例,在本发明纵向联邦学习系统优化方法第三实施例中,协调设备中包括tee模块,所述步骤s201中的接收各所述参与设备发送的中间输出的步骤包括:

步骤s2011,接收各所述参与设备发送的加密后的中间输出,其中,各所述参与设备将所述中间输出加密后发送给所述协调设备;

在本实施例中,为适应协调设备与参与设备互相不信任的场景,协调设备中可设置tee模块,在tee模块中进行隐私数据的处理,在tee模块外隐私数据均是加密的,从而无法获取参与设备的隐私数据。具体地,各个参与设备在得到中间输出后,将中间输出加密后发送给协调设备。

步骤s2012,在所述tee模块中对所述加密后的中间输出进行解密,根据解密得到的所述中间输出在所述tee模块中执行步骤s202、s301、s302和s303;

协调设备在tee模块中对加密后的中间输出进行解密,还原得到中间输出,在tee模块中执行步骤s202、s301、s302和s303。也即协调设备在tee模块中根据样本对齐结果将各中间输出进行组合得到多组数据维度不同的输入数据,然后将多组输入数据输入协调方子模型,得到多组目标输出,根据多组目标输出计算梯度信息,根据梯度信息更新协调方子模型的模型参数。并将梯度信息反向传播给参与设备,供各个参与设备更新参与方子模型。迭代训练直到检测到满足停止条件时停止训练。

在所述tee模块中得到所述梯度信息后,所述步骤s302中的并将所述梯度信息反向传播给各所述参与设备的步骤包括:

步骤s3021,对所述梯度信息进行加密,将加密后的所述梯度信息反向传播给各所述参与设备。

协调设备在tee模块中计算得到梯度信息后,对梯度信息进行加密,将加密后的梯度信息反向传播给各个参与设备。也即,参与设备发送的中间输出,以及依据中间输出计算得到的梯度信息只在协调设备的tee模块中可见,协调设备的tee模块外无法获得中间输出和梯度信息,因此,协调设备无法获得参与设备的隐私数据,从而保障了在参与设备与协调设备互不信任的场景下,参与设备的隐私数据不会泄露给协调设备。参与设备在接收到加密的梯度信息后,先对加密的梯度信息进行解密,还原得到梯度信息后,再依据梯度信息更新参与方子模型的模型参数。

需要说明的是,协调设备与参与设备中加密和解密的方式对应,如参与设备中采用公钥对中间输出进行加密,则协调设备在tee模块中采用与公钥对应的私钥进行解密。

进一步地,参与设备中也可以设备tee模块,以保证协调设备的隐私数据不会泄露给参与设备,如图4所示,参与设备可在本地的tee模块中对中间输出进行加密,将加密后的中间输出发送给协调设备,并对接收到的加密后的梯度信息在tee模块中进行解密,在tee模块中对参与方子模型更新模型参数。

在本实施例中,通过在协调设备中设置tee模块,协调设备在tee模块中对原始数据进行处理,在tee模块外则只能获得加密数据,以保证在参与设备与协调设备互不信任的场景时,参与设备隐私数据不会泄露给协调设备,从而保证了参与设备数据的安全性。

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

步骤s50,接收各所述参与设备中部分参与设备发送的预测中间输出,其中,所述部分参与设备是在各自本地拥有待预测用户的数据的参与设备,所述部分参与设备采用各自本地的数据输入各自本地训练完成的参与方子模型,得到所述预测中间输出;

在训练得到目标机器学习模型后,参与设备可以利用本地的训练完成的参与方子模型,与协调设备中训练完成的协调方子模型,一起完成预测任务。优选地,待预测用户所在的参与设备与其他参与设备先进行样本对齐,即确认其他参与设备是否都有该待预测用户的数据,在其他参与设备都有该待预测用户的数据并可以协作完成预测任务的情况下,与其他参与设备一起协作完成预测任务,若其他参与设备没有数据或不能够协作,则该参与设备可独自与协调设备完成预测任务。

具体地,协调设备接收所有参与设备中部分参与设备发送的预测中间输出,其中,部分参与设备是在各自本地拥有待预测用户的数据的参与设备,需要说明的是,部分参与设备的个数最少是一个(可能是待预测用户所在参与设备,也可能其他参与设备),最多是所有的参与设备。部分参与设备将本地的待预测用户的数据输入各自训练完成的参与方子模型,得到各自的预测中间输出,并发送给协调设备。

步骤s60,将所述预测中间输出组合得到所述待预测用户对应的一组预测输入数据;

协调设备将预测中间输出组合得到待预测用户对应的一组预测输入数据。如部分参与设备有三个,每个中间输出是10维向量,则协调设备将3个预测中间输出组合得到30维的向量,作为一组预测输入数据;

步骤s70,将所述预测输入数据输入训练完成的协调方子模型,得到所述待预测用户的目标预测结果。

协调设备将预测输入数据输入训练完成的协调方子模型,得到待预测用户的目标预测结果。协调设备可将目标预测结果返回给参与设备。需要说明的是,待预测用户也可以是协调设备中的用户。

在本实施例中,由于协调设备中训练完成的协调方子模型是输入数据特征维度可变的模型,因此只有一方参与设备拥有数据的情况下,也可以是完成预测任务,从而实现了参与设备在没有其他参与设备的帮助,或只有部分参与设备帮助的情况下,也能够使用通过联邦学习训练完成的目标机器学习模型,从而扩大了纵向联邦学习的应用范围。

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

步骤s80,将训练完成的协调方子模型发送给各所述参与设备,以供各所述参与设备使用训练完成的协调方子模型,和各自本地训练完成的参与方子模型,预测得到各自本地的待预测用户的目标预测结果。

在本实施例中,在训练得到目标机器学习模型后,协调设备可将训练完成的协调方子模型发送给各个参与设备,各个参与设备使用训练完成的协调方子模型和各自本地训练完成的参与方子模型,预测得到各自本地的待预测用户的目标预测结果。优选地,待预测用户所在的参与设备与其他参与设备先进行样本对齐,即确认其他参与设备是否都有该待预测用户的数据,在其他参与设备都有该待预测用户的数据并可以协作完成预测任务的情况下,与其他参与设备一起协作完成预测任务,若其他参与设备没有数据或不能够协作,则该参与设备可独自使用本地的参与方子模型和协调方子模型完成预测任务。

在本实施例中,协调设备将训练完成的输入数据特征维度可变的协调方子模型发送给各个参与设备,使得各个参与设备在没有其他参与设备帮助,或者只有部分参与设备帮助的情况下,也能够使用通过联邦学习训练得到的目标机器学习模型,从而扩大了纵向联邦学习的应用范围。

进一步地,所述参与方子模型是输入数据特征维度可变的模型,所述步骤s201包括:

步骤s2013,接收各所述参与设备发送的中间输出,其中,各所述参与设备对各自训练样本集中各条样本的数据进行数据特征选择,得到各条样本部分数据特征的数据,将所述部分数据特征的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出。

在本实施例中,各参与设备本地的参与方子模型也可以是输入数据特征维度可变的模型,具体地,可采用动态的循环神经网络模型,例如,动态的长短时记忆(longshorttermmemorynetwork,lstm),或者是动态的门控循环单元(gatedrecurrentunit,gru)来实现输入数据特征维度可变。

各个参与设备对各自训练样本集中各条样本的数据进行数据特征选择,得到各条样本部分数据特征的数据。参与设备进行数据特征选择的方式可以是预先设置的,也可以是随机选择,对每条样本的数据可选择不同的数据特征,如参与设备中一共有三个数据特征,可对第一条样本选择第一个数据特征下的数据,对第二个样本选择第一和第二个数据特征下的数据,对第三条样本选择第一、第二和第三个数据特征下的数据,则最终得到的每条样本的数据的维度不同。

参与设备将各条样本的部分数据特征的数据输入参与方子模型,得到每条样本对应的中间输出,并将各中间输出发送给协调设备。在本实施例中,在参与设备中设置输入数据特征维度可变的参与方子模型,使得参与设备可以选择各条样本的部分数据特征的数据输入参与方子模型,而不一定是全部数据特征的数据,从而在训练样本集比较大,数据特征较多的情况下,在不影响最终训练得到的目标机器学习模型的质量的情况下,可以节省参与设备的计算量、减轻参与设备的处理负担和减少参与设备的资源消耗;并且,可以适应样本在某些数据特征下数据缺失的情况,扩大了目标机器学习模型的应用范围。

此外,此外本发明实施例还提出一种纵向联邦学习系统优化装置,所述纵向联邦学习系统优化装置部署于协调设备,所述协调设备与至少两个参与设备通信连接,参照图5,所述纵向联邦学习系统优化装置包括:

获取模块10,用于获取对各所述参与设备各自本地的训练样本集之间进行样本对齐得到的样本对齐结果,其中,各所述参与设备各自拥有的样本的数据特征不完全相同;

协作模块20,用于根据所述样本对齐结果与各所述参与设备协作得到多组数据维度不同的输入数据;

训练模块30,用于根据多组所述输入数据对预设的输入数据特征维度可变的待训练机器学习模型进行训练,得到目标机器学习模型。

进一步地,所述待训练机器学习模型包括协调方子模型和参与方子模型,所述协调方子模型的输入数据特征维度可变,所述协调方子模型存储在所述协调设备中,所述参与方子模型存储在所述参与设备中,所述协作模块20包括:

接收单元,用于接收各所述参与设备发送的中间输出,其中,各所述参与设备采用各自本地训练样本集中各条样本的数据输入各自的参与方子模型,得到各条样本分别对应的所述中间输出;

组合单元,用于根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

所述训练模块30包括:

输入单元,用于将多组所述输入数据输入所述协调方子模型得到多组目标输出;

更新单元,用于根据所述多组目标输出计算梯度信息以更新所述协调方子模型,并将所述梯度信息反向传播给各所述参与设备,以供各所述参与设备更新所述参与方子模型;

迭代训练单元,用于迭代训练直到检测到满足预设停止条件时,将训练完成的所述待训练机器模型作为目标机器学习模型。

进一步地,协调设备中包括tee模块,所述接收单元包括:

第一接收子单元,用于接收各所述参与设备发送的加密后的中间输出,其中,各所述参与设备将所述中间输出加密后发送给所述协调设备;

解密单元,用于在所述tee模块中对所述加密后的中间输出进行解密,根据解密得到的所述中间输出在所述tee模块中执行步骤:根据所述样本对齐结果中各条样本在各所述参与设备的数据分布情况,将各所述中间输出进行组合得到多组数据维度不同的输入数据;

所述更新单元包括:

反向传播子单元,用于在所述tee模块中得到所述梯度信息后,对所述梯度信息进行加密,将加密后的所述梯度信息反向传播给各所述参与设备。

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

第一接收模块,用于接收各所述参与设备中部分参与设备发送的预测中间输出,其中,所述部分参与设备是在各自本地拥有待预测用户的数据的参与设备,所述部分参与设备采用各自本地的数据输入各自本地训练完成的参与方子模型,得到所述预测中间输出;

组合模块,用于将所述预测中间输出组合得到所述待预测用户对应的一组预测输入数据;

输入模块,用于将所述预测输入数据输入训练完成的协调方子模型,得到所述待预测用户的目标预测结果。

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

发送模块,用于将训练完成的协调方子模型发送给各所述参与设备,以供各所述参与设备使用训练完成的协调方子模型,和各自本地训练完成的参与方子模型,预测得到各自本地的待预测用户的目标预测结果。

进一步地,所述参与方子模型是输入数据特征维度可变的模型,所述接收单元包括:

第二接收子单元,用于接收各所述参与设备发送的中间输出,其中,各所述参与设备对各自训练样本集中各条样本的数据进行数据特征选择,得到各条样本部分数据特征的数据,将所述部分数据特征的数据输入各自本地的参与方子模型,得到各条样本分别对应的所述中间输出。

进一步地,所述待训练机器学习模型是有监督学习模型,所述纵向联邦学习系统优化装置还包括:

第二接收模块,用于接收拥有标签数据的参与设备发送的标签数据;

所述更新单元包括:

计算子单元,用于根据所述多组目标输出和所述标签数据计算预设损失函数,根据所述预设损失函数计算梯度信息。

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

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

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

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

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

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

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

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