CN110709863B - 使用秘密共享的逻辑回归建模方法、存储介质及系统 - Google Patents

使用秘密共享的逻辑回归建模方法、存储介质及系统 Download PDF

Info

Publication number
CN110709863B
CN110709863B CN201980002723.6A CN201980002723A CN110709863B CN 110709863 B CN110709863 B CN 110709863B CN 201980002723 A CN201980002723 A CN 201980002723A CN 110709863 B CN110709863 B CN 110709863B
Authority
CN
China
Prior art keywords
scn
data
slrm
sample
representing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980002723.6A
Other languages
English (en)
Other versions
CN110709863A (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.)
Ant Shield Co ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN110709863A publication Critical patent/CN110709863A/zh
Application granted granted Critical
Publication of CN110709863B publication Critical patent/CN110709863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

用于通过使用秘密共享技术来训练多方安全逻辑回归模型(SLRM)的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。一种方法包括:使用秘密共享(SS)将安全逻辑回归模型(SLRM)的样本训练数据划分为多份,其中,每一份被分配给安全计算节点(SCN);使用每份所述样本训练数据对与SLRM相关联的参数进行迭代更新,其中,所述迭代更新一直持续到出现了预定条件为止;在对与SLRM相关联的所述参数进行迭代更新之后,输出被配置为由每个安全计算节点使用的训练结果。

Description

