控制通信量的确定业务数据特征有效值的方法及装置
技术领域
本说明书一个或多个实施例涉及数据安全
技术领域
,尤其涉及一种控制通信量的确定业务数据特征有效值的方法及装置。背景技术
机器学习所需要的数据往往会涉及多个平台、多个领域。例如在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据。为了提高服务,多方常常在保证业务数据隐私性和安全性的前提下,联合起来训练业务预测模型。
随着数据量的增多,数据的特征维度也变得越来越大。这些多维特征数据往往存在一些冗余信息,可能会影响机器学习的效果,降低模型的稳定性。因此,可以根据特征有效性,对多维特征数据进行降维处理,在尽量不损失信息量的情况下,去掉在提升模型性能方面显著性不高的冗余特征,将其转化为低维特征。
因此,希望能有改进的方案,可以在保证数据隐私性的前提下,尽可能在确定特征有效值的过程中提高处理效率。
发明内容
本说明书一个或多个实施例描述了控制通信量的确定业务数据特征有效值的方法及装置,可以在不泄露隐私数据的前提下,针对分布在多方中的业务数据进行特征项有效值的确定,并且提高处理效率。具体的技术方案如下。
第一方面,实施例提供了一种控制通信量的确定业务数据特征有效值的方法,业务数据分布在多个参与方中,多个参与方各自的业务数据在假定拼接的情况下构成联合数据,所述联合数据包括多个对象针对多个特征项的特征值;所述方法通过任意的第一参与方设备执行,包括:
获取第一参与方的联合数据分片,获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片;所述预测值分片和所述模型参数分片基于训练后的业务预测模型得到;
通过参与方设备与选定参与方设备之间针对预测值分片的传输,在所述选定参与方设备中利用多个预测值分片重构完整的预测值数据;
利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和选定参与方的预测值数据,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据;
采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和所述相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
在一种实施方式中,所述获取第一参与方的联合数据分片的步骤,包括:
采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片;多个参与方的联合数据分片在假定重构的情况下得到所述联合数据。
在一种实施方式中,所述业务预测模型,基于多个参与方各自的联合数据分片进行安全联合训练得到;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片的步骤,包括:
获取训练后的业务预测模型在所述第一参与方设备本地的模型参数分片;
通过多个参与方的交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
在一种实施方式中,所述选定参与方包括拥有标签数据的参与方;所述重构完整的预测值数据的步骤,包括:
当所述第一参与方不是选定参与方时,将自身的预测值分片发送至选定参与方设备,以使得选定参与方设备利用多个预测值分片重构完整的预测值数据;
当所述第一参与方是选定参与方时,接收其他参与方发送的预测值分片,将自身的预测值分片和接收的预测值分片进行重构,得到完整的预测值数据。
在一种实施方式中,所述相关性数据包括协方差矩阵数据,所述相关性数据分片包括协方差矩阵分片;
所述确定多个参与方分别对应的相关性数据分片的步骤,包括:
基于多个参与方的联合数据分片和所述选定参与方的预测值数据,以及所述业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片;
基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述确定多个参与方分别对应的中间矩阵分片的步骤,包括:
按照多个参与方的业务数据的假定拼接关系,将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块;所述海森矩阵表达式中包括联合数据和预测值数据;
按照多个分块所关联的参与方数据,利用多个参与方的联合数据分片和所述选定参与方的预测值数据中的对应数据,使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片,作为中间矩阵分片。
在一种实施方式中,任意一个参与方的业务数据包括所有对象的部分特征项的特征值;
所述将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块的步骤,包括:
将所述海森矩阵表达式划分成与所述选定参与方的数据关联的第一分块,与多个参与方关联的第二分块;
所述使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片的步骤,包括:
当所述第一参与方是选定参与方时,利用自身的联合数据分片和所述预测值数据确定所述第一分块的数据分片;当所述第一参与方不是选定参与方时,将0值填充至所述第一分块,得到其数据分片;
利用秘密分享矩阵乘法SMM,通过多个参与方之间的交互,利用多个参与方的联合数据分片和所述选定参与方的预测值数据中的对应数据,确定多个参与方对应的第二分块的数据分片;
对所述第一参与方的第一分块的数据分片以及第二分块的数据分片进行拼接,得到所述第一参与方的海森矩阵分片。
在一种实施方式中,任意一个参与方的业务数据包括部分对象的所有特征项的特征值;
所述将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块的步骤,包括:将所述海森矩阵表达式划分成与多个参与方的数据分别关联的多个分块;
所述使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片的步骤,包括:
利用所述第一参与方自身的联合数据分片和预测值数据,确定与所述第一参与方的数据关联的分块的数据分片,将0值填充至与其他参与方的数据关联的分块,得到其数据分片;
将多个分块的数据分片进行拼接,得到所述第一参与方的海森矩阵分片。
在一种实施方式中,所述基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片的步骤,包括:
利用秘密分享矩阵逆算法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~S240。
步骤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,通过参与方设备与选定参与方设备之间针对预测值分片的传输,在选定参与方设备中利用多个预测值分片重构完整的预测值数据。
其中,选定参与方C可以是从多个参与方中任意的一个参与方,也可以是按照一定的选择规则从多个参与方中选择的。选定参与方可以是管理员预先选定或设定的,并且选定参与方的标识可以预先发送至其他参与方。
在一种实施方式中,选定参与方可以是拥有标签数据的参与方。以第一参与方A为例,重构完整的预测值数据的步骤,可以包括:
当第一参与方A不是选定参与方时,将自身的预测值分片发送至选定参与方设备,以使得选定参与方设备利用多个预测值分片重构完整的预测值数据。
当第一参与方A是选定参与方时,接收其他参与方发送的预测值分片,将自身的预测值分片和接收的预测值分片进行重构,得到完整的预测值数据。
参与方的业务数据中可以包括标签数据,例如在每个对象对应的业务数据中存在至少一个标签数据。例如,对象是用户时,用户1的业务数据中可以包括用户1是否为高风险用户的标签数据,标签数据1和0可以分别代表是或否。
拥有标签数据的参与方可以是一个,也可以是多个。在如表1所示的业务数据分布中,参与方1至参与方W中的一个参与方,可以拥有全部对象的标签数据,例如参与方1拥有全部N个对象的标签数据。在重构预测值数据时,选定参与方可以获取其他参与方的多个预测值分片,并将N个对象的全部预测值分片进行重构,得到预测值数据。例如,有3个参与方A、B和C,每个参与方拥有10个对象的业务数据,参与方A拥有标签数据,为选定参与方。参与方B和参与方C可以分别将其10预测值分片发送至参与方A。参与方A的设备可以获取全部的30个预测值分片,其中每个对象对应3个预测值分片,这3个预测值分片可以重构得到该对象的预测值数据,进而得到10个对象的预测值数据,共10个。
在如表2所示的业务数据分布中,参与方1至参与方W分别拥有部分对象的标签数据。在这种情况下,针对不同的业务数据,由不同的参与方充当选定参与方,预测值数据在不同的参与方中被重构。例如,有3个参与方A、B和C,每个参与方拥有5个对象的业务数据,共15个对象的业务数据。其中,参与方A的业务数据中拥有对象1至对象5的标签数据,参与方B的业务数据中拥有对象6至对象10的标签数据,参与方C的业务数据中拥有对象11至对象15的标签数据。在重构预测值数据时,针对对象1至对象5共5个对象,参与方B和参与方C将各自的该5个对象的预测值分片发送至参与方A,参与方A利用自身的5个预测值分片以及接收的其他参与方发送的10个预测值分片,重构得到对象1至对象5分别对应的预测值数据,共5个。同理,针对对象6至对象10,参与方B作为选定参与方,重构这部分对象的预测值数据;针对对象11至对象15,参与方C作为选定参与方,重构这部分对象的预测值数据。
由拥有标签数据的参与方作为选定参与方,执行重构预测值数据的步骤,能够使得预测值数据相对于非标签拥有者来说是保密的,其他参与方不会获取到预测值数据,保护了预测值数据的隐私性。
步骤S230,利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和选定参与方的预测值数据,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据。
其中,多个参与方的相关性数据分片在假定重构的情况下得到相关性数据,即特征项之间的相关性数据,该特征项包括同一参与方拥有的特征项之间的相关性数据,也包括不同参与方拥有的特征项之间的相关性数据,既有不同特征项之间的相关性数据,又有相同特征项之间的相关性数据。
在本步骤实施时,可以基于已有的计算特征项之间相关性数据的公式,利用联合数据分片和选定参与方的预测值数据,并通过多方安全计算的方式,确定多个参与方分别对应的相关性数据分片。能够表示特征项之间相关性数据的公式,可以包括协方差矩阵公式、相关系数公式等等。
多方安全计算(Secure Multi-party Computation,MPC)是一种已有的可以用于多方参与的数据隐私保护技术,其具体实现方式包括同态加密、混淆电路、不经意传输、秘密分享等技术。采用多方安全计算的方式,能够实现多个参与方设备之间针对联合数据分片和预测值数据的安全交互计算,进而使得多个参与方能够确定对应的相关性数据分片。
步骤S240,采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
其中,显著性检验法可以包括Wald检验、似然比(LR)检验、拉格朗日乘子(LM)检验等。对显著性检验法提供的已有公式进行变换之后,通过多个参与方设备之间的安全交互,对多个参与方的模型参数分片和相关性数据分片进行安全计算,确定与参与方对应的有效值分片。
在本实施例中,特征项与模型参数对应,模型参数分片和相关性数据分片中均存在与特征项分别对应的数据。利用模型参数分片和相关性数据分片中的对应数据,采用显著性检验法,能够确定多个模型参数分别对应的显著性检验值分片,也就是对应的多个特征项的显著性检验值分片,并可以基于显著性检验值分片确定上述有效值分片。
在需要确定某个特征项的有效值时,例如针对任意的第一特征项,第一参与方设备可以从其他参与方设备中获取第一特征项的有效值分片,基于第一特征项在本地的有效值分片和获取的有效值分片,确定第一特征项的重构后的有效值。特征项的有效值也可以在第二参与方设备或其他参与方设备中重构,本实施例仅以在第一参与方设备中重构有效值为例来进行说明。
在获取多个特征项的有效值之后,第一参与方设备还可以基于多个有效值,从多个特征项中去除有效值不满足预设条件的特征项,以使多个参与方采用去除特征项后的业务数据,对业务预测模型进行安全联合训练。去除特征项后的业务数据,实现了对原始矩阵的降维处理,使得特征项更加精炼,同时保证隐私数据的安全不泄露。
下面详细说明一种具体实施例。当业务预测模型包括逻辑回归模型,且显著性检验方法采用Wald检验法时,步骤S230中确定相关性数据分片的方式,以及步骤S240中确定特征项的效果值的具体实施方式。
下面首先详细说明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检验能够对业务预测模型的模型参数进行评估,进而基于评估结果筛选对象样本的特征项,达到对业务数据进行降维处理的目的。
在本实施例中,步骤S230中,相关性数据包括协方差矩阵数据,相关性数据分片包括协方差矩阵分片。多个参与方的协方差矩阵分片在假定重构的情况下能够构成协方差矩阵。协方差矩阵是联合数据中多个特征项中两两特征项之间的协方差构成的矩阵,其主对角线上的元素为多个特征项的方差,非对角线上的元素为两两特征项之间的协方差。协方差矩阵为对称矩阵,当联合数据中有D个特征项时,协方差矩阵可以是D*D维的对称矩阵。
在步骤S230中确定多个参与方分别对应的相关性数据分片时,也就是确定多个参与方分别对应的协方差矩阵分片时,多个参与方的参与方设备可以执行以下步骤1和2。
步骤1,基于多个参与方的联合数据分片和选定参与方的预测值数据,以及业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片。例如,第一参与方A得到中间矩阵分片<H>A,第二参与方B得到中间矩阵分片<H>B,多个中间矩阵分片在假设重构的情况下得到中间矩阵H。多个参与方并不会真正进行中间矩阵分片的重构,这里只是表示多个中间矩阵分片之间的关系。
步骤2,基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。例如,第一参与方A得到中间矩阵逆的分片<H-1>A,第二参与方B得到中间矩阵逆的分片<H-1>B,多个中间矩阵逆的分片在假设重构的情况下得到中间矩阵的逆H-1。多个参与方并不会真正进行中间矩阵逆的分片的重构,这里只是表示多个中间矩阵逆的分片之间的关系。
在上述步骤1中,确定多个参与方分别对应的中间矩阵分片时,可以包括以下步骤1_1和步骤1_2。
步骤1_1,按照多个参与方的业务数据的假定拼接关系,将基于业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块。海森矩阵表达式中包括联合数据和预测值数据。
步骤1_2,按照多个分块所关联的参与方数据,利用多个参与方的联合数据分片和选定参与方的预测值数据中的对应数据,使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片,作为中间矩阵分片。
其中,当业务预测模型为逻辑回归模型时,业务预测模型的函数关系式,即模型预测值的函数关系式如上式(1)所示。在逻辑回归模型经过训练之后,得到对应的模型参数,例如β。海森矩阵表达式实际上是针对模型参数β进行的二阶导,也就是上式(5)
其中,H是基于业务预测模型中的函数关系式得到的海森矩阵,Hkr是海森矩阵H中第k行第r列元素的表达式,xik和xir是联合数据X中的元素,Xi表示第i个样本的特征数据,π(Xi)为预测值数据,i可以从1取到N。
本实施例中,按照多个参与方的业务数据的假定拼接关系,可以将海森矩阵H划分成多个分块。多个参与方的业务数据的假定拼接关系,包括多个参与方的业务数据基于既定参与方顺序横向或纵向假定拼接成联合数据的拼接关系。
在数据垂直切分的应用场景中,任意一个参与方的业务数据包括所有对象的部分特征项的特征值。参见表1,其中任意一个参与方的业务数据包括了N个对象的部分特征项的特征值,多个参与方的业务数据可以基于横向拼接得到联合数据。表1仅仅是一种数据分布示例,其中行表示对象,列表示特征项。在其他实施方式中,也可以采用行表示特征项,列表示对象。在下面的举例中,多以表1所示的数据分布为例,说明数据垂直切分场景下海森矩阵的划分。
在这种应用场景中,划分海森矩阵表达式时,可以将海森矩阵表达式划分成与选定参与方的数据关联的第一分块,与多个参与方关联的第二分块。
例如,以两个参与方为例,第一参与方A和第二参与方B的业务数据,在概念上按照表3所示拼接成联合数据。需要说明的是,这里的拼接是虚拟拼接,实际中并不会执行。
表3
其中,第一参与方A的业务数据包含dA个特征项,并且假定第一参与方A是选定参与方,其业务数据中包含标签数据。第二参与方B的业务数据包含dB个特征项,第二参与方B不是选定参与方。如果采用矩阵的形式表示,第一参与方A和第二参与方B的业务数据可以假定拼接成类似于表3的联合数据矩阵X,其中总行数为N,总列数为dA和dB之和,表示为XN*(dA+dB)。
根据上式(5)的表达式,对海森矩阵H进行划分,可以得到
其中,海森矩阵H被划分为4个分块,每个分块均是子矩阵。这里可以注意的是,联合数据的总列数为dA+dB,式(5)中的xik和xir,i在联合数据的行数1~N中取值,k和r在联合数据的列1~D中取值。这是理论上的情况。
对于左上角分块[A]矩阵来说,其中确定Hkr元素的需要的数据均在第一参与方A的数据中取,并且预测值数据π(Xi)也由第一参与方A拥有。即,当k和r在列数0~dA中取值时,式(5)中的xik和xir均在第一参与方A的业务数据中取值。因此,可以确定左上角分块[A]中的数据可以由第一参与方A独立计算。左上角分块[A]就是与选定参与方的数据关联的第一分块。
在式(9)中,右上角分块[AB]和左下角分块[BA]互为转置矩阵,确定其中的一个之后,通过对其求转置,即可确定另一个。下面以确定分块[AB]为例进行说明。分块[AB]中的Hkr元素的行和列的数据在第一参与方A和第二参与方B的业务数据中取。即,当k和r,一个在列数0~dA中取值,一个在列数dA+1~dA+dB中取值时,则式(5)中的xik和xir,一个在第一参与方A的业务数据XA中取值,一个在第二参与方B的业务数据XB中取值。因此,可以确定右上角分块[AB]中的数据可以由第一参与方A和第二参与方B联合计算。右上角分块[AB]属于与第一参与方A和第二参与方B的数据均关联的第二分块。
确定右下角分块[B]中的Hkr元素需要的数据在第一参与方A和第二参与方B的数据中取。即,当k和r在列数dA+1~dA+dB中取值时,式(5)中的xik和xir均在第二参与方B的业务数据XB中取值,但是预测值数据是由第一参与方A拥有的,因此右下角分块[B]也需要第一参与方A和第二参与方B联合计算。右下角分块[B]属于与第一参与方A和第二参与方B的数据均关联的第二分块。
这样,海森矩阵H被划分成4个分块,相应的,第一参与方A的海森矩阵分片<H>A以及第二参与方B的海森矩阵分片<H>B均被划分为4个分块,两个海森矩阵分片中对应的分块在假定重构下构成海森矩阵中的分块。
其中,第一参与方A的海森矩阵分片<H>A中,左上角分块的数据分片<[A]>A(属于第一分块),由第一参与方A拥有的联合数据分片<X>A和预测值数据π(Xi)中的数据确定;右上角分块的数据分片<[AB]>A(属于第二分块),由第一参与方A拥有的联合数据分片<X>A和预测值数据π(Xi),以及第二参与方B拥有的联合数据分片<X>B中的数据,通过多方安全计算得到;左下角分块的数据分片<[BA]>A(属于第二分块),通过对右上角分块的数据分片<[AB]>A取转置得到;右下角分块的数据分片<[B]>A(属于第二分块),由第一参与方A拥有的预测值数据π(Xi),以及第二参与方B拥有的联合数据分片<X>B中的数据,通过多方安全计算得到。
第二参与方B的海森矩阵分片<H>B中,左上角分块的数据分片<[A]>B(属于第一分块)的取值可以采用0值进行填充得到;右上角分块的数据分片<[AB]>B(属于第二分块),由第一参与方A拥有的联合数据分片<X>A和预测值数据π(Xi)中的数据,以及第二参与方B拥有的联合数据分片<X>B中的数据,通过多方安全计算得到;左下角分块的数据分片<[BA]>B(属于第二分块),通过对右上角分块的数据分片<[AB]>B取转置得到;右下角分块的数据分片<[B]>B(属于第二分块),由第一参与方A拥有的预测值数据π(Xi)中的数据,以及第二参与方B拥有的联合数据分片<X>B中的数据,通过多方安全计算得到。
总结来说,针对第一分块,对于选定参与方(例如第一参与方A)来说,选定参与方设备可以利用自身的联合数据分片和预测值数据确定第一分块的数据分片;对于选定参与方之外的其他参与方(例如第二参与方B)来说,其他参与方设备可以将0值填充至第一分块,得到其数据分片;
针对第二分块,可以利用多方安全计算中的秘密分享矩阵乘法(Secret MatrixMultiplication,SMM),通过多个参与方之间的交互,利用多个参与方的联合数据分片和选定参与方的预测值数据中的对应数据,确定多个参与方对应的第二分块的数据分片。
第一参与方设备可以对第一参与方A的第一分块的数据分片以及第二分块的数据分片进行拼接,得到第一参与方A的海森矩阵分片<H>A。第二参与方设备可以对第二参与方B的第一分块的数据分片以及第二分块的数据分片进行拼接,得到第二参与方B的海森矩阵分片<H>B。
下面说明利用SMM,通过多个参与方之间的交互,利用多个参与方的联合数据分片和选定参与方的预测值数据中的对应数据,确定多个参与方对应的第二分块的数据分片的具体实施方式。以由第一参与方A拥有的联合数据分片<X>A和预测值数据π(Xi),以及第二参与方B拥有的联合数据分片<X>B,通过SMM确定第一参与方A和第二参与方B的右上角分块的数据分片<[AB]>A和<[AB]>B为例。
在按照公式xikπ(Xi)[π(Xi)-1]*xir计算时,需要采用第一参与方A的联合数据分片中的<x>A部分数据、预测值数据π(Xi)以及第二参与方B的联合数据分片<x>B中的部分数据,利用SMM联合计算,分别使得第一参与方A和第二参与方B确定数据分片<[AB]>A和<[AB]>B。
为了使得描述更简洁明了,将上述的待计算量做以下简化。第一参与方A中拥有矩阵数据分片<x>A和<y>A,第二参与方B拥有矩阵数据分片<x>B和<y>B,待计算的目标参量为xy。其中,x=<x>A+<x>B,y=<y>A+<y>B。通过SMM联合计算,使得第一参与方A得到<Y>A,第二参与方B得到<Y>B,且xy=<Y>A+<Y>B。具体的计算过程可以按照图3所示的流程示意图进行。
图3为本实施例中秘密分享矩阵乘法应用的一种计算流程示意图,其具体实施步骤如下。
第1步,双方分别获取随机数矩阵三元组(triple)。第一参与方A获取<u>A、<v>A、<z>A,第二参与方B获取<u>B、<v>B、<z>B,且满足z=u*v,其中,z=<z>A+<z>B,u=<u>A+<u>B,v=<v>A+<v>B。
第2步,第一参与方A利用随机数对其隐私数据进行拆分,以实现对隐私数据的遮蔽进而得到隐秘矩阵。第一参与方A计算<d>A=<x>A-<u>A,<e>A=<y>A-<v>A。第二参与方B利用随机数对其隐私数据进行拆分,得到隐秘矩阵。第二参与方B计算<d>B=<x>B-<u>B,<e>B=<y>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的联合数据分片<X>A中的部分数据以及预测值数据,第二参与方B的联合数据分片<X>B中的部分数据,采用SMM,确定多个参与方分别对应的、联合数据中的部分与预测值数据之间乘积的分片。
在本实施例中,提供了数据垂直切分场景中利用分块确定海森矩阵分片的实施方式,其中部分分块需要多个参与方之间的数据交互,部分分块则在本地计算即可,这样能节省大量的交互数据,提高整体处理流程。
在数据水平切分应用场景中,任意一个参与方的业务数据包括部分对象的所有特征项的特征值。参见表2,其中任意一个参与方的业务数据包括部分对象的D个特征项的特征值,多个参与方的业务数据可以基于纵向拼接得到联合数据。表2仅仅是一种数据分布示例,其中行表示对象,列表示特征项。在其他实施方式中,也可以采用行表示特征项,列表示对象。在下面的举例中,多以表2所示的数据分布为例,说明数据水平切分场景下海森矩阵的划分。
在这种应用场景中,划分海森矩阵表达式时,可以将其划分成与多个参与方的数据分别关联的多个分块。
例如,以两个参与方为例,第一参与方A和第二参与方B的业务数据,在概念上按照表4所示拼接成联合数据。需要说明的是,这里的拼接是虚拟拼接,实际中并不会执行。
表4
其中,第一参与方A的业务数据包括nA个对象,并且第一参与方A是这部分对象对应的选定参与方,其业务数据中包含这部分对象的标签数据。第二参与方B的业务数据包含nB个对象,并且第二参与方B是这部分对象对应的选定参与方,其业务数据中包含这部分对象的标签数据。如果采用矩阵的形式表示,第一参与方A和第二参与方B的业务数据可以假定拼接成类似于表4的联合数据矩阵X,其中总行数为N为nA和nB之和,总列数为D,表示为X(nA+nB)*D。
根据上式(5)的表达式,对海森矩阵H进行划分,可以得到
其中,海森矩阵H被划分为2个分块,每个分块均是子矩阵。这里可以注意的是,联合数据的总行数为nA+nB,式(5)中的xik和xir,i在联合数据的行数1~N中取值,k和r在联合数据的列1~D中取值。这是理论上的情况。
针对海森矩阵中的元素由第一参与方A计算,由第二参与方B计算,并分别本地存储,并且Hkr=<Hkr>A+<Hkr>B。同样的,<H>A和<H>B均可由对应想参与方本地计算。
具体的,根据式(5),确定式(10)中上分块[A]矩阵中的元素,需要的数据均在第一参与方A中。即,当i在行数1~nA中取值时,式(5)中的xik和xir均在第一参与方A的业务数据中取值,预测值数据π(Xi)也由第一参与方A拥有。因此,可以确定上分块[A]中的数据可以由第一参与方A独立计算。上分块[A]就是与第一参与方A的数据关联的分块。
根据式(5),确定式(10)中下分块[B]矩阵中的元素,需要的数据均在第二参与方B中。即,当i在行数nA+1~nA+nB中取值时,式(5)中的xik和xir均在第二参与方B的业务数据中取值,且对应的预测值数据π(Xi)也由第二参与方B拥有。因此,可以确定下分块[B]中的数据可以由第二参与方B独立计算。下分块[B]就是与第二参与方B的数据关联的分块。
这样,海森矩阵H被划分成2个分块,相应的,第一参与方A的海森矩阵分片<H>A以及第二参与方B的海森矩阵分片<H>B均被划分为2个分块,两个海森矩阵分片中对应的分块在假定重构下构成海森矩阵中的分块。
其中,第一参与方A的海森矩阵分片<H>A中,上分块的数据分片<[A]>A,由第一参与方A拥有的联合数据分片<X>A和预测值数据π(Xi)中的数据确定;下分块的数据分片<[B]>A中的取值可以采用0值进行填充得到。
第二参与方B的海森矩阵分片<H>B中,下分块的数据分片<[B]>B,由第二参与方B拥有的联合数据分片<X>B和预测值数据π(Xi)中的数据确定;上分块的数据分片<[A]>B中的取值可以采用0值进行填充得到。
总结来说,针对第一参与方A,第一参与方设备利用第一参与方A自身的联合数据分片和预测值数据,确定与第一参与方A的数据关联的分块的数据分片,将0值填充至与其他参与方的数据关联的分块,得到该分块的数据分片,将多个分块的数据分片进行拼接,得到第一参与方A的海森矩阵分片。
针对第一参与方B,第二参与方设备利用第二参与方B自身的联合数据分片和预测值数据,确定与第二参与方B的数据关联的分块的数据分片,将0值填充至与其他参与方的数据关联的分块,得到该分块的数据分片,将多个分块的数据分片进行拼接,得到第二参与方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共同拥有的。于是,现在问题的重点在于如何计算式(11)中的根号逆。本实施例中,利用SNSI算法确定第一参与方A的模型参数βk的方差分片与第二参与方B的模型参数βk的方差分片的和的根号逆,基于该根号逆与第一参与方A的模型参数分片<βk>A的乘积,可以得到第一参与方A针对模型参数βk的显著性检验值分片。其中,式(11)中的根号逆如下
下面通过步骤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,配置为,利用多方安全计算,通过多个参与方设备之间的交互,基于多个参与方的联合数据分片和选定参与方的预测值数据,确定多个参与方分别对应的相关性数据分片,其中包括多个特征项之间的相关性数据;
检验模块440,配置为,采用显著性检验法,通过多个参与方设备之间的安全交互,基于多个参与方的模型参数分片和所述相关性数据分片中的对应数据,确定模型参数对应的特征项在提升所述业务预测模型效果上的有效值。
在一种实施方式中,所述获取模块410,获取第一参与方的联合数据分片时,包括:
采用秘密分享加法,通过与其他参与方设备的交互,基于多个参与方的业务数据进行拆分和拼接操作,使得多个参与方分别获取到联合数据分片;多个参与方的联合数据分片在假定重构的情况下得到所述联合数据。
在一种实施方式中,所述业务预测模型,基于多个参与方各自的联合数据分片进行安全联合训练得到;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述获取模块410,在获取多个对象分别对应的预测值分片,以及多个特征项分别对应的模型参数分片时,包括:
获取训练后的业务预测模型在所述第一参与方设备本地的模型参数分片;
通过多个参与方的交互,基于多个参与方的联合数据分片以及训练后的业务预测模型,分别使得多个参与方确定对象的预测值分片。
在一种实施方式中,所述选定参与方包括拥有标签数据的参与方;所述重构模块420具体配置为:
当所述第一参与方不是选定参与方时,将自身的预测值分片发送至选定参与方设备,以使得选定参与方设备利用多个预测值分片重构完整的预测值数据;
当所述第一参与方是选定参与方时,接收其他参与方发送的预测值分片,将自身的预测值分片和接收的预测值分片进行重构,得到完整的预测值数据。
在一种实施方式中,相关性数据包括协方差矩阵数据,所述相关性数据分片包括协方差矩阵分片;交互模块430包括:
确定子模块431,配置为,基于多个参与方的联合数据分片和所述选定参与方的预测值数据,以及所述业务预测模型中的函数关系式,确定多个参与方分别对应的中间矩阵分片;
计算子模块432,配置为,基于多个参与方的中间矩阵分片,计算多个参与方分别对应的中间矩阵逆的分片,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述确定子模块431具体配置为:
按照多个参与方的业务数据的假定拼接关系,将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块;所述海森矩阵表达式中包括联合数据和预测值数据;
按照多个分块所关联的参与方数据,利用多个参与方的联合数据分片和所述选定参与方的预测值数据中的对应数据,使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片,作为中间矩阵分片。
在一种实施方式中,任意一个参与方的业务数据包括所有对象的部分特征项的特征值;
所述确定子模块431,在将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式划分成多个分块时,包括:
将所述海森矩阵表达式划分成与所述选定参与方的数据关联的第一分块,与多个参与方关联的第二分块;
所述确定子模块431,在使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片时,包括:
当所述第一参与方是选定参与方时,利用自身的联合数据分片和所述预测值数据确定所述第一分块的数据分片;当所述第一参与方不是选定参与方时,将0值填充至所述第一分块,得到其数据分片;
利用秘密分享矩阵乘法SMM,通过多个参与方之间的交互,利用多个参与方的联合数据分片和所述选定参与方的预测值数据中的对应数据,确定多个参与方对应的第二分块的数据分片;
对所述第一参与方的第一分块的数据分片以及第二分块的数据分片进行拼接,得到所述第一参与方的海森矩阵分片。
在一种实施方式中,任意一个参与方的业务数据包括部分对象的所有特征项的特征值;
所述确定子模块431,在将基于所述业务预测模型中的函数关系式得到的海森矩阵表达式,划分成多个分块时,包括:将所述海森矩阵表达式划分成与多个参与方的数据分别关联的多个分块;
所述确定子模块431,在使得多个参与方分别确定多个分块的数据分片,并基于分块的数据分片分别确定对应的海森矩阵分片时,包括:
利用所述第一参与方自身的联合数据分片和预测值数据,确定与所述第一参与方的数据关联的分块的数据分片,将0值填充至与其他参与方的数据关联的分块,得到其数据分片;
将多个分块的数据分片进行拼接,得到所述第一参与方的海森矩阵分片。
在一种实施方式中,所述计算子模块432,具体配置为:
利用秘密分享矩阵逆算法SMI,基于多个参与方的中间矩阵分片,通过迭代计算,得到多个参与方分别对应的协方差矩阵分片。
在一种实施方式中,所述检验模块440,具体配置为:
将多个参与方的协方差矩阵分片中的对角元素,作为与多个模型参数分别对应的方差分片;
针对任意一个模型参数,利用秘密分享根号逆算法SNSI以及显著性检验法,基于所述第一参与方的对应模型参数分片以及多个参与方的对应方差分片,通过多个参与方设备之间的交互,联合进行安全根号逆操作,确定所述第一参与方的针对该模型参数的显著性检验值分片;基于多个参与方针对该模型参数的显著性检验值分片,确定该模型参数对应的特征项的有效值。
在一种实施方式中,装置400还包括确定模块(图中未示出),配置为:
针对任意的第一特征项,从其他参与方设备中获取所述第一特征项的有效值分片;
基于所述第一特征项在本地的有效值分片和获取的有效值分片,确定所述第一特征项的重构后的有效值。
在一种实施方式中,装置400还包括去除模块(图中未示出),配置为:
基于所述有效值,从多个特征项中去除有效值不满足预设条件的特征项,以使多个参与方采用去除特征项后的业务数据,对所述业务预测模型进行安全联合训练。
在一种实施方式中,所述对象包括用户、商品、事件中的一种;所述特征项包括以下至少一种:基本属性信息、关联关系信息、交互信息、历史行为信息;所述业务预测模型用于对对象进行业务预测。
在一种实施方式中,所述业务预测模型基于逻辑回归模型得到。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图3任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图3任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:数据脱敏的方法、装置、电子设备及存储介质