一种基于隐私数据进行模型训练的方法及系统与流程

文档序号:20686332发布日期:2020-05-08 18:51阅读:229来源:国知局
一种基于隐私数据进行模型训练的方法及系统与流程

本说明书一个或多个实施例涉及多方数据合作,特别涉及一种基于隐私数据进行模型训练的方法和系统。



背景技术:

在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,通过多个数据拥有方的数据合作,来进行模型的联合训练的方式得到了广泛的使用。但是在多方数据合作的过程中,涉及到数据安全和模型安全等问题。

因此,有必要提出一种安全的基于多方数据进行联合建模的方案。



技术实现要素:

本说明书实施例的一个方面提供一种基于隐私数据进行模型训练的方法;所述方法包括:第二终端接收来自第一终端的加密后的第一隐私数据;所述第一隐私数据由与其对应的特征和模型参数确定;第二终端至少将加密后的第一隐私数据与第二隐私数据的加密数据进行计算,得到加密后的结果;所述第二隐私数据由与其对应的特征和模型参数确定;第二终端基于所述加密后的结果以及样本标签,得到至少基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;通过第三方将所述加密损失值参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第三方持有所述同态加密的公钥以及对应的私钥;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。

本说明书实施例的另一个方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:第一数据接收模块,用于接收来自第一终端的加密后的第一隐私数据;所述第一隐私数据由与其对应的特征和模型参数确定;加密结果确定模块,用于至少将加密后的第一隐私数据与第二隐私数据的加密数据进行计算,得到加密后的结果;所述第二隐私数据由与其对应的特征和模型参数确定;加密损失值确定模块,用于基于所述加密后的结果以及样本标签,得到至少基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;模型参数更新模块,用于通过第三方将所述加密损失值参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第三方持有所述同态加密的公钥以及对应的私钥;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。

本说明书实施例的另一个方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。

本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的方法,所述方法包括:第一终端接收来自第二终端的加密损失值;所述加密损失值通过第三方参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一终端和所述第二终端分别持有第一隐私数据和第二隐私数据,所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。

本说明书实施例的另一个方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:加密损失值接收模块,用于接收来自第二终端的加密损失值;模型参数更新模块,用于所述加密损失值通过第三方参与第一解密梯度和第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应,所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一终端和所述第二终端分别持有第一隐私数据和第二隐私数据,所述第一隐私数据和所述第二隐私数据对应于相同的训练样本。

本说明书实施例的另一个方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。

附图说明

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

图1是根据本说明书一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图;

图2是根据本说明书一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图;以及

图3是根据本说明书另外的一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图。

具体实施方式

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

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

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

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

在经济、文化、教育、医疗、公共管理等各行各业充斥的大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理分析在越来越多场景中得到广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方数据的联合训练来获得更为准确的模型参数。