使用秘密共享的逻辑回归建模方法、存储介质及系统
背景技术
机器学习是数据科学的一个子集,它使用统计模型来获得洞察并进行预测。为了促进数据交换和合作,不同的参与方可以共同建立机器学习模型。传统的机器学习项目将从多方获得的训练数据聚集到一处。然后,在机器学习过程的训练阶段,使用基于聚集的数据的机器学习工具构建训练模型,从而可以统一地训练模型。训练数据可以由任何参与方聚集,或者在由所有参与方信任并选择的第三方处聚集。
发明内容
本文描述了通过使用秘密共享(secret sharing)技术训练多方安全逻辑回归模型(SLRM)的方法、存储介质及系统。
通常,本文中描述的主题的一个创新方面可以体现在包括如下动作的方法中:使用秘密共享(SS)将安全逻辑回归模型(SLRM)的样本训练数据划分为多份,其中,每一份被分配给安全计算节点(SCN);使用每份所述样本训练数据对与SLRM相关联的参数进行迭代更新,其中,所述迭代更新一直持续到出现了预定条件为止;以及在对与所述SLRM相关联的所述参数进行迭代更新之后,输出被配置为由每个SCN使用的训练结果。该方面的其他实施例包括:对应的计算系统、装置和计算机程序,该计算机程序被记录在一个或多个计算机存储设备上,各自被配置为实现该方法的动作。
前述和其他实施例可以各自可选地单独或组合地包括一个或多个以下特征。特别地,一个实施例包括所有以下特征的组合。
本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由一个或多个处理器执行时,所述指令促使一个或多个处理器按照本文提供的方法的实施方式进行操作。
本文还提供了用于实现本文提供的方法的系统。该系统包括一个或多个处理器以及耦接到一个或多个处理器并且其上存储有指令的计算机可读存储介质,当该指令由一个或多个处理器执行时,该指令促使一个或多个处理器按照本文提供的方法的实施方式执行操作。
应当理解的是,根据本文的方法可包括本文描述的方面和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。
以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书、附图以及权利要求,本文的其他特征和优点将显而易见。
附图说明
图1描绘了根据本文实施方式的使用秘密共享来训练多方机器学习安全逻辑回归模型(SLRM)的环境的示例。
图2A描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理的示例。
图2B描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理的示例。
图3描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理的示例。
图4A描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理的示例。
图4B描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理的示例。
图5描绘了根据本文实施方式的用于确定是否终止对SLRM的参数进行迭代更新的处理的示例。
图6描绘了根据本文实施方式的使用事件驱动的交互式安全建模程序来训练多方SLRM的处理的示例。
图7描绘了可以根据本文实施方式执行的处理的示例。
图8描绘了可以根据本文实施方式执行的处理的示例。
图9描绘了根据本文实施方式的示出装置的模块的示图的示例。
各附图中相同的附图标记和名称表示相同的元件。
具体实施方式
以下详细描述描述了基于秘密共享来训练安全逻辑回归模型(secure logisticregression model,SLRM),并且其被呈现以使得本领域技术人员能够在一个或多个特定实施方式的背景下做出和使用所公开的主题。可以对所公开的实施方式进行对于本领域的普通技术人员来说显而易见的各种修改、更改和置换,并且在不脱离本文的范围的情况下,所定义的一般原理可以应用于其他实施方式和应用。在一些情况下,对理解所描述的主题不必要的细节可被省略,以便一个或多个所描述的实施方式不被不必要的细节模糊,并且因为这些细节在本领域普通技术人员的技术范围内。本文不旨在限于所描述或示出的实施方式,而是按照与所描述的原理和特征相一致的最宽范围。
逻辑回归是一种广义的线性回归,也是一种分类和预测算法。逻辑回归算法根据一系列已知因变量估计离散值,并通过将数据拟合为逻辑函数来估计事件发生的概率。逻辑回归可被用于分类(例如,垃圾邮件分类)、信用风险计算和其他应用。
可以利用包括消费者信息的大数据集来提供对消费者习惯的理解、确定营销活动的目标和其他应用。一些组织已经建立了合作的数据库来构建安全的数据训练模型并促进组织之间的数据交换。在数据合作过程中,基于从不同的参与组织获得的数据构建机器学习模型。
为了解决与消费者数据的共享相关的隐私忧虑,合作组织可使用各种方法来确保他们的隐私消费者数据不会在模型训练期间暴露于其他的合作组织。例如,可以使用同态加密技术来加密消费者数据。因为该加密是同态的,所以该模型训练将产生加密的结果,当该加密的结果被解密时,将与从未加密的训练数据所能够获得的训练结果匹配。该模型训练的输出结果被返回给参与方,以便他们可以解密并获得最终结果。
当前的数据合作技术存在各种问题。例如,根据当前的方法,各方需要向其他方暴露自己的(可能高敏感性)数据,从而产生数据泄露的风险。此外,尽管许多数据库已经实施了诸如云计算、多租户分离、数据脱敏、数据审计和其他技术以确保数据隐私,但各方仍然无法保证他们的数据处于安全中。因此,由于各方之间缺乏信任,选择参与方或中立的第三方来聚集数据和处理聚集的数据可能是困难的。其次,由于缺乏对数据合作普遍接受的标准或指导规范,因此各方可能需要开发他们自己的标准,这可能是耗时且昂贵的。再次,基于同态加密或差分隐私的机器学习方案计算效率不高,因此可能需要大量处理能力,从而导致成本增加。此外,传统的建模工具和处理虽然功能强大,但对建模人员的要求高,并且需要大量的时间和精力来构建训练模型。
本文的实施方式介绍了一种通过使用秘密共享和事件驱动的交互式安全建模程序(secure modeling procedure)来训练SLRM的新方法。所描述的实施方式描述了通过反馈从双方接收的训练数据来对SLRM进行迭代更新的技术。
通过向模型提供训练数据来训练SLRM。训练数据的源是独立的安全计算节点(SCN),并且每个SCN使用秘密共享方案使其训练数据对其他节点保密。如前所述,由于训练数据可由不同实体控制的不同SCN提供,所以确保用于在SCN之间共享的训练数据的安全变得非常重要,从而训练数据中的任何敏感信息不会泄露给除提供训练数据的实体之外的实体。特别地,为了巩固这样的合作,所描述的技术引入了随机数以使每个SCN的隐私训练数据对其他SCN保密。
另外,可以通过事件驱动的交互式安全建模程序来控制SCN之间的训练数据共享。在一些实施方式中,事件驱动的交互式安全建模程序是基于事件驱动模型的(或所谓的“发布-订阅”模型)。该模型可以将彼此依赖的各方分开来完成其自己的任务。通过使用该模型,双方可以专注于自己的服务处理。一方(“发布者”)在其服务处理完成时发送通知。另一方(“订阅者”)监视通知,并且一旦接收到通知,就可以相应地触发其服务处理。在训练过程期间,每个SCN维护一个消息队列以接收来自另一方的数据,并作为响应,触发相应的建模步骤以执行SLRM。
所描述的技术可具有各种应用。例如,该技术可以应用于金融机构之间、金融机构与政府实体之间或其他组织之间的数据合作。
在一些实施方式中,所公开的框架使用SLRM和秘密共享方案。秘密共享方案是一种在涉及多方合作的场景中使用的加密法。在秘密共享方案中,秘密(例如,密钥或数据集)以预定方式被划分为若干不同份,并且每一份被提供给不同的参与方。单个参与方无法恢复或重建(restore)秘密,这样就保证了秘密的保密性和安全性。出于本文的目的,用于保护由SLRM所使用的训练的算法不限于秘密共享。与同态加密相比,通过使用秘密共享整体计算效率被大大提高了。此外,因为原始训练数据未被变换,训练过程是基于原始训练数据的精确计算,所以训练的输出模型结果是基于原始训练数据的精确训练模型。
在一些实施方式中,实施分布式模型训练框架,并且该框架引入独立的第三方随机数服务。在这些实施方式中,在将任何原始数据输入到训练模型之前,它结合由第三方随机数服务生成和分发的随机数进行计算处理。在这样的实施方式中,进一步采用事件驱动的交互式安全建模程序来提高分布式模型的效率。这样,可以防止原始数据的信息泄露,并且可以确保建模结果的完整性和模型的精度。
图1描绘了根据本文实施方式的用于使用秘密共享来训练多方机器学习安全逻辑回归模型(SLRM)的环境100的示例。数据合作服务可以由一个或多个服务器执行,这些服务器为组织提供了用于数据合作的平台/环境。示例性环境100包括用户102、安全管理代理104、节点管理代理106、随机数提供器108、网络110、以及至少两个安全计算节点(SCN)SCNA 112和SCN B 114。示例性环境100可以包括附加的用户、安全计算节点计算机、网络、系统或其他组件。在一些实施方式中,环境100可以以另一种方式配置。
在一些实施方式中,网络110包括局域网(LAN)、广域网(WAN)、因特网或者这些或其他网络的组合。网络110可以包括无线网络和/或有线网络。网络110连接计算设备(例如,服务器104-108)和安全计算节点(例如,SCN 112、SCN 114)。在一些实施方式中,可以通过有线和/或无线通信链路访问网络110。
在一些情况下,在训练过程开始之前,用户102可以预先确定与SLRM相关联的各种参数和设置。这些参数可以包括,例如,训练数据的大小、训练数据的特征和相应的数据处理设置、或者模型的超参数(即,先验分布的参数)。在对模型设置进行初始化之后,与模型相关联的信息被发送到安全管理代理104,该安全管理代理104随后可以与SCN协作以完成特定的建模逻辑。
在一些实施方式中,安全管理代理104和节点管理代理106可以被集成为单个组件以管理和控制建模处理、以及参与该处理的SCN(例如,112、114)。安全管理代理104和节点管理代理106也可以是单独的组件,如图1所示。
在一些实施方式中,安全管理代理104可以被配置为管理SLRM的训练,包括训练模型的配置、建模、迭代计算和处理管理。具体地,安全管理代理104可以促进由SCN 112、SCN114联合执行的建模处理,包括,例如对每个迭代循环进行初始化以及确定在多个迭代循环之后训练模型是否收敛。另外,安全管理代理104还可以从每个SCN获得与训练数据相关联的特定数据结构和其他信息。例如,获得诸如训练数据的源、训练数据的特征(例如,每个训练数据集的行数和列数)之类的信息。
在一些实施方式中,节点管理代理106可以被配置为执行节点选择、节点管理、项目数据管理等。例如,一旦安全管理代理104从SCN A 112和SCN B 114接收到建模请求,并且收集了SCN A和SCN B的相应数据信息,节点管理代理106就可以通过该安全管理代理104向每个SCN通知需要与之共事的其他SCN的身份、获取附加训练数据的位置,并将相应的参数分配给每个参与训练过程的SCN。另外,节点管理代理106还向SCN A和SCN B通知随机数提供器108的位置。
在所描绘的示例中,SCN A 112和SCN B 114可以由拥有关于他们各自的用户的数据集的相应组织操作,以寻求促进彼此数据交换或数据合作。例如,操作SCN A 112和SCN B114的组织可以分别拥有训练数据集P0和P1,其中P0和P1为机器学习模型的输入。训练模型的输出结果可以是例如可以由SCN A 112和SCN B 114两者使用以执行某种服务的预测结果,诸如向SCN A 112或SCN B 114的客户发放贷款的风险预测。在SCN A 112和SCN B 114从安全管理代理104接收到模型参数和设置之后,他们需要通过与彼此网络通信来完成建模任务。出于安全目的,特别是在每个SCN拥有的训练数据是高度敏感的隐私数据的情况下,SCN A 112和SCN B 114可以相互隐藏或模糊部分训练数据。为了模糊训练数据,SCN A112和SCN B 114可以向随机数提供器108请求随机数,并使用自己的训练数据和所接收的随机数来执行计算(例如,随机数和部分数据相加或相乘)。随机数可用于对训练数据进行数据模糊或加密。在一些情况下,训练数据中只有包含高度敏感隐私数据(例如,用户的个人信息)的部分可以被模糊或加密,从而允许另一方使用数据中非敏感的部分进行训练,同时不允许其他方访问高度敏感的隐私数据。可以使用任何合适的加密方案,例如RSA、DES/TripleDES和其他众所周知的加密方案。在一些实施方式中,随机数可以是数字、向量或矩阵等。在一些实施方式中,随机数可以由SCN 112、SCN 114任一生成。在一些实施方式中,随机数可以由独立的第三方提供,以确保隐私数据不会在共享和训练期间被其他SCN泄露。在一些实施方式中,与随机数提供器108、安全管理代理104和节点管理代理106相关的服务可以由共同选择且信任的第三方代理提供和执行。
对于每个SCN,在使用随机数加密数据之后,该加密的数据可以被发送给另一个SCN。因为在SCN 112和SCN 114之间传输的数据是加密的,所以数据的敏感信息不被暴露。在一些实施方式中,来自SCN A 112和SCN B 114的计算结果被用于机器学习模型训练。具体地,每个SCN使用所接收的加密数据作为SLRM的输入,以对SLRM所基于的逻辑回归函数的参数进行迭代更新。在多次迭代之后,可以基于预定条件终止训练。在一些实施方式中,本地数据管理由SCN 112、SCN 114各自执行,并且可以包括在数据库、对象存储设备、内存数据存储设备(例如,Redis)或其他类型的存储设备中存储数据。
图2A描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理200a的示例。
在所描绘的示例中,为了优化SLRM的目标函数,使用小批量随机梯度下降(Stochastic Gardient Descent,SGD)方法。SGD是基于梯度下降优化的随机逼近来优化可微分的目标函数的迭代方法。在本文中,为了优化目标函数,SGD方法将执行以下迭代:
其中,m表示小批量SGD的样本大小。在该示例中,X是m*k样本矩阵。矩阵X的每一行表示一个样本,以及Xi表示矩阵X的第i行,[j]表示向量Xi的第j元素。θ表示参数列向量。Yi表示小批量样本的第i样本的标签,其中Yi可以是0或1。α和λ是超参数,用于确定机器学习网络结构以及如何训练网络。它们可以在训练之前由用户设置。
在该描绘的示例中,通过使用秘密共享,等式(1)中所使用的所有样本训练数据集被分成两份。也就是说,SLRM的样本训练数据来自于两个源,SCN P0和SCN P1。具体地,样本数据矩阵X被划分为XL和XR,从而样本数据XL属于SCN P0,而XR属于SCN P1。假设SCN P0和SCNP1中的样本数据分别具有特征k0和k1,并且k=k0+k1。对于样本数据集Xi,SCN P0包含的元素Xi表示为Xi,[1],Xi,[2],…Xi,[k0],而SCN P1包含的元素Xi表示为Xi,[k0+1],Xi,[k0+2],…Xi,[k]。同样地,参数列向量θ也可以分为θL和θR。因此,使用这些重新定义的参数,在垂直数据划分下,等式(1)可表示为:
其中,X和Y是要保护的输入数据。X表示特征数据,Y表示基于特征数据做出的预测。例如,在贷款借款场景中,X可以是收入、学历、信用记录等。根据所述信息,银行可以做出预测Y,即贷款借款人的风险是否足够低以发放贷款。θ是需要保护的中间结果,在训练过程终止后,θ也是训练结果的最终输出。等式(2)中列出的其他参数是常规使用的众所周知的参数。
在SLRM中使用的安全逻辑回归训练算法基于具有二阶正则化的小批量SGD,并应用了双方ABY安全计算框架的数学电路(mathematic circuit(A))和加密电路(GarbledCircuit(Yao))。数学电路(A)基于乘法三元组(multiplication triple)和秘密共享,并且可以用于计算加法、减法和乘法,从而可以计算算法中使用的多项式、点积和矩阵乘法。同时,加密电路(Yao)可用于执行其他类型的计算。在该计算框架中,每个SCN使用秘密共享进行安全计算。在每个计算步骤之后,生成中间计算结果并将其分成多份(份额可以是相等或不等的),而每个SCN获得一份中间计算结果。在每个步骤之后,两个SCN使用所获得的份额进入下一步骤,并且最终在迭代终止时,把最后生成的份额组合。
在迭代循环开始之前,首先对用于更新模型的所有参数进行初始化。在初始化处理中,两个SCN都生成随机列向量作为一份初始化的参数列向量θ,其中dim(θ)=(k0+k1+1,1),dim(θL)=(k0+1,1),dim(θR)=(k1,1)。初始化的参数列向量θ可以按份额表示为:
θL=<θL>0+<θL>1 等式(3)
θR=<θR>0+<θR>1 等式(4)
其中,<>表示份额,[i]表示向量的第i元素(即,θ[i]=<θ[i]>0+<θ[i]>1)。因此,在SCN P0处所生成的随机列向量可以用下式表示:
<θ>0=(<θ[1]>0,<θ[2]>0,<θ[3]>0,…<θ[k]>0) 等式(5)
由于每个样本数据集被垂直划分,因此<θ>0可以通过以下两个列向量进一步划分:
L>0=(<θL[1]>0,<θL[2]>0,<θL[3]>0,…<θL[k0]>0) 等式(6)
R>0=(<θR[1]>0,<θR[2]>0,<θR[3]>0,…<θR[k1]>0) 等式(7)
其中,<θ>0=<θL>0||<θR>0,||表示连接关系。
类似地,在SCN P1处生成的随机列向量可以被表示为下式:
<θ>1=(<θ[1]>1,<θ[2]>1,<θ[3]>1,…<θ[k]>1) 等式(8)
由于每个样本数据集被垂直划分,因此<θ>1可以通过以下两个列向量进一步划分:
L>1=(<θL[1]>1,<θL[2]>1,<θL[3]>1,…<θL[k0]>1) 等式(9)
R>1=(<θR[1]>1,<θR[2]>1,<θR[3]>1,…<θR[k1]>1) 等式(10)
其中,<θ>1=<θL>1||<θR>1,||表示连接关系。
通过图2A-6说明迭代处理。如前所述,迭代的目的是更新等式(2)中所示的参数θ。
图2A示出了在一次迭代期间迭代循环的第一步骤(这里称为“步骤1”)的第一子步骤(这里称为“步骤1.1”)。在步骤1中,每个SCN首先基于等式计算一份A:
A=Xθ=XLθL+XRθR 等式(11)
其中,通过使用小批量样本向量X乘以参数θ的列向量来计算A。
在一些实施方式中,XL和XR还将用于在迭代循环的步骤3中更新参数。在一些实施方式中,相同的小批量样本数据可在后续的迭代中被用于计算。
图2A(步骤1.1)示出了使用乘法三元组和秘密共享计算XLθL的值。如图2A中所示,SCN P0是提供原始数据的一方。为了隐藏该原始数据,SCN P0和SCN P1首先获得随机数。在一些实施方式中,随机数可以是数字、向量或矩阵。在一些实施方式中,随机数可以由SCN生成。在一些实施方式中,可以向例如图1中所示的随机数提供器108的第三方机构请求随机数并从该第三方机构接收随机数。
如图2A所示,获得的随机数包括随机矩阵u、随机向量v和随机数z。所获得的随机数分布在SCN P0和SCN P1之间。在一些实施方式中,SCN P0获得随机矩阵u、v的表示为ν0的份额、z的表示为z0的份额。SCN P1获得v的表示为ν1的份额、以及z的表示为z1的份额。在一些实施方式中,z的份额可以通过同态计算生成。在一些实施方式中,随机向量u由SCN P0生成,而随机向量v的份额ν0和ν1分别由SCN P0和SCN P1生成。在一些实施方式中,u、v和z及其对应的份额全部由可信的第三方商用服务器生成。每个随机数和相应随机数的份额是相互关联的,并且它们之间的关系可表示为:
z0+z1=u*v=u*(ν01) 等式(12)
假设a=XL,并且b0=<θL>0。为了隐藏SCN P0的数据,使用u加密a,例如,通过将a和u相加、相减或相乘。在一些实施方式中,当在后续的迭代中隐藏相同的XL时,随机矩阵u可以相同。同样,通过使用随机向量ν0来加密<θL>0。如图2A所示,SCN P0向SCN P1发送加密的XL(其被表示为e=a-u)和加密的<θL>0(其被表示为(b0–ν0))。在一些实施方式中,如果在后续的迭代中使用相同的随机矩阵u来隐藏相同的XL,则不需要重新发送加密的XL(e=a-u)。在SCN P1侧,假设b1=<θL>1。在这种情况下,随机向量份额ν1被用于隐藏<θL>1的值,并且将(b1–ν1)从SCN P1发送至SCN P0
在SCN P0和SCN P1之间进行数据交换之后,SCN P0处的步骤1.1的数据队列被更新为:
c0=u*f+e*b0+z0 等式(13)
其中,f=b-v。
以及SCN P1处的步骤1.1的数据队列被更新为:
c1=e*b1+z1 等式(14)
其中,c0和c1均是XLθL的份额。
基于以上等式,XLθL可以被计算为:
XLθL=c0+c1 等式(15)
c0+c1=u*f+e*b+u*v 等式(16)
c0+c1=u*b-u*v+a*b-u*b+u*v 等式(17)
图2B描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理200b的示例。
具体地,图2B示出了迭代循环的步骤1的第二子步骤(这里为步骤1.2)。在步骤1.2,使用乘法三元组和秘密共享计算XRθR的值。如图2B所示,SCN P1是提供原始数据的一方。为了隐藏该原始数据,SCN P1和SCN P0首先获得随机数。
如图2B所示,所获得的随机数包括随机矩阵u、随机向量v和随机数z。所获得的随机数分布在SCN P1和SCN P0之间。SCN P1获得随机矩阵u、v的表示为v0的份额、z的表示为z0的份额。SCN P0获得v的表示为v1的份额、以及z的表示为z1的份额。在一些实施方式中,z的份额可以通过同态计算生成。在一些实施方式中,随机向量u由SCN P1生成,而随机向量v的份额v0和v1分别由SCN P1和SCN P0生成。在一些实施方式中,u、v和z及其份额全部由可信的第三方商业服务器生成。每个随机数和相应随机数的份额是相互关联的,并且满足如等式(12)所示的关系。
假设a=XR,并且b0=<θR>0,为隐藏a的数据信息,SCN P1首先使用u加密a,例如,在a和u之间执行加法、减法或乘法。在一些实施方式中,当在后续的迭代中隐藏相同的XR时,随机矩阵u可以是相同的。同样,首先使用随机向量ν0加密<θR>0。如图2B所示,SCN P1向SCN P0发送加密的XR(表示为e=a-u)和加密的<θR>0(表示为(b0–ν0))。在一些实施方式中,如果在后续的迭代中使用相同的随机矩阵u来隐藏相同的XL,则加密的XL(e=a-u)不需要被重新发送。在SCN P0侧,假设b1=<θR>1。在这种情况下,随机向量份额ν1被用于隐藏<θR>1的值,并且(b1–ν1)被从SCN P0发送到SCN P1
在SCN P1和SCN P0之间进行数据交换之后,SCN P1处的步骤1.2的数据队列通过等式(13)更新,a和SCN P0处的步骤1.2的数据队列通过等式(14)更新。基于上面的等式,XLθL可以通过等式(16)和(17)计算,以及:
XRθR=c0+c1 等式(18)
这样,完成一个迭代循环的步骤1,并且可以通过组合公式(15)和(18)的结果来计算等式(11)。
图3描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理300的示例。具体而言,图3示出了迭代循环中的第二步骤(这里称为“步骤2”)。
在步骤2,使用以下等式计算预测误差的列向量:
E=g(A)–Yi 等式(19)
其中,A是与步骤1中描述的等式(11)中的相同的值。g是S形函数(sigmoidfunction)的拟合函数,其可以是多项式函数拟合。也就是说,g()可以是多项式函数,并且其最高阶是d。在本文中描述的示例中,设置d=7,并且g(x)可以由以下等式表示:
g(x)=0.5+1.73496*(x/8)-4.19407*(x/8)3+5.43402*(x/8)5-2.50739*(x/8)7等式(20)
其中,g(A)表示由g(A[1]),g(A[2]),...g(A[m])组成的列向量。
使用乘法三元组和秘密共享,SCN P0和SCN P1均需要计算g(<A[i]0>+<A[i]1>)。假设p=<A[i]0>,并且q=<A[i]1>。多项式函数g(p+q)可以扩展为函数:
g(p+q)=h0(q)+h1(q) p+h2(q)p2+…+hd(q)pd 等式(21)
其中,h0,h1,…hd均是q的多项式函数,并且可以由SCN P1计算,而p,p2,p3…pd可以由SCN P0计算。
假设向量a=(p,p2,p3……pd),向量b=(h1(q),h2(q),…hd(q)),所以g(p+q)=a·b+h0(q),其中点积(a·b)可以通过图3中所示的处理计算,其包括优化的乘法三元组和秘密共享。可以通过基于秘密共享执行加法来计算E的最终结果。
如图3所示,所获得的随机数包括随机矩阵u、随机向量v和随机数z。所获得的随机数分布在SCN P0和SCN P1之间。SCN P0获得随机矩阵u、z的表示为z0的份额。SCN P1获得随机向量v以及z的表示为z1的份额。每个随机数和相应随机数的份额是相互关联的,它们之间的关系可表示为:
z0+z1=u*v 等式(22)
然后,如图3所示,SCN P0首先向SCN P1发送加密的数据e=a-u,并且SCN P1向SCNP0发送加密的数据f=b-v。步骤和计算与步骤1中的步骤和计算类似,详情请参考前面对图2A和图2B的描述。
在SCN P0和SCN P1之间进行数据交换之后,SCN P0处的步骤2的数据队列更新为:
c0=u*f+z0 等式(23)
并且SCN P1处的步骤2的数据队列更新为:
c1=e*b+z1 等式(24)
基于上面的等式,(a·b)可以计算为:
(a·b)=c0+c1 等式(25)
c0+c1=u*f+e*b+u*v 等式(26)
c0+c1=u*b-u*v+a*b-u*b+u*v 等式(27)
图4A描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理400a的示例。图4B描绘了根据本文实施方式的用于对SLRM的参数进行迭代更新的子处理400b的示例。
具体地,图4A和4B示出了用于执行一个迭代循环的第三步骤的处理(这里称为“步骤3”)。
在步骤3,列向量θ、以及SCN P0和SCN P1均可以获得更新后的θ的份额。在此步骤中,更新后的θ可表示为:
其中,E与步骤2的等式(19)中的E相同,并且
XTE=(XL)TE||(XR)TE 等式(29)
计算(XL)TE的方法与计算XLθL的方法相同,而计算(XR)TE的方法与计算XRθR的方法相同,此处将不再赘述。在等式(29)中,X表示包含多个样本的特征数据的矩阵,并且E表示误差向量。
在步骤3之后,完成一个迭代循环,并且训练过程进入下一个迭代循环并重复步骤1-3,或者如果条件满足则终止训练过程,如下面更详细描述的。
图5描绘了根据本文实施方式的用于确定是否终止更新SLRM的参数的迭代的处理500的示例。
在一些实施方式中,当完成的迭代循环的数量已达到预定数量时,迭代可被终止。在一些实施方式中,阈值是预定的,并且当两个连续的迭代结果之间的差小于该阈值时,迭代被终止。
具体地,例如,假设在一个迭代循环之前和之后的参数是θ和θ',使用秘密共享计算差D=(θ'–θ)。假设,a0=<DT>0,a1=<DT>1,b0=<D>0,以及b1=<D>1。SCN P0和SCN P1均使用乘法三元组和秘密共享计算一份DTD,并且将每个结果组合以获得D。
如图5所示。在一些实施方式中,SCN P0生成随机矩阵u0和v0,并且SCN P1生成随机矩阵u1和v1。后续计算的方法类似于先前在图2A、图2B和图4A、图4B中描述的方法,并且这里将不再重复。在SCN P0和SCN P1之间交换数据之后,SCN P0处的计算结果为:
c0=–e*f+a0*f+eb0+z0 等式(30)
其中,f=b-v。
SCN P1处的计算结果为:
c1=a1*f+eb1+z1 等式(31)
其中,c0和c1均是DTD的份额。
基于上面的等式,DTD可以计算为:
DTD=c0+c1 等式(32)
c0+c1=e*f+a*f+e*b+u*v 等式(33)
c0+c1=u*f+a*b–u*b+u*v 等式(34)
c0+c1=u*b–u*v+a*b-u*b+u*v 等式(35)
图6描绘了根据本文实施方式的使用事件驱动的交互式安全建模程序来训练多方SLRM的处理600的示例。
在一些实施方式中,方法600的各个步骤可以并行、组合、循环或以任何顺序运行。为了清楚地呈现,以下描述在本说明书中的其他附图的背景下一般地描述了方法600。然而,应当理解,方法600可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。例如,方法600可以由一个或多个数据处理装置执行,该数据处理装置被配置为使用秘密共享执行机器学习算法。所述数据处理装置可以包括例如通用CPU和/或诸如GPU、FPGA、甚至定制ASIC处理器的硬件加速器,或者由其实现。
在一些实施方式中,如图6所示,处理600a(包括步骤602a-622a)由节点A结合数据库执行,而处理600b(包括步骤602b-624b)由节点B结合数据库执行。数据库可以是远程字典服务器(Remote Dictionary Server,Redis)并且支持节点A和节点B的数据的传输和临时存储。在一些实施方式中,数据可以在SCN A 112和SCN B 114之间传输而无需通过数据库,并且可以在节点A和节点B处各自本地存储和更新订阅者队列。在迭代处理开始之前,节点A和节点B各自进入独立的建模处理并启动一批次迭代。节点A和节点B各自可以发布和订阅数据,因此节点A和节点B各自既是发布者(或“生产者”)也是订阅者(或“消费者”)。在该示例中的事件驱动模型下,即使节点A和节点B相互回复,它们的建模处理600a和600b也是独立的并且是分开进行的。
在602a和602b,节点A和节点B各自进入一独立的批次迭代。602a和602b可以同时或连续地发生。在602a之后,处理600a进行到604a。在602b之后,处理600b进行到604b。
在604a,节点A向节点B发布步骤1的数据。在一些实施方式中,通过向数据库发送加密的样本数据来发布步骤1的数据,因此该数据库可以存储和更新订阅者队列。一旦节点A完成该步骤,就可以向节点B发送通知以通知节点B:来自节点A的步骤1的数据已完成发布。在604a之后,处理600a进行到606a。
在606a,节点A从节点B订阅步骤1的数据。在一些情况下,因为SLRM是基于秘密共享训练的,所以节点A不能自己完成训练,并且来自节点A和节点B的数据都被用作模型的输入。在一些实施方式中,节点A通过向节点B请求来自节点B的步骤1的数据来进行这种订阅。如果数据库中的数据队列由来自节点B的步骤1的数据更新,则节点A将接收通知。因为此时节点A尚未接收到来自节点B的通知,所以不能触发600a的下一步骤并且暂时中止处理600a。
同时,在604b,节点B向节点A发布步骤1的数据。在一些实施方式中,通过向数据库发送加密的样本数据来发布步骤1的数据,因此该数据库可以存储和更新订阅者队列。一旦节点B完成该步骤,就可以向节点A发送通知以通知节点A:来自节点B的步骤1的数据已经完成发布。在604b之后,处理600b进行到606b。
在606b,节点B从节点A订阅步骤1的数据。因为此时节点A已经发布了步骤1的数据并且节点B已经接收到来自节点A的通知,所以触发下一步骤并且在606b之后,处理600b进行到608b。
在608b,节点B通过使用其自己的数据和从节点A接收的步骤1的数据来本地计算步骤1的结果。该步骤的等式和详细步骤可以参考先前描述的图2B。在608b之后,处理600b进行到610b。
因为步骤610b和612b都可以由节点B独立地执行,所以节点B可以一起或连续地执行这两个步骤而不依赖于节点A的动作。在步骤610b和612b之后,通过使用由节点B发布的步骤2的数据来更新数据库中的订阅者队列,并且向节点A发送发布通知。在步骤612b之后,因为节点B尚未接收到来自节点A的通知,所以下一步骤不能被触发并且处理600b暂时中止。
返回到处理600a的步骤606a。如果此时节点B已经执行步骤604b并且节点A已经接收到来自节点B的通知,则触发处理600a的下一步骤,并且在606a之后,处理600a进行到608a。
因为步骤608a-612a可以由节点A独立地执行而无需来自节点B的数据,所以节点A可以连续地执行这些步骤。在步骤610a之后,通过使用由节点A发布的步骤2的数据来更新数据库中的订阅者队列,并且向节点B发送发布通知。在步骤612a之后,如果节点B已经执行了步骤610b并且节点A接收到相应的通知,则触发600a的下一步骤,并且处理600a进行到614a。否则,暂时中止处理600a,直到步骤610b被执行。
因为步骤614a-618a可以由节点A独立地执行,所以节点A可以连续地执行这些步骤。在步骤614a和616a之后,通过使用由节点A发布的步骤3的数据来更新数据库中的订阅者队列,并且向节点B发送发布通知。在步骤618a之后,因为节点A尚未接收到来自节点B的通知,因此可以暂时中止处理600a,直到接收到来自节点B的通知。
返回到处理600b。在节点A发布其步骤2的数据、并发送相应通知的步骤610a之后,处理600b的下一步骤被触发,并且处理600b可以进行到614b。在614b,节点B通过使用其自己的数据和从节点A接收的步骤2的数据来本地计算步骤2的结果。计算步骤的等式和详细步骤可以参考先前描述的图3。在614b之后,处理600b进行到616b。
因为616b-620b中的每个步骤可以由节点B独立地执行,所以节点B可以连续地执行这三个步骤。在616b,通过使用等式(20)来计算sigmoid(wx)-y的值。在步骤618b和620b之后,通过使用由节点B发布的步骤3的数据来更新数据库中的订阅者队列,并且向节点A发送发布通知。在步骤620b之后,如果此时节点A已经执行了616a并且节点B已经接收到来自节点A的通知,则600b的下一步骤被触发,并且处理600b进行到622b。
在622b,节点B使用其自己的数据和从节点A接收的步骤3的数据来本地计算步骤3的结果。在先前描述的图4B中详述了计算的等式和详细步骤。在622b之后,因为由节点A和节点B共同确定是否进入下一次迭代,在622b之后,并且因为节点B尚未接收到来自节点A的通知,所以处理600b暂时中止。
返回到处理600a,在步骤618b之后,即节点B已发布其步骤3的数据、并已发送相应通知,处理600a的下一步骤被触发,并且处理600a可进行到620a。在620a,节点A通过使用其自己的数据和从节点B接收的步骤3的数据来本地计算步骤3的结果。计算步骤的等式和详细步骤可以参考先前描述的图3。在620a之后,节点A和节点B都完成了迭代循环。
如先前在图4A、图4B中所述,是否终止迭代循环取决于是否满足预定条件。如果满足,则处理600a和600b都进入622a和624a,并再次重复602a-620a和602b-622b的步骤。如果不满足,则终止迭代,并且处理600a和600b分别在618a和622b处停止。
图7描绘了可以根据本文实施方式执行的处理700的示例。在一些实施方式中,方法700的各个步骤可以并行、组合、循环或以任何顺序运行。为了清楚地呈现,以下描述在本说明书中的其他附图的背景下一般地描述了方法700。然而,应当理解,方法700可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。例如,方法700可以由一个或多个数据处理装置执行,该数据处理装置被配置为使用秘密共享执行机器学习算法。该数据处理装置可以包括例如通用CPU和/或诸如GPU、FPGA、甚至定制ASIC处理器的硬件加速器,或者由其实现。
在702,使用秘密共享将SLRM的样本训练数据划分为两份,并且将每份分配给SCN。在一些实施方式中,样本数据矩阵X被划分为XL和XR,并且样本数据矩阵XL属于SCN 1,样本数据矩阵XR属于SCN 2。在702之后,处理700进行到704。
在704,使用每份样本训练数据对SLRM的参数进行迭代更新。在一些实施方式中,通过使用小批量随机梯度下降(SGD)方法来优化SLRM的目标函数。
在一些实施方式中,SLRM基于可被表示为下式的逻辑回归函数:
其中,m表示小批量SGD的样本大小。X表示m*k样本矩阵。矩阵X的每一行表示一个样本,Xi表示矩阵X的第i行,[j]表示向量Xi的第j元素。样本数据矩阵X被划分为XL和XR,并且样本数据XL属于SCN P0,而XR属于SCN P1。θ表示参数列向量,该列向量θ可以被垂直划分为θL和θR
在一些实施方式中,训练SLRM包括使用事件驱动模型。在704之后,处理700进行到706。
在706,对于每个SCN,基于以下等式计算一份A:
A=Xθ=XLθL+XRθR
在一些实施方式中,计算XLθL和XRθR包括:通过使用随机数隐藏由每个SCN提供的原始数据,以及在SCN之间交换隐藏的数据。在一些实施方式中,在隐藏原始数据之前,随机数被每个SCN获得。在一些实施方式中,随机数可以是数字、向量或矩阵。在一些实施方式中,随机数可以由SCN生成。在一些实施方式中,可以向第三方机构请求随机数并从其接收随机数。在706之后,处理700进行到708。
在708,基于以下等式计算预测误差的列向量:
E=g(A)-Yi
其中,g是S形函数(sigmoid function)的拟合函数,它可以是多项式函数拟合。在一些实施方式中,如果阶数或g(x)是7,则g(x)可以由以下等式表示:
g(x)=0.5+1.73496*(x/8)-4.19407*(x/8)3+5.43402*(x/8)5-2.50739*(x/8)7其中,g(A)表示由g(A[1]),g(A[2]),g(A[m])组成的列向量。在708之后,处理700进行到710。
在710,更新后的列向量θ可以表示为:
其中,XTE=(XL)TE||(XR)TE。
在710之后,处理700进行到712。
在712,如果满足预定条件则终止迭代。在一些实施方式中,当完成的迭代循环的数量已达到预定数量时,可以终止迭代。
在一些实施方式中,阈值是预定的,并且当两个连续迭代结果之间的差小于该阈值时,终止迭代。在712之后,处理700可以停止。
图8描绘了可以根据本文实施方式执行的处理800的示例。在一些实施方式中,方法800的各个步骤可以并行、组合、循环或以任何顺序运行。为了清楚地呈现,以下描述在本说明书中的其他附图的背景下一般地描述了方法800。然而,应当理解,方法800可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。例如,方法800可以由一个或多个数据处理装置执行,该数据处理装置被配置为使用秘密共享执行机器学习算法。数据处理装置可以包括例如通用CPU和/或诸如GPU、FPGA、甚至定制ASIC处理器的硬件加速器,或者由其实现。
在802,用户通过确定与SLRM相关联的多个参数来对SLRM进行初始化。在一些实施方式中,参数可以包括训练数据的大小、与训练数据相关联的特征、相应的SLRM的设置、SLRM的超参数。
在一些实施方式中,在用户对SLRM进行初始化之后,将与SLRM相关联的信息发送到安全管理代理。在一些实施方式中,安全管理代理处理SLRM和馈送到模型的训练数据。在一些实施方式中,节点管理代理被配置为选择和管理参与训练的SCN。在一些实施方式中,安全管理代理和节点管理代理都可以被配置为第三方代理。在802之后,处理800进行到804。
在804,至少两个SCN向随机数提供器请求随机数,并且所请求的随机数被用于加密存储在每个SCN中的数据。在一些实施方式中,随机数可以是数字、向量或矩阵等。在一些实施方式中,随机数可以由至少一个SCN生成。在一些实施方式中,随机数可以由独立的第三方提供。
在一些实施方式中,加密数据包括使用数据和所接收的随机数执行计算。在一些实施方式中,所执行的计算是加法、减法和乘法中的至少一个。在802之后,处理800进行到804。
在806,将加密的数据用作输入以基于秘密共享对SLRM的参数进行迭代更新。该步骤的细节将在图7中进一步描述。在806之后,处理800进行到808。
在808,经训练的SLRM的输出用于执行每个SCN的服务。在一些实施方式中,该服务可以是预测服务或分类服务。在808之后,处理800停止。
图9描绘了根据本文实施方式的示出了装置的模块的示图900的示例。装置900可以是用于训练多方安全逻辑回归模型的装置的示例性实施方式。装置900可以对应于上述实施方式,并且装置900包括以下:划分器或划分单元902,用于使用秘密共享(SS)将安全逻辑回归模型(SLRM)的样本训练数据划分为多份;更新器或更新单元904,用于使用每份样本训练数据对与SLRM相关联的参数进行迭代更新,其中,该迭代更新一直继续到出现了预定条件为止;输出器或输出单元906,用于在对与SLRM相关联的参数进行迭代更新之后输出训练结果,其中,该结果被配置为由每个SCN使用。
在可选实施方式中,SLRM的目标函数是通过使用小批量随机梯度下降(SGD)方法来优化的逻辑回归函数,并且逻辑回归函数由等式(2)表示。
在可选实施方式中,更新器或更新单元904用于根据事件驱动模型对与SLRM相关联的参数进行迭代更新。
在可选实施方式中,更新器或更新单元904用于:针对每个SCN,计算表示列向量的A的值,其中,基于等式(11)执行该计算;基于等式(19)确定预测误差的列向量;基于等式(28)和等式(29)确定更新的列向量。
在可选实施方式中,计算表示列向量的一份A包括通过使用随机数加密由每个SCN提供的原始数据,并在SCN之间交换加密的数据。
在可选实施方式中,每个随机数是数字、向量和矩阵中的至少一个。
在可选实施方式中,预定条件为出现了两个连续的迭代结果之间的差小于预定阈值。
前面实施方式中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实现设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置中每个单元的功能和角色的实现过程,可以参考前一方法中相应步骤的实现过程。为简单起见,这里省略了细节。
由于装置实现基本上对应于方法实现,对于相关部分,可以参考方法实现中的相关描述。先前描述的装置实现仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择一些或所有模块,以实现本文解决方案的目标。本领域普通技术人员无需付出创造性的劳动就能理解和实现本文的实施方式。
再次参见图9,它可以被解释为示出内部功能模块和用于训练多方安全逻辑回归模型的装置的结构。执行装置可以是被配置为能对训练进行建模的装置的示例。
本文中描述的主题、动作和操作的实施方式可以在数字电子电路、在有形体现的计算机软件或固件、计算机硬件中实现,包括在本文中公开的结构及其结构等同物的,或者它们中的一个或多个的组合。本文中描述的主题的实施方式可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。载体可以是有形的非暂态的计算机存储介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成以编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统,或者它们的一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、应用程序(app)、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译语言或演绎性语言,说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括通过数据通信网络互连的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本中;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。
本文中描述的处理和逻辑流程可以由一台或多台计算机执行一个或多个计算机程序进行,以进行通过对输入数据进行运算并生成输出的操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备。大容量存储设备可以是例如,磁盘、磁光盘或光盘或固态驱动器。但是,计算机不必需这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
为了提供与用户的交互,本文中描述的主题的实施方式可以在计算机上实施或被配置为与该计算机通信,该计算机具有:用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)、以及用户可以通过输入设备向计算机提供输入的输入设备,例如键盘和例如鼠标、轨迹球或触摸板的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送请求以响应从web浏览器接收到的请求,或者通过与例如智能电话或电子平板电脑等的在用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用程序的智能电话)发送文本消息或其他形式的消息,并且反之从用户接收响应消息来与用户交互。
虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施方式的具体特征的描述。在本文多个单独实施方式的上下文中描述的多个特定特征也可以在单个实施方式中组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独地或以任何合适的子组合来实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中删除来自要求保护的组合的一个或多个特征,并且权利要求可以针对子组合或子组和的变体。
类似地,虽然在附图中描绘了操作并且以特定顺序在权利要求中叙述,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统模块和组件的划分不应被理解为在所有实施方式中都需要这种划分,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。
已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (17)

1.一种计算机实现的方法,用于训练多方安全逻辑回归模型,包括:
使用秘密共享SS将安全逻辑回归模型SLRM的样本训练数据划分为多份,其中,每一份被分配给安全计算节点SCN;
使用每份所述样本训练数据对与所述SLRM相关联的参数进行迭代更新,其中,所述迭代更新一直持续到出现了预定条件为止;以及
在对与所述SLRM相关联的所述参数进行迭代更新之后,输出被配置为由每个SCN使用的训练结果;
其中,所述SLRM的目标函数是通过使用小批量随机梯度下降SGD方法来优化的逻辑回归函数,所述逻辑回归函数被表示为:
其中:
α和λ是超参数,用于确定机器学习网络结构;
m表示所述小批量SGD的样本大小;
X表示m*k样本矩阵,k用于表征矩阵X的列数,X为收入、学历、信用记录;
矩阵X的每一行表示一个样本;
Xi表示所述矩阵X的第i行;
Yi表示小批量样本的第i样本的标签;
[j]表示向量Xi的第j元素;
XL表示属于SCN的一份样本数据X,表示XL在第i行的样本数据;
XR表示属于SCN的一份样本数据X,表示XR在第i行的样本数据;以及
θ表示参数列向量,并且所述参数列向量θ能够被垂直划分为θL和θR
2.如权利要求1所述的计算机实现的方法,其中,根据事件驱动模型执行与所述SLRM相关联的参数的迭代更新。
3.如权利要求1所述的计算机实现的方法,其中,对与所述SLRM相关联的参数进行迭代更新包括:
针对每个SCN,计算表示列向量的A的值,其中,基于以下等式执行所述计算:
A=Xθ=XLθL+XRθR
其中:
XLθL和XRθR分别表示针对SCN的一份A;
基于以下等式确定预测误差的列向量:
E=g(A)-Yi
其中:
g表示S形函数的拟合函数,其能够是多项式函数拟合;
基于等式确定更新的列向量:
其中:
XTE=(XL)TE||(XR)TE。
4.如权利要求3所述的计算机实现的方法,其中,计算表示列向量的一份A包括:
通过使用随机数加密由每个SCN提供的原始数据;以及
在所述SCN之间交换所述加密的数据。
5.如权利要求4所述的计算机实现的方法,其中,所述随机数均是数字、向量和矩阵中的至少一个。
6.如权利要求5所述的计算机实现的方法,其中,所述预定条件为出现了两个连续的迭代结果之间的差小于预定阈值。
7.一种非暂态计算机可读存储介质,其耦接到一个或多个计算机,并且其上存储有能够由所述一个或多个计算机执行的指令,以:
使用秘密共享SS将安全逻辑回归模型SLRM的样本训练数据划分为多份,其中,每一份被分配给安全计算节点SCN;
使用每份所述样本训练数据对与所述SLRM相关联的参数进行迭代更新,其中,所述迭代更新一直持续到出现了预定条件为止;以及
在对与所述SLRM相关联的所述参数进行迭代更新之后,输出被配置为由每个SCN使用的训练结果;
其中,所述SLRM的目标函数是通过使用小批量随机梯度下降SGD方法来优化的逻辑回归函数,所述逻辑回归函数被表示为:
其中:
α和λ是超参数,用于确定机器学习网络结构;
m表示所述小批量SGD的样本大小;
X表示m*k样本矩阵,k用于表征矩阵X的列数,X为收入、学历、信用记录;
矩阵X的每一行表示一个样本;
Xi表示所述矩阵X的第i行;
Yi表示小批量样本的第i样本的标签;
[j]表示向量Xi的第j元素;
XL表示属于SCN的一份样本数据X,表示XL在第i行的样本数据;
XR表示属于SCN的一份样本数据X,表示XR在第i行的样本数据;以及
θ表示参数列向量,所述参数列向量θ能够被垂直划分为θL和θR
8.如权利要求7所述的非暂态计算机可读存储介质,其中,根据事件驱动模型执行与所述SLRM相关联的参数的迭代更新。
9.如权利要求7所述的非暂态计算机可读存储介质,其中,对与所述SLRM相关联的参数进行迭代更新包括:
针对每个SCN,计算表示列向量的A的值,其中,基于以下等式执行所述计算:
A=Xθ=XLθL+XRθR
其中:
XLθL和XRθR分别表示针对SCN的一份A;
基于以下等式确定预测误差的列向量:
E=g(A)-Yi
其中:
G表示S形函数的拟合函数,其能够是多项式函数拟合;
基于等式确定更新的列向量:
其中:
XTE=(XL)TE||(XR)TE。
10.如权利要求9所述的非暂态计算机可读存储介质,其中,计算表示列向量的一份A包括:
通过使用随机数加密由每个SCN提供的原始数据;以及
在所述SCN之间交换所述加密的数据。
11.如权利要求10所述的非暂态计算机可读存储介质,其中,所述随机数均是数字、向量和矩阵中的至少一个。
12.如权利要求11所述的非暂态计算机可读存储介质,其中,所述预定条件为出现了两个连续的迭代结果之间的差小于预定阈值。
13.一种用于训练多方安全逻辑回归模型的系统,包括:
一个或多个计算机;和
一个或多个计算机可读存储器,耦接到一个或多个计算机并且其上存储有能够由一个或多个计算机执行的指令,以:
使用秘密共享SS将安全逻辑回归模型SLRM的样本训练数据划分为多份,其中,每一份被分配给安全计算节点SCN;
使用每份所述样本训练数据对与所述SLRM相关联的参数进行迭代更新,其中,所述迭代更新一直持续到出现了预定条件为止;以及
在对与所述SLRM相关联的所述参数进行迭代更新之后,输出被配置为由每个SCN使用的训练结果;
其中,所述SLRM的目标函数是通过使用小批量随机梯度下降SGD方法来优化的逻辑回归函数,所述逻辑回归函数被表示为:
其中:
α和λ是超参数,用于确定机器学习网络结构;
m表示所述小批量SGD的样本大小;
X表示m*k样本矩阵,k用于表征矩阵X的列数,X为收入、学历、信用记录;
矩阵X的每一行表示一个样本;
Xi表示所述矩阵X的第i行;
Yi表示小批量样本的第i样本的标签;
[j]表示向量Xi的第j元素;
XL表示属于SCN的一份样本数据X,表示XL在第i行的样本数据;
XR表示属于SCN的一份样本数据X,表示XR在第i行的样本数据;以及
θ表示参数列向量,并且所述参数列向量θ能够被垂直划分为θL和θR
14.如权利要求13所述的系统,其中,根据事件驱动模型执行与所述SLRM相关联的参数的迭代更新。
15.如权利要求13所述的系统,其中,对与所述SLRM相关联的参数进行迭代更新包括:
针对每个SCN,计算表示列向量的A的值,其中,基于以下等式执行所述计算:
A=Xθ=XLθL+XRθR
其中:
XLθL和XRθR分别表示针对SCN的一份A;
基于以下等式确定预测误差的列向量;
E=g(A)-Yi
其中:
G表示S形函数的拟合函数,其能够是多项式函数拟合;
基于等式确定更新的列向量:
其中:
XTE=(XL)TE||(XR)TE。
16.如权利要求15所述的系统,其中,计算表示列向量的一份A包括:
通过使用随机数加密由每个SCN提供的原始数据;以及
在所述SCN之间交换所述加密的数据。
17.如权利要求16所述的系统,其中,所述随机数均是数字、向量和矩阵中的至少一个。
CN201980002723.6A 2019-01-11 2019-01-11 使用秘密共享的逻辑回归建模方法、存储介质及系统 Active CN110709863B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/071394 WO2019072315A2 (en) 2019-01-11 2019-01-11 LOGISTIC REGRESSION MODELING SCHEME USING SECRET SHARING

