CN112561085A - 一种基于多方安全计算的多分类模型训练方法和系统 - Google Patents

一种基于多方安全计算的多分类模型训练方法和系统 Download PDF

Info

Publication number
CN112561085A
CN112561085A CN202110192710.9A CN202110192710A CN112561085A CN 112561085 A CN112561085 A CN 112561085A CN 202110192710 A CN202110192710 A CN 202110192710A CN 112561085 A CN112561085 A CN 112561085A
Authority
CN
China
Prior art keywords
matrix
model parameter
product
fragment
activation
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.)
Granted
Application number
CN202110192710.9A
Other languages
English (en)
Other versions
CN112561085B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110192710.9A priority Critical patent/CN112561085B/zh
Publication of CN112561085A publication Critical patent/CN112561085A/zh
Application granted granted Critical
Publication of CN112561085B publication Critical patent/CN112561085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

本说明书实施例公开了一种基于多方安全计算的多分类模型训练方法和系统,以保护模型训练过程中双方数据的隐私。对于任一参与方,基于其持有的数据与其他计算方协同运算,分别获得第一乘积矩阵的分片、激活矩阵的分片、梯度矩阵的分片以及更新后的模型参数矩阵的分片。

Description

一种基于多方安全计算的多分类模型训练方法和系统
技术领域
本说明书实施例涉及隐私保护技术领域,特别涉及一种基于多方安全计算的多分类模型训练方法和系统。
背景技术
大数据时代存在非常多的数据孤岛。由于企业之间存在的竞争关系和企业对用户隐私保护的考虑,不同企业并不是完全的互相信任。在充分保护企业核心数据隐私的前提下,利用双方拥有的数据完成一些数据计算的需求非常迫切。
为此,本说明书实施例提出一种基于多方安全计算的多分类模型训练方法和系统,利用多方安全计算,在保护各个参与模型训练的计算方持有的数据隐私的前提下,完成多分类模型的训练。
发明内容
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练方法,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和标签矩阵;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数和训练样本的特征个数确定;所述方法包括:基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和特征矩阵,所述特征矩阵的行数与列数基于所述特征个数以及训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练系统,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和标签矩阵;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数和训练样本的特征个数确定;所述系统包括:第一乘积矩阵分片获得模块,用于基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和特征矩阵,所述特征矩阵的行数与列数基于所述特征个数以及训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;第一激活矩阵分片获得模块,用于基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;第一梯度矩阵分片获得模块,用于基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;第一模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述第一计算方执行的方法。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练方法,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和特征矩阵;所述特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述模型参数矩阵的行数与列数基于类别个数和所述特征个数确定;所述方法包括:基于模型参数矩阵的第二分片和所述特征矩阵,与其他计算方协同运算,获得第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和标签矩阵,所述标签矩阵的行数与列数基于所述类别个数和所述训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练系统,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和特征矩阵;所述特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述模型参数矩阵的行数与列数基于类别个数和所述特征个数确定;所述系统包括:第二乘积矩阵分片获得模块,用于基于所述特征矩阵和模型参数矩阵的第二分片,与其他计算方协同运算,获得第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和标签矩阵,所述标签矩阵的行数与列数基于所述类别个数和所述训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;第二激活矩阵分片获得模块,用于基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;第二梯度矩阵分片获得模块,用于基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;第二模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述第二计算方执行的方法。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练方法,应用于任一参与方,所述参与方持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片;所述特征矩阵的行数与列数基于所述特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数以及训练样本的特征个数确定;所述方法包括:基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积中对位元素的激活函数值;基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练系统,应用于任一参与方,所述参与方持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片;所述特征矩阵的行数与列数基于所述特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数以及训练样本的特征个数确定;所述系统包括:第三乘积矩阵分片获得模块,用于基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;第三激活矩阵分片获得模块,用于基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积中对位元素的激活函数值;第三梯度矩阵分片获得模块,用于基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;第三模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
本说明书实施例的一个方面提供一种基于多方安全计算的多分类模型训练装置,应用于任一参与方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述参与方执行的方法。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的应用场景示意图;
图2是根据本说明书的一些实施例所示的第一计算方和第二计算方实现多方安全乘法协议的交互图;
图3是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练方法的流程图;
图4是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练方法的流程图;
图5是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图;
图6是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图;
图7是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的应用场景示意图。如图1所示,基于多方安全计算的多分类模型训练系统100可以包括第一计算方110、第二计算方120、第三方服务器130以及网络140。
第一计算方110和第二计算方120为共同训练多分类模型的参与方。第一计算方110持有多个训练样本中每个的标签。第二计算方120持有多个训练样本中每个的至少一个特征的特征值。可以理解的,第一计算方110持有的标签属于第一计算方110的隐私数据,第二计算方120持有的特征及特征值属于第二计算方120的隐私数据。
在基于多方进行多分类模型训练的过程中,第一计算方110和第二计算方120都不希望向对方暴露自己的隐私数据。为了保护各方的数据隐私,训练过程中涉及的多个计算环节的输入(例如,模型参数矩阵)、输出(例如,第一乘积矩阵、激活矩阵、梯度矩阵、以及更新后的模型参数矩阵)均以分片形式保存于各方的设备中,第一计算方110和第二计算方120各执一片。
为了保证在训练过程的各个计算环节中,同一个训练样本的标签和其至少一个特征的特征值具备对应关系,以使得两方分别基于相同的训练样本的标签和特征值执行相应的计算环节。因此,可以在执行计算环节之前,将第一计算方110持有的多个训练样本的标签、和第二计算方120持有的多个训练样本的特征及特征值进行对齐处理。
在一些实施例中,第一计算方110和第二计算方120各自还可以持有ID列,以基于所述ID列进行对齐处理;所述ID列反映多个训练样本的标识。即,同一个训练样本具有唯一的ID。各计算方可以在进行多方安全计算前,基于样本对ID达成共识,确保相同的训练样本的特征数据和标签数据具有相同的ID,以及对ID的排列顺序达成共识。第一计算方110可以通过所述ID列对多个训练样本中每个的标签进行排列生成标签矩阵,第二计算方120可以通过所述ID列对多个训练样本中每个的至少一个特征值进行排列生成特征矩阵。由于ID列指定了训练样本的排列顺序,通过ID列对各个训练样本的标签、和特征值进行排列,保证了标签矩阵和特征矩阵中同序号的行或列是属于相同的训练样本。
第一计算方110和第二计算方120可以是各类具有信息收发功能的计算设备。例如,智能电话、膝上型计算机、台式计算机、服务器等。
在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
第三方服务器130可协助第一计算方110和第二计算方120完成基于多方安全计算的模型训练。例如,第三方服务器130可以在第一计算方110与第二计算方120进行多方安全乘法计算时,向双方提供随机数。关于多方安全乘法计算的更多内容可以参见图2的相关说明。
网络140连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
多方安全计算的模型训练过程中涉及到的多方协同运算大多以多方安全乘法协议为基础。多方安全乘法协议可以描述为,当乘积的一个因子属于第一计算方110的隐私数据、另一个因子属于第二计算方120的隐私数据时,任一方不能直接计算该乘积,可按照多方安全乘法协议与另一方交互,以基于各方的隐私数据计算得到该乘积的一个分片。即,第一计算方110和第二计算方120各自获得该乘积的一个分片。
为了更清楚的阐述多方安全乘法协议,以下将结合图2进行说明。如图2所示,假设第一计算方110持有乘积因子a,第二计算方120持有乘积因子b,需要计算乘积a*b。如前所述,乘积因子a和b分别为第一计算方110和第二计算方120的隐私数据,任一方都不愿另一方知晓其隐私数据,此时,可以借助第三方服务器130分别向第一计算方110和第二计算方120下发随机数,以协助两方分别计算得到乘积a*b的分片。在一些实施例中,随机数可以是数字、向量或矩阵。
如图2所示,第三方可以生成两个随机数u、v,计算u、v的乘积,并将乘积拆分为z0和z1两个加性分片,即z0+z1=uv。第一计算方110得到第三方服务器130下发的随机数u和
Figure DEST_PATH_IMAGE001
,第二计算方120得到第三方服务器130下发的随机数v和
Figure DEST_PATH_IMAGE002
由于需要计算乘积a*b,对于第一计算方110而言,第一计算方110只有乘积因子a,没有第二计算方120持有的乘积因子b,此时,第二计算方120为了不泄露乘积因子b,可以将乘积因子b与随机数v的差值f发送给第一计算方110。同理,第一计算方110可以将乘积因子a与随机数u的差值e发送给第二计算方120。可以理解的,由于是将差值f和差值e分别发送给第一计算方110和第二计算方120,第一计算方110并不知晓乘积因子b的值,第二计算方120也并不知晓乘积因子a的值,从而避免了乘积因子a和b的泄露。
进一步地,第一计算方110可以基于自身持有的随机数u和
Figure 438870DEST_PATH_IMAGE001
、以及接收的差值f计算得到
Figure DEST_PATH_IMAGE003
;其中,
Figure DEST_PATH_IMAGE004
。第二计算方120可以基于自身持有的随机数v和
Figure 169059DEST_PATH_IMAGE002
、以及接收的差值e计算得到
Figure DEST_PATH_IMAGE005
;其中,
Figure DEST_PATH_IMAGE006
。可以理解的,
Figure 824163DEST_PATH_IMAGE003
Figure 281689DEST_PATH_IMAGE005
分别为乘积a*b的一个分片,进而基于
Figure 897392DEST_PATH_IMAGE003
+
Figure 719854DEST_PATH_IMAGE005
可以得到完整的乘积a*b的值。具体的,可以证明:
Figure 49204DEST_PATH_IMAGE003
+
Figure 248105DEST_PATH_IMAGE005
= u*f+
Figure 730033DEST_PATH_IMAGE001
+ e*b+
Figure 723396DEST_PATH_IMAGE002
=u*(b-v)+(a-u)*b+
Figure 540043DEST_PATH_IMAGE001
+
Figure 277055DEST_PATH_IMAGE002
=u*b-u*v+a*b-u*b+u*v= a*b。以上即为多方安全乘法协议的示例性计算过程,基于多方安全乘法协议,可以在各参与方不暴露其隐私数据的情况下,计算与其他参与方的隐私数据的乘积。基于此,多方协同完成矩阵乘法、多项式等安全计算,都可以分解为最基础的多方安全乘法问题,进而完成多方矩阵乘法、多项式等安全计算。
图3是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练方法的流程图。
如图3所示,该流程可以包括步骤310a、步骤320a、步骤330a以及步骤340a;其中,步骤310a至步骤340a应用于第一计算方110,即由第一计算方110执行。在一些实施例中,步骤310a至步骤340a可以是多次模型参数迭代更新中的一次更新。
在一些实施例中,第一计算方可以是需要使用数据源训练多分类模型的商户的计算设备。对应的,第二计算方可以是持有数据源的商户的计算设备。在一些实施例中,第二计算方可以是购物平台,数据源可以包括训练样本的特征数据,例如,训练样本可以是消费者等,训练样本的特征数据可以包括定位数据和消费数据等。在一些实施例中,多分类模型可以根据用户的实际需求训练得到。例如,以第一计算方为银行为例,银行拥有对应训练样本的征信等级或银行向对应训练样本发放的信贷产品等。则训练得到的多分类模型可以是用于基于用户数据确定该用户的征信等级或者向该用户发放何种信贷产品的模型。
在一些实施例中,第一计算方持有模型参数矩阵的第一分片和标签矩阵;标签矩阵的行数和列数基于类别个数以及训练样本的数量确定,且标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别。在一些实施例中,标签矩阵中的一列可以对应一个训练样本的标签值。在一些实施例中,一个训练样本可以包含一个或多个标签值(例如多标签分类任务中,每个训练样本可以拥有多个标签值),因此一个训练样本的标签值可以(列)向量形式表示,不难理解,当一个训练样本的标签值仅有一个时,此时,标签矩阵可以降维成标签向量。模型参数矩阵的行数和列数基于类别个数以及训练样本的特征个数确定。
在一些实施例中,训练样本的数量可以是多次模型参数迭代更新中当前次更新所使用的训练样本的数量。在一些实施例中,多次模型参数迭代更新中每次更新所使用的训练样本的数量相同。例如,数据库中包括M个训练样本,则可以从该M个训练样本中抽取m个执行每次模型参数更新;其中,M>m。例如,M为一万个训练样本,m为其中的64个训练样本。
示例地,以类别个数为N,训练样本的数量为m为例,则标签矩阵Y可以为N行m列的矩阵,即为N*m维的矩阵。标签矩阵Y的元素
Figure DEST_PATH_IMAGE007
指示该元素对应训练样本是否属于该元素对应的类别,即指示第j列对应的样本j是否属于第i行对应的类别i。
在一些实施例中,标签矩阵的行与多个类别一一对应,标签矩阵的列与多个训练样本一一对应;对于标签矩阵的任一行:属于该行对应类别的训练样本对应的元素为1,否则为0。
在一些实施例中,标签矩阵的行与多个类别可以以预设顺序一一对应;其中,预设顺序可以由第一计算方预先确定。示例地,若上述N=3,分别为类别1、类别2以及类别3,则标签矩阵的行与多个类别可以以类别1-类别2-类别3的预设顺序一一对应,也可以以类别1-类别3-类别2的预设顺序一一对应。通过第一计算方确定标签矩阵的行与多个类别一一对应的预设顺序,使得第二计算方在通过训练得到模型参数矩阵的第二分片时,也不能获知模型参数矩阵各行所对应的类别,进一步保护了隐私数据,提高了计算安全性。
在一些实施例中,标签矩阵的列与多个训练样本一一对应,标签矩阵列的顺序可以与第一计算方持有的ID列的顺序一致。示例地,若上述m=5,分别为样本1至样本5,ID列对应的训练样本顺序为样本1-样本2-样本3-样本4-样本5,则标签矩阵的列与多个训练样本可以以该顺序一一对应,即第一列对应样本1,第二列对应样本2,以此类推。
在一些实施例中,一个训练样本的标签所包括的类别彼此互斥,即一个训练样本仅属于唯一的标签类别。示例地,仍以上述N=3,m=5,标签矩阵的行与多个类别以类别1-类别2-类别3的预设顺序一一对应,标签矩阵的列与多个训练样本以样本1-样本2-样本3-样本4-样本5的顺序一一对应为例,若样本1属于类别1,样本2属于类别3,样本3属于类别2,样本4属于类别1,样本5属于类别3;则标签矩阵Y的第一行属于类别1的训练样本对应的元素为1,否则为0,第二行属于类别2的训练样本对应的元素为1,否则为0,以此类推,则标签矩阵Y为:
Figure DEST_PATH_IMAGE008
。又以标签矩阵Y的元素
Figure DEST_PATH_IMAGE009
(即第一行第二列对应的元素)为例,由于
Figure 488855DEST_PATH_IMAGE009
的值为0,可以理解的,其可以指示第二列对应的样本2不属于第一行对应的类别1。
在一些实施例中,模型参数矩阵的行数和列数基于类别个数以及训练样本的特征个数确定。示例地,仍以上述类别个数为N为例,若训练样本的特征个数为K,则模型参数矩阵为N行K列的矩阵,即N*K维的矩阵。
在一些实施例中,模型参数矩阵的行与多个类别一一对应,模型参数矩阵的列与训练样本的特征一一对应。一般地,二分类模型的模型参数为一个向量,本说明书实施例通过将多分类模型的模型参数构造为N*K维的矩阵,矩阵的每一行为训练对应类别的二分类模型的特征取值。相当于将多分类模型的训练转换为多个二分类模型的训练,通过对多个二分类模型同时训练,大幅度提高训练效率。
在一些实施例中,第一计算方持有的模型参数矩阵的第一分片可以通过多种方式获得。例如,第一计算方可以将类别个数发送给第二计算方,第二计算方基于持有的训练样本的特征个数和接收的类别个数构造模型参数矩阵W,并将模型参数矩阵W进行拆分得到模型参数矩阵的第一分片W1和模型参数矩阵的第二分片W2,将第一分片W1发送给第一计算方,使得第一计算方和第二计算方各自持有模型参数矩阵的一个分片。
又例如,第一计算方将类别个数发送给第三方服务器,第二计算方将特征个数发送给第三方服务器,第三方服务器构造模型参数矩阵W,并将模型参数矩阵W进行拆分得到模型参数矩阵的第一分片W1和模型参数矩阵的第二分片W2,将第一分片W1发送给第一计算方,以及将第二分片W2发送给第二计算方,使得第一计算方和第二计算方各自持有模型参数矩阵的一个分片。在一些实施例中,第二计算方和第三方服务器可以对各自构造的模型参数矩阵进行初始化,并将初始化后的模型参数矩阵进行拆分。初始化可以是将模型参数矩阵中的元素值限制在预设范围内。预设范围可以根据实际需求具体设置,例如,预设范围可以是(-1,1)。通过初始化再进行拆分,使得模型参数矩阵的第一分片W1和模型参数矩阵的第二分片W2的取值更合理,避免两者相加的值非常大,影响后续模型参数的更新。在一些实施例中,也可以由第一计算方构造模型参数矩阵,并将第二分片分配给第二计算方。在一些实施例中,第一计算方和第二计算方还可以彼此交换类别个数与特征个数,以便各方在本地基于类别个数与特征个数自行构造模型参数矩阵,并通过随机初始化设置,分别模型参数矩阵的第一分片和第二分片。
具体的,以下将对第一计算方110执行的步骤进行具体说明:
步骤310a,基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片。在一些实施例中,步骤310a可以由第一乘积矩阵分片获得模块510执行。
在一些实施例中,第一乘积矩阵分片获得模块510可以基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片。当当前轮迭代更新不是第一轮时,模型参数矩阵的第一分片可以是上一轮中更新后的模型参数矩阵的第一分片。在一些实施例中,其他计算方持有特征矩阵以及模型参数矩阵的第二分片,特征矩阵的行数与列数基于特征个数以及训练样本的数量确定。关于特征矩阵的详细内容可以在本说明书其他地方找到。应当理解,在本说明书实施例中,为了清楚简洁的说明计算过程,默认已经做了必要的矩阵转置以满足矩阵运算间的维度要求,因此不再对矩阵的转置进行说明。
可以理解的,第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。示例地,仍以上述模型参数矩阵的第一分片W1、模型参数矩阵的第二分片W2以及特征矩阵X为例,则第一乘积矩阵WX=(W1+W2)*X=W1X+W2X。由前述可知,第一计算方持有乘积项W1X中的W1,第二计算方持有乘积项W1X中的X。不难知晓,W1X可以分解为多次乘法运算以及加法运算,其中涉及乘法计算时,第一计算方与第二计算方可以按照多方安全乘法协议进行计算得到对应乘积的第一分片与第二分片;涉及加法运算时,则第一计算方与第二计算方可以在本地各自基于自身持有的分片进行,双方多次协同进行安全乘法计算,最终可以获得W1X的第一分片与第二分片。其中,第一计算方得到乘积项W1X的第一分片[W1X]1,第二计算方得到乘积项W1X的第二分片[W1X]2。其中,[W1X]1+[W1X]2=W1X。
除此之外,乘积项W2X中的两个矩阵均被第二计算方持有,因此,乘积项W2X为第二计算方的本地项,可由其自身持有的数据计算得到。由此可知,第一计算方的第一乘积矩阵的第一分片为:[W1X]1;第二计算方的第一乘积矩阵的第二分片可以是[W1X]2+W2X。显而易见的,[W1X]1+[W1X]2+W2X=W1X+W2X=WX,即第一计算方的第一乘积矩阵的第一分片和第二计算方的第一乘积矩阵的第二分片的和为第一乘积矩阵。
步骤320a,基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片。在一些实施例中,步骤320a可以由第一激活矩阵分片获得模块520执行。
在一些实施例中,激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值。激活矩阵的行数与列数与第一乘积矩阵的行数与列数相同。例如,第一乘积矩阵为N*m维的矩阵,则激活矩阵也为N*m维的矩阵。
在一些实施例中,激活函数可以包括sigmoid函数、Tanh函数和ReLU函数。优选地,激活函数可以是sigmoid函数。在一些实施例中,激活函数值可以通过激活函数的拟合多项式计算得到。激活函数的拟合多项式可以是指利用多项式来近似代替邻域范围内的激活函数(例如,sigmoid函数),以使得拟合多项式能够近似表示激活函数的输入和输出之间的关系。在一些实施例中,激活函数的拟合多项式可以在拟合区间上,使得多项式能够近似表示激活函数的输入和输出之间的关系。拟合区间可以根据拟合多项式具体确定。
在一些实施例中,用于计算激活函数值的激活函数可以是Sigmoid函数,例如,
Figure DEST_PATH_IMAGE010
。在一些实施例中,可以使用多项式来拟合Sigmoid函数,以实现基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算实现多方安全计算拟合的激活函数值,得到激活矩阵的第一分片。
在一些实施例中,Sigmoid函数的拟合多项式可以以函数的形式进行表示,如等式(1)所示。
Figure DEST_PATH_IMAGE011
(1)
其中,
Figure DEST_PATH_IMAGE012
表示Sigmoid函数的拟合多项式,
Figure DEST_PATH_IMAGE013
为预设系数,多方安全计算的参与方均可以得知;
Figure DEST_PATH_IMAGE014
为变量,即,上述所计算得到第一乘积矩阵中的元素;n为自然数。示例性地,Sigmoid函数的拟合多项式可以为
Figure DEST_PATH_IMAGE015
等。第一计算方与第二计算方可以协同确定用于拟合Sigmoid函数的多项式,再计算得到激活矩阵的分片。
在第一计算方与第二计算方协同确定Sigmoid函数的拟合多项式为
Figure DEST_PATH_IMAGE016
时,第一计算方可以在其本地独立计算得到激活矩阵的各个元素的激活函数值,例如,将第一乘积矩阵的第一分片的元素依次代入q,可以计算激活函数值,进而得到激活矩阵的第一分片
Figure DEST_PATH_IMAGE017
,同理,其他计算方可以在其本地独立计算得到激活矩阵的第二分片
Figure DEST_PATH_IMAGE018
在Sigmoid函数的拟合多项式为包括高阶(如二阶或以上)的多项式时,第一计算方可以进一步与其他计算方协同并基于多方安全乘法协议计算得到激活函数值,进而得到激活矩阵的第一分片。同理,其他计算方可以得到激活矩阵的第二分片。以激活函数的拟合多项式为
Figure DEST_PATH_IMAGE019
示例,在计算激活函数值时,若将第一乘积矩阵的第一分片和第一乘积矩阵的第二分片对应的元素代入
Figure DEST_PATH_IMAGE020
,则有
Figure DEST_PATH_IMAGE021
,其中,
Figure DEST_PATH_IMAGE022
表示来自第一乘积矩阵的第一分片的元素,
Figure DEST_PATH_IMAGE023
表示来自第一乘积矩阵的第二分片且与
Figure 482481DEST_PATH_IMAGE022
位置相同的元素,将其展开后,可以得到多个单个数值项(如
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE025
)以及乘积项,其中,交叉项(即相乘的两项一项来自第一计算方,一项来自第二计算方)可以由第一计算方与其他计算方协同进行安全乘法协议计算得到,单个数值项则可以在其本地直接得到。安全乘法协议可以参考上述图2中的描述,此处不再赘述。
计算完成之后,第一计算方可以将本地持有的数值分片相加得到第一乘积矩阵中相应元素的激活函数值的第一分片,进而得到激活矩阵的第一分片A1;其他计算方得到激活矩阵的第二分片A2
可以理解的,A1+A2=A,即激活矩阵的第一分片A1与激活矩阵的第二分片A2组成激活矩阵A。
步骤330a,基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片。在一些实施例中,步骤330a可以由第一梯度矩阵分片获得模块530执行。
梯度是模型训练时的重要模型数据之一。梯度矩阵则是指以矩阵的形式表示的模型的梯度数据。
在一些实施例中,梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积。激活矩阵与标签矩阵的差可以用于表示预测的误差。
在一些实施例中,梯度矩阵可以用以下等式(2)来进行表示。
Figure DEST_PATH_IMAGE026
(2)
其中,
Figure DEST_PATH_IMAGE027
为梯度矩阵,X为特征矩阵,A为激活矩阵,Y为标签矩阵。
将上述等式(2)进行分解可得
Figure DEST_PATH_IMAGE028
,其中,特征矩阵X由其他计算方持有;激活矩阵A=A1+A2,第一计算方持有的激活矩阵的第一分片A1,其他计算方持有激活矩阵的第二分片A2;标签矩阵Y由第一计算方持有,则
Figure DEST_PATH_IMAGE029
Figure DEST_PATH_IMAGE030
,根据各计算方持有的数据,XA1可以由第一计算方和其他计算方协同计算得到,XA2可以直接由其他计算方在本地独立计算得到,XY也可以由第一计算方和其他计算方协同计算得到。协同计算方式可以参考步骤310a中所示例的计算过程,此处不再赘述。
计算完成之后,第一计算方可以得到当前轮的梯度矩阵的第一分片[dw]1,[dw]1=[XA1]1-[XY]1,其他计算方可以得到当前轮的梯度矩阵的第二分片[dw]2,[dw]2=[XA1]2-[XY]2+XA2
步骤340a,基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。在一些实施例中,步骤340a可以由第一模型参数矩阵分片更新模块540执行。
在一些实施例,第一模型参数矩阵分片更新模块540可以将梯度矩阵的第一分片与预设学习率相乘,得到第二乘积矩阵;计算模型参数矩阵的第一分片和第二乘积矩阵的差值,将差值确定为更新后的模型参数矩阵的第一分片。具体的,第一模型参数矩阵分片更新模块540可以通过下述公式(5)确定更新后的模型参数矩阵的第一分片:
Figure DEST_PATH_IMAGE031
(5)
其中,
Figure DEST_PATH_IMAGE032
为更新后的模型参数矩阵的第一分片,
Figure DEST_PATH_IMAGE033
为预设学习率,
Figure DEST_PATH_IMAGE034
为梯度矩阵的第一分片。对应的,第二乘积矩阵为
Figure DEST_PATH_IMAGE035
在一些实施例中,预设学习率可以根据实际需求进行具体设置。一般地,预设学习率的取值范围为(0,∞)。
如前所述,步骤310a至步骤340a可以是多次模型参数迭代更新中的一次更新。在一些实施中,当迭代更新满足预设停止条件时,可以停止迭代,得到训练好的多分类模型。预设停止条件可以根据实际情况具体设置。例如,预设停止条件为迭代次数达到预设阈值。又例如,预设停止条件为:当前次迭代获得的模型参数矩阵与上一次迭代获得的模型参数矩阵的差值属于预设范围。其中,每次迭代获得的模型参数矩阵可以为更新后的模型参数矩阵的第一分片与更新后的模型参数矩阵的第二分片之和。
如图3所示,流程300还可以包括步骤310b、步骤320b、步骤330b以及步骤340b;其中,步骤310b至步骤340b应用于第二计算方120,即由第二计算方120执行。同样的,步骤310b至步骤340b可以是多次模型参数迭代更新中的一次更新。
其中,第二计算方120具有模型参数矩阵的第二分片以及特征矩阵。关于模型参数矩阵及其第二分片的相关内容可以在文中其他地方找到,在此不再赘述。在一些实施例中,特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征值下的取值。在一些实施例中,特征矩阵的行与多个训练样本一一对应,特征矩阵的列与训练样本的特征一一对应。以特征个数为K,训练样本的数量为m为例,则特征矩阵X可以为m行K列的矩阵,即为m*K维的矩阵。特征矩阵X的元素X ij指示第i行对应的训练样本在第j列对应的特征的取值。在一些实施例中,特征矩阵的行与多个训练样本一一对应,特征矩阵行的顺序可以与第二计算方持有的ID列的顺序一致。示例地,若上述m=5,分别为样本1至样本5,ID列对应的训练样本顺序为样本1-样本2-样本3-样本4-样本5,则特征矩阵的行与多个训练样本可以以该顺序一一对应,即第一行对应样本1,第二行对应样本2,以此类推。在一些实施例中,可以将特征矩阵的转置与模型参数矩阵(分片)相乘,以获得第一乘积矩阵的分片。
具体的,以下将对第二计算方120执行的步骤进行说明:
步骤310b,基于模型参数矩阵的第二分片和特征矩阵,与其他计算方协同运算,获得第一乘积矩阵的第二分片。在一些实施例中,步骤310b可以由第二乘积矩阵分片获得模块610执行。
在一些实施例中,其他计算方持有模型参数矩阵的第一分片和标签矩阵。标签矩阵的行数与列数基于类别个数和训练样本的数量确定,且标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;第一乘积矩阵为所述模型参数矩阵与特征矩阵的乘积。关于模型参数矩阵的第一分片、标签矩阵以及第一乘积矩阵的具体细节可以参见上述步骤310a及其相关描述,在此不再赘述。关于获得第一乘积矩阵的第二分片的具体细节可以参见上述步骤310a及其相关描述,在此不再赘述。
步骤320b,基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片。在一些实施例中,步骤320b可以由第二激活矩阵分片获得模块620执行。
在一些实施例中,激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值。在一些实施例中,激活函数值可以通过激活函数的拟合多项式计算得到。第二激活矩阵分片获得模块620可以基于第一乘积矩阵的第二分片,与其他计算方协同运算以基于拟合多项式获得激活矩阵的第二分片。关于获得激活矩阵的第二分片的具体细节可参见上述步骤320b及其相关描述,在此不再赘述。
步骤330b,基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片。在一些实施例中,步骤330b可以由第二梯度矩阵分片获得模块630执行。
在一些实施例中,梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积。关于梯度矩阵和获得梯度矩阵的第二分片的具体细节可以参见上述步骤330a及其相关描述,在此不再赘述。
步骤340b,基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。在一些实施例中,步骤340b可以由第二模型参数矩阵分片更新模块640执行。
在一些实施例中,第二模型参数矩阵分片更新模块640可以将梯度矩阵的第二分片与预设学习率相乘,得到第三乘积矩阵;计算模型参数矩阵的第二分片和第三乘积矩阵的差值,将该差值确定为更新后的模型参数矩阵的第二分片。具体的,第二模型参数矩阵分片更新模块640可以通过下述公式(6)确定更新后的模型参数矩阵的第二分片:
Figure DEST_PATH_IMAGE036
(6)
其中,
Figure DEST_PATH_IMAGE037
为更新后的模型参数矩阵的第二分片,
Figure 38621DEST_PATH_IMAGE033
为预设学习率,
Figure DEST_PATH_IMAGE038
为梯度矩阵的第二分片。对应的,第三乘积矩阵为
Figure DEST_PATH_IMAGE039
关于步骤340b的更多细节可以参见上述步骤340a及其相关描述,在此不再赘述。
如图4所示,基于多方安全计算的多分类模型训练方法的流程可以包括步骤410、步骤420、步骤430以及步骤440;其中,步骤410至步骤440应用于任一参与方,即由第一计算方110或第二计算方120执行。可以理解的,第一计算方110或第二计算方120执行相同的步骤410至步骤440。在一些实施例中,步骤410至步骤440可以是多次模型参数迭代更新中的一次更新。
为方便阐述,以下将第一计算方110确定为执行步骤410至步骤440的参与方,将第二计算方120确定为其他计算方。上述确定的参与方和其他计算方仅为便于示例性说明,并不对本说明书实施例做任何限制。可以理解的,也可以将第二计算方120确定为执行上述步骤的参与方,第一计算方110确定为其他计算方。
第一计算方可以持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片,第二计算方可以持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片。可以看出,在本实施例中,第一计算方与第二计算方是完全对等的参与方,任一方执行的流程相同,即流程400。其中,特征矩阵、标签矩阵以及模型参数矩阵可以在训练开始之前基于秘密分享划分,并分配给第一计算方和第二计算方。例如,可以参照图3中模型参数矩阵的划分方式生成模型参数矩阵的第一分片与第二分片,为各参与方分别持有。第一计算方可以将自身持有的标签矩阵拆分成第一分片与第二分片,并将标签矩阵的第二分片分发给第二计算方。同样的,第二计算方可以将自身持有的特征矩阵拆分成第一分片与第二分片,并将特征矩阵的第一分片分发给第二计算方。第一计算方持有的特征矩阵的第一分片、标签矩阵的第一分片,与第二计算方持有的特征矩阵的第二分片、标签矩阵的第二分片可以通过标识、ID等方式对齐。
具体的,以下将对步骤410至步骤440进行说明:
步骤410,基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片。在一些实施例中,步骤410可以由第三乘积矩阵分片获得模块710执行。
在一些实施例中,第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。示例地,以模型参数矩阵的第一分片W1、模型参数矩阵的第二分片W2、特征矩阵的第一分片X1、以及特征矩阵的第二分片X2为例,则第一乘积矩阵WX=(W1+W2)(X1+X2)=(W1+W2)X1+(W1+W2)X2=W1X1+W2X1+W1X2+W2X2。由此可知,乘积项W2X1的一个乘积因子X1被第一计算方持有,另一个乘积因子W2被第二计算方持有。因此,通过步骤310a所述的矩阵乘法协同计算,第一计算方可以基于特征矩阵的第一分片X1与第二计算方协同运算,得到该乘积项的第一分片[W2X1]1。对应的,第二计算方得到该乘积项的第二分片[W2X1]2,[W2X1]1+[W2X1]2=W2X1。同样的方式,第一计算方还可以得到乘积项W1X2的第一分片[W1X2]1,第二计算方还可以得到乘积项W1X2的第二分片[W1X2]2。此时,第一乘积矩阵的第一分片为:W1X1+[W2X1]1+[W1X2]1;第一乘积矩阵的第二分片为:[W2X1]2+[W1X2]2+W2X2。其中,W1X1为第一计算方的本地项;W2X2为第二计算方的本地项。
步骤420,基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片。在一些实施例中,步骤420可以由第三激活矩阵分片获得模块720执行。
在一些实施例中,激活矩阵的元素为第一乘积中对位元素的激活函数值。关于该步骤的具体细节可以参见步骤320a及其相关描述,在此不再赘述。
步骤430,基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片。在一些实施例中,步骤430可以由第三梯度矩阵分片获得模块730执行。
在一些实施例中,梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积。对应的,梯度矩阵
Figure DEST_PATH_IMAGE040
;其中,dw为梯度矩阵,A为激活矩阵,Y为标签矩阵,X为特征矩阵。
在一些实施例中,第三梯度矩阵分片获得模块730可以基于激活矩阵的第一分片、特征矩阵的第一分片和标签矩阵的第一分片,与其他计算方协同运算,获得梯度矩阵的第一分片。
具体的,以下将结合上述梯度矩阵
Figure 189111DEST_PATH_IMAGE040
对梯度矩阵的第一分片进行说明:首先将A=A1+A2、Y=Y1+Y2、以及X=X1+X2代入至该梯度矩阵的表达式中,得到
Figure DEST_PATH_IMAGE041
=[(A1+A2)-(Y1+Y2)](X1+X2)=A1X1+A2X1-Y1X1-Y2X1+A1X2+A2X2-Y1X2-Y2X2。基于与步骤330a中计算梯度矩阵的第一分片相同的原理,第一计算方获得的梯度矩阵的第一分片[
Figure 707948DEST_PATH_IMAGE041
]1为:A1X1+[A2X1]1-Y1X1-[Y2X1]1+[A1X2]1-[Y1X2]1;第二计算方获得的梯度矩阵的第二分片[
Figure 105431DEST_PATH_IMAGE041
]2为:[A2X1]2-[Y2X1]2+[A1X2]2+A2X2-[Y1X2]2-Y2X2。在一些实施例中,计算梯度矩阵dw时,部分项也可以直接在本地计算,例如,A1-Y1、A2-Y2,可以减少计算的复杂程度。
步骤440,基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。在一些实施例中,步骤440可以由第三模型参数矩阵分片更新模块740执行。
关于步骤440的具体细节可以参见上述步骤304a及其相关描述,在此不再赘述。
图5是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图。该系统500应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和标签矩阵;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数和训练样本的特征个数确定。
如图5所示,该系统500可以包括第一乘积矩阵分片获得模块510、第一激活矩阵分片获得模块520、第一梯度矩阵分片获得模块530、以及第一模型参数矩阵分片更新模块540。
第一乘积矩阵分片获得模块510可以用于基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和特征矩阵,所述特征矩阵的行数与列数基于所述特征个数以及训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。
第一激活矩阵分片获得模块520可以用于基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值。
第一梯度矩阵分片获得模块530可以用于基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积。
第一模型参数矩阵分片更新模块540可以用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
图6是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图。该系统600应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和特征矩阵;所述特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述模型参数矩阵的行数与列数基于类别个数和所述特征个数确定。
如图6所示,该系统600可以包括第二乘积矩阵分片获得模块610、第二激活矩阵分片获得模块620、第二梯度矩阵分片获得模块630、以及第二模型参数矩阵分片更新模块640。
第二乘积矩阵分片获得模块610可以用于基于模型参数矩阵的第二分片和特征矩阵,与其他计算方协同运算,获得第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和标签矩阵,所述标签矩阵的行数与列数基于所述类别个数和所述训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。
第二激活矩阵分片获得模块620可以用于基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值。
第二梯度矩阵分片获得模块630可以用于基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积。
第二模型参数矩阵分片更新模块640可以用于基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。
图7是根据本说明书的一些实施例所示的基于多方安全计算的多分类模型训练系统的模块图。该系统700应用于任一参与方,所述参与方持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片;所述特征矩阵的行数与列数基于所述特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数以及训练样本的特征个数确定。
如图7所示,该系统700可以包括第三乘积矩阵分片获得模块710、第三激活矩阵分片获得模块720、第三梯度矩阵分片获得模块730、以及第三模型参数矩阵分片更新模块740。
第三乘积矩阵分片获得模块710可以用于基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。
第三激活矩阵分片获得模块720可以用于基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积中对位元素的激活函数值。
第三梯度矩阵分片获得模块730可以用于基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积。
第三模型参数矩阵分片更新模块740可以用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
应当理解,图5、6以及7所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于基于多方安全计算的多分类模型训练系统500、600和700及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
本说明书实施例还提供一种基于多方安全计算的多分类模型训练装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述第一计算方执行的方法。
本说明书实施例还提供一种基于多方安全计算的多分类模型训练装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述第二计算方执行的方法。
本说明书实施例还提供一种基于多方安全计算的多分类模型训练装置,应用于任一参与方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前任一项所述参与方执行的方法。
本说明书实施例可能带来的有益效果包括但不限于:(1)利用多方安全计算实现对多分类模型的训练,训练过程中,保护了训练参与方的数据的隐私;(2)通过基于类别个数和训练样本的特征个数确定模型参数矩阵,将多分类模型的训练转换为多个二分类模型同时训练,大幅度提高训练效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (17)

1.一种基于多方安全计算的多分类模型训练方法,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和标签矩阵;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数和训练样本的特征个数确定;所述方法包括:
基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和特征矩阵,所述特征矩阵的行数与列数基于所述特征个数以及训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;
基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;
基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
2.如权利要求1所述的方法,所述标签矩阵的行与多个类别一一对应,所述标签矩阵的列与多个训练样本一一对应;
对于所述标签矩阵的任一行:属于该行对应类别的训练样本对应的元素为1,否则为0。
3.如权利要求1所述的方法,所述模型参数矩阵的行与多个类别一一对应,所述模型参数矩阵的列与训练样本的特征一一对应。
4.如权利要求1所述的方法,所述激活函数值通过激活函数的拟合多项式计算得到;所述基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,包括:
所述基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算以基于所述拟合多项式获得激活矩阵的第一分片。
5.如权利要求1所述的方法,所述基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片,包括:
将所述梯度矩阵的第一分片与预设学习率相乘,得到第二乘积矩阵;
计算所述模型参数矩阵的第一分片和所述第二乘积矩阵的差值,将所述差值确定为所述更新后的模型参数矩阵的第一分片。
6.一种基于多方安全计算的多分类模型训练系统,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和标签矩阵;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数和训练样本的特征个数确定;所述系统包括:
第一乘积矩阵分片获得模块,用于基于模型参数矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和特征矩阵,所述特征矩阵的行数与列数基于所述特征个数以及训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
第一激活矩阵分片获得模块,用于基于所述第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;
第一梯度矩阵分片获得模块,用于基于所述激活矩阵的第一分片和所述标签矩阵,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;
第一模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
7.一种基于多方安全计算的多分类模型训练装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~5任一项所述的方法。
8.一种基于多方安全计算的多分类模型训练方法,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和特征矩阵;所述特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述模型参数矩阵的行数与列数基于类别个数和所述特征个数确定;所述方法包括:
基于模型参数矩阵的第二分片和所述特征矩阵,与其他计算方协同运算,获得第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和标签矩阵,所述标签矩阵的行数与列数基于所述类别个数和所述训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;
基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;
基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。
9.如权利要求8所述的方法,所述特征矩阵的行与多个训练样本一一对应,所述特征矩阵的列与训练样本的特征一一对应。
10.如权利要求8所述的方法,所述模型参数矩阵的行与多个类别一一对应,所述模型参数矩阵的列与训练样本的特征一一对应。
11.如权利要求8所述的方法,所述激活函数值通过激活函数的拟合多项式计算得到;所述基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,包括:
基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算以基于所述拟合多项式获得所述激活矩阵的第二分片。
12.如权利要求8所述的方法,所述基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片,包括:
将所述梯度矩阵的第二分片与预设学习率相乘,得到第三乘积矩阵;
计算所述模型参数矩阵的第二分片和所述第三乘积矩阵的差值,将所述差值确定为所述更新后的模型参数矩阵的第二分片。
13.一种基于多方安全计算的多分类模型训练系统,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和特征矩阵;所述特征矩阵的行数与列数基于训练样本的特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述模型参数矩阵的行数与列数基于类别个数和所述特征个数确定;所述系统包括:
第二乘积矩阵分片获得模块,用于基于模型参数矩阵的第二分片和特征矩阵,与其他计算方协同运算,获得第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和标签矩阵,所述标签矩阵的行数与列数基于所述类别个数和所述训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
第二激活矩阵分片获得模块,用于基于所述第一乘积矩阵的第二分片,与所述其他计算方协同运算,获得激活矩阵的第二分片,其中,所述激活矩阵的元素为第一乘积矩阵中对位元素的激活函数值;
第二梯度矩阵分片获得模块,用于基于所述激活矩阵的第二分片和所述特征矩阵,与所述其他计算方协同运算,获得梯度矩阵的第二分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;
第二模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第二分片与所述梯度矩阵的第二分片,确定更新后的模型参数矩阵的第二分片。
14.一种基于多方安全计算的多分类模型训练装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求8~12任一项所述的方法。
15.一种基于多方安全计算的多分类模型训练方法,应用于任一参与方,所述参与方持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片;所述特征矩阵的行数与列数基于所述特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数以及训练样本的特征个数确定;所述方法包括:
基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积中对位元素的激活函数值;
基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵与标签矩阵之差与特征矩阵的乘积;
基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
16.一种基于多方安全计算的多分类模型训练系统,应用于任一参与方,所述参与方持有特征矩阵的第一分片、标签矩阵的第一分片以及模型参数矩阵的第一分片;所述特征矩阵的行数与列数基于所述特征个数和训练样本的数量确定,所述特征矩阵的元素指示该元素对应的训练样本在该元素对应的特征下的取值;所述标签矩阵的行数与列数基于类别个数以及训练样本的数量确定,且所述标签矩阵中的元素指示该元素对应训练样本是否属于该元素对应的类别;所述模型参数矩阵的行数与列数基于类别个数以及训练样本的特征个数确定;所述系统包括:
第三乘积矩阵分片获得模块,用于基于模型参数矩阵的第一分片与特征矩阵的第一分片,与其他计算方协同运算,获得第一乘积矩阵的第一分片;其中,所述其他计算方持有特征矩阵的第二分片、标签矩阵的第二分片以及模型参数矩阵的第二分片;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
第三激活矩阵分片获得模块,用于基于所述第一乘积的第一分片,与所述其他计算方协同运算,获得激活矩阵的第一分片,其中,所述激活矩阵的元素为第一乘积中对位元素的激活函数值;
第三梯度矩阵分片获得模块,用于基于所述激活矩阵的第一分片、所述特征矩阵的第一分片和所述标签矩阵的第一分片,与所述其他计算方协同运算,获得梯度矩阵的第一分片;其中,所述梯度矩阵为激活矩阵和标签矩阵之差与特征矩阵的乘积;
第三模型参数矩阵分片更新模块,用于基于所述模型参数矩阵的第一分片与所述梯度矩阵的第一分片,确定更新后的模型参数矩阵的第一分片。
17.一种基于多方安全计算的多分类模型训练装置,应用于任一参与方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求15所述的方法。
CN202110192710.9A 2021-02-20 2021-02-20 一种基于多方安全计算的多分类模型训练方法和系统 Active CN112561085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110192710.9A CN112561085B (zh) 2021-02-20 2021-02-20 一种基于多方安全计算的多分类模型训练方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110192710.9A CN112561085B (zh) 2021-02-20 2021-02-20 一种基于多方安全计算的多分类模型训练方法和系统

