掌桥专利:专业的专利平台
掌桥专利
首页

一种隐私保护的模型训练方法、系统及装置

文献发布时间:2023-06-19 11:35:49


一种隐私保护的模型训练方法、系统及装置

技术领域

本说明书涉及机器学习领域,特别涉及一种隐私保护的模型训练方法、系统及装置。

背景技术

近年来,在数据分析、数据挖掘、经济预测等领域,机器学习模型被越来越广泛的用于分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此基于单个数据拥有方的数据训练得到的机器学习模型难以准确地刻画目标。为了得到更好的模型预测结果,通过对不同数据拥有方持有的不同数据采用联合学习的方式进行模型训练。

目前,如何在联合学习过程中保证隐私数据安全的情况下兼顾模型的个性化成为有待解决的问题。

发明内容

本说明书实施例之一提供一种隐私保护的模型训练方法。所述方法由参与训练的多个数据方中的某一数据方实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据;传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享数据确定第二共享数据;获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;基于更新后的模型以进行下一轮迭代更新,或将更新后的模型作为最终模型。

本说明书实施例之一提供一种隐私保护的模型训练系统,所述系统由参与训练的多个数据方中的某一数据方实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括模型训练模块、数据传输模块、第二更新模块以及确定模块,且在一轮迭代更新中:模型训练模块用于基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据;数据传输模块用于传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享数据确定第二共享数据;第二更新模块用于获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;确定模块用于基于更新后的模型以进行下一轮迭代更新,或将更新后的模型作为最终模型。

本说明书实施例之一提供一种隐私保护的模型训练装置,其中,所述装置包括处理器,所述处理器用于执行以上所述的隐私保护的模型训练方法。

本说明书实施例之一提供另一种隐私保护的模型训练方法,所述方法由服务器实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分;基于K个数据方的第一共享数据确定第二共享数据;将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。

本说明书实施例之一提供另一种隐私保护的模型训练系统,所述系统由服务器实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括数据获取模块、共享数据确定模块以及传输模块,且在一轮迭代更新中:数据获取模块用于获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分;共享数据确定模块用于基于K个数据方的第一共享数据确定第二共享数据;传输模块,用于将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。

本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,所述处理器用于执行以上所述的一种隐私保护的模型训练方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的隐私保护的模型训练系统的应用场景示意图;

图2是根据本说明书一些实施例所示的隐私保护的模型训练方法的示例性交互流程图;

图3是根据本说明书一些实施例所示的另一种隐私保护的模型训练方法的示例性流程图;

图4是根据本说明书一些实施例所示的一种隐私保护的模型训练系统的模块图;

图5是根据本说明书一些实施例所示的另一种隐私保护的模型训练系统的模块图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

随着移动终端如手机、平板、可穿戴设备的普及,数以亿计的与个体行为活动相关的海量数据也随之产生。移动终端设备的存储和计算能力的提高,个体对于行为相关数据隐私保护需求的提高,亟需保护隐私数据不出域和将平台计算转移到终端的新算法。

联邦学习(Federated Learning)通过对不同终端上算力和数据的联合,在终端设备上进行机器学习,保证了个体数据不出域;同时通过对于梯度的聚合,联合了终端设备进行联合训练,提升整体模型的泛化性。但同时,传统的联邦学习框架(例如,FedAvg)难以解决模型个性化的问题,提高了模型的泛化性往往会带来个性化的损失。具体的,一些实施例通过基于共享梯度而非共享训练样本数据进行联邦学习,从而减少隐私的泄露。但因为每个终端设备的模型需处理的任务不同,通过这种方式联合学习得到的通用模型往往不能在端侧上有较优的表现。

基于此,本说明书一些实施例中,提出一种基于多任务学习联合建模的隐私保护的模型训练方法,在保证各自端侧数据不出域的情况下,实现联合训练并得到个性化的端侧模型。以下是对该方法的详细说明。

图1是根据本说明书一些实施例所示的隐私保护的模型训练系统的应用场景示意图。