Publications (2)

Publication Number Publication Date
CN110709863A CN110709863A (zh) 2020-01-17
CN110709863B true CN110709863B (zh) 2024-02-06

Family

ID=66100025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980002723.6A Active CN110709863B (zh) 2019-01-11 2019-01-11 使用秘密共享的逻辑回归建模方法、存储介质及系统

Country Status (8)

Country Link
US (1) US10600006B1 (zh)
EP (1) EP3602410B1 (zh)
JP (1) JP6921233B2 (zh)
KR (1) KR102337168B1 (zh)
CN (1) CN110709863B (zh)
PH (1) PH12019502457A1 (zh)
SG (1) SG11201909946UA (zh)
WO (1) WO2019072315A2 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3070858B1 (fr) 2017-09-14 2020-02-21 Capsum Dispersion avec phase grasse dispersee a teneur elevee en pigments
CN110084068B (zh) * 2018-01-26 2023-09-29 阿里巴巴集团控股有限公司 区块链系统及用于区块链系统的数据处理方法
CN112805768B (zh) * 2018-10-04 2023-08-04 日本电信电话株式会社 秘密s型函数计算系统及其方法、秘密逻辑回归计算系统及其方法、秘密s型函数计算装置、秘密逻辑回归计算装置、程序
CN112183565B (zh) * 2019-07-04 2023-07-14 创新先进技术有限公司 模型训练方法、装置及系统
CN112183759B (zh) * 2019-07-04 2024-02-13 创新先进技术有限公司 模型训练方法、装置及系统
CN112183757B (zh) * 2019-07-04 2023-10-27 创新先进技术有限公司 模型训练方法、装置及系统
CN112183566B (zh) * 2019-07-04 2024-02-09 创新先进技术有限公司 模型训练方法、装置及系统
CN110569228B (zh) * 2019-08-09 2020-08-04 阿里巴巴集团控股有限公司 模型参数确定方法、装置和电子设备
CN110580410B (zh) * 2019-08-09 2023-07-28 创新先进技术有限公司 模型参数确定方法、装置和电子设备
US10803184B2 (en) 2019-08-09 2020-10-13 Alibaba Group Holding Limited Generation of a model parameter
CN110851869B (zh) * 2019-11-14 2023-09-19 深圳前海微众银行股份有限公司 敏感信息处理方法、设备及可读存储介质
EP4095826A4 (en) * 2020-01-20 2023-10-25 Nippon Telegraph And Telephone Corporation SECURE COMPUTING DEVICE, SECURE CALCULATION METHOD AND PROGRAM
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
JP7547768B2 (ja) 2020-04-21 2024-09-10 日本電信電話株式会社 学習装置、学習方法及びプログラム
CN111368336B (zh) * 2020-05-27 2020-09-04 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质
CN111859267B (zh) * 2020-06-22 2024-04-26 复旦大学 基于bgw协议的隐私保护机器学习激活函数的运算方法
CN112000988A (zh) * 2020-08-28 2020-11-27 深圳前海微众银行股份有限公司 因子分解机回归模型构建方法、设备及可读存储介质
CN112836868A (zh) * 2021-01-22 2021-05-25 支付宝(杭州)信息技术有限公司 一种链接预测模型的联合训练方法和装置
CN113128700A (zh) * 2021-03-23 2021-07-16 同盾控股有限公司 安全多方计算的联邦模型训练加速的方法和系统
CN113065145B (zh) * 2021-03-25 2023-11-24 上海海洋大学 一种基于秘密共享和随机扰动的隐私保护线性回归方法
JP2022150498A (ja) * 2021-03-26 2022-10-07 エヌ・ティ・ティ・コミュニケーションズ株式会社 学習プログラム、学習方法及び学習装置
KR102557639B1 (ko) * 2021-04-20 2023-07-19 성신여자대학교 연구 산학협력단 인공지능 학습장치 및 인공지능 학습장치의 동작방법
CN113037489B (zh) * 2021-05-25 2021-08-27 北京百度网讯科技有限公司 数据处理方法、装置、设备和存储介质
CN113342915A (zh) * 2021-06-22 2021-09-03 深圳壹账通智能科技有限公司 地址脱敏方法、装置、电子设备及存储介质
CN113837764B (zh) * 2021-09-22 2023-07-25 平安科技(深圳)有限公司 风险预警方法、装置、电子设备和存储介质
CN116187433B (zh) * 2023-04-28 2023-09-29 蓝象智联(杭州)科技有限公司 基于秘密分享的联邦拟牛顿训练方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220217A (zh) * 2017-05-31 2017-09-29 北京京东尚科信息技术有限公司 基于逻辑回归的特征系数训练方法和装置
CN108519981A (zh) * 2018-02-01 2018-09-11 四川大学 一种高效安全的去中心化数据共享方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5542075B2 (ja) * 2011-03-01 2014-07-09 日本放送協会 認証サーバ、認証プログラムおよび認証システム
JP2014164126A (ja) * 2013-02-25 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> 音響信号分析方法、装置、及びプログラム
US9705913B2 (en) * 2015-10-29 2017-07-11 Intel Corporation Wireless hotspot attack detection
JP6673367B2 (ja) * 2016-01-07 2020-03-25 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
AU2017300259A1 (en) 2016-07-18 2019-02-14 Nant Holdings Ip, Llc Distributed machine learning systems, apparatus, and methods
CN106909886B (zh) * 2017-01-20 2019-05-03 中国石油大学(华东) 一种基于深度学习的高精度交通标志检测方法及系统
US10536437B2 (en) * 2017-01-31 2020-01-14 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on vertically partitioned local data
US10565524B2 (en) * 2017-01-31 2020-02-18 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on horizontally partitioned local data
WO2019048390A1 (en) * 2017-09-07 2019-03-14 Koninklijke Philips N.V. MULTI-PART CALCULATION SYSTEM FOR LEARNING A CLASSIFIER
CN108712260B (zh) * 2018-05-09 2021-06-25 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220217A (zh) * 2017-05-31 2017-09-29 北京京东尚科信息技术有限公司 基于逻辑回归的特征系数训练方法和装置
CN108519981A (zh) * 2018-02-01 2018-09-11 四川大学 一种高效安全的去中心化数据共享方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Aggregating Private Sparse Learning Models Using Multi-Party Computation;Lu Tian等;《https://pmpml.github.io/PMPML16/papers/PMPML16_paper_15.pdf》;20161231;第1-6页 *

