CN112990260A - 一种基于多方安全计算的模型评估方法和系统 - Google Patents

一种基于多方安全计算的模型评估方法和系统 Download PDF

Info

Publication number
CN112990260A
CN112990260A CN202110160451.1A CN202110160451A CN112990260A CN 112990260 A CN112990260 A CN 112990260A CN 202110160451 A CN202110160451 A CN 202110160451A CN 112990260 A CN112990260 A CN 112990260A
Authority
CN
China
Prior art keywords
product
matrices
computing
party
evaluation
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
CN202110160451.1A
Other languages
English (en)
Other versions
CN112990260B (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 CN202110160451.1A priority Critical patent/CN112990260B/zh
Publication of CN112990260A publication Critical patent/CN112990260A/zh
Application granted granted Critical
Publication of CN112990260B publication Critical patent/CN112990260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例公开了一种基于多方安全计算的模型评估方法和系统,以在保护双方数据隐私的前提下,实现模型评估。应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签;所述方法包括:基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。

Description

一种基于多方安全计算的模型评估方法和系统
技术领域
本说明书实施例涉及隐私保护技术领域,特别涉及一种基于多方安全计算的模型评估方法和系统。
背景技术
大数据时代存在非常多的数据孤岛。由于企业之间存在的竞争关系和企业对用户隐私保护的考虑,不同企业并不是完全的互相信任。在充分保护企业核心数据隐私的前提下,利用双方拥有的数据完成一些数据计算的需求非常迫切。
为此,本说明书实施例提出一种基于多方安全计算的模型评估方法和系统,利用多方安全计算,在保护各个参与方持有的数据隐私的前提下,完成模型评估。
发明内容
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估方法,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签;所述方法包括:基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估系统,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签;所述系统包括:第一乘积矩阵分片获取模块,用于基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;第一预测值获取模块,用于基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;第一评估参数获取模块,用于基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前所述的基于多方安全计算的模型评估方法。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估方法,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述方法包括:基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和所述两组或以上评估样本的标签;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估系统,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述系统包括:第二乘积矩阵分片获取模块,用于基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和所述两组或以上评估样本的标签;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;协同运算模块,用于基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前所述的基于多方安全计算的模型评估方法。
本说明书实施例的一个方面提供一种基于多方安全计算的模型评估方法,应用于第一计算方,所述第一计算方持有模型参数矩阵和两组或以上评估样本的标签;所述方法包括:基于模型参数矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的基于多方安全计算的模型评估系统的应用场景示意图;
图2是根据本说明书的一些实施例所示的第一计算方和第二计算方实现多方安全乘法协议的交互图;
图3是根据本说明书的一些实施例所示的基于多方安全计算的模型评估的流程交互图;
图4是根据本说明书的一些实施例所示的并行协同运算的示例性示意图;
图5是根据本说明书的一些实施例所示的基于多方安全计算的模型评估系统的模块图;
图6是根据本说明书的一些实施例所示的基于多方安全计算的模型评估系统的模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图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=u*v。第一计算方110得到第三方130下发的随机数u和z0,第二计算方120得到第三方130下发的随机数v和z1
由于需要计算乘积项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和z0、以及接收的差值f计算得到c0;其中,c0=u*f+z0。第二计算方120可以基于自身持有的随机数v和z1、以及接收的差值e计算得到c1;其中,c1=e*b+z1。可以理解的,c0和c1分别为乘积项a*b的一个分片,进而基于各个分片的和可以得到乘积项a*b的值。具体的,可以证明:c0+c1=u*f+z0+e*b+z1=u*(b-v)+(a-u)*b+z0+z1=u*b-u*v+a*b-u*b+u*v=a*b。以上即为多方安全乘法协议的示例性计算过程,基于多方安全乘法协议,可以在各参与方不暴露其隐私数据的情况下,计算与其他参与方的隐私数据的乘积。基于此,多方协同完成矩阵乘法、多项式等安全计算,都可以分解为最基础的多方安全乘法问题,进而完成多方矩阵乘法、多项式等安全计算。
图3是根据本说明书的一些实施例所示的基于多方安全计算的模型评估的流程交互图。如图3所示,该流程300可以包括步骤310a、步骤320a以及步骤330a;其中,步骤310a至步骤330a应用于第一计算方,即由第一计算方执行。
在一些实施例中,第一计算方可以是需要使用数据源的商户的计算设备。例如,使用数据源训练得到模型的商户的计算设备。又例如,使用数据源评估训练得到的模型的商户的计算设备。对应的,第二计算方可以是持有数据源的商户的计算设备。在一些实施例中,数据源可以包括多个用户的用户数据。用户数据可以包括多种特征数据,例如,定位数据和信用消费数据等。在模型评估场景中,数据源中每个用户的用户数据可以确定对应的单个评估样本。
在一些实施例中,评估的模型可以根据第一计算方的商户的实际需求预先训练得到。例如,以第一计算方的商户为银行为例,则评估的模型可以是用于基于银行用户的用户数据确定是否向该用户发放贷款的分类模型。在一些实施例中,分类模型可以包括逻辑回归模型、线性回归模型或神经网络模型等。
在一些实施例中,第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签。关于模型参数矩阵的第一分片的具体细节可以参见下述步骤310a及其相关描述,在此不再赘述。
在一些实施例中,两组或以上评估样本中每组可以包括一个或多个评估样本。例如,每组可以包括64个评估样本。
进一步地,以下将对第一计算方执行的步骤310a至步骤330a进行具体说明:
步骤310a,基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片。在一些实施例中,步骤310a可以由第一乘积矩阵分片获取模块510执行。
在一些实施例中,评估的模型可以是分类模型。分类模型可以是二分类模型,对应的,在一些实施例中,模型参数矩阵可以向量形式表达。模型参数矩阵的行数或列数可以由评估样本的特征个数确定。例如,评估样本的特征个数为k个,则模型参数矩阵可以为k维的行向量或列向量。分类模型可以是多标签分类模型,对应的,在一些实施例中,模型参数矩阵可以矩阵形式表达。在一些实施例中,多标签分类模型可以包括多个二分类模型,此时,模型参数矩阵的行数及列数可以由评估样本的类别个数与特征个数确定。例如,评估样本的特征个数为k个,评估样本的类别有n个,则模型参数矩阵可以为n*k维的矩阵。其中,矩阵的每一行对应一个二分类模型的模型参数。
在一些实施例中,模型参数矩阵的第一分片可以是第一计算方获取的模型参数矩阵的分片数据。在一些实施例中,模型参数矩阵的第一分片可以由多种方式获取。例如,在一种可能的实施场景下,第一计算方不能独立完成模型训练,需要持有数据源的第二计算方协助建模,此时,第一计算方和第二计算方均可以持有模型参数矩阵的一个分片。在一些实施例中,模型参数矩阵由其他方完全拥有,此时其他方可以先将模型参数矩阵进行拆分,将第一分片与第二分片分发给第一计算方或第二计算方,进而利用第一计算方与第二计算方私有的数据协同完成模型的性能评估。
在一些实施例中,其他计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵。关于模型参数矩阵的第二分片可以参见前述相关描述,在此不再赘述。
在一些实施例中,两个或以上特征矩阵与两组或以上评估样本对应,且特征矩阵的行数与列数基于对应组的评估样本的数量以及评估样本的特征个数确定,特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值。在一些实施例中,当两组或以上评估样本中每组包括多个评估样本时,每组的评估样本数量以及评估样本的特征个数可以相同或不同。示例地,以其中一组的评估样本的数量为m,评估样本的特征个数为k为例,则该组评估样本对应的特征矩阵X为m行k列的矩阵,即为m*k维的矩阵;其中,特征矩阵X的元素Xij指示第i行对应的样本i在第j列对应的特征j下的取值。
在一些实施例中,第一乘积矩阵分片获取模块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+W2 X=W1X+W2 X=WX。
由于第二计算方持有两个或以上特征矩阵,可以理解的,第一计算模组可以通过并行上述协同运算可以得到两个或以上第一乘积矩阵的第一分片;第二计算模组可以通过并行上述协同运算可以得到两个或以上第一乘积矩阵的第二分片。
以下将结合图4对并行获得第一乘积矩阵的第一分片和第一乘积矩阵的第二分片进行说明。
如图4所示,第一计算方包括多个不同的第一计算模组,分别为第一计算模组1、第一计算模组2、……、以及第一计算模组n;第二计算方包括多个不同的第二计算模组,分别为第二计算模组1、第二计算模组2、……、以及第二计算模组n。n个第一计算模组可以并行执行上述协同运算,并行得到n个特征矩阵分别与模型参数矩阵的n个第一乘积矩阵的第一分片。同样的,n个第二计算模组可以并行执行上述协同运算,并行得到n个的特征矩阵分别与模型参数矩阵的n个第一乘积矩阵的第二分片。
通过本说明书实施例的并行协同运算,可以高效处理模型参数矩阵与数据量特别大的特征矩阵的乘积运算,提高了计算效率,从而可以更快的得到模型评估参数,以便于后续对模型进行优化处理。
步骤320a,基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得两组或以上评估样本的预测值。在一些实施例中,步骤320a可以由预测值获取模块520执行。
在一些实施例中,第一计算方(如预测值获取模块520)可以接收来自其他计算方的两个或以上第一乘积矩阵的第二分片;基于两个或以上第一乘积矩阵的第一分片和两个或以上第一乘积矩阵的第二分片,确定两个或以上第一乘积矩阵;基于激活函数分别对两个或以上第一乘积矩阵进行处理,获得两组或以上评估样本的预测值。
在一些实施例中,激活函数可以用于构建模型,例如,构建二分类模型。激活函数定义了在给定输入下的输出,通常为非线性函数。通过激活函数在模型中加入非线性因素,可以提高模型的表达能力。在一些实施例中,激活函数可以包括sigmoid函数、Tanh函数和ReLU函数。例如,激活函数可以是sigmoid函数。
通过本说明书实施例可知,第一计算方可以接收第二计算方发送的第一乘积矩阵的第二分片,从而在第一计算方处合并出第一乘积矩阵的明文数据,再利用激活函数处理每一个第一乘积矩阵的各个元素,得到预测值。
在一些实施例中,第一计算方(如预测值获取模块520)还可以基于两个或以上第一乘积矩阵的第一分片,与其他计算方协同运算,获得两个或以上激活矩阵的第一分片,其中,激活矩阵的元素为其对应的第一乘积矩阵中对位元素的激活函数值;接收来自其他计算方的两个或以上激活矩阵的第二分片;基于两个或以上激活矩阵的第一分片和两个或以上激活矩阵的第二分片,获得两组或以上评估样本的预测值。例如,将两个或以上激活矩阵的第一分片和两个或以上激活矩阵的第二分片对应相加,得到两组或以上评估样本的预测值。
在一些实施例中,激活函数值可以通过激活函数的拟合多项式计算得到。激活函数的拟合多项式可以是指利用多项式来近似代替邻域范围内的激活函数(例如,sigmoid函数),以使得拟合多项式能够近似表示激活函数的输入和输出之间的关系。在一些实施例中,激活函数的拟合多项式可以在拟合区间上,使得多项式能够近似表示激活函数的输入和输出之间的关系。拟合区间可以根据拟合多项式具体确定。
在一些实施例中,用于计算激活函数值的激活函数可以是Sigmoid函数,例如,
Figure BDA0002936366120000151
在一些实施例中,可以使用多项式来拟合Sigmoid函数,以实现基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算实现多方安全计算拟合的激活函数值,得到两个或以上激活矩阵的第一分片。
在一些实施例中,Sigmoid函数的拟合多项式可以以函数的形式进行表示,如等式(1)所示:
g(q)=h0+h1q+h2q2+…+hnqn (1)
其中,g(q)表示Sigmoid函数的拟合多项式,h为预设系数,多方安全计算的参与方均可以得知;q为变量,即,上述所计算得到第一乘积矩阵中的元素;n为自然数。示例性地,Sigmoid函数的拟合多项式可以为
Figure BDA0002936366120000152
Figure BDA0002936366120000153
等。第一计算方与第二计算方可以协同确定用于拟合Sigmoid函数的多项式,再计算得到激活矩阵的分片。
在第一计算方与第二计算方协同确定Sigmoid函数的拟合多项式为
Figure BDA0002936366120000154
时,第一计算方可以在其本地独立计算得到激活矩阵的各个元素的激活函数值,例如,将第一乘积矩阵的第一分片的元素依次代入q,可以计算激活函数值,进而得到激活矩阵的第一分片g(q)1,同理,其他计算方可以在其本地独立计算得到激活矩阵的第二分片g(q)2
在Sigmoid函数的拟合多项式为包括高阶(如二阶或以上)的多项式时,第一计算方可以进一步与其他计算方协同并基于多方安全乘法协议计算得到激活函数值,进而得到激活矩阵的第一分片。同理,其他计算方可以得到激活矩阵的第二分片。以激活函数的拟合多项式为
Figure BDA0002936366120000155
Figure BDA0002936366120000156
示例,在计算激活函数值时,若将第一乘积矩阵的第一分片和第一乘积矩阵的第二分片对应的元素代入g(q),则有
Figure BDA0002936366120000161
Figure BDA0002936366120000162
其中,[w1x]1表示来自第一乘积矩阵的第一分片的元素,[w1x]2+w2x表示来自第一乘积矩阵的第二分片且与[w1x]1位置相同的元素,将其展开后,可以得到多个单个数值项(如
Figure BDA0002936366120000163
)以及乘积项,其中,交叉项(即相乘的两项一项来自第一计算方,另一项来自第二计算方)可以由第一计算方与其他计算方协同进行安全乘法协议计算得到,单个数值项则可以在其本地直接得到。安全乘法协议可以参考上述图2中的描述,此处不再赘述。
计算完成之后,第一计算方可以将本地持有的数值分片相加得到第一乘积矩阵中相应元素的激活函数值的第一分片,进而得到激活矩阵的第一分片A1;其他计算方得到激活矩阵的第二分片A2。可以理解的,A1+A2=A,即激活矩阵的第一分片A1与激活矩阵的第二分片A2组成激活矩阵A。
在一些实施例中,第一计算方还可以与其他计算方并行协同运算,获得两个或以上激活矩阵的第一分片。对应的,在一些实施例中,第一计算方(例如,预测值获取模块520)可以通过不同的第一计算模组并行协同运算,获得两个或以上激活矩阵的第一分片;其中,不同的第一计算模组、不同的第二计算模组分别与两个或以上激活矩阵的协同运算一一对应。
与前述第一计算模组和第二计算模组并行协同运算获得第一乘积矩阵的第一分片和第一乘积矩阵的第二分片类似。不同的第一计算模组可以分别与获得两个或以上激活矩阵的第一分片的协同运算一一对应;不同的第二计算模组可以分别与获得两个或以上激活矩阵的第二分片的协议运算一一对应。类似的,关于该并行协同运算的具体细节可以参见图4及其相关描述,在此不再赘述。
根据以上描述可知,本说明书实施例可以在并行协同运算获得第一乘积矩阵分片的基础上,协同运算或并行协同运算获得激活矩阵分片。其中,并行协同运算获得激活矩阵分片,更进一步提高了计算效率,进而提升模型评估的效率,便于后续对模型的优化处理。
步骤330a,基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。在一些实施例中,步骤330a可以由评估参数获取模块530执行。
在一些实施例中,评估参数可以用于评价经过训练后的模型的性能。这些性能包括但不限于:KS、准确率、精确率、召回率、ROC、AUC(ROC曲线下的面积)、F1以及决定系数。其中,KS用于模型风险区分能力评估,衡量的是好坏样本累计分部之间的差值。好坏样本累计差异越大,KS指标越大,模型风险区分能力越强。准确率反映模型分类正确的样本占总样本个数的比例。精确率反映模型预测为正的样本中实际也为正的样本占被预测为正的样本的比例。召回率反映实际为正的样本被模型预测为正的样本所占实际为正的样本的比例。ROC反映模型的真正类率和负正类率。AUC(ROC曲线下的面积)反映模型预测任何一对(正、负)样本时,正样本的置信度大于负样本的置信度的概率。F1是精确率和召回率的加权平均数,为精确率和召回率的综合评价指标。决定系数反映模型的拟合程度。
根据以上描述可知,本说明书实施例对第一计算方以模型参数矩阵的第一分片计算模型的评估参数的情况进行了具体说明。在一些实施例中,模型可以属于第一计算方,而第一计算方只拥有评估样本的标签,需要与用于评估样本的特征数据的第二计算方协同对其拥有的模型性能进行评估。此时,无需对模型参数矩阵进行拆分。
具体的:第一计算方可以基于模型参数矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;基于两个或以上第一乘积矩阵的第一分片,与其他计算方协同运算,获得两组或以上评估样本的预测值;基于两组或以上评估样本的预测值及其标签,获得模型参数的评估参数。
此时,在计算第一乘积矩阵WX时,第一计算方持有模型参数矩阵W,第二计算方持有特征矩阵X(默认在进行运算前会进行必要的矩阵转置,已满足矩阵间运算的维度要求),则基于与上述步骤310a中获得第一乘积矩阵的第一分片相同的原理,此处的第一计算方可以获得第一乘积矩阵的第一分片[WX]1,第二计算方可以获得第一乘积矩阵的第二分片[WX]2。关于并行获得的具体细节与上述步骤310a的方式相同,具体细节可以参见上述步骤310a及其相关描述,在此不再赘述。
此处关于获得两组或以上评估样本的预测值的具体细节与上述步骤320a的方式相同,具体细节可以参见上述步骤320a及其相关描述,在此不再赘述。关于获得模型参数的评估参数的具体细节与上述步骤330a的方式相同,具体细节可以参见上述步骤330a及其相关描述,在此不再赘述。
如图3所示,流程300还可以包括步骤310b和步骤320b;其中,步骤310b和步骤320b应用于第二计算方120,即由第二计算方120执行。
在一些实施例中,第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵。关于模型参数矩阵及其第二分片的相关内容可以在文中其他地方找到,在此不再赘述。在一些实施例中,两个或以上特征矩阵与两组或以上评估样本对应,且特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值。示例地,以其中一组的评估样本的数量为m,评估样本的特征个数为k为例,则该组评估样本对应的特征矩阵X为m行k列的矩阵,即为m*k维的矩阵;其中,特征矩阵X的元素Xij指示第i行对应的样本i在第j列对应的特征j下的取值。在一些实施例中,特征矩阵行的顺序可以与第二计算方持有的ID列的顺序一致。示例地,若上述m=5,分别为样本1至样本5,ID列对应的训练样本顺序为样本1-样本2-样本3-样本4-样本5,则特征矩阵的行与多个训练样本可以以该顺序一一对应,即第一行对应样本1,第二行对应样本2,以此类推。
具体的,以下将对第二计算方120执行的步骤进行说明:
步骤310b,基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片。在一些实施例中,步骤310b可以由第二乘积矩阵分片获取模块610执行。
在一些实施例中,第二计算方(或第二乘积矩阵分片获取模块610)可以通过不同的第二计算模组分别基于模型参数矩阵的第二分片以及两个或以上特征矩阵,对应与其他计算方不同的第一计算模组并行协同运算,获得两个或以上第一乘积矩阵的第二分片;其中,不同的第一计算模组、不同的第二计算模型分别与两个或以上第一乘积矩阵的协同运算一一对应。关于基于第二计算模组并行协同运算获得第一乘积矩阵的第二分片的具体细节可以参见上述步骤310a及其相关描述,在此不再赘述。
步骤320b,基于所述两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。在一些实施例中,步骤320b可以由协同运算模块620执行。
在一些实施例中,第二计算方(或协同运算模块620)可以将两个或以上第一乘积矩阵的第二分片发送给其他计算方。此时,其他计算方为第一计算方,第一计算方可以基于接收的两个或以上第一乘积矩阵的第二分片和自身持有的两个或以上第一乘积矩阵的第一分片,确定两个或以上第一乘积矩阵,进而第一计算方可以基于激活函数分别对两个或以上第一乘积矩阵进行处理,获得两组或以上评估样本的预测值。关于此方式获得两组或以上评估样本的预测值的具体细节可以参见上述步骤320a及其相关描述,在此不再赘述。
在一些实施例中,第二计算方(或协同运算模块620)可以通过不同的第二计算模组分别基于两个或以上第一乘积矩阵的第二分片,对应与其他计算方不同的第一计算模组并行协同运算,获得两个或以上激活矩阵的第二分片,其中,激活矩阵的元素为其对应的第一乘积矩阵中对位元素的激活函数值;将两个或以上激活矩阵的第二分片发送给其他计算方。
在一些实施例中,激活函数值通过激活函数的拟合多项式计算得到;对应的,第二计算方(或协同运算模块620)可以通过不同的第二计算模组分别基于两个或以上第一乘积矩阵的第二分片,对应与其他计算方不同的第一计算模组并行协同运算,以基于拟合多项式获得两个或以上激活矩阵的第二分片。关于此方式获得激活矩阵的第二分片的具体细节可以参见上述步骤320a及其相关描述,在此不再赘述。
此时,第一计算方可以基于接收的两个或以上激活矩阵的第二分片和自身持有的两个或以上激活矩阵的第二分片,获得两组或以上评估样本的预测值。关于此方式获得两组或以上评估样本的预测值的具体细节可以参见上述步骤320a及其相关描述,在此不再赘述。
图5是根据本说明书的一些实施例所示的基于多方安全计算的模型评估系统的模块图。该系统500应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签。
如图5所示,该系统500可以包括第一乘积矩阵分片获取模块510、预测值获取模块520以及评估参数获取模块530。
第一乘积矩阵分片获取模块510可以用于基于所述模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。
预测值获取模块520可以用于基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得两组或以上评估样本的预测值。
评估参数获取模块530可以用于基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
图6是根据本说明书的一些实施例所示的基于多方安全计算的模型评估系统的模块图。该系统600应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值。
如图6所示,该系统600可以包括第二乘积矩阵分片获取模块610、和协同运算模块620。
第二乘积矩阵分片获取模块610可以用于基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和所述两组或以上评估样本的标签;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积。
协同运算模块620可以用于基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
应当理解,图5和6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于基于多方安全计算的模型评估系统500及其模块、基于多方安全计算的模型评估系统600及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
本说明书实施例还提供一种基于多方安全计算的模型评估装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前所述的基于多方安全计算的模型评估方法。
本说明书实施例还提供一种基于多方安全计算的模型评估装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前所述的基于多方安全计算的模型评估方法。
本说明书实施例可能带来的有益效果包括但不限于:(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所述的方法,所述基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片,包括:
通过不同的第一计算模组基于所述模型参数矩阵的第一分片,对应与所述其他计算方不同的第二计算模组并行协同运算,获得所述两个或以上第一乘积矩阵的第一分片;其中,所述不同的第一计算模组、所述不同的第二计算模型分别与所述两个或以上第一乘积矩阵的协同运算一一对应。
3.如权利要求1所述的方法,所述基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值,包括:
接收来自所述其他计算方的两个或以上第一乘积矩阵的第二分片;
基于所述两个或以上第一乘积矩阵的第一分片和所述两个或以上第一乘积矩阵的第二分片,确定两个或以上第一乘积矩阵;
基于激活函数分别对所述两个或以上第一乘积矩阵进行处理,获得所述两组或以上评估样本的预测值。
4.如权利要求1所述的方法,所述基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值,包括:
基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得两个或以上激活矩阵的第一分片,其中,激活矩阵的元素为其对应的第一乘积矩阵中对位元素的激活函数值;
接收来自所述其他计算方的两个或以上激活矩阵的第二分片;基于所述两个或以上激活矩阵的第一分片和所述两个或以上激活矩阵的第二分片,获得所述两组或以上评估样本的预测值。
5.如权利要求4所述的方法,所述激活函数值通过激活函数的拟合多项式计算得到;所述基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得两个或以上激活矩阵的第一分片,包括:
基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算以基于所述拟合多项式获得所述两个或以上激活矩阵的第一分片。
6.如权利要求4所述的方法,基于所述两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得两个或以上激活矩阵的第一分片,包括:
通过不同的第一计算模组基于所述两个或以上第一乘积矩阵的第一分片,对应与所述其他计算方不同的第二计算模组并行协同运算,获得所述两个或以上激活矩阵的第一分片;其中,所述不同的第一计算模组、所述不同的第二计算模型分别与所述两个或以上激活矩阵的协同运算一一对应。
7.如权利要求1所述的方法,所述评估参数反映模型的以下至少一种模型性能:KS、准确率、精确率、召回率、ROC、AUC、F1以及决定系数。
8.一种基于多方安全计算的模型评估系统,应用于第一计算方,所述第一计算方持有模型参数矩阵的第一分片和两组或以上评估样本的标签;所述系统包括:
第一乘积矩阵分片获取模块,用于基于模型参数矩阵的第一分片,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
第一预测值获取模块,用于基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;
第一评估参数获取模块,用于基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
9.一种基于多方安全计算的模型评估装置,应用于第一计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~7任一项所述的方法。
10.一种基于多方安全计算的模型评估方法,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述方法包括:
基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和所述两组或以上评估样本的标签;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
11.如权利要求10所述的方法,所述基于模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片,包括:
通过不同的第二计算模组分别基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,对应与所述其他计算方不同的第一计算模组并行协同运算,获得所述两个或以上第一乘积矩阵的第二分片;其中,所述不同的第一计算模组、所述不同的第二计算模型分别与所述两个或以上第一乘积矩阵的协同运算一一对应。
12.如权利要求10所述的方法,所述基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数,包括:
将所述两个或以上第一乘积矩阵的第二分片发送给所述其他计算方。
13.如权利要求10所述的方法,所述基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数,包括:
通过不同的第二计算模组分别基于所述两个或以上第一乘积矩阵的第二分片,对应与所述其他计算方不同的第一计算模组并行协同运算,获得两个或以上激活矩阵的第二分片,其中,激活矩阵的元素为其对应的第一乘积矩阵中对位元素的激活函数值;
将两个或以上激活矩阵的第二分片发送给所述其他计算方。
14.如权利要求13所述的方法,所述激活函数值通过激活函数的拟合多项式计算得到;所述通过不同的第二计算模组分别基于所述两个或以上第一乘积矩阵的第二分片,对应与所述其他计算方不同的第一计算模组并行协同运算,获得两个或以上激活矩阵的第二分片,包括:
通过不同的第二计算模组分别基于所述两个或以上第一乘积矩阵的第二分片,对应与所述其他计算方不同的第一计算模组并行协同运算,以基于所述拟合多项式获得两个或以上激活矩阵的第二分片。
15.一种基于多方安全计算的模型评估系统,应用于第二计算方,所述第二计算方持有模型参数矩阵的第二分片和两个或以上特征矩阵,所述两个或以上特征矩阵与两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量和评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述系统包括:
第二乘积矩阵分片获取模块,用于基于所述模型参数矩阵的第二分片以及所述两个或以上特征矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第二分片;其中,所述其他计算方持有模型参数矩阵的第一分片和所述两组或以上评估样本的标签;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
协同运算模块,用于基于两个或以上第一乘积矩阵的第二分片,与所述其他计算方协同运算,以便所述其他计算方获得所述两组或以上评估样本的预测值,以及便于所述其他计算方基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
16.一种基于多方安全计算的模型评估装置,应用于第二计算方,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求10~14任一项所述的方法。
17.一种基于多方安全计算的模型评估方法,应用于第一计算方,所述第一计算方持有模型参数矩阵和两组或以上评估样本的标签;所述方法包括:
基于模型参数矩阵,与其他计算方协同运算,并行获得两个或以上第一乘积矩阵的第一分片;其中,所述其他计算方持有两个或以上特征矩阵,所述两个或以上特征矩阵与所述两组或以上评估样本对应,且所述特征矩阵的行数与列数基于其对应组的评估样本的数量以及评估样本的特征个数确定,所述特征矩阵的元素指示该元素对应的评估样本在该元素对应的特征下的取值;所述第一乘积矩阵为模型参数矩阵与特征矩阵的乘积;
基于两个或以上第一乘积矩阵的第一分片,与所述其他计算方协同运算,获得所述两组或以上评估样本的预测值;
基于所述两组或以上评估样本的预测值及其标签,获得所述模型的评估参数。
CN202110160451.1A 2021-02-05 2021-02-05 一种基于多方安全计算的模型评估方法和系统 Active CN112990260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110160451.1A CN112990260B (zh) 2021-02-05 2021-02-05 一种基于多方安全计算的模型评估方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110160451.1A CN112990260B (zh) 2021-02-05 2021-02-05 一种基于多方安全计算的模型评估方法和系统

Publications (2)

Publication Number Publication Date
CN112990260A true CN112990260A (zh) 2021-06-18
CN112990260B CN112990260B (zh) 2022-04-26

Family

ID=76347914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110160451.1A Active CN112990260B (zh) 2021-02-05 2021-02-05 一种基于多方安全计算的模型评估方法和系统

Country Status (1)

Country Link
CN (1) CN112990260B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113761469A (zh) * 2021-08-10 2021-12-07 支付宝(杭州)信息技术有限公司 一种保护数据隐私的最高位进位计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050201555A1 (en) * 2004-02-09 2005-09-15 I-Ling Yen System, method and apparatus for secure computation on encrypted data
CN110162995A (zh) * 2019-04-22 2019-08-23 阿里巴巴集团控股有限公司 评估数据贡献程度的方法及其装置
CN110457936A (zh) * 2019-07-01 2019-11-15 阿里巴巴集团控股有限公司 数据交互方法、装置和电子设备
CN111143894A (zh) * 2019-12-24 2020-05-12 支付宝(杭州)信息技术有限公司 一种提升安全多方计算效率的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050201555A1 (en) * 2004-02-09 2005-09-15 I-Ling Yen System, method and apparatus for secure computation on encrypted data
CN110162995A (zh) * 2019-04-22 2019-08-23 阿里巴巴集团控股有限公司 评估数据贡献程度的方法及其装置
CN110457936A (zh) * 2019-07-01 2019-11-15 阿里巴巴集团控股有限公司 数据交互方法、装置和电子设备
CN111143894A (zh) * 2019-12-24 2020-05-12 支付宝(杭州)信息技术有限公司 一种提升安全多方计算效率的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113761469A (zh) * 2021-08-10 2021-12-07 支付宝(杭州)信息技术有限公司 一种保护数据隐私的最高位进位计算方法
CN113761469B (zh) * 2021-08-10 2024-05-17 支付宝(杭州)信息技术有限公司 一种保护数据隐私的最高位进位计算方法

Also Published As

Publication number Publication date
CN112990260B (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
CN110110229B (zh) 一种信息推荐方法及装置
CN110969264B (zh) 模型训练方法、分布式预测方法及其系统
Wang et al. Artificial intelligence: a study on governance, policies, and regulations
CN112561085B (zh) 一种基于多方安全计算的多分类模型训练方法和系统
US11176469B2 (en) Model training methods, apparatuses, and systems
CN111475854A (zh) 保护两方数据隐私的协同计算方法及系统
CN111667267A (zh) 一种区块链交易风险识别方法及装置
US20220092414A1 (en) Method, apparatus, and system for training neural network model
CN111027713B (zh) 共享机器学习系统及方法
CN114611128B (zh) 一种纵向联邦学习方法、装置、系统、设备及存储介质
CN106687928A (zh) 动态应用容器
Treleaven et al. Federated learning: The pioneering distributed machine learning and privacy-preserving data technology
US20200050924A1 (en) Data Processing Method and Apparatus for Neural Network
CN112766514A (zh) 一种联合训练机器学习模型的方法、系统及装置
CN112990260B (zh) 一种基于多方安全计算的模型评估方法和系统
CN111125760B (zh) 保护数据隐私的模型训练、预测方法及其系统
CN112464155A (zh) 一种数据处理方法、多方安全计算系统和电子设备
CN113221153A (zh) 图神经网络训练方法、装置、计算设备及存储介质
CN113704805B (zh) 一种风控规则匹配方法、装置及电子设备
CN113887933A (zh) 基于人工智能的数据处理方法、装置、设备及存储介质
CN113240442A (zh) 一种农业物联网农产品质量安全溯源的方法及系统
CN113761350A (zh) 一种数据推荐方法、相关装置和数据推荐系统
CN114282255B (zh) 一种基于秘密分享的排序序列合并方法和系统
CN111784078B (zh) 一种针对决策树的分布式预测方法和系统
CN113032838B (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