如图1所示,场景100可以包括服务器110,以及参与训练的多个数据方,多个数据方包括第一数据方120、第二数据方130以及第三数据方140。其中,数据方也可以被称为训练成员。例如,第一数据方120也可以被称为第一训练成员120,第二数据方130也可以被称为第二训练成员130,第三数据方140也可以被称为第三训练成员140。另外,服务器110同样参与模型训练。在本说明书中,服务器110也可以被称为训练成员,例如,第四训练成员。需要注意的是,图1仅作为示例性的说明,图1中的训练成员的数据方数量可以为四方,在其他实施例中,还可以包括第五数据方、第六数据方以至第N数据方等。

服务器110可以是带有数据获取、存储和/或发送功能的设备,例如,云端服务器,也可以是终端处理设备等。在一些实施例中,服务器110可以接收来自第一数据方120、第二数据方130和第三数据方140的相关数据。例如,服务器110可以接收来自第一数据方120发出的第一共享数据。

在一些实施例中,服务器110可以包括处理设备110-1和存储设备110-2。处理设备110-1可以用于处理数据。例如,处理设备110可以基于各训练成员上传的多个第一共享数据确定第二共享数据,并将第二共享数据发送给每个训练成员。在一些实施例中,处理设备110-1可以是独立的服务器或者服务器组。该服务器组可以是集中式的或者分布式的(如:处理设备110-1可以是分布系统)。在一些实施例中,处理设备110-1可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。在一些实施例中,处理设备110-1可包含一个或多个子处理设备(例如,单芯处理设备或多核多芯处理设备)。仅仅作为范例,处理设备110-1可包含中央处理器(CPU)、专用集成电路(ASIC)、专用指令处理器(ASIP)、图形处理器(GPU)、物理处理器(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编辑逻辑电路(PLD)、控制器、微控制器单元、精简指令集电脑(RISC)、微处理器等或以上任意组合。

在一些实施例中,存储设备110-2可以用于存储数据。例如,存储设备110-2可以存储各训练成员上传的多个第一共享数,和/或系统数据和/或系统指令。处理设备110-1可以通过执行或使用所述系统数据和/或系统指令以实现本说明书中的示例性方法。例如,处理设备110-1可以通过使用所述系统数据和/或执行所述系统指令以完成第二共享数据的确定以及传输。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。在一些实施例中,存储设备110-2可以是处理设备110-1的一部分。

第一数据方120、第二数据方130和第三数据方140均可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一数据方120、第二数据方130和第三数据方140可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一数据方120、第二数据方130和第三数据方140可以发送或接收服务器110的相关数据。例如,第一数据方120可以发送持有模型的第一共享数据至服务器110。又例如,第一数据方120可以接收来服务器110确定的第二共享数据。

在一些实施例中,第一数据方120、第二数据方130和第三数据方140均可以包括处理设备和存储设备。数据方的处理设备可以进行数据处理和/或指令执行。例如,数据方(例如,第一数据方120、第二数据方130或第三数据方140)的处理设备可以基于自身持有的训练样本对模型进行一次或多次的迭代训练,得到模型数据。数据方的存储设备可以存储数据和/或指令。例如,存储设备存储有用于训练模型的训练样本以及模型本身,也存储有驱动对应的处理设备执行操作的相关指令,处理设备可以通过执行这些指令以实现本说明书中的示例性方法。在一些实施例中,数据方的存储设备还可以存储经对应的处理设备处理后得到的数据。例如,存储设备可以存储处理设备基于所属的数据方持有的训练样本对模型进行一次或多次迭代训练后,得到的模型数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。

在一些实施例中,多个数据方联合服务器可以基于多方共享学习(例如,联邦学习,Federated Learning)的方法,联合对模型进行训练。这样可以在保证各方数据安全的情况下,各方协同训练机器学习模型以供多方使用。区别于传统的联邦学习框架,本说明书的一个或多个实施例中,多个数据方通过共享部分信息(例如,模型相关的参数和/或梯度)来进行模型的联合训练。提高模型泛化能力的同时,使得各端侧的模型能够更优的满足自身的处理任务。

在一些实施例中,第一数据方120、第二数据方130和第三数据方140可以各自持有模型。每个数据方所持有的模型可以具有相同的模型结构。相同的模型结构可以是指模型参数的维度相同和/或各参数在模型中的排布位置相同。例如,每个数据方所持有的模型可以是具有相同网络结构的神经网络模型。每个模型可以包括共享部分和专有部分。共享部分可以是用于联合训练的模型部分,该部分的相关数据(例如,模型参数和/或梯度)将用于共享训练(例如,聚合优化)。专有部分可以是数据方基于自持的数据进行单独训练的模型部分,该部分的相关数据并不出域,而是经过本地训练以达到模型个性化的目的。作为示例,假定每个数据方所持有的模型为神经网络,该神经网络包括10个神经网络层。则模型的共享部分可以是该神经网络的前6层,专有部分可以是该神经网络的后4层。需要说明的是,模型的共享部分和专有部分的划分还可以是其他形式的,例如共享部分是神经网络的前2层,专有部分是神经网络的后8层,又例如,共享部分是神经网络的第3~5层,其余神经网络层为专有部分。在一些实施例中,数据方持有的模型可以具有不同的模型结构,例如,各数据方模型中的共享部分具有相同的模型结果,而专有部分结构不相同。

继续参考图1,第一数据方120、第二数据方130和第三数据方140可以持有各自对应的模型,如第一模型121、第二模型131和第三模型141。第一模型121包括第一共享部分121-1以及第一专有部分121-2。第二模型131包括第二共享部分131-1以及第二专有部分131-2。第三模型141包括第三共享部分141-1以及第三专有部分141-2。在训练过程中,各个数据方可以将各自模型的共享部分对应的模型数据传输至服务器110以进行处理。例如,第一数据方120可以将持有的第一模型121的第一共享部分121-1的模型参数(例如,第一共享数据)发送给服务器110进行处理。各个数据方还可以接收服务器110返回的经过处理后的模型数据。例如,第一数据方120可以接收服务器110返回的第二共享数据。

在一些实施例中,服务器110可以接收各个数据方所发送的模型的共享部分的相关模型数据,并对这些模型数据进行处理得到处理再反馈给各个数据方。例如,服务器110可以接收各数据方发送的各自持有的模型的共享部分对应的模型数据(例如,第一共享数据)后基于这些数据确定一个优化的模型数据(例如,第二共享参数),并将该优化的模型数据反馈至各个数据方。

以下通过流程图对本说明书请求保护的技术方案进行描述。

图2是根据本说明书一些实施例所示的一种隐私保护的模型训练方法的示例性交互流程图。所述方法可以由参与训练的多个数据方中的某一数据方(例如,图1中的第一数据方120、第二数据方130或第三数据方140)实现。例如,流程200可以以程序或指令的形式存储在存储设备(如,第一数据方120、第二数据方130或第三数据方140的自带存储设备或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。在一些实施例中,可以对数据方持有的模型进行多轮迭代更新,其中所述模型包括共享部分和专有部分。流程200可以为模型多轮迭代更新中的一轮迭代流程。在一些实施例中,流程200可以由第一模型训练系统400执行。第一模型训练系统400可以是集成于数据方中。以下是对流程200的详细说明。

步骤202,基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据。所述步骤可由模型训练模块410执行。

在一些实施例中,数据方自身持有的训练样本可以是基于该数据方在使用过程中所产生的数据而确定的训练样本。可以理解的是,由于各个数据方的使用者(在本说明书中也可以被称为“用户”)的使用习惯和/或偏好不同,所产生的数据也不尽相同。因此,不同数据方所持有的训练样本也不相同。

在一些实施例中,在数据方对持有的模型进行训练前(例如在进行多轮迭代更新前),模型的模型参数可以被随机初始化。也就是说,各个数据方持有的模型可以具有相同的模型结构,但是各个模型的初始模型参数可以是不同的。

一次迭代训练可以理解为使用一条训练样本更新模型参数的过程,在本步骤中数据方可以利用自身的一条或一个batch的训练样本对模型进行迭代训练,将迭代训练后的模型参数或者最后一次迭代获得的梯度数据作为所述模型数据。其中,一个batch可以包含多条训练样本,如100、500或1000条训练样本。在一些实施例中,所述一次或多次迭代训练的次数可以是预先确定的。例如,在联合训练过程中,各数据方需要将共享的数据传输至服务器进行聚合优化。相邻两次传输之间有一定的时间间隔(也可以被称为通信间隔)。在该通信间隔内,数据方可以对模型进行一轮迭代更新。根据设定的通信间隔的长短,可以确定一轮迭代更新中的迭代训练的次数。同时,对于通信间隔的优化设置(例如,设置较短的通信间隔),可以有利于模型训练过程的收敛同时避免大量的通信成本。可以理解,数据方对模型进行的一次或多次迭代训练中的各次迭代训练的过程可以是相同或相似的。以下以一次迭代训练进行说明。

在一些实施例中,模型训练模块410可以将训练样本的特征数据输入至模型中,得到输出结果(如预测值)。以模型为神经网络为例,模型训练模块410可以将训练样本的特征数据直接输入至神经网络中。训练样本的特征数据在神经网络中进行前向传播后,可以得到输出结果。例如,假定模型是用于决策比如分类或推荐的模型,则所述输出结果可以是分类结果比如1或0或者预测的推荐对象。在获取到输出结果后,模型训练模块410可以基于训练样本对应的标签数据以及输出结果确定损失函数值。例如,用于分类的模型的损失函数可以是交叉熵损失函数。模型训练模块410可以基于训练样本的真实分布(也就是上述标签数据)以及模型的预测分布(也就是上述输出结果)确定该交叉熵损失函数的损失函数值。在确定损失函数值后,模型训练模块410可以基于损失函数值对模型的当前参数进行更新。例如,模型训练模块410可以通过反向传播算法更新模型的当前参数。反向传播算法可以用于确定损失函数相对于模型的参数的变化情况(也可以被称为梯度或误差导数)。模型训练模块410可以确定模型的参数关于损失函数值的偏导数,以确定梯度(也可以被称为梯度数据或梯度信息)。以模型为神经网络模型为例,假定神经网络模型包含m个神经网络层,模型训练模块410可以首先确定最后一个神经网络层的模型参数(例如,权重w

在一些实施例中,经过一次或多次迭代训练后,模型训练模块410可以确定模型数据。所述模型数据可以包括经过一次或多次迭代训练获得的模型参数或者梯度数据。例如,如上所述的经过一次或多次迭代训练更新后的模型参数,或在所述一次或多次迭代训练的最后一次迭代训练过程中确定的每个模型参数对应的梯度。不难理解,所述模型参数可以被划分为对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据。作为示例,假定模型为包含10个神经网络层的神经网络模型,前6个神经网络层为模型的共享部分,后4个神经网络层为模型的专有部分。则所述模型数据可以包括经过一次或多次迭代训练获得的前6个神经网络层更新后的模型参数或者每个模型参数对应的梯度。这些更新后的模型参数或者梯度可以被称为第一共享数据。所述模型数据还包括后4个神经网络层更新后的模型参数或者每个模型参数对应的梯度。这些更新后的模型参数或者梯度可以被称为本地数据。

步骤204,基于所述本地数据更新所述模型的专有部分。所述步骤可由模型第一更新模块420执行。

在一些实施例中,第一更新模块420可以直接将所述本地数据中所包含的更新后的模型参数作为模型的专有部分的模型参数。此时,等同于随着所述一次或多次迭代训练的结束,模型的专有部分的模型参数随附进行了更新。在一些实施例中,第一更新模块420可以利用所述本地数据中所包含的梯度,更新模型的专有部分的模型参数。例如,第一更新模块420可以将经过第n-1次迭代训练得到的模型参数减去第n次迭代训练得到的梯度与学习率之间的乘积,以完成专有部分的模型参数的更新。n取大于1的整数。

步骤206,传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据。所述步骤可由数据传输模块430执行。

可以理解的是,多方联合训练模型需要进行数据共享。则所述第一共享数据可以认为是数据方在模型的联合训练过程中所共享的数据。需要注意的是,所述第一共享数据并非数据方所持有的原始数据,而是经过一次或多次迭代训练得到的更新后的模型的共享部分的模型参数或梯度。在一些实施例中,数据传输模块430可以在一次或多次迭代训练后,将所述第一共享数据传输至服务器。

在一些实施例中,服务器在接收到数据方传输的第一共享数据后,可以对其进行处理以得到第二共享数据。作为示例,所述第二共享数据可以是服务器对多个数据方传输的多个第一共享数据进行运算后得到。例如,求和运算、平均运算等。

返回参考图1,如图1所示,多个数据方(第一数据方120、第二数据方130以及第三数据方140)可以将各自经过一次或多次迭代训练后所得到的模型的共享部分(例如,第一共享部分121-1、第二共享部分131-1以及第三共享部分141-1)对应的共享数据传输给服务器110,使服务器110可以基于多个共享数据(例如,第一共享数据)确定优化后的共享数据(例如,第二共享数据)。

在一些实施例中,数据方可以基于服务器的指示将第一共享数据传输给服务器。例如,当该数据方收到服务器的上传指令后,将第一共享数据传输给服务器,若该数据方未接收到服务器的上传指令,则不将第一共享数据上传。

步骤208,获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分。所述步骤可由第二更新模块440执行。

在一些实施例中,第二更新模块440可以将第二共享数据作为模型的共享部分的模型参数。此时,多个数据方所传输的第一共享数据为其模型的共享部分的更新后的模型参数,所述第二共享数据可以是服务器基于多个数据方所传输的共享部分的更新后的模型参数所确定的。第二更新模块440可以利用第二共享数据直接替换模型的共享部分的模型参数。

在一些实施例中,第二更新模块440可以基于学习率和第二共享数据更新模型的共享部分。学习率可以是用于控制模型的学习进度,可以理解为反向传播算法中的步长(stride)。此时,多个数据方所传输的第一共享数据为其模型的共享部分对应的梯度数据(有关梯度数据的更多描述可以参见步骤202的相关说明),所述第二共享数据可以是服务器基于多个数据方所传输的模型的共享部分的模型参数对应的梯度所确定的。第二更新模块440可以将模型的共享部分的模型参数减去对应梯度与学习率之间的乘积,以更新模型的共享部分的模型参数。

返回参考图1,如图1所示,参与训练的多个数据方(第一数据方120、第二数据方130以及第三数据方140)可以分别获取到服务器110返回的第二共享数据,多个数据方分别基于第二共享数据更新各自持有的模型的共享部分,例如,第一共享部分121-1、第二共享部分131-1以及第三共享部分141-1。

步骤210,基于更新后的模型以进行下一轮迭代更新,或指定更新后的模型为最终模型。所述步骤可由确定模块450执行。

在一些实施例中,在完成流程200的以上步骤(例如,步骤202-步骤208)后,确定模块450可以基于某些条件以进行后续步骤。例如,确定模块450可以利用测试样本对经过本轮迭代更新后的模型性能进行测试,当模型性能参数达到预设要求,则可以停止迭代更新。若确定模型需要继续进行优化。确定模块450可以将本轮迭代更新后的模型作为下一轮迭代更新的初始模型。若确定可以停止迭代更新,确定模块450则可以将本轮迭代更新后的模型作为最终模型。

在一些实施例中,确定模块450可以确定当前迭代更新是所述一轮或多轮迭代更新中的第几轮。若当前迭代更新为所述一轮或多轮迭代的第一轮或中间轮次,确定模块450可以确定模型的更新过程并未结束,可以基于更新后的模型以进行下一轮迭代更新。若当前迭代更新为所述一轮或多轮迭代的最后一轮,确定模块450可以结束模型的更新过程,指定更新后的模型为最终模型。

应当注意的是,上述有关图2中的各个步骤的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对图2中的各个步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图3是根据本说明书一些实施例所示的隐私保护的模型训练方法的示例性流程图。所述方法由服务器(例如,图1中的服务器110)实现。例如,流程300可以以程序或指令的形式存储在存储设备110-2中,所述程序或指令在被执行时,可以实现流程300。在一些实施例中,可以对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分。流程300为模型多轮迭代更新中的一轮迭代流程。在一些实施例中,流程300可以由第二模型训练系统500执行。第二模型训练系统500可以是集成于服务器中。以下是对流程300的详细说明。

步骤302,获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分。所述步骤可由数据获取模块510执行。

所述第一共享数据以及所述模型的共享部分的描述可以参考本说明书流程图图2中的步骤202。

在一些实施例中,所述K个数据方可以是参与模型联合训练的M个数据方的部分或全部。M、K均为正整数,且K≤M。参考图1,所述K个数据方可以是第一数据方120、第二数据方130以及第三数据方140中的1个,2个或3个。在一些实施例中,从M个数据方指定K个数据方可以是随机指定。例如,M个数据方中的每个数据方被指定的概率均相同,依据相同概率从M个数据方中随机指定K个数据方。又例如,M个数据方中因为执行的任务不同,任务的重要性不同导致被指定的概率不同,依据每个数据方各自对应的概率从M个数据方中随机指定K个数据方。

在一些实施例中,在每一轮迭代更新中K个数据方都可以由M个数据方中一个或多个不同的数据方组成。因此,每一轮迭代中的K个数据方的个数和数据方都可以不同。

服务器可以向被指定的K个数据方下发上传指令,接收到上传指令的数据方将第一共享数据上传给服务器。

步骤304,基于K个数据方的第一共享数据确定第二共享数据。所述步骤可由共享数据确定模块520执行。

在一些实施例中,共享数据确定模块520可以对获取到的K个第一共享数据执行数学运算以确定第二共享数据。所述数学运算可以是求和运算、乘除运算、平均运算等。在一些实施例中,共享数据确定模块520可以对获取到的K个第一共享数据执行加权运算以确定第二共享数据。作为示例,所述第二共享数据可以是K个第一共享数据的加权和值或加权均值。例如,共享数据确定模块520可以基于以下公式确定所述第二共享数据:

步骤306,将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。所述步骤可由传输模块530执行。

在一些实施例中,传输模块530可以将第二共享数据发送给M个数据方。各个数据方在接收到所述第二共享模块后,可以基于第二共享数据更新各自模型的共享部分。例如,如流程200中的步骤208中的说明。

需要说明的是,服务器110接收的是K个数据方执行模型自行训练获得的第一共享数据,而将第二共享数据发给(所有)M个数据方,更新M个数据方的模型参数,完成模型的一轮迭代训练。这样有助于减少通信量的同时,提高模型训练效率,确保每个端侧的模型在每一轮迭代训练时都可以获得其他数据方的训练知识,从而更新本地的模型参数。

应当注意的是,上述有关图3中的各个步骤的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对图3中的各个步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图4是根据本说明书一些实施例所示的第一模型训练系统的示例性模块图。该第一模型训练系统可以实现隐私保护的模型训练方法。如图4所示,第一模型训练系统400可以包括模型训练模块410、第一更新模块420、数据传输模块430、第二更新模块440以及确定模块450。

模型训练模块410可以基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据。数据方自身持有的训练样本可以是基于该数据方在使用过程中所产生的数据而确定的训练样本。一次迭代训练可以理解为使用一条训练样本更新模型参数的过程,在本步骤中数据方可以利用自身的一条或一个batch的训练样本对模型进行迭代训练,将迭代训练后的模型参数或者最后一次迭代获得的梯度数据作为所述模型数据。所述模型数据可以包括经过一次或多次迭代训练获得的模型参数或者梯度数据。例如,如上所述的经过一次或多次迭代训练更新后的模型参数,或在所述一次或多次迭代训练的最后一次迭代训练过程中确定的每个模型参数对应的梯度。所述模型参数可以被划分为对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据。

第一更新模块420可以基于所述本地数据更新所述模型的专有部分。第一更新模块420可以直接将所述本地数据中所包含的更新后的模型参数作为模型的专有部分的模型参数。第一更新模块420可以利用所述本地数据中所包含的梯度,更新模型的专有部分的模型参数。例如,第一更新模块420可以将经过第n-1次迭代训练得到的模型参数减去第n次迭代训练得到的梯度与学习率之间的乘积,以完成专有部分的模型参数的更新。

数据传输模块430可以传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据。所述第一共享数据可以认为是数据方在模型的联合训练过程中所共享的数据,包括经过一次或多次迭代训练得到的更新后的模型的共享部分的模型参数或梯度。在一些实施例中,服务器在接收到数据方传输的第一共享数据后,可以对其进行处理以得到第二共享数据。作为示例,所述第二共享数据可以是服务器对多个数据方传输的多个第一共享数据进行运算后得到。例如,求和运算、平均运算等。在一些实施例中,数据方可以基于服务器的指示将第一共享数据传输给服务器。例如,当该数据方收到服务器的上传指令后,将第一共享数据传输给服务器,若该数据方未接收到服务器的上传指令,则不将第一共享数据上传。

第二更新模块440可以获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分。第二更新模块440可以将第二共享数据作为模型的共享部分的模型参数。此时,多个数据方所传输的第一共享数据为其模型的共享部分的更新后的模型参数。第二更新模块440可以基于学习率和第二共享数据更新模型的共享部分。第二更新模块440可以将模型的共享部分的模型参数减去对应梯度与学习率之间的乘积,以更新模型的共享部分的模型参数。

确定模块450可以基于更新后的模型以进行下一轮迭代更新,或指定更新后的模型为最终模型。确定模块450可以利用测试样本对经过本轮迭代更新后的模型性能进行测试,当模型性能参数达到预设要求,则可以停止迭代更新。若确定模型需要继续进行优化。确定模块450可以将本轮迭代更新后的模型作为下一轮迭代更新的初始模型。若确定可以停止迭代更新,确定模块450则可以将本轮迭代更新后的模型作为最终模型。

关于图4中的模块的其他描述可以参考本说明书流程图部分,例如,图2。

图5是根据本说明书一些实施例所示的第二模型训练系统的示例性模块图。该第二模型训练系统可以实现隐私保护的模型训练方法。如图5所示,第二模型训练系统500可以包括数据获取模块510、共享数据确定模块520以及传输模块530。

数据获取模块510可以获取K个数据方的第一共享数据。所述K个数据方可以是参与模型联合训练的M个数据方的部分或全部。所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M。在一些实施例中,所述第一共享数据对应于数据方的模型的共享部分。

共享数据确定模块520可以基于K个数据方的第一共享数据确定第二共享数据。共享数据确定模块520可以对获取到的K个第一共享数据执行数学运算以确定第二共享数据。所述数学运算可以是求和运算、乘除运算、平均运算等。在一些实施例中,共享数据确定模块520可以对获取到的K个第一共享数据执行加权运算以确定第二共享数据。

传输模块530可以将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。传输模块530可以将第二共享数据发送给M个数据方。各个数据方在接收到所述第二共享模块后,可以基于第二共享数据更新各自模型的共享部分。服务器110接收的是K个数据方执行模型自行训练获得的第一共享数据,而将第二共享数据发给(所有)M个数据方,更新M个数据方的模型参数,完成模型的一轮迭代训练。

关于图5中的模块的其他描述可以参考本说明书流程图部分,例如,图3。

应当理解,图4、图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如图4中的第一更新模块420和第二更新模块440可以是两个模块,也可以是一个模块同时具有对模型的共享部分和本地部分进行更新的功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可能带来的有益效果包括但不限于:通过将所有数据方中的模型参数分为两个部分,一部分为参与联合训练的共享参数,另一部分为与模型执行任务相关的本地数据,仅将其中的共享参数参与联合训练,在确保减少隐私泄漏的前提下,保证更新后的每个模型更适合处理相应的任务。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

相关技术
  • 一种隐私保护的模型训练方法、系统及装置
  • 基于隐私保护的神经网络模型训练方法、装置及系统
技术分类

06120112984904