本发明涉及一种基于社交网络和协同过滤的电影推荐方法,属于推荐系统。
背景技术:
1、在大数据和互联网技术迅猛发展的时代,网络上浩如烟海的数据在满足人们对信息需求的同时也带来了“信息过载”问题,推荐系统应运而生。推荐系统的任务是从海量的数据中挖掘、分析用户的偏好和需求,从而为用户精准推荐其可能感兴趣的内容。相比于传统的搜索引擎,推荐系统的应用场景更加广泛,已经被广泛集成于电子商务、新闻媒体、音乐、社交等诸多领域。
2、传统的协同过滤算法是推荐系统中最为经典的方法之一。协同过滤算法主要分为基于用户的协同过滤和基于项目的协同过滤。基于用户的协同过滤算法通过找到与目标用户有相似兴趣的其他用户,根据这些相似用户的行为来预测目标用户的偏好;而基于项目的协同过滤算法则通过分析用户对相似项目的偏好来进行推荐。随着推荐系统中的数据量日益增长,数据类型趋于多样化和复杂化,根据用户直接产生的行为数据来获取相似偏好显然无法捕获用户的潜在偏好。一方面,在真实业务场景中存在着海量的可被推荐的候选产品,用户仅和少量产品的交互关系,这导致了用户和产品的评分矩阵是非常稀疏的,传统的协同过滤算法无法有效挖掘用户的偏好和兴趣,从而限制了推荐算法的准确性。另一方面,当出现新用户或者新物品时,系统没有足够的用户对于物品的历史反馈数据来学习用户对物品的偏好,产生了用户冷启动问题和物品冷启动问题,冷启动问题在很大程度上也消减了推荐算法的准确性。
3、随着社交网络的普及,社交关系数据为解决上述问题提供了新的思路。用户在社交网络中与其他用户存在显式和隐式的社交关系,显式社交关系通常表现为好友关系,而隐式社交关系则可以通过用户之间的共同兴趣或行为进行挖掘。将社交网络数据融入推荐系统,不仅可以弥补用户行为数据的不足,还可以通过考虑用户的社交影响力,提升推荐系统的准确性和多样性。
技术实现思路
1、本发明提供了一种基于社交网络和协同过滤的电影推荐方法,以用于克服现有推荐方法中由于数据稀疏导致的准确性有待提高的问题。
2、本发明的技术方案是:一种基于社交网络和协同过滤的电影推荐方法,所述方法的具体步骤如下:
3、步骤一:获取douban数据集并做数据处理,根据数据集中的uir.index数据构建用户-电影评分矩阵;
4、步骤二:构建用户-电影二分网络;
5、步骤三:根据数据集中social.index数据构建用户显式社交网络;
6、步骤四:通过对用户-电影二分网络做单模投影,获取用户的隐式社交网络;
7、步骤五:通过显式社交网络计算用户的显式相似度,根据用户的隐式社交网络计算用户的隐式相似度,并获取用户的融合相似度;
8、步骤六:给定目标用户,获取与目标用户相似度最高的top-n用户,根据相似用户的评分计算推荐列表。
9、进一步地,所述步骤一中的用户-电影评分矩阵r表示为:
10、
11、其中,用户-电影评分矩阵r的行表示用户,列表示电影,矩阵中的元素rij表示用户i对电影h的评分情况,m表示用户的数量,n表示对象的数量。
12、进一步地,所述步骤二中的构建用户-电影二分网络,将每个用户和每部电影分别作为节点,所有的用户节点组成的节点集记为用户集a,所有的电影节点组成的节点集记为电影集b,将用户对电影的评分作为连边,如果用户i对电影α评分,则连接节点i和节点α,以此类推,构建用户-电影二分网络。
13、进一步地,所述步骤三中的根据数据集中social.index数据构建用户显式社交网络包括:
14、数据social.index是包含所有用户显式社交关系的数据,其格式为userid1:userid2,表示用户1和用户2存在显式社交关系;用户显式社交网络由所有用户节点构成,如果两个用户之间存在显式社交关系,则在这两个用户之间连边。
15、进一步地,所述步骤四通过对用户-电影二分网络做单模投影,当两个用户节点有至少一个电影节点作为他们的公共邻居时,这两个用户节点之间有一条连边,从而获取用户的隐式社交网络。
16、进一步地,所述步骤五中,通过用户的显式社交网络计算用户的显式相似度,根据用户的隐式社交网络计算用户的隐式相似度,并获取用户的融合相似度,包括如下内容:
17、用户的显式相似度表示为
18、
19、式(2)中,ui表示用户u对电影i的评分,vi表示用户v对电影i的评分,sim1(u,v)表示用户u和用户v的显式相似度,cos(u,v)表示用户的显式相似度采用余弦相似度;
20、用户的隐式相似度表示为
21、
22、式(3)中,rui表示用户u对电影i的评分,rvi表示用户v对电影i的评分,为用户u在评分交集ruv中的评分平均值,为用户v在评分交集ruv中的评分平均值;ruv表示用户u和用户v的评分交集,sim2(u,v)表示用户u和用户v的隐式相似度,pearson(u,v)表示用户的隐式相似度采用皮尔逊相关系数;
23、用户的融合相似度表示为
24、sim(u,v)=αsim1(u,v)+(1-α)sim2(u,v)#(4)
25、式(4)中,sim(u,v)表示用户u和用户v的融合相似度,α为参数。
26、进一步地,所述步骤六中,给定目标用户,获取与目标用户相似度最高的top-n用户,根据相似用户的评分计算推荐列表,包括如下内容:
27、目标用户u对电影p的评分计算表示为:
28、
29、式(5)中,pu,p表示用户u对电影p的评分,u表示用户集,权重wu,s表示用户u和用户s的相似度,rs,p表示用户s对电影p的评分,在获得用户u对不同电影的评分后,最终的推荐列表根据评分进行排序即可得到。
30、本发明的有益效果是:本发明融合了用户关系的两种社交网络,结合了协同过滤算法,解决了推荐系统中的用户冷启动和数据稀疏性问题,增强了推荐的多样性,提升了推荐效果。
1.一种基于社交网络和协同过滤的电影推荐方法,其特征在于:所述方法的具体步骤如下:
2.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤一中的用户-电影评分矩阵r表示为:
3.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤二中的构建用户-电影二分网络,将每个用户和每部电影分别作为节点,所有的用户节点组成的节点集记为用户集a,所有的电影节点组成的节点集记为电影集b,将用户对电影的评分作为连边,如果用户i对电影α评分,则连接节点i和节点α,以此类推,构建用户-电影二分网络。
4.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤三中的根据数据集中social.index数据构建用户显式社交网络包括:
5.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤四通过对用户-电影二分网络做单模投影,当两个用户节点有至少一个电影节点作为他们的公共邻居时,这两个用户节点之间有一条连边,从而获取用户的隐式社交网络。
6.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤五中,通过用户的显式社交网络计算用户的显式相似度,根据用户的隐式社交网络计算用户的隐式相似度,并获取用户的融合相似度,包括如下内容:
7.根据权利要求1所述的基于社交网络和协同过滤的电影推荐方法,其特征在于,所述步骤六中,给定目标用户,获取与目标用户相似度最高的top-n用户,根据相似用户的评分计算推荐列表,包括如下内容: