一种基于差分隐私和用户活跃度的协同过滤Top-N方法与流程

文档序号:15695995发布日期:2018-10-19 19:03阅读:1026来源:国知局
一种基于差分隐私和用户活跃度的协同过滤Top-N方法与流程

本发明涉及推荐系统中的隐私保护技术领域,具体是一种基于差分隐私和用户活跃度的协同过滤top-n方法。



背景技术:

网络技术的迅速发展以及数据共享范围的逐渐扩大使得数据的发布和收集变得越来越方便。随之带来的问题是:数据发布的过程中出现的隐私暴露问题,引起了社会的恐慌,阻碍了数据挖掘行业的发展,因此隐私保护越来越受到人们的关注。

随着电子商务的迅速发展和web上信息的不断增长,推荐系统(recommendersystem)成为有效帮助用户做出决策、大幅度提高了用户搜索效率的重要智能软件,强化了用户体验。但近年来用户规模和用户数据的爆发,使得推荐系统中的隐私泄露问题愈发严重,甚至成为制约推荐系统发展的障碍。因此,如何保证用户的隐私安全成为推荐系统在数据挖掘过程中亟待解决的问题。

差分隐私(differentialprivacy)是dwork等人于2006年提出的一种全新的隐私保护模型,通过对原始数据添加随机噪声来保护数据隐私,从而能够有效的避免同质性攻击和背景知识攻击。当前国内外学者就差分隐私在推荐系统的应用这一领域已经提出了众多算法,在隐私保护程度和推荐的准确率上均取得了不错的效果,但仍存在一定的局限性,一是差分隐私机制引入的噪声导致数据的可用性降低,影响推荐的准确率,二是现有的算法在原有的推荐算法上进行了较大的改动,或是针对某一特定领域进行改进,其可用性和扩展性较差。



技术实现要素:

为了克服上述现有技术的缺点,本发明提供一种基于差分隐私和用户活跃度的协同过滤top-n方法,在保护用户隐私的前提下有效提高了推荐结果的准确率,并且有较广的适用性,能够与已有的研究能够很好的结合。

本发明是以如下技术方案实现的:一种基于差分隐私和用户活跃度的协同过滤top-n方法,包括产生用户相似度矩阵单元、相似度矩阵加噪单元以及推荐生成单元,具体如下:

产生用户相似度矩阵单元:利用user-item评分记录,根据用户活跃度机制生成用户相似度矩阵;

相似度矩阵加噪单元:对产生用户相似度矩阵单元中得到的用户相似度矩阵添加随机laplace噪声,使其满足差分隐私机制,返回带有隐私保护的用户相似度矩阵;

推荐生成单元:利用相似度矩阵加噪单元中生成的用户相似度矩阵产生推荐,返回top-n推荐列表。

优选的,产生用户相似度矩阵单元具体过程如下:

1)首先,根据user-item评分表建立物品-用户倒排表,对于每个item都保存对其有过反馈的用户列表;

2)遍历倒排表中每个item对应的user列表,将user列表中用户u和用户v对应的c[u][v]和c[v][u]加上1/log(1+users.length),得到所有用户间不为0的矩阵c;

3)将矩阵c归一化得到用户相似度矩阵w。

优选的,相似度矩阵加噪单元具体过程如下:

1)计算查询函数全局敏感度

2)生成服从laplace分布的噪声noise=laplace(△f/ε)

3)对于w[u][v]中的每一条记录添加随机噪声noise得到加噪矩阵w'。

优选的,推荐生成单元具体过程如下:

1)初始化用户交互表interacted_items=user-item[user];

2)对w'[u].items进行降序排列;

3)选取与用户u兴趣最接近的k个用户;

4)遍历k个用户有过行为的物品i;

5)如果i在interacted_items中,如果用户对物品i有过行为;

6)过滤用户交互之前的项目;

7)生成推荐列表rank[i]+=w'uv*rvi,其中w'uv是用户u和用户v的兴趣相似度,rvi代表用户v对物品i的兴趣;

8)对rank[i].items进行降序排列并推荐n个元组;

9)return推荐列表rank。

本发明的有益效果是:利用用户活跃度机制计算不同用户之间的相似度,生成用户相似度矩阵,使得推荐结果更为准确;为了保护用户的隐私,利用差分隐私保护技术对用户相似度矩阵随机添加噪声,从而有效防止了用户隐私泄露。

附图说明

图1是本发明流程框图;

图2为不同邻居数k下不同基于用户top-n算法的准确率;

图3为不同邻居数k下不同基于物品top-n算法的准确率;

