保护隐私的确定业务数据特征有效值的方法及装置
技术领域
本说明书一个或多个实施例涉及数据安全
技术领域
,尤其涉及保护隐私的确定业务数据特征有效值的方法及装置。背景技术
机器学习所需要的数据往往会涉及多个平台、多个领域。例如在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据。为了提高服务,多方常常在保证业务数据隐私性和安全性的前提下,联合起来训练业务预测模型。
随着数据量的增多,数据的特征维度也变得越来越大。这些多维特征数据往往存在一些冗余信息,可能会影响机器学习的效果,降低模型的稳定性。因此,可以根据特征有效性,对多维特征数据进行降维处理,在尽量不损失信息量的情况下,去掉在提升模型性能方面显著性不高的冗余特征,将其转化为低维特征。
因此,希望能有改进的方案,可以尽可能在安全、不泄露隐私数据的情况下确定特征有效性。
发明内容
本说明书一个或多个实施例描述了保护隐私的确定业务数据特征有效值的方法及装置,可以在安全、不泄露隐私数据的情况下,针对分布在多方中的业务数据进行特征项有效值的确定。具体的技术方案如下。
第一方面,实施例提供了一种保护隐私的确定业务数据特征有效值的方法,业务数据分布在多个参与方中,多个参与方各自的业务数据在假定拼接的情况下构成联合数据,所述联合数据包括多个对象针对多个特征项的特征值;所述方法通过任意的第一参与方设备执行,包括:
获取第一参与方的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片;所述预测值分片和所述模型参数分片基于训练后的业务预测模型得到;
利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和预测值分片,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据;
采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和所述相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
在一种实施方式中,所述获取第一参与方的联合数据分片的步骤,包括:
采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片;多个参与方的联合数据分片在假定重构的情况下得到所述联合数据。
在一种实施方式中,所述业务预测模型,基于多个参与方各自的联合数据分片进行安全联合训练得到;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片的步骤,包括:
获取训练后的业务预测模型在所述第一参与方设备本地的模型参数分片;
通过多个参与方设备的交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
在一种实施方式中,所述相关性数据包括协方差矩阵数据,所述相关性数据分片包括协方差矩阵分片;
所述确定多个参与方分别对应的相关性数据分片的步骤,包括:
基于多个参与方的联合数据分片和预测值分片,以及所述业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片;
基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述确定多个参与方分别对应的中间矩阵分片的步骤,包括:
基于多个参与方的联合数据分片和预测值分片,以及基于所述业务预测模型中的函数关系式得到的海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片,作为中间矩阵分片;所述海森矩阵表达式中包括联合数据矩阵和预测值矩阵。
在一种实施方式中,所述确定多个参与方分别对应的海森矩阵分片的步骤,包括:
利用秘密分享乘法,基于预测值矩阵的表达式,对多个参与方的预测值分片进行向量元素的对应相乘,使得多个参与方分别得到中间向量分片;
以所述第一参与方的中间向量分片中的元素作为对角元素,构建得到对角化的所述第一参与方的预测值矩阵分片;
基于多个参与方的联合数据分片、预测值矩阵分片和所述海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片。
在一种实施方式中,所述基于多个参与方的联合数据分片、预测值矩阵分片和所述海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片的步骤,包括:
在计算多个参与方的联合数据分片与预测值矩阵分片的安全乘操作时,将联合数据分片中的列向量分别与预测值矩阵分片中对应的对角元素进行安全乘操作。
在一种实施方式中,所述基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片的步骤,包括:
利用秘密分享矩阵逆算法SMI,基于多个参与方的中间矩阵分片,通过迭代计算,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值的步骤,包括:
将多个参与方的协方差矩阵分片中的对角元素,作为与多个模型参数分别对应的方差分片;
针对任意一个模型参数,利用秘密分享根号逆算法SNSI以及显著性检验法,基于所述第一参与方的对应模型参数分片以及多个参与方的对应方差分片,通过多个参与方设备之间的交互,联合进行安全根号逆操作,确定所述第一参与方的针对该模型参数的显著性检验值分片;基于多个参与方针对该模型参数的显著性检验值分片,确定该模型参数对应的特征项的有效值。
在一种实施方式中,方法还包括:
针对任意的第一特征项,从其他参与方设备中获取所述第一特征项的有效值分片;
基于所述第一特征项在本地的有效值分片和获取的有效值分片,确定所述第一特征项的重构后的有效值。
在一种实施方式中,方法还包括:
基于所述有效值,从多个特征项中去除有效值不满足预设条件的特征项,以使多个参与方采用去除特征项后的业务数据,对所述业务预测模型进行安全联合训练。
在一种实施方式中,所述对象包括用户、商品、事件中的一种;所述特征项包括以下至少一种:基本属性信息、关联关系信息、交互信息、历史行为信息;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述业务预测模型基于逻辑回归模型得到。
第二方面,实施例提供了一种保护隐私的确定业务数据特征有效值的装置,业务数据分布在多个参与方中,多个参与方各自的业务数据在假定拼接的情况下构成联合数据,所述联合数据包括多个对象针对多个特征项的特征值;所述装置部署在任意的第一参与方设备中,包括:
获取模块,配置为,获取第一参与方的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片;所述预测值分片和所述模型参数分片基于训练后的业务预测模型得到;
交互模块,配置为,利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和预测值分片,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据;
检验模块,配置为,采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和所述相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
在一种实施方式中,所述获取模块,在获取第一参与方的联合数据分片时,包括:
采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片;多个参与方的联合数据分片在假定重构的情况下得到所述联合数据。
在一种实施方式中,所述业务预测模型,基于多个参与方各自的联合数据分片进行安全联合训练得到;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述获取模块,在获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片时,包括:
获取训练后的业务预测模型在所述第一参与方设备本地的模型参数分片;
通过多个参与方设备的交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
在一种实施方式中,所述相关性数据包括协方差矩阵数据,所述相关性数据分片包括协方差矩阵分片;所述交互模块,包括:
确定子模块,配置为,基于多个参与方的联合数据分片和预测值分片,以及所述业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片;
计算子模块,配置为,基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。
第三方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中任一项所述的方法。
第四方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中任一项所述的方法。
本说明书实施例提供的方法及装置中,通过多个参与方之间的交互,基于第一参与方的联合数据分片、预测值分片,以及其他参与方的联合数据分片、预测值分片,利用多方安全计算使得多个参与方得到相关性数据分片,进而利用模型参数分片和相关性数据分片确定特征项在提升模型效果上的效果值。多个参与方之间利用各类数据的分片进行多方安全计算,得到的数据也是分片,处理过程中并不会重构特征项之间的相关性数据等隐私数据,提高了处理过程中数据的隐私性、安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为本实施例提供的一种保护隐私的确定业务数据特征有效值的方法的流程示意图;
图3为本实施例中秘密分享矩阵乘法应用的一种计算流程示意图;
图4为实施例提供的一种保护隐私的确定业务数据特征有效值的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,在共享学习场景下,数据集由多个参与方1,2,…,W共同提供(W为自然数),每个参与方拥有数据集中的一部分数据,构成该参与方的业务数据(即原始矩阵)。该数据集可以是用于训练模型的训练数据集,也可以是用于测试模型的测试数据集,或者是待预测的数据集。数据集可以包括对象的特征数据,对象可以是用户、商品、事件等各种业务上有待分析的对象之一。上述模型可以包括采用机器学习方式训练的业务预测模型。
数据集存在至少两种数据分布。一种分布是,各个参与方拥有全部对象的不同特征数据。例如,每个参与方都有同样的N个对象的样本,每个样本的隐私数据中包含D个特征,这些特征分布在W个参与方中,每个参与方拥有D/W个特征。又如,两个平台有相同的一批用户,但其业务数据中的用户特征不同。每个参与方拥有的特征种类不同,所拥有的特征数量可以相同(例如各自拥有D/W个特征),也可以不同。N、D和W都是自然数。这是数据集中的数据垂直切分的场景,表1为数据垂直切分场景的业务数据分布。
表1
其中,xx代表具体的特征值,属于参与方的隐私数据。表1中每一行表示一条样本数据,每一列代表N个对象的某个特征项的特征值,D个特征项分属于W个参与方。N个对象的D个特征项的特征值构成了全部的业务数据。
另一种分布是,各个参与方拥有不同对象的全部特征数据。例如,共有N个对象的样本,每个样本的业务数据中包含D个特征项,这N条业务数据分布在W个参与方中,每个参与方拥有全部N个样本中的一部分样本,每个样本包含的特征项相同。不同参与方存储的对象样本的数量可以相同,也可以不同。又如,有两个银行,其服务的用户群体不同,但是它们都拥有相同的用户信贷特征。此为数据集中的数据水平切分的场景,表2为数据水平切分场景的业务数据分布。
表2
其中,xx代表具体的特征值,属于参与方的隐私数据。表2中每一行表示一条样本数据,每一列代表N个对象的某个特征项的特征值,N条样本数据分属于W个参与方。不同参与方拥有不同的对象样本。N个对象的D个特征项的特征值构成了全部的业务数据。
参与方所拥有的业务数据可以包括多个特征项。对象的特征项可以包括以下中的至少一种:对象的基本属性信息、关联关系信息、交互信息、历史行为信息等。例如,当对象是用户时,其基本属性信息可以包括用户的性别、年龄、收入等,用户的关联关系信息可以包括与用户存在关联关系的其他用户、公司、地区等,用户的交互信息可以包括用户在某个网站进行的点击、查看、参与的某个活动等信息,用户的历史行为信息可以包括用户历史的交易行为、支付行为、购买行为等。
当对象是商品时,其基本属性信息可以包括商品的类别、产地、价格等,商品的关联关系信息可以包括与该商品存在关联关系的用户、商铺或其他商品等,商品的交互信息可以包括用户、商铺与该商品之间的交互特征,商品的历史行为信息可以包括商品被购买、转存、退货等信息。
当对象是事件时,事件可以包括交易事件、登录事件、购买事件和社交事件等等。事件的基本属性信息可以是用于描述事件的文字信息,关联关系信息可以包括与该事件在上下文上存在关系的文本、与该事件存在关联性的其他事件信息等,历史行为信息可以包括该事件在时间维度上发展变化的记录信息等。
各个参与方可以对应于不同的服务平台,该服务平台可以包括各种企业、机构、组织等。业务数据往往是服务平台的隐私数据,在处理过程中要求保持较高的隐私性和安全性。不管是哪种数据分布方式,其对象的特征项对应的特征值(即特征数据)都属于隐私数据,并且可存储为隐私数据矩阵。为了隐私数据的安全,各个参与方需要将其隐私数据留在本地,不输出明文数据,不进行明文聚合。
为了保护各个参与方的隐私数据不泄露,在一种实施方式中,各个参与方可以采用多方安全计算的方式,利用自身的预测值以及原始矩阵,通过与第三方的交互,使得第三方得到能够表示多个特征项之间的相关性数据的协方差矩阵数据。第三方利用该协方差矩阵数据以及模型参数,采用显著性检验法,确定模型参数对应的特征项在提升业务预测模型效果上的有效值。
由于协方差矩阵数据包含了一定的隐私数据,对其进行进一步的改进,能够提高隐私数据的安全性。参见图1,在本说明书的实施例中,各个参与方存储有各自的数据分片,包括各自的联合数据分片、多个对象对应的预测值分片和多个特征对应的模型参数分片等,多个参与方设备之间进行基于多方安全计算的交互,利用联合数据分片和预测值分片,确定多个参与方分别对应的相关性数据分片,该相关性数据分片中包括多个特征项之间的相关性数据,各个参与方分别采用显著性检验法,基于多个参与方的模型参数分片和相关性数据分片中的对应数据,确定特征项在提升业务预测模型效果上的有效值。多个参与方之间利用各类数据分片进行多方安全计算,得到的相关性数据也是分片,不会重构特征项之间的相关性数据等隐私数据,因此能够提高处理过程中数据的隐私性和安全性。
在本说明书中,多个参与方分别存在对应的参与方设备,并利用对应的参与方设备执行本说明书实施例中的操作。参与方设备包括但不限于任何具有计算、处理能力的装置、设备、平台、设备集群等。下面结合具体实施例对本发明实施例进行说明。
图2为本实施例提供的一种保护隐私的确定业务数据特征有效值的方法的流程示意图。业务数据分布在多个参与方中,多个参与方各自的业务数据在假定拼接的情况下构成联合数据。参与方的业务数据属于高隐私性的隐私数据,多个参与方之间不会明文发送业务数据,也不会对业务数据进行真实的拼接进而构成联合数据。联合数据仅是假定情况下多个参与方的业务数据构成的数据集。例如,上述表1和表2分别为数据垂直切分和数据水平切分场景下联合数据的具体形式。联合数据包括多个对象针对多个特征项的特征值,例如可以包括N个对象针对D个特征项的特征值,N和D均为自然数。
为了描述方便,下面举例中多以两个参与方为例进行说明。例如,两个参与方分别为第一参与方A和第二参与方B,第一参与方A对应于第一参与方设备,第二参与方B对应于第二参与方设备。参与方设备用于执行本参与方的操作,并存储本参与方的数据。在具体实施方式中,参与方设备也可以从其他设备中获取本参与方的数据。本实施例方法具体包括以下步骤S210~S230。
步骤S210,第一参与方设备获取第一参与方A的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片。第二参与方设备获取第二参与方B的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片。
多个参与方各自拥有各自的业务数据,该业务数据属于原始数据,也是隐私数据。在垂直切分场景下,多个参与方之间的特征项不同,对象相同。多个参与方可以分别将各自的原始数据采用原始矩阵表示,例如第一参与方A和第二参与方B的原始矩阵可以分别表示为XA和XB,特征项分别表示为dA、dB,对象个数分别表示为nA和nB,那么联合数据的总特征项为D=dA+dB,对象总数或样本总数为N=nA=nB。当原始矩阵中列表示特征项,行表示对象或样本时,对第一参与方A和第二参与方B等多个参与方的业务数据进行假定横向拼接,可以得到联合数据,形式为X=(XA,XB)。以上是原始矩阵中列表示特征项、行表示样本的情况,对应于表1中的数据分布情形。在其他实施方式中,原始矩阵中的列可以表示对象,行表示特征项,在这种情况下,对第一参与方A和第二参与方B等多个参与方的业务数据进行假定纵向拼接,可以得到联合数据,形式为
在水平切分场景下,多个参与方之间的特征项相同,对象不同。第一参与方A和第二参与方B的原始矩阵分别为XA和XB,特征项分别为dA=dB=D,对象个数分别为nA、nB,那么联合数据的总特征项为D=dA=dB,对象总数或样本总数为N=nA+nB。当参与方的原始矩阵中行表示对象,列表示特征项时,对第一参与方A和第二参与方B等多个参与方的业务数据进行假定纵向拼接,可以得到联合数据,形式为
以上可以对应于表2中的数据分布情形。当原始矩阵中行表示特征项,列表示对象时,对第一参与方A和第二参与方B等多个参与方的业务数据进行假定横向拼接,可以得到联合数据,形式为X=(XA,XB)。
为了使得多个参与方得到联合数据分片,多个参与方之间可以采用秘密分享加法,将参与方的业务数据拆分成随机数,通过随机数在多个参与方之间的传递来完成分片。具体的,第一参与方设备在获取第一参与方A的联合数据分片时,可以采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片。同理,第二参与方B也获取到其联合数据分片。
秘密分享加法能够把原始矩阵拆分成随机矩阵,通过随机矩阵在多个参与方之间的传递,来完成分片。以两个参与方为例,第一参与方A和第二参与方B分别拥有业务数据的原始矩阵XA和XB。对于第一参与方设备来说,其可以在有限域中生成随机矩阵RA,并计算XA-RA=X2,第一参与方设备可以将两个随机矩阵RA和X2中的任意一个,例如X2,发送至第二参与方设备。第二参与方设备,也在有限域中生成随机矩阵RB,并计算XB-RB=X3,第二参与方设备可以将两个随机矩阵RB和X3中的任意一个,例如X3,发送至第一参与方设备。
第一参与方设备可以将RA和接收到的第二参与方设备发送的X3拼接成联合数据分片,第二参与方设备可以将RB和接收到的第一参与方设备发送的X2拼接成联合数据分片。当然,在实际应用场景中,参与方通常在3个或3个以上,上述秘密分享加法的实施过程可以容易地扩展至三方以上。在多个参与方之间所发送的数据都是随机矩阵,并没有泄露原始矩阵的隐私数据。
其中,多个参与方的联合数据分片在假定重构的情况下得到联合数据。重构可以基于将各方的数据分片加起来实现,具体的重构可以是在相加的基础上加入其它的矩阵变换操作,矩阵变换例如包括乘以预设数值等。联合数据中包含隐私数据,各个参与方不直接进行该隐私数据的明文聚合,该联合数据仅是一种假设情况下的表示,实际中不会将参与方的数据分片直接重构在一起。以下关于重构的含义,均适用于此处的说明。
第一参与方A的联合数据分片可采用<X>A表示,第一参与方B的联合数据分片可采用<X>B表示,那么联合数据X=<X>A+<X>B。其中,<X>表示参量X的分片,其下标表示该分片所归属的参与方。为了表述上的统一性,在下文中均采用“尖括号+下标”的形式表示数据在某个参与方中的分片。
在本实施例中,参与方的联合数据分片,是基于多个参与方的业务数据得到,并且多个参与方的联合数据分片的和在概念上或理论上等于联合数据。
在步骤S210中,预测值分片和模型参数分片是基于训练后的业务预测模型得到的数据。业务预测模型,是基于多个参与方各自的联合数据分片进行安全联合训练得到的模型。业务预测模型可以预先训练得到。业务预测模型可以是基于逻辑回归模型训练得到的模型,也可以是基于其他类型的模型训练得到。业务预测模型用于对对象进行业务预测,例如可以对输入的对象的特征数据进行分类预测或者进行回归预测。
多个参与方设备,可以通过训练后的业务预测模型获取预测值分片和模型参数分片。例如,第一参与方设备可以获取训练后的业务预测模型在第一参与方设备本地的模型参数分片,并通过多个参与方设备之间的安全交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
多个参与方设备将联合数据分片中的N个对象作为样本,训练业务预测模型。在训练之后,可以得到业务预测模型在本参与方设备中的模型参数分片。通过多个参与方设备之间的安全交互,将多个参与方的联合数据分片输入业务预测模型,每个参与方设备能够确定本参与方的多个对象的预测值分片。
因此,对于一个参与方来说,其获取的数据中,一个对象对应一个预测值分片,N个对象分别与N个预测值分片对应,N个预测值分片可以作为向量元素而构成向量;当业务数据中包含D个特征项时,训练后的业务预测模型中包含多个模型参数,其分别与D个特征项对应。针对任意一个预测值数据,多个参与方拥有的对应预测值分片在假定重构的情况下得到该预测值数据。针对任意一个模型参数,多个参与方拥有的对应模型参数分片在假定重构的情况下得到该模型参数。
步骤S220,利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和预测值分片,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据。
其中,多个参与方的相关性数据分片在假定重构的情况下得到相关性数据,即特征项之间的相关性数据,该特征项包括同一参与方拥有的特征项之间的相关性数据,也包括不同参与方拥有的特征项之间的相关性数据,既有不同特征项之间的相关性数据,又有相同特征项之间的相关性数据。
在本步骤实施时,可以基于已有的计算特征项之间相关性数据的公式,利用联合数据分片和预测值分片,并通过多方安全计算的方式,确定多个参与方分别对应的相关性数据分片。能够表示特征项之间相关性数据的公式,可以包括协方差矩阵公式、相关系数公式等等。
多方安全计算(Secure Multi-party Computation,MPC)是一种已有的可以用于多方参与的数据隐私保护技术,其具体实现方式包括同态加密、混淆电路、不经意传输、秘密分享等技术。采用多方安全计算的方式,能够实现多个参与方设备之间针对联合数据分片和预测值分片的安全交互计算,进而使得多个参与方能够确定对应的相关性数据分片。
步骤S230,采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和相关性数据分片中的对应数据,确定模型参数对应的特征项在提升业务预测模型效果上的有效值。
其中,显著性检验法可以包括Wald检验、似然比(LR)检验、拉格朗日乘子(LM)检验等。对显著性检验法提供的已有公式进行变换之后,通过多个参与方设备之间的安全交互,对多个参与方的模型参数分片和相关性数据分片进行安全计算,确定与参与方对应的有效值分片。
在本实施例中,特征项与模型参数对应,模型参数分片和相关性数据分片中均存在与特征项分别对应的数据。利用模型参数分片和相关性数据分片中的对应数据,采用显著性检验法,能够确定多个模型参数分别对应的显著性检验值分片,也就是对应的多个特征项的显著性检验值分片,并可以基于显著性检验值分片确定上述有效值分片。
在需要确定某个特征项的有效值时,例如针对任意的第一特征项,第一参与方设备可以从其他参与方设备中获取第一特征项的有效值分片,基于第一特征项在本地的有效值分片和获取的有效值分片,确定第一特征项的重构后的有效值。特征项的有效值也可以在第二参与方设备或其他参与方设备中重构,本实施例仅以在第一参与方设备中重构有效值为例来进行说明。
在获取多个特征项的有效值之后,第一参与方设备还可以基于多个有效值,从多个特征项中去除有效值不满足预设条件的特征项,以使多个参与方采用去除特征项后的业务数据,对业务预测模型进行安全联合训练。去除特征项后的业务数据,实现了对原始矩阵的降维处理,使得特征项更加精炼,同时保证隐私数据的安全不泄露。
下面详细说明一种具体实施例。当业务预测模型包括逻辑回归模型,且显著性检验方法采用Wald检验法时,步骤S220中确定相关性数据分片的方式,以及步骤S230中确定特征项的效果值的具体实施方式。
下面首先详细说明Wald检验在逻辑回归上的应用原理。在采用逻辑回归模型对样本的特征数据进行回归时,预测值的计算公式包括:
其中,X为样本的特征数据,可以作为自变量;π(X)为样本的预测值函数,可以作为因变量;β为模型参数,为特征项系数;e为自然常数。
Wald检验的原假设和备择假设为:
H0:ωj=0(j=1,2,…,k),即自变量对因变量发生的可能性无影响作用,也就是假设自变量对因变量的估计值无影响;
H1:ωj≠0
如果零假设被拒绝,说明因变量的变化依赖于自变量j。
该Wald检验的检验统计量为
Waldk为显著性检验值,其符合自由度为1的卡方分布。其中,为模型参数的标准差,也等于协方差矩阵的对角元素的平方根:
协方差矩阵的对角元素均为特征项的方差。模型参数的协方差矩阵为对数似然函数的负海森(Hessian)矩阵在处的值
其中
为海森矩阵H中的元素表达式,角标k和r均取小于N的自然数,xik和xir为联合数据X中的元素,Xi表示第i个样本的特征数据。
通过对上面的公式推导可知,H矩阵可以表示为H=XTMX,其中
其中,N为样本的总数量,即对象的总数量,D为特征数据的维度,π(XN)为逻辑回归模型针对样本XN的预测值,M为基于预测值得到的对角矩阵,也可以称为预测值矩阵。
从上面的公式(2)
可以看出,针对第k个模型参数,当该模型参数的标准差越大时,也就是协方差矩阵中对应第k行第k列的值越大时,说明该模型参数会使得逻辑回归模型的震荡性越大,该模型参数对应的Wald检验值越小。
在确定第k个模型参数的显著性检验值Waldk之后,还可以根据
得到zk统计量,并根据p_value=2[1-norm.cdf(|zk|)]计算对应的p值,其中函数norm.cdf用来获取正态分布的概率分布函数。当p值小于显著性水平阈值,则拒绝原假设,该模型参数可以保留建模,该模型参数对应的特征项的有效值可以取为1或其他较高的值;当p值不小于显著性水平阈值,则接受原假设,该模型参数不予保留,该模型参数对应的特征项的有效值可以取为0或其他较低的值。显著性水平阈值通常可以取0.05或0.01等。
逻辑回归分析是解析自变量和因变量并明确两者关系的统计方法。只有当自变量与因变量确实存在某种关系时,建立的回归方程才有意义。因此,作为自变量的因素与作为因变量的预测对象是否有关,相关程度如何,以及判断这种相关程度的把握性有多大,是回归分析要解决的问题。逻辑回归分析可以使用Wald检验一一检验回归项系数的值。如果对于特定的自变量,Wald检验后表明这些自变量是重要的,则应该包含在模型中。如果Wald测试表明这些自变量不具有重要意义,则可以从模型中省略这些自变量。利用逻辑回归分析和Wald检验能够对业务预测模型的模型参数进行评估,进而基于评估结果筛选对象样本的特征项,达到对业务数据进行降维处理的目的。
在本实施例中,步骤S220中,相关性数据包括协方差矩阵数据,相关性数据分片包括协方差矩阵分片。多个参与方的协方差矩阵分片在假定重构的情况下能够构成协方差矩阵。协方差矩阵是联合数据中多个特征项中两两特征项之间的协方差构成的矩阵,其主对角线上的元素为多个特征项的方差,非对角线上的元素为两两特征项之间的协方差。协方差矩阵为对称矩阵,当联合数据中有D个特征项时,协方差矩阵可以是D*D维的对称矩阵。
在步骤S220中确定多个参与方分别对应的相关性数据分片时,也就是确定多个参与方分别对应的协方差矩阵分片时,多个参与方的参与方设备可以执行以下步骤1和2。
步骤1,基于多个参与方的联合数据分片和预测值分片,以及业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片。例如,第一参与方A得到中间矩阵分片<H>A,第二参与方B得到中间矩阵分片<H>B,多个中间矩阵分片在假设重构的情况下得到中间矩阵H。多个参与方并不会真正进行中间矩阵分片的重构,这里只是表示多个中间矩阵分片之间的关系。
步骤2,基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。例如,第一参与方A得到中间矩阵逆的分片<H-1>A,第二参与方B得到中间矩阵逆的分片<H-1>B,多个中间矩阵逆的分片在假设重构的情况下得到中间矩阵的逆H-1。多个参与方并不会真正进行中间矩阵逆的分片的重构,这里只是表示多个中间矩阵逆的分片之间的关系。
在步骤1中,确定多个参与方分别对应的中间矩阵分片时,可以基于多个参与方的联合数据分片和预测值分片,以及基于业务预测模型中的函数关系式得到的海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片,作为中间矩阵分片;所述海森矩阵表达式中包括联合数据矩阵和预测值矩阵。
其中,当业务预测模型为逻辑回归模型时,业务预测模型的函数关系式,即模型预测值的函数关系式如上式(1)所示在逻辑回归模型经过训练之后,得到对应的模型参数,例如β。海森矩阵表达式实际上是针对模型参数β进行的二阶导。通过上述式(1)~式(5),可知基于业务预测模型中的函数关系式得到的海森矩阵表达式为
H=XTMX (9)
通过多个参与方设备之间的安全交互,基于多个参与方分别拥有的联合数据分片<X>,以及基于多个预测值π(XN)分片得到的矩阵M分片,利用上述式(9)可以使得多个参与方分别确定H的分片,该H的分片作为中间矩阵分片。其中,M可以称为预测值矩阵。
在一种应用场景中,联合数据X是高维矩阵,对象的数量N的基本常常在十万、百万甚至更多,这就导致在利用多个参与方的分片数据计算H=XTMX时,交互数据量过大,处理效率不高。为了简化对H分片的计算,尽可能简化多个参与方之间的交互数据,可以对矩阵M的形式进行变换,以便简化多个参与方对H分片的确定过程。
具体的,第一参与方设备在利用联合数据分片<X>A、多个预测值分片以及上述式(9)确定多个参与方分别对应的海森矩阵分片<H>时,可以执行以下步骤1a~3a。
步骤1a,利用秘密分享乘法,基于预测值矩阵的表达式,对多个参与方的预测值分片进行向量元素的对应相乘,使得多个参与方分别得到中间向量分片。
例如,针对两个参与方的情况,第一参与方A和第二参与方B之间可以利用秘密分享乘法,对预测值分片进行向量元素的对应相乘,得到第一参与方A的中间向量分片,第二参与方B的中间向量分片。多个参与方的中间向量分片在假定重构时得到中间向量。多个参与方并不会真正重构中间向量,这里只是表示多个中间向量分片之间的关系。
步骤2a,以第一参与方A的中间向量分片中的元素作为对角元素,构建得到对角化的第一参与方A的预测值矩阵分片。
作为其他的参与方设备,第二参与方设备也以第二参与方B的中间向量分片中的元素作为对角元素,构建得到对角化的第二参与方B的预测值矩阵分片。
步骤3a,基于多个参与方的联合数据分片<X>、预测值矩阵分片和海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片。例如,第一参与方A和第二参与方B之间可以通过例如秘密分享矩阵乘法确定海森矩阵分片<H>A和<H>B。
通过上述步骤1a和2a,多个参与方基于自身的多个预测值分片,分别得到了对角化之后的预测值矩阵分片。由于对角化后矩阵的主对角元素不为0,非主对角元素均为0。这样就对预测值矩阵进行了简化,从而能够提高处理效率。
在步骤1a中,预测值矩阵M的表达式中包括
π(XN)[π(XN)-1] (10)
因此,可以利用多个参与方各自拥有的预测值分片,例如第一参与方A的预测值分片<π>A,第二参与方B的预测值分片<π>B,得到上式(10)的另一种表达形式
(<π>A+<π>B)*(<π>A+<π>B-1)=<中间向量>A+<中间向量>B (11)多个参与方之间可以利用秘密分享乘法,按照式(11)进行向量元素的对应相乘。也就是,针对多个参与方之间的任意一组预测值分片,将该组预测值分片作为秘密分享乘法的输入,秘密分享乘法按照预测值矩阵表达式的形式进行,输出多个参与方各自的中间向量分片中的元素。多组预测值分片对应的中间向量分片元素组成中间向量分片。多个中间向量分片在假定重构时得到中间向量。
例如,第一参与方A的每个预测值分片<π>A、第二参与方B的对应预测值分片<π>B可以作为秘密分享乘法的输入,秘密分享乘法按照式(11)进行,输出第一参与方A和第二参与方B分别对应的<中间向量>A分片中的元素和<中间向量>B分片中的元素。
在步骤2a中,第一参与方A以<中间向量>A分片中的元素作为对角元素,构建得到对角矩阵<Λ>A,此即为对角化的第一参与方A的预测值矩阵分片。第二参与方B以<中间向量>B分片中的元素作为对角元素,构建得到对角矩阵<Λ>B,此即为对角化后的预测值矩阵分片。当<中间向量>A分片的维数为N时,构建得到的对角矩阵的维数为N*N。在构建对角矩阵时,预测值矩阵分片<Λ>A的对角元素分别是<中间向量>A分片中的元素,预测值矩阵分片<Λ>A的非对角元素均为0。
在步骤3a中,海森矩阵表达式H=XTMX中的M矩阵可以替换为预测值矩阵Λ,因此海森矩阵表达式可以更新为H=XTΛX。第一参与方A,第二参与方B可以采用秘密分享矩阵乘法(Secret Matrix Multiplication,SMM),基于第一参与方A的联合数据分片<X>A、预测值矩阵分片<Λ>A,以及第二参与方B的联合数据分片<X>B、预测值矩阵分片<Λ>B,按照H=XTΛX,确定第一参与方A的海森矩阵分片<H>A,以及第二参与方B的海森矩阵分片<H>B。
由于预测值矩阵分片是对角矩阵,其中含有大量的0元素,且矩阵维度为N*N。在一种业务场景中,样本量N的量级非常大,例如在十万、百万或更高量级,即联合数据X的维度非常高。在针对XT和对角矩阵Λ进行秘密分享矩阵乘法时,为了提高执行效率,减少参与方之间的通信量,可以在计算XTΛ时采用更简洁方法。
也就是,在计算多个参与方的联合数据分片与预测值矩阵分片的安全乘操作时,将联合数据分片中的列向量分别与预测值矩阵分片中对应的对角元素进行安全乘操作。
多个预测值矩阵分片均为对角矩阵,主对角线上的元素不为0,非主对角线上的元素均为。当联合数据分片与预测值矩阵分片进行矩阵乘法操作时,可以将其切分成联合数据分片的列向量分别与预测值矩阵分片中的对角元素的乘操作,即列向量与非0元素的乘操作。列向量与0元素的乘操作,其结果均为0,可以省略不计算。这样,就能够将多个参与方之间的高维矩阵乘操作进行拆解,省去大量计算量,从而减少很多参与方之间的通信量。通信量在隐私保护场景下对处理效率起到决定性作用。
下面结合矩阵表达式说明列向量与非0元素的乘操作如何减少通信量。在海森矩阵表达式H=XTΛX中,XTΛ的具体形式为
其中,X为联合数据,T为矩阵转置符号,预测值
下面以XTΛ的第一列的计算方法为例进行说明。要求得XTΛ的第一列,需要向量x=(x11……x1D)的每个元素乘以以第一参与方A和第二参与方B之间的乘操作为例进行说明,参见图3所示的流程图,图3为本实施例中秘密分享矩阵乘法应用的一种计算流程示意图。
第一参与方A拥有D*1维的向量分片<x>A,以及1*1维的数值分片<m>A,其中以m代替作为简写。第二参与方B拥有D*1维的向量分片<x>B,以及1*1维的数值分片<m>B。
第1步,双方分别获得随机数三元组(triple)。第一参与方A获得<u>A(D*1)、<v>A(1*1)、<z>A(D*1),第二参与方B获得<u>B(D*1)、<v>B(1*1)、<z>B(D*1),且满足z(D*1)=u(D*1)*v(1*1),其中,z=<z>A+<z>B,u=<u>A+<u>B,v=<v>A+<v>B。其中,D*1、1*1为矩阵维度。
第2步,第一参与方A利用随机数对其隐私数据进行拆分,以实现对隐私数据的遮蔽进而得到隐秘矩阵。第一参与方A计算<d>A=<x>A-<u>A,<e>A=<m>A-<v>A。第二参与方B利用随机数对其隐私数据进行拆分,得到隐秘矩阵。第二参与方B计算<d>B=<x>B-<u>B,<e>B=<m>B-<v>B。
第3步,参与方之间相互发送各自的隐秘矩阵,并基于各自自身的隐秘矩阵和接收的隐秘矩阵进行处理。第一参与方A向第二参与方B发送<d>A和<e>A,第二参与方B向第一参与方A发送<d>B和<e>B。第一参与方A计算d=<d>A-<d>B,e=<e>A-<e>B,第一参与方B计算d=<d>A-<d>B,e=<e>A-<e>B。
第4步,参与方分别计算各自的数据分片。第一参与方A计算<Y>A=<z>A+<u>A*e+d*<v>A+d*e,第二参与方B计算<Y>B=<z>B+<u>B*e+d*<v>B。并且,<Y>A+<Y>B=x*m。
于是,第一参与方A和第二参与方B在不暴露隐私数据<x>A和<m>A以及<x>B和<m>B的情况下,分别得到了分片<Y>A和<Y>B,这两个分片在假定重构时,能够得到向量x与数值m的乘积。并且,每进行一次矩阵乘法,参与方之间的通信量包括上述第3步中进行的数据通信为2(D+1),计算XTΛ需要的通信量为2(D+1)*N。这相比于一般矩阵乘法计算需要的通信量2(D*N+N*N),减少了大量的通信量。
按照上述方式,多个参与方将XT中的每一列都与Λ中对应的对角元素相乘,对于任意一个参与方来说,其可以得到的多个分片<Y>A,将该多个分片<Y>A拼接起来构成的矩阵,即是XTΛ在该参与方中的分片。
在多个参与方联合计算得到XTΛ之后,可以采用SMM,基于多个参与方分别拥有的<XTΛ>分片以及联合数据分片<X>,确定海森矩阵H=XTΛX的分片。
下面以两个参与方为例,说明利用SMM进行分片矩阵乘法的过程。已知第一参与方A拥有分片<XTΛ>A以及联合数据分片<X>A,第二参与方B拥有分片<XTΛ>B以及联合数据分片<X>B,目标是输出XTΛX,使得第一参与方得到<XTΛX>A,第二参与方B得到<XTΛX>B,并且<XTΛX>A+<XTΛX>B=XTΛX。
第一参与方A和第二参与方B之间的处理过程可以参见图3所述示意图,将图3中第一参与方A的数据<x>A替换为<XTΛ>A,将<m>A替换为<x>A,将第二参与方B的数据<x>B替换为<XTΛ>B,将<m>B替换为<x>B,并相应调整各个参量的矩阵维度,即可以基于图3所示的流程图,使得第一参与方A和第二参与方B分别得到海森矩阵分片<XTΛX>A和<XTΛX>B。在图3中,<XTΛX>A对应于<Y>A,<XTΛX>B对应于<Y>B。
第一参与方A和第二参与方B所执行的操作,实际操作中分别是由各方对应的参与方设备执行的。
下面回到步骤2中,在基于多个参与方的中间矩阵分片<H>,计算多个参与方分别对应的中间矩阵逆的分片<H-1>,得到多个参与方分别对应的协方差矩阵分片<Cov>的步骤执行时,可以利用秘密分享矩阵逆(Secure Matrix Inverse,SMI)算法,基于多个参与方的中间矩阵分片<H>,通过迭代计算,得到多个参与方分别对应的协方差矩阵分片<Cov>。其中,协方差矩阵等于中间矩阵的逆,Cov=H-1。
例如,已知第一参与方A的中间矩阵分片<H>A和第二参与方B的中间矩阵分片<H>B,为了计算<H-1>A和<H-1>B得到,可以利用SMI进行迭代计算。其中,中间矩阵分片<H>A和<H>B在假定重构时得到中间矩阵H,H-1为H的逆矩阵,但是第一参与方A和第二参与方B不会重构H。因此,需要在已知<H>A和<H>B,且不对其进行重构的情况下,使得第一参与方A和第二参与方B分别确定<H-1>A和<H-1>B。不对中间矩阵H进行重构,能够避免隐私数据的泄露。
下面以两个参与方为例,说明利用SMI迭代计算协方差矩阵分片的过程。已知第一参与方A拥有中间矩阵分片<H>A,第二参与方B拥有中间矩阵分片<H>B,H=<H>A+<H>B。期望:使得第一参与方A得到<H-1>A,第二参与方B得到<H-1>B,H-1=<H-1>A+<H-1>B。
初始化时,第一参与方A和第二参与方B通过联合计算分别得到L0,
L0=tr(H)-1=[tr(<H>A)+tr(<H>B)]-1
其中,tr为矩阵的迹。
在任意一次迭代计算中,多个参与方之间利用SMM,并按照以下迭代公式分别进行计算
Lk+1=Lk(2*I-H Lk)=(<Lk>A+<Lk>B)[2*I-(<H>A+<H>B)(<Lk>A+<Lk>B)]
其中,I为单位矩阵。在一次迭代过程中,需要进行2次SMM。迭代轮数可以预先设定,例如可以设置为20至32次,k是迭代次数。
下面回到步骤S230,在基于多个参与方的模型参数分片和协方差矩阵分片,确定模型参数对应的特征项在提升业务预测模型效果上的有效值时,可以采用Wald检验的式(2)
或者采用式(8)
计算第k个模型参数的显著性检验值(或称为显著性水平值),基于显著性检验值以及初始假设,确定模型参数对应的特征项在提升业务预测模型效果上的有效值。
在确定Waldk或者zk时,分子部分是模型参数,分母部分是模型参数的标准差,标准差可以根据模型参数方差的平方根求得,而协方差矩阵对角元素即为对应的模型参数的方差。下面可以利用秘密分享根号逆(Secure Number Sqrt Invert,SNSI)算法,基于多个参与方的模型参数分片和协方差矩阵分片,确定模型参数对应的特征项的有效值。具体可以包括以下步骤1b和2b。
步骤1b,多个参与方设备,将多个参与方的协方差矩阵分片中的对角元素,作为与多个模型参数分别对应的方差分片。这里的对角元素可以是指主对角元素。在协方差矩阵中,主对角元素为特征项的方差。相对应的,在协方差矩阵分片中,主对角元素是特征项的方差分片。
步骤2b,第一参与方设备,针对任意一个模型参数,利用SNSI算法以及显著性检验法,基于第一参与方A的对应模型参数分片以及多个参与方的对应方差分片,通过多个参与方设备之间的交互,联合进行安全根号逆操作,确定第一参与方A的针对该模型参数的显著性检验值分片。基于多个参与方针对该模型参数的显著性检验值分片,确定该模型参数对应的特征项的有效值。
同样的,第二参与方设备,针对任意一个模型参数,利用SNSI算法以及显著性检验值,基于第二参与方B的对应模型参数分片以及多个参与方的对应方差分片,通过多个参与方设备之间的交互,联合进行安全根号逆操作,确定第二参与方B的该模型参数的显著性检验值分片。
在一种实施方式中,多个参与方的显著性检验值分片可以发送至某一个参与方设备或者第三方设备,由该参与方设备或者第三方设备重构得到显著性检验值,基于该显著性检验值,按照预定的变换方式,可以确定对应的特征项的有效值。在另一种实施方式中,多个参与方的显著性检验值分片也可以直接作为有效值分片,多个显著性检验值分片可以重构得到有效值。
显著性检验值可以基于上述式(2)或者式(8),或者p_value公式进行计算,所得到的显著性检验值分片可以但不限于是Waldk值分片、zk值分片或者p值分片。
多个参与方的模型参数分片在假定重构时得到该模型参数。例如,针对任意一个模型参数β1,第一参与方的模型参数分片<β1>A和第二参与方B的模型参数分片<β1>B在假定重构时得到该模型参数β1。模型参数分片不会真正进行重构,这里仅是为了说明模型参数分片与模型参数之间的关系。
可见,本实施例在计算显著性检验值时,使用的是多个参与方的协方差矩阵分片中的对角元素,并没有对协方差矩阵中的数据进行重构,因此能够很好地保护协方差矩阵中隐私数据的安全性。
下面详细说明步骤2b中,针对任意一个模型参数βk,第一参与方设备利用SNSI算法以及显著性检验法,通过多个参与方设备之间的交互,基于第一参与方A的模型参数分片<βk>A以及多个参与方的方差分片,联合进行安全根号逆操作,确定第一参与方A的针对模型参数βk的显著性检验值分片的步骤。同理可以得到第二参与方设备确定第二参与方B的针对模型参数βk的显著性检验值分片。
以显著性检验法中的式(8)为例。对于第一参与方来说,该公式(8)可以变形为
其中,<zk>A为第一参与方A的模型参数βk的显著性检验值分片,分子部分为第一参与方A的模型参数分片,分母部分中,<Covkk>A为第一参与方A拥有的模型参数βk对应的方差分片,也是第一参与方A的协方差矩阵分片中的第kk元素(对角元素),<Covkk>B为第二参与方B拥有的模型参数βk对应的方差分片,也是第二参与方B的协方差矩阵分片中的第kk元素。
分子部分是第一参与方A拥有的,分母部分是第一参与方A和第二参与方B共同拥有的。于是,现在问题的重点在于如何计算式(12)中的根号逆。本实施例中,利用SNSI算法确定第一参与方A的模型参数βk的方差分片与第二参与方B的模型参数βk的方差分片的和的根号逆,基于该根号逆与第一参与方A的模型参数分片<βk>A的乘积,可以得到第一参与方A针对模型参数βk的显著性检验值分片。其中,式(12)中的根号逆如下
下面通过步骤1c~3c具体说明如何利用SNSI算法计算根号逆(<Covkk>A+<Covkk>B)-1/2。为了描述方便,令na=<Covkk>A,nb=<Covkk>B,令n表示模型参数βk,即n=na+nb,通过以下计算期望使得第一参与方设备得到ca,第二参与方设备得到cb,并且ca+cb=(na+nb)-1/2=n-1/2。
步骤1c,第一参与方设备和第二参与方设备通过交互,将加法分片转化为乘法分片。
第一参与方设备在本地生成一个随机数xa,并求
第一参与方设备与第二参与方设备通过秘密分享矩阵乘法联合计算分别得到xba2,xbb;
第一参与方设备计算xba=xba1+xba2,并将xba发送至第二参与方设备(xba1,xba2不可单独发送);
第二参与方设备计算xb=xba+xbb,此时n=xa×xb,实现将加法分片n=na+nb转化成乘法分片n=xa×xb。此时,第一参与方A拥有xa,第二参与方拥有xb。
步骤2c,两个参与方设备分别在本地进行迭代估计值的初始化。
以第一参与方A为例,第一参与方设备将64位浮点数xa的存储值按照64位整数的存储方式进行读取,并右移一位(除以2并向下取整),记为inta;计算0x5fe6eb50c7b537a9-inta,并按照64位浮点数的存储方式进行读取,记为ya。这样,即将xa初始化为ya。
同样的,第二参与方设备进行以上初始化,可以将xb初始化为yb。此时,第一参与方A拥有ya,第二参与方拥有yb。
步骤3c,两参与方联合利用牛顿法迭代计算n-1/2。
迭代初始值为Y0=Y0a×Y0b=ya×yb,分别由两个参与方拥有。迭代公式如下
其中,迭代过程中使用两次秘密分享矩阵乘法,共迭代1次,第一参与方A和第二参与方B分别得到浮点数ca和cb。
上述步骤2b的实施过程,还可以采用其他方式实施。例如,先将第一参与方A的方差分片和第二参与方B的方差分片进行安全标准化,之后通过线性近似计算得到迭代初始值,最后基于Goldschmidt算法进行迭代。在该实施方式中,可以基于第一参与方A的方差分片和第二参与方B的方差分片进行秘密分享矩阵乘法运算,再执行其他操作。
本说明书中,第一参与方、第一特征项中的“第一”,以及文中的“第二”,仅仅是为了区分和描述方便,而不具有任何限定意义。
本说明书中,多个参与方的数量可以是2个、3个或更多个,每个参与方通过对应的参与方设备执行多种操作,参与方设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。
在本说明书的实施例中,多以两个参与方为例进行说明。例如,在针对多方安全计算的秘密分享矩阵乘法、秘密分享根号逆、秘密分享矩阵逆等算法的实施例说明中,可以将两个参与方的实施方式较容易地扩展至更多方参与的场景,具体过程不再赘述。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图4为实施例提供的一种保护隐私的确定业务数据特征有效值的装置的示意性框图。业务数据分布在多个参与方中,多个参与方各自的业务数据在假定拼接的情况下构成联合数据,所述联合数据包括多个对象针对多个特征项的特征值;所述装置400部署在任意的第一参与方设备中,第一参与方设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该装置实施例与图2所示方法实施例相对应。该装置400包括:
获取模块410,配置为,获取第一参与方的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片;所述预测值分片和所述模型参数分片基于训练后的业务预测模型得到;
交互模块420,配置为,利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和预测值分片,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据;
检验模块430,配置为,采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和所述相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
在一种实施方式中,所述获取模块410,在获取第一参与方的联合数据分片时,包括:
采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片;多个参与方的联合数据分片在假定重构的情况下得到所述联合数据。
在一种实施方式中,所述业务预测模型,基于多个参与方各自的联合数据分片进行安全联合训练得到;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述获取模块410,在获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片时,包括:
获取训练后的业务预测模型在所述第一参与方设备本地的模型参数分片;
通过多个参与方设备的交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
在一种实施方式中,所述相关性数据包括协方差矩阵数据,所述相关性数据分片包括协方差矩阵分片;所述交互模块420包括:
确定子模块421,配置为,基于多个参与方的联合数据分片和预测值分片,以及所述业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片;
计算子模块422,配置为,基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述确定子模块421,具体配置为:
基于多个参与方的联合数据分片和预测值分片,以及基于所述业务预测模型中的函数关系式得到的海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片,作为中间矩阵分片;所述海森矩阵表达式中包括联合数据矩阵和预测值矩阵。
在一种实施方式中,所述确定子模块421,在确定多个参与方分别对应的海森矩阵分片时,包括:
利用秘密分享乘法,基于预测值矩阵的表达式,对多个参与方的预测值分片进行向量元素的对应相乘,使得多个参与方分别得到中间向量分片;
以所述第一参与方的中间向量分片中的元素作为对角元素,构建得到对角化的所述第一参与方的预测值矩阵分片;
基于多个参与方的联合数据分片、预测值矩阵分片和所述海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片。
在一种实施方式中,所述确定子模块421,在基于多个参与方的联合数据分片、预测值矩阵分片和所述海森矩阵表达式,确定多个参与方分别对应的海森矩阵分片时,包括:
在计算多个参与方的联合数据分片与预测值矩阵分片的安全乘操作时,将联合数据分片中的列向量分别与预测值矩阵分片中对应的对角元素进行安全乘操作。
在一种实施方式中,所述计算子模块422,具体配置为:
利用秘密分享矩阵逆算法SMI,基于多个参与方的中间矩阵分片,通过迭代计算,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述检验模块430具体配置为:
将多个参与方的协方差矩阵分片中的对角元素,作为与多个模型参数分别对应的方差分片;
针对任意一个模型参数,利用SNSI以及显著性检验法,基于所述第一参与方的对应模型参数分片以及多个参与方的对应方差分片,通过多个参与方设备之间的交互,联合进行安全根号逆操作,确定所述第一参与方的针对该模型参数的显著性检验值分片;基于多个参与方针对该模型参数的显著性检验值分片,确定该模型参数对应的特征项的有效值。
在一种实施方式中,装置400还包括重构模块(图中未示出),配置为:
针对任意的第一特征项,从其他参与方设备中获取所述第一特征项的有效值分片;
基于所述第一特征项在本地的有效值分片和获取的有效值分片,确定所述第一特征项的重构后的有效值。
在一种实施方式中,装置400还包括去除模块(图中未示出),配置为:
基于所述有效值,从多个特征项中去除有效值不满足预设条件的特征项,以使多个参与方采用去除特征项后的业务数据,对所述业务预测模型进行安全联合训练。
在一种实施方式中,所述对象包括用户、商品、事件中的一种;所述特征项包括以下至少一种:基本属性信息、关联关系信息、交互信息、历史行为信息;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述业务预测模型基于逻辑回归模型得到。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图3任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图3任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。