Publications (2)

Publication Number Publication Date
CN112561085A true CN112561085A (zh) 2021-03-26
CN112561085B CN112561085B (zh) 2021-05-18

Family

ID=75036004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110192710.9A Active CN112561085B (zh) 2021-02-20 2021-02-20 一种基于多方安全计算的多分类模型训练方法和系统

Country Status (1)

Country Link
CN (1) CN112561085B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158239A (zh) * 2021-03-31 2021-07-23 支付宝(杭州)信息技术有限公司 保护数据隐私的选择问题处理方法
CN113535808A (zh) * 2021-06-24 2021-10-22 复旦大学 基于安全多方计算的键值对模型安全训练与推理方法
CN115795553A (zh) * 2022-12-23 2023-03-14 星环信息科技(上海)股份有限公司 一种数据处理方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190138393A1 (en) * 2011-10-04 2019-05-09 International Business Machines Corporation Encoding data utilizing a zero information gain function
CN110942147A (zh) * 2019-11-28 2020-03-31 支付宝(杭州)信息技术有限公司 基于多方安全计算的神经网络模型训练及预测方法、装置
CN111061963A (zh) * 2019-11-28 2020-04-24 支付宝(杭州)信息技术有限公司 基于多方安全计算的机器学习模型训练及预测方法、装置
CN111475854A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法及系统
CN111931216A (zh) * 2020-09-16 2020-11-13 支付宝(杭州)信息技术有限公司 一种基于隐私保护的方式获取联合训练模型的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190138393A1 (en) * 2011-10-04 2019-05-09 International Business Machines Corporation Encoding data utilizing a zero information gain function
CN110942147A (zh) * 2019-11-28 2020-03-31 支付宝(杭州)信息技术有限公司 基于多方安全计算的神经网络模型训练及预测方法、装置
CN111061963A (zh) * 2019-11-28 2020-04-24 支付宝(杭州)信息技术有限公司 基于多方安全计算的机器学习模型训练及预测方法、装置
CN111475854A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法及系统
CN111931216A (zh) * 2020-09-16 2020-11-13 支付宝(杭州)信息技术有限公司 一种基于隐私保护的方式获取联合训练模型的方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158239A (zh) * 2021-03-31 2021-07-23 支付宝(杭州)信息技术有限公司 保护数据隐私的选择问题处理方法
CN113158239B (zh) * 2021-03-31 2022-04-26 支付宝(杭州)信息技术有限公司 保护数据隐私的选择问题处理方法
CN113535808A (zh) * 2021-06-24 2021-10-22 复旦大学 基于安全多方计算的键值对模型安全训练与推理方法
CN115795553A (zh) * 2022-12-23 2023-03-14 星环信息科技(上海)股份有限公司 一种数据处理方法、系统、设备及存储介质
CN115795553B (zh) * 2022-12-23 2024-02-06 星环信息科技(上海)股份有限公司 一种数据处理方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN112561085B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN112561085B (zh) 一种基于多方安全计算的多分类模型训练方法和系统
CN110929886A (zh) 模型训练、预测方法及其系统
US11176469B2 (en) Model training methods, apparatuses, and systems
CN111475854B (zh) 保护两方数据隐私的协同计算方法及系统
CN111460528B (zh) 一种基于Adam优化算法的多方联合训练方法及系统
CN110969264B (zh) 模型训练方法、分布式预测方法及其系统
CN113221183B (zh) 实现隐私保护的多方协同更新模型的方法、装置及系统
JP2019511033A5 (zh)
CN110705585A (zh) 网络欺诈识别方法、装置、计算机装置及存储介质
CN112632620A (zh) 一种增强隐私保护的联邦学习方法和系统
CN113343677B (zh) 一种意图识别方法、装置、电子设备及存储介质
US11023442B2 (en) Automated structuring of unstructured data
CN106470109A (zh) 一种身份识别方法和设备
US20240005165A1 (en) Machine learning model training method, prediction method therefor, apparatus, device, computer-readable storage medium, and computer program product
CN110390014A (zh) 一种主题挖掘方法、装置及存储介质
CN112163929A (zh) 业务推荐方法、装置、计算机设备和存储介质
CN114186256A (zh) 神经网络模型的训练方法、装置、设备和存储介质
Bulgak Analysis and design of split and merge unpaced assembly systems by metamodelling and stochastic search
Lin Minimizing the Makespan for a Two‐Stage Three‐Machine Assembly Flow Shop Problem with the Sum‐of‐Processing‐Time Based Learning Effect
US11455512B1 (en) Representing graph edges using neural networks
CN112990260B (zh) 一种基于多方安全计算的模型评估方法和系统
CN113761350A (zh) 一种数据推荐方法、相关装置和数据推荐系统
CN113240442A (zh) 一种农业物联网农产品质量安全溯源的方法及系统
Khorramizadeh et al. A bee colony optimization approach for mixed blocking constraints flow shop scheduling problems
CN117056962A (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