图4为dpubtop-n+算法与dpibtop-n+算法在不同隐私保护预算ε下的准确率。

具体实施方式

本发明主要提出了一种基于差分隐私和用户活跃度的协同过滤top-n算法,以下为本发明方法使用到的概念。

1.协同过滤推荐系统

协同过滤(collaborativefilteringcf)的推荐机制是根据用户对物品或信息的喜好来挖掘物品或信息的相关性从而产生推荐,主要分为基于用户的推荐(user-basedrecommendation)和基于项目的推荐(item-basedrecommendation)两大类。协同过滤一是预测用户对物品的评分行为(称为评分预测),即基于user-item的评分数据来预测用户对其他物品的评分;二是top-n推荐,即给用户生成一个个性化推荐列表。国内外学者普遍认为就实际应用而言,top-n推荐更有价值。例如在为用户推荐电影时,推荐系统应该为用户推荐其感兴趣的电影而不是预测电影评分,因此top-n推荐在当今的推荐系统中占有重要地位。

2.top-n推荐算法

top-n推荐算法依据某种规则(基于用户或基于项目)提供给用户个性化推荐列表来提供推荐服务,下面具体介绍top-n推荐算法的推荐过程。

2.1基于用户的top-n协同过滤算法

基于用户的top-n协同过滤算法首先利用用户行为相似度构建与目标用户兴趣相似的用户集合,给定用户u和用户v,n(u)表示用户u有过反馈的物品集,那么u和v的兴趣相似度由以下公式算得:

依次对所有用户计算兴趣相似度,得到用户相似度矩阵,然后为用户推荐其最感兴趣的k个物品,下述公式度量了用户u对物品i的兴趣度:

式(2)中的s(u,k)表示与用户u兴趣最接近的k个用户集合,n(i)是对物品i有过反馈的用户集合,wuv是用户u与用户v间的兴趣相似度,rvi表示用户v对物品i的兴趣度,由于top-n中使用的是单一行为隐反馈数据,所以可令rvi=1。

2.2基于物品的top-n协同过滤算法

与基于用户的top-n算法类似,基于物品的top-n协同过滤算法同样分为两步,首先通过式(3)计算物品之间的相似度:

由上式可知每个用户都能够通过其历史兴趣列表为物品提供相似度参照,共同被越多用户数喜欢过的两个物品其相似度就越高。在得到物品之间的相似度后,再通过式(4)计算用户u对物品j的兴趣:

n(u)表示用户喜欢的物品集合,s(j,k)是和物品j最相似的k个物品的集合,wji是物品j和物品i的相似度,ruj是用户u对物品i的兴趣。

3.差分隐私保护模型

差分隐私保护模型是一种全新的隐私保护模型,其核心思想是对于差别只有一条记录的两个数据集,查询它们获得相同值的概率十分接近。因此,差分隐私是一种从数据源头彻底避免隐私信息泄露的方法。下面介绍差分隐私的基本概念。

定义1.差分隐私:设有随机算法m,pm为p所有可能输出构成的集合。对于任意两个邻近数据集(表示两数据集只相差一条记录)d和d'以及pm的任何子集sm,若算法m满足

pr[m(d)∈sm]≤exp(ε)×pr[m(d')∈sm](5)

则称算法m提供ε-差分隐私保护,其中参数ε称为隐私保护预算。

定义2.全局敏感度:设有函数f:d→rd,对于任意相邻数据集d和d'

成为函数f的全局敏感度,其中||f(d)-f(d')||1是f(d)和f(d')之间的1-阶范数距离。

定义3laplace机制:给定数据集d,设有函数f→rd.其敏感度为△f。那么随机算法m(d)=f(d)+y提供ε-差分隐私保护,其中y服从△f/ε的laplace分布,ε越小,引入的噪声越大,隐私保护程度越高。

4.用户活跃度机制

在usercf计算用户相似度时,如果考虑物品的热门程度对用户相似度的影响,则推荐的准确率将会上升,举个例子,如果两个用户都购买了《牛津词典》,这并不能说明这两个用户的兴趣相似,因为大多数中国人都买过《牛津词典》,但是如果同时购买了《计算机网络》,那么这两个用户的兴趣相似度应该大大增加。基于此,johns.breese在论文中提出使用物品热门程度对数的倒数的参数来惩罚热门物品对他们相似度的影响:

同样在itemcf中,两个物品产生相似度是因为它们共同出现在很多用户的兴趣列表中。换言之,每个用户的兴趣列表都对物品的相似度产生贡献,但每个用户的贡献并不相同。例如,某书店采购员采购了1万册图书,所购图书的两两相似度贡献应远远小于一个只买了几本自身研究领域图书的科研工作者,因为前者对其所购买的图书兴趣度远远小于后者。johns.breese认为活跃用户对物品相似度的贡献应该小于不活跃的用户,并提出了利用用户活跃度对数倒数的参数来修正物品相似度的计算公式:

因此,将“用户活跃度”这一理念应用到基于差分隐私的top-n算法中去,能够有效提高算法的准确率。

基于以上定义,一种基于差分隐私和用户活跃度的协同过滤top-n方法,具体步骤如下:

a、产生用户相似度矩阵单元:利用user-item评分表,根据用户活跃度机制生成用户相似度矩阵,完成后得到优化的用户相似度矩阵;

1)首先,根据user-item评分表建立物品-用户倒排表,对于每个item都保存对其有过反馈的用户列表;

2)遍历倒排表中每个item对应的user列表,将user列表中用户u和用户v对应的c[u][v]和c[v][u]加上1/log(1+users.length),得到所有用户间不为0的矩阵c;

