发明内容
本说明书一个或多个实施例描述了一种多方联合对隐私数据进行显著性检验的方法和装置,以针对分布在多方中的隐私数据进行属性项的显著性检验,得到属性项在提升模型性能上的显著性水平,以便根据该显著性水平对隐私数据进行降维,同时保证隐私数据的安全不泄露。具体的技术方案如下。
第一方面,实施例提供了一种多方联合对隐私数据进行显著性检验的方法,所述隐私数据分布在M个持有方中,其中,每个持有方存储有对应的原始矩阵,所述M个持有方各自的原始矩阵在按照预定顺序相拼接的情况下构成联合矩阵,所述联合矩阵对应于N个业务对象针对D项属性项的属性值构成的矩阵;所述方法通过检验方执行,包括:
获取所述N个业务对象对应的N个预测值以及所述D项属性项对应的D个模型参数;其中,所述预测值和所述模型参数基于将所述N个业务对象的所述D项属性项的属性值作为样本特征,对逻辑回归模型进行安全联合训练后得到,所述逻辑回归模型用于对业务对象进行分类;
对所述N个预测值分别进行预定计算,将计算后的结果作为对角元素构建N*N维的预测值矩阵;
利用秘密共享的矩阵乘法SMM,基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将所述多个子矩阵构建得到中间矩阵,将所述中间矩阵的逆矩阵确定为所述预测值矩阵与所述联合矩阵形成的D*D维的方差协方差矩阵;
基于所述方差协方差矩阵的对角元素确定所述D个模型参数的标准误差;
采用显著性检验法,基于每个模型参数和对应的标准误差的比值,确定所述模型参数对应的属性项在提升所述逻辑回归模型效果上的显著性水平值。
在一种实施方式中,该方法还包括:
基于所述属性项的显著性水平值,从所有属性项中去除显著性水平值不满足预设条件的属性项,以使多个所述持有方采用去除部分属性项后的样本特征,对所述逻辑回归模型进行安全联合训练。
在一种实施方式中,所述业务对象为以下之一:用户、商户、商品、事件。
在一种实施方式中,所述方差协方差矩阵为:联合矩阵的转置矩阵、所述预测值矩阵和所述联合矩阵相乘后求逆得到的D*D维的方差协方差矩阵。
在一种实施方式中,每个持有方存储的原始矩阵对应于,全部的N个业务对象针对部分属性项的属性值构成的原始矩阵;
所述基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵的步骤,包括:
基于所述预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵,基于所述预测值矩阵以及任意两个不同持有方各自的原始矩阵进行乘操作,得到M(M-1)个第二子矩阵。
在一种实施方式中,所述将所述多个子矩阵构建得到中间矩阵的步骤,包括:
将有待形成的所述方差协方差矩阵的逆矩阵划分为M*M个块形成的方阵;
用所述M个第一子矩阵填充所述方阵的对角块,用所述M(M-1)个第二子矩阵填充所述方阵的对角块之外的其他块。
在一种实施方式中,所述原始矩阵中一行对应一个业务对象,一列对应一个属性项;
所述联合矩阵为,假定对所述M个持有方各自对应的原始矩阵进行横向拼接所形成的矩阵。
在一种实施方式中,每个持有方存储的原始矩阵对应于,部分业务对象针对全部的D项属性项的属性值构成的原始矩阵;
所述基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵的步骤,包括:
基于所述预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵。
在一种实施方式中,所述将所述多个子矩阵构建得到中间矩阵的步骤,包括,将所述M个第一子矩阵相加,得到所述中间矩阵。
在一种实施方式中,所述原始矩阵中一行对应一个业务对象,一列对应一个属性项;
所述联合矩阵为,假定对所述M个持有方各自对应的原始矩阵进行纵向拼接所形成的矩阵。
在一种实施方式中,所述检验方为所述M个持有方中的一个。
第二方面,实施例提供了一种多方联合对隐私数据进行显著性检验的装置,所述隐私数据分布在M个持有方中,其中,每个持有方存储有对应的原始矩阵,所述M个持有方各自的原始矩阵在按照预定顺序相拼接的情况下构成联合矩阵,所述联合矩阵对应于N个业务对象针对D项属性项的属性值构成的矩阵;所述装置部署在检验方中,包括:
第一获取模块,配置为获取所述N个业务对象对应的N个预测值以及所述D项属性项对应的D个模型参数;其中,所述预测值和所述模型参数基于将所述N个业务对象的所述D项属性项的属性值作为样本特征,对逻辑回归模型进行安全联合训练后得到,所述逻辑回归模型用于对业务对象进行分类;
第一构建模块,配置为对所述N个预测值分别进行预定计算,将计算后的结果作为对角元素构建N*N维的预测值矩阵;
第二构建模块,配置为利用秘密共享的矩阵乘法SMM,基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将所述多个子矩阵构建得到中间矩阵,将所述中间矩阵的逆矩阵确定为所述预测值矩阵与所述联合矩阵形成的D*D维的方差协方差矩阵;
第一确定模块,配置为基于所述方差协方差矩阵的对角元素确定所述D个模型参数的标准误差;
第二确定模块,配置为采用显著性检验法,基于每个模型参数和对应的标准误差的比值,确定所述模型参数对应的属性项在提升所述逻辑回归模型效果上的显著性水平值。
在一种实施方式中,装置还包括:
降维模块,配置为基于所述属性项的显著性水平值,从所有属性项中去除显著性水平值不满足预设条件的属性项,以使多个所述持有方采用去除部分属性项后的样本特征,对所述逻辑回归模型进行安全联合训练。
在一种实施方式中,所述业务对象为以下之一:用户、商户、商品、事件。
在一种实施方式中,所述方差协方差矩阵为:联合矩阵的转置矩阵、所述预测值矩阵和所述联合矩阵相乘后求逆得到的D*D维的方差协方差矩阵。
在一种实施方式中,每个持有方存储的原始矩阵对应于,全部的N个业务对象针对部分属性项的属性值构成的原始矩阵;
所述第二构建模块,基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵时,包括:
基于所述预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵,基于所述预测值矩阵以及任意两个不同持有方各自的原始矩阵进行乘操作,得到M(M-1)个第二子矩阵。
在一种实施方式中,所述第二构建模块,将所述多个子矩阵构建得到中间矩阵时,包括:
将有待形成的所述方差协方差矩阵的逆矩阵划分为M*M个块形成的方阵;
用所述M个第一子矩阵填充所述方阵的对角块,用所述M(M-1)个第二子矩阵填充所述方阵的对角块之外的其他块。
在一种实施方式中,所述原始矩阵中一行对应一个业务对象,一列对应一个属性项;所述联合矩阵为,假定对所述M个持有方各自对应的原始矩阵进行横向拼接所形成的矩阵。
在一种实施方式中,每个持有方存储的原始矩阵对应于,部分业务对象针对全部的D项属性项的属性值构成的原始矩阵;
所述第二构建模块,基于所述预测值矩阵以及所述M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵时,包括:
基于所述预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵。
在一种实施方式中,所述第二构建模块,将所述多个子矩阵构建得到中间矩阵时,包括,将所述M个第一子矩阵相加,得到所述中间矩阵。
在一种实施方式中,所述原始矩阵中一行对应一个业务对象,一列对应一个属性项;所述联合矩阵为,假定对所述M个持有方各自对应的原始矩阵进行纵向拼接所形成的矩阵。
在一种实施方式中,所述检验方为所述M个持有方中的一个。
第三方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中任一项所述的方法。
第四方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中任一项所述的方法。
本说明书实施例提供的多方联合对隐私数据进行显著性检验的方法和装置,可以采用秘密共享的矩阵乘法SMM,基于N个预测值构成的预测值矩阵以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将多个子矩阵构建得到预测值矩阵与联合矩阵形成的方差协方差矩阵的逆矩阵,通过秘密共享的矩阵乘法,能够保证各方的隐私数据不被泄露给检验方。在得到上述方差协方差矩阵之后,即可以采用显著性检验方法,基于每个模型参数和方差协方差矩阵,确定模型参数对应的属性项在提升模型效果上的显著性水平值。因此,本说明书实施例能够针对分布在多方中的隐私数据进行属性项的显著性检验,得到属性项在提升模型性能上的显著性水平,以便根据该显著性水平对隐私数据进行降维,同时保证隐私数据的安全不泄露。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,在共享学习场景下,数据集由多个持有方1,2,…,M共同提供(M为自然数),每个持有方拥有数据集中的一部分数据。该数据集可以是用于训练逻辑回归模型的训练数据集,也可以是用于测试其他神经网络模型的测试数据集,或者是待预测的数据集。数据集可以包括业务对象的属性特征数据,这些数据属于数据持有方的隐私数据。业务对象可以是用户、商户、商品、事件等各种业务上有待分析的对象。
这里可以存在至少两种数据分布。一种是,各个持有方拥有不同业务对象的相同属性项的数据。例如,共有100个样本,每个样本的隐私数据中包含20项属性,这些数据分布在4个持有方中,每个持有方拥有25个样本的全部20项属性数据。每个持有方拥有的样本不同,其数量可以相同。这种数据分布方式可以一般称为数据纵向分布。参见图2所示的数据纵向分布示意图。
另一种是,各个持有方拥有全部对象样本的不同属性数据。例如,共有100个样本,每个样本的隐私数据中包含20项属性,这些数据分布在4个持有方中,每个持有方拥有全部100个样本的5项属性数据,每个持有方拥有的属性不同。这种数据分布方式一般称为数据横向分布。参见图3所示的数据横向分布示意图。
在数据横向分布的情况下,每个持有方拥有不同业务对象的相同属性项的特征数据。
例如,在一具体例子中,业务对象为商户。多个持有方中的某一个电商平台,拥有N个商户的部分属性特征,这些属性包括商户id、经营时长等。多个持有方中的另一电商平台,拥有上述N个商户的另一部分属性特征,这些属性包括商户类别和累积销量等等。这样,相同商户的不同属性项的特征数据纵向分布于不同的持有方。
在另一个具体例子中,业务对象为用户。多个数据持有方(以下简称持有方)中的某一个社交平台,拥有n个用户的用户基本属性特征,这些属性包括用户id、年龄、性别、职业和地区。多个持有方中的另一持有方为另一社交平台,该社交平台拥有另外的m个用户的上述用户基本属性特征。这样,不同用户的相同属性项的特征数据横向分布于不同的数据持有方。
在其他实施例中,业务对象还可以是有待分析的商品、事件等等,其中事件可以包括交易事件、登录事件、购买事件和社交事件等等。
不管是哪种数据分布方式,其业务对象的属性特征数据都属于隐私数据,可存储为隐私数据矩阵。为了隐私数据的安全,各个持有方需要将其隐私数据留在本地,不输出明文数据,不进行明文聚合。
在本说明书的实施例中,为了对分布在各个持有方中的隐私数据进行显著性检验,可以首先将各个持有方的隐私数据作为样本数据,对逻辑回归模型进行安全联合训练,基于训练得到的每个样本数据的预测值,以及训练得到的逻辑回归模型针对样本数据中每个属性项的模型参数,对每个模型参数进行显著性检验。每个模型参数的显著性水平值即代表了对应的属性项的显著性水平值,根据该显著性水平值,可以去除隐私数据中显著性水平值不满足预定条件的属性项,去除部分属性项的隐私数据可以再次用于训练逻辑回归模型,以使得重新训练的逻辑回归模型在对业务对象进行分类时稳定性更好。同时,去除部分属性项,也能实现对隐私数据的降维。
本说明书实施例所采用的显著性检验方法可以包括Wald检验。下面首先详细说明Wald检验在逻辑回归上的应用原理。在采用逻辑回归模型对样本特征进行回归时,预测值的计算公式包括:
其中,X为样本的样本特征,π(X)为样本的预测值函数,β为模型参数,e为自然常数。
Wald检验的原假设和备择假设为:
H0:ωj=0(j=1,2,…,k)即自变量对因变量发生的可能性无影响作用
H1:ωj≠0
如果零假设被拒绝,说明因变量的变化依赖于自变量j。
该Wald检验的检验统计量为
其符合自由度为1的卡方分布。其中,
为模型参数
的标准误差,也等于方差协方差矩阵的对角元素的平方根:
模型参数的方差协方差矩阵H
-1,为对数似然函数的负Hessian矩阵在
处的值
其中
其中,角标k和r均取小于N的自然数,xik和xir为联合矩阵X中的元素,Xi表示第i个样本的特征向量。通过对上面的公式推导可知,H矩阵可以表示为H=XTAX,其中
其中,N为样本的总数量,即业务对象的总数量,D为样本特征的维度,π(XN)为逻辑回归模型针对样本XN的预测值,A为基于预测值矩阵得到的对角矩阵。
从上面的公式
可以看出,针对第k个模型参数,当该模型参数的标准误差越大时,也就是方差协方差矩阵中对应第k行第k列的值越大时,说明该模型参数会使得逻辑回归模型的震荡性越大,该模型参数对应的Wald检验值越小。
在确定第k个模型参数的显著性检验值Waldk之后,还可以根据Waldk值查找换算表中对应的p值,即将Waldk值统一到同一水平中来。当p值小于显著性水平阈值,则拒绝原假设,该模型参数可以保留建模。显著性水平阈值通常可以取0.05或0.01等。
Wald检验可以测试与一组解释变量(即属性)相关的参数是否为零。如果对于特定的解释变量或解释变量组,Wald检验后表明它们不为零,那么可以得出结论,这些解释变量是重要的,应该包含在模型中。如果Wald测试表明这些解释变量不具有重要意义,则可以从模型中省略这些解释变量。
下面结合图4对本说明书实施例进行描述。图4为实施例提供的一种多方联合对隐私数据进行显著性检验的方法的流程示意图。本实施例在描述方法的流程时,会结合图1所示的场景示意图进行。隐私数据分布在M个持有方100中,每个持有方100存储有对应的原始矩阵,M个持有方各自的原始矩阵在按照预定顺序相拼接的情况下构成联合矩阵X,该联合矩阵X对应于N个业务对象针对D项属性项的属性值构成的矩阵,该联合矩阵为N*D维,具体可以为N行D列的矩阵,也可以是D行N列的矩阵。其中,M、N和D均为自然数。联合矩阵X是假定把各个原始矩阵按照预定顺序相拼接而得到的矩阵,由于各个持有方的原始矩阵属于隐私数据,因此并不会明文地将各个原始矩阵拼接成联合矩阵X。
针对图2和图3所示的不同数据分布形式,本实施例中的部分步骤可以包含不同的具体实施方式。在以下的描述中,首先针对本实施例进行整体上的描述,然后针对不同的数据分布形式,描述本实施例的具体实施方式。
本实施例的方法通过检验方200执行。具体的,各个持有方100以及检验方200,均可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来实现。该方法可以包括以下步骤S410~S450。
步骤S410,获取N个业务对象对应的N个预测值以及D项属性项对应的D个模型参数,获取的数据可以采用下表的例子表示。
参见上表,xx代表具体的属性值,其为隐私数据,此处所有的属性值均采用xx来代替。在表的每一行的最右侧,是该业务对象对应的预测值,在表的每一列的最下方,是该属性项对应的模型参数。
其中,预测值和模型参数基于将N个业务对象的D项属性项的属性值作为样本特征,对逻辑回归模型进行安全联合训练后得到,该逻辑回归模型用于对业务对象进行分类。业务对象可以为以下之一:用户、商户、商品、事件等。N个业务对象可以对应于N个样本,N个业务对象的D项属性项的属性值,对应于该N个样本的N个样本特征。也就是说,一个业务对象对应一个样本,该样本的样本特征包括该业务对象的D项属性项的属性值。样本还可以存在分类标签。
在模型训练时,可以采用N个样本和对应的标签对逻辑回归模型进行训练,得到每个样本对应的预测值,根据预测值与标签的差异,确定损失值,向减小损失值的方向调整模型参数,直至逻辑回归模型达到收敛条件。其中,预测值又称为估计值,表示的是属于某个分类的概率。标签可以采用0或者1表示两种分类,对应的预测值可以为0-1之间的数值。当样本特征包含D个属性项时,该逻辑回归模型可以对应存在D个模型参数,在调整模型参数时,可以对该D个模型参数进行调整。在逻辑回归模型训练完成时,可以得到每个样本的预测值(共N个预测值)和D个模型参数。N个预测值分别与每个样本对应,D个模型参数分别与每个属性项对应。
在模型训练时,多个持有方可以联合采用安全多方计算(Secure Multi-PartyComputation,MPC)的方法对逻辑回归模型进行训练,每个数据持有方的隐私数据不会从该持有方明文输出,也不会明文聚合。具体的,多方联合对逻辑回归模型进行训练的过程并不是本说明书描述的重点,因此不再详述。
步骤S420,对N个预测值分别进行预定计算,将计算后的结果作为对角元素构建N*N维的预测值矩阵A。对每个预测值进行的预定计算,可以参见上述A矩阵中推导得到的计算公式,即针对预测值π(Xi)计算π(Xi)[π(Xi)-1],得到预测值矩阵A中第i行第i列的元素,i的取值范围为从1到N。因此,可以构建以下N*N维的预测值矩阵A:
其中,A11为基于N个预测值中的第一个预测值计算得到,ANN为基于N个预测值中的第N个预测值计算得到,Aii=π(Xi)[π(Xi)-1],所有的计算结果都位于预测值矩阵A的对角位置,其他位置的元素为0。该预测值矩阵A为方阵。
步骤S430,利用秘密共享的矩阵乘法,基于预测值矩阵A以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将多个子矩阵构建得到中间矩阵H,将中间矩阵的逆矩阵H-1确定为预测值矩阵A与联合矩阵X形成的D*D维的方差协方差矩阵H-1。
其中,秘密共享的矩阵乘法(Secret matrix multiplication,SMM),不需要可信初始化方即可完成两方矩阵相乘的运算,其计算过程中双方对对方数据不可见,最终乘法结果为双方计算结果之和。另外,输出结果也可以不合并,而是分别保留在各自的平台上。
预测值矩阵A与联合矩阵X形成的D*D维的方差协方差矩阵H-1可以采用以下公式得到:
H-1=(XTAX)-1
其中,T为转置符号。即,联合矩阵X的转置矩阵、预测值矩阵A和联合矩阵相乘可以得到中间矩阵H。或者说,方差协方差矩阵为:联合矩阵X的转置矩阵、预测值矩阵A和联合矩阵X相乘后求逆得到的D*D维的方差协方差矩阵H-1。
步骤S440,基于方差协方差矩阵H-1的对角元素确定D个模型参数的标准误差。具体的,可以将方差协方差矩阵H-1的对角元素的平方根,分别确定为每个模型参数的标准误差。例如,可以将方差协方差矩阵H-1的第k行第k列的对角元素Hkk的平方根,确定为D个模型参数中第k个模型参数的标准误差。
步骤S450,采用显著性检验法,基于每个模型参数和对应的标准误差的比值,确定模型参数对应的属性项在提升逻辑回归模型效果上的显著性水平值。
具体的,可以采用Wald显著性检验法,基于每个模型参数和对应的标准误差的比值,确定每个模型参数在提升逻辑回归模型效果上的显著性水平值,将该显著性水平值确定为模型参数对应的属性项的显著性水平值。
本实施例中,可以采用以下公式,确定第k个模型参数的显著性检验值Waldk:
其中,
为第k个模型参数,
为第k个模型参数对应的标准误差。基于第k个模型参数的显著性检验值,确定与该显著性检验值反相关的显著性水平值,作为每个模型参数在提升逻辑回归模型效果上的显著性水平值,也就是该模型参数对应的属性项在提升逻辑回归模型效果上的显著性水平值。
通常,显著性假设可以包括模型参数对逻辑回归模型效果提升无影响。显著性假设的检验值越低,说明显著性假设越错误,也就说明显著性水平值越高,即模型参数对于逻辑回归模型来说越重要,模型参数对应的属性项也越重要。
在确定第k个模型参数的显著性检验值Waldk之后,还可以根据Waldk值查找换算表中对应的p值。当p值小于一定阈值时,第k属性项则拒绝显著性假设,该模型参数对应的属性项可以保留。当p值不小于该一定阈值时,该模型参数对应的属性项可以去除。
上述显著性检验法可以采用上述内容介绍的检验法。除了Wald检验法之外,还可以采用其他的显著性检验方法。下面针对Wald检验法的实施过程进行说明。
由上述内容可见,本实施例可以采用秘密共享的矩阵乘法,基于N个预测值构成的预测值矩阵以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将多个子矩阵构建得到预测值矩阵与联合矩阵形成的方差协方差矩阵的逆矩阵,通过秘密共享的矩阵乘法,能够保证各方的隐私数据不被泄露给检验方。在得到上述方差协方差矩阵之后,即可以采用显著性检验方法,基于每个模型参数和方差协方差矩阵,确定模型参数对应的属性项在提升模型效果上的显著性水平值。因此,本实施例能够针对分布在多方中的隐私数据进行属性项的显著性检验,得到属性项在提升模型性能上的显著性水平,以便根据该显著性水平对隐私数据进行降维,同时保证隐私数据的安全不泄露。
在另一实施例中,在步骤S450之后,还可以基于属性项的显著性水平值,从所有属性项中去除显著性水平值不满足预设条件的属性项,以使多个持有方采用去除部分属性项后的样本特征,对逻辑回归模型进行安全联合训练。去除部分冗余属性项后,能够使得重新训练的逻辑回归模型的稳定性更好,并且也实现了对联合矩阵X的特征值降维。预设条件可以包括,显著性水平值大于阈值。
下面针对数据纵向分布和数据横向分布,对上述实施例的具体实施方式进行说明。
在数据纵向分布情况下,每个持有方存储的原始矩阵对应于,全部的N个业务对象针对部分属性项的属性值构成的原始矩阵。参见图2所示的数据分布示意图。
针对M个持有方中的任意持有方k,其存储有N个业务对象针pk项属性的属性值构成的N*pk维的原始矩阵。该原始矩阵的行可以表示业务对象,列表示属性;也可以是,该原始矩阵的列表示业务对象,行表示属性。其中,N和pk均为自然数。为了描述简洁清楚,以下均采用前者的方式举例进行描述。
原始矩阵中N个业务对象的数据按照预定顺序排列,不同持有方存储有N个业务对象的不同属性项的属性值。各个持有方均以此规则形成包含隐私数据的原始矩阵,如果将各个持有方的原始矩阵沿着横向拼接,可以形成联合矩阵:
X=(X1…XM)
其中,该联合矩阵X为N行、D列的矩阵,M表示持有方的总数,N表示业务对象的总数量,D表示特征的总维数,也就是属性的总项数。各个持有方的原始矩阵中,业务对象的顺序已经进行对齐。X1代表第一个持有方的原始矩阵,XM代表第M个持有方的原始矩阵。每个持有方具有的属性项的数目可以相同,也可以不同,例如,持有方1可以具有20项属性,持有方2可以具有30项属性,即针对每个持有方,pk的取值可以相同也可以不同。D为所有持有方的属性的总项数,上述的pk小于D。由于各个持有方并不直接进行原始矩阵的明文聚合,该联合矩阵只是为了描述方便假定形成的矩阵。
在不同的实施方式中,当原始矩阵中一行对应一个业务对象,一列对应一个属性项时,联合矩阵X为,假定对M个持有方各自对应的原始矩阵进行横向拼接所形成的矩阵。当原始矩阵中一行对应一个属性项,一列对应一个业务对象时,联合矩阵X为,假定对M个持有方各自对应的原始矩阵进行纵向拼接所形成的矩阵。
根据方差协方差矩阵H-1=(XTAX)-1,可知存在以下推导:
H为中间矩阵。上述推导公式的最右侧结果为D*D维的方阵,该方阵可以划分为M*M个矩阵相乘得到的块。其中,对角线上的块
等是由检验方200中的预测值矩阵A和其他任意一个持有方100的原始矩阵通过矩阵乘积得到。非对角线上的块,是由检验方200中的预测值矩阵A和其他任意两个不同持有方100的原始矩阵通过矩阵乘积得到。例如,检验方200可以利用秘密共享的矩阵乘法(SMM),分别与其他任一持有方i的原始矩阵进行乘操作,得到
块,即得到M个第一子矩阵。检验方200可以利用秘密共享的矩阵乘法(SMM),分别与其他任意的两个持有方i和持有方j的原始矩阵进行乘操作,得到
块,共可以得到M*M-M个块,即M(M-1)个第二子矩阵。
在步骤S430中,将多个子矩阵构建得到中间矩阵H时,可以将有待形成的方差协方差矩阵的逆矩阵(即H矩阵)划分为M*M个块形成的方阵,用M个第一子矩阵填充方阵的对角块,用M(M-1)个第二子矩阵填充方阵的对角块之外的其他块。
以上是数据纵向分布时的具体实施方式,下面介绍数据横向分布的具体实施方式。
在数据横向分布情况下,每个持有方存储的原始矩阵对应于,部分业务对象针对全部的D项属性项的属性值构成的原始矩阵。参见图3所示的数据分布示意图。
针对M个持有方中的任意持有方k,其存储有n1个业务对象针对D项属性的属性值构成的n1*D维的原始矩阵,N>n1,n1为自然数。该原始矩阵中的D项属性按照预定顺序排列,不同持有方存储有不同业务对象的相同属性项的属性值。各个持有方均类似地形成包含隐私数据的原始矩阵,当原始矩阵中的行代表业务对象,列代表属性时,如果将各个持有方的原始矩阵沿着纵向拼接,可以形成联合矩阵:
其中,该联合矩阵X为N行、D列的矩阵,M表示持有方的总数,N表示业务对象的总数量,D表示特征的总维数,D和M均为自然数。各个持有方的原始矩阵中,各个属性项的顺序已经进行对齐。X1代表第一个持有方的原始矩阵,XM代表第M个持有方的原始矩阵。每个持有方具有的业务对象的数目可以相同,也可以不同。由于各个持有方并不直接进行原始矩阵的明文聚合,该联合矩阵只是为了描述方便假定形成的矩阵。
在不同的实施方式中,当原始矩阵中一行对应一个业务对象,一列对应一个属性项,联合矩阵X为,假定对M个持有方各自对应的原始矩阵进行纵向拼接所形成的矩阵。当原始矩阵中一行对应一个业务对象,一列对应一个属性项,联合矩阵X为,假定对M个持有方各自对应的原始矩阵进行横向拼接所形成的矩阵。
根据方差协方差矩阵H-1=(XTAX)-1,可知存在以下推导:
H为中间矩阵。上述推导公式的最右侧结果为D*D维的方阵,该方阵由M个矩阵相乘再求和得到。检验方200可以利用秘密共享的矩阵乘法(SMM),分别与其他任一持有方i的原始矩阵进行乘操作,得到
即得到M个第一子矩阵。
在步骤S430中,将多个子矩阵构建得到中间矩阵H时,可以将M个第一子矩阵相加,得到中间矩阵H。针对矩阵加法,检验方200可以与持有方i通过秘密共享的同态加法操作联合算出。
包括数据纵向分布和数据横向分布在内的各个实施例中,检验方200可以为M个持有方中的一个,上述执行过程也是类同的,具体步骤不再赘述。
SMM方法是一种已知的用于隐私保护的矩阵相乘方式,可以在双方不泄露原始矩阵数据的情况下,得到矩阵相乘的结果。下面简单描述这一过程。
假定第一持有方拥有矩阵C,第二持有方拥有矩阵B。第一持有方和第二持有方可以分别生成随机矩阵C′和B′。
第一持有方从随机矩阵C′中抽取偶数列,形成C′e,抽取奇数列,形成C′o。
第二持有方从随机矩阵B′中抽取偶数行,形成B′e,抽取奇数行,形成B′o。
第一持有方计算C1和C2,并将其发送给第二持有方,其中:
C1=C+C′;C2=C′e+C′o
第二持有方计算B1和B2,并将其发送给第一持有方,其中:
B1=B′-B;B2=B′e-B′o
第一持有方本地计算P=(C+2C′)B1+(C2+C′o)B2;
第二持有方本地计算Q=C1(2B-B′)-C2(B2+B′e)
然后,第一持有方和第二持有方交换P和Q。可以验证:P+Q=CB
于是,两个持有方在不暴露原始矩阵C和B的情况下,可以得到矩阵相乘的结果。
可以理解,上述的第一子矩阵和第二子矩阵均可以使用以上SMM方法计算得到。例如,针对第一子矩阵中的
块,检验方与持有方i可以首先通过SMM计算AX
i,然后再通过SMM计算
与AX
i的乘积。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图5为实施例提供的一种多方联合对隐私数据进行显著性检验的装置的示意性框图。隐私数据分布在M个持有方中,其中,每个持有方存储有对应的原始矩阵,M个持有方各自的原始矩阵在按照预定顺序相拼接的情况下构成联合矩阵,联合矩阵对应于N个业务对象针对D项属性项的属性值构成的矩阵。该装置实施例与图4所示方法实施例相对应。该装置500部署在检验方中,包括:
第一获取模块510,配置为获取N个业务对象对应的N个预测值以及所述D项属性项对应的D个模型参数;其中,预测值和模型参数基于将N个业务对象的D项属性项的属性值作为样本特征,对逻辑回归模型进行安全联合训练后得到,逻辑回归模型用于对业务对象进行分类;
第一构建模块520,配置为对N个预测值分别进行预定计算,将计算后的结果作为对角元素构建N*N维的预测值矩阵;
第二构建模块530,配置为利用秘密共享的矩阵乘法SMM,基于预测值矩阵以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵,将多个子矩阵构建得到中间矩阵,将中间矩阵的逆矩阵确定为预测值矩阵与联合矩阵形成的D*D维的方差协方差矩阵;
第一确定模块540,配置为基于方差协方差矩阵的对角元素确定D个模型参数的标准误差;
第二确定模块550,配置为采用显著性检验法,基于每个模型参数和对应的标准误差的比值,确定模型参数对应的属性项在提升逻辑回归模型效果上的显著性水平值。
在一种具体实施方式中,该装置500还包括:
降维模块(图中未示出),配置为基于属性项的显著性水平值,从所有属性项中去除显著性水平值不满足预设条件的属性项,以使多个持有方采用去除部分属性项后的样本特征,对逻辑回归模型进行安全联合训练。
在一种具体实施方式中,上述业务对象为以下之一:用户、商户、商品、事件。
在一种具体实施方式中,方差协方差矩阵为:联合矩阵的转置矩阵、预测值矩阵和联合矩阵相乘后求逆得到的D*D维的方差协方差矩阵。
在一种具体实施方式中,每个持有方存储的原始矩阵对应于,全部的N个业务对象针对部分属性项的属性值构成的原始矩阵,即对应于数据纵向分布的情况;
第二构建模块530,基于预测值矩阵以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵时,包括:
基于预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵,基于预测值矩阵以及任意两个不同持有方各自的原始矩阵进行乘操作,得到M(M-1)个第二子矩阵。
在一种具体实施方式中,第二构建模块530,将多个子矩阵构建得到中间矩阵时,包括:
将有待形成的方差协方差矩阵的逆矩阵划分为M*M个块形成的方阵;
用M个第一子矩阵填充所述方阵的对角块,用M(M-1)个第二子矩阵填充所述方阵的对角块之外的其他块。
在一种具体实施方式中,原始矩阵中一行对应一个业务对象,一列对应一个属性项;联合矩阵为,假定对M个持有方各自对应的原始矩阵进行横向拼接所形成的矩阵。
在一种具体实施方式中,每个持有方存储的原始矩阵对应于,部分业务对象针对全部的D项属性项的属性值构成的原始矩阵,即对应于数据横向分布的情况;
第二构建模块530,基于预测值矩阵以及M个持有方各自的原始矩阵进行乘操作,得到多个子矩阵时,包括:
基于预测值矩阵以及任意一个持有方的原始矩阵进行乘操作,得到M个第一子矩阵。
在一种具体实施方式中,第二构建模块530,将多个子矩阵构建得到中间矩阵时,包括:将M个第一子矩阵相加,得到中间矩阵。
在一种具体实施方式中,原始矩阵中一行对应一个业务对象,一列对应一个属性项;联合矩阵为,假定对M个持有方各自对应的原始矩阵进行纵向拼接所形成的矩阵。
在一种具体实施方式中,检验方为M个持有方中的一个。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行图1至图4任一项所述的方法。
本说明书实施例提供了一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行所述可执行代码时,实现图1至图4中任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。