模型训练方法、装置及系统与流程

文档序号:23542850发布日期:2021-01-05 20:53阅读:126来源:国知局
模型训练方法、装置及系统与流程

本公开通常涉及机器学习领域,尤其涉及用于使用垂直切分的训练集来经由多个训练参与方协同训练线性/逻辑回归模型的方法、装置及系统。



背景技术:

线性回归模型和逻辑回归模型是机器学习领域广泛使用的回归/分类模型。在很多情况下,多个模型训练参与方(例如,电子商务公司、快递公司和银行)各自拥有训练线性/逻辑回归模型所使用的特征样本的不同部分数据。该多个模型训练参与方通常想共同使用彼此的数据来统一训练线性/逻辑回归模型,但又不想把各自的数据提供给其它各个模型训练参与方以防止自己的数据被泄露。

面对这种情况,提出了能够保护数据安全的机器学习方法,其能够在保证多个模型训练参与方的各自数据安全的情况下,协同该多个模型训练参与方来训练线性/逻辑回归模型,以供该多个模型训练参与方使用。然而,现有的能够保护数据安全的机器学习方法的模型训练效率较低。



技术实现要素:

鉴于上述问题,本公开提供了一种用于经由多个训练参与方协同训练线性/逻辑回归模型的方法、装置及系统,其能够在保证多个训练参与方的各自数据安全的情况下提高模型训练的效率。

根据本公开的一个方面,提供了一种用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的方法,每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方具有第一特征样本子集和标记值,第二训练参与方具有第二特征样本子集,第一和第二特征样本子集是通过对特征样本集进行垂直切分而获得的,所述方法由第一训练参与方执行,所述方法包括:对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;执行下述循环过程,直到满足循环结束条件:对所述特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对所述特征样本集的当前预测值;确定所述当前预测值与对应的标记值之间的预测差值;使用所述预测差值和所述第一训练参与方处的转换特征样本子集确定第一模型更新量;将所述第一模型更新量分解为两个第一部分模型更新量,并将一个第一部分模型更新量发送给所述第二训练参与方;以及从所述第二训练参与方接收一个第二部分模型更新量,所述第二部分模型更新量是在所述第二训练参与方处对第二模型更新量进行分解而得到的,所述第二模型更新量是对所述预测差值和所述第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法而得到的;基于剩余的第一部分模型更新量和所接收的第二部分模型更新量来更新所述第一训练参与方处的当前转换子模型,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型;在满足所述循环结束条件时,基于所述第一训练参与方和所述第二训练参与方的转换子模型,确定所述第一训练参与方的子模型。

根据本公开的另一方面,提供一种用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的方法,每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方具有第一特征样本子集和标记值,第二训练参与方具有第二特征样本子集,第一和第二特征样本子集是通过对特征样本集进行垂直切分而获得的,所述方法由第二训练参与方执行,所述方法包括:对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;执行下述循环过程,直到满足循环结束条件:对所述特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对所述特征样本集的当前预测值;从所述第一训练参与方接收第一部分模型更新量,所述第一部分模型更新量是在所述第一训练参与处对第一模型更新量进行分解而得到的,所述第一模型更新量是在所述第一训练参与方处使用预测差值和所述第一训练参与方处的转换特征样本子集确定的,其中,所述预测差值是所述当前预测值与对应的标记值之间的差值;对所述预测差值和所述第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法,以得到第二模型更新量;将所述第二模型更新量分解为两个第二部分模型更新量,并将一个第二部分模型更新量发送给所述第一训练参与方;以及基于剩余的第二部分模型更新量和所接收的第一部分模型更新量来更新所述第二训练参与方的当前转换子模型,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型;在满足所述循环结束条件时,基于所述第一训练参与方和所述第二训练参与方的转换子模型,确定所述第二训练参与方的子模型。

根据本公开的另一方面,提供一种用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的装置,每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方具有第一特征样本子集和标记值,第二训练参与方具有第二特征样本子集,第一和第二特征样本子集是通过对特征样本集进行垂直切分而获得的,所述装置位于所述第一训练参与方侧,所述装置包括:模型转换单元,被配置为对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;样本转换单元,被配置为对所述特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;预测值获取单元,被配置为基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对所述特征样本集的当前预测值;预测差值确定单元,被配置为确定所述当前预测值与对应的标记值之间的预测差值;模型更新量确定单元,被配置为使用所述预测差值和所述第一转换特征样本子集确定第一模型更新量;模型更新量分解单元,被配置为将所述第一模型更新量分解为两个第一部分模型更新量;模型更新量发送/接收单元,被配置为将一个第一部分模型更新量发送给所述第二训练参与方,以及从所述第二训练参与方接收一个第二部分模型更新量,所述第二部分模型更新量是在所述第二训练参与方处对第二模型更新量进行分解而得到的,所述第二模型更新量是对所述预测差值和所述第二转换特征样本子集执行秘密共享矩阵乘法而得到的;模型更新单元,被配置为基于剩余的第一部分模型更新量和所接收的第二部分模型更新量来更新所述第一训练参与方处的当前转换子模型;以及模型确定单元,被配置为在满足所述循环结束条件时,基于所述第一训练参与方和所述第二训练参与方的转换子模型,确定所述第一训练参与方的子模型,其中,所述样本转换单元、所述预测值获取单元、所述预测差值确定单元、所述模型更新量确定单元、所述模型更新量分解单元、所述模型更新量发送/接收单元和所述模型更新单元循环执行操作,直到满足循环结束条件,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型。

根据本公开的另一方面,提供一种用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的装置,每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方具有第一特征样本子集和标记值,第二训练参与方具有第二特征样本子集,第一和第二特征样本子集是通过对特征样本集进行垂直切分而获得的,所述装置位于所述第二训练参与方侧,所述装置包括:模型转换单元,被配置为对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;样本转换单元,被配置为对所述特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;预测值获取单元,被配置为基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对所述特征样本集的当前预测值;模型更新量接收单元,被配置为从所述第一训练参与方接收第一部分模型更新量,所述第一部分模型更新量是在所述第一训练参与处对第一模型更新量进行分解而得到的,所述第一模型更新量是在所述第一训练参与方处使用预测差值和所述第一训练参与方处的转换特征样本子集确定的,其中,所述预测差值是所述当前预测值与对应的标记值之间的差值;第二模型更新量确定单元,被配置为对所述预测差值和所述第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法,以得到第二模型更新量;模型更新量分解单元,被配置为将所述第二模型更新量分解为两个第二部分模型更新量;模型更新量发送单元,被配置为将一个第二部分模型更新量发送给所述第一训练参与方;模型更新单元,被配置为基于剩余的第二部分模型更新量和所接收的第一部分模型更新量来更新所述第二训练参与方的当前子模型;以及模型确定单元,被配置为在满足所述循环结束条件时,基于所述第一训练参与方和所述第二训练参与方的转换子模型,确定所述第二训练参与方的子模型,其中,所述样本转换单元、所述预测值获取单元、所述模型更新量接收单元、所述模型更新量确定单元、所述模型更新量分解单元、所述模型更新量发送单元和所述模型更新单元循环执行操作,直到满足循环结束条件,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型。

根据本公开的另一方面,提供一种用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的系统,每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方具有第一特征样本子集和标记值,第二训练参与方具有第二特征样本子集,第一和第二特征样本子集是通过对特征样本集进行垂直切分而获得的,所述系统包括:第一训练参与方设备,包括如上所述的用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的装置;以及第二训练参与方设备,包括如上所述的用于经由第一和第二训练参与方来协同训练线性/逻辑回归模型的装置。

根据本公开的另一方面,提供一种计算设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在第一训练参与方侧执行的方法。

根据本公开的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述至少一个处理器执行如上所述的在第一训练参与方侧执行的训练方法。

根据本公开的另一方面,提供一种计算设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在第二训练参与方侧执行的训练方法。

根据本公开的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述至少一个处理器执行如上所述的在第二训练参与方侧执行的训练方法。

利用本公开的实施例的方案,能够在不泄漏训练参与方的秘密数据的情况下训练得到线性/逻辑回归模型的模型参数,并且模型训练的工作量仅与训练所使用的特征样本的数量成线性关系,而不是指数关系,因此,与现有技术相比,本公开的实施例的方案能够实现在保证训练参与方的各自数据安全的情况下提高模型训练的效率。

附图说明

通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。

图1示出了根据本公开的实施例的经过垂直切分的数据的示例的示意图;

图2示出了示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的系统的架构示意图;

图3示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的方法的流程图;

图4示出了根据本公开的实施例的模型转换过程的一个示例的流程图;

图5示出了根据本公开的实施例的特征样本集转换过程的一个示例的流程图;

图6示出了根据本公开的实施例的预测值获取过程的流程图;

图7示出了根据本公开的实施例的有可信初始化方秘密共享矩阵乘法的一个示例的流程图;

图8示出了根据本公开的实施例的无可信初始化方秘密共享矩阵乘法的一个示例的流程图;

图9示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的装置的方框图;

图10示出了根据本公开的实施例的预测值获取单元的一个示例的方框图;

图11示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的装置的方框图;

图12示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的计算设备的示意图;

图13示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的计算设备的示意图。

具体实施方式

现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。

如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。

秘密共享方法是一种将秘密分解存储的密码技术,其将秘密以适当的方式拆分成多个秘密份额,每一个秘密份额由多个参与方中的一个参与方拥有和管理,单个参与方无法恢复完整秘密,只有若干个参与方共同协作才能恢复完整秘密。秘密共享方法目标在于阻止秘密过于集中,以达到分散风险和容忍入侵的目的。

秘密共享方法可大致分为两类:有可信初始化方(trustinitializier)秘密共享方法以及无可信初始化方秘密共享方法。在有可信初始化方的秘密共享方法中,需要该可信初始化方对参与多方安全计算的各个参与方进行参数初始化(往往是产生满足一定条件的随机数)。在初始化完成后,可信初始化方将数据销毁,同时也消失,在接下来的多方安全计算过程中不再需要。

有可信初始化方秘密共享矩阵乘法适用于下述情形:完整秘密数据是第一秘密份额集与第二秘密份额集的乘积,并且各个参与方各自拥有第一秘密份额集中的一个第一秘密份额以及第二秘密份额集中的一个第二秘密份额。通过有可信初始化方的秘密共享矩阵乘法,多个参与方中的每个参与方可以得到完整秘密数据的部分完整秘密数据并且各个参与方所得到的部分完整秘密数据之和是完整秘密数据,并且各个参与方将所得到的部分完整秘密数据公开给其余参与方,从而使得各个参与方能够在不需要公开各自所拥有的秘密份额的情况下得到完整秘密数据,由此保证了该多个参与方各自数据的安全。

无可信初始化方秘密共享矩阵乘法是其中一种秘密共享方法。无可信初始化方的秘密共享矩阵乘法适用于完整秘密是第一秘密份额与第二秘密份额的乘积且两方分别拥有第一秘密份额和第二秘密份额的情形。通过无可信初始化方的秘密共享矩阵乘法,拥有各自秘密份额的两方中的每一方生成和公开与其拥有的秘密份额不同的数据,但这两方各自公开的数据之和等于这两方各自拥有的秘密份额的乘积(即完整秘密)。从而,各方在不需要公开各自所拥有的秘密份额的情况下通过有可信初始化方的秘密共享矩阵乘法协同工作就能恢复出完整秘密,这保证了各方数据的安全。

在本公开中,线性/逻辑回归模型训练方案中所使用的训练样本集是经过垂直切分的训练样本集。术语“对训练样本集进行垂直切分”是指按照模块/功能(或者某种指定规则)来将该训练样本集切分为多个训练样本子集中,各个训练样本子集包含训练样本集中的每条训练样本的部分训练子样本,所有训练样本子集中所包含的部分训练子样本构成该条训练样本。在一个例子中,假设训练样本包括标签y0和属性则经过垂直切分后,训练参与方alice拥有该训练样本的y0和以及训练参与方bob拥有该训练样本的在另一个例子中,假设训练样本包括标签y0和属性则经过垂直切分后,训练参与方alice拥有该训练样本的y0和以及训练参与方bob拥有该训练样本的除了这两个例子之外,还有其他可能的情况,这里不一一列举。

假设给定由d个属性(也称为特征)描述的属性值样本示例xt=(x1;x2;…;xd),其中,xi是x在第i个属性上的取值和t表示转置,那么线性回归模型为y=wx,逻辑回归模型为y=1/(1+e-wx),其中,y是预测值,以及,w是线性/逻辑回归模型的模型参数(即,本公开中所述的模型),wp是指本公开中的各个训练参与方p处的子模型。在本公开中,属性值样本也称为特征数据样本。

在本公开中,各个训练参与方各自拥有训练线性/逻辑回归模型所使用的训练样本的不同部分数据。例如,以两个训练参与方为例,假设训练样本集包括100个训练样本,每一个训练样本包含多个特征值和标记实际值,那么,第一参与方拥有的数据可以是该100个训练样本中的每个训练样本的部分特征值和标记实际值,以及,第二参与方拥有的数据可以是该100个训练样本中的每个训练样本的部分特征值(例如,剩余特征值)。

在本公开中的任何地方描述的矩阵乘法计算,需要根据情况来确定是否对参与矩阵乘法的两个或多个矩阵中的一个或多个对应的矩阵进行转置处理,以满足矩阵乘法规则,由此完成矩阵乘法计算。

下面将结合附图来详细描述根据本公开的用于经由两个训练参与方来协同训练线性/逻辑回归模型的方法、装置以及系统的实施例。

图1示出了根据本公开的实施例的经过垂直切分的训练样本集的示例的示意图。图1中示出了2个数据方alice和bob,多个数据方也类似。每个数据方alice和bob拥有训练样本集中的所有训练样本中的每条训练样本的部分训练子样本,对于每条训练样本,数据方alice和bob拥有的部分训练子样本组合在一起,可以构成该训练样本的完整内容。比如,假设某个训练样本的内容包括标签(下文中称为“标记值”)y0和属性特征(下文中称为“特征样本”)则经过垂直切分后,训练参与方alice拥有该训练样本的y0和以及训练参与方bob拥有该训练样本的

图2示出了示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的系统1(下文中称为模型训练系统1)的架构示意图。

如图2所示,模型训练系统1包括第一训练参与方设备10以及第二训练参与方设备20。第一训练参与方设备10以及第二训练参与方设备20可以通过例如但不局限于互联网或局域网等的网络30相互通信。在本公开中,第一训练参与方设备10以及第二训练参与方设备20统称为训练参与方设备。其中,第一训练参与方设备10拥有标记值,以及第二训练参与方设备20不拥有标记值。

在本公开中,所训练的线性/逻辑回归模型被分解为2个子模型,每个训练参与方设备具有一个子模型。用于模型训练的训练样本集位于第一训练参与方设备10和第二训练参与方设备20处,所述训练样本集是如上所述的经过垂直划分后的训练样本集,并且训练样本集包括特征数据集以及对应的标记值,即,图1中示出的x0和y0。每一个训练参与方所拥有的子模型以及对应的训练样本是该训练参与方的秘密,不能被其他训练参与方获悉或者完整地获悉。

在本公开中,线性/逻辑回归模型和各个训练参与方的子模型分别使用权重向量w和权重子向量wi来表示,其中,i用于表示训练参与方的序号或标识(例如,a和b)。特征数据集使用特征矩阵x来表示,以及预测值和标记值分别使用预测值向量和标记值向量y来表示。

在进行模型训练时,第一训练参与方设备10和第二训练参与方设备20一起使用各自的训练样本子集以及各自的子模型来进行秘密共享矩阵乘法,以得到针对训练样本集的预测值,从而来协同训练线性/逻辑回归模型。关于模型的具体训练过程将在下面参照图3到图8进行详细描述。

在本公开中,第一训练参与方设备10以及第二训练参与方设备20可以是任何合适的具有计算能力的计算设备。所述计算设备包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。

图3示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的方法的流程图。在图3中示出的训练方法中,第一训练参与方alice具有线性/逻辑回归模型的子模型wa,第二训练参与方bob具有线性/逻辑回归模型的子模型wb,第一训练参与方alice具有第一特征样本子集xa和标记值y,第二训练参与方bob具有第二特征样本子集xb,第一特征样本子集xa和第二特征样本子集xb是通过对用于模型训练的特征样本集x进行垂直切分获得的。

如图3所示,首先,在块301,第一训练参与方alice、第二训练参与方bob初始化其子模型的子模型参数,即,权重子向量wa和wb,以获得其子模型参数的初始值,并且将已执行训练循环次数t初始化为零。这里,假设循环过程的结束条件为执行预定次数训练循环,例如,执行t次训练循环。

在如上初始化后,在块302,在alice和bob处,分别对各自的初始子模型进行模型转换处理,以得到转换子模型。

图4示出了根据本公开的实施例的模型转换过程的一个示例的流程图。

如图4所示,在alice处,在块410,将alice所具有的子模型wa分解为wa1和wa2。这里,在对子模型wa进行的分解过程中,针对子模型wa中的每个元素,将该元素的属性值分解为2个部分属性值,并且利用分解后的部分属性值得到2个新的元素。然后,将所得到的2个新的元素分别分配到wa1和wa2,由此得到wa1和wa2。

接着,在块420,在bob处,将bob所具有的子模型wb分解为wb1和wb2。

然后,在块430,alice将wa2发送给bob,以及在块440,bob将wb1发送给alice。

接着,在块450,在alice处,对wa1和wb1进行拼接,以得到转换后子模型wa'。所得到的转换后的子模型wa'的维度与用于模型训练的特征样本集的维度相等。在块460,在bob处,对wa2和wb2进行拼接,以得到转换后的子模型wb'。同样,所得到的转换后的子模型wb'的维度与用于模型训练的特征样本集的维度相等。

回到图3,在如上完成模型转换后,在块303,第一训练参与方alice和第二训练参与方bob配合来对第一特征样本子集xa和第二特征样本子集xb进行垂直切分-水平切分转换,以得到第一转换特征样本子集xa'和第二转换特征样本子集xb'。所得到的第一转换特征样本子集xa'和第二转换特征样本子集xb'中的每个特征样本具有每条训练样本的完特征整内容,即,类似于对特征样本集进行水平切分而得到的特征样本子集。