3)将c矩阵归一化得到用户相似度矩阵w。

b、相似度矩阵加噪单元:对步骤a中得到的用户相似度矩阵添加laplace噪声,使其满足差分隐私保护机制;

1)计算查询函数全局敏感度

2)生成服从laplace分布的噪声noise=laplace(△f/ε)

3)对于w[u][v]中的每一条记录添加随机噪声noise得到加噪矩阵w'。

c、推荐生成单元:利用步骤b中产生的满足差分隐私的用户相似度矩阵进行推荐,返回top-n推荐列表。

1)初始化用户交互表interacted_items=user-item[user];

2)对w'[u].items进行降序排列;

3)选取与用户u兴趣最接近的k个用户;

4)遍历k个用户有过行为的物品i;

5)如果i在interacted_items中,如果用户对物品i有过行为;

6)过滤用户交互之前的项目;

7)生成推荐列表rank[i]+=w'uv*rvi,其中w'uv是用户u和用户v的兴趣相似度,rvi代表用户v对物品i的兴趣;

8)对rank[i].items进行降序排列并推荐n个元组;

9)return推荐列表rank。

该方法简称dpubtop-n+方法,由以上步骤可知,dpubtop-n+算法,产生用户相似度矩阵过程中:如果对两两用户都利用余弦相似度计算,则会耗费大量时间和内存,因此首先通过步骤1)根据user-item评分表建立物品-用户倒排表,对于每个item都保存对其有过反馈的用户列表,步骤2)遍历倒排表中每个项目对应的用户列表,将用户列表张用户u和用户v对应的c[u][v]和c[v][u],根据用户活跃度机制加上1/log(1+users.length),得到所有用户间不为0的矩阵c,步骤3)将矩阵c归一化后得到用户相似度矩阵w。相似度矩阵加噪过程中,步骤1)计算查询函数count的全局敏感度,步骤2)生成服从laplace分布的随机噪声,步骤3)对用户相似度矩阵w中的每一条记录添加随机噪声,使其满足差分隐私机制,得到加噪矩阵w’。在产生推荐结果的过程中,步骤1)首先初始化用户交互表interacted_items=user-item[user],步骤2)对加噪矩阵w'[u].items进行降序排列,步骤3)获得排序后w'中的前k个元组,步骤4)遍历user-item[user],步骤5)进行判断:如果用户i在interacted_items中,则通过步骤6)跳过循环,步骤7)生成推荐列表rank[i]+=w'uv*rvi,步骤8)对rank[i].items进行降序排列并取前n个元组产生推荐,步骤9)返回最终top-n推荐列表。

dpubtop-n+方法首先通过“用户活跃度”机制对原始的top-n推荐算法中用户相似度矩阵生成进行改进,从而得到准确率更高的推荐结果;再通过差分隐私机制对改进后的用户相似度矩阵进行加噪处理,在提高推荐准确率的同时有效保护了用户隐私,弥补了laplace噪声带来的部分信息损失。因此,相较于现有的top-n推荐算法,dpubtop-n+能够达到保护隐私和提升推荐精度的双重效果。此外,基于物品的dpubtop-n+算法原理和过程与dpubtop-n+类似,因此不在本文中作详细介绍,在下一节中通过具体实验对两个算法进行验证。实验验证及结果分析

实验数据集及环境:实验采用grouplens站点提供的movielens-1m数据集作为实验数据,该数据集包含100万条评分记录(6000多用户对4000多部电影的评价)。通过对不同top-n推荐算法的对比来评价不同算法的指标,并将数据集按照7:3的比例划分训练集与测试集,利用训练集建立用户兴趣模型,利用测试集进行用户行为预测,最终统计出相应评测指标。

