CN111143878B - 一种基于隐私数据进行模型训练的方法及系统 - Google Patents
一种基于隐私数据进行模型训练的方法及系统 Download PDFInfo
- Publication number
- CN111143878B CN111143878B CN201911334589.8A CN201911334589A CN111143878B CN 111143878 B CN111143878 B CN 111143878B CN 201911334589 A CN201911334589 A CN 201911334589A CN 111143878 B CN111143878 B CN 111143878B
- Authority
- CN
- China
- Prior art keywords
- data
- terminal
- mask
- gradient
- encryption
- 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
- 238000012549 training Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 17
- 238000007477 logistic regression Methods 0.000 claims description 8
- 238000012417 linear regression Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 24
- 238000003860 storage Methods 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011478 gradient descent method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (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)或秘密分享的方式来进行。其中,在特征维度较大时,混淆电路(garbledcircuit)或秘密分享方案的运算效率不高。而且,秘密分享的方式需要多个数据方在在同一时间利用自身的数据参与运算。在一些实施例中,也可以对各方的隐私数据进行同态加密,然后让各方的隐私数据在加密的状态参与模型训练的运算。其中,同态加密仅支持积运算和/或和运算,在使用的过程中,需要把对应的运算公式根据需要进行相应的转换。在一些特征维度较大的场景中,同态加密方案的运算效率高。
图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可以为任意形式的有线或无线网络,或其任意组合。
本说明书一个或多个实施例中的系统,可以由数据接收模块、及若干个数据处理模块组成。
在一些实施例中,在以第二终端作为执行主体的系统中,所述数据接收模块包括第一数据接收模块;所述数据处理模块可以包括加密结果确定模块、加密损失值确定模块、模型参数更新模块。上述模块均在应用场景所介绍的计算系统中执行,各模块包括各自的指令,指令可存储在存储介质上,指令可在处理器中执行。不同的模块可以位于相同的设备上,也可以位于不同的设备上。它们之间可以通过程序接口、网络等进行数据的传输,可以从存储设备中读取数据或者将数据写入到存储设备中。
第一数据接收模块,可以用于接收来自第一终端的加密后的第一隐私数据。在一些实施例中,所述第一数据接收模块还可以用于接收用第一终端的公钥进行加密的第一隐私数据。
加密结果确定模块,可以用于将加密后的第一隐私数据与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果。
加密损失值确定模块,可以用于基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值。在一些实施例中,所述加密损失值确定模块还可以用于基于泰勒展开公式以及Sigmoid函数确定所述加密损失值。
模型参数更新模块,可以用于将所述加密损失值参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型。在一些实施例中,所述模型参数更新模块,可以用于:基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;基于所述第二加密梯度,确定对应的第二解密梯度;基于所述第二解密梯度,更新所述联合训练的模型。在一些实施例中,所述模型参数更新模块,可以用于:基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;第二终端基于所述第一解码结果以及所述第一掩码,确定第二解密梯度;并基于所述第二解密梯度更新所述联合训练的模型。
在一些实施例中,在以第一终端作为执行主体的系统中,所述数据接收模块包括掩码加密损失值接收模块;所述数据处理模块可以包括模型参数更新模块。其中,掩码加密损失值接收模块可以用于接收来自第二终端的掩码加密损失值,所述掩码加密损失值由第二终端基于所述加密损失值以及第二掩码确定。所述模型参数更新模块可以用于将所述掩码加密损失值参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型。在一些实施例中,所述模型参数更新模块可以用于基于接收到的所述掩码加密损失值以及所述第一隐私数据对应的特征,确定第一解密梯度与第二掩码数据的第一运算结果;所述第二掩码数据基于所述第二掩码与所述第一隐私数据确定。在一些实施例中,所述模型参数更新模块可以用于接收来自第二终端的加密后的第二掩码;基于所述加密后的第二掩码与第一隐私数据对应的特征,确定加密后的第二掩码数据;将所述第二掩码数据添加第三掩码发给第二终端解密;接收来自第二终端的解密结果,并基于所述第一运算结果、所述解密结果以及第三掩码确定第一解密梯度;所述解密结果对应于第二掩码数据与第三掩码的运算结果。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
图2是根据本说明书的一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图。
本说明书中的变量名称、公式仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理和机器学习原理,可以对下述过程、变量名称、公式做各种非实质性的变换,例如调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
在本说明书中,约定按以下方式表示:
对于联合训练模型的训练数据,包括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;第二方数据拥有者B拥有自己方的公钥PKb和私钥SKb。在本说明书的一个或多个实施例中,A的公钥PKa和私钥SKa也可以称之为第一终端公钥以及第一终端私钥;B的公钥PKb和私钥SKb也可以称之为第二终端公钥以及第二终端私钥。
对任一变量X,[X]a表示对X用Pka加密,类似地,[X]b表示对X 用Pkb加密。当X是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何非对称加密方法。
以上约定的表示方法、变量名称,以及本说明书中出现的公式及其他表达方式,仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理、技术原理、技术方法,可以对表示方法、变量名称、公式、计算方法等做各种非实质性的变换,而不影响其实质和相应的技术效果。例如但不限于调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
步骤210,A将自方公钥给B,B将自方公钥给A。
数据拥有者将各自的公钥给到对方,即第一方将自方的公钥给第二方,第二方将自方的公钥给第一方,以备后续进行数据加密时使用。例如, A可以通过网络把自己的公钥传输给B;B也可以通过网络把自己的公钥传输给A。
在本说明书约定的表示中,A将自方的公钥PKa给B,B将自方的公钥PKb给A。
步骤220,A、B分别计算Ua、Ub,并对其加密。
双方分别进行所持有的模型参数与特征数据的积运算,并用第一方的公钥对各自的积运算结果加密。第一方将密文数据发送给第二方。
在本说明书约定的表示中,A方计算Ua=Xa×Wa,A将Ua用 Pka加密,得到[Ua]a,发送给B。由此得到的Ua或[Ua]a都是一个m行1 列的矩阵。B方计算Ub=Xb×Wb,B将Ub用PKa加密,得到[Ub]a,由此得到的Ub或[Ub]a都是一个m行1列的矩阵。
在本说明书的一个或多个实施例中,所用加密算法为同态加密算法。同态加密算法是指对于加密函数f,对任意的A、B,f(A)+f(B)=f(A+ B),f(A)×f(B)=f(A×B)。对应到本实施例,即:[Ua]a+[Ub]a=[Ua+ Ub]a。
步骤230,B计算加密损失值。
拥有两方加密数据的第二方将两方加密数据利用加法加和。由于加密算法是同态加密算法,因此加和后的值等于双方未加密数据求和后的加密值。
进一步第二方根据加和后的密文数据计算损失值。在计算损失值时,可以使用Taylor展开式来近似计算Sigmoid函数。由于Taylor展开式是多项式的加法和乘法运算,可以支持同态加密,因此可以通过Taylor展开式,在加密状态下计算得到近似的损失值。
在本说明书约定的表示中,B方计算[z]a=[Ua]a+[Ub]a=[Ua+ Ub]a。
用Taylor展开式模拟计算:
由此计算得到的加密损失值[d]a是一个m行1列的矩阵。
步骤240,B计算第二加密梯度值。
第二方将加密损失值代入梯度下降公式,即将加密损失值与自方的特征对应的数据做积运算,计算得到第二加密梯度值。
步骤242,B将第二加密梯度值加上第一掩码,发给A解密。
第二方在第二加密梯度值加上用第一方公钥加密的第一掩码,并发给第一方,第一方对所接收的加密数据用己方私钥解密。其中,第一掩码是第二方设定的数值,主要目的是防止A获知解密后的第二梯度值。对于第一掩码具体数值的设定范围,本说明书不做限定,只要能满足上述目的即可。
在本说明书约定的表示中,B方计算[Gb]a+[mask1]a,并发给A方。
在本实施例中,mask1为第一掩码,与第二梯度值Gb维度相同,因此Gb+mask1也是一个q行1列的矩阵。
A方获得[Gb]a+[mask1]a。由于加密算法为同态加密,因此[Gb]a+ [mask1]a=[Gb+mask1]a。A方用Ska解密获得Gb+mask1。由于A方不知道mask1的值,所以A方无法获知Gb的值。
步骤244,B接收A返回的第二梯度值加上第一掩码的数据。
第一方将带有第一掩码的第二梯度值发送给第二方,第二方接收到所述数据,并去除第一掩码,得到第二方的第二梯度值。
在本说明书约定的表示中,B方接收到Gb+mask1,并去除mask1,计算第二梯度值Gb=Gb+mask-mask。由此得到第二梯度值Gb是一个q行1列的矩阵。
步骤246,B基于第二梯度值更新模型。
第二方计算得到自方的第二梯度值,并将第二梯度值与leaning rate 做积运算,更新模型。
在本说明书约定的表示中,B方计算更新Wb=Wb- learning_rate×Gb。在本说明书中,leaming_rate表示在梯度下降法中的影响下降幅度的超参数。
步骤250,B将加密损失值加上第二掩码,发送给A。
第二方使将加密损失值加上第二掩码后得到掩码加密损失值并发送给第一方。
在本说明书约定的表示中,B将[d]a加上第二掩码mask2,得到 [d]a+mask2,发送给A。由于加密算法为同态加密,所以 [d]a+mask2=[d+mask2]a。
步骤252,A解密接收到的结果,并计算其与第一隐私数据的乘积。
第一方将接收到掩码加密损失值进行解密,并将解密后的掩码加密损失值代入梯度下降公式,即将解密后的掩码加密损失值与自方的特征数据做积运算,所述积运算的结果包括第一梯度值与第二掩码数据的运算结果。
在本说明书约定的表示中,A将解密后的掩码加密损失值d+mask2 代入梯度计算公式计算得:(d+mask2)×Xa=d×Xa+mask2×Xa,其中, d×Xa为第一梯度值,mask2×Xa可以视为第二掩码数据,由第二掩码mask2 与A方的特征数据Xa的乘积确定。
步骤254,A接收B发送的加密后的第二掩码,计算其与第一隐私数据的乘积,并将计算结果加上第三掩码发送给B。
根据步骤252可知,需要确定mask2×Xa的值来确定第一梯度值 d×Xa。为了确定mask2×Xa的值,B首先用自身的公钥将第二掩码进行加密,然后发送给A,即将[mask2]b发送给A。
A接收到[mask2]b后,将其与自身的特征数据Xa进行乘积运算 [mask2]b×Xa,即为[mask2×Xa]b。
A将计算结果[mask2×Xa]b加上第三掩码mask3,并将结果发送给 B。具体地,A将[mask2×Xa]b加上第三掩码mask3后得到[mask2×Xa]b+mask3,也为[mask2×Xa+mask3]b,然后A将 [mask2×Xa+mask3]b发送给B。
B将接收到的[mask2×Xa+mask3]b进行解密得到mask2×Xa+mask3,并将解密结果发送给A。
步骤256,A接收B返回的解密结果,确定第一梯度值,并更新模型。
A基于B返回的解密结果mask2×Xa+mask3以及自身的第三掩码 mask3可以确定mask2×Xa的值,进而可以确定步骤254中的第一梯度值 d×Xa。
具体地,A基于B返回的解密结果计算得mask2×Xa为:
mask2×Xa+mask3-mask3。
然后,A计算第一梯度值Ga=d×Xa为:
d×Xa+mask2×Xa-mask2×Xa。
A计算得第一梯度值Ga后,将所述第一梯度值与leaning rate做积运算,更新模型。
在本说明书约定的表示中,A方计算Wa=Wa-learning_rate× Ga。
上述过程说明了一次梯度下降过程,可迭代这一过程直至收敛,完成模型的训练。在这一过程中,双方均无法获知另一方所持有的数据。
图3为根据本说明书的一些实施例所示的对话信息的处理方法的示例性流程图。
在一些实施例中,方法300中的一个或以上步骤可以在图1所示的系统100中实现。例如,方法300中的一个或以上步骤可以作为指令的形式存储在存储设备中,并被处理设备调用和/或执行。
步骤310,第一终端将第一隐私数据加密后传输给第二终端。在一些实施例中,步骤310可以由第一数据接收模块执行。
在一些实施例中,第一隐私数据由第一终端持有,第二终端持有第二隐私数据。其中,第一隐私数据和第二隐私数据对应于相同样本的不同特征(Xa和Xb)以及模型参数(Wa和Wb)。
在一些实施例中,第一隐私数据可以由第一特征与第一模型参数的乘积Ua确定,例如,第一隐私数据为Wa*Xa。对应地,第二隐私数据可以由第二特征与第二模型参数的乘积Ub确定,即为Wb*Xb。其中,对第一终端、第二终端;Ua、Ub;Wa、Xa;以及Wb、Xb的理解可参见图2中的相关说明。
在一些实施例中,第一终端可以用第一终端的公钥PKa将所述第一隐私数据进行加密;也可以用第二终端的公钥PKb将所述第一隐私数据进行加密。关于第一隐私数据加密以及将加密后的数据传输给第二终端的具体描述可参见本说明书图2的步骤220。
在一些实施例中,第一隐私数据也可以是Wa和Xa,在一些实施例中,第二隐私数据也可以包括Wb和Xb。
对于下一步骤所述的第二隐私数据的加密数据,在一些实施例中,第二终端可以用与所述第一隐私数据的相同的加密公钥对第二隐私数据进行加密。例如,如果第一终端用第一终端的公钥PKa对第一隐私数据进行加密,则第二终端也用PKa对第二隐私数据进行加密;如果第一终端用第二终端的公钥PKb对第一隐私数据进行加密,则第二终端也用PKb对第二隐私数据进行加密。具体的加密过程描述可参考图2的步骤220。
在一些实施例中,数据拥有者持有的样本数据可以是保险、银行、医疗至少一个领域中的用户属性信息。例如,银行拥有该银行客户的身份信息、流水信息以及征信信息等;保险公司拥有该公司客户身份信息、历史购买保险信息、历史理赔信息、健康信息、车辆状况信息等;医疗机构拥有该机构病人身份信息、历史看病记录等。在一些实施例中,所述用户属性信息包括图像、文本或语音等。
在一些实施例中,数据拥有者拥有的模型可以根据样本数据的特征做出预测。例如,银行可以根据一二季度用户增长、增长用户身份、银行新增政策等数据的特征预测该行全年存款增长率。在一些实施例中,所述模型还可以用于确认用户的身份信息,所述用户的身份信息可以包括但不限于对用户的信用评价。
在一些实施例中,本说明书一个或多个实施例中的隐私数据(例如,第一隐私数据和第二隐私数据)可以包括与实体相关的隐私数据。在一些实施例中,实体可以理解为可视化的主体,可以包括但不限于用户、商户等。在一些实施例中,所述隐私数据可以包括图像数据、文本数据或声音数据。例如,隐私数据中的图像数据可以是用户的人脸图像、商户的logo 图像、能够反映用户或商户信息的二维码图像等。例如,隐私数据中的文本数据可以是用户的性别、年龄、学历、收入等文本数据,或者是商户的交易商品类型、商户进行商品交易的时间以及所述商品的价格区间等等文本数据。例如,隐私数据的声音数据可以是包含了用户个人信息或用户反馈的相关语音内容,通过解析所述语音内容可得到对应的用户个人信息或用户反馈信息。
步骤320,第二终端接收加密后的第一隐私数据并将其与第二隐私数据的加密数据进行计算,得到加密后的结果。在一些实施例中,步骤320 可以由加密结果确定模块执行。
在一些实施例中,加密后的结果可以理解为将第一隐私数据和第二隐私数据在加密的状态进行计算得到的结果。在一些实施例中,第一隐私数据的加密数据与第二隐私数据的加密数据之间可以采用和运算来得到加密后的结果。例如,第一隐私数据Ua的加密数据为[Ua]a,第二隐私数据 Ub的加密数据为[Ub]a,那么通过和运算得到的加密后的结果为[Ua]a+[Ub]a,即为[Ua+Ub]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最小。例如,在一些实施例中,可以基于所述加密损失值[d]a,以及第一隐私数据和第二隐私数据对应的特征Xa和Xb来确定第一终端的第一加密梯度[Ga]a和第二终端的第二加密梯度[Gb]a。在一些实施例中,第一终端和第二终端可以分别基于第一加密梯度[Ga]a和第二加密梯度[Gb]a来确定对应的第一解密梯度Ga和第二解密梯度Gb,并分别基于第一解密梯度Ga和第二解密梯度Gb更新模型参数,进而得到完成一次参数更新的模型。
在其他实施例中,也可以采用其他参数寻优方法来替代梯度下降法,如牛顿下降法等,本说明书一个或多个实施例对此不作任何限定。需要注意的是,在使用相应的算法时需要考虑到同态加密仅支持积运算和/或和运算,可以使用近似函数替换的方式来解决运算类型支持的问题。
在一些实施例中,第二终端基于所述加密损失值[d]a以及第二隐私数据对应的特征Xb,确定第二加密梯度[Gb]a的具体过程可以参考图2的步骤240。
在一些实施例中,第二终端可以采用添加第一掩码的方式基于第二加密梯度得到对应的第二解密梯度。具体的,第二终端得到基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给持有第二加密梯度的加密秘钥的第一终端;所述第一终端将接收到的第一掩码梯度进行解码,并将对应的第一解码结果传输给所述第二终端;所述第二终端基于接收到的所述第一解码结果以及所述第一掩码,去除第一掩码,得到第二解密梯度。在一些实施例中,所述第一掩码梯度可以理解为第二加密梯度与第一掩码的运算结果。在一些实施中,所述运算可以包括积运算或和运算;所述第一掩码也可以包括一个值,也可以包括多个值。例如,在一些实施例中,所述第一掩码mask1为一个值,所述运算为和运算,那么对应的第一掩码梯度可以为[Gb]a+[mask1]a。关于第二终端通过添加第一掩码方式获取第二解密梯度Gb的具体描述,可参见图2的步骤242和步骤244。
在一些实施例中,当所述第一掩码通过积运算方式添加第一掩码时,所述第一掩码梯度可以为[Gb]a*[mask1]a。
在一些实施例中,第二终端基于所述第二解密梯度Gb更新所述联合训练的模型,具体的描述,可参见图2的步骤246。
在一些实施例中,第二终端确定加密损失值后,需要通过一种不会把第二隐私数据泄露给第一终端的方式,将确定的加密损失函数传输给第一终端。在一些实施例中,第二终端将在所述加密损失值[d]a上添加第二掩码mask2,确定掩码加密损失值,例如[d]a+mask2,并将所述掩码加密损失值发送给第一终端。具体地可参见图2步骤250。
在一些实施例中,第一终端可以基于接收到的掩码加密损失值 [d]a+mask2,也可以是[d+mask2]a,计算掩码加密损失值与第一隐私数据对应的特征Xa的乘积,所述乘积结果包括第一解密梯度d*Xa与第二掩码数据mask2*Xa的运算结果。为了确定第一解密梯度d*Xa,第一终端需要知道第二掩码数据mask2*Xa,因此,第二终端把mask2用自身的公钥进行加密,并发给第一终端。第一终端接收[mask2]b后,计算[mask2]b*Xa,并将计算结果添加第三掩码mask3后发给第二终端,即把[mask2]b*Xa+mask3,也就是把[mask2*Xa+mask3]b发给第二终端解密。由于mask1和mask2是第二终端数据,mask3是第一终端数据,所以第一终端接收到解密结果 mask2*Xa+mask3后可以确定第一解密梯度Ga,进而更新模型参数。对应的详细描述可参见图2的步骤252到步骤256。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,第一终端可以将第一隐私数据加上第二终端的公钥,第二终端可以将第二隐私数据加上第二终端的公钥,并发送给第一终端,都在本申请的保护范围之内。
本申请实施例可能带来的有益效果包括但不限于:(1)多方数据联合训练,提高数据的利用率,提高预测模型的准确性;(2)提高多方数据联合训练的安全性;(3)使用同态加密使隐私数据在加密状态下也能参与运算,在训练数据的特征维度较高时,也能具有较高的运算效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、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 (22)
1.一种基于隐私数据进行模型训练的方法,所述方法包括:
第二终端接收利用第一终端的第一公钥加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第一隐私数据由与其对应的特征和模型参数确定;所述第二隐私数据由与其对应的特征和模型参数确定;
第二终端基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
将所述加密损失值参与第二解密梯度的计算;
第二终端基于所述加密损失值与第二掩码之和得到掩码加密损失值,并将所述掩码加密损失值以及用自身的第二公钥加密的第二掩码发送给第一终端;
对从第一终端接收的数据进行解密,该接收的数据是第一终端将加密后的第二掩码与第一隐私数据对应的特征进行乘积运算后,再添加第三掩码得到的;
将解密结果发送给第一终端,使其确定第一解密梯度;
所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;
其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。
2.根据权利要求1所述的方法,所述联合训练的模型包括线性回归模型或逻辑回归模型。
3.根据权利要求1所述的方法,当所述联合训练的模型包括逻辑回归模型时,所述第二终端基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值包括:
第二终端基于泰勒展开公式以及Sigmoid函数确定所述加密损失值。
4.根据权利要求1所述的方法,所述将所述加密损失值参与第一解密梯度和第二解密梯度的计算包括:
基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
基于所述第二加密梯度,确定对应的第二解密梯度。
5.根据权利要求4所述的方法,所述基于所述第二加密梯度,确定对应的第二解密梯度包括:
基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述掩码梯度传输给所述第一终端;
接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
第二终端基于所述第一解码结果以及所述第一掩码,确定第二解密梯度;并基于所述第二解密梯度更新所述联合训练的模型。
6.根据权利要求1所述的方法,
所述第二隐私数据的加密数据的加密公钥为所述第一公钥。
7.根据权利要求1所述的方法,所述第一隐私数据和所述第二隐私数据包括与实体相关的图像数据、文本数据或声音数据。
8.一种基于隐私数据进行模型训练的系统,所述系统部署在第二终端中,包括:
第一数据接收模块,用于接收利用第一终端的第一公钥加密后的第一隐私数据;所述第一隐私数据由与其对应的特征和模型参数确定;
加密结果确定模块,用于将加密后的第一隐私数据与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第二隐私数据由与其对应的特征和模型参数确定;
加密损失值确定模块,用于基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
模型参数更新模块,用于将所述加密损失值参与第二解密梯度的计算;
第一梯度辅助计算模块,用于:
基于所述加密损失值与第二掩码之和得到掩码加密损失值,并将所述掩码加密损失值以及用自身的第二公钥加密的第二掩码发送给第一终端;
对从第一终端接收的数据进行解密,该接收的数据是第一终端将加密后的第二掩码与第一隐私数据对应的特征进行乘积运算后,再添加第三掩码得到的;
将解密结果发送给第一终端,使其确定第一解密梯度;
所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;
其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。
9.根据权利要求8所述的系统,所述联合训练的模型包括线性回归模型或逻辑回归模型。
10.根据权利要求8所述的系统,当所述联合训练的模型包括逻辑回归模型时,所述加密损失值确定模块还用于:基于泰勒展开公式以及Sigmoid函数确定所述加密损失值。
11.根据权利要求8所述的系统,所述模型参数更新模块还用于:
基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
基于所述第二加密梯度,确定对应的第二解密梯度。
12.根据权利要求11所述的系统,所述模型参数更新模块还用于:
基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;
接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
第二终端基于所述第一解码结果以及所述第一掩码,确定第二解密梯度;并基于所述第二解密梯度更新所述联合训练的模型。
13.根据权利要求11所述的系统,所述第二隐私数据的加密数据的加密公钥为所述第一公钥。
14.根据权利要求11所述的系统,所述第一隐私数据和所述第二隐私数据包括与实体相关的图像数据、文本数据或声音数据。
15.一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求1至7中任一项所述基于隐私数据进行模型训练方法对应的操作。
16.一种基于隐私数据进行模型训练的方法,其中,第一终端和第二终端分别持有第一隐私数据和第二隐私数据,且所述第一隐私数据和所述第二隐私数据对应于相同的训练样本;所述方法包括:
第一终端接收来自第二终端的掩码加密损失值以及用第二终端的公钥加密后的第二掩码,所述掩码加密损失值由第二终端基于加密损失值以及第二掩码确定;
第一终端参与第二解密梯度的计算;
第一终端将所述加密后的第二掩码与第一隐私数据对应的特征进行乘积运算后,再添加第三掩码,将得到的数据发送给第二终端进行解密;
从第二终端接收解密结果,根据解密结果确定第一解密梯度;
所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新基于所述第一隐私数据和所述第二隐私数据联合训练的模型;
其中,所述加密为同态加密。
17.根据权利要求16所述的方法,还包括:
第一终端基于接收到的所述掩码加密损失值以及所述第一隐私数据对应的特征,确定第一解密梯度与第二掩码数据的第一运算结果;所述第二掩码数据基于所述第二掩码与所述第一隐私数据确定。
18.根据权利要求17所述的方法,所述根据解密结果确定第一解密梯度包括:
基于所述第一运算结果、所述解密结果以及第三掩码确定第一解密梯度。
19.一种基于隐私数据进行模型训练的系统,其中,第一终端和第二终端分别持有第一隐私数据和第二隐私数据,且所述第一隐私数据和所述第二隐私数据对应于相同的训练样本;所述系统部署在第一终端中,包括:
掩码加密损失值接收模块,用于接收来自第二终端的掩码加密损失值以及用第二终端的公钥加密后的第二掩码,所述掩码加密损失值由第二终端基于加密损失值以及第二掩码确定;
模型参数更新模块,用于参与第二解密梯度的计算;
第一梯度计算模块,用于:
将所述加密后的第二掩码与第一隐私数据对应的特征进行乘积运算后,再添加第三掩码,将得到的数据发送给第二终端进行解密;
从第二终端接收解密结果,根据解密结果确定第一解密梯度,所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新基于所述第一隐私数据和所述第二隐私数据联合训练的模型;
其中,所述加密为同态加密。
20.根据权利要求19所述的系统,其特征在于:所述第一梯度计算模块还用于:
基于接收到的所述掩码加密损失值以及所述第一隐私数据对应的特征,确定第一解密梯度与第二掩码数据的第一运算结果;所述第二掩码数据基于所述第二掩码与所述第一隐私数据确定。
21.根据权利要求20所述的系统,所述第一梯度计算模块还用于:
基于所述第一运算结果、所述解密结果以及第三掩码确定第一解密梯度。
22.一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求16至18中任一项所述基于隐私数据进行模型训练方法对应的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334589.8A CN111143878B (zh) | 2019-12-20 | 2019-12-20 | 一种基于隐私数据进行模型训练的方法及系统 |
PCT/CN2020/123762 WO2021120855A1 (zh) | 2019-12-20 | 2020-10-26 | 一种基于隐私数据进行模型训练的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334589.8A CN111143878B (zh) | 2019-12-20 | 2019-12-20 | 一种基于隐私数据进行模型训练的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143878A CN111143878A (zh) | 2020-05-12 |
CN111143878B true CN111143878B (zh) | 2021-08-03 |
Family
ID=70519356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334589.8A Active CN111143878B (zh) | 2019-12-20 | 2019-12-20 | 一种基于隐私数据进行模型训练的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111143878B (zh) |
WO (1) | WO2021120855A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143878B (zh) * | 2019-12-20 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
CN111368336B (zh) * | 2020-05-27 | 2020-09-04 | 支付宝(杭州)信息技术有限公司 | 基于秘密共享的训练方法、装置、电子设备及存储介质 |
CN112131581A (zh) * | 2020-08-19 | 2020-12-25 | 成都飞机工业(集团)有限责任公司 | 一种单密钥加密解密的3d打印多数据库共享优化算法 |
CN112149157A (zh) * | 2020-08-19 | 2020-12-29 | 成都飞机工业(集团)有限责任公司 | 一种基于公私密钥进行数据保密的3d打印数据库共享方法 |
CN112766514B (zh) * | 2021-01-22 | 2021-12-24 | 支付宝(杭州)信息技术有限公司 | 一种联合训练机器学习模型的方法、系统及装置 |
CN113434878B (zh) * | 2021-06-25 | 2023-07-07 | 平安科技(深圳)有限公司 | 基于联邦学习的建模及应用方法、装置、设备及存储介质 |
CN114244497B (zh) * | 2021-12-09 | 2024-02-13 | 支付宝(杭州)信息技术有限公司 | 两方协同生成分片的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198399B1 (en) * | 2018-03-06 | 2019-02-05 | KenSci Inc. | Cryptographically secure machine learning |
CN109598385A (zh) * | 2018-12-07 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 反洗钱联合学习方法、装置、设备、系统及存储介质 |
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN110190945A (zh) * | 2019-05-28 | 2019-08-30 | 暨南大学 | 基于多加密的线性回归隐私保护方法及系统 |
CN110276210A (zh) * | 2019-06-12 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数的确定方法及装置 |
CN110443067A (zh) * | 2019-07-30 | 2019-11-12 | 卓尔智联(武汉)研究院有限公司 | 基于隐私保护的联邦建模装置、方法及可读存储介质 |
CN110537191A (zh) * | 2017-03-22 | 2019-12-03 | 维萨国际服务协会 | 隐私保护机器学习 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565424B2 (en) * | 2006-04-12 | 2013-10-22 | International Business Machines Corporation | Secure non-invasive method and system for distribution of digital assets |
EP3203679A1 (en) * | 2016-02-04 | 2017-08-09 | ABB Schweiz AG | Machine learning based on homomorphic encryption |
FR3057090B1 (fr) * | 2016-09-30 | 2018-10-19 | Safran Identity & Security | Procedes d'apprentissage securise de parametres d'un reseau de neurones a convolution, et de classification securisee d'une donnee d'entree |
US11574075B2 (en) * | 2018-06-05 | 2023-02-07 | Medical Informatics Corp. | Distributed machine learning technique used for data analysis and data computation in distributed environment |
CN109325584B (zh) * | 2018-08-10 | 2021-06-25 | 深圳前海微众银行股份有限公司 | 基于神经网络的联邦建模方法、设备及可读存储介质 |
CN109165515A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数获取方法、系统及可读存储介质 |
CN109886417B (zh) * | 2019-03-01 | 2024-05-03 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、装置、设备及介质 |
CN110245510B (zh) * | 2019-06-19 | 2021-12-07 | 北京百度网讯科技有限公司 | 用于预测信息的方法和装置 |
CN110443063B (zh) * | 2019-06-26 | 2023-03-28 | 电子科技大学 | 自适性保护隐私的联邦深度学习的方法 |
CN110399742B (zh) * | 2019-07-29 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
CN111143878B (zh) * | 2019-12-20 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
-
2019
- 2019-12-20 CN CN201911334589.8A patent/CN111143878B/zh active Active
-
2020
- 2020-10-26 WO PCT/CN2020/123762 patent/WO2021120855A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110537191A (zh) * | 2017-03-22 | 2019-12-03 | 维萨国际服务协会 | 隐私保护机器学习 |
US10198399B1 (en) * | 2018-03-06 | 2019-02-05 | KenSci Inc. | Cryptographically secure machine learning |
CN109598385A (zh) * | 2018-12-07 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 反洗钱联合学习方法、装置、设备、系统及存储介质 |
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN110190945A (zh) * | 2019-05-28 | 2019-08-30 | 暨南大学 | 基于多加密的线性回归隐私保护方法及系统 |
CN110276210A (zh) * | 2019-06-12 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数的确定方法及装置 |
CN110443067A (zh) * | 2019-07-30 | 2019-11-12 | 卓尔智联(武汉)研究院有限公司 | 基于隐私保护的联邦建模装置、方法及可读存储介质 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
Non-Patent Citations (2)
Title |
---|
Towards Dynamic End-to-End Privacy Preserving Data Classification;Rania Talbi;《2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN-W)》;20180723;第73-74页 * |
机器学习中的隐私攻击与防御;赵镇东 等;《软件学报》;20190930;第4卷(第5期);第866-892页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021120855A1 (zh) | 2021-06-24 |
CN111143878A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111125735B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111178547B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111143878B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN111931216B (zh) | 一种基于隐私保护的方式获取联合训练模型的方法及系统 | |
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
CN110245510B (zh) | 用于预测信息的方法和装置 | |
JP6921233B2 (ja) | 秘密分散を使用したロジスティック回帰モデリング方式 | |
CN111143894B (zh) | 一种提升安全多方计算效率的方法及系统 | |
CN111460528B (zh) | 一种基于Adam优化算法的多方联合训练方法及系统 | |
US11907403B2 (en) | Dynamic differential privacy to federated learning systems | |
WO2016061635A1 (en) | Gradients over distributed datasets | |
CN113011587A (zh) | 一种隐私保护的模型训练方法和系统 | |
Zegeye | An iterative approximation method for a common fixed point of two pseudocontractive mappings | |
CN113221153B (zh) | 图神经网络训练方法、装置、计算设备及存储介质 | |
CN111079947B (zh) | 一种基于可选隐私数据进行模型训练的方法及系统 | |
Khan et al. | Vertical federated learning: A structured literature review | |
CN111062492B (zh) | 一种基于可选隐私数据进行模型训练的方法及系统 | |
US20210287573A1 (en) | Secret batch approximation system, secure computation device, secret batch approximation method, and program | |
CN111931947B (zh) | 一种用于分布式模型训练的训练样本重组方法及系统 | |
US20240078226A1 (en) | Systems and methods for distributed ledger-based data exchange | |
Zhang et al. | BCOA: blockchain open architecture | |
Pakdel | Privacy and Security Enhanced Federated Learning Framework Design | |
Halimeh et al. | Comprehensive Review for Healthcare Data Quality Challenges in Blockchain Technology | |
Santos | Federated Learning in Financial Services | |
Ramírez et al. | Technological Enablers for Privacy Preserving Data Sharing and Analysis |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40029912 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |