CN110942147B - 基于多方安全计算的神经网络模型训练及预测方法、装置 - Google Patents
基于多方安全计算的神经网络模型训练及预测方法、装置 Download PDFInfo
- Publication number
- CN110942147B CN110942147B CN201911195445.9A CN201911195445A CN110942147B CN 110942147 B CN110942147 B CN 110942147B CN 201911195445 A CN201911195445 A CN 201911195445A CN 110942147 B CN110942147 B CN 110942147B
- Authority
- CN
- China
- Prior art keywords
- model
- client
- neural network
- server
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供基于多方安全计算的神经网络模型训练方法、模型预测方法及装置。神经网络模型被分割为至少一个客户端模型和至少一个服务端模型,服务端模型部署在服务端,客户端模型部署在对应训练参与方的客户端。在每次循环时,训练样本数据被提供给神经网络模型来得到当前预测值和当前预测差值。在各个客户端模型,经由各个训练参与方使用各自的客户端子模型以及所接收的数据逐层进行多方安全计算。在各个服务端模型,使用在前客户端模型的计算结果逐层进行非多方安全计算。在循环未结束时,根据当前预测差值,通过反向传播来调整服务端模型和客户端子模型的各层模型参数。利用该方法,能够在确保隐私数据安全的情况下提高模型训练效率。
Description
技术领域
本说明书的实施例通常涉及计算机领域,更具体地,涉及基于多方安全计算的神经网络模型训练方法、模型预测方法及装置。
背景技术
对于公司或企业而言,数据是非常重要的资产,比如,用户数据和业务数据。用户数据例如可以包括用户身份数据等。业务数据例如可以包括在公司提供的业务应用上发生的业务数据,比如淘宝上的商品交易数据等。保护数据安全是公司或企业广泛关注的技术问题。
在公司或企业进行业务运营时,通常会需要使用机器学习模型来进行模型预测,以确定业务运营风险或者进行业务运营决策。神经网络模型是机器学习领域广泛使用的机器学习模型。在很多情况下,神经网络模型需要多个模型训练参与方来协同进行模型训练,多个模型训练参与方(例如,电子商务公司、快递公司和银行)各自拥有训练神经网络模型所使用的训练数据中的部分数据。该多个模型训练参与方希望共同使用彼此的数据来统一训练神经网络模型,但又不想把各自的隐私数据提供给其它各个模型训练参与方以防止自己的隐私数据泄露。
面对这种情况,提出了能够保护隐私数据安全的机器学习模型训练方法,其能够在保证多个模型训练参与方的各自隐私数据安全的情况下,协同该多个模型训练参与方来训练神经网络模型,以供该多个模型训练参与方使用。
发明内容
鉴于上述问题,本说明书的实施例提供了一种基于多方安全计算的神经网络模型训练方法、模型预测方法及装置,其能够在保证多个训练参与方的各自隐私数据安全的情况下提高模型训练效率。
根据本说明书的实施例的一个方面,提供一种基于多方安全计算的神经网络模型训练方法,其中,所述神经网络模型利用第一数目个训练参与方协同训练,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,所述至少一个服务端模型部署在服务端,每个客户端子模型部署在对应的训练参与方的客户端,所述方法包括:执行下述循环过程,直到满足循环结束条件:将训练样本数据提供给当前神经网络模型,以经由各个当前客户端模型和各个当前服务端模型配合计算来得到所述当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由各个训练参与方,使用各自的当前客户端子模型以及所述训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果;基于所述当前预测值和样本标记值,确定当前预测差值;以及在不满足所述循环结束条件时,根据所述当前预测差值,通过反向传播来逐层调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,所述调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型。
可选地,在上述方面的一个示例中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
可选地,在上述方面的一个示例中,所述客户端模型所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型和单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,以及所述服务端模型包括输出层以及第K+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第N隐层,以及所述第二客户端模型包括输出层。
可选地,在上述方面的一个示例中,所述当前预测差值的确定过程可以在所述服务端执行或者在拥有样本标记值的训练参与方的客户端执行。
可选地,在上述方面的一个示例中,所述循环结束条件可以包括:循环次数达到预定次数;或者当前预测差值在预定差值范围内。
可选地,在上述方面的一个示例中,所述多方安全计算可以包括秘密共享、混淆电路和同态加密中的一种。
可选地,在上述方面的一个示例中,在所述服务端处的模型计算可以使用TensorFlow或Pytorch技术实现。
可选地,在上述方面的一个示例中,所述训练样本数据可以包括基于图像数据、语音数据或文本数据的训练样本数据,或者,所述训练样本数据可以包括用户特征数据。
根据本说明书的实施例的另一方面,提供一种基于神经网络模型的模型预测方法,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,所述至少一个服务端模型部署在服务端,每个客户端子模型部署在第一数目个模型拥有方中的对应模型拥有方的客户端,所述模型预测方法包括:接收待预测数据;以及将所述待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到所述神经网络模型的预测值,其中,在各个客户端模型,经由各个模型拥有方,使用各自的客户端子模型以及所述待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果。
可选地,在上述方面的一个示例中,所述待预测数据可以包括图像数据、语音数据或文本数据。或者,所述待预测数据可以包括用户特征数据。
根据本说明书的实施例的另一方面,提供一种基于多方安全计算的神经网络模型训练装置,其中,所述神经网络模型利用第一数目个训练参与方协同训练,其中,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,所述至少一个服务端模型部署在服务端,每个客户端子模型部署在对应的训练参与方的客户端,所述神经网络模型训练装置包括:模型预测单元,将训练样本数据提供给当前神经网络模型,以经由各个当前客户端模型和各个当前服务端模型配合计算来得到所述当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由各个训练参与方,使用各自的当前客户端子模型以及所述训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果;预测差值确定单元,基于所述当前预测值和样本标记值,确定当前预测差值;以及模型调整单元,在不满足循环结束条件时,根据所述当前预测差值,通过反向传播来逐层调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,所述调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型,其中,所述模型预测单元、所述预测差值确定单元和所述模型调整单元循环执行操作,直到满足循环结束条件。
可选地,在上述方面的一个示例中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
可选地,在上述方面的一个示例中,所述客户端模型所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型和单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,以及所述服务端模型包括输出层以及第K+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述预测差值确定单元可以设置在服务端处或者客户端处。
根据本说明书的实施例的另一方面,提供一种基于神经网络模型的模型预测装置,其中,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,所述客户端模型中的第一客户端模型至少包括输入层,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,所述至少一个服务端模型部署在服务端处,每个客户端子模型部署在第一数目个模型拥有方中的对应模型拥有方的客户端处,所述模型预测装置包括:数据接收单元,接收待预测数据;模型预测单元,将所述待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到所述神经网络模型的预测值,其中,在各个客户端模型,经由各个模型拥有方,使用各自的客户端子模型以及所述待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果。
根据本说明书的实施例的另一方面,提供一种电子设备,包括:一个或多个处理器,以及与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的神经网络模型训练方法。
根据本说明书的实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的神经网络模型训练方法。
根据本说明书的实施例的另一方面,提供一种电子设备,包括:一个或多个处理器,以及与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的模型预测方法。
根据本说明书的实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的模型预测方法。
附图说明
通过参照下面的附图,可以实现对于本说明书的实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了神经网络模型的一个示例的示意图;
图2示出了基于多方安全计算的神经网络模型训练方法的一个示例的示意图;
图3示出了根据本说明书的实施例的神经网络模型的一个分割示例的示意图;
图4A-4D示出了根据本说明书的实施例的经过分割后的客户端子模型以及服务端模型的示例示意图;
图5示出了根据本说明书的实施例的基于多方安全计算的神经网络模型训练方法的一个示例的流程图;
图6A示出了根据本公开的实施例的经过水平切分的训练样本数据的示例的示意图;
图6B示出了根据本公开的实施例的经过垂直切分的训练样本数据的示例的示意图;
图7A示出了根据本说明书的实施例的神经网络模型的另一分割示例的示意图;
图7B示出了根据本说明书的实施例的神经网络模型的另一分割示例的示意图;
图8示出了根据本说明书的实施例的基于神经网络模型的模型预测方法的流程图;
图9示出了根据本说明书的实施例的模型训练装置的方框图;
图10示出了根据本说明书的实施例的模型预测装置的方框图;
图11示出了根据本说明书的实施例的用于实现基于多方安全计算的神经网络模型训练的电子设备的方框图;
图12示出了根据本说明书的实施例的用于实现基于神经网络模型的模型预测的电子设备的方框图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书的实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
图1示出了神经网络模型100的一个示例的示意图。
如图1所示,神经网络模型100包括输入层110、第一隐层120、第二隐层130、第三隐层140和输出层150。
输入层110包括3个输入节点N1、N2和N3以及偏置项b1。三个输入节点N1、N2和N3分别接收来自三个不同数据拥有方的数据。在本说明书中,术语“数据拥有方”与术语“模型拥有方”和“训练参与方”可以互换使用。第一隐层120包括2个隐层节点N4和N5以及偏置项b2。隐层节点N4和N5分别与输入层110的3个输入节点N1、N2和N3以及偏置项b1全连接。输入节点N1与隐层节点N4和N5之间的权重分别为W1,4和W1,5。输入节点N2与隐层节点N4和N5之间的权重分别为W2,4和W2,5。输入节点N3与隐层节点N4和N5之间的权重分别为W3,4和W3,5。
第二隐层130包括2个隐层节点N6和N7以及偏置项b3。隐层节点N6和N7分别与第一隐层120的2个隐层节点N4和N5以及偏置项b2全连接。隐层节点N4与隐层节点N6和N7之间的权重分别为W4,6和W4,7。隐层节点N5与隐层节点N6和N7之间的权重分别为W5,6和W5,7。
第三隐层140包括2个隐层节点N8和N9以及偏置项b4。隐层节点N8和N9分别与第二隐层130的2个隐层节点N6和N7以及偏置项b3全连接。隐层节点N6与隐层节点N8和N9之间的权重分别为W6,8和W6,9。隐层节点N7与隐层节点N8和N9之间的权重分别为W7,8和W7,9。
输出层150包括输出节点N10。输出节点N10与第三隐层140的2个隐层节点N8和N9以及偏置项b4全连接。隐层节点N8与输出节点N10之间的权重为W8,10。隐层节点N9与输出节点N10之间的权重为W9,10。
在图1中示出的神经网络模型中,权重W1,4、W1,5、W2,4、W2,5、W3,4、W3,5、W4,6、W4,7、W5,6、W5,7、W6,8、W6,9、W7,8、W7,9、W8,10和W9,10是神经网络模型的各层模型参数。在进行前馈计算时,输入层110的输入节点N1、N2和N3经过计算后得到第一隐层120的各个隐层节点N4和N5的输入Z1和Z2,其中,Z1=W1,4*X1+W2,4*X2+W3,4*X3+b1,以及Z2=W1,5*X1+W2,5*X2+W3,5*X3+b1。然后,分别对Z1和Z2进行激活函数处理,得到隐层节点N4和N5的输出a1和a2。按照上述方式逐层进行前馈计算,如图1中所示,最后得到神经网络模型的输出a7。
图2示出了基于多方安全计算的神经网络模型训练方法200的一个示例的示意图。在图2中示出的神经网络模型训练方法200中,以三个训练参与方Alice、Bob和Charlie(即,图1中的输入节点N1、N2和N3)为例来进行说明,其中,第一训练参与方Alice为训练发起方,即,使用Alice处的训练样本数据来进行训练。在图2中示出的方法中,在各个训练参与方Alice、Bob和Charlie处都具有神经网络模型的所有分层模型的模型结构,但是各个训练参与方的各层模型参数仅仅是神经网络模型的对应层模型参数的一部分,并且各个训练参与方的各层模型参数之和等于神经网络模型的对应层模型参数。
如图2所示,首先,在块210,第一训练参与方Alice、第二训练参与方Bob和Charlie初始化各自的神经网络子模型的子模型参数,以获得其子模型参数的初始值,并且将已执行训练循环次数t初始化为零。这里,假设循环结束条件为执行预定次数训练循环,例如,执行T次训练循环。
在如上初始化后,循环执行块220到块260的操作,直到满足循环结束条件。
具体地,在块220,基于各个训练参与方的当前子模型来执行多方安全计算,以获得待训练的神经网络模型针对训练样本数据的当前预测值~Y。
在得到当前预测值后,在块230,在第一训练参与方Alice处,确定当前预测值~Y与对应的标记值Y之间的预测差值e=Y-~Y。这里,e是一个列向量,Y是一个表示训练样本X的标记值的列向量,以及,~Y是表示训练样本X的当前预测值的列向量。如果训练样本X仅包含单个训练样本,则e、Y和~Y都是仅具有单个元素的列向量。如果训练样本X包含多个训练样本,则e、Y和~Y都是具有多个元素的列向量,其中,~Y中的每个元素是该多个训练样本中的对应训练样本的当前预测值,Y中的每个元素是该多个训练样本中的对应训练样本的标记值,以及e中的每个元素是该多个训练样本的对应训练样本的标记值与当前预测值的差值。
然后,在块240,将预测差值分别发送到第二训练参与方Bob和Charlie。
在块250,在各个训练参与方处,基于所确定的预测差值,通过反向传播来逐层调整各个训练参与方处的神经网络模型的各层模型参数。
接着,在块260,判断是否达到预定循环次数。如果未达到预定循环次数,则返回到块220的操作来执行下一训练循环过程,其中,各个训练参与方在当前循环过程所获得的更新后的当前子模型被用作下一训练循环过程的当前子模型。
如果达到预定循环次数,则各个训练参与方将各自的子模型参数的当前更新值,存储为其子模型参数的最终值,从而得到各自的训练后的子模型,然后流程结束。
这里要说明的是,可选地,训练循环过程的结束条件也可以是所确定出的预测差值位于预定范围内,例如,预测差值e中的各个元素ei之和小于预定阈值,或者预测差值e中的各个元素ei的均值小于预定阈值。在这种情况下,块260的操作在块230之后执行。如果满足循环结束条件,则流程结束。否则,执行块240和250的操作,然后返回到块220,执行下一循环。
在图2中示出的神经网络模型训练方法200中,在各个训练参与方处实现神经网络模型的所有分层的模型结构,并且各层计算都是采用多方安全计算的方式实现。在这种情况下,由于采用神经网络模型的各层计算都使用MPC进行,然而MPC的计算方式复杂并且计算效率不高,从而导致这种神经网络模型训练方式的效率低下。
鉴于上述,本说明书的实施例提出一种神经网络模型训练方法,在该神经网络模型训练方法中,神经网络模型被按照客户端模型与服务端模型间隔的方式分割为多个模型部分,一些模型部分部署在服务端(在下文中称为“服务端模型部分”),以及另一些模型部分部署在客户端(在下文中称为“客户端模型部分”),其中,服务端模型部分可以包括至少一个服务端模型,以及客户端模型部分可以包括至少一个客户端模型。而且,每个客户端端模型与神经网络模型的一个或多个分层结构对应。此外,每个客户端模型被分解为多个客户端子模型。对于每个客户端模型,在每个训练参与方(客户端)处都部署有一个客户端子模型,每个客户端子模型所包括的模型结构都相同,并且每个客户端子模型的各层模型参数是通过对神经网络模型中的对应分层结构的模型参数进行分割而得到的,即,所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层结构的模型参数。在进行模型训练时,在各个客户端模型,经由各个训练参与方协同来采用MPC方式进行模型计算,以及在各个服务端模型,采用非MPC方式来进行模型计算,例如,可以采用TensorFlow或Pytorch技术来进行模型计算。按照这种方式,由于仅仅部分神经网络模型采用MPC方式进行模型计算,剩余部分可以采用其他更快的非MPC方式进行模型计算,从而可以提高模型训练效率。此外,在进行神经网络模型分割时,可以将所涉及的模型计算与数据隐私保护无关的神经网络模型部分分割为服务端模型,从而可以保护数据隐私安全。
在本说明书的实施例中,神经网络模型所使用的训练样本数据可以包括基于图像数据、语音数据或文本数据的训练样本数据。相应地,神经网络模型可以应用于基于图像数据、语音数据或者文本数据的业务风险识别、业务分类或者业务决策等等。或者,神经网络模型所使用的训练样本数据可以包括用户特征数据。相应地,神经网络模型可以应用于基于用户特征数据的业务风险识别、业务分类、业务推荐或者业务决策等等。
在本说明书的实施例中,神经网络模型所使用的待预测数据可以包括图像数据、语音数据或文本数据。或者,神经网络模型所使用的待预测数据可以包括用户特征数据。
在本说明书的一个示例中,神经网络模型可以包括N个隐层,神经网络模型可以被分割为第一客户端模型和单个服务端模型,第一客户端模型包括输入层以及第一隐层到第K隐层,以及服务端模型包括输出层以及第K+1隐层到第N隐层。
图3示出了根据本说明书的实施例的神经网络模型100的一个分割示例的示意图。
如图3所示,神经网络模型100被从第二隐层140处分割为客户端模型和服务端模型。客户端模型包括输入层110、第一隐层120和第二隐层130。服务端模型包括第三隐层140和输出层150。
由于图3中示出了3个训练参与方,从而使得客户端模型被分解为3个客户端子模型,每个训练参与方上部署一个客户端子模型,并且在服务端上部署服务端模型。每个客户端子模型所包括的模型结构都相同,并且所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层节点的模型参数。具体地,输入层与第一隐层120之间的模型参数以及第一隐层120与第二隐层130之间的模型参数分别被分割为3个部分,每个客户端子模型拥有其中一部分。
图4A-4D示出了根据本说明书的实施例的经过分割后的客户端子模型以及服务端模型的示例示意图。其中,图4A-4C中示出的子模型参数与图3中的神经网络模型的模型参数之间的关系如下所示。
w1,4=w1,4 (1)+w1,4 (2)+w1,4 (3),w1,5=w1,5 (1)+w1,5 (2)+w1,5 (3),
w2,4=w2,4 (1)+w2,4 (2)+w2,4 (3),w2,5=w2,5 (1)+w2,5 (2)+w2,5 (3),
w3,4=w3,4 (1)+w3,4 (2)+w3,4 (3),w3,5=w3,5 (1)+w3,5 (2)+w3,5 (3),
w4,6=w4,6 (1)+w4,6 (2)+w4,6 (3),w4,7=w4,7 (1)+w4,7 (2)+w4,7 (3),
w5,6=w5,6 (1)+w5,6 (2)+w5,6 (3),w5,7=w5,7 (1)+w5,7 (2)+w5,7 (3)。
此外,如图4D所示,服务端模型的各层模型参数与神经网络模型的对应层的模型参数完全相同。这里要说明的是,图4A-4D中的神经网络模型分割对应于数据水平切分情形。在数据垂直切分的情况下,对于输入层,每个数据拥有方只有一个节点。在这种情况下,可以通过垂直-水平切换来将每个数据拥有方的一个节点变换为3个节点,从而按照图4A-4D中示出的神经网络模型分割方式来进行分割。
图5示出了根据本说明书的实施例的基于多方安全计算的神经网络模型训练方法500的一个示例的流程图。在图5中示出的神经网络模型训练方法500中,假设存在M(即,第一数目)个训练参与方。此外,图5中示出的神经网络模型分割方式是图3中的分割方式。这里,M个训练参与方可以是拥有神经网络模型训练所需数据的M个数据拥有方,即,每个数据拥有方拥有神经网络模型训练所需数据的部分数据。在本说明书的实施例中,M个数据拥有方所拥有的部分数据可以是经过水平切分的训练数据,或者可以是经过垂直切分的训练数据。
图6A示出了根据本说明书的实施例的经过水平切分的训练样本数据的示例的示意图。图6A中示出了2个数据方Alice和Bob,多个数据方也类似。每个数据方Alice和Bob拥有的训练样本子集中的每条训练样本是完整的,即,每条训练样本包括完整的特征数据(x)和标记数据(y)。比如,Alice拥有完整的训练样本(x0,y0)。
图6B示出了根据本说明书的实施例的经过垂直切分的训练样本数据的示例的示意图。图6B中示出了2个数据方Alice和Bob,多个数据方也类似。每个数据方Alice和Bob拥有训练样本集中的所有训练样本中的每条训练样本的部分训练子样本,对于每条训练样本,数据方Alice和Bob拥有的部分训练子样本组合在一起,可以构成该训练样本的完整内容。比如,假设某个训练样本的内容包括标签y0和属性特征则经过垂直切分后,训练参与方Alice拥有该训练样本的y0和以及训练参与方Bob拥有该训练样本的
回到图5,首先,在块510,初始化M个训练参与方的客户端处的客户端子模型以及服务端处的服务端模型。
接着,循环执行块520到块560的操作,直到满足循环结束条件。
具体地,在块520,将训练样本数据提供给M个训练参与方的客户端处的各个当前客户端子模型,逐层进行多方安全计算,以得到各个当前客户端子模型的计算结果。多方安全计算的具体实现过程可以参考本领域中的任何合适的多方安全计算实现方案。在本说明书中,多方安全计算可以包括秘密共享(Secret Sharing,SS)、混淆电路(GarbledCircuit,GC)和同态加密(Homomorphic Encryption,HE)中的一种。
在块530,将各个当前客户端子模型的计算结果提供给服务端的当前服务端模型来逐层计算,以得到神经网络模型的当前预测值。在服务端处执行的模型计算可以采用非MPC方式实现,例如,可以采用TensorFlow或者Pytorch技术来实现。这里要说明的是,各个当前客户端子模型的计算结果可以通过合并后提供给服务端的当前服务端子模型。即,a3=a3 (1)+a3 (2)+a3 (3)以及a4=a4 (1)+a4 (2)+a4 (3)。
在如上得到神经网络模型的当前预测值后,在块540,基于当前预测值和样本标记值,确定当前预测差值。
这里要说明的是,在一个示例中,所述当前预测差值的确定过程可以在服务端执行。在这种情况下,训练参与方所拥有的样本标记值需要传送到服务端。
可选地,在另一示例中,所述当前预测差值的确定过程可以在拥有样本标记值的训练参与方的客户端执行。在这种情况下,服务端所确定出的当前预测值被反馈回拥有样本标记值的训练参与方,然后在该训练参与方处确定当前预测差值。按照这种方式,无需将样本标记值发送给服务端,从而可以进一步保护训练参与方处的样本标记值的隐私。
接着,在块550,判断当前预测差值是否在预定差值范围内,例如,判断当前预测差值是否小于预定阈值。如果当前预测差值不在预定差值范围内,例如,当前预测差值不小于预定阈值,则在块560,根据当前预测差值,通过反向传播来逐层调整服务端模型和各个客户端子模型的各层模型参数,然后,返回到块520,执行下一循环过程,其中,所述调整后的服务端模型和各个客户端子模型充当下一循环过程的当前服务端模型和各个当前客户端子模型。
如果当前预测差值在预定差值范围内,例如,当前预测差值小于预定阈值,则训练过程结束。
此外,可选地,训练循环过程的结束条件也可以是达到预定循环次数。在这种情况下,块550的操作可以在块560的操作之后进行,即,在块540中确定出当前预测差值后,执行块560的操作后,然后判断是否达到预定循环次数。如果达到预定循环次数,则训练过程结束。如果未达到预定循环次数,则返回到块520,执行下一循环过程。
如上参照图3-图6A-6B描述了根据本说明书的实施例的神经网络模型训练方法。在图3中示出的示例中,客户端模型包括2层隐层。在本说明书的其它实施例中,客户端模型可以包括更多或更少的隐层,例如可以包括1个隐层或者多于2个隐层。在本说明书的实施例中,客户端模型所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
这里要说明的是,图5中描述的神经网络模型训练方法是针对图3中示出的神经网络模型分割方案的神经网络模型训练方法。在本说明书的其它实施例中,神经网络模型可以按照其他分割方案进行分割,如图7A和7B所示。
图7A示出了神经网络分割方案的另一示例示意图。如图7A所示,神经网络模型被分割为第一客户端模型、服务端模型和第二客户端模型。第一客户端模型包括输入层110和第一隐层120。服务端模型包括第二隐层130。第二客户端模型包括第三隐层140和输出层150。在图7A中示出的神经网络分割方案中,第一客户端模型和第二客户端模型中的每个可以采用与图4A-4C中类似的方式分割为3个客户端子模型。服务端模型与神经网络模型的对应分层模型相同。这里要说明的是,在各个训练参与方的客户端处都设置有第一客户端模型和第二客户端模型的对应客户端子模型。
针对图7A中示出的神经网络分割方案,在进行神经网络模型训练时,在每次循环过程中,首先,将训练样本数据提供给第一客户端模型中的各个当前第一客户端子模型,逐层进行多方安全计算,以得到各个当前第一客户端子模型的计算结果。然后,将各个当前第一客户端子模型的计算结果提供给服务端模型来逐层进行非多方安全计算,以得到服务端模型的计算结果。随后,将服务端模型的计算结果提供给第二客户端模型中的各个当前第二客户端子模型,逐层进行多方安全计算,以得到神经网络模型的当前预测结果。
图7B示出了神经网络分割方案的另一示例示意图。如图7B所示,神经网络模型被分割为至少一个客户端模型和至少一个服务端模型,例如,如图7B所示的第一客户端模型、第一服务端模型、第二客户端模型、第二服务模型和第三客户端模型。第一客户端模型包括输入层110和第一隐层120。第一服务端模型包括第二隐层130。第二客户端模型包括第三隐层140。第二服务端模型包括第四隐层150。第三客户端模型包括第五隐层160和输出层170。在图7B中示出的神经网络分割方案中,第一客户端模型、第二客户端模型和第三客户端模型中的每个可以采用与图4A-4C中类似的方式分割为3个客户端子模型。第一和第二服务端模型与神经网络模型的对应分层模型相同。这里要说明的是,在各个训练参与方的客户端处都设置有第一客户端模型、第二客户端模型和第三客户端模型的对应客户端子模型。
针对图7B中示出的神经网络分割方案,在进行神经网络模型训练时,在每次循环过程中,在各个当前客户端模型,经由各个训练参与方,使用各自的当前客户端子模型以及训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果。在各个当前服务端模型,使用在前的客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果。至少一个客户端模型和至少一个服务端模型配合计算来得出神经网络模型的当前预测值。
具体地,将训练样本数据提供给当前第一客户端模型中的各个当前第一客户端子模型,逐层进行多方安全计算,以得到各个当前第一客户端子模型的计算结果。然后,将各个当前第一客户端子模型的计算结果提供给当前第一服务端模型来逐层进行非多方安全计算,以得到当前第一服务端模型的计算结果。随后,将第一服务端模型的计算结果提供给当前第二客户端模型中的各个当前第二客户端子模型,逐层进行多方安全计算,以得到当前第二客户端模型的计算结果。接着,将各个当前第二客户端子模型的计算结果提供给当前第二服务端模型来逐层进行非多方安全计算,以得到当前第二服务端模型的计算结果。随后,将当前第二服务端模型的计算结果提供给当前第三客户端模型中的各个当前第三客户端子模型,逐层进行多方安全计算,以得到神经网络模型的当前预测结果。
此外,要说明的是,在本说明书的一个示例中,第一客户端模型可以包括部分隐层。在另一示例中,各个服务端模型可以至少包括部分隐层。
这里,要说明的是,在本说明书的实施例中,可以基于神经网络模型的各个分层模型的模型计算是否与数据隐私保护有关来进行神经网络模型分割,其中,与数据隐私保护有关的分层模型被分割到客户端模型,以及与数据隐私保护无关的分层模型被分割到服务端模型。此外,要说明的是,客户端模型也可以包括与数据隐私保护无关的分层模型。
在本说明书中,与数据隐私保护有关的模型计算可以是直接使用各个输入Xi或者输出Y的模型计算,例如,与输入层对应的模型计算或者与输出层对应的模型计算。与数据隐私保护无关的模型计算可以是无需使用各个输入Xi和输出Y的模型计算,例如,神经网络模型中的中间隐层。
利用本说明书的实施例,可以提供一种神经网络模型,该神经网络模型被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,每个客户端子模型部署在一个训练参与方的客户端,以及服务端模型部署在服务端。在进行模型训练时,将训练样本数据提供给神经网络模型,以经由各个训练参与方的客户端处的客户端模型和服务端的各个服务端模型来配合计算得出神经网络模型的当前预测值。其中,客户端模型中的模型计算采用MPC方式实现,以及服务端模型中的模型计算采用非MPC方式实现,从而可以减少执行多方安全计算的模型层数,由此提高模型训练速度,进而提升模型训练效率。
此外,根据本说明书的实施例的神经网络模型训练方法,仅仅与数据隐私保护无关的神经网络模型分层结构被分割到服务端模型,从而可以确保各个数据拥有方的数据隐私安全。
此外,根据本说明书的实施例的神经网络模型训练方案,客户端模型所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定和调整,由此可以在进行神经网络模型分割时折衷考虑模型训练的环境条件、数据安全需求以及模型训练效率。
此外,根据本说明书的实施例的神经网络模型训练方案,可以在拥有样本标记值的训练参与方的客户端执行当前预测差值的确定过程。按照这种方式,无需将样本标记值发送给服务端,从而可以进一步保护训练参与方处的样本标记值的隐私。
图8示出了根据本说明书的实施例的基于神经网络模型的模型预测方法800的流程图。在图8中示出的实施例中,神经网络模型包括N个隐层并且被分割为单个服务端模型和第一数目个客户端子模型,每个客户端子模型包括输入层以及第一隐层到第K隐层,服务端模型包括输出层以及第K+1隐层到第N隐层,服务端模型部署在服务端处,每个客户端子模型部署在一个模型拥有方的客户端处,每个客户端子模型具有相同的子模型结构,并且第一数目个客户端子模型共同构成所述神经网络模型的对应模型结构。
如图8所示,在块810,接收待预测数据。所述待预测数据可以是从任一模型拥有方处接收。
接着,在块820,将所接收的待预测数据提供给第一数目个模型拥有方的客户端处的各个当前客户端子模型来逐层进行多方安全计算,以得到各个当前客户端子模型的计算结果。
然后,在块830,将各个当前客户端子模型的计算结果提供给服务端的服务端模型来逐层非多方安全计算,以得到神经网络模型的模型预测结果。
同样,在神经网络模型按照其它分割方式进行模型分割时,可以按照对应的模型计算方案来对图8中示出的模型预测过程进行适应性修改。
图9示出了根据本说明书的实施例的模型训练装置900的方框图。如图9所示,模型训练装置900包括模型预测单元910、预测差值确定单元920和模型调整单元930。
模型预测单元910、预测差值确定单元920和模型调整单元930循环执行操作,直到满足循环结束条件。所述循环结束条件可以包括:循环次数达到预定次数;或者当前预测差值在预定差值范围内。
具体地,模型预测单元910被配置为将训练样本数据提供给当前神经网络模型,以经由各个当前客户端模型和各个当前服务端模型配合计算来得到当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由第一数目个训练参与方,使用各自的当前客户端子模型以及训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果。
在本说明书的一个示例中,模型预测单元910可以包括多方安全计算模块和服务端计算模块。多方安全计算模块被配置为针对各个当前客户端模型,经由第一数目个训练参与方,使用训练样本数据或者在前的当前服务端模型的计算结果以及各自的当前客户端子模型来逐层进行多方安全计算,以得到该当前客户端模型的计算结果。多方安全计算模块设置在客户端处。服务端计算模块被配置为针对各个服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果。服务端计算模块设置在服务端处。多方安全计算模块和服务端计算模块配合计算以得出神经网络模型的预测值。
预测差值确定单元920被配置基于当前预测值和样本标记值,确定当前预测差值。可选地,预测差值确定单元920可以设置在服务端处或者设置在客户端处。
模型调整单元930被配置为在不满足循环结束条件时,根据当前预测差值,通过反向传播来调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,所述调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型。模型调整单元930中的部分组件设置在客户端,以及其余组件设置在服务端。
图10示出了根据本说明书的实施例的模型预测装置1000的方框图。如图10所示,模型预测装置1000包括数据接收单元1010和模型预测单元1020。
数据接收单元1010被配置为接收待预测数据。所述待预测数据可以是从任一模型拥有方处接收。数据接收单元1010设置在各个模型拥有方的客户端。
模型预测单元1020被配置为将待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到神经网络模型的预测值,其中,在各个客户端模型,经由第一数目个模型拥有方,使用各自的客户端子模型以及待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果。
在本说明书的一个示例中,模型预测单元1020可以包括多方安全计算模块和服务端计算模块。多方安全计算模块被配置为针对各个客户端模型,经由第一数目个模型拥有方,使用待预测数据或者在前的服务端模型的计算结果以及各自的客户端子模型来逐层进行多方安全计算,以得到该客户端模型的计算结果。服务端计算模块被配置为针对各个服务端模型,使用在前的客户端模型的计算结果来逐层非多方安全计算,以得到该服务端模型的计算结果。多方安全计算模块和服务端计算模块配合计算以得出神经网络模型的预测值。多方安全计算模块设置在各个模型拥有方的客户端,以及服务端计算模块设置在服务端。
如上参照图1到图10,对根据本说明书的实施例的神经网络模型训练方法及模型训练装置、模型预测方法及模型预测装置的实施例进行了描述。上面的模型训练装置和模型预测装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
图11示出了根据本说明书的实施例的用于实现基于多方安全计算的神经网络模型训练的电子设备1100的结构框图。
如图11所示,电子设备1100可以包括至少一个处理器1110、存储器(例如,非易失性存储器)1120、内存1130、通信接口1140以及内部总线1160,并且至少一个处理器1110、存储器1120、内存1130和通信接口1140经由总线1160连接在一起。该至少一个处理器1110执行在计算机可读存储介质中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储有计算机可执行指令,其当执行时使得至少一个处理器1110:执行下述循环过程,直到满足循环结束条件:将训练样本数据提供给当前神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由第一数目个训练参与方,使用各自的当前客户端子模型以及训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果;基于当前预测值和样本标记值,确定当前预测差值;以及在不满足循环结束条件时,根据当前预测差值,通过反向传播来逐层调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,所述调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型。
应该理解的是,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1110执行在本说明书的各个实施例中如上结合图1-10描述的各种操作和功能。
图12示出了根据本说明书的实施例的用于实现基于神经网络模型的模型预测的电子设备1200的结构框图。
如图12所示,电子设备1200可以包括至少一个处理器1210、存储器(例如,非易失性存储器)1220、内存1230、通信接口1240以及内部总线1260,并且至少一个处理器1210、存储器1220、内存1230和通信接口1240经由总线1260连接在一起。该至少一个处理器1210执行在计算机可读存储介质中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储有计算机可执行指令,其当执行时使得至少一个处理器1210:接收待预测数据;以及将待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到神经网络模型的预测值,其中,在各个客户端模型,经由第一数目个模型拥有方,使用各自的客户端子模型以及待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果。
应该理解的是,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1210执行在本说明书的各个实施例中如上结合图1-10描述的各种操作和功能。
在本说明书的实施例中,电子设备1100/1200可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中如上结合图1-10描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (22)
1.一种基于多方安全计算的神经网络模型训练方法,其中,所述神经网络模型利用第一数目个训练参与方协同训练,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,并且所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层节点的模型参数,所述至少一个服务端模型部署在服务端,每个客户端子模型部署在对应的训练参与方的客户端,所述方法包括:
执行下述循环过程,直到满足循环结束条件:
将训练样本数据提供给当前神经网络模型,以经由各个当前客户端模型和各个当前服务端模型配合计算来得到所述当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由各个训练参与方,使用各自的当前客户端子模型以及所述训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果;
基于所述当前预测值和样本标记值,确定当前预测差值;以及
在不满足所述循环结束条件时,根据所述当前预测差值,通过反向传播来逐层调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,其中,调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型,
其中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
2.如权利要求1所述的神经网络模型训练方法,其中,所述客户端模型所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
3.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型和单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,以及所述服务端模型包括输出层以及第K+1隐层到第N隐层。
4.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
5.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第N隐层,以及所述第二客户端模型包括输出层。
6.如权利要求1所述的神经网络模型训练方法,其中,所述当前预测差值的确定过程在所述服务端执行或者在拥有所述样本标记值的训练参与方的客户端执行。
7.如权利要求1所述的神经网络模型训练方法,其中,所述循环结束条件包括:
循环次数达到预定次数;或者
当前预测差值在预定差值范围内。
8.如权利要求1所述的神经网络模型训练方法,其中,所述多方安全计算包括秘密共享、混淆电路和同态加密中的一种。
9.如权利要求1所述的神经网络模型训练方法,其中,在所述服务端处的模型计算使用TensorFlow或Pytorch技术实现。
10.如权利要求1到9中任一所述的神经网络模型训练方法,其中,所述训练样本数据包括基于图像数据、语音数据或文本数据的训练样本数据,或者所述训练样本数据包括用户特征数据。
11.一种基于神经网络模型的模型预测方法,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,并且所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层节点的模型参数,所述至少一个服务端模型部署在服务端处,每个客户端子模型部署在所述第一数目个模型拥有方中的对应模型拥有方的客户端处,所述模型预测方法包括:
接收待预测数据;以及
将所述待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到所述神经网络模型的预测值,
其中,在各个客户端模型,经由各个模型拥有方,使用各自的客户端子模型以及所述待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果,
其中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
12.如权利要求11所述的模型预测方法,其中,所述待预测数据包括图像数据、语音数据或文本数据,或者所述待预测数据包括用户特征数据。
13.一种基于多方安全计算的神经网络模型训练装置,其中,所述神经网络模型利用第一数目个训练参与方协同训练,其中,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,并且所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层节点的模型参数,所述至少一个服务端模型部署在服务端,每个客户端子模型部署在对应的训练参与方的客户端,所述神经网络模型训练装置包括:
模型预测单元,将训练样本数据提供给当前神经网络模型,以经由各个当前客户端模型和各个当前服务端模型配合计算来得到所述当前神经网络模型的当前预测值,其中,在各个当前客户端模型,经由各个训练参与方,使用各自的当前客户端子模型以及所述训练样本数据或者在前的当前服务端模型的计算结果来逐层进行多方安全计算,以得到该当前客户端模型的计算结果,以及在各个当前服务端模型,使用在前的当前客户端模型的计算结果来逐层进行非多方安全计算,以得到该当前服务端模型的计算结果;
预测差值确定单元,基于所述当前预测值和样本标记值,确定当前预测差值;以及
模型调整单元,在不满足循环结束条件时,根据所述当前预测差值,通过反向传播来逐层调整各个当前服务端模型和各个当前客户端子模型的各层模型参数,其中,调整后的各个服务端模型和各个客户端子模型充当下一循环过程的各个当前服务端模型和各个当前客户端子模型,
其中,所述模型预测单元、所述预测差值确定单元和所述模型调整单元循环执行操作,直到满足所述循环结束条件,
其中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
14.如权利要求13所述的神经网络模型训练装置,其中,所述客户端模型所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
15.如权利要求13所述的神经网络模型训练装置,其中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型和单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,以及所述服务端模型包括输出层以及第K+1隐层到第N隐层。
16.如权利要求13所述的神经网络模型训练装置,其中,所述神经网络模型包括N个隐层,所述神经网络模型被分割为第一客户端模型、单个服务端模型和第二客户端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
17.如权利要求13所述的神经网络模型训练装置,其中,所述预测差值确定单元设置在服务端处或者客户端处。
18.一种基于神经网络模型的模型预测装置,其中,所述神经网络模型包括多个隐层并且被按照客户端模型与服务端模型间隔的方式分割为至少一个客户端模型和至少一个服务端模型,每个客户端模型被分解为第一数目个客户端子模型,每个客户端子模型具有相同的子模型结构,并且所有客户端子模型的各个相同层节点的模型参数之和等于神经网络模型中的对应分层节点的模型参数,所述至少一个服务端模型部署在服务端处,每个客户端子模型部署在所述第一数目个模型拥有方中的对应模型拥有方的客户端处,所述模型预测装置包括:
数据接收单元,接收待预测数据;
模型预测单元,将所述待预测数据提供给神经网络模型,以经由各个客户端模型和各个服务端模型配合计算来得到所述神经网络模型的预测值,
其中,在各个客户端模型,经由各个模型拥有方,使用各自的客户端子模型以及所述待预测数据或者在前服务端模型的计算结果来逐层进行多方安全计算,以得到该客户端模型的计算结果,以及在各个服务端模型,使用在前客户端模型的计算结果来逐层进行非多方安全计算,以得到该服务端模型的计算结果,
其中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
19.一种电子设备,包括:
一个或多个处理器,以及
与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1到10中任一项所述的方法。
20.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到10中任一项所述的方法。
21.一种电子设备,包括:
一个或多个处理器,以及
与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求11或12所述的方法。
22.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求11或12所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911195445.9A CN110942147B (zh) | 2019-11-28 | 2019-11-28 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
PCT/CN2020/124137 WO2021103901A1 (zh) | 2019-11-28 | 2020-10-27 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911195445.9A CN110942147B (zh) | 2019-11-28 | 2019-11-28 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110942147A CN110942147A (zh) | 2020-03-31 |
CN110942147B true CN110942147B (zh) | 2021-04-20 |
Family
ID=69908295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911195445.9A Active CN110942147B (zh) | 2019-11-28 | 2019-11-28 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110942147B (zh) |
WO (1) | WO2021103901A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110942147B (zh) * | 2019-11-28 | 2021-04-20 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
CN111160573B (zh) * | 2020-04-01 | 2020-06-30 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法和装置 |
CN111461309B (zh) * | 2020-04-17 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 实现隐私保护的更新强化学习系统的方法及装置 |
CN111241570B (zh) * | 2020-04-24 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法和装置 |
CN111368983A (zh) * | 2020-05-15 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | 业务模型训练方法、装置及业务模型训练系统 |
JP7464118B2 (ja) * | 2020-05-26 | 2024-04-09 | 日本電信電話株式会社 | 分散深層学習システム |
CN112132270B (zh) * | 2020-11-24 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的神经网络模型训练方法、装置及系统 |
CN112507388B (zh) * | 2021-02-05 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的word2vec模型训练方法、装置及系统 |
CN112561085B (zh) * | 2021-02-20 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种基于多方安全计算的多分类模型训练方法和系统 |
CN113377625B (zh) * | 2021-07-22 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 针对多方联合业务预测进行数据监控的方法及装置 |
CN113378183B (zh) * | 2021-08-05 | 2023-11-10 | 好心情健康产业集团有限公司 | 基于多方安全计算的用户隐私保护方法、装置和系统 |
CN113780527A (zh) * | 2021-09-01 | 2021-12-10 | 浙江数秦科技有限公司 | 一种隐私计算方法 |
CN113760551A (zh) * | 2021-09-07 | 2021-12-07 | 百度在线网络技术(北京)有限公司 | 模型部署方法、数据处理方法、装置、电子设备及介质 |
CN113792338A (zh) * | 2021-09-09 | 2021-12-14 | 浙江数秦科技有限公司 | 一种基于神经网络模型的安全多方计算方法 |
CN117313869B (zh) * | 2023-10-30 | 2024-04-05 | 浙江大学 | 一种基于模型分割的大模型隐私保护推理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099085A1 (zh) * | 2016-11-29 | 2018-06-07 | 华为技术有限公司 | 一种神经网络模型的训练方法、装置及芯片 |
US10210860B1 (en) * | 2018-07-27 | 2019-02-19 | Deepgram, Inc. | Augmented generalized deep learning with special vocabulary |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4202782A1 (en) * | 2015-11-09 | 2023-06-28 | Google LLC | Training neural networks represented as computational graphs |
CN109308418B (zh) * | 2017-07-28 | 2021-09-24 | 创新先进技术有限公司 | 一种基于共享数据的模型训练方法及装置 |
US10599922B2 (en) * | 2018-01-25 | 2020-03-24 | X Development Llc | Fish biomass, shape, and size determination |
WO2019173075A1 (en) * | 2018-03-06 | 2019-09-12 | DinoplusAI Holdings Limited | Mission-critical ai processor with multi-layer fault tolerance support |
CN109284626A (zh) * | 2018-09-07 | 2019-01-29 | 中南大学 | 面向差分隐私保护的随机森林算法 |
CN109698822A (zh) * | 2018-11-28 | 2019-04-30 | 众安信息技术服务有限公司 | 基于公有区块链和加密神经网络的联合学习方法及系统 |
CN109784561A (zh) * | 2019-01-15 | 2019-05-21 | 北京科技大学 | 一种基于集成学习的浓密机底流浓度预测方法 |
CN110942147B (zh) * | 2019-11-28 | 2021-04-20 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
-
2019
- 2019-11-28 CN CN201911195445.9A patent/CN110942147B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/124137 patent/WO2021103901A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099085A1 (zh) * | 2016-11-29 | 2018-06-07 | 华为技术有限公司 | 一种神经网络模型的训练方法、装置及芯片 |
US10210860B1 (en) * | 2018-07-27 | 2019-02-19 | Deepgram, Inc. | Augmented generalized deep learning with special vocabulary |
Also Published As
Publication number | Publication date |
---|---|
WO2021103901A1 (zh) | 2021-06-03 |
CN110942147A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110942147B (zh) | 基于多方安全计算的神经网络模型训练及预测方法、装置 | |
CN111523673B (zh) | 模型训练方法、装置及系统 | |
CN110929870B (zh) | 图神经网络模型训练方法、装置及系统 | |
CN111061963B (zh) | 基于多方安全计算的机器学习模型训练及预测方法、装置 | |
CN111027715B (zh) | 基于蒙特卡洛的联邦学习模型训练方法及装置 | |
CN112052942B (zh) | 神经网络模型训练方法、装置及系统 | |
CN111062487B (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN111079939B (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN112132270B (zh) | 基于隐私保护的神经网络模型训练方法、装置及系统 | |
CN111738438B (zh) | 图神经网络模型训练方法、装置及系统 | |
CN111523556B (zh) | 模型训练方法、装置及系统 | |
CN110929887B (zh) | 逻辑回归模型训练方法、装置及系统 | |
CN111368983A (zh) | 业务模型训练方法、装置及业务模型训练系统 | |
CN111523674A (zh) | 模型训练方法、装置及系统 | |
CN111737756B (zh) | 经由两个数据拥有方进行的xgb模型预测方法、装置及系统 | |
CN112183757B (zh) | 模型训练方法、装置及系统 | |
CN112183759B (zh) | 模型训练方法、装置及系统 | |
CN111523675B (zh) | 模型训练方法、装置及系统 | |
CN111738453B (zh) | 基于样本加权的业务模型训练方法、装置及系统 | |
CN112966809B (zh) | 基于隐私保护的两方模型预测方法、装置及系统 | |
CN112183566B (zh) | 模型训练方法、装置及系统 | |
CN112183565B (zh) | 模型训练方法、装置及系统 | |
CN112183564A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026779 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |