一种基于差分隐私保护的矩阵分解推荐方法与流程

文档序号:14923572发布日期:2018-07-13 08:05阅读:755来源:国知局

本发明涉及数据分析与数据挖掘技术领域,特别是一种基于差分隐私保护的矩阵分解推荐方法。



背景技术:

当今社会,随着互联网和移动互联网的快速普及与发展,各类网络应用与移动app已经融入到人们日常工作生活的方方面面,例如即时通讯、社交网络、电子商务与电子支付等等,人们的日常工作与生活已经离不开互联网与移动互联网。网民数量与网站应用数量的飞速增长的同时,互联网上的各类信息也在加速增长中,在巨大的网民与网站基数下,每时每刻增加的信息数量已经超过一般人的承受能力。这使得在海量的互联网数据中,人们无法主动有效的找到、处理和利用自己想要的数据,这种情况被称作信息过载(informationoverload)问题。

在信息过载的时代,人们也在寻找解决信息处理与利用的有效方案。推荐系统不仅帮助人们更有效地获得想要的信息,也帮助信息提供者更好的将自己的信息推送到目标人群中,推荐系统已经成为当今互联网的重要环节。推荐系统的工作就是分析用户的喜好与使用习惯,建立用户与信息或产品之间的关系模型,再利用推荐方法完成相应的推荐。推荐系统在为用户建立定制化服务时,最基本的方法是通过用户自己设置自己想要的信息或产品的类型来获得推荐。推荐系统为了提供更准确的服务,使自己的推荐更符合用户的需求,需要收集大量的用户行为、使用习惯等信息来进行推荐,例如用户的浏览记录、购买信息、评分数据等信息。而且往往用户行为数据越丰富、越详细,构建的推荐模型就越准确。但是,在这大量的用户行为、使用习惯等信息中存在泄露用户个人隐私的风险。对于推荐系统来说,尽最大可能地保护用户的隐私安全与提升推荐系统的推荐准确度同等重要。因为更安全的隐私保护会减少用户分享自己隐私信息的担忧,使用户会更愿意提供自己的真实使用数据给推荐系统。而更丰富和准确的数据则会进一步提高推荐的准确度,提供更好的用户体验,从而进一步提高用户对推荐系统的信心与参与度,促成一个良性的循环。因此推荐系统的隐私保护研究,对于推动推荐系统良性发展,是具有非常重要的意义的。

dwork2006年提出了差分隐私机制。它首先定义了一个极为严格的攻击模型,通过对数据集中的原始信息或者统计数据添加噪声来实现对隐私的保护。因此即使攻击者拥有除目标隐私信息外的所有背景知识,隐私数据依然可以得到有效的保护。这些差分隐私的优点使得它受到国内外研究者的广泛研究。由于差分隐私保护在实际的使用过程中,大多是通过在数据集或者方法的输出结果中添加噪声来实现,如果不恰当的使用,则会造成数据集中添加噪声过大、数据可用性降低的问题。



技术实现要素:

本发明的目的在于提供一种基于差分隐私保护的矩阵分解推荐方法,可以在提供推荐结果时,对用户的信息进行差分隐私保护,并能够保证较好的推荐准确度。

实现本发明目的的技术解决方案是:一种基于差分隐私保护的矩阵分解推荐方法,包括以下步骤:

步骤1、将已收集的用户对物品的评价或喜好,转化为用户-评分矩阵,作为推荐方法模型的训练集;

步骤2、利用矩阵分解方法建立评分预测模型,利用评分平均值、用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项预测用户对物品的评分情况;

步骤3、通过差分隐私平均值计算方法,计算出差分隐私保护下的用户评分的平均值;

步骤4、根据评分预测模型,建立最小化平方误差函数;

步骤5、利用差分隐私随机梯度下降方法,训练评分预测模型中的用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项,并在训练过程中向用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项中添加差分隐私噪声,实现参数的差分隐私保护;

步骤6、利用评分预测模型与训练出的差分隐私保护模型参数,预测用户对物品的评分。

进一步地,步骤1中所述的将已收集的用户对物品的评价或喜好,转化为用户-评分矩阵,具体如下:

将已收集的用于对物品的评价或喜好的,转化为n×m的用户-评分矩阵rn×m,用户集u={u1,u2,...,un},其中n为用户总数,物品集i={i1,i2,...,im},其中m为物品总数,rui为用户u对物品i的评分。

进一步地,步骤2中所述的利用矩阵分解方法建立评分预测模型,具体如下:

步骤4中所述的根据评分预测模型,建立最小化平方误差函数,具体如下:

其中,rui表示用户u对物品i的评分,r表示评分矩阵,p表示用户因子矩阵,pu为用户因子矩阵中的向量,q表示物品因子矩阵,qi表示物品因子矩阵中的向量;μ表示所有评分的平均数,用户偏置项bu表示用户u自身的打分倾向,物品偏置项bi表示物品i本身的所能得到的评价,而此时的则表示去掉偏置后用户的隐性因子u与物品的隐性因子i之间的关系;

λ(||bu||2+||bi||2+||pu||2+||qi||2)为防止过拟合的正则项,正则化参数λ控制了正则化程度。

进一步地,步骤3中所述的差分隐私平均值计算方法,具体如下:

(3.1)计算评分求和的敏感度:δrsum=rmax-rmin,其中rmax表示评分中的最大值,rmin表示评分中的最小值;

(3.2)计算评分计数的敏感度:δrcount=1;

(3.3)计算出差分隐私保护的评分和其中ε1为平均值计算的差分隐私预算,r表示评分矩阵,rui为评分矩阵中用户u对物品i的评分;

(3.4)计算出差分隐私保护的评分计数|r|+lap(2δrcount/ε1);

(3.5)计算差分隐私保护的评分平均值:

进一步地,步骤5中所述的差分隐私随机梯度下降方法,具体如下:

(5.1)计算用户因子向量的敏感度sp=γ(emax·pmax+λ·qmax),其中sp表示用户因子向量敏感度,emax表示误差的最大值,pmax表示用户因子向量2范数的最大值,γ表示梯度下降速率,λ表示正则项,qmax表示物品因子向量2范数的最大值;

(5.2)计算物品因子向量的敏感度sq=γ(emax·qmax+λ·pmax),其中sq表示物品因子向量敏感度,emax表示误差的最大值,pmax表示用户因子向量2范数的最大值,γ表示梯度下降速率,λ表示正则项,qmax表示物品因子向量2范数的最大值;

(5.3)计算用户偏置项的敏感度sbu=γ(emax+λ·bumax),其中sbu表示用户偏置项敏感度,emax表示误差的最大值,γ表示梯度下降速率,λ表示正则项,bumax表示用户偏置项的最大值;

(5.4)计算物品偏置项的敏感度sbi=γ(emax+λ·bimax),其中sbi表示用户偏置项敏感度,emax表示误差的最大值,γ表示梯度下降速率,λ表示正则项,bimax表示物品偏置项的最大值;

(5.5)执行步骤(5.6)~(5.19)w次,其中w为随机梯度下降迭代次数;

(5.6)对用户-物品评分矩阵中的每个用户u以及每个物品i执行步骤(5.7)~(5.11);

(5.7)计算预测评分与实际评分的误差并令其中emax为误差截断参数;

(5.8)更新物品因子向量其中γ为随机梯度下降学习参数;

(5.9)更新用户因子向量

(5.10)更新用户偏置项

(5.11)更新物品偏置项

(5.12)对每个用户u,执行步骤(5.13)~(5.15);

(5.13)根据概率产生噪声向量np,其中ε2为差分隐私随机梯度下降的隐私预算;

(5.14)更新用户因子向量pu←pu+np;

(5.15)如果||pu||2>pmax,则执行其中pmax为用户因子向量规范化参数;

(5.16)对每个物品i,执行步骤(5.17)~(5.19);

(5.17)根据概率产生噪声向量np;

(5.18)更新物品因子向量qi←qi+np;

(5.19)如果||qi||2>qmax,则执行其中qmax为物品因子向量规范化参数。

本发明与现有技术相比,其显著优点为:(1)基于差分隐私保护技术,对基于矩阵分解的推荐方法的训练过程进行隐私保护,使得训练得到的模型参数满足差分隐私的要求;(2)在差分隐私的保护下,即使攻击者拥有除目标隐私信息外的所有背景知识,用户隐私数据依然可以得到有效的保护;(3)在实现差分隐私保护的过程中,通过采用差分隐私保护平均值计算与差分隐私保护随机梯度下降两种方法,在满足差分隐私保护的同时,减少了噪声的加入,从而减少了对推荐准确度的影响。

附图说明

图1是本发明基于差分隐私保护的矩阵分解推荐方法的流程示意图。

图2是本发明基于差分隐私保护的矩阵分解推荐方法的实验结果图。

具体实施方式

下面结合附图对本发明做进一步的说明:

如图1所示,本发明基于差分隐私保护的矩阵分解推荐方法,具体步骤如下:

步骤1、将已收集的用户对物品的评价或喜好,转化为用户-评分矩阵,作为推荐方法模型的训练集;

所述的将已收集的用户对物品的评价或喜好,转化为用户-评分矩阵,具体如下:

将已收集的用于对物品的评价或喜好的,转化为n×m的用户-评分矩阵rn×m,用户集u={u1,u2,...,un},其中n为用户总数,物品集i={i1,i2,...,im},其中m为物品总数,rui为用户u对物品i的评分。

步骤2、利用矩阵分解方法建立评分预测模型,利用评分平均值、用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项预测用户对物品的评分情况;

所述的利用矩阵分解方法建立评分预测模型,具体如下:

步骤3、通过差分隐私平均值计算方法,计算出差分隐私保护下的用户评分的平均值;

所述的差分隐私平均值计算方法,具体如下:

(3.1)计算评分求和的敏感度:δrsum=rmax-rmin,其中rmax表示评分中的最大值,rmin表示评分中的最小值;

(3.2)计算评分计数的敏感度:δrcount=1;

(3.3)计算出差分隐私保护的评分和其中ε1为平均值计算的差分隐私预算,r表示评分矩阵,rui为评分矩阵中用户u对物品i的评分;

(3.4)计算出差分隐私保护的评分计数|r|+lap(2δrcount/ε1);

(3.5)计算差分隐私保护的评分平均值:

步骤4、根据评分预测模型,建立最小化平方误差函数,具体如下:

其中,rui表示用户u对物品i的评分,r表示评分矩阵,p表示用户因子矩阵,pu为用户因子矩阵中的向量,q表示物品因子矩阵,qi表示物品因子矩阵中的向量;μ表示所有评分的平均数,用户偏置项bu表示用户u自身的打分倾向,物品偏置项bi表示物品i本身的所能得到的评价,而此时的则表示去掉偏置后用户的隐性因子u与物品的隐性因子i之间的关系;

λ(||bu||2+||bi||2+||pu||2+||qi||2)为防止过拟合的正则项,正则化参数λ控制了正则化程度。

步骤5、利用差分隐私随机梯度下降方法,训练评分预测模型中的用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项,并在训练过程中向用户因子矩阵、物品因子矩阵、用户偏置项、物品偏置项中添加差分隐私噪声,实现参数的差分隐私保护;

所述的差分隐私随机梯度下降方法,具体如下:

(5.1)计算用户因子向量的敏感度sp=γ(emax·pmax+λ·qmax),其中sp表示用户因子向量敏感度,emax表示误差的最大值,pmax表示用户因子向量2范数的最大值,γ表示梯度下降速率,λ表示正则项,qmax表示物品因子向量2范数的最大值;

(5.2)计算物品因子向量的敏感度sq=γ(emax·qmax+λ·pmax),其中sq表示物品因子向量敏感度,emax表示误差的最大值,pmax表示用户因子向量2范数的最大值,γ表示梯度下降速率,λ表示正则项,qmax表示物品因子向量2范数的最大值;

(5.3)计算用户偏置项的敏感度sbu=γ(emax+λ·bumax),其中sbu表示用户偏置项敏感度,emax表示误差的最大值,γ表示梯度下降速率,λ表示正则项,bumax表示用户偏置项的最大值;

(5.4)计算物品偏置项的敏感度sbi=γ(emax+λ·bimax),其中sbi表示用户偏置项敏感度,emax表示误差的最大值,γ表示梯度下降速率,λ表示正则项,bimax表示物品偏置项的最大值;

(5.5)执行步骤(5.6)~(5.19)w次,其中w为随机梯度下降迭代次数;

(5.6)对用户-物品评分矩阵中的每个用户u以及每个物品i执行步骤(5.7)~(5.11);

(5.7)计算预测评分与实际评分的误差并令其中emax为误差截断参数;

(5.8)更新物品因子向量其中γ为随机梯度下降学习参数;

(5.9)更新用户因子向量

(5.10)更新用户偏置项

(5.11)更新物品偏置项

(5.12)对每个用户u,执行步骤(5.13)~(5.15);

(5.13)根据概率产生噪声向量np,其中ε2为差分隐私随机梯度下降的隐私预算;

(5.14)更新用户因子向量pu←pu+np;

(5.15)如果||pu||2>pmax,则执行其中pmax为用户因子向量规范化参数;

(5.16)对每个物品i,执行步骤(5.17)~(5.19);

(5.17)根据概率产生噪声向量np;

(5.18)更新物品因子向量qi←qi+np;

(5.19)如果||qi||2>qmax,则执行其中qmax为物品因子向量规范化参数。

步骤6、利用评分预测模型与训练出的差分隐私保护模型参数,预测用户对物品的评分。评分随后被用于推荐,例如根据评分大小,选择评分较高的物品推荐给用户。

实施例1

本发明提出的基于差分隐私保护的矩阵分解推荐方法,具体实现过程如下:

协同过滤方法的核心思想在于:通过收集用户的历史行为数据(评价信息、购买信息等),利用兴趣相似、行为相近的用户群体的喜好来进行个性化推荐。为了建立推荐模型,基于协同过滤的推荐算法需要把物品和用户两者建立某种关系来实现推荐,而推荐的效果好坏也取决于物品与用户之间关系建立的好坏。协同过滤算法中通常会把用户对物品的喜好用n×m的用户-评分矩阵rn×m来表示,n个用户使用u={u1,u2,...,un}表示,m个物品使用i={i1,i2,...,im}来表示,用户u对物品i的评分使用rui来表示,一般rui较大表示用户u较为喜欢物品i,而rui较小则表示用户u较为不喜欢甚至讨厌物品i,对于一般的推荐系统来说,rui的大小是在确定的一个范围内的,如果用户u未对物品i进行过评分,则rui是未知的。对于一般的推荐系统来说,用户-评分矩阵通常是非常稀疏的,即大部分评分rui都是未知的,因为一个用户通常只会对很少一部分物品进行评分。表1展示了一个用户-物品评分矩阵的例子,其中评分的范围为1~5。

表1用户-物品评分矩阵

矩阵分解的输入通常是一个用户-物品评分矩阵rn×m,随后将rn×m分解为两个隐性因子矩阵的乘积:用户因子矩阵pn×d和物品因子矩阵qm×d。其中,物品因子矩阵q中的每个行向量qi表示隐性因子和物品i的关系,qi向量各维度上的值通常反映了该物品拥有的隐性因子的程度(例如某部电影的科幻因子程度为4,而爱情因子程度为2),这些因子上的取值大小则反映了这些因子吸引用户的正面或负面效应的大小。而用户因子矩阵p中的每个行向量pu表示用户u和隐性因子的关系,pu各维度上的值通常反映了用户对隐性因子的喜好程度(例如用户对科幻因子的喜好程度为3,而爱情因子的喜好程度为0.3),这些因子上的取值大小反映了用户对隐性因子的喜好或者厌恶程度。隐性因子矩阵的维度d是算法的一个外部参数,它反映的是隐性因子的数量。

矩阵分解通过建立模型,使得p和q的乘积约等于r,即

表达的是用户对物品上隐性因子的总体兴趣度,由于评分是用户对物品的喜好的表达,因此评分矩阵中r中的评分值rui可以通过来进行预测。由于用户-物品评分矩阵通常是稀疏的,而矩阵分解要求矩阵必须是稠密的,所以评分矩阵r通常无法直接分解为p与q。

矩阵分解思想为:首先随机初始化两个因子矩阵p与q,随后计算两个因子矩阵的乘积得到的评分矩阵与实际评分矩阵正则化平方误差,即损失函数。随后采用优化方法(例如随机梯度下降)来更新因子矩阵p与q,从而使损失函数最小化,这样训练得到因子矩阵p与q就逐渐接近真实的因子矩阵。当算法收敛后,就可以使用因子矩阵p与q进行评分预测了。在算法中,损失函数可以被定义为:

其中为了防止过拟合,添加了正则项λ(||pu||2+||qi||2),其中λ表示正则化参数。损失函数的最优化问题通常是一种非凸优化问题,对于这类非凸优化问题有两种较为常见的方法:随机梯度下降(sgd)与交替最小二乘法(als)。

在sgd方法中,求解损失函数的最优化问题是通过利用随机梯度下降方法更新因子矩阵p和q来进行的,矩阵更新的方向为损失函数的负梯度方向。首先初始化矩阵p,q,随后对损失函数求解负梯度,并且根据负梯度方向更新p,q中的向量,并且不断迭代执行这一过程,直到算法最终收敛。数据集中每一条评分记录使用rui来表示,它表示用户u对物品i的评分,eui=rui-qtpu表示预测的评分与实际评分的误差,err表示式最小化的误差函数,误差函数分别对pu,qi求偏导:

对于数据集中的所有的评分,将pu,qi向负梯度更新,pu,qi更新公式如下:

pu=pu+γ(euiqi-λpu)

qi=qi+γ(euipu-λqi)

其中,参数γ为学习率,它决定了梯度下降的速率。

在als方法中,求解最优化问题则是通过交替更新用户和物品的因子矩阵来实现的。具体的来讲就是在每次迭代过程中,将用户p或物品q中的一个矩阵固定(即假设为常量),假设此时固定的矩阵为用户因子矩阵p,非凸最优化问题此时转化为凸优化问题,因此可以求出此时的最优化解的另一个因子矩阵q,随后将物品矩阵q固定,求解出此时最优化的物品因子矩阵p。通过不断执行这一个交替求解的过程,直到算法收敛,最终得到的就的到最优化的用户因子矩阵和物品因子矩阵。

最后,无论是使用sgd还是als来求解,当得到优化后的用户因子向量p和物品因子向量q这两个隐性因子矩阵之后,就可以利用这两个矩阵来预测评分。例如为了预测用户u对物品i的评分rui,可以通过用户因子向量p中的向量pu乘上qi得到,即:

随后这些计算后的预测结果可以用于推荐系统来提供推荐,例如,推荐系统在计算出用户对待推荐物品的评分后,将待推荐物品按评分从大到小排序,随后从中选取评分最高的几项物品推荐给用户。

协同过滤推荐算法的优点之一就是可以适用于各类推荐系统的推荐,基于矩阵分解的协同过滤推荐算法也不例外,但是在应用到各种推荐系统时,基本的矩阵分解模型存在着一些不足。基于矩阵分解的算法通过将评分矩阵分解为用户因子矩阵和物品因子矩阵的方式来发现用户与物品之间的潜在关系,然而很多对协同过滤推荐算法的研究结果表明,评分中存在着一些只和用户本身或者物品本身相关而和用户与物品间的关系无关的因素,也被称作偏置(biases)。例如有些用户比较严格,稍有不满就对物品给出中评或者差评,而有些用户则比较宽容,除非物品本身质量极差,都会给出较好的评价。此外有些物品本身由于质量较高口碑较好等原因,得到的评价通常都非常好,而有些物品由于本身质量较差等原因,得到的评价普遍偏差。特别的,在不同类型的推荐系统与不同类型的用户群中,这些偏置因素都是不同的。在这种情况下,只利用用户因子和物品因子来反映用户喜好的矩阵分解算法就显得有所欠缺了。因此,如果能用这些只和用户本身与物品本身相关的偏置项来改进矩阵分解模型,就可以更好的解释用户评分所反映的偏好,推荐算法的推荐准确度也会有所提升。

在基本的矩阵分解评分预测公式的基础上,添加偏置项后的评分预测公式,改进后的评分预测模型为:

其中μ表示平均数,平均数所反映的是该推荐系统数据的整体打分水平,这可以消除不同类型的数据集所带来的差异,使得评分预测可以更好地用于当前推荐系统。用户偏置项bu表示用户u自身的打分倾向,物品偏置项bi表示物品i本身的所能得到的评价,而此时的则表示去掉偏置后用户的隐性因子u与物品的隐性因子i之间的关系。

对于改进后的模型,同样可以采用随机梯度下降最小化式正则化的平方误差函数来实现,改进后的损失函数为:

为了避免学习时过拟合,上式也同样加入了防止过拟合的正则项λ(||bu||2+||bi||2+||pu||2+||qi||2),正则化参数λ控制了正则化程度。模型的参数中,平均值μ可以通过直接对评分数据求平均值得到,而其他参数如用户偏置项bu,物品偏置项bi,用户因子矩阵p,物品因子矩阵q,则可以采用随机梯度下降算法来进行学习,具体计算过程如下:

首先,对于数据集中每一条评分rui,设表示预测的评分与实际评分的误差,err表示损失函数中需要最小化的误差函数,误差函数分别对pu,qi,bu,bi求偏导:

对于数据集中每一条评分rui,将pu,qi,bu,bi向负梯度更新:

pu=pu+γ(euiqi-λpu)

qi=qi+γ(euipu-λqi)

bu=bu+γ(eui-λbu)

bi=bi+γ(eui-λbi)

其中,参数γ为学习率,它决定了梯度下降的速率。

通过对每个评分更新参数,再重复迭代执行这一操作直到满足迭代终止条件,最终得到训练后的参数bu,bi,p,q,对于sgd优化方法,迭代终止条件通常有如下几种:

(1)设定临界值,当损失函数值小于临界值时停止迭代。

(2)当前后2次函数值变化绝对值小于某一临界值时,停止迭代。

(3)固定迭代次数。

一般都采用固定迭代次数作为迭代终止条件。

在得到参数μ,bu,bi,p,q之后,就可以根据评分预测公式来预测用户u对物品i的评分了。

2006年dwork提出的差分隐私(differentialprivacy)机制解决了传统隐私保护模型的不足。差分隐私是一种针对统计数据库的隐私泄露问题而提出的一种新型隐私定义。在差分隐私的定义下,对数据集中的数据进行查询操作(例如计数、求平均值、中位数、求和或者其他类型的范围查询等)得到的结果不会受到具体一条数据的影响,也就是数据集中是否存在某一条数据的几乎不会造成计算结果的改变,这样攻击者即使已经拥有所有的背景知识(除目标数据以外的所有敏感数据)也无法通过查询结果的改变而准确地知道具体一条数据的内容,而且此数据集仍然保留着一些统计特性,可以被用于数据挖掘等操作。

差分隐私与k匿名体系等传统隐私技术的不同在于,差分隐私对于隐私攻击定义了一种严格的数学模型,对隐私泄露风险也给出了严谨、定量化的表示和证明。虽然差分隐私技术是基于数据扰乱的隐私保护技术,通过加入噪声使得原有的数据失真,但差分隐私所加入的噪声量大小与数据集的大小无关,噪声的大小只与数据集的敏感度和隐私参数∈是有关。所以在某些情况下通过添加极少量的噪声就可以为大规模的数据集提供较高级别的隐私保护。这使得差分隐私保护技术可以在大幅度降低隐私泄露风险的同时,确保数据的可用性。正是由于差分隐私技术的这些优势,使得该方法自提出以来一直受到相关领域研究人员的广泛研究。

定义(∈-差分隐私).假设存在一个随机算法a,算法a的取值范围为range(a)。d和d′为至多只差一条记录的两个任意数据集,它们也被称作邻近数据集。pr[e]表示事件e发生的概率,它的大小由随机算法a的随机性控制。当随机算法a在数据集d和d′上的结果s(s∈range(a))满足如下不等式时,满足∈-差分隐私:

pr[a(d)∈s]≤e×pr[a(d′)∈s]

定义中∈被称为隐私预算,它∈的大小决定了差分隐私的隐私保护程度。∈越大,随机算法在d和d′上输出的结果分布的区别也就越大,此时数据集中一条数据造成的查询结果改变也就越大,隐私保护水平越低,反之亦然。当∈为0的时候,随机算法a的隐私性达到最高,但在邻近数据集d与d′上的输出结果分布将完全一致,因而无法体现出数据集中的任何有用信息。因此在实际应用中,∈的取值需要考虑数据可用性与数据完全性之间的平衡。

差分隐私保护的实现通常是在原本算法或函数输出的结果中添加适当的随机噪声来完成的,而噪声的大小除了与∈有关外,还取决于算法的敏感度。算法的敏感度,是指从原始数据集中删除其中的任意一条记录后,对算法的结果可能造成的最大改变。

在差分隐私保护中,定义了全局敏感度(globalsensitivity)。

定义(全局敏感度).对某一函数f:d→rd,d表示函数输出向量的维度,

d′与d为至多只差一条记录的任意两个数据集,则函数f对应的全局敏感度为:

gsf(d)=maxd,d′||f(d)-f(d′)||k

其中||||k表示lk-范数。

从定义中可以看出,全局敏感度的大小和数据集中数据分布情况无关,而是和函数相关。有些函数的敏感度很小,例如计数函数的敏感度为1。而有些函数的敏感度则非常大,例如求和函数的敏感度为数据集中最大值与最小值的绝对值的最大值。

通常情况下,一个复杂的算法往往包含多个查询步骤的组合,然而在给定的隐私预算∈下,多次以隐私预算∈对同一数据集进行查询可能会造成隐私信息的泄露,因此为了让多次查询的组合满足隐私预算∈的要求,需要考虑将整体的隐私预算分配到各个环节之中。针对差分隐私的组合问题,差分隐私保护存在序列组合性和并行组合性这两个性质。

定义(序列组合性).给定数据集d和隐私保护算法a1,a2,...,an,且算法ai(1≤i≤n),满足∈i-差分隐私,则{a1,a2,...,an}在d上的序列组合a1(d),a2(d),...,an(d)满足∑∈i-差分隐私。

定义(并行组合性).设d为一个数据集,将其划分为n个不想交的子集,则有d={d1,d2,...,dn},对于隐私保护算法a1,a2,...,an,ai(1≤i≤n)满足∈i-差分隐私,则算法a1,a2,...,an分别在{d1,d2,...,dn}上的系列操作a1(d1),a2(d2),...,an(dn)满足max∈i-差分隐私。

对于实现矩阵分解算法的差分隐私保护,最合适的环节就是在矩阵分解算法训练参数的过程中进行差分隐私保护,由于全局平均数μ、用户偏置项bu、物品偏置项bi、用户因子矩阵p与物品因子矩阵q这些参数都是从评分矩阵训练而来,所以必须都进行差分隐私保护,否则若其中存在某一参数未经差分隐私保护,攻击者掌握了这一参数,评分矩阵就存在隐私泄露风险。对此,本发明提出差分隐私保护的全局平均值计算与差分隐私随机梯度下降两种算法,在各个参数计算与训练过程中,对其添加差分隐私噪声,实现差分隐私保护。

为了对评分的全局平均值进行差分隐私保护,需要使得攻击者无法从计算出的评分平均值中判断评分矩阵中一条评分数据是否存在,因此需要在全局平均值的计算过程中,添加差分隐私噪声,掩盖一条评分数据可能造成的最大改变。评分的全局平均值计算公式为:

其中r表示评分矩阵,μ表示平均值,rui表示用户u对物品i的评分,|r|表示评分的总数。计算分为评分的求和与计数两部分,因此可以通过分别对求和与计数的结果中添加随机噪声,实现求和与计数函数的差分隐私保护,再利用差分隐私保护的序列组合性来实现整个平均值计算的差分隐私保护。假设评分的最大值为rmax,最小值为rmin,对于评分的求和操作,一条评分数据对于求和的可能的最大改变为rmax-rmin,因此评分求和的敏感度为δrsum=rmax-rmin,对于评分的计数操作,一条评分数据对于评分计数的最大改变为1,因此评分计数的敏感度为δrcount=1。

定义(拉普拉斯机制).对于任意一个函数f:d→rd,若随机算法a的输出结果a(d)满足:

a(d)=f(d)+(laplace(δf/∈))d

则称随机算法a满足∈-差分隐私。拉普拉斯机制生成的随机噪声大小与δf成正比,与∈成反比。

本发明采用拉普拉斯机制来计算差分隐私保护的评分平均值,假设∈1为计算平均值的隐私预算,差分隐私保护的评分平均值计算公式如下:

其中,差分隐私平均值计算中的评分求和与评分计数的隐私预算分别为∈1/2。

为了对评分的全局平均值进行差分隐私保护,需要使得攻击者无法从计算出的评分平均值中判断评分矩阵中一条评分数据是否存在,因此需要在全局平均值的计算过程中,添加差分隐私噪声,掩盖一条评分数据可能造成的最大改变。评分的全局平均值计算公式为:

计算分为评分的求和与计数两部分,因此可以通过分别对求和与计数的结果中添加随机噪声,实现求和与计数函数的差分隐私保护,再利用差分隐私保护的序列组合性来实现整个平均值计算的差分隐私保护。假设评分的最大值为rmax,最小值为rmin,对于评分的求和操作,一条评分数据对于求和的可能的最大改变为rmax-rmin,因此评分求和的敏感度为δrsum=rmax-rmin,对于评分的计数操作,一条评分数据对于评分计数的最大改变为1,因此评分计数的敏感度为δrcount=1。

本发明采用拉普拉斯机制来计算差分隐私保护的评分平均值,假设∈1为计算平均值的隐私预算,差分隐私保护的评分平均值计算公式如下:

其中,差分隐私平均值计算中的评分求和与评分计数的隐私预算分别为∈1/2。

在发明采用的矩阵分解推荐算法中,采用了随机梯度下降的方法来训练得到用户偏置项bu、物品偏置项bi、用户因子矩阵p与物品因子矩阵q。所以,为了实现偏置项与因子矩阵的差分隐私保护,和差分隐私保护的评分平均值计算一样,也需要在偏置项与因子矩阵计算过程中添加噪声来掩盖数据集中一条评分记录的存在。对于随机梯度下降算法,如果在每次迭代后对偏置项与因子矩阵添加噪声,并对向量进行规范化防止误差扩散,噪声可以被限制在一定范围中。因此本发明提出一种差分隐私保护随机梯度下降算法,采用在每次迭代结束时,向p中所有的向量pu、q中所有的向量qi、偏置项bu、偏置项bi添加噪声,实现差分隐私保护。对于偏置项bu与bi,可以通过向其添加拉普拉斯噪声完成差分隐私保护。而对于因子矩阵p,q,可以通过向矩阵中每个用户u和每个物品i的因子向量pu,qi上添加噪声向量来实现,但如果直接使用拉普拉斯机制生成噪声向量,所添加的噪声会比实际所需要的噪声要多,所以本发明采用k-范数机制[49]来生成噪声向量,相比较拉普拉斯机制,生成的噪声相对较小。

定义(k-范数机制(k-norm)).对任意一个函数f:d→rd,s2(f)表示函数f的l2-敏感度,若随机算法a的输出结果a(d)满足于等式a(d)=f(d)+rα则称随机算法a满足∈-差分隐私。

其中r表示一个从半径为1的d维球面上均匀取样的d维向量,α∝γ(d,s2(f)/∈)。

为了确定需要添加的噪声的数量与大小,需要分析相关参数训练过程中的敏感度。考虑在每次迭代过程中,训练偏置项与因子向量是通过在多次迭代中的每次迭代中对每个评分数据执行向量更新训练得到,因此为了掩盖数据集中一条数据对偏置项与因子向量的影响,需要分析额外执行一次向量更新对偏置项与因子向量造成的最大改变,也就是向量更新过程中的敏感度。由于偏置项bu与bi中加入的噪声使用的是拉普拉斯机制计算的,所以对于偏置项只需考虑l1-敏感度,而为了采用k-norm机制计算因子向量pu,qi的噪声向量,需要分析因子向量pu,qi的l2-敏感度。假设sp,sq,sbu,sbi分别表示向量更新过程中pu,qi,bu,bi的敏感度,pmax,qmax分别表示pu,qi向量范数的上界,bumax,bimax表示偏置项bu,bi中数值的上界,emax表示评分值误差的上界。则有:

sbu≤max||γ(e′ui-λ·bu)||1=γ(emax+λ·bumax)

sbi≤max|γ(e′ui-λ·bi)||1=γ(emax+λ·bimax)

假设迭代次数为w,在随机梯度下降的每次迭代的中,向量pu,qi添加的噪声通过k-norm机制计算,k-norm机制中的伽马分布的尺度参数分别为4sp*w/∈2,4sq*w/∈2。偏置项bu,bi添加的噪声由拉普拉斯机制计算,其中拉普拉斯分布尺度参数分别为4sbu*w/∈2,4sbi*w/∈2。

此外在每次迭代中,添加噪声后的因子向量需要进行向量规范化操作,一方面可以确保向量的范数不会超过上界,另一方面也可以降低噪声的影响。对于偏置项的值也需要进行截断操作,确保偏置项的值不超过上界并降低噪声的影响,随机梯度下降过程中的eui也会根据参数emax进行类似的截断。在本发明提出的算法中pmax,qmax等向量范数的上界与bumax,bimax等偏置项值的上界将作为参数提供,emax也作为参数提供,但具体的值则根据emax=rmax-μ+bumax+bimax+pmax·qmax计算来确定。算法流程如表2所示。

表2基于差分隐私的矩阵分解推荐算法

实验与仿真,为了说明算法的效果,在此利用实验与仿真进行说明。实验环境为windows1064位操作系统cpu型号为intel(r)core(tm)i7-6700kcpu@4.00ghz,内存为24gb。算法采用使用python进行实现。实验的数据集采用了推荐算法等领域使用较为广泛的数据集:movielens-100k数据集:

movielens数据集是由grouplens(www.grouplens.org)研究组从movielens网站上收集并制作的数据集,数据集中包括了用户对电影的打分数据以及用户和电影自身的属性。movielens数据集有ml-100k,ml-1m,ml-10m,ml-20m等不同规格的数据,100k,1m等数字表示了数据集中评分数据的数量级,本发明采用的是其中的ml-100k与ml-1m数据集,数据集的数据规模为100000条与1000000条。ml-100k中的100000条评分数据中包含了943个用户对1622部电影的评分记录,评分收集时间段为1997年9月-1998年4月,为期七个月。数据集中评分的范围为1-5且每个用户至少评分了20部电影。

在实验中,需要将上述数据集中的评分数据分为训练集与测试集。对于ml-100k数据集,本文的实验均采用五折交叉验证的方式来训练与验证推荐算法的准确度。

对于差分隐私保护的矩阵分解算法,实验的基本参数配置分别如表3所示。

表3差分隐私保护的矩阵分解算法参数

隐私预算的分配方面,对于基于差分隐私保护的矩阵分解算法,算法整体隐私预算为∈时,平均值计算隐私预算为∈1=0.1*∈,差分隐私保护随机梯度下降隐私预算为∈2=0.9*∈。

实际生活中衡量一个推荐系统的推荐质量有很多种评价指标,如点击率、转化率、排序准确度等等,但在实验的角度通常采用的是评分准确度。对于推荐算法领域,常用的评分准确度评价指标通常有mae(平均绝对误差,meanabsoluteerror)与rmse(均方根误差,rootmeansquareerror)两种,这里我们采用rmse作为评价推荐算法评分准确度的评价指标。rmse的具体计算方法如下:

