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

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

Info

Publication number
CN113032835B
CN113032835B CN202110433119.8A CN202110433119A CN113032835B CN 113032835 B CN113032835 B CN 113032835B CN 202110433119 A CN202110433119 A CN 202110433119A CN 113032835 B CN113032835 B CN 113032835B
Authority
CN
China
Prior art keywords
data
model
shared
training
gradient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110433119.8A
Other languages
English (en)
Other versions
CN113032835A (zh
Inventor
吴慧雯
陈岑
王力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110433119.8A priority Critical patent/CN113032835B/zh
Publication of CN113032835A publication Critical patent/CN113032835A/zh
Priority to PCT/CN2022/086538 priority patent/WO2022222816A1/zh
Priority to US18/491,496 priority patent/US20240045993A1/en
Application granted granted Critical
Publication of CN113032835B publication Critical patent/CN113032835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2132Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on discrimination criteria, e.g. discriminant analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2134Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2136Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on sparsity criteria, e.g. with an overcomplete basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

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

Description

一种隐私保护的模型训练方法、系统及装置
技术领域
本说明书涉及机器学习领域,特别涉及一种隐私保护的模型训练方法、系统及装置。
背景技术
近年来,在数据分析、数据挖掘、经济预测等领域,机器学习模型被越来越广泛的用于分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此基于单个数据拥有方的数据训练得到的机器学习模型难以准确地刻画目标。为了得到更好的模型预测结果,通过对不同数据拥有方持有的不同数据采用联合学习的方式进行模型训练。
目前,如何在联合学习过程中保证隐私数据安全的情况下兼顾模型的个性化成为有待解决的问题。
发明内容
本说明书实施例之一提供一种隐私保护的模型训练方法。所述方法由参与训练的多个数据方中的某一数据方实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:基于自身持有的训练样本对模型进行迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据,且在所述迭代训练中还包括对对应于模型的共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护;传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据;获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;基于更新后的模型以进行下一轮迭代更新,或将更新后的模型作为最终模型。
本说明书实施例之一提供一种隐私保护的模型训练系统,所述系统由参与训练的多个数据方中的某一数据方实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括模型训练模块、数据传输模块、第二更新模块以及确定模块,且在一轮迭代更新中:模型训练模块用于基于自身持有的训练样本对模型进行迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据,且在所述迭代训练中还包括对对应于模型的共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护;数据传输模块用于传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据;第二更新模块用于获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;确定模块用于基于更新后的模型以进行下一轮迭代更新,或将更新后的模型作为最终模型。
本说明书实施例之一提供一种隐私保护的模型训练装置,其中,所述装置包括处理器,所述处理器用于执行以上所述的隐私保护的模型训练方法。
本说明书实施例之一提供另一种隐私保护的模型训练方法,所述方法由服务器实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分;基于K个数据方的第一共享数据确定第二共享数据;将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。
本说明书实施例之一提供另一种隐私保护的模型训练系统,所述系统由服务器实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括数据获取模块、共享数据确定模块以及传输模块,且在一轮迭代更新中:数据获取模块用于获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分;共享数据确定模块用于基于K个数据方的第一共享数据确定第二共享数据;传输模块,用于将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。
本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,所述处理器用于执行以上所述的一种隐私保护的模型训练方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的隐私保护的模型训练系统的应用场景示意图;
图2是根据本说明书一些实施例所示的隐私保护的模型训练方法的示例性交互流程图;
图3是根据本说明书一些实施例所示的另一种隐私保护的模型训练方法的示例性流程图;
图4是根据本说明书一些实施例所示的另一种隐私保护的模型训练方法的示例性流程图;
图5是根据本说明书一些实施例所示的一种隐私保护的模型训练系统的模块图;以及
图6是根据本说明书一些实施例所示的另一种隐私保护的模型训练系统的模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
随着移动终端如手机、平板、可穿戴设备的普及,数以亿计的与个体行为活动相关的海量数据也随之产生。移动终端设备的存储和计算能力的提高,个体对于行为相关数据隐私保护需求的提高,亟需保护隐私数据不出域和将平台计算转移到终端的新算法。
联邦学习(Federated Learning)通过对不同终端上算力和数据的联合,在终端设备上进行机器学习,保证了个体数据不出域;同时通过对于梯度的聚合,联合了终端设备进行联合训练,提升整体模型的泛化性。但同时,传统的联邦学习框架(例如,FedAvg)难以解决模型个性化的问题,提高了模型的泛化性往往会带来个性化的损失。具体的,一些实施例通过基于共享梯度而非共享训练样本数据进行联邦学习,从而减少隐私的泄露。但因为每个终端设备的模型需处理的任务不同,通过这种方式联合学习得到的通用模型往往不能在端侧上有较优的表现。另外,在联合训练的数据共享(例如,模型参数和/或梯度)过程中,会存在数据泄露的风险。在一些实施例中,通过多方安全计算(MPC)或者同态加密(HE)的方法对共享的数据进行安全保护。但这样会造成计算量大以及通信量大的问题。
基于此,本说明书一些实施例中,提出一种基于多任务学习联合建模的隐私保护的模型训练方法,在保证各自端侧数据不出域的情况下,实现联合训练并得到个性化的端侧模型。以下是对该方法的详细说明。
图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可以存储各训练成员上传的多个第一共享数,和/或系统数据和/或系统指令。处理设备120-1可以通过执行或使用所述系统数据和/或系统指令以实现本说明书中的示例性方法。例如,处理设备130-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或第三数据方130)的处理设备可以基于自身持有的训练样本对模型进行一次或多次的迭代训练,得到模型数据。数据方的存储设备可以存储数据和/或指令。例如,存储设备存储有用于训练模型的训练样本以及模型本身,也存储有驱动对应的处理设备执行操作的相关指令,处理设备可以通过执行这些指令以实现本说明书中的示例性方法。在一些实施例中,数据方的存储设备还可以存储经对应的处理设备处理后得到的数据。例如,存储设备可以存储处理设备基于所属的数据方持有的训练样本对模型进行一次或多次迭代训练后,得到的模型数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(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可以由第一模型训练系统500执行。第一模型训练系统500可以是集成于数据方中。以下是对流程200的详细说明。
步骤202,基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据。所述步骤可由模型训练模块510执行。
在一些实施例中,数据方自身持有的训练样本可以是基于该数据方在使用过程中所产生的数据而确定的训练样本。可以理解的是,由于各个数据方的使用者(在本说明书中也可以被称为“用户”)的使用习惯和/或偏好不同,所产生的数据也不尽相同。因此,不同数据方所持有的训练样本也不相同。
在一些实施例中,在数据方对持有的模型进行训练前(例如在进行多轮迭代更新前),模型的模型参数可以被随机初始化。也就是说,各个数据方持有的模型可以具有相同的模型结构,但是各个模型的初始模型参数可以是不同的。
一次迭代训练可以理解为使用一条训练样本更新模型参数的过程,在本步骤中数据方可以利用自身的一条或一个batch的训练样本对模型进行迭代训练,将迭代训练后的模型参数或者最后一次迭代获得的梯度数据作为所述模型数据。其中,一个batch可以包含多条训练样本,如100、500或1000条训练样本。在一些实施例中,所述一次或多次迭代训练的次数可以是预先确定的。例如,在联合训练过程中,各数据方需要将共享的数据传输至服务器进行聚合优化。相邻两次传输之间有一定的时间间隔(也可以被称为通信间隔)。在该通信间隔内,数据方可以对模型进行一轮迭代更新。根据设定的通信间隔的长短,可以确定一轮迭代更新中的迭代训练的次数。同时,对于通信间隔的优化设置(例如,设置较短的通信间隔),可以有利于模型训练过程的收敛同时避免大量的通信成本。可以理解,数据方对模型进行的一次或多次迭代训练中的各次迭代训练的过程可以是相同或相似的。以下将根据图3对一次迭代训练进行说明。在一次迭代训练中,模型训练模块510可以将训练样本的特征数据输入至模型后得到输出结果。并基于反向传播算法利用输出结果和训练样本对应的标签数据,更新模型的参数。
在一些实施例中,经过一次或多次迭代训练后,模型训练模块510可以确定模型数据。所述模型数据可以包括经过一次或多次迭代训练获得的模型参数或者梯度数据。例如,如上所述的经过一次或多次迭代训练更新后的模型参数,或在所述一次或多次迭代训练的最后一次迭代训练过程中确定的每个模型参数对应的梯度。不难理解,所述模型参数可以被划分为对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据。作为示例,假定模型为包含10个神经网络层的神经网络模型,前6个神经网络层为模型的共享部分,后4个神经网络层为模型的专有部分。则所述模型数据可以包括经过一次或多次迭代训练获得的前6个神经网络层更新后的模型参数或者每个模型参数对应的梯度。这些更新后的模型参数或者梯度可以被称为第一共享数据。所述模型数据还包括后4个神经网络层更新后的模型参数或者每个模型参数对应的梯度。这些更新后的模型参数或者梯度可以被称为本地数据。
在一些实施例中,在所述一次或多次迭代训练中的至少一次迭代训练中,模型训练模块510可以对应于模型共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护。添加扰动的方法可以包括对第一共享数据进行本地差分隐私操作,例如,向第一共享数据中添加噪声。关于一次迭代训练的详细描述可以参考本说明书其他部分,例如,图3。
步骤204,基于所述本地数据更新所述模型的专有部分。所述步骤可由模型第一更新模块520执行。
在一些实施例中,第一更新模块520可以直接将所述本地数据中所包含的更新后的模型参数作为模型的专有部分的模型参数。此时,等同于随着所述一次或多次迭代训练的结束,模型的专有部分的模型参数随附进行了更新。在一些实施例中,第一更新模块520可以利用所述本地数据中所包含的梯度,更新模型的专有部分的模型参数。例如,第一更新模块520可以将经过第n-1次迭代训练得到的模型参数减去第n次迭代训练得到的梯度与学习率之间的乘积,以完成专有部分的模型参数的更新。n为所述一次或多次迭代训练的总次数,取大于1的整数。
步骤206,传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据。所述步骤可由数据传输模块530执行。
可以理解的是,多方联合训练模型需要进行数据共享。则所述第一共享数据可以认为是数据方在模型的联合训练过程中所共享的数据。需要注意的是,所述第一共享数据并非数据方所持有的原始数据,而是经过一次或多次迭代训练得到的更新后的模型的共享部分的模型参数或梯度。在一些实施例中,数据传输模块530可以在一次或多次迭代训练后,将所述第一共享数据传输至服务器。
在一些实施例中,服务器在接收到数据方传输的第一共享数据后,可以对其进行处理以得到第二共享数据。作为示例,所述第二共享数据可以是服务器对多个数据方传输的多个第一共享数据进行运算后得到。例如,求和运算、平均运算等。
返回参考图1,如图1所示,多个数据方(第一数据方120、第二数据方130以及第三数据方140)可以将各自经过一次或多次迭代训练后所得到的模型的共享部分(例如,第一共享部分121-1、第二共享部分131-1以及第三共享部分141-1)对应的共享数据传输给服务器110,使服务器110可以基于多个共享数据(例如,第一共享数据)确定优化后的共享数据(例如,第二共享数据)。
在一些实施例中,数据方可以基于服务器的指示将第一共享数据传输给服务器。例如,当该数据方收到服务器的上传指令后,将第一共享数据传输给服务器,若该数据方未接收到服务器的上传指令,则不将第一共享数据上传。
步骤208,获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分。所述步骤可由第二更新模块540执行。
在一些实施例中,第二更新模块540可以将第二共享数据作为模型的共享部分的模型参数。此时,多个数据方所传输的第一共享数据为其模型的共享部分的更新后的模型参数,所述第二共享数据可以是服务器基于多个数据方所传输的共享部分的更新后的模型参数所确定的。第二更新模块440可以利用第二共享数据直接替换模型的共享部分的模型参数。
在一些实施例中,第二更新模块540可以基于学习率和第二共享数据更新模型的共享部分。学习率可以是用于控制模型的学习进度,可以理解为反向传播算法中的步长(stride)。此时,多个数据方所传输的第一共享数据为其模型的共享部分对应的梯度数据(有关梯度数据的更多描述可以参见步骤202的相关说明),所述第二共享数据可以是服务器基于多个数据方所传输的模型的共享部分的模型参数对应的梯度所确定的。第二更新模块540可以将模型的共享部分的模型参数减去第二共享数据中对应梯度与学习率之间的乘积,以更新模型的共享部分的模型参数。
返回参考图1,如图1所示,参与训练的多个数据方(第一数据方120、第二数据方130以及第三数据方140)可以分别获取到服务器110返回的第二共享数据,多个数据方分别基于第二共享数据更新各自持有的模型的共享部分,例如,第一共享部分121-1、第二共享部分131-1以及第三共享部分141-1。
步骤210,基于更新后的模型以进行下一轮迭代更新,或指定更新后的模型为最终模型。所述步骤可由确定模块550执行。
在一些实施例中,在完成流程200的以上步骤(例如,步骤202-步骤208)后,确定模块550可以基于某些条件以进行后续步骤。例如,确定模块550可以利用测试样本对经过本轮迭代更新后的模型性能进行测试,当模型性能参数达到预设要求,则可以停止迭代更新。若确定模型需要继续进行优化。确定模块550可以将本轮迭代更新后的模型作为下一轮迭代更新的初始模型。若确定可以停止迭代更新,确定模块450则可以将本轮迭代更新后的模型作为最终模型。
在一些实施例中,确定模块550可以确定当前迭代更新是所述一轮或多轮迭代更新中的第几轮。若当前迭代更新为所述一轮或多轮迭代的第一轮或中间轮次,确定模块450可以确定模型的更新过程并未结束,可以基于更新后的模型以进行下一轮迭代更新。若当前迭代更新为所述一轮或多轮迭代的最后一轮,确定模块550可以结束模型的更新过程,指定更新后的模型为最终模型。
应当注意的是,上述有关图2中的各个步骤的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对图2中的各个步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图3是根据本说明书一些实施例所示的一次或多次迭代训练中的一次迭代训练的示例性流程图。所述方法可以由参与训练的多个数据方中的某一数据方(例如,图1中的第一数据方120、第二数据方130或第三数据方140)实现。例如,流程300可以以程序或指令的形式存储在存储设备(如,第一数据方120、第二数据方130或第三数据方140的自带存储设备或外接存储设备)中,所述程序或指令在被执行时,可以实现流程300。在一些实施例中,流程300可以由第一模型训练系统500执行。第一模型训练系统500可以是集成于数据方中。在一些实施例中,流程300可以由模型训练模块510执行。以下是对流程200的详细说明。
步骤302,将自身持有的训练样本的特征数据输入至模型,确定预测结果。
在一些实施例中,模型训练模块510可以利用特征提取算法处理数据方自身持有的训练样本,得到训练样本的特征数据。示例性的特征提取算法可以包括主成分分析算法(PCA)、独立成分分析算法(ICA)、线性判别分析(LDA)、稀疏编码(Sparse Coding)等。需要说明的是,根据训练样本数据的类型和所属领域的不同,模型训练模块510可以选择不同的特征提取算法,以上示例仅仅出于说明的目的,在本说明书中不构成限制。
在一些实施例中,所述预测结果可以是模型对训练样本的特征数据进行处理后的输出。以模型为神经网络为例,模型训练模块510将训练样本的特征数据输入到模型中后,经过前向传播,模型可以得到最后的输出。假定模型是用于比如分类或推荐的模型,则输出可以是分类结果比如0或1中的一个值或者预测的推荐对象。1或0或者预测的推荐对象即为所述预测结果。
步骤304,基于所述训练样本对应的标签数据以及所述预测结果确定损失函数值。
在一些实施例中,对应于训练样本的标签数据可以是训练样本的标准处理结果。例如,假定训练样本(例如,包含动物的图片)是用于训练分类模型(例如,用于识别图片中包含的动物是猫还是其他动物)的样本,则训练样本的标签数据可以是指示图片中所包含的动物的类别。如果图片中的动物是猫,则标签数据可以是1。如果图片中的动物是猫以外的其他动物,则标签数据可以是0。
在一些实施例中,所述损失函数值可以是用于衡量模型针对训练样本的输出(例如,预测结果)与真实值(例如,标签数据)之间差异程度的值。模型训练模块510可以个所述预测结果和所述标签数据代入损失函数中,以确定所述损失函数值。作为示例,用于分类(例如,二分类)的模型的损失函数可以是交叉熵损失函数,如下所述:
其中,y表示所述标签数据,表示所述预测结果。通过计算,模型训练模块510可以得到所述损失函数值。
步骤306,基于所述损失函数值确定梯度数据。所述梯度数据包括对应于模型的共享部分的共享梯度数据以及对应于模型的专有部分的专有梯度数据。
在一些实施例中,模型训练模块510可以通过反向传播算法确定所述梯度数据。反向传播算法可以用于确定损失函数相对于模型的参数的变化情况(也可以被称为梯度或误差导数)。模型训练模块510可以确定模型的参数关于损失函数值的偏导数,以确定梯度(也可以被称为梯度数据或梯度信息)。以模型为神经网络模型为例,假定神经网络模型包含m个神经网络层,模型训练模块510可以首先确定最后一个神经网络层的模型参数(例如,权重wm和/或常数项bm)关于损失函数值的偏导数,记为其中,Loss表示损失函数值。随后,模型训练模块510可以将最后一个神经网络层的原模型参数减去所确定的梯度与学习率的乘积,得到最后一个神经网络层的更新后的模型参数。作为示例,模型参数的更新可以基于以下公式进行:w′m=wm-γg{m}。其中,w′m表示更新后的模型参数,γ表示学习率,也可以被称为更新步长。基于链式法则,模型训练模块510可以从后往前确定每一个神经网络层的模型参数对应的梯度。
基于模型包含共享部分以及专有部分,则所述梯度数据也可以包括对应于模型的共享部分的共享梯度数据以及对应于模型的专有部分的专有梯度数据。例如,模型的共享部分的模型参数对应的梯度数据可以被称为所述共享梯度数据,模型的专有部分的模型参数对应的梯度数据可以被称为所述专有梯度数据。
步骤308,对所述共享梯度数据添加扰动。
在一些实施例中,模型训练模块510可以对所述共享梯度数据添加扰动噪声,以完成对共享梯度数据的扰动使得数据的隐私安全得到进一步保护。
在一些实施例中,模型训练模块510可以获取预设裁剪阈值。所述预设裁剪阈值可以与共享梯度数据相关,例如,与共享梯度的敏感度相关。在一些实施例中,预设裁剪阈值和共享梯度数据的范数相关,一般取和梯度的范数同量级,例如,共享梯度数据的范围在个位数,那么预设裁剪阈值可以取1。需要说明的是,对于每个训练成员(数据方),所述预设裁剪阈值可以相同(如在训练前进行统一),也可以不同(如训练成员自行设置)。对共享梯度数据中元素的值进行限制,使其任一元素的绝对值不超过预设裁剪阈值;生成噪声数据;将所述噪声数据叠加到共享梯度数据上,得到添加扰动后的共享梯度数据。
在一些实施例中,模型训练模块510可以对共享梯度数据中元素的值进行限制,使其任一元素的绝对值不超过预设裁剪阈值。在对共享梯度数据添加扰动噪声前,需要基于预设裁剪阈值对共享梯度数据中元素的值进行限制。例如,可以在共享梯度数据中元素的绝对值大于预设裁剪阈值时,将该元素的值替换为预设裁剪阈值,同时保持元素的符号不变,即原元素为负数,替换后的元素值为负的预设裁剪阈值。在共享梯度数据中元素的绝对值不大于预设裁剪阈值时,则保持该元素不变。
在一些实施例中,模型训练模块510可以生成噪声数据。所述噪声数据可以包括高斯噪声。所述高斯噪声服从常态分布N(0,σ2)。其中,高斯噪声的方差σ2可以所述基于预设裁剪阈值、隐私预算以及松弛项确定。示例性的,高斯噪声的方差可以基于以下公式确定:
其中,δ表示所述松弛项,可以取10-5,∈表示隐私预算,可以取(0,1)之间的一个数值,Δf表示所述共享梯度数据的敏感度。Δf可以与裁剪的强度有关,例如,Δf可以等于所述预设裁剪阈值。在一些实施例中,高斯噪声的方差还可以通过其他步骤或公式确定,在本说明书中不做限制。在一些实施例中,所述噪声数据还可以是其他噪声类型,如拉普拉斯噪声、泊松噪声等。
在一些实施例中,模型训练模块510可以将所述噪声数据叠加到共享梯度数据上,得到添加扰动后的共享梯度数据。在一些实施例中,模型训练模块510可以基于以下公式对所述噪声数据与所述共享梯度数据进行叠加:
其中,g{M+1}表示所述共享梯度数据,n表示所述噪声数据,表示添加扰动后的共享梯度数据。
在一些实施例中,在完成流程300的以上步骤(例如,步骤302-步骤308)后,模型训练模块510可以基于某些条件以进行后续步骤(步骤310或者步骤312)。
步骤310,基于所述专有梯度数据以及添加扰动后的共享梯度数据确定所述模型数据。
在一些实施例中,当本次迭代训练为所述一次或多次迭代的最后一次时,模型训练模块510可以基于所述专有梯度数据以及添加扰动后的共享梯度数据确定所述模型数据。例如,模型训练模块510可以将所述专有梯度数据确定为对应于模型的专有部分的本地数据,并将添加扰动后的共享梯度数据确定为模型的共享部分的第一共享数据。在一些实施例中,模型训练模块510也可以基于所述专有梯度数据以及添加扰动后的共享梯度数据对所述最后一次迭代训练的原模型参数进行更新,将更新后的模型参数确定所述模型数据。作为示例,假定模型为神经网络模型,模型训练模块510可以将本次迭代训练(所述最后一次迭代训练)中神经网络模型的原模型参数减去所确定的梯度(包括专有梯度数据以及添加扰动后的共享梯度数据)与学习率的乘积,将更新后的模型参数作为所述模型数据。
步骤312,基于专有梯度数据更新模型的专有部分,基于添加扰动后的共享梯度数据更新模型的共享部分,以及基于更新后的模型进行下一次迭代训练。
在一些实施例中,当本次迭代训练为所述一次或多次迭代训练中的(并非最后一次)任意一轮迭代训练时,模型训练模块510可以基于专有梯度数据以及添加扰动后的共享梯度数据,分别更新模型的专有部分和共享部分,以及使更新后的模型进行下一轮的迭代训练。作为示例,假定模型为神经网络模型,模型训练模块510可以将本次迭代训练中神经网络模型的原模型参数减去所确定的梯度(包括专有梯度数据以及添加扰动后的共享梯度数据)与学习率的乘积,得到本次迭代训练的更新后的模型参数。例如,模型参数的更新可以基于以下公式进行:w′m=wm-γg{m}。其中,w′m表示更新后的模型参数,γ表示学习率,也可以被称为更新步长,wm表示原模型参数,g{m}表示梯度。需要说明的是,在对神经网络层的原模型参数进行更新时,所使用的梯度数据取决于神经网络层属于模型的哪个部分。若神经网络层属于模型的专有部分,则所使用的梯度数据为所述专有梯度数据。若神经网络层属于模型的共享部分,则所使用的梯度数据为添加扰动后的共享梯度数据。
应当注意的是,上述有关图3中的各个步骤的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对图3中的各个步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。另外,在所述一次或多次迭代训练中,可以仅在其中的部分次迭代训练中添加扰动,而其余部分次迭代训练不进行扰动添加。
图4是根据本说明书一些实施例所示的隐私保护的模型训练方法的示例性流程图。所述方法由服务器(例如,图1中的服务器110)实现。例如,流程400可以以程序或指令的形式存储在存储设备110-2中,所述程序或指令在被执行时,可以实现流程400。在一些实施例中,可以对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分。流程400为模型多轮迭代更新中的一轮迭代流程。在一些实施例中,流程400可以由第二模型训练系统600执行。第二模型训练系统600可以是集成于服务器中。以下是对流程400的详细说明。
步骤402,获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分。所述步骤可由数据获取模块610执行。
所述第一共享数据以及所述模型的共享部分的描述可以参考本说明书流程图图2中的步骤202。
在一些实施例中,所述K个数据方可以是参与模型联合训练的M个数据方的部分或全部。M、K均为正整数,且K≤M。参考图1,所述K个数据方可以是第一数据方120、第二数据方130以及第一数据方130中的1个,2个或3个。在一些实施例中,从M个数据方指定K个数据方可以是随机指定。例如,M个数据方中的每个数据方被指定的概率均相同,依据相同概率从M个数据方中随机指定K个数据方。又例如,M个数据方中因为执行的任务不同,任务的重要性不同导致被指定的概率不同,依据每个数据方各自对应的概率从M个数据方中随机指定K个数据方。
在一些实施例中,在每一轮迭代更新中K个数据方都可以由M个数据方中一个或多个不同的数据方组成。因此,每一轮迭代中的K个数据方的个数和数据方都可以不同。
服务器可以向被指定的K个数据方下发上传指令,接收到上传指令的数据方将第一共享数据上传给服务器。
步骤404,基于K个数据方的第一共享数据确定第二共享数据。所述步骤可由共享数据确定模块620执行。
在一些实施例中,共享数据确定模块620可以对获取到的K个第一共享数据执行数学运算以确定第二共享数据。所述数学运算可以是求和运算、乘除运算、平均运算等。在一些实施例中,共享数据确定模块620可以对获取到的K个第一共享数据执行加权运算以确定第二共享数据。作为示例,所述第二共享数据可以是K个第一共享数据的加权和值或加权均值。例如,共享数据确定模块620可以基于以下公式确定所述第二共享数据:其中,/>表示所述第二共享数据,wm表示由K个数据方中的一个所传输的第一共享数据,pm表示wm所对应的权重。
步骤406,将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。所述步骤可由传输模块630执行。
在一些实施例中,传输模块630可以将第二共享数据发送给M个数据方。各个数据方在接收到所述第二共享模块后,可以基于第二共享数据更新各自模型的共享部分。例如,如流程200中的步骤208中的说明。
需要说明的是,服务器110接收的是K个数据方执行模型自行训练获得的第一共享数据,而将第二共享数据发给(所有)M个数据方,更新M个数据方的模型参数,完成模型的一轮迭代训练。这样有助于减少通信量的同时,提高模型训练效率,确保每个端侧的模型在每一轮迭代训练时都可以获得其他数据方的训练知识,从而更新本地的模型参数。
应当注意的是,上述有关图4中的各个步骤的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对图4中的各个步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图5是根据本说明书一些实施例所示的第一模型训练系统的示例性模块图。该第一模型训练系统可以实现隐私保护的模型训练方法。如图5所示,第一模型训练系统500可以包括模型训练模块510、第一更新模型520、数据传输模块530、第二更新模块540以及确定模块550。
模型训练模块510可以基于自身持有的训练样本对模型进行一次或多次迭代训练,得到模型数据。数据方自身持有的训练样本可以是基于该数据方在使用过程中所产生的数据而确定的训练样本。一次迭代训练可以理解为使用一条训练样本更新模型参数的过程,在本步骤中数据方可以利用自身的一条或一个batch的训练样本对模型进行迭代训练,将迭代训练后的模型参数或者最后一次迭代获得的梯度数据作为所述模型数据。所述模型数据可以包括经过一次或多次迭代训练获得的模型参数或者梯度数据。例如,如上所述的经过一次或多次迭代训练更新后的模型参数,或在所述一次或多次迭代训练的最后一次迭代训练过程中确定的每个模型参数对应的梯度。所述模型参数可以被划分为对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据。
在一些实施例中,在所述一次或多次迭代训练中的至少一次迭代训练中,模型训练模块510可以对应于模型共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护。添加扰动的方法可以包括对第一共享数据进行本地差分隐私操作,例如,向第一共享数据中添加噪声。
第一更新模块520可以基于所述本地数据更新所述模型的专有部分。第一更新模块520可以直接将所述本地数据中所包含的更新后的模型参数作为模型的专有部分的模型参数。第一更新模块520可以利用所述本地数据中所包含的梯度,更新模型的专有部分的模型参数。例如,第一更新模块520可以将经过第n-1次迭代训练得到的模型参数减去第n次迭代训练得到的梯度与学习率之间的乘积,以完成专有部分的模型参数的更新。
数据传输模块530可以传输所述第一共享数据至服务器,以便使服务器基于多个数据方的第一共享参数确定第二共享数据。所述第一共享数据可以认为是数据方在模型的联合训练过程中所共享的数据,包括经过一次或多次迭代训练得到的更新后的模型的共享部分的模型参数或梯度。在一些实施例中,服务器在接收到数据方传输的第一共享数据后,可以对其进行处理以得到第二共享数据。作为示例,所述第二共享数据可以是服务器对多个数据方传输的多个第一共享数据进行运算后得到。例如,求和运算、平均运算等。在一些实施例中,数据方可以基于服务器的指示将第一共享数据传输给服务器。例如,当该数据方收到服务器的上传指令后,将第一共享数据传输给服务器,若该数据方未接收到服务器的上传指令,则不将第一共享数据上传。
第二更新模块540可以获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分。第二更新模块540可以将第二共享数据作为模型的共享部分的模型参数。此时,多个数据方所传输的第一共享数据为其模型的共享部分的更新后的模型参数。第二更新模块540可以基于学习率和第二共享数据更新模型的共享部分。第二更新模块540可以将模型的共享部分的模型参数减去对应梯度与学习率之间的乘积,以更新模型的共享部分的模型参数。
确定模块550可以基于更新后的模型以进行下一轮迭代更新,或指定更新后的模型为最终模型。确定模块550可以利用测试样本对经过本轮迭代更新后的模型性能进行测试,当模型性能参数达到预设要求,则可以停止迭代更新。若确定模型需要继续进行优化。确定模块550可以将本轮迭代更新后的模型作为下一轮迭代更新的初始模型。若确定可以停止迭代更新,确定模块550则可以将本轮迭代更新后的模型作为最终模型。
关于图5中的模块的其他描述可以参考本说明书流程图部分,例如,图2以及图3。
图6是根据本说明书一些实施例所示的第二模型训练系统的示例性模块图。该第二模型训练系统可以实现隐私保护的模型训练方法。如图6所示,第二模型训练系统600可以包括数据获取模块610、共享数据确定模块620以及传输模块630。
数据获取模块610可以获取K个数据方的第一共享数据。所述K个数据方可以是参与模型联合训练的M个数据方的部分或全部。所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M。在一些实施例中,所述第一共享数据对应于数据方的模型的共享部分。
共享数据确定模块620可以基于K个数据方的第一共享数据确定第二共享数据。共享数据确定模块620可以对获取到的K个第一共享数据执行数学运算以确定第二共享数据。所述数学运算可以是求和运算、乘除运算、平均运算等。在一些实施例中,共享数据确定模块620可以对获取到的K个第一共享数据执行加权运算以确定第二共享数据。
传输模块630可以将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。传输模块630可以将第二共享数据发送给M个数据方。各个数据方在接收到所述第二共享模块后,可以基于第二共享数据更新各自模型的共享部分。服务器110接收的是K个数据方执行模型自行训练获得的第一共享数据,而将第二共享数据发给(所有)M个数据方,更新M个数据方的模型参数,完成模型的一轮迭代训练。
关于图6中的模块的其他描述可以参考本说明书流程图部分,例如,图4。
应当理解,图5、图6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如图5中的第一更新模块520和第二更新模块540可以是两个模块,也可以是一个模块同时具有对模型的共享部分和本地部分进行更新的功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:通过将所有数据方中的模型参数分为两个部分,一部分为参与联合训练的共享参数,另一部分为与模型执行任务相关的本地数据,仅将其中的共享参数参与联合训练,在确保减少隐私泄漏的前提下,保证更新后的每个模型更适合处理相应的任务。另外,通过在本地(数据方侧)对所需共享参数进行差分隐私,进一步加强了数据的隐私保护。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、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%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (15)

1.一种隐私保护的模型训练方法,所述方法由参与训练的多个数据方中的某一数据方实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:
基于自身持有的训练样本对模型进行迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据,且在所述迭代训练中还包括对对应于模型的共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护;
传输第一共享数据至服务器,以便使服务器基于多个数据方的第一共享数据确定第二共享数据;
获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;
基于更新后的模型进行下一轮迭代更新,或将更新后的模型作为最终模型。
2.根据权利要求1所述的方法,其中,所述迭代训练包括:
将自身持有的训练样本的特征数据输入至模型,确定预测结果;
基于所述训练样本对应的标签数据以及所述预测结果确定损失函数值;
基于所述损失函数值确定梯度数据;所述梯度数据包括对应于模型的共享部分的共享梯度数据以及对应于模型的专有部分的专有梯度数据;
对所述共享梯度数据添加扰动;
基于所述专有梯度数据以及添加扰动后的共享梯度数据确定所述模型数据;或者,基于专有梯度数据更新模型的专有部分,基于添加扰动后的共享梯度数据更新模型的共享部分,以及基于更新后的模型进行下一次迭代训练。
3.根据权利要求2所述的方法,其中,所述对所述共享梯度数据添加扰动,包括:
获取预设裁剪阈值;
对所述共享梯度数据中元素的值进行限制,使其任一元素的绝对值不超过预设裁剪阈值;
生成噪声数据;
将所述噪声数据叠加到所述共享梯度数据上,得到添加扰动后的共享梯度数据。
4.根据权利要求3所述的方法,其中,所述噪声数据包括高斯噪声,且所述高斯噪声的方差基于所述预设裁剪阈值、隐私预算以及松弛项确定,所述高斯噪声的均值为0。
5.根据权利要求2所述的方法,其中,基于所述专有梯度数据以及添加扰动后的共享梯度数据确定所述模型数据,包括:
将所述专有梯度数据以及添加扰动后的共享梯度数据作为所述模型数据;
或者,基于添加扰动后的共享梯度数据更新所述模型的共享部分的模型参数,基于专有梯度数据更新模型的专有部分的模型参数,将更新后的共享部分的模型参数以及更新后的专有部分的模型参数作为所述模型数据。
6.根据权利要求1所述的方法,其中,所述第二共享数据为多个数据方的第一共享数据的加权和值或加权均值。
7.根据权利要求1所述的方法,其中,多个数据方各自持有的模型具有相同的模型结构。
8.根据权利要求1所述的方法,其中,所述模型数据包括经过一次或多次迭代训练获得的模型参数或者梯度数据。
9.根据权利要求8所述的方法,其中,当所述模型数据包括经过一次或多次迭代训练获得的梯度数据时,所述方法还包括基于所述模型数据中的本地数据更新所述模型的专有部分。
10.一种隐私保护的模型训练系统,所述系统由参与训练的多个数据方中的任一数据方实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括模型训练模块、数据传输模块、第二更新模块以及确定模块,且在一轮迭代更新中:
模型训练模块用于基于自身持有的训练样本对模型进行迭代训练,得到模型数据;所述模型数据包括对应于模型的共享部分的第一共享数据和对应于模型的专有部分的本地数据,且在所述迭代训练中还包括对对应于模型的共享部分的第一共享数据添加扰动,以至少对模型数据中的第一共享数据进行隐私保护;
数据传输模块用于传输第一共享数据至服务器,以便使服务器基于多个数据方的第一共享数据确定第二共享数据;
第二更新模块用于获取所述服务器返回的第二共享数据,并基于所述第二共享数据更新所述模型的共享部分;
确定模块用于基于更新后的模型进行下一轮迭代更新,或将更新后的模型作为最终模型。
11.一种隐私保护的模型训练装置,其中,所述装置包括处理器,所述处理器用于执行权利要求1-9任一项所述的隐私保护的模型训练方法。
12.一种隐私保护的模型训练方法,所述方法由服务器实现,所述方法包括对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,一轮迭代更新包括:
获取K个数据方的第一共享数据;其中,所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分且经过添加扰动的处理:
基于K个数据方的第一共享数据确定第二共享数据;
将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。
13.根据权利要求12所述的方法,其中,所述第二共享数据为K个数据方的第一共享数据的加权和值或加权均值。
14.一种隐私保护的模型训练系统,所述系统由服务器实现,所述系统用于对数据方持有的模型进行多轮迭代更新,所述模型包括共享部分和专有部分,其中,所述系统包括数据获取模块、共享数据确定模块以及传输模块,且在一轮迭代更新中:
数据获取模块用于获取K个数据方的第一共享数据;其中所述K个数据方从M个数据方中指定,M、K均为正整数,且K≤M;第一共享数据对应于数据方的模型的共享部分且经过添加扰动的处理;
共享数据确定模块用于基于K个数据方的第一共享数据确定第二共享数据;
传输模块用于将所述第二共享数据发送给所述M个数据方,以便各数据方基于所述第二共享数据更新各自模型的共享部分。
15.一种隐私保护的模型训练装置,其中,所述装置包括处理器,所述处理器用于执行权利要求12-13任一项所述的隐私保护的模型训练方法。
CN202110433119.8A 2021-04-21 2021-04-21 一种隐私保护的模型训练方法、系统及装置 Active CN113032835B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110433119.8A CN113032835B (zh) 2021-04-21 2021-04-21 一种隐私保护的模型训练方法、系统及装置
PCT/CN2022/086538 WO2022222816A1 (zh) 2021-04-21 2022-04-13 用于隐私保护的模型的训练方法、系统及装置
US18/491,496 US20240045993A1 (en) 2021-04-21 2023-10-20 Methods, systems, and apparatuses for training privacy preserving model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110433119.8A CN113032835B (zh) 2021-04-21 2021-04-21 一种隐私保护的模型训练方法、系统及装置

Publications (2)

Publication Number Publication Date
CN113032835A CN113032835A (zh) 2021-06-25
CN113032835B true CN113032835B (zh) 2024-02-23

Family

ID=76457952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110433119.8A Active CN113032835B (zh) 2021-04-21 2021-04-21 一种隐私保护的模型训练方法、系统及装置

Country Status (3)

Country Link
US (1) US20240045993A1 (zh)
CN (1) CN113032835B (zh)
WO (1) WO2022222816A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032835B (zh) * 2021-04-21 2024-02-23 支付宝(杭州)信息技术有限公司 一种隐私保护的模型训练方法、系统及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018174873A1 (en) * 2017-03-22 2018-09-27 Visa International Service Association Privacy-preserving machine learning
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN110990871A (zh) * 2019-11-29 2020-04-10 腾讯云计算(北京)有限责任公司 基于人工智能的机器学习模型训练方法、预测方法及装置
CN112118099A (zh) * 2020-09-16 2020-12-22 西安电子科技大学 抗推理攻击的分布式多任务学习隐私保护方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836576B2 (en) * 2018-04-13 2023-12-05 International Business Machines Corporation Distributed machine learning at edge nodes
US20200272945A1 (en) * 2019-02-21 2020-08-27 Hewlett Packard Enterprise Development Lp System and method of decentralized model building for machine learning and data privacy preserving using blockchain
US20210049298A1 (en) * 2019-08-14 2021-02-18 Google Llc Privacy preserving machine learning model training
US11443240B2 (en) * 2019-09-06 2022-09-13 Oracle International Corporation Privacy preserving collaborative learning with domain adaptation
CN111915023B (zh) * 2020-08-28 2021-09-07 支付宝(杭州)信息技术有限公司 一种基于联邦学习的超参数确定方法及装置
CN111931950B (zh) * 2020-09-28 2021-01-26 支付宝(杭州)信息技术有限公司 一种基于联邦学习进行模型参数更新的方法及系统
CN112348199B (zh) * 2020-10-30 2022-08-30 河海大学 一种基于联邦学习与多任务学习的模型训练方法
CN112668726B (zh) * 2020-12-25 2023-07-11 中山大学 一种高效通信且保护隐私的个性化联邦学习方法
CN113032835B (zh) * 2021-04-21 2024-02-23 支付宝(杭州)信息技术有限公司 一种隐私保护的模型训练方法、系统及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018174873A1 (en) * 2017-03-22 2018-09-27 Visa International Service Association Privacy-preserving machine learning
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN110990871A (zh) * 2019-11-29 2020-04-10 腾讯云计算(北京)有限责任公司 基于人工智能的机器学习模型训练方法、预测方法及装置
CN112118099A (zh) * 2020-09-16 2020-12-22 西安电子科技大学 抗推理攻击的分布式多任务学习隐私保护方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
面向深度学习的差分隐私保护方法;芈小龙;隋景鹏;;舰船电子工程(第09期);全文 *
面向深度神经网络训练的数据差分隐私保护随机梯度下降算法;李英;贺春林;;计算机应用与软件(第04期);全文 *

Also Published As

Publication number Publication date
WO2022222816A1 (zh) 2022-10-27
CN113032835A (zh) 2021-06-25
US20240045993A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
De Marco et al. Evaluating collinearity effects on species distribution models: An approach based on virtual species simulation
CN111125735B (zh) 一种基于隐私数据进行模型训练的方法及系统
Yamins et al. Performance-optimized hierarchical models predict neural responses in higher visual cortex
Hoffmann et al. Optimization by self-organized criticality
US20220391778A1 (en) Online Federated Learning of Embeddings
CN113011587B (zh) 一种隐私保护的模型训练方法和系统
CN110377587B (zh) 基于机器学习的迁移数据确定方法、装置、设备及介质
CN113033825A (zh) 一种隐私保护的模型训练方法、系统及装置
US11487884B2 (en) Methods of providing data privacy for neural network based inference
CN111931876A (zh) 一种用于分布式模型训练的目标数据方筛选方法及系统
US20210383497A1 (en) Interpretation Maps with Guaranteed Robustness
US20240045993A1 (en) Methods, systems, and apparatuses for training privacy preserving model
CN114611720A (zh) 联邦学习模型训练方法、电子设备及存储介质
US11144938B2 (en) Method and system for predictive modeling of consumer profiles
Whiteway et al. Characterizing the nonlinear structure of shared variability in cortical neuron populations using latent variable models
Blaha et al. Real-time fatigue monitoring with computational cognitive models
US20220343020A1 (en) Machine Learning Model-Based Content Anonymization
Das Practical AI for cybersecurity
CN111062056B (zh) 基于迁移学习实现的私有数据保护建模方法、系统及装置
KR102339619B1 (ko) 이미지 품질향상장치, 이미지 품질향상방법
CN111062492B (zh) 一种基于可选隐私数据进行模型训练的方法及系统
US11481635B2 (en) Methods and apparatus for reducing leakage in distributed deep learning
Wang et al. FedDNA: Federated learning using dynamic node alignment
Bertrán et al. Active learning of cortical connectivity from two-photon imaging data
Bozorgi A Causal Approach to Prescriptive Process Monitoring.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant