CN111178547B - 一种基于隐私数据进行模型训练的方法及系统 - Google Patents
一种基于隐私数据进行模型训练的方法及系统 Download PDFInfo
- Publication number
- CN111178547B CN111178547B CN202010276715.5A CN202010276715A CN111178547B CN 111178547 B CN111178547 B CN 111178547B CN 202010276715 A CN202010276715 A CN 202010276715A CN 111178547 B CN111178547 B CN 111178547B
- Authority
- CN
- China
- Prior art keywords
- encryption
- data
- terminal
- mask
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例涉及一种基于隐私数据进行模型训练的方法及系统。所述的方法包括:第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;第二终端基于所述加密损失值以及自身的第一掩码,参与第二解密梯度的计算;第二终端基于所述加密损失值、自身的第二掩码以及加密后的第一特征,参与第一解密梯度的计算;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
Description
技术领域
本说明书一个或多个实施例涉及多方数据合作,特别涉及一种基于隐私数据进行模型训练的方法和系统。
背景技术
在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,通过多个数据拥有方的数据合作,来进行模型的联合训练的方式得到了广泛的使用。但是在多方数据合作的过程中,涉及到数据安全和模型安全等问题。
因此,有必要提出一种安全的基于多方数据进行联合建模的方案。
发明内容
本说明书实施例的一个方面提供一种基于隐私数据进行模型训练的方法,所述方法包括:第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算;第二终端基于所述加密损失值以及自身的第二掩码,确定掩码加密损失值;第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征,确定加密掩码数据;将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:第一数据接收模块,用于接收来自第一终端的加密后的第一特征;掩码加密损失值确定模块,用于基于所述加密损失值以及第二掩码,确定掩码加密损失值;加密掩码数据确定模块,用于基于第二掩码以及加密后的第一特征,确定加密掩码数据;模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度;用于基于所述加密损失值以及第一掩码参与第二解密梯度的计算;第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的方法,所述方法包括:第一终端接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:掩码加密损失值接收模块,用于接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;第一运算结果计算模块,用于基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图;
图2是根据本说明书一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图;以及
图3是根据本说明书的另外一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图。
具体实施方式
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
在经济、文化、教育、医疗、公共管理等各行各业充斥的大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理在越来越多场景中广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方数据的联合训练来获得更为准确的模型参数。
在一些实施例中,基于隐私数据进行模型的联合训练系统可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据,他们想共同使用彼此的数据来统一建模(例如,线性回归模型、逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,政府银行B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到比较好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。
基于隐私数据进行模型训练系统可以使多方的隐私数据在不受到泄露的情况下,通过多方数据的联合训练来得到共同使用的机器学习模型,达到一种共赢的合作状态。
在一些实施例中,基于多方数据进行的联合训练中,为了防止隐私数据的泄露,可以采用混淆电路(garbled circuit)或秘密分享的方式来进行。其中,在特征维度较大时,混淆电路(garbled circuit)或秘密分享方案的运算效率不高。而且,秘密分享的方式需要多个数据方在同一时间利用自身的数据参与运算。在一些实施例中,也可以对各方的隐私数据进行同态加密,然后让各方的隐私数据在加密的状态参与模型训练的运算。其中,同态加密仅支持积运算和/或和运算,在使用的过程中,需要把对应的运算公式根据需要进行相应的转换。在一些特征维度较大的场景中,同态加密方案的运算效率高。
图1为根据本说明书的一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图。
在一些实施例中,基于隐私数据进行模型训练系统100包括第一终端110、第二终端120以及网络130。其中,第一终端110可以理解为第一方数据拥有者,包括处理设备110-1,存储设备110-2;第二终端120可以理解为第二方数据拥有者,包括处理设备120-1,存储设备120-2。在一些实施例中,第一方数据拥有者和第二方数据拥有者所持有的数据涉及到不同领域中的用户相关信息。例如,双方持有的数据可以包括用户每年存入的银行账户的金额;也可以某一投资理财项目或某一保险品牌所涉及用户群体的性别、年龄、收入、住址等信息。需要注意的是,仅作为示例性的,图1中数据拥有者的数量为两方,在其他实施例中,还可以包括第三方数据拥有者以及第四方数据拥有者等。
第一终端110和第二终端120可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一终端110和第二终端120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一终端110和第二终端120可以将相关数据发送给对方或从对方接收相关数据。例如,第一终端110可以将自身的加密后的第一隐私数据发送给第二终端120。第一终端110也可以接收来自第二终端120的掩码加密损失函数。
第一终端和第二终端的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行加密,也可以执行相关算法和/或指令。例如,第一终端110的处理设备110-1可以对第一隐私数据进行加密,也可以利用掩码加密损失值参与模型的联合训练。例如,第二终端120的处理设备120-1可以对第二隐私数据进行加密,也可以基于相关算法指令计算加密损失值。
第一终端和第二终端的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储第一隐私数据和第二隐私数据;也可以存储指示第一终端和第二终端执行操作的相关指令。存储设备110-2和120-2还可以分别存储经处理设备110-1和120-1处理后数据。例如,存储设备110-2和120-2还可以分别存储第一隐私数据对应的特征的模型参数以及第二隐私数据对应的特征的模型参数。在一些实施例中,存储设备110-2和存储设备120-2也可以是一个存储设备,其中,第一终端和第二终端只能从该存储设备中获取自己存储的数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络130可以促进信息和/或数据的交换。在一些实施例中,基于隐私数据进行模型训练的系统100(例如,第一终端110(处理设备110-1和存储设备110-2)和第二终端120(处理设备120-1和存储设备120-2))的一个或以上部件可以经由网络130向所述系统100中的其他部件发送信息和/或数据。例如,第二终端120的处理设备110-2可以经由网络130从第一终端110中获得第一隐私数据。又例如,第一终端110的处理设备110-1可以通过网络130从第一终端110的存储设备110-2中获取第一隐私数据。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
本说明书一个或多个实施例中的系统,可以由数据接收模块、及若干个数据处理模块组成。
在一些实施例中,在以第二终端作为执行主体的系统中,所述数据接收模块包括第一数据接收模块;所述数据处理模块可以包括加密结果确定模块、加密损失值确定模块、模型参数更新模块。上述模块均在应用场景所介绍的计算系统中执行,各模块包括各自的指令,指令可存储在存储介质上,指令可在处理器中执行。不同的模块可以位于相同的设备上,也可以位于不同的设备上。它们之间可以通过程序接口、网络等进行数据的传输,可以从存储设备中读取数据或者将数据写入到存储设备中。
第一数据接收模块,可以用于接收来自第一终端的加密后的第一隐私数据。在一些实施例中,所述第一数据接收模块还可以用于接收用第一终端的公钥进行加密的第一隐私数据。在一些实施例中,所述第一数据接收模块还可以用于接收来自第一终端的加密后的第一特征。加密损失值确定模块,用于基于第一隐私数据和第二隐私数据确定联合训练的模型的加密损失值;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定。在一些实施例中,所述加密损失值确定模块还用于:基于接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
掩码加密损失值确定模块,用于基于所述加密损失值以及第二掩码,确定掩码加密损失值;
加密掩码数据确定模块,用于基于第二掩码以及加密后的第一特征,确定加密掩码数据;
模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度;用于基于所述加密损失值以及第一掩码参与第二解密梯度的计算;用于基于所述第一解密梯度和第二解密梯度更新所述联合训练的模型;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应。在一些实施例中,所述模型参数更新模块,可以用于:将所述掩码加密损失值传输给第一终端;接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。在一些实施例中,所述模型参数更新模板还可以用于:基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
在一些实施例中,在以第一终端作为执行主体的系统中,所述数据接收模块包括掩码加密损失值接收模块;所述数据处理模块可以包括模型参数更新模块。其中,掩码加密损失值接收模块可以用于接收来自第二终端的掩码加密损失值,所述掩码加密损失值由第二终端基于所述加密损失值以及第二掩码确定。所述模型参数更新模块可以用于将所述掩码加密损失值参与第一解密梯度的计算;所述第一解密梯度与第一隐私数据对应,且用于更新由第一隐私数据和第二隐私数据确定的联合训练的模型。在一些实施例中,所述模型参数更新模块可以包括第一运算结果计算模块,用于基于接收到的所述掩码加密损失值以及所述第一隐私数据对应的第一特征,确定第一加密梯度与加密掩码数据的第一运算结果;所述加密掩码数据由所述第二掩码与所述加密后的第一特征确定;将所述第一运算结果发送给第二终端。在一些实施例中,所述模型参数更新模块还可以包括第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度;所述第一加密梯度是由第二终端基于所述加密后的第一特征、第二掩码以及第一运算结果确定;基于所述第一加密梯度,确定第一解密梯度。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
图2是根据本说明书的一些实施例所示的基于隐私数据进行模型训练方法200的示例性流程图。
本说明书中的变量名称、公式仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理和机器学习原理,可以对下述过程、变量名称、公式做各种非实质性的变换,例如调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
在本说明书中,约定按以下方式表示:
对于联合训练模型的训练数据,包括m个数据样本,每个样本数据包括n维特征。其中,m个样本的n维特征数据至少由第一方数据拥有者以及第二方数据拥有者持有,也就是说,至少两方数据拥有者持有相同样本的不同特征。为方便说明,本说明书的一些实施例,以两方数据拥有者为例进行详细说明,并且分别用A和B来表示第一方数据拥有者和第二方数据拥有者。其中,第一方数据拥有者也可以称之为第一终端或第一方,第二方数据拥有者也可以称之为第二终端或第二方。
在本说明书的表示中,第一方数据拥有者A拥有m个样本中的p维特征对应的数据(Xa),及与所述p维特征对应的模型参数(Wa);第二方数据拥有者B拥有m个样本中另外q维特征对应的数据(Xb),及与所述q维特征对应的模型参数(Wb)。Xa是m个样本组成的矩阵,每个样本是1行p列的行向量,即Xa是个m行p列的矩阵。Wa是A所对应的p维特征的参数矩阵,Wa是个p行1列的矩阵。Xb是个m行q列的矩阵。Wb是B所对应的q个特征的参数矩阵,Wb是个q行1列的矩阵,且p+q=n。在本说明书中,模型参数亦可简称为模型。
标签y由A和B的其中一方持有,但另一方持有不会产生实质的影响。在本说明书的表示中,标签y由B持有,y是一个m行1列的列向量。
在本说明书中,为简便起见,未对在线性回归或逻辑回归计算中对样本数据中增加的恒值为1的数据列,以及在标签中增加的常量1进行特别说明,也未区分矩阵计算时的n与n+1。此简化对本说明书所说明的方法没有实质影响。
在一些实施例中,第一方数据拥有者A还拥有自己方的公钥PKa和私钥SKa。在本说明书的一个或多个实施例中,A的公钥PKa和私钥SKa也可以称之为第一终端公钥以及第一终端私钥。
对任一变量X,[X]a表示对X用Pka加密。当X是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何非对称加密方法。
以上约定的表示方法、变量名称,以及本说明书中出现的公式及其他表达方式,仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理、技术原理、技术方法,可以对表示方法、变量名称、公式、计算方法等做各种非实质性的变换,而不影响其实质和相应的技术效果。例如但不限于调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
步骤210,A将自方公钥给B。
数据拥有者将各自的公钥给到对方,即第一方将自方的公钥给第二方,以备后续进行数据加密时使用。例如,A可以通过网络把自己的公钥传输给B。在本说明书约定的表示中,A将自方的公钥PKa给B。
步骤220,双方分别计算Ua、Ub的一次幂、二次幂、三次幂,并用A的公钥加密。
双方分别进行所持有的模型参数与特征数据的积运算,并用第一方的公钥PKa对各自的积运算结果加密。第一方将密文数据发送给第二方。
在本说明书约定的表示中,A方计算Ua, Ua^2,Ua^3(其中,),并用Pka加密,得到[Ua]a, [Ua^2]a,[Ua^3]a,并将计算结果发送给B。由此得到的Ua、[Ua]a、Ua^2、[Ua^2]a、Ua^3、[Ua^3]a都是一个m行1列的矩阵。
同理,B方计算Ub, Ub^3(其中,)。将Ub, Ub^2,Ub^3用PKa加密,得到[Ub]a, [Ub^2]a, [Ub^3]a。由此得到的Ub、[Ub]a、Ub^2、[Ub^2]a、Ub^3、[Ub^3]a都是一个m行1列的矩阵。
步骤230,B计算加密损失值。
拥有两方加密数据的第二方将两方加密数据利用加法加和。由于加密算法是同态加密算法,因此加和后的值等于双方未加密数据求和后的加密值。
进一步第二方根据加和后的密文数据计算损失值。在计算损失值时,可以使用Taylor展开式来近似计算Sigmoid函数。由于Taylor展开式是多项式的加法和乘法运算,可以支持同态加密,因此可以通过Taylor展开式,在加密状态下计算得到近似的损失值。在一些实施例中,所述Taylor展开式可以是n阶的Taylor展开。 。
为简化计算,在一些实施例中,常常使用一定阶数的Taylor展开式进行近似计算。需要说明的是,使用的Taylor展开式的阶数越多,其近似计算的精度越高,但计算过程越复杂,计算速度越慢。为进行说明,在图2所示的一个或多个实施例中,以三阶泰勒展开式为例进行示例性说明,以下详细披露仅仅作为示例,并不构成对本申请的限定。
在本说明书约定的表示中,B方基于步骤220中获得的[Ua]a, [Ua^2]a,[Ua^3]a参与计算。
进一步地,B方计算加密损失值[d]a==[z]a/4+[0.5-y]a-[z^3]a/48。其中,;表示模型预测值;y表示与所述样本数据对应的标签。由此计算得到的加密损失值[d]a是一个m行1列的矩阵。
步骤240,B计算第二加密梯度值。
第二方将加密损失值代入梯度下降公式,即将加密损失值与自方的特征对应的数据做积运算,计算得到第二加密梯度值。
步骤242,B将第二加密梯度值加上第一掩码,发给A解密。
第二方在第二加密梯度值加上用第一方公钥加密的第一掩码,并发给第一方,第一方对所接收的加密数据用己方私钥解密。其中,第一掩码是第二方设定的数值,主要目的是防止A获知解密后的第二梯度值。对于第一掩码具体数值的设定范围,本说明书不做限定,只要能满足上述目的即可。
在本说明书约定的表示中,B方计算[Gb]a+[mask1]a,并发给A方。
在本实施例中,mask1为第一掩码,与第二梯度值Gb维度相同,因此Gb+ mask1也是一个q行1列的矩阵。
步骤244,B接收A返回的第二梯度值加上第一掩码的数据。
第一方将带有第一掩码的第二梯度值发送给第二方,第二方接收到所述数据,并去除第一掩码,得到第二方的第二梯度值。
步骤246,B基于第二梯度值更新模型。
第二方计算得到自方的第二梯度值,并将第二梯度值与leaning rate做积运算,更新模型。
步骤250,B将加密损失值加上第二掩码,发送给A。
第二方使将加密损失值加上第二掩码后得到掩码加密损失值并发送给第一方。其中,第二掩码是第二方设定的数值,主要目的是防止A获知解密后的损失值。对于第二掩码具体数值的设定范围,本说明书亦不做限定,只要能满足上述目的即可。在一些实施例中,第二掩码与第一掩码的数值可以相同,也可以不同。
在本说明书约定的表示中,B将[d]a加上第二掩码mask2,得到[d]a+[mask2]a,发送给A。由于加密算法为同态加密,所以[d]a+mask2=[d+mask2]a。
步骤252,A将接收到的数据与第一特征进行乘积计算,并将计算结果发送给B。
第一方将掩码加密损失值代入梯度下降公式,即将掩码加密损失值与自方的特征数据,即第一特征Xa做积运算,所述积运算的结果包括第一加密梯度值与第二掩码的运算结果。
在本说明书约定的表示中,A将接收到的掩码加密损失值[d+mask2]a代入梯度计算公式计算得:,其中,为第一加密梯度值[Ga]a,[mask2×Xa]a可以视为加密掩码数据,由第二掩码mask2与第一特征Xa的乘积确定。A具有的计算结果,即表示A具有的计算结果,进而可得:A可以通过如下方式来获得。
步骤254,A将加密后的第一特征发送给B,B计算第一加密梯度值。
为了确定[mask2×Xa]a的值,B需要获取第一特征Xa。为了保证第一特征Xa的隐私性,A首先用自身的公钥将第一特征进行加密,然后发送给B,即将[Xa]a发送给B。
B接收到[Xa]a后,将其与第二掩码mask2进行乘积运算mask2*[Xa]a,即得到了加密掩码数据[mask2*Xa]a。
然后,得到[mask2*Xa]a和数据后,B通过计算[(d+mask2)*Xa]a-[mask2*Xa]a=[Ga]a,所得[Ga]a即为第一加密梯度值(即带有A方公钥的第一梯度值)。B将第一加密梯度值发送给A解密。
步骤256,A接收B返回的计算结果,确定第一梯度值,并更新模型。
A计算得第一梯度值Ga后,将所述第一梯度值与leaning rate做积运算,更新模型。
上述过程说明了一次梯度下降过程,可迭代这一过程直至收敛,完成模型的训练。在这一过程中,双方均无法获知另一方所持有的数据。
通过上述计算A方第一梯度值Ga的过程可以发现,当确定加密损失值[d]a后,只要基于A方加密后的第一特征[Xa]a以及B方的第二掩码数据,便可以A、B的计算来确定第一梯度值Ga。此过程中,只需要进行一次解码,使算法更加简单,提高了通讯效率,进而提高了计算机的计算速度和运行效率。
图3为根据本说明书的一些实施例所示的对话信息的处理方法的示例性流程图。
在一些实施例中,方法300中的一个或以上步骤可以在图1所示的系统100中实现。例如,方法300中的一个或以上步骤可以作为指令的形式存储在存储设备中,并被处理设备调用和/或执行。
在本申请涉及的一个或多个实施例中,第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值。所述第一隐私数据、第二隐私数据由各数据终端持有并不对其他数据所有方公开。所述样本标签对应于第一隐私数据和第二隐私数据共同组成的训练样本。
步骤310至步骤330阐述了基于第一隐私数据和所述第二隐私数据获取联合训练的模型的加密损失值的过程。在一些实施例中,如步骤310所述,第一终端可将加密后的第一隐私数据传输给第二终端。第二终端可以基于加密后的第一隐私数据和自身所存储的第二隐私数据以及其持有的样本标签计算加密损失值。具体地,第二终端获取加密后的第一隐私数据(如[Ua]a、[Ua^3]a、[Ua^5]a等);第二终端基于加密后的第一隐私数据和第二隐私数据得到两者的加密计算结果(如[z]a=[Ua+Ub]a);第二终端基于所述加密计算结果进行计算,得到预测值;基于样本标签和预测值进行计算即可得到联合训练的模型的加密损失值。有关加密损失值获取的更多说明可见步骤310至330的相关描述。步骤310,第一终端将加密后的第一隐私数据传输给第二终端。在一些实施例中,步骤310可以由加密损失值确定模块执行。
在一些实施例中,第一隐私数据可以由第一特征与第一模型参数的乘积Ua确定,例如,第一隐私数据为Wa*Xa。对应地,第二隐私数据可以由第二特征与第二模型参数的乘积Ub确定,即为Wb*Xb。在一些实施例中,第一隐私数据可以是指乘积Ua和/或Ua的幂,例如,第一隐私数据可以是Ua、Ua^3、Ua^5等。相应地,第二隐私数据可以是指乘积Ub和/或Ub的幂,例如,第一隐私数据可以是Ub、Ub^3、Ub^5等。其中,对第一终端、第二终端;Ua、Ub;Wa、Xa;Ua^3、Ub^3以及Wb、Xb的理解可参见图2的相关说明。
在一些实施例中,第一终端可以将第一终端的公钥PKa发送给第二终端。第一终端和第二终端的隐私数据均可以通过第一终端的公钥PKa进行加密。关于第一隐私数据加密以及将加密后的数据传输给第二终端的具体描述可参见本说明书图2的步骤220。
在一些实施例中,第一隐私数据也可以是Wa和Xa,在一些实施例中,第二隐私数据也可以包括Wb和Xb。
对于下一步骤所述的第二隐私数据的加密数据,在一些实施例中,第二终端可以用与所述第一隐私数据的相同的加密公钥对第二隐私数据进行加密。例如,如果第一终端用第一终端的公钥PKa对第一隐私数据进行加密,则第二终端也用PKa对第二隐私数据进行加密具体的加密过程描述可参考图2的步骤220。
在一些实施例中,数据拥有者持有的样本数据可以是保险、银行、医疗至少一个领域中的用户属性信息。例如,银行拥有该银行客户的身份信息、流水信息以及征信信息等;保险公司拥有该公司客户身份信息、历史购买保险信息、历史理赔信息、健康信息、车辆状况信息等;医疗机构拥有该机构病人身份信息、历史看病记录等。在一些实施例中,所述用户属性信息包括图像、文本或语音等。
在一些实施例中,数据拥有者拥有的模型可以根据样本数据的特征做出预测。例如,银行可以根据一二季度用户增长、增长用户身份、银行新增政策等数据的特征预测该行全年存款增长率。在一些实施例中,所述模型还可以用于确认用户的身份信息,所述用户的身份信息可以包括但不限于对用户的信用评价。
在一些实施例中,本说明书一个或多个实施例中的隐私数据(例如,第一隐私数据和第二隐私数据)可以包括与实体相关的隐私数据。在一些实施例中,实体可以理解为可视化的主体,可以包括但不限于用户、商户等。在一些实施例中,所述隐私数据可以包括图像数据、文本数据或声音数据。例如,隐私数据中的图像数据可以是用户的人脸图像、商户的logo图像、能够反映用户或商户信息的二维码图像等。例如,隐私数据中的文本数据可以是用户的性别、年龄、学历、收入等文本数据,或者是商户的交易商品类型、商户进行商品交易的时间以及所述商品的价格区间等等文本数据。例如,隐私数据的声音数据可以是包含了用户个人信息或用户反馈的相关语音内容,通过解析所述语音内容可得到对应的用户个人信息或用户反馈信息。
步骤320,第二终端接收加密后的第一隐私数据并将其与第二隐私数据的加密数据进行计算,得到加密后的结果。在一些实施例中,步骤320可以由加密损失值确定模块执行。
在一些实施例中,加密后的结果可以理解为将第一隐私数据和第二隐私数据在加密的状态进行计算得到的结果。在一些实施例中,第一隐私数据的加密数据与第二隐私数据的加密数据之间可以采用和运算来得到加密后的结果。例如,第一隐私数据Ua的加密数据为[Ua]a,第二隐私数据Ub的加密数据为[Ub]a,那么通过和运算得到的加密后的结果为[Ua]a+[Ub]a,即为[Ua+Ub]a。
在一些实施例中,加密后的结果还可以理解在加密的状态下,第一隐私数据和第二隐私数据之和的幂运算得到的结果。例如,所述加密后的结果也可以是 。又例如,加密后的结果还可以是等等。在一些实施例中,所述加密后的结果可以是一个第一隐私数据和第二隐私数据之和的幂运算得到的结果。在一些实施例中,所述加密后的结果还可以是多个第一隐私数据和第二隐私数据之和的幂运算得到的结果。例如,所述加密后的结果可以仅包含[z]a=[Ua+Ub]a。又例如,所述加密后的结果可以包括等多项。在一些实施例中,所述加密后的计算结果的项数取决于使用的公式。需要说明的是,使用的[z]a的阶数越高,其计算结果的精度越高,但计算过程越复杂,计算速度越慢。具体的加密过程,可参见图2的步骤230。
步骤330,第二终端基于加密后的结果以及样本标签,得到基于第一隐私数据和第二隐私数据联合训练的模型的加密损失值。在一些实施例中,步骤330可以由加密损失值确定模块执行。
在一些实施例中,损失值可以用来反映训练模型预测值与样本数据真实之间的差距。在一些实施例中,损失值可以通过参与运算的方式来反映预设值与真实值的差距。其中,不同训练模型的相关运算公式不同,相同训练模型时不同参数寻优算法对应的运算公式也不同。例如,本说明书图2给出的实施例中,损失值的计算公式为但本说明书一个或多个实施例并不会对确定损失值的运算公式进行限定。
在一些实施例中,第二终端可以基于加密后的结果[Ua+Ub]a,以及样本标签y,来计算联合训练模型的加密损失值[d]a。其中,标签y可以由第一终端和第二终端中的任一方持有。
在一些实施例中,所述联合训练的模型可以包括线性回归模型;也可以包括逻辑回归模型。
在一些实施例中,当所述联合训练的模型包括逻辑回归模型,需要运用Sigmoid函数计算损失值d。由于同态加密算法仅支持积运算以及和运算,因此,根据需要可以把Sigmoid函数用一个可以支持积运算以及和运算的近似函数进行替代,例如,在一些实施例中,可以通过多阶Taylor展开公式对Sigmoid公式进行展开,然后基于Sigmoid的Taylor展开公式来计算加密损失值,详细描述可参见图2中的步骤230。在其他实施例中,也可以采用其他可近似的函数来替代Sigmoid函数,或者也可以采用其他展开公式来对Sigmoid进行展开来替代Sigmoid函数,只要所述的替代函数支持积运算和/或和运算,本说明书不做其他任何限制。
如果所述联合训练的模型是线性回归模型,可以使用线性函数来计算预测值。在线性回归模型中,因为线性函数来计算时可以直接使用同态加密的算法,可以不使用Taylor展开式。具体的,以一次线性函数y=wx+b为例,加入同态加密的算法,第二终端基于第一隐私数据和第二隐私数据加和z,可计算得到损失值。
步骤340,第二终端基于加密损失值以及自身的第一掩码参与第二解密梯度的计算。在一些实施例中,步骤340可以由模型参数更新模块执行。
在一些实施例中,第二终端基于所述加密损失值[d]a以及第二隐私数据对应的特征Xb,确定第二加密梯度[Gb]a。确定第二加密梯度[Gb]a的具体过程可以参考图2的步骤240。
在一些实施例中,第二终端可以采用添加第一掩码的方式基于第二加密梯度得到对应的第二解密梯度。具体的,在一些实施例中,第二终端得到基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给持有第二加密梯度的加密秘钥的第一终端;所述第一终端将接收到的第一掩码梯度进行解码,并将对应的第一解码结果传输给所述第二终端;所述第二终端基于接收到的所述第一解码结果以及所述第一掩码,去除第一掩码,得到第二解密梯度。在一些实施例中,所述第一掩码梯度[Gb+mask1]a可以理解为第二加密梯度[Gb]a与第一掩码mask1的运算结果。在一些实施中,所述运算可以包括积运算或和运算;所述第一掩码也可以包括一个值,也可以包括多个值。例如,在一些实施例中,所述第一掩码mask1为一个值,所述运算为和运算,那么对应的第一掩码梯度可以为[Gb]a+[mask1]a,或者[Gb+mask1]a。关于第二终端通过添加第一掩码方式获取第二解密梯度Gb的具体描述,可参见图2的步骤242和步骤244。
在一些实施例中,当所述第一掩码通过积运算方式添加第一掩码时,所述第一掩码梯度可以为[Gb]a*[mask1]a。
在一些实施例中,第二终端基于所述第二解密梯度Gb更新所述联合训练的模型,具体的描述,可参见图2的步骤246。
在一些实施例中,第二终端确定加密损失值后,需要通过一种不会把第二隐私数据泄露给第一终端的方式,将确定的加密损失函数传输给第一终端。在一些实施例中,第二终端将在所述加密损失值[d]a上添加第二掩码mask2,确定掩码加密损失值,例如[d+mask2]a,并将所述掩码加密损失值发送给第一终端。具体地可参见图2步骤250。
步骤350,第二终端基于加密损失值、加密后的第一特征以及自身的第二掩码参与第一解密梯度的计算。在一些实施例中,步骤350可以由模型参数更新模块执行。
在一些实施例中,第二终端基于加密损失值以及自身的第二掩码,确定掩码加密损失值,例如,[d]a+mask2;第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征确定加密掩码数据,例如,[mask2*Xa]a;第二终端将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算。
在一些实施例中,第二终端可以将掩码加密损失值,即[d]a+mask2,或者[d+mask2]a发送给第一终端,第一终端基于接收到的掩码加密损失值,计算掩码加密损失值与第一隐私数据对应的特征Xa的乘积,得到第一运算结果[d+mask2]a*Xa,或者[(d+mask2)*Xa]a,或者[d*Xa]a+[mask2*Xa]a,并将第一运算结果发送给第二终端。
所述第一运算结果包括第一加密梯度[d*Xa]a与加密掩码数据[mask2*Xa]a的运算结果,例如,所述第一运算结果可以是第一加密梯度与加密掩码数据运算和的结果。
在一些实施例中,第二终端在步骤310中接收到的第一隐私数据是Ua和/或Ua的幂(Ua即为Xa和Wa的乘积)。在该场景的实施例中,第一终端可以将第一特征用自己的公钥进行加密,并将加密后的第一特征发送给第二终端,从而获取加密掩码数据[mask2*Xa]a 。第二终端接收加密后的第一特征[Xa]a后,进而可以计算加密掩码数据mask2*[Xa]a(即[mask2*Xa]a),并基于第一运算结果[(d+mask2)*Xa]a得到第一加密梯度[d*Xa]a。
第一终端对第一加密梯度[d*Xa]a进行解密,可以确定第一解密梯度Ga,进而更新模型参数。对应的详细描述可参见图2的步骤252到步骤256。
在一些实施例中,第二终端在步骤310中接收的第一隐私数据包括Xa和Wa。在该场景的实施例中,第二终端可以直接根据第一隐私数据中的Xa计算加密掩码数据[mask2*Xa]a。通过计算第一运算结果和加密掩码数据之差,可以得到差值[(d+mask2)*Xa]a-[mask2*Xa]a= [d*Xa]a,即得到了第一加密梯度[d*Xa]a。
在一些实施例中,将所述加密损失值参与第一解密梯度(和/或第二解密梯度)的计算,可以理解为利用加密损失函数来参与加密计算,最终通过解密的方式来获取能够进行模型参数更新的解密梯度,进而得到完成一次参数更新的模型。
在一些实施例中,可以使用梯度下降法来获得完成一次参数更新的模型。具体的,可以将得到的加密损失值计算求得加密梯度值参与模型训练,重复上述过程直至迭代次数达到预定义的迭代次数上限值或带入加密损失值后计算得到的误差小于预定义的数值,即得到训练好的模型。
在一些实施例中,可以运用梯度下降法使得损失值d最小。例如,在一些实施例中,可以基于所述加密损失值[d]a,以及第一隐私数据和第二隐私数据对应的特征Xa和Xb来确定第一终端的第一加密梯度[Ga]a和第二终端的第二加密梯度[Gb]a。在一些实施例中,第一终端和第二终端可以分别基于第一加密梯度[Ga]a和第二加密梯度[Gb]a来确定对应的第一解密梯度Ga和第二解密梯度Gb,并分别基于第一解密梯度Ga和第二解密梯度Gb更新模型参数,进而得到完成一次参数更新的模型。
在其他实施例中,也可以采用其他参数寻优方法来替代梯度下降法,如牛顿下降法等,本说明书一个或多个实施例对此不作任何限定。需要注意的是,在使用相应的算法时需要考虑到同态加密仅支持积运算和/或和运算,可以使用近似函数替换的方式来解决运算类型支持的问题。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
本申请实施例可能带来的有益效果包括但不限于:(1)使用同态加密使隐私数据在加密状态下也能参与运算,在训练数据的特征维度较高时,也能具有较高的运算效率;(2)基于一方的加密特征,另一方的掩码数据参与一方的梯度值计算,简化了算法流程,提高了运算效率;(3)多方数据联合训练,提高数据的利用率,提高预测模型的准确性;(4)提高多方数据联合训练的安全性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。
Claims (12)
1.一种基于隐私数据进行模型训练的方法,所述方法包括:
第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算;
第二终端基于所述加密损失值以及自身的第二掩码,确定掩码加密损失值;
第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征,确定加密掩码数据;将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算;
所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;
其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
2.根据权利要求1所述的方法,所述将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算包括:
将所述掩码加密损失值传输给第一终端;
接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;
第二终端基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。
3.根据权利要求1所述的方法,所述第二终端持有所述加密损失值通过以下方式获取:
第二终端接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定;
第二终端基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
4.根据权利要求1所述的方法,所述第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算包括:
基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;
接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
第二终端基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
5.一种基于隐私数据进行模型训练的系统,所述系统包括:
第一数据接收模块,用于接收来自第一终端的加密后的第一特征;
掩码加密损失值确定模块,用于基于加密损失值以及第二掩码,确定掩码加密损失值;
加密掩码数据确定模块,用于基于所述第二掩码以及所述加密后的第一特征,确定加密掩码数据;
模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度;基于所述加密损失值以及第一掩码参与第二解密梯度的计算;
第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;
其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
6.根据权利要求5所述的系统,所述模型参数更新模块还用于:
将所述掩码加密损失值传输给第一终端;
接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;
基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。
7.根据权利要求5所述的系统,所述系统还包括加密损失值确定模块;所述加密损失值确定模块用于:
基于接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定;
基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
8.根据权利要求5所述的系统,所述模型参数更新模块还用于:
基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;
接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
9.一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求1至4中任一项所述基于隐私数据进行模型训练方法对应的操作。
10.一种基于隐私数据进行模型训练的方法,所述方法包括:
第一终端接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;
基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;
接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
11.一种基于隐私数据进行模型训练的系统,所述系统包括:
掩码加密损失值接收模块,用于接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;
第一运算结果计算模块,用于基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;
第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
12.一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求10所述基于隐私数据进行模型训练方法对应的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276715.5A CN111178547B (zh) | 2020-04-10 | 2020-04-10 | 一种基于隐私数据进行模型训练的方法及系统 |
PCT/CN2021/086267 WO2021204268A1 (zh) | 2020-04-10 | 2021-04-09 | 基于隐私数据进行模型训练 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276715.5A CN111178547B (zh) | 2020-04-10 | 2020-04-10 | 一种基于隐私数据进行模型训练的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111178547A CN111178547A (zh) | 2020-05-19 |
CN111178547B true CN111178547B (zh) | 2020-07-17 |
Family
ID=70655175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010276715.5A Active CN111178547B (zh) | 2020-04-10 | 2020-04-10 | 一种基于隐私数据进行模型训练的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111178547B (zh) |
WO (1) | WO2021204268A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178547B (zh) * | 2020-04-10 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
CN111738359B (zh) * | 2020-07-24 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 一种两方决策树训练方法和系统 |
CN111680676B (zh) * | 2020-08-14 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | 训练人脸识别模型、图像注册、人脸识别方法和装置 |
CN112149157A (zh) * | 2020-08-19 | 2020-12-29 | 成都飞机工业(集团)有限责任公司 | 一种基于公私密钥进行数据保密的3d打印数据库共享方法 |
CN112632611B (zh) * | 2020-12-28 | 2024-06-18 | 杭州趣链科技有限公司 | 数据聚合的方法、设备、电子装置和存储介质 |
CN114092140B (zh) * | 2021-11-16 | 2023-06-27 | 抖音视界有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN116415267A (zh) * | 2021-12-30 | 2023-07-11 | 新智我来网络科技有限公司 | 一种联合学习模型迭代更新方法、装置、系统及存储介质 |
CN114547643B (zh) * | 2022-01-20 | 2024-04-19 | 华东师范大学 | 一种基于同态加密的线性回归纵向联邦学习方法 |
CN114611128B (zh) * | 2022-03-15 | 2023-06-06 | 抖音视界有限公司 | 一种纵向联邦学习方法、装置、系统、设备及存储介质 |
CN114944934B (zh) * | 2022-04-24 | 2023-12-29 | 华控清交信息科技(北京)有限公司 | 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台 |
CN114553610B (zh) * | 2022-04-27 | 2022-07-29 | 国网山东省电力公司潍坊市寒亭区供电公司 | 一种用于隐私数据的电力数据分析系统及方法 |
CN116721041B (zh) * | 2023-08-09 | 2023-11-28 | 广州医科大学附属第一医院(广州呼吸中心) | 图像处理方法、设备、系统以及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110601814A (zh) * | 2019-09-24 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 联邦学习数据加密方法、装置、设备及可读存储介质 |
CN110728375A (zh) * | 2019-10-16 | 2020-01-24 | 支付宝(杭州)信息技术有限公司 | 多个计算单元联合训练逻辑回归模型的方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120179909A1 (en) * | 2011-01-06 | 2012-07-12 | Pitney Bowes Inc. | Systems and methods for providing individual electronic document secure storage, retrieval and use |
WO2018174873A1 (en) * | 2017-03-22 | 2018-09-27 | Visa International Service Association | Privacy-preserving machine learning |
US10803546B2 (en) * | 2017-11-03 | 2020-10-13 | Baidu Usa Llc | Systems and methods for unsupervised learning of geometry from images using depth-normal consistency |
CN109087346B (zh) * | 2018-09-21 | 2020-08-11 | 北京地平线机器人技术研发有限公司 | 单目深度模型的训练方法、训练装置和电子设备 |
CN110176226B (zh) * | 2018-10-25 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 一种语音识别、及语音识别模型训练方法及装置 |
US10510002B1 (en) * | 2019-02-14 | 2019-12-17 | Capital One Services, Llc | Stochastic gradient boosting for deep neural networks |
CN109886417B (zh) * | 2019-03-01 | 2024-05-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、装置、设备及介质 |
CN110399742B (zh) * | 2019-07-29 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
CN111178547B (zh) * | 2020-04-10 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
-
2020
- 2020-04-10 CN CN202010276715.5A patent/CN111178547B/zh active Active
-
2021
- 2021-04-09 WO PCT/CN2021/086267 patent/WO2021204268A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110601814A (zh) * | 2019-09-24 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 联邦学习数据加密方法、装置、设备及可读存储介质 |
CN110728375A (zh) * | 2019-10-16 | 2020-01-24 | 支付宝(杭州)信息技术有限公司 | 多个计算单元联合训练逻辑回归模型的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111178547A (zh) | 2020-05-19 |
WO2021204268A1 (zh) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111125735B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111178547B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111143878B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111931216B (zh) | 一种基于隐私保护的方式获取联合训练模型的方法及系统 | |
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
JP6921233B2 (ja) | 秘密分散を使用したロジスティック回帰モデリング方式 | |
CN111143894B (zh) | 一种提升安全多方计算效率的方法及系统 | |
US20210042645A1 (en) | Tensor Exchange for Federated Cloud Learning | |
US10320752B2 (en) | Gradients over distributed datasets | |
CN111460528B (zh) | 一种基于Adam优化算法的多方联合训练方法及系统 | |
US11907403B2 (en) | Dynamic differential privacy to federated learning systems | |
US10839091B2 (en) | Protection of data privacy for cognitive demand forecasting | |
Paul et al. | Privacy-preserving collective learning with homomorphic encryption | |
George et al. | Data sharing made easy by technology trends: New data sharing and privacy preserving technologies that bring in a new era of data monetization | |
Treleaven et al. | Federated learning: The pioneering distributed machine learning and privacy-preserving data technology | |
CN111079947B (zh) | 一种基于可选隐私数据进行模型训练的方法及系统 | |
Khan et al. | Vertical federated learning: A structured literature review | |
Tang et al. | IHVFL: a privacy-enhanced intention-hiding vertical federated learning framework for medical data | |
CN111062492B (zh) | 一种基于可选隐私数据进行模型训练的方法及系统 | |
Inbaraj et al. | Need to know about combined technologies of blockchain and machine learning | |
Mohan et al. | Fraud detection in medical insurance claim with privacy preserving data publishing in TLS-N using blockchain | |
CN111931947A (zh) | 一种用于分布式模型训练的训练样本重组方法及系统 | |
Fantaye | An Introduction and Overview of Privacy-Enhancing Technologies for Data Processing and Analysis | |
Hägglund | HEIDA: Software Examples for Rapid Introduction of Homomorphic Encryption for Privacy Preservation of Health Data | |
US11451375B2 (en) | System, method and apparatus for privacy preserving inference |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40029343 Country of ref document: HK |