Also Published As

Publication number Publication date
JP2020525814A (ja) 2020-08-27
PH12019502457A1 (en) 2020-07-20
EP3602410A4 (en) 2020-03-11
US10600006B1 (en) 2020-03-24
KR102337168B1 (ko) 2021-12-08
SG11201909946UA (en) 2019-11-28
KR20200088767A (ko) 2020-07-23
JP6921233B2 (ja) 2021-08-18
EP3602410B1 (en) 2021-09-29
WO2019072315A3 (en) 2019-11-07
WO2019072315A2 (en) 2019-04-18
CN110709863A (zh) 2020-01-17
EP3602410A2 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
CN110709863B (zh) 使用秘密共享的逻辑回归建模方法、存储介质及系统
CN110998579B (zh) 隐私保护的分布式多方安全模型训练框架
AU2019257397B2 (en) Secure multi-party computation with no trusted initializer
WO2022089256A1 (zh) 联邦神经网络模型的训练方法、装置、设备、计算机程序产品及计算机可读存储介质
CN110520882A (zh) 在区块链网络中并行执行交易
US11410081B2 (en) Machine learning with differently masked data in secure multi-party computing
Miao et al. Federated deep reinforcement learning based secure data sharing for Internet of Things
CN111738361A (zh) 业务模型的联合训练方法及装置
US20220374544A1 (en) Secure aggregation of information using federated learning
CN113591097A (zh) 业务数据处理方法、装置、电子设备及存储介质
JP2017207839A (ja) ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
JP2023521542A (ja) コンテンツ配信における情報に対するアクセスを保護するためのセキュアなmpcおよびベクトル計算の使用
CN115428395A (zh) 安全多方计算的增强性能
JP2023516868A (ja) 秘密共有を使用するフィードバックコントローラ
Deng et al. Non-interactive and privacy-preserving neural network learning using functional encryption
EP4399647A1 (en) Systems and methods for providing a split inference approach to protect data and model
US20230014392A1 (en) Method and system for privacy-preserving portfolio pricing
Yu et al. Peer-to-peer privacy-preserving vertical federated learning without trusted third-party coordinator
Hong et al. A designated private set based trapdoor authentication scheme for privacy preserving trust management in decentralized systems
WO2023039001A1 (en) Systems and methods for providing a split inference approach to protect data and model

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027031

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20241009

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Ant Shield Co.,Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands