1.非独立同分布环境下的多相关性差分隐私矩阵分解方法,其特征是,包括步骤如下:步骤1、对用户和项目的属性空间进行预处理,分别计算出用户相关系数矩阵和项目相关系数矩阵;
步骤2、基于差分隐私模型,引入多相关性的矩阵分解的目标函数生成服从拉普拉斯分布的随机噪声矩阵;即:步骤2.1、分别计算用户相关系数、项目相关系数和评分数据的取值范围即最大值和最小值之差,并据此计算用户因子矩阵的敏感度和项目矩阵的敏感度;
步骤2.2、分别根据用户因子矩阵和项目矩阵的敏感度计算服从拉普拉斯分布的随机数,并均匀随机的生成一组随机数,使得这组随机数作为向量的L1范数值正好等于上述获得的服从拉普拉斯分布的随机数,由此得到用户随机噪声矩阵和项目随机噪声矩阵;
步骤3、对目标函数采用随机梯度下降方法进行训练,实现相关性差分隐私矩阵分解;
步骤3.1、均匀且随机的从L1范数球中选取随机数构成的向量,构造用户因子矩阵和项目因子矩阵,其中用户因子矩阵是d×n大小的矩阵,项目因子矩阵是d×m大小的矩阵,n为用户个数,m为项目个数,d为分解维度;
步骤3.2、判断迭代是否结束,即当前迭代次数是否达到设定的最大迭代次数,若未达到则继续向下执行;若达到则执行步骤3.6;
步骤3.3、计算本次迭代的误差矩阵Error:
Error=R-UT*V
其中,R表示用户对项目的评分矩阵,U表示当前用户因子矩阵,V表示当前项目因子矩阵,T表示转置;
步骤3.4、遍历评分矩阵R的每一行,计算每一行目标函数对当前用户因子矩阵U的偏导数,并利用当前用户因子矩阵U的各个用户与对应行的偏导数相加来更新用户因子矩阵U;
步骤3.5、遍历原始评分矩阵R的每一列,计算每一列目标函数对当前项目因子矩阵V的偏导数,并利用当前项目因子矩阵V的各个项目与对应列的偏导数相加来更新项目因子矩阵V;
步骤3.6、重复步骤3.2到步骤3.5直到迭代结束,当迭代结束时,计算并输出预测矩阵R′:R′=UT*V
其中,U表示当前用户因子矩阵,V表示当前项目因子矩阵,T表示转置。
2.根据权利要求1所述的非独立同分布环境下的多相关性差分隐私矩阵分解方法,其特征是,步骤1,采用杰卡德相似距离计算2个用户或项目的相关系数Jaccard(X,Y)为:其中,|X∩Y|表示2个用户或项目的共有属性的数量,|X∪Y|表示2个用户或项目的所有的属性数量。
3.根据权利要求1所述的非独立同分布环境下的多相关性差分隐私矩阵分解方法,步骤2.1中,用户因子矩阵的敏感度USens为:
项目因子矩阵的敏感度VSens为:
其中,RRange表示评分数据的取值范围,URange表示用户相关系数的取值范围,VRange表示项目相关系数的取值范围, 表示用户i和用户o之间的相关系数, 表示项目j和用户w之间的相关系数,o∈[n]-i表示用户o属于1到n里除了用户i的集合,w∈[m]-j表示项目w属于1到m里除了项目j的集合,n为用户个数,m为项目个数。
4.根据权利要求1所述的非独立同分布环境下的多相关性差分隐私矩阵分解方法,步骤2.2中,用户随机噪声矩阵的第i个列向量 为:
项目随机噪声矩阵的第j个列向量 为:
其中,USens表示用户因子矩阵的敏感度,VSens表示项目因子矩阵的敏感度,∈表示设定的隐私预算,Lap(.)表示拉普拉斯分布的概率密度函数。
5.根据权利要求1所述的非独立同分布环境下的多相关性差分隐私矩阵分解方法,步骤3.4中,用户因子矩阵U的第i行的偏导数 为:其中,vj表示项目因子矩阵V中对应第j个项目的列向量,ui表示用户因子矩阵U中对应第i个用户的列向量,rij表示第i个用户对第j个项目的评分,λ为用户正则项参数,ul表示用户因子矩阵U中对应第l个用户的列向量, 表示第i个用户与第l个用户之间的相关系数,表示用户随机噪声矩阵的第i个列向量, 表示评分矩阵R中拥有评分值的用户与项目对集合,M表示评分矩阵R中拥有评分值的用户与项目对的个数, 表示被第i个用户评价过的项目序号j,l∈[n]-i表示用户l属于1到n里除了用户i的集合,T表示转置。
6.根据权利要求1所述的非独立同分布环境下的多相关性差分隐私矩阵分解方法,步骤3.5中,项目因子矩阵V的第j行的偏导数 为:其中,vj表示项目因子矩阵V中对应第j个项目的列向量,ui表示用户因子矩阵U中对应第i个用户的列向量,rij表示第i个用户对第j个项目的评分,μ为项目正则项参数,vk表示项目因子矩阵V中对应第k个项目的列向量, 表示第j个项目与第k个项目之间的相关系数,表示项目随机噪声矩阵的第j个列向量, 表示评分矩阵R中拥有评分值的用户与项目对集合,M表示评分矩阵R中拥有评分值的用户与项目对的个数, 表示对第j个项目进行过评价的用户序号i,k∈[m]-i表示项目k属于1到m里除了项目j的集合,T表示转置。