其中,r表示测试集中评分数据的评分矩阵,rui表示测试集中用户u对物品i的实际评分,ru′i表示推荐算法的预测评分。通常rmse越小,说明推荐的结果与实际的结果误差相对较小,推荐算法的准确度越高,意味着推荐质量也越高。考虑到差分隐私算法会向数据集中添加随机噪声,这可能会造成同样的参数与方法计算出的rmse有所差距,因此这里实验结果中的rmse是多次实验取平均值的结果,实验结果中的rmse均为是5次运行结果的均值。

在实验结果上,这里采用的将隐私保护算法在不同隐私预算∈下计算所得到的rmse值绘制成曲线,随后通过对比分析不同隐私保护算法或者不同参数下计算所得到的不同曲线得来评价隐私保护算法的好坏。如果某隐私保护算法曲线可以在相同的隐私预算∈下得到较低的rmse值,则说明算法在具有相同隐私保护的情况下可以获得较高的推荐准确度。反之,如果隐私保护算法曲线在相同隐私预算∈下的rmse值较高,则说明该隐私保护算法在相同隐私保护的情况下,推荐准确度较差。对于不同参数下的算法评价,采用的方法是类似的。

为了验证本发明提出推荐算法的有效性,我们将本发明提出的基于差分隐私保护的矩阵分解方法(differentiallyprivatematrixfactorization,dpmf)与种推荐算法进行实验对比:

(1)平均值预测(itemaverage,简称ia):对所有用户的评分都采用当前物品的评分平均值进行预测,无隐私保护。

(2)基本矩阵分解算法(basicmatrixfactorization,简称basicmf):基本的矩阵分解算法,无隐私保护,只训练用户因子矩阵与物品因子矩阵进行推荐预测的算法。

(3)带偏置项的矩阵分解算法(biasedmatrixfactorization,简称biasedmf):在基本的矩阵分解算法的基础上,引入偏置项的改进后的算法,无隐私保护。

其中,由于ia是采用物品平均值来进行预测的,无法体现用户自身对物品的喜好程度,所以实验采用ia作为推荐算法的基准线,rmse值高于该基准线则认为推荐算法未能达到个性化推荐的效果,而rmse值低于该基准线,则可以认为推荐算法已经具有一定的个性化推荐的效果。basicmf是用来对比偏置项的优化效果,同时代表着传统推荐算法的准确度。而biasedmf则是对比本发明采用的差分隐私保护所带来的推荐准确度的损失。

在差分隐私保护算法中,∈的值对于隐私保护程度与数据可用性之间的取舍非常重要,较高的∈值可能带来较高的推荐准确率,但是隐私保护算法的隐私保护程度也相应的有所下降,因此为了确保隐私保护的基本要求,对于∈的取值需要做一定的限制,但具体如何限制∈的值,则需要数据发布者考虑可能存在的威胁以及数据提供者(用户)对于自身隐私信息的关注度来确定。相关差分隐私研究邻域的文献认为隐私预算取值为∈=ln2或∈=ln3可以被认为是达到了一定程度的隐私保护。但也有些文献认为在一些特殊情况下(例如aol隐私保护),即使隐私预算为∈=12也可以提供具有一定意义的隐私保护。对此,这里的实验的∈的取值范围在0.1~10之间。

实验(隐私保护推荐算法推荐效果).实验的目的是考察隐私保护推荐算法在不同隐私预算下的准确度,从而说明隐私保护推荐算法相对于无隐私保护的推荐算法在隐私保护时隐私保护带来的推荐准确度损失的代价的大小。实验在ml-100k数据集上进行。实验结果如图2所示。在无隐私保护的算法中,ia,basicmf与biasedmf由于没有差分隐私保护,它们的rmse值不会随着隐私预算∈的变化而变化,一直维持一条直线的状态。

首先,从图中可以看到,在无隐私保护的算法中,basicmf与biasedmf都是低于ia的,biasedmf的rmse值比basicmf低,说明利用偏置项优化的矩阵分解推荐算法相比较基本的矩阵分解算法,可以获得较好的推荐效果。

对于隐私保护算法dpmf,当∈>ln2时,dpmf算法的rmse值均低于ia,这体现了本发明提出的差分隐私保护算法可以在达到一定程度的隐私保护的情况下,获得个性化推荐效果。在隐私预算较低的时候,dpmf的rmse值相对于basicmf与biasedmf相比相对较大,但随着隐私预算的增加,dpmf算法的rmse值逐渐接近basicmf与biasedmf的直线,当∈>4后,dpmf算法的rmse值逐渐低于basicmf的rmse值,这说明略微牺牲一些隐私保护效果,dpmf算法可以取得高于传统矩阵分解推荐算法的推荐效果,并且很接近于原来的推荐算法biasedmf的推荐准确度。而且根据差分隐私的性质,此时dpmf仍然具有较高的隐私保护效果。

综上所述,本组实验结果表明:本发明提出的dpmf算法不仅是可行的,且可以在确保较高隐私保护程度的情况下,提供较好的推荐准确度。即可以在提供有效的推荐准确度的情况下,提供较好的隐私保护效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1