为了评测不同算法的测试效果,通过准确率评测推荐算法的精度。假设对用户u推荐n个物品(记为r(u)),令用户u在测试集上喜欢的物品集合为t(u),那么算法的准确率(precision)可通过以下公式计算:

本发明先对基于用户的top-n相关算法不同k值条件下的准确率进行分析,再对基于物品的top-n相关算法不同k值条件下的准确率进行分析,通过这两个实验来验证本发明提出的算法在准确率上的优势;最后验证不同隐私预算ε下本发明提出的基于用户的top-n和基于物品的top-n的准确率,对比use-based与item-based的优劣以及分析两种算法在不同场景下的应用策略。实验环境为intelcorei5处理器,2.7ghz,8gb内存,linux操作系统,采用python语言实现相关代码。以下实验结果均为5次实验后取得的平均值。

实验结果分析

图2是不同user-basedtop-n推荐算法在不同邻居数k下的推荐精度。为了比较本文算法效果,该实验通过dpubtop-n+与ubtop-n(user-basedtop-n算法)、dpubtop-n(基于差分隐私的user-basedtop-n算法)以及ubtop-n+(基于用户活跃度的user-basedtop-n算法)进行实验结果对比来证明本推荐算法的有效性。其中实验参数隐私预算ε=1.0,从图中可以看出所有基于用户的top-n推荐算法的准确率总体趋势随着k值的变大而增加,这是因为k决定了usercf的参照用户基数,k越大,参照的人就越多,结果就越趋近目标用户的兴趣。laplace噪声的引入使得dpubtop-n+相对于ubtop-n算法准确率下降,为了弥补这一缺陷,本发明引入“用户活跃度”这一概念对ubtop-n算法进行了改进。由图1知,改进过的ubtop-n+算法在准确率上明显上升,为了保证用户的隐私,在此基础上对ubtop-n+进行加噪处理,使其满足差分隐私机制,实验结果表明dpubtop-n+算法的实际评测效果是可观的,当k=60时,甚至高于原来的ubtop-n算法的准确率。换言之,尽管对top-n推荐算法进行了隐私处理,但是算法准确率并未比原有的算法有所损失,甚至一度优于原来的算法,足以证明本算法的可行性。dpibtop-n+

图3是比较给出不同item-basedtop-n推荐算法在不同邻居数k下的推荐结果精度。实验同样通过dpibtop-n+与ibtop-n(itemr-basedtop-n算法)、dpibtop-n+(基于差分隐私的itemr-basedtop-n算法)以及ibtop-n+(基于用户活跃度的itemr-basedtop-n算法)进行实验结果的对比来证明dpibtop-n+的可行性。由图3知,图中四种算法推荐结果的精度不与k值成正相关或负相关,是由于物品相似度值与参照的用户数并无直接联系,因此k的选取对于itemcf的准确率至关重要。实验结果表明itemcf在进行差分隐私加噪处理后的准确率降低,但引入“用户活跃度”后能够弥补其信息损失,提高准确率。因此,引入“用户活跃度”机制同样适用于itemcf推荐算法。

图4是比较dpubtop-n+算法与dpibtop-n+算法在不同隐私保护预算ε下的准确率,在差分隐私保护中,隐私保护预算ε是决定隐私保护水平的一个重要指标。ε越小代表隐私保护水平越高,引入的噪声也更多。在本实验中,我们将隐私保护预算ε的范围设置为[0.01,20],将k设置为70,来评测dpubtop-n+算法与dpibtop-n+算法的准确率。由图4知,两种算法的准确率都随着ε的增加而上升,但大部分情况下itemcf的准确率不如usercf,并且隐私预算ε在0.01-2间的准确率上升较快,当ε大于2时准确率趋于平缓。本组实验结果表明:在满足差分隐私保护的前提下,本文提出的dpubtop-n+方法在movielens数据集测试实验中具有较高的推荐精度。

综上所述,相比于原始top-n推荐方法,本发明提出的方法不仅能够增推荐结果的准确度,还能有效保护用户隐私。本文采用的movielens数据集更加符合usercf推荐的特征,因此dpibtop-n+推荐效果更好。然而就实验1和实验2的实验结果来看,dpibtop-n+在原算法上准确率的提升度反而高于dpubtop-n+,说明本发明提出机制对itemcf优化度更高。在实际应用中,研究者应根据实际情况使用不同的算法,以满足推荐结果的最优化。

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