CN112183564B - 模型训练方法、装置及系统 - Google Patents

模型训练方法、装置及系统 Download PDF

Info

Publication number
CN112183564B
CN112183564B CN201910600330.7A CN201910600330A CN112183564B CN 112183564 B CN112183564 B CN 112183564B CN 201910600330 A CN201910600330 A CN 201910600330A CN 112183564 B CN112183564 B CN 112183564B
Authority
CN
China
Prior art keywords
training
model
matrix
sub
initiator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910600330.7A
Other languages
English (en)
Other versions
CN112183564A (zh
Inventor
陈超超
李梁
王力
周俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910600330.7A priority Critical patent/CN112183564B/zh
Publication of CN112183564A publication Critical patent/CN112183564A/zh
Application granted granted Critical
Publication of CN112183564B publication Critical patent/CN112183564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本公开提供用于训练线性/逻辑回归模型的方法和装置。在该方法中,执行下述迭代过程,直到满足预定条件:基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得针对特征样本集的当前预测值;训练发起方确定当前预测值与对应的标记值之间的预测差值,基于预测差值和特征样本集来确定模型更新量;将模型更新量分割为第一数目个部分模型更新量,并且将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,第二数目等于第一数目减一;各个训练参与方基于各自的当前子模型以及对应的部分模型更新量来更新当前子模型。该方法能够在保证各方数据安全的情况下提高模型训练的效率。

Description

模型训练方法、装置及系统
技术领域
本公开通常涉及机器学习领域,尤其涉及用于使用水平切分的训练集来经由多个训练参与方协同训练线性/逻辑回归模型的方法、装置及系统。
背景技术
线性回归模型和逻辑回归模型是机器学习领域广泛使用的回归/分类模型。在很多情况下,多个模型训练参与方(例如,电子商务公司、快递公司和银行)各自拥有训练线性/逻辑回归模型所使用的特征样本的不同部分数据。该多个模型训练参与方通常想共同使用彼此的数据来统一训练线性/逻辑回归模型,但又不想把各自的数据提供给其它各个模型训练参与方以防止自己的数据被泄露。
面对这种情况,提出了能够保护数据安全的机器学习方法,其能够在保证多个模型训练参与方的各自数据安全的情况下,协同该多个模型训练参与方来训练线性/逻辑回归模型,以供该多个模型训练参与方使用。然而,现有的能够保护数据安全的机器学习方法的模型训练效率较低。
发明内容
鉴于上述问题,本公开提供了一种用于经由多个训练参与方协同训练线性/逻辑回归模型的方法、装置及系统,其能够在保证多个训练参与方的各自数据安全的情况下提高模型训练的效率。
根据本公开的一个方面,提供了一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法由训练发起方执行,所述方法包括:执行下述迭代过程,直到满足预定条件:基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;确定所述特征样本集的当前预测值与对应的标记值之间的预测差值;基于所确定出的预测差值和所述特征样本集,确定模型更新量;将所确定出的模型更新量分割为所述第一数目个部分模型更新量,并且将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,所述第二数目等于所述第一数目减一;以及基于所述训练发起方的当前子模型以及对应的部分模型更新量来更新所述训练发起方的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型。
根据本公开的另一方面,提供一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法由训练协同方执行,所述方法包括:执行下述迭代过程,直到满足预定条件:基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;从所述训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在所述训练发起方处对模型更新量进行分割后得到的所述第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在所述训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及所述特征样本集确定出的;以及基于所述训练协同方的当前子模型以及所接收的部分模型更新量来更新所述训练协同方的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一训练迭代过程的当前子模型。
根据本公开的另一方面,提供一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法包括:执行下述迭代过程,直到满足预定条件:基于所述各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;在所述训练发起方处,确定所述特征样本集的当前预测值与对应的标记值之间的预测差值,基于所确定出的预测差值与所述特征样本集确定模型更新量,将所确定出的模型更新量分割为所述第一数目个部分模型更新量,并且将所述第二数目个部分模型更新量中的每个分别发送给所述各个训练协同方;以及在所述各个训练参与方处,基于该训练参与方的当前子模型以及所接收的部分模型更新量来更新该训练参与方处的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型。
根据本公开的另一方面,提供一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述装置位于训练发起方处,所述装置包括:预测值获取单元,被配置为基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;预测差值确定单元,被配置为确定所述特征样本集的当前预测值与对应的标记值之间的预测差值;模型更新量确定单元,被配置为基于所确定出的预测差值和所述特征样本集,确定模型更新量;模型更新量分割单元,被配置为将所确定出的模型更新量分割为所述第一数目个部分模型更新量;模型更新量发送单元,被配置为将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,所述第二数目等于所述第一数目减一;以及模型更新单元,被配置为基于所述训练发起方的当前子模型以及对应的部分模型更新量来更新所述训练发起方处的子模型,其中,所述预测值获取单元、所述预测差值确定单元、所述模型更新量确定单元、所述模型更新量分割单元、所述模型更新量发送单元以及所述模型更新单元被配置为循环执行操作,直到满足预定条件,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型。
根据本公开的另一方面,提供一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述装置位于训练协同方处,所述装置包括:预测值获取单元,被配置为基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;模型更新量接收单元,被配置为从所述训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在所述训练发起方处对模型更新量进行分割后得到的所述第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在所述训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及所述特征样本集确定出的;以及模型更新单元,被配置为基于所述训练协同方的当前子模型以及所接收的部分模型更新量来更新所述训练协同方的子模型,其中,所述预测值获取单元、所述模型更新量接收单元以及所述模型更新单元被配置为循环执行操作,直到满足预定条件,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一训练迭代过程的当前子模型。
根据本公开的另一方面,提供一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的系统,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述系统包括:训练发起方设备,包括如上所述的用于在训练发起方侧执行训练的装置;以及至少一个训练协同方设备,每个训练协同方设备包括如上所述的用于在训练协同方侧执行训练的装置。
根据本公开的另一方面,提供一种计算设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在训练发起方侧执行的训练方法。
根据本公开的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述至少一个处理器执行如上所述的在训练发起方侧执行的训练方法。
根据本公开的另一方面,提供一种计算设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的在训练协同方侧执行的训练方法。
根据本公开的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述至少一个处理器执行如上所述的在训练协同方侧执行的训练方法。
本公开的实施例的方案利用无可信初始化方秘密共享矩阵乘法来经由多个训练参与方协同训练线性/逻辑回归模型,其能够在不泄漏该多个训练参与方的秘密数据的情况下训练得到线性/逻辑回归模型的模型参数,并且模型训练的工作量仅与训练所使用的特征样本的数量成线性关系,而不是指数关系,因此,与现有技术相比,本公开的实施例的方案能够实现在保证多个训练参与方的各自数据安全的情况下提高模型训练的效率。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本公开的实施例的经过水平切分的数据的示例的示意图;
图2示出了示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的系统的架构示意图;
图3示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法的流程图;
图4示出了根据本公开的实施例的基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集的当前预测值的过程的流程图;
图5示出了图4中的无可信初始化方秘密共享矩阵乘法过程的一个示例的流程图;
图6示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置的方框图;
图7示出了图6中的预测值获取单元的一个实现示例的方框图;
图8示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置的方框图;
图9示出了图8中的预测值获取单元的一个实现示例的方框图;
图10示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的计算设备的示意图;
图11示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的计算设备的示意图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
秘密共享方法是一种将秘密分割存储的密码技术,其将秘密以适当的方式拆分成多个秘密份额,每一个秘密份额由多个参与方中的一个参与方拥有和管理,单个参与方无法恢复完整秘密,只有若干个参与方共同协作才能恢复完整秘密。秘密共享方法目标在于阻止秘密过于集中,以达到分散风险和容忍入侵的目的。
秘密共享方法可大致分为两类:有可信初始化方(trust initializier)秘密共享方法以及无可信初始化方秘密共享方法。在有可信初始化方的秘密共享方法中,需要该可信初始化方对参与多方安全计算的各个参与方进行参数初始化(往往是产生满足一定条件的随机数)。在初始化完成后,可信初始化方将数据销毁,同时也消失,在接下来的多方安全计算过程中不再需要。
无可信初始化方秘密共享矩阵乘法是其中一种秘密共享方法。无可信初始化方秘密共享矩阵乘法适用于完整秘密是第一秘密份额与第二秘密份额的乘积且两方分别拥有第一秘密份额和第二秘密份额的情形。通过无可信初始化方秘密共享矩阵乘法,拥有各自秘密份额的两方中的每一方生成和公开与其拥有的秘密份额不同的数据,但这两方各自公开的数据之和等于这两方各自拥有的秘密份额的乘积(即完整秘密)。从而,各方在不需要公开各自所拥有的秘密份额的情况下通过有可信初始化方的秘密共享矩阵乘法协同工作就能恢复出完整秘密,这保证了各方数据的安全。
在本公开中,线性/逻辑回归模型训练方案中所使用的训练样本集是经过水平切分的训练样本集。术语“对训练样本集进行水平切分”是指按照某个字段的某种规则来将该训练样本集中的训练样本切分为多个训练样本子集中,各个训练样本子集包含一部分训练样本,并且每个训练样本子集中所包括的训练样本是完整的训练样本,即,包括该训练样本的所有字段数据和对应的标记值。在本公开中,假设存在三个数据方Alice、Bob和Charlie,则在各个数据方处获取本地样本以形成本地样本集,在该本地样本集中所包含的每条样本都是完整的样本,然后,三个数据方Alice、Bob和Charlie所获取的本地样本集组成用于线性/逻辑回归模型训练的训练样本集,其中,每个本地样本集作为该训练样本集的训练样本子集,以用于训练线性/逻辑回归模型。
假设给定由d个属性(也称为特征)描述的属性值样本示例xT=(x1;x2;…;xd),其中,xi是x在第i个属性上的取值和T表示转置,那么线性回归模型为Y=Wx,逻辑回归模型为Y=1/(1+e-wx),其中,Y是预测值,以及,W是线性/逻辑回归模型的模型参数(即,本公开中所述的模型),WP是指本公开中的各个训练参与方P处的子模型。在本公开中,属性值样本也称为特征数据样本。
在本公开中,各个训练参与方各自拥有训练线性/逻辑回归模型所使用的训练样本的不同部分数据。例如,以两个训练参与方为例,假设训练样本集包括100个训练样本,每一个训练样本包含多个特征值和标记实际值,那么,第一参与方拥有的数据可以是训练样本集内的前30个训练样本,以及,第二参与方拥有的数据可以是训练样本集内的后70个训练样本。
在本公开中的任何地方描述的矩阵乘法计算,需要根据情况来确定是否对参与矩阵乘法的两个或多个矩阵中的一个或多个对应的矩阵进行转置处理,以满足矩阵乘法规则,由此完成矩阵乘法计算。
下面将结合附图来详细描述根据本公开的用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法、装置以及系统的实施例。
图1示出了根据本公开的实施例的经过水平切分的训练样本集的示例的示意图。图1中示出了2个数据方Alice和Bob,多个数据方也类似。每个数据方Alice和Bob拥有的训练样本子集中的每条训练样本是完整的,即,每条训练样本包括完整的特征数据(x)和标记数据(y)。比如,Alice拥有完整的训练样本(x0,y0)。
图2示出了示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的系统1(下文中称为模型训练系统1)的架构示意图。
如图2所示,模型训练系统1包括训练发起方设备10以及至少一个训练协同方设备20。在图2中示出了2个训练协同方设备20。在本公开的其它实施例中,可以包括一个训练协同方设备20或者包括多于2个的训练协同方设备20。可训练发起方设备10以及至少一个训练协同方设备20可以通过例如但不局限于互联网或局域网等的网络30相互通信。在本公开中,训练发起方设备10以及至少一个训练协同方设备20统称为训练参与方设备。
在本公开中,所训练的线性/逻辑回归模型被分割为第一数目个子模型。这里,第一数目等于参与模型训练的训练参与方设备的数目。这里,假设训练参与方设备的数目为N。相应地,线性/逻辑回归模型被分割为N个子模型,每个训练参与方设备具有一个子模型。用于模型训练的训练样本集位于训练发起方设备10处,所述训练样本集是如上所述的经过水平划分后的训练样本集,并且训练样本集包括特征数据集以及对应的标记值,即,图1中示出的x0和y0。每一个训练参与方所拥有的子模型以及对应的训练样本是该训练参与方的秘密,不能被其他训练参与方获悉或者完整地获悉。
在本公开中,线性/逻辑回归模型和各个训练参与方的子模型分别使用权重矩阵W和权重子矩阵Wi来表示,其中,i用于表示训练参与方的序号。特征数据集使用特征矩阵X来表示,以及预测值和标记值分别使用预测值矩阵和标记值向量Y来表示。
在进行模型训练时,训练发起方设备10和至少一个训练协同方设备20一起使用训练发起方设备10处的训练样本集X以及各自的子模型来进行无可信初始化方秘密共享矩阵乘法,以得到针对训练样本集X的预测值,从而来协同训练线性/逻辑回归模型。关于模型的具体训练过程将在下面参照图3到图5进行详细描述。
在本公开中,训练发起方设备10以及训练协同方设备20可以是任何合适的具有计算能力的计算设备。所述计算设备包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
图3示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法的总体流程图。在图3中,以一个训练发起方Alice和2个训练协同方Bob和Charlie为例来进行说明。
如图3所示,首先,在块310,训练发起方Alice、训练协同方Bob和Charlie初始化其子模型的子模型参数,即,权重子向量WA、WB和WC,以获得其子模型参数的初始值,并且将已执行训练迭代次数t初始化为零。这里,假设迭代过程的结束条件为执行预定次数训练迭代,例如,执行T次训练迭代。
在如上初始化后,在块320,基于各个训练参与方的当前子模型WA、WB和WC以及训练发起方Alice的特征样本集X,使用无可信初始化方秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集X的当前预测值如何使用无可信初始化方秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集X的当前预测值/>将在下面参照图4和图5进行说明。
在得到当前预测值后,在块330,在训练发起方Alice处,确定当前预测值/>与对应的标记值Y之间的预测差值/>这里,e是一个列向量,Y是一个表示训练样本X的标记值的列向量,以及,/>是表示训练样本X的当前预测值的列向量。如果训练样本X仅包含单个训练样本,则e、Y和/>都是仅具有单个元素的列向量。如果训练样本X包含多个训练样本,则e、Y和/>都是具有多个元素的列向量,其中,/>中的每个元素是该多个训练样本中的对应训练样本的当前预测值,Y中的每个元素是该多个训练样本中的对应训练样本的标记值,以及e中的每个元素是该多个训练样本的对应训练样本的标记值与当前预测值的差值。
然后,在块340,基于所确定出的预测差值e以及特征样本集X,确定模型更新量。在本公开的一个示例中,可以通过计算预测差值e以及特征样本集X的乘积来确定出模型更新量tmp=X*e。
接着,在块350,将所确定出的模型更新量tmp分割为第一数目个部分模型更新量。该第一数目个部分模型更新量中的每个部分模型更新量包括模型更新量中的各个元素的部分元素值,并且,对于每个元素,该第一数目个部分模型更新量之和等于模型更新量。例如,在存在三个训练参与方Alice,Bob和Charlie的情况下,将所确定出的模型更新量tmp分割为3个部分模型更新量tmpA、tmpB和tmpC。比如,对于tmp中的每个元素tmpi,将其分割为3个部分tmpi,A、tmpi,B和tmpi,C,并且tmpi=tmpi,A+tmpi,B+tmpi,C
接着,在块360,将第二数目个部分模型更新量中的每个分别发送给各个训练协同方,例如,将部分模型更新量tmpB发送给训练协同方Bob,以及将部分模型更新量tmpC发送给训练协同方Charlie,同时训练发起方Alice保留部分模型更新量tmpA
然后,在块370,在各个训练参与方处,基于该训练参与方的当前子模型以及对应的部分模型更新量来更新该训练参与方处的当前子模型。例如,训练发起方Alice使用当前子模型WA以及对应的部分模型更新量tmpA来更新训练发起方Alice处的当前子模型,训练协同方Bob使用当前子模型WB以及对应的部分模型更新量tmpB来更新训练协同方Bob处的当前子模型,以及训练协同方Charlie使用当前子模型WC以及对应的部分模型更新量tmpC来更新训练协同方Charlie处的当前子模型。
在本公开的一个示例中,基于训练参与方的当前子模型以及对应的部分模型更新量来更新该训练参与方处的当前子模型可以按照以下等式更新训练参与方处的当前子模型:Wn+1=Wn-α·tmpi,其中,Wn+1表示该训练参与方处的更新后的子模型,Wn表示该训练参与方处的当前子模型,α表示学习率,以及tmpi表示与该训练参与方对应的部分模型更新量。
在如上在各个训练参与方完成各自的子模型更新后,在块380,判断是否达到预定迭代次数,即,判断是否达到预定条件。如果达到预定迭代次数,则各个训练参与方将各自的子模型参数的当前更新值,存储为其子模型参数的最终值,从而得到各自的训练后的子模型,然后流程结束。如果未达到预定迭代次数,则流程返回到块320的操作来执行下一训练迭代过程,其中,在该下次训练迭代过程中,各个训练参与方在当前迭代过程所获得的更新后的子模型被用作下一迭代过程的当前子模型。
这里要说明的是,在上述的示例中,训练迭代过程的结束条件是指达到预定迭代次数。在本公开的其它示例中,训练迭代过程的结束条件也可以是所确定出的预测差值位于预定范围内,即,预测差值e中的每个元素ei都位于预定范围内,例如,预测差值e中的每个元素ei都小于预定阈值,或者预测差值e的均值小于预定阈值。相应地,图3中的块380的操作可以在块330的操作之后执行。
图4示出了根据本公开的实施例的基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得待训练的线性/逻辑回归模型针对特征样本集的当前预测值的过程的流程图。
如图4所示,首先,在块401,在训练发起方Alice处,计算训练发起方的第一权重子矩阵WA与第一特征矩阵X的矩阵乘积,以得到与训练发起方Alice的子模型WA对应的部分预测值YA=WA*X。
接着,在块402,使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方(例如,Bob和Charlie)的第一权重子矩阵(例如,WB和WC)与第一特征矩阵X的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值(YB=WB*X和YC=WC*X)。这里,每个训练协同方的子模型对应的部分预测值是在对应的训练协同方和训练发起方之间,基于训练发起方的训练样本集来使用无可信初始化方秘密共享矩阵乘法计算出。如何使用无可信初始化方秘密共享矩阵乘法来计算训练协同方处的部分预测值,将在下面参照图5进行详细说明。
然后,在训练发起方Alice处,对所得到的各个训练参与方的子模型所对应的部分预测值(例如,YA、YB和YC)进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值
这里要说明的是,图4中示出的是线性回归模型下的当前预测值的计算过程。在逻辑回归模型的情况下,可以按照图4示出的过程确定出W*X,然后将所确定出的W*X代入逻辑回归模型Y=1/(1+e-wx),由此计算出当前预测值。
此外,在图3和图4中示出的模型训练过程中,Alice被作为训练发起方来发起当前模型迭代训练,即,使用Alice处的训练数据来执行模型迭代训练。在本公开的其它示例中,每次模型迭代训练中所使用的训练数据可以是训练参与方中的任一方中所具有的训练数据。相应地,图4中所述的方法还可以包括:在每次迭代训练时,由训练参与方来协商确定哪个训练参与方作为训练发起方,即,协商确定使用哪个训练参与方中的训练数据来执行本次迭代训练。然后,各个训练参与方按照所确定出的训练角色来执行图3和图4中示出的对应操作。
此外,要说明的是,图3和图4中示出的是1个训练发起方和2个训练协同方的模型训练方案,在本公开的其它示例中,也可以包括1个训练协同方或者包括多于2个训练协同方。
图5示出了图4中的无可信初始化方秘密共享矩阵乘法过程的一个示例的流程图。在图5中,以一个训练发起方Alice和训练协同方Bob为例来进行说明WB*X的计算过程。
如图5所示,首先,在块501,如果训练发起方Alice处的用于本次迭代训练的训练样本集中的特征样本集X(下文中称为第一特征矩阵X)的行数不是偶数,和/或训练协同方Bob处的当前子模型参数WB(下文中称为第一权重子矩阵WB)的列数不为偶数,则对第一特征矩阵X和/或第一权重子矩阵WB进行维度补齐处理,以使得第一特征矩阵X的行数是偶数和/或第一权重子矩阵WB的列数为偶数。例如,将第一特征矩阵X的行末尾增加一行0值和/或将第一权重子矩阵WB的列末尾多增加一列0值来进行维度补齐处理。在下面的描述中,假设第一权重子矩阵WB的维度为I*J,以及第一特征矩阵X的维度为J*K,其中,J为偶数。
然后,在训练发起方Alice处执行块502到504的操作,以得到随机特征矩阵X1、第二和第三特征矩阵X2和X3。具体地,在块502,生成随机特征矩阵X1。这里,随机特征矩阵X1的维度与第一特征矩阵X的维度相同,即,随机特征矩阵X1的维度为J*K。在块503,将随机特征矩阵X1减去第一特征矩阵X,以得到第二特征矩阵X2。第二特征矩阵X2的维度为J*K。在块503,将随机特征矩阵X1的偶数行子矩阵减去随机特征矩阵X1的奇数行子矩阵,以得到第三特征矩阵X3。第三特征矩阵X3的维度为j*K,其中j=J/2。
此外,在训练协同方Bob处执行块505到507的操作,以得到随机权重子矩阵WB1、第二和第三权重子矩阵WB2和WB3。具体地,在块505,生成随机权重子矩阵WB1。这里,随机权重子矩阵WB1的维度与第一特征矩阵WB的维度相同,即,随机权重子矩阵WB1的维度为I*J。在块506,对第一权重子矩阵WB和随机权重子矩阵WB1进行求和,以得到第二权重子矩阵WB2。第二权重子矩阵WB2的维度为I*J。在块507,将随机权重子矩阵WB1的奇数列子矩阵WB1_o加上随机权重子矩阵WB1的偶数行子矩阵WB1_e而得到第三权重子矩阵WB3。第三权重子矩阵WB3的维度为I*j,其中j=J/2。
然后,在块508,训练发起方Alice将所生成的第二特征矩阵X2和第三特征矩阵X3发送给训练协同方Bob,以及在块509,训练协同方Bob将第二权重子矩阵WB2和第三权重子矩阵WB3发送给训练发起方Alice。
接着,在块510,在训练发起方Alice处,基于等式Y1=WB2*(2*X-X1)-WB3*(X3+X1_e)进行矩阵计算,以得到第一矩阵乘积Y1,并且在块512,将第一矩阵乘积Y1发送给训练协同方Bob。
在块511,在训练协同方Bob处,基于等式Y2=(WB+2*WB1)*X2+(WB3+WB1_o)*X3计算出第二矩阵乘积Y2,并且在块513,将第二矩阵乘积Y2发送给训练发起方Alice。
然后,在块514和515,分别在训练发起方Alice和训练协同方Bob处,对第一矩阵乘积Y1和第二矩阵乘积Y2进行求和,以得到与训练协同方Bob的子模型对应的部分预测值YB=Y1+Y2。
这里要说明的是,在图5中示出的模型训练过程中,Alice被作为训练发起方来发起当前模型迭代训练,即,使用Alice处的训练数据来执行模型迭代训练。即,在图5中示出的模型训练过程中,数据方Alice作为训练发起方,数据方Bob5作为训练协同方。在本公开的其它示例中,每次模型迭代训练中所使用的训练数据可以是训练参与方中的任一方中所具有的训练数据。例如,也可以使用数据方Bob的训练数据来进行模型训练。在这种情况下,数据方Bob作为训练发起方,数据方Alice作为训练协同方。
利用图3到图5中公开的线性/逻辑回归模型训练方法,能够在不泄漏该多个训练参与方的秘密数据的情况下训练得到线性/逻辑回归模型的模型参数,并且模型训练的工作量仅与训练所使用的特征样本的数量成线性关系,而不是指数关系,从而能够在保证多个训练参与方的各自数据安全的情况下提高模型训练的效率。
图6示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置(下文中称为模型训练装置)600的示意图。如图6所示,模型训练装置600包括预测值获取单元610、预测差值确定单元620、模型更新量确定单元630、模型更新量分割单元640、模型更新量发送单元650和模型更新单元660。
在进行训练时,预测值获取单元610、预测差值确定单元620、模型更新量确定单元630、模型更新量分割单元640、模型更新量发送单元650和模型更新单元660被配置为循环执行操作,直到满足预定条件。所述预定条件可以包括:达到预定迭代次数;或者所确定出的预测差值位于预定范围内。
具体地,在每次迭代过程中,预测值获取单元610被配置为基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得线性/逻辑回归模型针对特征样本集的当前预测值。预测值获取单元610的操作可以参考上面参照图3描述的块320的操作以及图4和图5中示出的训练发起方所执行的操作。
预测差值确定单元620被配置为确定特征样本集的当前预测值与对应的标记值之间的预测差值。预测差值确定单元620的操作可以参考上面参照图3描述的块330的操作。
模型更新量确定单元630被配置为基于所确定出的预测差值和特征样本集,确定模型更新量。模型更新量确定单元630的操作可以参考上面参照图3描述的块340的操作。
模型更新量分割单元640被配置为将所确定出的模型更新量分割为第一数目个部分模型更新量。模型更新量分割单元640的操作可以参考上面参照图3描述的块350的操作。
模型更新量发送单元650为将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,第二数目等于第一数目减一。模型更新量发送单元650的操作可以参考上面参照图3描述的块360的操作。
模型更新单元660为基于训练发起方的当前子模型以及对应的部分模型更新量来更新训练发起方处的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型。模型更新单元660的操作可以参考上面参照图3描述的块370的操作。
图7示出了图6中的预测值获取单元610的一个实现示例的方框图。如图7所示,预测值获取单元610包括第一计算模块611、第二计算模块613和求和模块615。在图7中示出的示例中,各个训练参与方的子模型使用权重子矩阵来表示,以及特征样本集、当前预测值和标记值分别使用特征矩阵、预测值矩阵和标记值向量来表示。
第一计算模块611被配置为计算训练发起方的第一权重子矩阵与第一特征矩阵的矩阵乘积,以得到与训练发起方的子模型对应的部分预测值。第一计算模块611的操作可以参考上面参照图4描述的块410的操作。
第二计算模块613被配置为使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值。第二计算模块613的操作可以参考上面参照图4描述的块420的操作以及参照图5描述的操作。
求和模块615被配置为对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到线性/逻辑回归模型针对特征样本集的当前预测值。求和模块615的操作可以参考上面参照图4描述的块430的操作。
此外,在本公开的另一示例中,预测值获取单元610还可以包括行维度补齐模块(未示出)。所述行维度补齐模块被配置为在第一特征矩阵X的行数不是偶数时,对第一特征矩阵X进行行维度补齐处理。在本公开的另一示例中,所述行维度补齐模块也可以包含在第二计算模块613中。
此外,在本公开的其它示例中,模型训练装置600还可以包括协商单元(未示出),被配置为在多个训练参与方之间协商确定出训练发起方和训练协同方。
图8示出了根据本公开的实施例的用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置(下文中称为模型训练装置800)的方框图。如图8所示,模型训练装置800包括预测值获取单元810、模型更新量接收单元820和模型更新单元830。
在模型训练时,预测值获取单元810、模型更新量接收单元820以及模型更新单元830被配置为循环执行操作,直到满足预定条件。所述预定条件可以包括:达到预定迭代次数;或者所确定出的预测差值位于预定范围内。
具体地,在每次迭代过程中,预测值获取单元810被配置为使用无可信初始化方秘密共享矩阵乘法来基于训练协同方的当前子模型与训练发起方处的特征样本集,获取与训练协同方的子模型对应的部分预测值。预测值获取单元810的操作可以参考上面参照图3描述的块320的操作以及图4和图5中示出的任一训练协同方执行的操作。
模型更新量接收单元820被配置为从训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在训练发起方处对模型更新量进行分割后得到的第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及特征样本集确定出的。模型更新量接收单元820的操作可以参考上面参照图3描述的块360的操作。
模型更新单元830被配置为基于训练协同方的当前子模型以及所接收的部分模型更新量来更新训练协同方的子模型。模型更新单元830的操作可以参考上面参照图3描述的块370的操作。
图9示出了图8中的预测值获取单元810的一个实现示例的方框图。如图9所示,预测值获取单元810包括随机权重子矩阵生成模块811、第二权重子矩阵生成模块812、第三权重子矩阵生成模块813、矩阵发送/接收模块814、矩阵乘积计算模块815、矩阵乘积发送/接收模块816和部分预测值计算模块817。在图9中示出的示例中,特征样本集使用第一特征矩阵X表示,以及各个训练参与方的子模型和对应的预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示。
随机权重子矩阵生成模块811被配置为生成随机权重子矩阵Wi1。第二权重子矩阵生成模块812被配置为对第一权重子矩阵Wi和随机权重子矩阵Wi1进行求和,以得到第二权重子矩阵Wi2
第三权重子矩阵生成模块813被配置为将随机权重子矩阵Wi1的奇数列子矩阵Wi1_o加上随机权重子矩阵Wi1的偶数行子矩阵Wi1_e而得到第三权重子矩阵Wi3
矩阵发送/接收模块814被配置为将所生成的第二权重子矩阵Wi2和第三权重子矩阵Wi3发送给训练发起方,以及从训练发起方接收第二特征矩阵X2和第三特征矩阵X3。其中,第二特征矩阵X2是通过将随机特征矩阵X1减去所述第一特征矩阵X而得到,随机特征矩阵X1是在训练发起方处随机生成的。第三特征矩阵X3是通过将随机特征矩阵X1的偶数行子矩阵X1_e减去随机特征矩阵X1的奇数行子矩阵X1_o而得到。
矩阵乘积计算模块815被配置为基于等式Y2=(Wi+2*Wi1)*X2+(Wi3+Wi1_o)*X3进行矩阵计算,以得到第二矩阵乘积Y2。
矩阵乘积发送/接收模块816被配置为将所得到的第二矩阵乘积Y2发送给训练发起方,以及从训练发起方接收第一矩阵乘积Y1。第一矩阵乘积Y1是在训练发起方处基于等式Y1=Wi2*(2*X-X1)-Wi3*(X3+X1_e)计算出的。
部分预测值计算模块817被配置为对第一矩阵乘积Y1和第二矩阵乘积Y2进行求和,以得到与该训练协同方的子模型对应的部分预测值Yi。
此外,在本公开的另一示例中,预测值获取单元810还可以包括列维度补齐模块(未示出)。所述列维度补齐模块被配置为在第一权重子矩阵Wi的列数不是偶数时,对第一权重子矩阵Wi进行列维度补齐处理。
如上参照图1到图9,对根据本公开的模型训练方法、装置及系统的实施例进行了描述。上面的模型训练装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
图10示出了根据本公开的实施例的用于实现经由多个训练参与方来协同训练线性/逻辑回归模型的计算设备1000的硬件结构图。如图10所示,计算设备1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030和通信接口1040,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1060连接在一起。至少一个处理器1010执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1010:执行下述迭代过程,直到满足预定条件:基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得线性/逻辑回归模型针对特征样本集的当前预测值;确定特征样本集的当前预测值与对应的标记值之间的预测差值;基于所确定出的预测差值和特征样本集,确定模型更新量;将所确定出的模型更新量分割为第一数目个部分模型更新量,并且将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,第二数目等于第一数目减一;以及基于训练发起方的当前子模型以及对应的部分模型更新量来更新训练发起方的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010进行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
图11示出了根据本公开的实施例的用于实现经由多个训练参与方来协同训练线性/逻辑回归模型的计算设备1100的硬件结构图。如图11所示,计算设备1100可以包括至少一个处理器1110、存储器(例如,非易失性存储器)1120、内存1130和通信接口1140,并且至少一个处理器1110、存储器1120、内存1130和通信接口1140经由总线1160连接在一起。至少一个处理器1110执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1110:执行下述迭代过程,直到满足预定条件:基于各个训练参与方的当前子模型以及训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得线性/逻辑回归模型针对特征样本集的当前预测值;从训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在训练发起方处对模型更新量进行分割后得到的第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及特征样本集确定出的;以及基于训练协同方的当前子模型以及所接收的部分模型更新量来更新训练协同方的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一训练迭代过程的当前子模型。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1110进行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
根据一个实施例,提供了一种机器可读介质(例如,非暂时性机器可读介质)的程序产品。该机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

Claims (27)

1.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法由训练发起方执行,所述方法包括:
执行下述迭代过程,直到满足预定条件:
基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;
确定所述特征样本集的当前预测值与对应的标记值之间的预测差值;
基于所确定出的预测差值和所述特征样本集,确定模型更新量;将所确定出的模型更新量分割为所述第一数目个部分模型更新量,并且将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,所述第二数目等于所述第一数目减一;以及
基于所述训练发起方的当前子模型以及对应的部分模型更新量来更新所述训练发起方的子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型,
其中,所述特征样本集使用第一特征矩阵X表示,以及所述各个训练参与方的子模型和对应的部分预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示,以及
基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值包括:
计算所述训练发起方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与所述训练发起方的子模型对应的部分预测值;
使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值;以及
对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。
2.如权利要求1所述的方法,其中,使用无可信初始化方秘密共享矩阵乘法来计算训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与训练协同方的子模型对应的部分预测值包括:
生成随机特征矩阵X1;
将所述随机特征矩阵X1减去所述第一特征矩阵X,以得到第二特征矩阵X2;
将随机特征矩阵X1的偶数行子矩阵X1_e减去随机特征矩阵X1的奇数行子矩阵X1_o而得到第三特征矩阵X3;
将所生成的第二特征矩阵X2和第三特征矩阵X3发送给训练协同方,以及从所述训练协同方接收第二权重子矩阵Wi2和第三权重子矩阵Wi3,其中,所述第二权重子矩阵Wi2是通过对该训练协同方的第一权重子矩阵Wi和随机权重子矩阵Wi1进行求和而得到的,以及所述第三权重子矩阵Wi3是通过将所述随机权重子矩阵Wi1的奇数列子矩阵加上所述随机权重子矩阵Wi1的偶数列子矩阵而得到的;
基于等式Y1=Wi2*(2*X-X1)-Wi3*(X3+X1_e)进行矩阵计算,以得到第一矩阵乘积Y1,并将所述第一矩阵乘积Y1发送给所述训练协同方;
从所述训练协同方接收第二矩阵乘积Y2,所述第二矩阵乘积Y2是在所述训练协同方处基于等式Y2=(Wi+2*Wi1)*X2+(Wi3+Wi1_o)*X3计算出的,其中,Wi1_o是所述随机权重子矩阵Wi1的奇数列子矩阵;以及
对所述第一矩阵乘积Y1和所述第二矩阵乘积Y2进行求和,以得到与该训练协同方的子模型对应的部分预测值Yi。
3.如权利要求2所述的方法,还包括:
在所述第一特征矩阵X的行数不是偶数时,对所述第一特征矩阵X进行行维度补齐处理。
4.如权利要求1所述的方法,其中,基于所确定出的预测差值和所述特征样本集,确定模型更新量包括:
计算所述特征样本集和所确定出的预测差值之间的乘积,作为所述模型更新量。
5.如权利要求4所述的方法,其中,基于所述训练发起方的当前子模型以及对应的部分模型更新量来更新所述训练发起方的当前子模型包括:按照以下等式更新所述训练发起方处的当前子模型
Wn+1=Wn-α·tmpi
其中,Wn+1表示所述训练发起方处的更新后的子模型,Wn表示所述训练发起方处的当前子模型,α表示学习率,以及tmpi表示与所述训练发起方对应的部分模型更新量。
6.如权利要求1所述的方法,其中,所述训练发起方和所述训练协同方是由所述多个训练参与方协商确定的。
7.如权利要求1到6中任一所述的方法,其中,所述预定条件包括:
预定迭代次数;或者
所确定出的预测差值位于预定范围内。
8.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法由训练协同方执行,所述方法包括:
执行下述迭代过程,直到满足预定条件:
基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;
从所述训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在所述训练发起方处对模型更新量进行分割后得到的所述第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在所述训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及所述特征样本集确定出的;以及
基于所述训练协同方的当前子模型以及所接收的部分模型更新量来更新所述训练协同方的当前子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一训练迭代过程的当前子模型,
其中,所述特征样本集使用第一特征矩阵X表示,以及所述各个训练参与方的子模型和对应的部分预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示,
基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值包括:
计算所述训练发起方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与所述训练发起方的子模型对应的部分预测值;
使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值;以及
对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。
9.如权利要求8所述的方法,其中,使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,获取与各个训练协同方的子模型对应的部分预测值包括:
生成随机权重子矩阵Wi1
对所述第一权重子矩阵Wi和所述随机权重子矩阵Wi1进行求和,以得到第二权重子矩阵Wi2
将所述随机权重子矩阵Wi1的奇数列子矩阵Wi1_o加上所述随机权重子矩阵Wi1的偶数行子矩阵Wi1_e而得到第三权重子矩阵Wi3
将所生成的第二权重子矩阵Wi2和第三权重子矩阵Wi3发送给训练发起方,以及从所述训练发起方接收第二特征矩阵X2和第三特征矩阵X3,所述第二特征矩阵X2是通过将随机特征矩阵X1减去所述第一特征矩阵X而得到,所述随机特征矩阵X1是在所述训练发起方处随机生成的,所述第三特征矩阵X3是通过将随机特征矩阵X1的偶数行子矩阵X1_e减去随机特征矩阵X1的奇数行子矩阵X1_o而得到;
基于等式Y2=(Wi+2*Wi1)*X2+(Wi3+Wi1_o)*X3进行矩阵计算,以得到第二矩阵乘积Y2,并将所述第二矩阵乘积Y2发送给所述训练发起方;
从所述训练发起方接收第一矩阵乘积Y1,所述第一矩阵乘积Y1是在所述训练发起方处基于等式Y1=Wi2*(2*X-X1)-Wi3*(X3+X1_e)计算出的;
对所述第一矩阵乘积Y1和所述第二矩阵乘积Y2进行求和,以得到与该训练协同方的子模型对应的部分预测值Yi。
10.如权利要求8所述的方法,还包括:
在所述第一权重子矩阵Wi的列数不是偶数时,对所述第一权重子矩阵Wi进行列维度补齐处理。
11.如权利要求8所述的方法,其中,基于所述训练协同方的当前子模型以及所接收的部分预测差值与所述特征样本集之积来更新所述训练协同方处的当前子模型包括:按照以下等式更新所述训练协同方的当前子模型
Wn+1=Wn-α·X·ei
其中,Wn+1表示所述训练协同方处的更新后的子模型,Wn表示所述训练协同方处的当前子模型,α表示学习率,X表示所述特征样本集,以及ei表示所述训练协同方处的部分预测差值。
12.如权利要求8所述的方法,其中,所述训练发起方和所述训练协同方是由所述多个训练参与方协商确定的。
13.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的方法,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述方法包括:
执行下述迭代过程,直到满足预定条件:
基于所述各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;
在所述训练发起方处,确定所述特征样本集的当前预测值与对应的标记值之间的预测差值,基于所确定出的预测差值与所述特征样本集确定模型更新量,将所确定出的模型更新量分割为所述第一数目个部分模型更新量,并且将第二数目个部分模型更新量中的每个分别发送给所述各个训练协同方,所述第二数目等于所述第一数目减一;以及
在所述各个训练参与方处,基于该训练参与方的当前子模型以及所接收的部分模型更新量来更新该训练参与方处的当前子模型,其中,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型,
其中,所述特征样本集使用第一特征矩阵X表示,以及所述各个训练参与方的子模型和对应的部分预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示,以及
基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值包括:
计算所述训练发起方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与所述训练发起方的子模型对应的部分预测值;
使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值;以及
对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。
14.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述装置位于所述训练发起方处,所述装置包括:
预测值获取单元,被配置为基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;
预测差值确定单元,被配置为确定所述特征样本集的当前预测值与对应的标记值之间的预测差值;
模型更新量确定单元,被配置为基于所确定出的预测差值和所述特征样本集,确定模型更新量;
模型更新量分割单元,被配置为将所确定出的模型更新量分割为所述第一数目个部分模型更新量;
模型更新量发送单元,被配置为将第二数目个部分模型更新量中的每个分别发送给对应的训练协同方,所述第二数目等于所述第一数目减一;以及
模型更新单元,被配置为基于所述训练发起方的当前子模型以及对应的部分模型更新量来更新所述训练发起方处的子模型,
其中,所述预测值获取单元、所述预测差值确定单元、所述模型更新量确定单元、所述模型更新量分割单元、所述模型更新量发送单元以及所述模型更新单元被配置为循环执行操作,直到满足预定条件,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一迭代过程的当前子模型,
其中,所述特征样本集使用第一特征矩阵X表示,以及所述各个训练参与方的子模型和对应的部分预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示,以及
所述预测值获取单元包括:
第一计算模块,被配置为计算所述训练发起方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与所述训练发起方的子模型对应的部分预测值;
第二计算模块,被配置为使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值;以及
求和模块,被配置为对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。
15.如权利要求14所述的装置,其中,所述预测值获取单元还包括:
行维度补齐模块,被配置为在所述第一特征矩阵X的行数不是偶数时,对所述第一特征矩阵X进行行维度补齐处理。
16.如权利要求14所述的装置,其中,所述模型更新单元被配置为:按照以下等式更新所述训练发起方处的当前子模型
Wn+1=Wn-α·tmpi
其中,Wn+1表示所述训练发起方处的更新后的子模型,Wn表示所述训练发起方处的当前子模型,α表示学习率,以及tmpi表示与所述训练发起方对应的部分模型更新量。
17.如权利要求14到16中任一所述的装置,还包括:
协商单元,被配置为在所述多个训练参与方之间协商确定出所述训练发起方和所述训练协同方。
18.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的装置,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述装置位于训练协同方处,所述装置包括:
预测值获取单元,被配置为基于各个训练参与方的当前子模型以及所述训练发起方的特征样本集,使用无可信初始化方秘密共享矩阵乘法来获得所述线性/逻辑回归模型针对所述特征样本集的当前预测值;
模型更新量接收单元,被配置为从所述训练发起方接收对应的部分模型更新量,其中,所述部分模型更新量是在所述训练发起方处对模型更新量进行分割后得到的所述第一数目个部分模型更新量中的一个部分模型更新量,所述模型更新量是在所述训练发起方处基于所确定出的当前预测值和对应的标记值之间的预测差值以及所述特征样本集确定出的;以及
模型更新单元,被配置为基于所述训练协同方的当前子模型以及所接收的部分模型更新量来更新所述训练协同方的子模型,
其中,所述预测值获取单元、所述模型更新量接收单元以及所述模型更新单元被配置为循环执行操作,直到满足预定条件,在迭代过程未结束时,所述更新后的各个训练参与方的子模型被用作下一训练迭代过程的当前子模型,
其中,所述特征样本集使用第一特征矩阵X表示,以及所述训练协同方的子模型和对应的部分预测值分别使用第一权重子矩阵Wi和预测值矩阵Yi来表示,
所述预测值获取单元被配置为:
计算所述训练发起方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与所述训练发起方的子模型对应的部分预测值;
使用无可信初始化方秘密共享矩阵乘法来计算各个训练协同方的第一权重子矩阵与所述第一特征矩阵的矩阵乘积,以得到与各个训练协同方的子模型对应的部分预测值;以及
对所得到的各个训练参与方的子模型所对应的部分预测值进行求和,以得到所述线性/逻辑回归模型针对所述特征样本集的当前预测值。
19.如权利要求18所述的装置,其中,所述预测值获取单元包括:
随机权重子矩阵生成模块,被配置为生成随机权重子矩阵Wi1
第二权重子矩阵生成模块,被配置为对所述第一权重子矩阵Wi和所述随机权重子矩阵Wi1进行求和,以得到第二权重子矩阵Wi2
第三权重子矩阵生成模块,被配置为将所述随机权重子矩阵Wi1的奇数列子矩阵Wi1_o加上所述随机权重子矩阵Wi1的偶数行子矩阵Wi1_e而得到第三权重子矩阵Wi3
矩阵发送/接收模块,被配置为将所生成的第二权重子矩阵Wi2和第三权重子矩阵Wi3发送给训练发起方,以及从所述训练发起方接收第二特征矩阵X2和第三特征矩阵X3,所述第二特征矩阵X2是通过将随机特征矩阵X1减去所述第一特征矩阵X而得到,所述随机特征矩阵X1是在所述训练发起方处随机生成的,所述第三特征矩阵X3是通过将随机特征矩阵X1的偶数行子矩阵X1_e减去随机特征矩阵X1的奇数行子矩阵X1_o而得到;
矩阵乘积计算模块,被配置为基于等式Y2=(Wi+2*Wi1)*X2+(Wi3+Wi1_o)*X3进行矩阵计算,以得到第二矩阵乘积Y2;
矩阵乘积发送/接收模块,被配置为将所述第二矩阵乘积Y2发送给所述训练发起方,以及从所述训练发起方接收第一矩阵乘积Y1,所述第一矩阵乘积Y1是在所述训练发起方处基于等式Y1=Wi2*(2*X-X1)-Wi3*(X3+X1_e)计算出的;
部分预测值计算模块,被配置为对所述第一矩阵乘积Y1和所述第二矩阵乘积Y2进行求和,以得到与该训练协同方的子模型对应的部分预测值Yi。
20.如权利要求19所述的装置,其中,其中,所述预测值获取单元还包括:
列维度补齐模块,被配置为在所述第一权重子矩阵Wi的列数不是偶数时,对所述第一权重子矩阵Wi进行列维度补齐处理。
21.如权利要求18所述的装置,其中,基于所述训练协同方的当前子模型以及所接收的部分预测差值与所述特征样本集之积来更新所述训练协同方处的当前子模型包括:按照以下等式更新所述训练协同方的当前子模型
Wn+1=Wn-α·X·ei
其中,Wn+1表示所述训练协同方处的更新后的子模型,Wn表示所述训练协同方处的当前子模型,α表示学习率,X表示所述特征样本集,以及ei表示所述训练协同方处的部分预测差值。
22.如权利要求18到21中任一所述的装置,还包括:
协商单元,被配置为在所述多个训练参与方之间协商确定出所述训练发起方和所述训练协同方。
23.一种用于经由多个训练参与方来协同训练线性/逻辑回归模型的系统,所述线性/逻辑回归模型由第一数目个子模型组成,每个训练参与方具有一个子模型,所述第一数目等于所述训练参与方的数目,所述训练参与方包括训练发起方和至少一个训练协同方,所述系统包括:
训练发起方设备,包括如权利要求14到17中任一所述的装置;以及
至少一个训练协同方设备,每个训练协同方设备包括如权利要求18到22中任一所述的装置。
24.一种计算设备,包括:
至少一个处理器,以及
与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到7中任一所述的方法。
25.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到7中任一所述的方法。
26.一种计算设备,包括:
至少一个处理器,以及
与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求8到12中任一所述的方法。
27.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求8到12中任一所述的方法。
CN201910600330.7A 2019-07-04 2019-07-04 模型训练方法、装置及系统 Active CN112183564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910600330.7A CN112183564B (zh) 2019-07-04 2019-07-04 模型训练方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910600330.7A CN112183564B (zh) 2019-07-04 2019-07-04 模型训练方法、装置及系统

Publications (2)

Publication Number Publication Date
CN112183564A CN112183564A (zh) 2021-01-05
CN112183564B true CN112183564B (zh) 2023-08-11

Family

ID=73915196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910600330.7A Active CN112183564B (zh) 2019-07-04 2019-07-04 模型训练方法、装置及系统

Country Status (1)

Country Link
CN (1) CN112183564B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181980A1 (ja) * 2015-05-12 2016-11-17 日本電信電話株式会社 秘密分散方法、秘密分散システム、分散装置、およびプログラム
CN109214436A (zh) * 2018-08-22 2019-01-15 阿里巴巴集团控股有限公司 一种针对目标场景的预测模型训练方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182150A (ja) * 2009-02-06 2010-08-19 Seiko Epson Corp 顔の特徴部位の座標位置を検出する画像処理装置
US8433925B2 (en) * 2009-09-04 2013-04-30 Gradiant Cryptographic system for performing secure computations and signal processing directly on encrypted data in untrusted environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181980A1 (ja) * 2015-05-12 2016-11-17 日本電信電話株式会社 秘密分散方法、秘密分散システム、分散装置、およびプログラム
CN109214436A (zh) * 2018-08-22 2019-01-15 阿里巴巴集团控股有限公司 一种针对目标场景的预测模型训练方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于HBase的多分类逻辑回归算法研究;刘黎志 等;《计算机应用研究》;133-136 *

Also Published As

Publication number Publication date
CN112183564A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN111523673B (zh) 模型训练方法、装置及系统
WO2021164365A1 (zh) 图神经网络模型训练方法、装置及系统
US11816226B2 (en) Secure data processing transactions
CN111523556B (zh) 模型训练方法、装置及系统
WO2021103901A1 (zh) 基于多方安全计算的神经网络模型训练及预测方法、装置
CN111062487B (zh) 基于数据隐私保护的机器学习模型特征筛选方法及装置
CN111061963B (zh) 基于多方安全计算的机器学习模型训练及预测方法、装置
CN113239404B (zh) 一种基于差分隐私和混沌加密的联邦学习方法
CN111079939B (zh) 基于数据隐私保护的机器学习模型特征筛选方法及装置
CN106487503B (zh) 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法
CN111523674B (zh) 模型训练方法、装置及系统
US20220092414A1 (en) Method, apparatus, and system for training neural network model
CN111738438B (zh) 图神经网络模型训练方法、装置及系统
US20160226664A1 (en) Hypersphere-Based Multivariable Public Key Encryption/Decryption System and Method
CN111523134B (zh) 基于同态加密的模型训练方法、装置及系统
CN111523675B (zh) 模型训练方法、装置及系统
CN110929887B (zh) 逻辑回归模型训练方法、装置及系统
CN112183759B (zh) 模型训练方法、装置及系统
CN111737756B (zh) 经由两个数据拥有方进行的xgb模型预测方法、装置及系统
CN112183757B (zh) 模型训练方法、装置及系统
CN112183564B (zh) 模型训练方法、装置及系统
CN112183566B (zh) 模型训练方法、装置及系统
CN111738453B (zh) 基于样本加权的业务模型训练方法、装置及系统
CN115564447A (zh) 一种信用卡交易风险检测方法及装置
CN112183565B (zh) 模型训练方法、装置及系统

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