CN112001475A - 一种数据处理系统和方法 - Google Patents
一种数据处理系统和方法 Download PDFInfo
- Publication number
- CN112001475A CN112001475A CN201910447210.8A CN201910447210A CN112001475A CN 112001475 A CN112001475 A CN 112001475A CN 201910447210 A CN201910447210 A CN 201910447210A CN 112001475 A CN112001475 A CN 112001475A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- node
- intermediate node
- splitting
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理系统和方法,该系统包括:数据拆分节点、中间节点和合并节点;数据拆分节点,用于将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片提交给设置第二模型的中间节点,其中,所述第二模型与所述第一模型是模型结构相同但常数偏置项不同的神经网络模型;中间节点,用于运行其上设置的模型对数据分片进行处理,得到分片处理数据;合并节点,用于对中间节点输出的分片处理数据进行重构合并,得到数据处理结果。实现了用户数据和模型的按次可使用不可沉淀,使用户数据基于授权来使用成为可能。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据处理系统和方法。
背景技术
目前,通过机器模型对海量数据进行学习训练的技术被普遍应用。在机器学习场景下,存在数据持有方和模型持有方为多方的情况,而为了推进深度学习在工业界的应用,数据持有方和模型持有方之间存在数据分享的需求,为了保证数据分享时数据的安全性和隐私性,现有技术提供了如下解决方案:
第一种方案:将模型拆解成特征提取和神经网络模型两部分,在模型训练的前向传播过程中,数据持有方将数据经过自己本地的特征提取网络获得一个输出向量,将输出向量发送给模型持有方的神经网络模型。在模型训练的反向传播过程中,模型持有方将梯度传递给数据持有者,并要求数据持有方帮助更新前一部分的网络参数。
这种方式,从迁移学习的角度看,数据持有方经过本地模型传出来的数据虽无法完全复原,但无法限制模型持有方沉淀后用作其他用途。而且,前一部分模型的网络结构会被数据持有方获取,这是模型持有方无法接受的。
第二种方案:对数据进行加密,数据持有方将训练样本基于同态加密技术加密后,发送给模型持有方训练模型,训练好的模型,在运行数据使用同样的方式加密,传入网络获得预测结果。同态加密区别于一般简单做映射的加密方式,保留了连续值特征的线性关系。这种方式,一方面,在加密数据上进行训练,计算开销较大。另一方面,同态加密要求预测时数据使用的加密方式与模型训练时数据使用的加密方式一致,为了保证训练样本的数据安全,加密方式不能被公布。
综上,现有的两种方案通常只适用数据持有方和模型持有方相同的场景,通用性不强无法作为一般性的解决方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据处理系统和方法。
本发明实施例提供一种数据处理系统,包括:数据拆分节点、中间节点和合并节点;
数据拆分节点,用于将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片提交给设置第二模型的中间节点,其中,所述第二模型与所述第一模型是模型结构相同但常数偏置项不同的神经网络模型;
中间节点,用于运行其上设置的模型对数据分片进行处理,得到分片处理数据;
合并节点,用于对中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
在一些可选的实施例中,所述数据拆分节点用于将数据拆分为两个以上的数据分片,包括:
对数据的原始向量进行拆分,拆分成多个与原始向量维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
在一些可选的实施例中,中间节点用于运行其上设置的模型对数据分片进行处理,得到分片处理数据,包括:
每个中间节点接收数据拆分节点发送的数据分片,使用设置的第一模型或第二模型对数据分片进行多项式展开计算,基于预先生成的随机数对,对多项式变量yi进行加密,基于加密后的多项式变量yi得到数据分片对应的分片处理数据。
在一些可选的实施例中,所述数据拆分节点根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分,所述中间节点使用相应的模型对数据分片进行处理。
在一些可选的实施例中,一个中间节点中设置第一模型,其他中间节点中设置不可单独使用的第二模型,包括:
对原始模型函数做多项式的近似展开,得到第一模型,设置在一个中间节点中;
对原始模型函数的多项式近似展开结果中常数项置零和/或至少一项非常数项中的常数偏置项置零,得到第二模型,分别设置在其他中间节点中。
本发明实施例还提供一种基于多方计算的数据处理方法,包括:
数据拆分节点将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片分别提交给设置第二模型的中间节点;其中,第二模型采用与第一模型相同的神经网络模型但常数偏置项不同;
中间节点运行其上设置的模型对数据分片进行处理,得到分片处理数据,提供给合并节点;
合并节点对各中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
在一些可选的实施例中,所述数据拆分节点将数据拆分为两个以上的数据分片,包括:
对数据的原始向量进行拆分,拆分成多个与原始向量的维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
在一些可选的实施例中,中间节点运行其上设置的模型对数据分片进行处理,得到分片处理数据,包括:
每个中间节点接收数据拆分节点发送的数据分片,使用设置的第一模型或第二模型对数据分片进行多项式展开计算,基于预先生成的随机数对,对多项式变量yi进行加密,基于加密后的多项式变量yi得到数据分片对应的分片处理数据。
在一些可选的实施例中,所述数据拆分节点根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分,所述中间节点使用相应的模型对数据分片进行处理。
在一些可选的实施例中,在一个中间节点中设置第一模型,在其他中间节点中设置不可单独使用的第二模型,包括:
对原始模型函数做多项式的近似展开,得到第一模型,设置在一个中间节点中;
对原始模型函数的多项式近似展开结果中常数项置零和/或至少一项非常数项中的常数偏置项置零,得到第二模型,分别设置在其他中间节点中。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的数据处理系统,能够保证数据和模型的双重安全,一方面,本申请引入了多个中间节点,通过将数据拆分为数据分片实现数据处理过程分散到不同的中间节点执行,并将中间节点交给数据持有方和模型持有方分别进行管理,从而保证中间节点之间不能串通,因此,即便数据分片是运行在模型持有方管理的中间节点上,由于缺少数据持有方管理的中间节点上的数据分片,数据无法被恢复和重复使用,这就使得模型持有方不能利用自身获得的数据分片进行再次利用和多次训练,也不能使用获得数据分片恢复原始数据,从而保证了数据的私密性;另一方面,为了保证数据的有效处理,中间节点设置的第一模型和第二模型是具有相同结构的神经网络模型,但由于第二模型是将第一模型的常数项置改变后的模型,当数据持有方管理的中间节点上设置的是第二模型时,数据持有方也无法获得模型的真实数据,因此,本系统在保证数据和模型安全性的情况下,实现了数据和模型的共享。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中基于多方计算的数据处理系统的结构示意图;
图2为本发明实施例中基于多方计算的数据处理系统实现原理示意图;
图3为本发明实施例中基于多方计算的数据处理方法的流程图;
图4为本发明实施例中安全多方计算的一个示例图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中存在的通过模型训练用户数据时,可能存在的用户数据泄露的问题,保证训练样本数据的安全和不可复用,本发明实施例提供一种基于多方计算的数据处理系统和方法,通过多方计算和数据重构解决数据隐私保护问题,避免用户数据被恢复后再次利用,实现了训练样本数据的按次可使用不可沉淀,使用户数据基于授权来使用成为可能。是一种基于安全多方计算实现的数据和模型可使用不可沉淀方案。
安全多方计算(Secure Multi-Party Computation,SMC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。
本发明实施例提供一种基于多方计算的数据处理系统,基于多方计算实现的数据和模型可按次使用不可沉淀的方案,核心是利用多方计算密钥分享的方式,将数据的计算过程分散到多个节点执行,只要多个节点间不完全串通,那么数据就无法被恢复或重复使用买从而保证数据的私密性,同时通过在多个中间节点中设置真实模型和不可单独使用的对偶模型来实现对模型的保护。
该系统中,真实模型和对偶模型可以通过对样本数据的训练得到,模型的训练流程与基于用户数据的预测处理流程类似,只是在进行模型训练时,在根据训练数据获取了预测结果后,还要利用预测结果与真实结果计算出目标函数的值,并将梯度回传给真实模型和每个对偶模型。下面以基于用户数据的预测为例进行描述。
本发明实施例提供的基于多方计算的数据处理系统,其结构如图1所示,包括数据拆分节点1、中间节点2和合并节点3;
数据拆分节点1,用于将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片分别提交给设置第二模型的中间节点;其中,第二模型与第一模型是模型结构相同但常数偏置项不同的神经网络模型;
中间节点2,用于运行其上设置的模型对数据分片进行处理,得到分片处理数据;
合并节点3,用于对中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
下面的描述中以第一模型是真实模型,第二模型是对偶模型为例进行描述。
上述系统中,一个中间节点2中设置真实模型,其他中间节点2中设置对偶模型,真实模型与对偶模型采用相同的神经网络模型,其中对偶模型的常数偏置项设为与真实模型的常数偏置项不同的值,较佳的,对偶模型的常数偏置项设置为零。
对于真实模型和对偶模型的选择需要参考实际使用到的多方计算技术的特点,具体实现的方式可能但不限于这种搭配方式:如多方计算技术使用SPDZ时,可以考虑SPDZ在对常数加法时,只需某一台机器加上该常数即可,因此,上述系统中在中间节点中设置真实模型和对偶模型时,可选的,对偶模型通过将真实模型的每层的常数偏置项置零得到。常数偏置项(bias)为神经网络中神经元函数的截距,通常用常数b表示。由于对偶模型与对偶模型采用相同的神经网络模型,只是将其常数偏置项为零了,因此,对偶模型不能单独使用,其单独使用不能获得真实的预测结果。
在进行模型设置时,可选的,可以对原始模型函数做多项式的近似展开,得到真实模型,设置在一个中间节点中;对原始模型函数的多项式近似展开结果中常数项置零和/或至少一项非常数项中的常数偏置项置零,得到对偶模型,分别设置在其他中间节点中。
上述系统中,即使需要多台机器都部署模型来进行运算,但只需有一台部署真实模型,其他机器部署满足一定要求不可单独使用的对偶模型即可。既体现了对模型的保护,也体现了对数据的保护,可选的,出于安全考虑该模型可以有模型持有方自己持有,布置在模型持有方所属的中间节点上。
上述系统中,数据拆分节点根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分,中间节点使用相应的模型对数据分片进行处理。对数据的原始向量进行拆分时,可以拆分成多个与原始向量维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
本发明实施例提供的数据处理系统,能够保证数据和模型的双重安全,一方面,本申请引入了多个中间节点,通过将数据拆分为数据分片实现数据处理过程分散到不同的中间节点执行,并将中间节点交给数据持有方和模型持有方分别进行管理,从而保证中间节点之间不能串通,因此,即便数据分片是运行在模型持有方管理的中间节点上,由于缺少数据持有方管理的中间节点上的数据分片,数据无法被恢复和重复使用,这就使得模型持有方不能利用自身获得的数据分片进行再次利用和多次训练,也不能使用获得数据分片恢复原始数据,从而保证了数据的私密性;另一方面,为了保证数据的有效处理,中间节点设置的真实模型和对偶模型是具有相同结构的神经网络模型,但由于对偶模型是将真实模型的常数项置改变后的模型,当数据持有方管理的中间节点上设置的是对偶模型时,数据持有方也无法获得模型的真实数据,因此,本系统在保证数据和模型安全性的情况下,实现了数据和模型的共享。
参见图2所示的基于多方计算的数据处理系统实现原理图,以数据预测为例,当模型持有方需要进行数据预测时,向数据持有方请求数据,数据持有方从自己服务器存储的数据获取要提供给模型持有方的数据,将数据进行分片,拆分为多个数据分片,参见图2中所示的分片得到分片1(share1)、分片2(share2)、……、分片n(sharen)等多个数据分片,其中分片1提供给真实模型,分片1输入真实模型,经过神经网络计算并输出分片处理数据1(如图2中的结果1),分片2、……、分片n,分别提供给对应的对偶模型,分片2、……、分片n分别输入对偶模型,经过神经网络计算并输出分片处理数据2、……、分片处理数据n(如图2中的结果2、……、结果n)。对分片处理数据1、分片处理数据2、……、分片处理数据n进行合并,得到数据处理结果(如图中的预测结果)。这里多个数据分片分别经过神经网络,各自获得结果后在对结果进行合并,多方计算密钥分享技术,支持激活函数f为线性运算时,对向量a和向量b的f(share1+share2+…+sharen)=f(share1)+f(share2)+…+f(sharen),所以合并后得到用户数据的预测结果和直接使用真实模型对用户数据进行预测得到的预测结果相同,和直接使用对偶模型对用户数据进行预测得到的预测结果并不相同。
数据拆分节点对数据进行拆分时,可以对数据的原始向量进行拆分,拆分成多个与原始向量维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
上述系统可以将对偶模型部署在双方可信的多台机器上,当所有真实模型和对偶模型的持有者至少有一个不参与串通时,原始数据无法被复原。此外,由于每次计算也需要所有机器配合,因此模型持有方也无法利用自身获取的分片进行多次训练。上述系统可以用于数据的迁移学习(Transfer Learning),迁移学习是指运用已存有知识对不同但相关的领域问题进行求解的一种机器学习方法。
基于同一发明构思,本发明实施例还提供一种基于多方计算的数据处理方法,其流程如图3所示,包括如下步骤:
步骤S101:数据拆分节点将数据拆分为两个以上的数据分片。
对数据的原始向量进行拆分,拆分成多个与原始向量维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
可选的,数据拆分节点可以根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分。
步骤S102:将一个数据分片提交给设置真实模型的中间节点,将其他数据分片分别提交给设置对偶模型的中间节点。
步骤S103:中间节点运行其上设置的模型对数据分片进行处理,得到分片处理数据,提供给合并节点。
中间节点上设置有真实模型的,通过真实模型对接收到的数据分片进行处理,设置有对偶模型的,通过对偶模型对接收到的数据分片进行处理,比如真实模型的多项式为ay3+by2+cy+d时,其中,a、b、c、d为常数,x、y、z为变量,则对偶模型的多项式可以设置为ay3+by2+cy或ay3+by2+cy+k,k是不同于d的常数,较佳的是k=0,即多项式为ay3+by2+cy。
中间节点还可以对数据进行加密,每个中间节点接收数据拆分节点发送的数据分片,使用设置的真实模型或对偶模型对数据分片进行多项式展开计算,基于预先生成的随机数对,对多项式变量yi进行加密,基于加密后的多项式变量yi得到数据分片对应的分片预测数据。
步骤S104:合并节点对各中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
当合并节点只对数据拆分节点提供的不止一个数据进行重构合并时,合并节点可以对输出的分片处理数据进行合并,简单的,可以直接进行加和,例如:对于数据x,经数据拆分后得到数据分片(x1、x2、……),数据分片(x1、x2、……)经处理后得到分片处理数据(X1、X2、……),对分片处理数据中的X1、X2、……进行加和,得到数据处理结果,即x的重构数据z,此时,z等于x。
当合并节点需要对拆分节点提供的不止一个数据,可以对不止一个数据采用加法或乘法的方式进行重构合并,例如:拆分节点提供数据x和y,在合并节点重构得到数据z。若z=x+y,则采用加法方式,若z=x*y,则采用乘法方式。
当采用加法方式时,对于数据x和数据y,经数据拆分后得到数据分片(x1、x2、……)和数据分片(y1、y2、……),将这些数据分片发送至中间节点进行多方计算,其中,x1、y1发送至第一个中间节点,x2、y2发送至第二个中间节点,……;在第一个中间节点对x1、y1进行处理计算的得到分片处理数据z1,比如最简单的可以是z1=x1+y1,当然也可以是其他算法,在第二个中间节点对x2、y2进行计算的得到分片处理数据z2,比如z2=x2+y2,……;对z1、z2、……进行重构合并,得到数据处理结果z=z1+z2+……,此时z=x+y。
当采用乘法方式时,对于数据x和数据y,经数据拆分后得到数据分片(x1、x2、……)和数据分片(y1、y2、……),将这些数据分片发送至中间节点进行多方计算,其中,x1、y1发送至第一个中间节点,x2、y2发送至第二个中间节点,……;在第一个中间节点对x1、y1进行计算的得到分片处理数据z1,在第二个中间节点对x2、y2进行计算的得到分片处理数据z2,……,可以选择合适的算法根据x1、y1、x2、y2计算得到z1、z2;对z1、z2、……进行重构合并,得到数据处理结果z=z1+z2+……,此时z=x*y。
下面举例说明:
上述方法中,在进行数据处理计算时,如果数据接收端接收到的数据z为发送端发送的数据x与y之和,即z=x+y,可以采用加法的方式,例如:
对一个数据x=a,数据发送端作为数据拆分节点将数据a拆分为数据分片a0和a1,其中,a0可以是一个随机数,a1是a与这个随机数的之差;对一个数据y=b,数据拆分节点将数据b拆分为数据分片b0和b1,其中,b0可以是一个随机数,b1是b与这个随机数的之差。数据分片a0和b0发送到一个中间节点,该中间节点将分片处理数据c0=a0+b0发送至合并节点,数据分片a1和b1发送到另一个中间节点,该中间节点将分片处理数据c1=a1+b1发送至接收端,接收端数据作为合并节点根据c0和c1,得到数据c0+c1,由于c0+c1=a0+b0+a1+b1=a+b。因此在不暴露数据a和b的情况下,可以得到最终数据z=x+y=a+b。
在进行预测数据计算时,对于如果数据接收端接收到的数据z为发送端发送的数据x与y之积,即z=x*y,可以采用乘法的方式,例如:
对一个数据x=a,数据发送端作为数据拆分节点将数据a拆分为数据分片a0和a1,其中,a0可以是一个随机数,a1是a与这个随机数的之差;对一个数据y=b,数据拆分节点将数据b拆分为数据分片b0和b1,其中,b0可以是一个随机数,b1是b与这个随机数的之差。数据分片a0和b0发送到第一个中间节点,数据分片a1和b1发送到第二个中间节点。
半可信服务器生成随机数u0、u1、v0、v1,且(u0+u1)(v0+v1)=(z0+z1),将u0、v0、z0提供给第一个中间节点。u1、v1、z1提供给第二各中间节点。
第一个中间节点将a0-u0、b0-v0交换给第二个中间节点,第二个中间节点将a1-u1、b1-v1交换给第一个中间节点,第一个中间节点和第二个中间节点各自计算e和f,其中e=a-u,f=b-v,其中u=u0+u1,v=v0+v1。
第一个中间节点和第二个中间节点根据各自设定的计算规则,计算各自的分别片预测数据。例如:第一个中间节点设定的计算规则使得c0+c1=a*b,基于e、f得到分片处理数据c0=-e*f+a0*f+e*b0+z0。第二个中间节点根据设定的计算规则,基于e、f得到分片处理数据c1=a1*f+e*b1+z1。
分片处理数据c0和c1发送至接收端,接收端数据作为合并节点进行数据合并重构,得到c0+c1=-e*f+a0*f+e*b0+z0+a1*f+e*b1+z1=-e*f+a*f+e*b+u*v=u*f+a*b-u*b+u*v=u*b–u*v+a*b-u*b+u*v=a*b。因此,在不暴露数据a和b的情况下,可以得到最终数据z=x*y=a*b。
关于上述实施例中的基于多方计算的数据处理方法,其中各个步骤执行操作的具体过程已经在系统实施例的相关部分中进行了详细描述,此处将不做详细阐述说明。
下面以在银行放贷过程中,依据用户的资产情况、收入情况和健康情况预测房贷的可能性为例,通过具体实例描述对数据进行预测的实现过程。
假设在银行的放贷问题中,用户的资产情况,收入情况,健康情况在政府机构(数据持有方)有可靠记录,均可根据低,中,高三级,对应有权重数字1、2、3。用户依据这些信息,申请贷款,但是不想让银行从政府获取自己的原始数据。银行(模型持有方)也不想将自己的信贷评估模型暴露给政府机构使用。那么就可以使用上述的基于多方计算的数据处理,实现政府机构记录的用户数据和银行持有的评估模型的可使用不可沉淀。
假设银行训练的原始评估模型为最基础的单层逻辑回归(Logistic Regression,LR)模型(多层的神经网络原理类似),f(x)如下所示:
f(x)=sigmoid(wx+b)
其中,x为用户数据向量,w为权重向量,b为模型的常数偏置项,权重向量和常数偏置项均可以随意设置、也可以根据经验设置或按照一定的规则设置。比如上述的银行放贷的评估模型,可以设置w=(3,2,1),b=-12。
当评估模型输出的评估结果(预测结果)f(x)≥0.5时认为可以放贷,否则拒绝放贷。对于两个用户,其中一个用户的资产情况、收入情况、健康情况均为高,对应的权重数字都是3,另一个用户的资产情况、收入情况、健康情况均为低,对应的权重数字都是1,则这用户数据向量分别为u=(3,3,3)和v=(1,1,1),即如果不考虑数据和模型的隐私问题,直接将两个用户的数据输入真实模型进行预测,计算的到评估结果f(u)=0.9975≥0.5,f(v)=0.0025<0.5,即用户u可以放贷,用户v不可以放贷。
利用上述的安全多方计算方式进行预测时,可根据真实模型f(x),将其常数偏置项置为0,生成对偶模型f′(x)。由于SPDZ只支持线性运算,因此需要将激活函数(sigmoid)做多项式的近似展开,近似展开后的真实模型f(x)与对偶模型f′(x)如下所示:
f(x)≈0.5+1.20096*y+0.81562*y3
其中,y是多项式变量,在模型中可以称为本地分片。
将真实模型和对偶模型分别设置在多个中间节点上,以三个中间节点为例,第一个中间节点上部署了真实模型f(x),该中间节点为模型持有者所有,另外两个中间节点上各部署一个对偶模型f′(x),这两个中间节点为双方都信任的第三方所有。以用户u的数据为例,用户数据u=(3,3,3)分成三个数据分片后,分别提交给三个中间节点的模型。数据和模型可使用不可沉淀的安全多方计算流程如图4所示,用户数据u=(3,3,3)拆分出的三个数据分片分别为u1=(50,-16,8),u2=(7,4,3),u3=(-54,15,-8),u=u1+u2+u3。
则三个数据分片的多项式变量分别计算如下:
参见图4所示的,根据本地分片y1,y2,y3,每次当分片数据间要做乘法运算时,如对于y2或y3的运算。可以使用乘法三元组(Multiplication Triple)的方式。
S201:利用一台中立节点(可以是一台服务器,不会与安全多方计算中的节点串通)生成随机数对(a1,b1,c1),(a2,b2,c2),(a3,b3,c3),分别发送给三个中间节点,该数对需满足如下条件:(a1+a2+a3)*b1+b2+b3)=(c1+c2+c3)。
为随机数对中的向量元素赋值如下:
a1=1,a2=2,a3=0;b1=2,b2=9,b3=-4;c1=10,c2=9,c3=2
S202:三个中间节点分别利用获得的随机数对,对两个乘数的多项式变量yi和yi(此处因为是乘方运算,所以两个都是yi,恰好一样)进行加密获得:
gi1=yi-ai,hi1=yi-bi
每个中间节点利用多项式变量yi和随机数对分别计算两个乘数加密后的数据,则三个节点对第一个乘数加密后分别得到g11=13.25,g21=2,g31=-17.5,三个节点对第二个乘数加密后的分别得到h11=12.25,h21=-5,h31=-13.5。
S203:根据三个节点加密后的第一个乘数重构第一个乘数g1,根据三个节点加密后的第二个乘数重构第二个乘数h1,重构出g1和h1并发送给所有节点,此时原始的y并没有被暴露。
g1=g11+g21+g31=-2.25,h1=h11+h21+h31=-6.25
三个结点得到的p分别为:p1=13.3125,p2=-23.75,p3=11。
S205:重复步骤S202-S204,不妨复用随机数对,可以求的q=p*y=y3
gi2=pi-ai,hi2=yi-bi
gi2=pi-ai,hi2=yi-bi
g12=12.3125,g22=-25.75,g32=11,h12=12.25,h22=-5,h32=-13.5
g2=g12+g22+g32=-2.4375,h2=h12+h22+h32=-6.25
q1=3.953125,q2=-20.359375,q3=16.828125
参见图4所示,三个节点分别计算得到各自的q1,q2,q3。
S206:三个节点计算得到各自的q1,q2,q3后,经过真实模型或对偶模型输出各分片的预测结果f(u1)、f′(u2)和f′(u3)。
f(u1)=0.5+1.20096*14.25-0.81562*3.953125=14.3894321875
f′(u2)=1.20096*4-0.81562*(-20.359375)=21.9093534375
f′(u3)=1.20096*(-17.5)-0.81562*16.828125=-34.2421553125
S206:数据接收方(银行方)合并各分片的预测结果f(u1)、f′(u2)和f′(u3)得到用户数据的预测结果f(u)。
f(u1)+f′(u2)+f′(u3)=1.0566303125≈0.9975=f(u)
然后可以根据f(u)判断是否贷款给用户,从计算结果可以看出,分片汇总后的预测结果和用户数据向量u直接输入真实模型后的预测结果基本相同。
本发明实施例的上述方法和系统,使用多方计算技术和创建对偶模型的思想,实现数据的按次可使用不可沉淀和模型的可使用不可沉淀。该方案同时保护了数据和模型的隐私安全,为有数据和模型安全鼓励的组织间合作创造了可能。同时支持了数据的按次使用,改变了当前模型训练过程中,数据一旦被传递给模型方,就无法防止其反复使用的现状,为数据按次授权使用的商业模式提供了可能。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
Claims (10)
1.一种数据处理系统,其特征在于,包括:数据拆分节点、中间节点和合并节点;
数据拆分节点,用于将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片提交给设置第二模型的中间节点,其中,所述第一模型与所述第二模型是模型结构相同但常数偏置项不同的神经网络模型;
中间节点,用于运行其上设置的模型对数据分片进行处理,得到分片处理数据;
合并节点,用于对中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
2.如权利要求1所述的系统,其特征在于,所述数据拆分节点用于将数据拆分为两个以上的数据分片,包括:
对数据的原始向量进行拆分,拆分成多个与原始向量维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
3.如权利要求1所述的系统,其特征在于,中间节点用于运行其上设置的模型对数据分片进行处理,得到分片处理数据,包括:
每个中间节点接收数据拆分节点发送的数据分片,使用设置的第一模型或第二模型对数据分片进行多项式展开计算,基于预先生成的随机数对,对多项式变量yi进行加密,基于加密后的多项式变量yi得到数据分片对应的分片处理数据。
4.如权利要求1所述的系统,其特征在于,所述数据拆分节点根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分,所述中间节点使用相应的模型对数据分片进行处理。
5.如权利要求1-4任一所述的系统,其特征在于,一个中间节点中设置第一模型,其他中间节点中设置不可单独使用的第二模型,包括:
对原始模型函数做多项式的近似展开,得到第一模型,设置在一个中间节点中;
对原始模型函数的多项式近似展开结果中常数项置为和/或至少一项非常数项中的常数偏置项置零,得到第二模型,分别设置在其他中间节点中。
6.一种基于多方计算的数据处理方法,其特征在于,包括:
数据拆分节点将数据拆分为两个以上的数据分片,将一个数据分片提交给设置第一模型的中间节点,将其他数据分片分别提交给设置第二模型的中间节点;其中,第二模型采用与第一模型相同的神经网络模型但常数偏置项不同;
中间节点运行其上设置的模型对数据分片进行处理,得到分片处理数据,提供给合并节点;
合并节点对各中间节点输出的分片处理数据进行重构合并,得到数据处理结果。
7.如权利要求6所述的方法,其特征在于,所述数据拆分节点将数据拆分为两个以上的数据分片,包括:
对数据的原始向量进行拆分,拆分成多个与原始向量的维数相同的分片向量;其中,所有分片向量中相同位置的元素值之和等于原始向量中相应位置的元素值。
8.如权利要求6所述的方法,其特征在于,中间节点运行其上设置的模型对数据分片进行处理,得到分片处理数据,包括:
每个中间节点接收数据拆分节点发送的数据分片,使用设置的第一模型或第二模型对数据分片进行多项式展开计算,基于预先生成的随机数对,对多项式变量yi进行加密,基于加密后的多项式变量yi得到数据分片对应的分片处理数据。
9.如权利要求6所述的方法,其特征在于,所述数据拆分节点根据合并节点设置的数据重构方式选择相应的数据拆分方式对数据进行拆分,所述中间节点使用相应的模型对数据分片进行处理。
10.如权利要求6-9任一所述的方法,其特征在于,在一个中间节点中设置第一模型,在其他中间节点中设置不可单独使用的第二模型,包括:
对原始模型函数做多项式的近似展开,得到第一模型,设置在一个中间节点中;
对原始模型函数的多项式近似展开结果中常数项置零和/或至少一项非常数项中的常数偏置项置零,得到第二模型,分别设置在其他中间节点中。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910447210.8A CN112001475B (zh) | 2019-05-27 | 2019-05-27 | 一种数据处理系统和方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910447210.8A CN112001475B (zh) | 2019-05-27 | 2019-05-27 | 一种数据处理系统和方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112001475A true CN112001475A (zh) | 2020-11-27 |
| CN112001475B CN112001475B (zh) | 2025-09-30 |
Family
ID=73461881
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910447210.8A Active CN112001475B (zh) | 2019-05-27 | 2019-05-27 | 一种数据处理系统和方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112001475B (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112818338A (zh) * | 2021-01-22 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112818337A (zh) * | 2021-01-22 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112836211A (zh) * | 2021-01-22 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112836210A (zh) * | 2021-01-22 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| WO2023092829A1 (zh) * | 2021-11-26 | 2023-06-01 | 杭州安恒信息技术股份有限公司 | 一种多方数据安全计算方法、系统、装置及存储介质 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050049990A1 (en) * | 2003-08-29 | 2005-03-03 | Milenova Boriana L. | Support vector machines processing system |
| US20160162779A1 (en) * | 2014-12-05 | 2016-06-09 | RealMatch, Inc. | Device, system and method for generating a predictive model by machine learning |
| US20170139999A1 (en) * | 2015-11-18 | 2017-05-18 | Sap Se | Transparently splitting and rewriting data-base object bundles to database entities |
| CA3054573A1 (en) * | 2017-02-24 | 2018-08-30 | LogRhythm Inc. | Processing pipeline for monitoring information systems |
| US20180268306A1 (en) * | 2017-03-17 | 2018-09-20 | Microsoft Technology Licensing, Llc | Using Different Data Sources for a Predictive Model |
| US20180268296A1 (en) * | 2016-06-02 | 2018-09-20 | Tencent Technology (Shenzhen) Company Limited | Machine learning-based network model building method and apparatus |
| US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
| CN109194507A (zh) * | 2018-08-24 | 2019-01-11 | 曲阜师范大学 | 非交互式的保护隐私神经网络预测方法 |
-
2019
- 2019-05-27 CN CN201910447210.8A patent/CN112001475B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050049990A1 (en) * | 2003-08-29 | 2005-03-03 | Milenova Boriana L. | Support vector machines processing system |
| US20160162779A1 (en) * | 2014-12-05 | 2016-06-09 | RealMatch, Inc. | Device, system and method for generating a predictive model by machine learning |
| US20170139999A1 (en) * | 2015-11-18 | 2017-05-18 | Sap Se | Transparently splitting and rewriting data-base object bundles to database entities |
| US20180268296A1 (en) * | 2016-06-02 | 2018-09-20 | Tencent Technology (Shenzhen) Company Limited | Machine learning-based network model building method and apparatus |
| CA3054573A1 (en) * | 2017-02-24 | 2018-08-30 | LogRhythm Inc. | Processing pipeline for monitoring information systems |
| US20180268306A1 (en) * | 2017-03-17 | 2018-09-20 | Microsoft Technology Licensing, Llc | Using Different Data Sources for a Predictive Model |
| US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
| CN109194507A (zh) * | 2018-08-24 | 2019-01-11 | 曲阜师范大学 | 非交互式的保护隐私神经网络预测方法 |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112818338A (zh) * | 2021-01-22 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112818337A (zh) * | 2021-01-22 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112836211A (zh) * | 2021-01-22 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112836210A (zh) * | 2021-01-22 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN114692133A (zh) * | 2021-01-22 | 2022-07-01 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN114692133B (zh) * | 2021-01-22 | 2025-08-29 | 支付宝(杭州)信息技术有限公司 | 一种程序运行方法及系统 |
| CN112836210B (zh) * | 2021-01-22 | 2026-01-13 | 支付宝(杭州)数字服务技术有限公司 | 一种程序运行方法及系统 |
| WO2023092829A1 (zh) * | 2021-11-26 | 2023-06-01 | 杭州安恒信息技术股份有限公司 | 一种多方数据安全计算方法、系统、装置及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112001475B (zh) | 2025-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114936650B (zh) | 基于隐私保护的联合训练业务模型的方法及装置 | |
| CN112001475A (zh) | 一种数据处理系统和方法 | |
| CN111160573A (zh) | 保护数据隐私的双方联合训练业务预测模型的方法和装置 | |
| CN111178549A (zh) | 保护数据隐私的双方联合训练业务预测模型的方法和装置 | |
| US20230006980A1 (en) | Systems and methods for securely training a decision tree | |
| CN112799708A (zh) | 联合更新业务模型的方法及系统 | |
| CN112926747B (zh) | 优化业务模型的方法及装置 | |
| Buyukates et al. | Proof-of-contribution-based design for collaborative machine learning on blockchain | |
| CN116432040B (zh) | 基于联邦学习的模型训练方法、装置、介质以及电子设备 | |
| US12088565B2 (en) | Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data | |
| US20240121080A1 (en) | Cryptographic key generation using machine learning | |
| WO2023038995A1 (en) | Systems and methods for securely training a decision tree | |
| CN114003951B (zh) | 信用评分方法、装置以及计算机可读存储介质 | |
| Mosqueda González et al. | Secure and efficient decentralized machine learning through group-based model aggregation | |
| CN116933863A (zh) | 一种分布式模型训练方法和系统 | |
| CN115238148A (zh) | 面向多方企业联合信用评级的特征组合筛选方法及应用 | |
| CN112836868A (zh) | 一种链接预测模型的联合训练方法和装置 | |
| Xu | Functional encryption based approaches for practical privacy-preserving machine learning | |
| US12388799B1 (en) | Systems and methods for providing a split inference approach to protect data and model | |
| US12288157B2 (en) | Systems and methods for quantifying data leakage from a split layer | |
| US11962562B2 (en) | Anonymous message board server verification | |
| WO2023039001A1 (en) | Systems and methods for providing a split inference approach to protect data and model | |
| CN114912146A (zh) | 一种垂直联邦架构下的数据信息防御方法、系统、电子设备及存储介质 | |
| HK40029340B (zh) | 保护数据隐私的双方联合训练业务预测模型的方法和装置 | |
| HK40029340A (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 |