在一些实施例中,基于隐私数据进行模型的联合训练系统可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据,他们想共同使用彼此的数据来统一建模(例如,线性回归模型、逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构a拥有一批用户数据,政府银行b拥有另一批用户数据,基于a和b的用户数据确定的训练样本集可以训练得到比较好的机器学习模型。a和b都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因a和b不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。

基于隐私数据进行模型训练系统可以使多方的隐私数据在不受到泄露的情况下,通过多方数据的联合训练来得到共同使用的机器学习模型,达到一种共赢的合作状态。

在一些实施例中,基于多方数据进行的联合训练中,为了防止隐私数据的泄露,可以采用混淆电路(garbledcircuit)或秘密分享的方式来进行。其中,在特征维度较大时,混淆电路(garbledcircuit)或秘密分享方案的运算效率不高。在一些实施例中,也可以对各方的隐私数据进行同态加密,然后让各方的隐私数据在加密的状态参与模型训练的运算。其中,同态加密仅支持积运算和/或和运算,在使用的过程中,需要把对应的运算公式根据需要进行相应的转换。在一些特征维度较大的场景中,同态加密方案的运算效率高。在一些实施例中,在使用同态加密进行隐私数据建模时,还可以通过第三方的介入来提高运算效率。比如,多个数据拥有方分别把隐私数据加密传给第三方,然后由第三方统一收集处理,然后统一发放给各个数据拥有方。通过第三方服务器的参与,多方数据拥有者可以用第三方的公钥对自身的数据进行加密,然后用加密的数据参与运算,最后把加密的运算结果通过安全的方式发给第三方解密,相比于多方数据之间用自己方的公钥和私钥对数据进行加密的运算方式,第三方的参与可以减少数据加密公钥的个数,减少数据加密的层数,进而可以减少由多个公钥加密以及多层公钥加密带来的运算效率低,即能够提高运算效率。

图1为根据本说明书的一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图。

在一些实施例中,基于隐私数据进行模型训练系统100包括第一终端110、第二终端120、第三方130以及网络130。其中,第一终端110可以理解为第一方数据拥有者,包括处理设备110-1,存储设备110-2;第二终端120可以理解为第二方数据拥有者,包括处理设备120-1,存储设备120-2;第三方130不是数据拥有者,不持有模型的训练数据,第三方通过中间媒介的方式参与基于多方数据拥有者的模型的联合训练。具体地,多方数据拥有者会通过第三方的公钥对自己的数据进行加密,利用加密后的数据参与模型训练,并在适当时采取一种安全的方式把加密的运算结果发给第三方解密,进而获得能够更新模型参数的数值。在一些实施例中,第一方数据拥有者和第二方数据拥有者所持有的数据涉及到不同领域中的用户相关信息。例如,双方持有的数据可以包括用户每年存入的银行账户的金额;也可以某一投资理财项目或某一保险品牌所涉及用户群体的性别、年龄、收入、住址等信息。

需要注意的是,仅作为示例性的,图1中数据拥有者的数量为两方,在其他实施例中,还可以包括第三方数据拥有者以及第四方数据拥有者等。

第一终端110和第二终端120可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一终端110和第二终端120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一终端110和第二终端120可以接收来自对方的相关数据,也可以接收来自第三方130的相关数据。例如,第一终端110可以接收来自第二终端的加密损失值。例如,第一终端110和第二终端120可以从第三方130处接收第三方130的公钥。例如,第一终端110还可以把第一加密梯度加上掩码发送给第三方130。

第一终端和第二终端的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行加密,也可以执行相关算法和/或指令。例如,第一终端110的处理设备110-1可以接收来自第三方130的公钥,并用所述公钥对第一隐私数据进行加密,也可以利用加密损失值参与模型的联合训练。例如,第二终端120的处理设备120-1可以接收来自第三方130的公钥,并用所述公钥对第二隐私数据进行加密,也可以基于相关算法指令计算加密损失值。

第一终端和第二终端的存储设备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至少具有数据和/或指令处理的能力。第三方至少包括具有运算能力的处理设备,例如,云端服务器,终端处理设备等。在一些实施例中,第三方130可以把公钥发送给各个数据拥有者(例如,第一终端110和第二终端120)。在一些实施例中,第三方130可以进行解密运算,例如,来自第一终端110的加了掩码的第一加密梯度进行解密。在一些实施例中,第三方130还可以具有数据和/或指令存储能力,即第三方130还可以包括存储设备。所述存储设备可以用来存储第三方130的公钥和私钥,以及第三方用来执行的操作指令。在一些实施例中,作为可置信的一方,第三方可以属于公正的司法机构或者政府部门;也可以属于数据拥有各方认可的单位。

网络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。此简化对本说明书所说明的方法没有实质影响。

在一些实施例中,第三方可以是公正的司法机构或者政府部门;也可以是数据拥有各方认可的单位。具体地,第三方包括至少具有运算能力的处理设备,比如服务器或者终端处理设备。第三方拥有自己方的公钥和私钥,并将公钥给到拥有数据的各终端。

对任一变量x,[x]表示对x用第三方公钥加密。当x是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何非对称加密方法。

以上约定的表示方法、变量名称,以及本说明书中出现的公式及其他表达方式,仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理、技术原理、技术方法,可以对表示方法、变量名称、公式、计算方法等做各种非实质性的变换,而不影响其实质和相应的技术效果。例如但不限于调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。

步骤210,第三方将公钥分别发送给a和b。

第三方将自有的公钥给到数据拥有者a以及数据拥有者b,以备后续进行数据加密时使用。例如,第三方可以通过网络把自己的公钥传输给a和b。

步骤220,a、b分别计算ua、ub,并对其加密。

双方分别进行所持有的模型参数与特征数据的积运算,并用第三方的公钥对各自的积运算结果加密。数据拥有者a将密文数据发送给数据拥有者b。

在本说明书约定的表示中,a方计算ua=xa×wa,a将ua用第三方公钥加密,得到[ua],发送给b。由此得到的ua和[ua]都是一个m行1列的矩阵;b方计算ub=xb×wb,b将ub用第三方公钥加密,得到[ub],由此得到的ub或[ub]都是一个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计算加密损失值,并发送给a。

拥有两方加密数据的数据拥有者b将两方加密数据利用加法加和。由于加密算法是同态加密算法,因此加和后的值等于双方未加密数据求和后的加密值。

进一步b根据加和后的密文数据计算损失值。在计算损失值时,可以使用taylor展开式来近似计算sigmoid函数。由于taylor展开式是多项式的加法和乘法运算,可以支持同态加密,因此可以通过taylor展开式,在加密状态下计算得到近似的损失值。

在本说明书约定的表示中,b方计算[z]=[ua]+[ub]=[ua+ub]。

用taylor展开式模拟计算:

以使用一阶模拟为例,进一步计算损失值b计算加密损失值其中,[z]=[ua+ub];表示模型预测值;y表示与所述样本数据对应的标签。由此计算得到的加密损失值[d]是一个m行1列的矩阵。

步骤240,b计算第二加密梯度值。

数据拥有者b将加密损失值代入梯度下降公式,即将加密损失值与自方的特征对应的数据做积运算,计算得到第二加密梯度值。

在本说明书约定的表示中,b方利用梯度计算公式计算:b根据同态乘法得到了用第三方公钥加密的第二加密梯度值[gb]。由此得到的第二加密梯度值[gb]是一个q行1列的矩阵。

步骤242,b将第二加密梯度加上第二掩码,发给第三方解密。

b将第二加密梯度值加上用第三方公钥加密的第二掩码,并发给第三方,第三方对所接收的加密数据用己方私钥解密。其中,第二掩码以及后面提到的第一掩码是第二方设定的数值,主要目的是防止第三方获知解密后的第二梯度值。其中,本说明书一个或多个实施例所述的掩码可以理解为能够参与加密运算的任意数值,例如第二掩码可以是-0.001、0.1、3、300等。对于第一掩码和第二掩码具体数值的设定范围,本说明书不做限定,只要能满足上述目的即可。

在本说明书约定的表示中,b计算[gb]+[mask2],并发给第三方。在本实施例中,mask2为第二掩码,与第二梯度值gb维度相同,因此gb+mask2也是一个q行1列的矩阵。

第三方获得[gb]+[mask2]。由于加密算法为同态加密,因此[gb]+[mask2]=[gb+mask2],第三方用自有私钥解密获得gb+mask2。由于第三方不知道mask2的值,所以第三方无法获知gb的值。

步骤244,b接收第三方返回的解密结果。

第三方将带有第二掩码的解密结果发送给数据拥有者b,b接收到解密结果,并去除第二掩码,得到b方的第二梯度值。

在本说明书约定的表示中,在本实施例中,gb+mask2为解密结果,b方接收到gb+mask2,并去除mask2,计算第二梯度值gb=gb+mask2-mask2。由此得到第二梯度值gb是一个q行1列的矩阵。

步骤246,b基于第二梯度值更新模型。

数据拥有者b计算得到自方的第二梯度值,并将第二梯度值与leaningrate做积运算,更新模型。

在本说明书约定的表示中,b方计算更新wb=wb-learning_rate×gb。在本说明书中,learning_rate表示在梯度下降法中的影响下降幅度的参数。

步骤250,a计算第一加密梯度值。

数据拥有者a将加密损失值代入梯度下降公式,即将加密损失值与自方的特征对应的数据做积运算,计算得到第一加密梯度值。

在本说明书约定的表示中,a方利用梯度计算公式计算:a根据同态加密运算得到了用第三方公钥进行加密的第一加密梯度值[ga]。由此得到的第一加密梯度值[ga]是一个p行1列的矩阵。

步骤252,a将第一加密梯度值加上第一掩码,发给第三方解密。

a将第一加密梯度值加上用第三方公钥加密的第一掩码,并发给第三方,第三方对所接收的加密数据用己方私钥解密。

在本说明书约定的表示中,a计算[ga]+[mask1],并发给第三方。在本实施例中,mask1为第一掩码,与第一梯度值ga维度相同,因此ga+mask1也是一个p行1列的矩阵。

步骤254,a接收第三方返回的解密结果。

第三方将带有第一掩码的解密结果发送给数据拥有者a,a接收到解密结果,并去除第一掩码,得到a方的第一梯度值。

在本说明书约定的表示中,在本实施例中,ga+mask1为解密结果,a方接收到ga+mask1,并去除mask1,计算第二梯度值ga=ga+mask1–mask1。由此得到第一梯度值ga是一个p行1列的矩阵。

步骤256,a基于第一梯度值更新模型。

数据拥有者a计算得到自方的第一梯度值,并将第一梯度值与leaningrate做积运算,更新模型。

在本说明书约定的表示中,a方计算更新wa=wa-learning_rate×ga。

图3为根据本说明书的一些实施例所示的对话信息的处理方法的示例性流程图。

在一些实施例中,方法400中的一个或以上步骤可以在图1所示的系统100中实现。例如,方法300中的一个或以上步骤可以作为指令的形式存储在存储设备120中,并被处理设备110调用和/或执行。

步骤310,第二终端接收来自第一终端的加密后的第一隐私数据。在一些实施例中,步骤310可以由第一数据接收模块执行。

在一些实施例中,第一终端可以是图2部分描述的数据拥有者a,第二终端可以是图2部分描述的数据拥有者b。

在一些实施例中,第一隐私数据由第一终端持有,第二终端持有第二隐私数据。其中,第一隐私数据和第二隐私数据对应于相同样本的不同特征(xa和xb)以及模型参数(wa和wb)。

在一些实施例中,第一隐私数据可以由第一特征与第一模型参数的乘积ua确定,例如,第一隐私数据为wa*xa。对应地,第二隐私数据可以由第二特征与第二模型参数的乘积ub确定,即为wb*xb。其中,对第一终端、第二终端;ua、ub;wa、xa;以及wb、xb的理解可参见图2中的相关说明。

在一些实施例中,第一终端采用第三方的公钥将所述第一隐私数据进行加密。关于第一隐私数据加密以及将加密后的数据传输给第二终端的具体描述可参见本说明书图2的步骤220。

在一些实施例中,第一隐私数据也可以是wa和xa,在一些实施例中,第二隐私数据也可以包括wb和xb。

本说明书一个或多个实施例中的“加密”指的是同态加密,即加密后计算的结果经过解密,得到的解密结果与未加密的原始数据计算结果相同。第三方持有实施例中“加密”所需的公钥以及对应的私钥。

在一些实施例中,数据拥有者持有的样本数据可以是保险、银行、医疗至少一个领域中的用户属性信息。例如,银行拥有该银行客户的身份信息、流水信息以及征信信息等;保险公司拥有该公司客户身份信息、历史购买保险信息、历史理赔信息、健康信息、车辆状况信息等;医疗机构拥有该机构病人身份信息、历史看病记录等。在一些实施例中,所述用户属性信息包括图像、文本或语音等。

在一些实施例中,数据拥有者拥有的模型可以根据样本数据的特征做出预测。例如,银行可以根据一二季度用户增长、增长用户身份、银行新增政策等数据的特征预测该行全年存款增长率。在一些实施例中,所述模型还可以用于确认用户的身份信息,所述用户的身份信息可以包括但不限于对用户的信用评价。

在一些实施例中,本说明书一个或多个实施例中的隐私数据(例如,第一隐私数据和第二隐私数据)可以包括与实体相关的隐私数据。在一些实施例中,实体可以理解为可视化的主体,可以包括但不限于用户、商户等。在一些实施例中,所述隐私数据可以包括图像数据、文本数据或声音数据。例如,隐私数据中的图像数据可以是用户的人脸图像、商户的logo图像、能够反映用户或商户信息的二维码图像等。例如,隐私数据中的文本数据可以是用户的性别、年龄、学历、收入等文本数据,或者是商户的交易商品类型、商户进行商品交易的时间以及所述商品的价格区间等等文本数据。例如,隐私数据的声音数据可以是包含了用户个人信息或用户反馈的相关语音内容,通过解析所述语音内容可得到对应的用户个人信息或用户反馈信息。

步骤320,第二终端至少将加密后的第一隐私数据与第二隐私数据的加密数据进行计算,得到加密后的结果。在一些实施例中,步骤320可以由加密结果确定模块执行。

在一些实施例中,加密后的结果可以理解为将第一隐私数据和第二隐私数据在加密的状态进行计算得到的结果。在一些实施例中,第一隐私数据的加密数据与第二隐私数据的加密数据之间可以采用和运算来得到加密后的结果。例如,第一隐私数据ua的加密数据为[ua],第二隐私数据ub的加密数据为[ub],那么通过和运算得到的加密后的结果为[ua]+[ub],即为[ua+ub]。具体的加密过程,可参见图2的步骤230。

步骤330,第二终端基于加密后的结果以及样本标签,得到至少基于第一隐私数据和第二隐私数据联合训练的模型的加密损失值。在一些实施例中,步骤330可以由加密损失值确定模块执行。

在一些实施例中,损失值可以用来反映训练模型预测值与样本数据真实之间的差距。在一些实施例中,损失值可以通过参与运算的方式来反映预设值与真实值的差距。其中,不同训练模型的相关运算公式不同,相同训练模型时不同参数寻优算法对应的运算公式也不同。例如,本说明书图2给出的实施例中,损失值的计算公式为但本说明书一个或多个实施例并不会对确定损失值的运算公式进行限定。

在一些实施例中,第二终端可以基于加密后的结果[ua+ub],以及样本标签y,来计算联合训练模型的加密损失值,例如,图2中的[d]。其中,标签y可以由第一终端和第二终端中的任一方持有。

在一些实施例中,所述联合训练的模型可以包括线性回归模型;也可以包括逻辑回归模型。

在一些实施例中,当所述联合训练的模型包括逻辑回归模型,需要运用sigmoid函数计算损失值d。由于同态加密算法仅支持积运算以及和运算,因此,根据需要可以把sigmoid函数用一个可以支持积运算以及和运算的近似函数进行替代,例如,在一些实施例中可以通过taylor公式对sigmoid公式进行展开,然后基于sigmoid的taylor展开公式来计算加密损失值,详细描述可参见图2中的步骤230。在其他实施例中,也可以采用其他可近似的函数来替代sigmoid函数,或者也可以采用其他展开公式来对sigmoid进行展开来替代sigmoid函数,只要所述的替代函数支持积运算和/或和运算,本说明书不做其他任何限制。

如果所述联合训练的模型是线性回归模型,可以使用线性函数来计算预测值在线性回归模型中,因为线性函数来计算时可以直接使用同态加密的算法,可以不使用taylor展开式。具体的,以一次线性函数y=wx+b为例,加入同态加密的算法,第二终端基于第一隐私数据和第二隐私数据加和z,可计算得到加密损失值

步骤340,将加密损失函值通过第三方参与加密模型训练,得到参数更新的模型。在一些实施例中,步骤340可以由模型参数更新模块执行。

在一些实施例中,第三方可以是终端处理设备,也可以是服务器。其中,终端处理设备包括处理器和存储设备,例如,ipad、台式计算机、笔记本等。

在一些实施例中,将所述加密损失值通过第三方参与加密模型训练,可以理解为在第三方的参与下,利用加密损失值进行加密计算,最终通过解密的方式来获取能够进行模型参数更新的数值,进而得到参数更新的模型。

在一些实施例中,可以使用梯度下降法来获得参数更新的模型。具体的,可以将得到的加密损失值计算求得加密梯度值参与模型训练,重复上述过程直至迭代次数达到预定义的迭代次数上限值或带入加密损失值后计算得到的误差小于预定义的数值,即得到训练好的模型。

在一些实施例中,可以运用梯度下降法使得损失值d最小。例如,在一些实施例中,可以基于所述加密损失值[d],以及第一隐私数据和第二隐私数据对应的特征xa和xb来确定第一终端的第一加密梯度[ga]和第二终端的第二加密梯度[gb]。在一些实施例中,第一终端和第二终端可以分别基于第一加密梯度[ga]和第二加密梯度[gb]来确定对应的第一解密梯度ga和第二解密梯度gb,并分别基于第一解密梯度ga和第二解密梯度gb更新模型参数,进而得到参数更新的模型。

在其他实施例中,也可以采用其他参数寻优方法来替代梯度下降法,如牛顿下降法等,本说明书一个或多个实施例对此不作任何限定。需要注意的是,在使用相应的算法时需要考虑到同态加密仅支持积运算和/或和运算,可以使用近似函数替换的方式来解决运算类型支持的问题。

在一些实施例中,第二终端基于所述加密损失值[d]以及第二隐私数据对应的特征xb,确定第二加密梯度[gb]的具体过程可以参考图2的步骤240。

在一些实施例中,第二终端可以采用添加掩码的方式基于第二加密梯度得到对应的第二解密梯度。具体的,第二终端得到基于所述第二加密梯度和掩码确定对应的第二掩码梯度,并将所述第二掩码梯度传输给持有加密私钥的第三方;所述第三方将接收到的第二掩码梯度进行解码,并将对应的第二解密结果传输给所述第二终端;所述第二终端基于接收到的所述第一解码结果以及所述第二掩码,去除第二掩码,得到第二解密梯度。在一些实施例中,所述第二掩码梯度可以理解为第二加密梯度与第二掩码的运算结果。在一些实施中,所述运算可以包括积运算或和运算;所述第二掩码也可以包括一个值,也可以包括多个值。例如,在一些实施例中,所述掩码mask2为一个值,所述运算为和运算,那么对应的掩码梯度可以为[gb]+[mask2]。关于第二终端通过添加第二掩码方式获取第二解密梯度gb的具体描述,可参见图2的步骤242和步骤244。

在一些实施例中,当所述第二掩码通过积运算方式添加第二掩码时,所述第二掩码梯度可以为[gb]×[mask2]。

在一些实施例中,第二终端基于所述第二解密梯度gb更新所述联合训练的模型,具体的描述,可参见图2的步骤246。

在一些实施例中,第二终端确定加密损失值后,需要将加密损失值传递给第一终端,然后第一终端基于接收到的加密损失值通过第三方参与模型的联合训练。

在一些实施例中,第一终端可以基于接收到的加密损失值[d]以及第一隐私数据对应的特征xb来确定第一加密梯度[ga],具体过程可参考图2的步骤250。

在一些实施例中,第一终端也可以采用添加掩码的方式基于第一加密梯度得到对应的第一解密梯度。具体的,可以参见第二终端基于第二加密梯度得到对应的第二解密梯度过程,也可以参见图2的步骤252和步骤254。

在一些实施例中,第一终端基于所述第一解密梯度ga更新所述联合训练的模型,具体的描述,可参见图2的步骤256。

在本说明书一个或多个实施例中,还包括三个或者更多个数据拥有者通过自己方的样本数据来联合训练机器学习模型。其中,多个数据拥有者持有相对相同样本的不同特征。在该场景下,需要从多个数据拥有者中任一选出一个,用于计算加密损失值,计算完成后再把加密损失值发送给其他数据拥有者,各方数据拥有者都具有加密损失值后,通过第三方将加密损失值参与模型的训练。为了方便说明,本说明书一些实施例选取第二方数据拥有者也就是第二终端,来来计算加密损失值。

在一些实施例中,第二终端还可以接收来自其他终端的加密后的其他隐私数据来联合训练更新模型。其他隐私数据由其他终端持有,其他隐私数据与第一隐私数据,第二隐私数据对应于相同样本的不同特征。在一些实施例中,其他终端可以是一个终端,也可以是多个终端。

在一些实施例中,所述其他终端的其他隐私数据可以由其他终端对应的特征和模型参数的乘积确定。例如,其他终端包括第三终端和第四终端,第三终端和第四终端对应的特征和模型参数分别是xc和wc以及xd和wd。其中,第三终端隐私数据uc可以是wc*xc,第四终端隐私数据ud可以是wd*xd。

在一些实施例中,其他终端也需要利用第三方的公钥对自己的隐私数据进行加密,并把加密结果传输给第二终端。其中,所述加密过程采用的是同态加密。

在一些实施例中,接收来自其他终端的加密后的其他隐私数据后,第二终端基于加密后的第一隐私数据、加密后的其他隐私数据以及自己方的加密后的第二隐私数据,通过运算得到加密后的结果。在一些实施例中,第一隐私数据的加密数据、第二隐私数据的加密数据和其它隐私数据的加密数据之间可以采用和运算来得到加密后的结果。例如,其他终端是第三终端、第四终端…第n终端。其中,第三终端隐私数据的加密数据[uc],第四终端隐私数据的加密数据[ud],第n终端隐私数据的加密数据用[un]表示,那么通过和运算得到的加密后的结果为[ua]+[ub]+[uc]+[ud]+…[un],即为[ua+ub+uc+ud+…un]。具体的加密运算过程,可参考图2中的相关示例。

在一些实施例中,第二终端可以基于加密后的结果,以及样本标签y,来计算联合训练模型的加密损失值[d],并把加密损失值[d]发送给其他终端。其他终端接收到加密损失值[d]后,可以计算自身的加密梯度,然后可以通过添加掩码,以及第三方解密的方式来确定自身的解密之后的梯度值,然后再基于自身的解密梯度值来更新自身的模型参数。详细描述可参考第一终端的相关描述或者参考图2中步骤250~步骤256,在此不再赘述。

应当注意的是,上述有关流程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%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

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

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

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