图5示出了根据本公开的实施例的特征样本集转换过程的流程图。

如图5所示,在块510,在alice处,将第一特征样本子集xa分解为xa1和xa2。在块520,在bob处,将第二特征样本子集xb分解为xb1和xb2。针对特征样本子集xa和xb的分解过程与针对子模型wa的分解过程完全相同。然后,在块530,alice将xa2发送给bob,以及在块540,bob将xb1发送给alice。

接着,在块550,在alice处,对xa1和xb1进行拼接,以得到第一转换特征样本子集xa'。所得到的第一转换特征样本子集xa'的维度与用于模型训练的特征样本集x的维度相等。在块560,在bob处,对xa2和xb2进行拼接,以得到第二转换特征样本子集xb'。转换特征样本子集xb'的维度与特征样本集x的维度相同。

在如上对第一特征样本子集xa和第二特征样本子集xb进行垂直切分-水平切分转换后,循环执行块304到块314的操作,直到满足循环结束条件。

具体地,在块304,基于各个训练参与方的当前子模型wa和wb以及各个训练参与方各自的转换特征样本子集xa'和xb',使用秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集x的当前预测值如何使用秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集x的当前预测值将在下面参照图6到图8进行说明。

在得到当前预测值后,在块305,在第一训练参与方alice处,确定当前预测值与对应的标记值y之间的预测差值这里,e是一个列向量,y是一个表示训练样本x的标记值的列向量,以及,是表示训练样本x的当前预测值的列向量。如果训练样本x仅包含单个训练样本,则e、y和都是仅具有单个元素的列向量。如果训练样本x包含多个训练样本,则e、y和都是具有多个元素的列向量,其中,中的每个元素是该多个训练样本中的对应训练样本的当前预测值,y中的每个元素是该多个训练样本中的对应训练样本的标记值,以及e中的每个元素是该多个训练样本的对应训练样本的标记值与当前预测值的差值。

然后,在块306,在alice处,使用预测差值e和第一转换特征样本子集xa'确定第一模型更新量tmp1=xa'*e。然后,在块307,在alice处,将第一模型更新量tmp1分解为tmp1=tmp1a+tmp1b。这里,针对tmp1的分解过程与上面描述的分解过程相同,在此不再描述。随后,在块308,alice将tmp1b发送给bob。

然后,在块309,alice和bob对预测差值e和第二转换特征样本子集xb'执行秘密共享矩阵乘法来计算出第二模型更新量tmp2=xb'*e。然后,在块310,在bob处,将第二模型更新量tmp2分解为tmp2=tmp2a+tmp2b。随后,在块311,bob将tmp2a发送给alice。

接着,在块312,在alice处,基于tmp1a和tmp2a来对alice处的当前转换子模型wa'进行更新。具体地,首先,计算出tmpa=tmp1a+tmp2a,然后,使用tmpa来更新当前转换子模型wa',例如,可以采用下述公式(1)来进行子模型更新:

其中,wa'(n)是alice处的当前转换子模型,wa'(n+1)是alice处的更新后的转换子模型,α是学习率(learningrate),以及s是该轮模型训练过程所使用的训练样本数量,即,该轮模型训练过程的批处理大小(batchsize)。

在块313,在bob处,基于tmp1b和tmp2b来对bob处的当前转换子模型wb’进行更新。具体地,首先,计算出tmpb=tmp1b+tmp2b,然后,使用tmpb来更新当前转换子模型wb’,例如,可以采用下述公式(2)来进行子模型更新:

其中,wb’(n)是bob处的当前转换子模型,wb’(n+1)是bob处的更新后的转换子模型,α是学习率(learningrate),以及s是该轮模型训练过程所使用的训练样本数量,即,该轮模型训练过程的批处理大小(batchsize)。

然后,在块314,判断是否达到预定循环次数,即,判断是否达到循环结束条件。如果达到预定循环次数(例如,t),则进入块315。如果未达到预定循环次数,则流程返回到块302的操作来执行下一训练循环过程,其中,在该下次训练循环过程中,各个训练参与方在当前循环过程所获得的更新后的子模型被用作下一训练循环过程的当前子模型。

在块315,分别在alice和bob处,基于alice和bob的更新后的转换子模型,确定alice和bob处的子模型(即,经过训练后的子模型)。

具体地,在如上训练出wa'和wb',alice将wa'[|a|:]发送给bob,以及bob将wb'[0:|a|]发送给alice。这里,wa'[|a|:]是指wa'中a维(即,|a|)以后的向量分量,wb'[0:|a|]是指wb'中a维(即,|a|)以前的向量分量,即,从0到|a|之间的分量。例如,假设w=[0,1,2,3,4],如果|a|是2,则w[0:|a|]=[0,1],以及w[|a|:]=[2,3,4]。接着,在alice处,计算出wa=wa'[0:|a|]+wb'[0:|a|],以及在bob处,计算出wb=wb'[|a|:]+wb'[|a|:],由此得到alice和bob处的经过训练后的子模型wa和wb。

这里要说明的是,在上述的示例中,训练循环过程的结束条件是指达到预定循环次数。在本公开的其它示例中,训练循环过程的结束条件也可以是所确定出的预测差值位于预定范围内,即,预测差值e中的每个元素ei都位于预定范围内,例如,预测差值e中的每个元素ei都小于预定阈值,或者预测差值e的均值小于预定阈值。相应地,图3中的块314的操作可以在块305的操作之后执行。

这里要说明的是,在xi是单个特征样本时,xi是由多个属性组成的特征向量(列向量或行向量),以及e是单个预测差值。在xi是多个特征样本时,xi是特征矩阵,每个特征样本的属性构成特征矩阵xi的一列元素/一行元素,以及e是预测差值向量。在计算xi·e时,与e中的各个元素相乘的是矩阵xi的某个特征所对应的各个样本的特征值。例如,假设e是列向量,则每次相乘时,e与矩阵xi中的一个行相乘,该行中的元素表示的是各个样本所对应的某一个特征的特征值。

图6示出了根据本公开的实施例的预测值获取过程的流程图。

如图6所示,首先,在块601,在alice处,使用第一转换特征样本子集xa'和当前转换子模型wa',计算出za1=xa'*wa'。在bob处,在块602,使用第二转换特征样本子集xb'和当前转换子模型wb',计算出zb1=xb'*wb'。

然后,在块603,alice和bob使用秘密共享矩阵乘法来计算出z2=xa'*wb'和z3=xb'*wa'。这里,秘密共享矩阵乘法可以使用有可信方初始化秘密共享矩阵乘法和无可信方初始化秘密共享矩阵乘法。关于有可信方初始化秘密共享矩阵乘法和无可信方初始化秘密共享矩阵乘法将在下面参照图7和图8分别进行说明。

接着,在块604,在alice处,将z2分解为za2和zb2。在块505,在bob处,将z3分解为za3和zb3。这里,针对z2和z3的分解过程与上述针对特征样本子集的分解过程相同,在此不再描述。

然后,在块606,alice将zb2发送给bob,以及在块607,bob将za3发送给alice。

接着,在块608,在alice处,计算za=za1+za2+za3。在块609,在bob处,计算zb=zb1+zb2+zb3。然后,在块610,bob将zb发送给alice,以及在块611,alice将za发送给bob。

在分别接收到za和zb后,在块612,在alice和bob处,获取预测值

图7示出了根据本公开的实施例的有可信初始化方秘密共享矩阵乘法的一个示例的流程图。图7中示出的有可信方秘密共享矩阵乘法以计算z2=xa'*wb'为例进行说明,其中,xa'是alice处的转换样本子集(下文中称为特征矩阵),wb'是bob处的转换子模型(下文中称为权重向量)。

如图7所示,首先,在可信初始化方30处,生成2个随机权重向量wr,1和wr,2,2个随机特征矩阵xr,1、xr,2以及2个随机标记值向量yr,1、yr,2,其中,这里,随机权重向量的维度与各个训练参与方的转换子模型(权重向量)的维度相同,随机特征矩阵的维度与转换样本子集(特征矩阵)的维度相同,以及随机标记值向量的维度与标记值向量的维度相同。

然后,在块701,可信初始化方30将所生成的wr,1、xr,1和yr,1发送给alice,以及在块702,将所生成的wr,2、xr,2和yr,2发送给bob。

接着,在块703,在alice处,将特征矩阵xa'分解成2个特征子矩阵,即,特征子矩阵xa1'和xa2'。

例如,假设特征矩阵xa'包括两个特征样本s1和s2,特征样本s1和s2各自包括3个属性值,其中,s1=[a11,a21,a31]和s2=[a12,a22,a32],那么,在将特征矩阵xa'分解成2个特征子矩阵xa1'和xa2'之后,第一特征子矩阵xa1'包括特征子样本[a111,a211,a311]和特征子样本[a112,a212,a312],第二特征子矩阵xa2'包括特征子样本[a121,a221,a321]和特征子样本[a122,a222,a322],其中,a111+a121=a11,a211+a221=a21,a311+a321=a31,a112+a122=a12,a212+a222=a22和a312+a322=a32

然后,在块704,alice将所分解出的特征子矩阵xa2'发送给bob。

在块705,在bob处,将权重向量wb'分解成2个权重子向量wb1'和wb2'。权重向量的分解过程与上面描述的分解过程相同。在块706,bob将权重子向量wb1'发送给alice。

然后,在各个训练参与方处,基于各个训练参与方的权重子向量、对应的特征子矩阵以及所接收的随机权重向量和随机特征矩阵,确定该训练参与方处的权重子向量差值e和特征子矩阵差值d。例如,在块707,在alice处,确定出其权重子向量差值e1=wb1'-wr,1以及特征子矩阵差值d1=xa1'-xr,1。在块708,在bob处,确定出其权重子向量差值e2=wb2'-wr,2以及特征子矩阵差值d2=xa2'-xr,2。

在各个训练参与方确定出各自的权重子向量差值ei和特征子矩阵差值di后,在块709,alice将d1和e1分别发送给训练协同方bob。在块710,训练协同方bob将d2和e2发送给alice。

然后,在块711,在各个训练参与方处,分别对所述各个训练参与方处的权重子向量差值和特征子矩阵差值进行求和,以得到权重子向量总差值e和特征子矩阵总差值d。例如,如图7中所示,d=d1+d2,以及e=e1+e2。

然后,在各个训练参与方处,基于所接收的随机权重向量wr,i、随机特征矩阵xr,i、随机标记值向量yr,i、权重子向量总差值e、特征子矩阵总差值d计算各自对应的预测值向量zi。

在本公开的一个示例中,在各个训练参与方处,可以对该训练参与方的随机标记值向量、权重子向量总差值与该训练参与方的随机特征矩阵之积以及特征子矩阵总差值与该训练参与方的随机权重向量之积进行求和,以得到对应的预测值向量(第一种计算方式)。或者,可以对该训练参与方的随机标记值向量、权重子向量总差值与该训练参与方的随机特征矩阵之积、特征子矩阵总差值与该训练参与方的随机权重向量之积、以及权重子向量总差值与特征子矩阵总差值之积进行求和,以得到对应的预测值矩阵(第二种计算方式)。

这里要说明的是,在各个训练参与方处的预测值矩阵计算时,仅仅只有一个训练参与方处计算出的预测值矩阵中包含权重子向量总差值与特征子矩阵总差值之积。换言之,针对各个训练参与方,仅仅只有一个训练参与方的预测值向量是按照第二种计算方式计算出的,而其余的训练参与方按照第一种计算方式来计算出对应的预测值向量。

例如,在块712,在alice处,计算出对应的预测值向量z1=yr,1+e*xr,1+d*wr,1+d*e。在块713,在bob处,计算出对应的预测值向量z2=yr,2+e*xr,2+d*wr,2。

这里要说明的,在图7中示出的是在alice处计算出的z1中包含d*e。在本公开的其它示例中,也可以在bob所计算出的zi中包含d*e,相应地,在alice处计算出的z1中不包含d*e。换言之,在各个训练参与方处所计算出的zi中,仅仅只有一个包含d*e。

然后,在块714,alice将z1发送给bob。在块715,bob将z2发送给alice。

然后,在块716和717,各个训练参与方进行求和z=z1+z2,以得到秘密共享矩阵乘法结果。

图8示出了根据本公开的实施例的无可信初始化方秘密共享矩阵乘法的一个示例的流程图。在图8中,以训练参与方alice和bob之间的xa'*wb'的计算过程为例进行说明。

如图8所示,首先,在块801,如果alice处的xa'(下文中称为第一特征矩阵)的行数不是偶数,和/或bob处的当前子模型参数wb'(下文中称为第一权重子矩阵)的列数不为偶数,则对第一特征矩阵xa'和/或第一权重子矩阵wb'进行维度补齐处理,以使得第一特征矩阵xa'的行数是偶数和/或第一权重子矩阵wb'的列数为偶数。例如,将第一特征矩阵xa'的行末尾增加一行0值和/或将第一权重子矩阵wb'的列末尾多增加一列0值来进行维度补齐处理。在下面的描述中,假设第一权重子矩阵wb'的维度为i*j,以及第一特征矩阵xa'的维度为j*k,其中,j为偶数。

然后,在alice处执行块802到804的操作,以得到随机特征矩阵x1、第二和第三特征矩阵x2和x3。具体地,在块802,生成随机特征矩阵x1。这里,随机特征矩阵x1的维度与第一特征矩阵xa'的维度相同,即,随机特征矩阵x1的维度为j*k。在块803,将随机特征矩阵x1减去第一特征矩阵xa',以得到第二特征矩阵x2。第二特征矩阵x2的维度为j*k。在块804,将随机特征矩阵x1的偶数行子矩阵x1_e减去随机特征矩阵x1的奇数行子矩阵x1_o,以得到第三特征矩阵x3。第三特征矩阵x3的维度为j*k,其中j=j/2。

此外,在bob处执行块805到807的操作,以得到随机权重子矩阵wb1、第二和第三权重子矩阵wb2和wb3。具体地,在块805,生成随机权重子矩阵wi1。这里,随机权重子矩阵wb1的维度与第一权重子矩阵wb'的维度相同,即,随机权重子矩阵wi1的维度为i*j。在块806,对第一权重子矩阵wb'和随机权重子矩阵wb1进行求和,以得到第二权重子矩阵wb2。第二权重子矩阵wb2的维度为i*j。在块807,将随机权重子矩阵wb1的奇数列子矩阵wb1_o加上随机权重子矩阵wb1的偶数行子矩阵wb1_e而得到第三权重子矩阵wb3。第三权重子矩阵wb3的维度为i*j,其中j=j/2。

然后,在块808,alice将所生成的第二特征矩阵x2和第三特征矩阵x3发送给bob,以及在块809,bob将第二权重子矩阵wb2和第三权重子矩阵wb3发送给alice。

接着,在块810,在alice处,基于等式y1=wb2*(2*xa'-x1)-wb3*(x3+x1_e)进行矩阵计算,以得到第一矩阵乘积y1,并且在块812,将第一矩阵乘积y1发送给bob。

在块811,在bob处,基于等式y2=(wb'+2*wb1)*x2+(wb3+wb1_o)*x3计算出第二矩阵乘积y2,并且在块813,将第二矩阵乘积y2发送给alice。

然后,在块814和815,分别在alice和bob处,对第一矩阵乘积y1和第二矩阵乘积y2进行求和,以得到xa'*wb'=yb=y1+y2。

这里要说明的是,图6-8中示出的是线性回归模型下的当前预测值y=w*x的计算过程。在逻辑回归模型的情况下,可以按照图6-8示出的过程确定出w*x,然后将所确定出的w*x代入逻辑回归模型y=1/(1+e-wx),由此计算出当前预测值。

利用图3到图8中公开的线性/逻辑回归模型训练方法,能够在不泄漏该多个训练参与方的秘密数据的情况下训练得到线性/逻辑回归模型的模型参数,并且模型训练的工作量仅与训练所使用的特征样本的数量成线性关系,而不是指数关系,从而能够在保证多个训练参与方的各自数据安全的情况下提高模型训练的效率。

图9示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的装置(下文中称为模型训练装置)900的示意图。每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方(alice)具有第一特征样本子集和标记值,第二训练参与方(bob)具有第二特征样本子集,第一和第二特征样本子集是通过对用于模型训练的特征样本集进行垂直切分而获得,模型训练装置900位于第一训练参与方侧。

如图9所示,模型训练装置900包括模型转换单元910、样本转换单元920、预测值获取单元930、预测差值确定单元940、模型更新量确定单元950、模型更新量分解单元960、模型更新量发送/接收单元970、模型更新单元980和模型确定单元990。

模型转换单元910被配置为对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型。模型转换单元910的操作可以参考上面参照图3描述的块302的操作以及参照图4描述的操作。

在进行模型训练时,样本转换单元920、预测值获取单元930、预测差值确定单元940、模型更新量确定单元950、模型更新量分解单元960、模型更新量发送/接收单元970和模型更新单元980被配置为循环执行操作,直到满足循环结束条件。所述循环结束条件可以包括:达到预定循环次数;或者所确定出的预测差值位于预定范围内。在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型。

具体地,在每次迭代过程中,样本转换单元920被配置为对特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集。样本转换单元920的操作可以参考上面参照图5描述的过程。

预测值获取单元930被配置为基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对特征样本集的当前预测值。预测值获取单元930的操作可以参考上面参照图3描述的块304的操作以及参照图6-图8描述的操作。

预测差值确定单元940被配置为确定当前预测值与对应的标记值之间的预测差值。预测差值确定单元940的操作可以参考上面参照图3描述的块305的操作。

模型更新量确定单元950被配置为使用预测差值和第一训练参与方处的转换特征样本子集确定第一模型更新量。模型更新量确定单元950的操作可以参考上面参照图3描述的块306的操作。

模型更新量分解单元960被配置为将第一模型更新量分解为两个第一部分模型更新量。模型更新量分解单元960的操作可以参考上面参照图3描述的块307的操作。

模型更新量发送/接收单元970被配置为将一个第一部分模型更新量发送给第二训练参与方,以及从第二训练参与方接收一个第二部分模型更新量,所述第二部分模型更新量是在第二训练参与方处对第二模型更新量进行分解而得到的,所述第二模型更新量是对预测差值和第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法而得到的。模型更新量发送/接收单元970的操作可以参照上面参照图3描述的块308/311的操作。

模型更新单元980被配置为基于剩余的第一部分模型更新量和所接收的第二部分模型更新量来更新第一训练参与方处的当前转换子模型。模型更新单元980的操作可以参考上面参照图3描述的块312的操作。

模型确定单元990被配置为在满足循环结束条件时,基于第一训练参与方和所述第二训练参与方的转换子模型,确定第一训练参与方的子模型。模型确定单元990的操作可以参考上面参照图3描述的块315的操作。

在本公开的一个示例中,样本转换单元920可以包括样本分解模块(未示出)、样本发送/接收模块(未示出)和样本拼接模块(未示出)。样本分解模块被配置为将第一特征样本子集分解为两个第一部分特征样本子集。样本发送/接收模块被配置为将一个第一部分特征样本子集发送给第二训练参与方,以及从第二训练参与方接收第二部分特征样本子集,所述第二部分特征样本子集是通过对第二训练参与方处的特征样本子集进行分解而得到的。样本拼接模块被配置为对剩余的第一部分特征样本子集和所接收的第二部分特征样本子集进行拼接,以得到第一转换特征样本子集。

图10示出了根据本公开的实施例的预测值获取单元的一个示例(下文中称为“预测值获取单元1000”)的方框图。如图10所示,预测值获取单元1000可以包括第一计算模块1010、第二计算模块1020、矩阵乘积分解模块1030、矩阵乘积发送/接收模块1040、第一求和模块1050、和值发送/接收模块1060和第二求和模块1070。

第一计算模块1010被配置为计算第一训练参与方的转换子模型(wa')与第一训练参与方的转换特征样本子集(xa')的第一矩阵乘积。第一计算模块1010的操作可以参考上面参照图6描述的块601的操作。

第二计算模块1020被配置为使用秘密共享矩阵乘法来计算第二训练参与方的转换子模型(wb')与第一训练参与方的转换特征样本子集(xa')的第二矩阵乘积以及第一训练参与方的转换子模型(wa')与第二训练参与方的转换特征样本子集(xb')的第三矩阵乘积。第二计算模块1020的操作可以参考上面参照图6描述的块603的操作以及参照图7-图8描述的操作。

矩阵乘积分解模块1030被配置为对所计算出的第二矩阵乘积进行分解,以得到2个第二部分矩阵乘积。矩阵乘积分解模块1030的操作可以参考上面参照图6描述的块604的操作。

矩阵乘积发送/接收模块1040被配置为将一个第二部分矩阵乘积发送给第二训练参与方,以及从第二训练参与方接收一个第三部分矩阵乘积。所述第三部分矩阵乘积是在第二训练参与方处对第三矩阵乘积进行分解后得到的。第三矩阵乘积是在由第二训练参与方执行的第一训练参与方的转换子模型(wa')与第二训练参与方的转换特征样本子集(xb')的矩阵乘积。矩阵乘积发送/接收模块1040的操作可以参考上面参照图6描述的块606和607的操作。

第一求和模块1050被配置为对第一矩阵乘积、第二部分矩阵乘积和第三部分矩阵乘积进行求和,以得到第一训练参与方处的第一矩阵乘积和值。第一求和模块1050的操作可以参考上面参照图6描述的块608的操作。

和值发送/接收模块1060被配置为接收第二训练参与方处得到的第二矩阵乘积和值(zb),以及将第一训练参与方处得到的第一矩阵乘积和值(za)发送给第二训练参与方。和值发送/接收模块1060的操作可以参考上面参照图6描述的块610/611的操作。

第二求和模块1070被配置为对所得到的第一矩阵乘积和值和第二矩阵乘积和值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。第二求和模块1070的操作可以参考上面参照图6描述的块612的操作。

在本公开的一个示例中,第二计算模块1020可以被配置为:使用有可信初始化方秘密共享矩阵乘法来计算第二训练参与方的转换子模型(wb')与第一训练参与方的转换特征样本子集(xa')的第二矩阵乘积以及第一训练参与方的转换子模型(wa')与第二训练参与方的转换特征样本子集(xb')的第三矩阵乘积。第二计算模块1020的操作可以参考上面参照图7描述的在第一训练参与方a处执行的操作。

在本公开的另一示例中,第二计算模块1120可以被配置为:使用无可信初始化方秘密共享矩阵乘法来计算第二训练参与方的转换子模型(wb')与第一训练参与方的转换特征样本子集(xa')的第二矩阵乘积以及第一训练参与方的转换子模型(wa')与第二训练参与方的转换特征样本子集(xb')的第三矩阵乘积。第二计算模块1020的操作可以参考上面参照图8描述的在第一训练参与方a处执行的操作。

图11示出了根据本公开的实施例的用于经由两个训练参与方来协同训练线性/逻辑回归模型的装置(下文中称为模型训练装置)1100的示意图。每个训练参与方具有所述线性/逻辑回归模型的一个子模型,第一训练参与方(alice)具有第一特征样本子集和标记值,第二训练参与方(bob)具有第二特征样本子集,第一和第二特征样本子集是通过对用于模型训练的特征样本集进行垂直切分而获得,模型训练装置1100位于第二训练参与方侧。

如图11所示,模型训练装置1100包括模型转换单元1110、样本转换单元1120、预测值获取单元1130、模型更新量接收单元1140、模型更新量确定单元1150、模型更新量分解单元1160、模型更新量发送单元1170、模型更新单元1180和模型确定单元1190。

模型转换单元1110被配置为对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型。模型转换单元1110的操作可以参考上面参照图3描述的块302的操作以及参照图4描述的操作。

在进行模型训练时,样本转换单元1120、预测值获取单元1130、模型更新量接收单元1140、模型更新量确定单元1150、模型更新量分解单元1160、模型更新量发送单元1170和模型更新单元1180被配置为循环执行操作,直到满足循环结束条件。所述循环结束条件可以包括:达到预定循环次数;或者所确定出的预测差值位于预定范围内。在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型。

具体地,在每次迭代过程中,样本转换单元1120被配置为对特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集。样本转换单元1120的操作可以参考上面参照图5描述的过程。此外,样本转换单元1120可以具有与样本转换单元920相同的结构。

预测值获取单元1130被配置为基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对特征样本集的当前预测值。这里,预测值获取单元1130可以被配置为使用有可信初始化方秘密共享矩阵乘法或无可信初始化方秘密共享矩阵乘法来获得针对特征样本集的当前预测值。预测值获取单元1130的操作可以参考上面参照图3描述的块304的操作。预测值获取单元1130可以采用与预测值获取单元930相同的结构(即,图10中示出的结构)。相应地,预测值获取单元1130中的第二计算模块被配置为计算第二训练参与方的转换子模型(wb')与第一训练参与方的转换特征样本子集(xa')的第二矩阵乘积以及第一训练参与方的转换子模型(wa')与第二训练参与方的转换特征样本子集(xb')的第三矩阵乘积。

模型更新量接收单元1140被配置为从第一训练参与方接收第一部分模型更新量,所述第一部分模型更新量是在第一训练参与处对第一模型更新量进行分解而得到的,所述第一模型更新量是在第一训练参与方处使用预测差值和第一训练参与方处的转换特征样本子集确定的,其中,所述预测差值是当前预测值与对应的标记值之间的差值。模型更新量接收单元1140的操作可以参考上面参照图3描述的块308的操作。

第二模型更新量确定单元1150被配置为对预测差值和所述第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法,以得到第二模型更新量。第二模型更新量确定单元1150的操作可以参考上面参照图3描述的块309的操作。这里,第二模型更新量确定单元1150可以采用图10描述的第二计算模块1020来实现。即,第二模型更新量确定单元1150可以被配置为对所述预测差值和第二训练参与方处的转换特征样本子集执行有可信初始化方秘密共享矩阵乘法或无可信初始化方秘密共享矩阵乘法,以得到第二模型更新量。

模型更新量分解单元1160被配置为将第二模型更新量分解为两个第二部分模型更新量。模型更新量分解单元1160的操作可以参考上面参照图3描述的块310的操作。

模型更新量发送单元1170被配置为将一个第二部分模型更新量发送给第一训练参与方。模型更新量发送单元1170的操作可以参考上面参照图3描述的块311的操作。

模型更新单元1180被配置为基于剩余的第二部分模型更新量和所接收的第一部分模型更新量来更新第二训练参与方的当前转换子模型。模型更新单元1180的操作可以参考上面参照图3描述的块313的操作。

模型确定单元1190被配置为在满足循环结束条件时,基于第一训练参与方和第二训练参与方的转换子模型,确定第二训练参与方的子模型。模型确定单元1190的操作可以参考上面参照图3描述的块315的操作。

如上参照图1到图11,对根据本公开的模型训练方法、装置及系统的实施例进行了描述。上面的模型训练装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。

图12示出了根据本公开的实施例的用于实现经由两个训练参与方来协同训练线性/逻辑回归模型的计算设备1200的硬件结构图。如图12所示,计算设备1200可以包括至少一个处理器1210、存储器(例如,非易失性存储器)1220、内存1230和通信接口1240,并且至少一个处理器1210、存储器1220、内存1230和通信接口1240经由总线1260连接在一起。至少一个处理器1210执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。

在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1210:对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;执行下述循环过程,直到满足循环结束条件:对特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对特征样本集的当前预测值;确定当前预测值与对应的标记值之间的预测差值;使用预测差值和第一训练参与方处的转换特征样本子集确定第一模型更新量;将第一模型更新量分解为两个第一部分模型更新量,并将一个第一部分模型更新量发送给第二训练参与方;以及从第二训练参与方接收一个第二部分模型更新量,所述第二部分模型更新量是在第二训练参与方处对第二模型更新量进行分解而得到的,所述第二模型更新量是对预测差值和第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法而得到的;基于剩余的第一部分模型更新量和所接收的第二部分模型更新量来更新第一训练参与方处的当前转换子模型,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型;在满足循环结束条件时,基于第一训练参与方和第二训练参与方的转换子模型,确定第一训练参与方的子模型。

应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1210进行本公开的各个实施例中以上结合图1-11描述的各种操作和功能。

图13示出了根据本公开的实施例的用于实现经由两个训练参与方来协同训练线性/逻辑回归模型的计算设备1300的硬件结构图。如图13所示,计算设备1300可以包括至少一个处理器1310、存储器(例如,非易失性存储器)1320、内存1330和通信接口1340,并且至少一个处理器1310、存储器1320、内存1330和通信接口1340经由总线1360连接在一起。至少一个处理器1310执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。

在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1310:对各个训练参与方的子模型进行模型转换处理,以得到各个训练参与方的转换子模型;执行下述循环过程,直到满足循环结束条件:对特征样本集进行垂直-水平切分转换,以得到各个训练参与方处的转换特征样本子集;基于各个训练参与方的当前转换子模型和转换特征样本子集,使用秘密共享矩阵乘法来获得针对特征样本集的当前预测值;从第一训练参与方接收第一部分模型更新量,所述第一部分模型更新量是在第一训练参与处对第一模型更新量进行分解而得到的,所述第一模型更新量是在第一训练参与方处使用预测差值和第一训练参与方处的转换特征样本子集确定的,其中,所述预测差值是当前预测值与对应的标记值之间的差值;对预测差值和第二训练参与方处的转换特征样本子集执行秘密共享矩阵乘法,以得到第二模型更新量;将第二模型更新量分解为两个第二部分模型更新量,并将一个第二部分模型更新量发送给第一训练参与方;以及基于剩余的第二部分模型更新量和所接收的第一部分模型更新量来更新第二训练参与方的当前转换子模型,其中,在循环过程未结束时,更新后的各个训练参与方的转换子模型被用作下一循环过程的当前转换子模型;在满足所述循环结束条件时,基于第一训练参与方和第二训练参与方的转换子模型,确定第二训练参与方的子模型。

应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本公开的各个实施例中以上结合图1-11描述的各种操作和功能。

根据一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-11描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。

在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。

可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。

本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。

本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

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