基于协同过滤的电影推荐系统的设计与开发

研究目的

随着互联网和信息技术的飞速发展,衍生出了海量的数据,但由于用户基数也非常的庞大,然而由于不同的用户也有着不同的喜好,导致用户从海量的数据当中筛选出自己感兴趣的数据越来越困难,所以推荐系统在缓解信息过载[1]中就有着举足轻重的作用,同时也是让企业在社会竞争中能够取得更多利益的重要武器。在电影推荐领域中,推荐算法对于公司和用户都是十分重要的,电影公司通过自动分析用户的观看历史与用户对电影的评分将适合的电影推荐给用户,目的是留住用户,用户也可有更好的使用体验。然而,早期的电影推荐系统是通过获取用户提供的关键信息,只对用户需求信息进行查询,从查询结果中得到信息较为准确的电影,然后将这些电影推荐给用户,但是以此方法实现的推荐已经不能满足现时代的用户的需求了,用户的评论并不能准确的代表用户的喜好。由此可见,提升电影推荐算法性能的研究具有重要意义。
为了从用户的评论与观影历史数据中进行剖析,从而挖掘出用户喜爱的电影类型,基于协同过滤的推荐算法和基于内容的推荐算法起到非常明显的效果。协同推荐算法通过分析用户之间的相似性和共同喜好来实现个性化推荐,减轻了用户在海量信息中获取所需信息的负担,提高了用户的体验和满意度。同时,对于企业公司而言,协同推荐算法能够帮助他们更好地了解用户需要和行为,提升软件和服务的质量和效益,从而获得更多的收益和市场竞争力。因此,协同推荐算法在当前互联网和移动互联网技术的发展下,具有重要的研究和应用价值。国内的推荐系统近几年也在飞速的发展进步,如抖音等。基于内容的推荐算法的思路就是通过用户或者物品的交互行为,在通过算法得出相似的用户的属性或者物品的属性,再根据这些相似的用户或者物品进行推荐。本电影推荐系统是将自然语言中的搜索引擎与电影推荐相结合,从而实现电影推荐系统,最后使用Java Web搭建推荐系统 Web 端服务。

国内外研究现状

自从视频网站开始兴起,对视频推荐的需求就被提出了。在影视领域中第一个成功使用推荐系统的公司是Netflix。该公司曾在2006年举办了Netflix Prize比赛,该赛事为推荐系统的发展做出了很大的贡献。YouTuBe是美国最大的视频网站,为了缓解信息过载问题,该网站也在个性化推荐领域中进行了深入的研究,实验表明,经过个性化推荐的视频点击率是热门推荐的两倍。除此之外,国内外还有多影视公司将推荐系统应用于视频网站中,国外主流视频推荐网站:
Netflix:Netflix是全球最大的在线视频订阅服务之一,提供了电影、电视剧、纪录片等各种类型的视频内容,拥有丰富的自制内容。
Amazon Prime Video:Amazon Prime Video是亚马逊提供的视频订阅服务,拥有广泛的电影、电视剧等视频内容。该网站采用了一种基于邻域的协同过滤算法,为用户提供个性化的视频推荐服务。推荐算法的好坏决定着推荐系统的效益,下面对推荐算法的研究近况进行先容。

传统电影推荐算法
传统的推荐算法主要包括:基于内容的推荐算法和基于协同过滤的推荐算法和混合推荐。最早被广泛使用的推荐算法是CB算法,它的基本思想是根据用户的行为记录来为用户推荐与其偏好相似的物品[11],CB算法存在推荐准确度不高,且推荐结果多样性差的缺陷,通常应用于文本领域,新闻和书籍的推荐,或者用来克服冷启动的问题。
3.2 基于用户的协同过滤推荐算法
基于用户的协同过滤推荐算法是推荐系统中较为经典和广泛应用的一种算法。其基本思想是根据用户之间的相似度,找到具有相似偏好的用户,然后将这些用户喜欢的商品或服务推荐给目标用户。
具体来说,基于用户的协同过滤算法通过以下几个步骤实现:
计算相似度:首先需要计算用户之间的相似度,常用的相似度度量方法有余弦相似度、皮尔逊相似度[12]、欧几里得距离等。
选择相似用户:根据计算出的用户相似度,选择和目标用户最相似的一些用户。
推荐物品:找到和相似用户购买的且目标用户没有购买过的商品,进行推荐。
实际应用中,需要考虑的问题比较多,例如用户数据的稀疏性、相似度的计算方法、算法的时间复杂度等等。针对这些问题,研究者们提出了很多改进算法,例如基于邻域的协同过滤、基于隐语义模型的协同过滤等等。案例如图3.1所示:
在这里插入图片描述

								图3.1 基于用户的协同过滤案例图

余弦相似度是计算两个向量之间相似度的一种方法,广泛应用于文本相似性比较、信息检索、推荐系统等领域。
对于两个向量A和B,它们的余弦相似度可以表示为:
sim(A,B)=cos(θ)=(A·B)/(||A||*||B||)
其中,A·B表示向量A和向量B的内积,||A||表示向量A的模,||B||表示向量B的模,θ表示向量A和向量B之间的夹角。
余弦相似度的取值范围在-1到1之间,相似度越大,余弦值越接近1,反之亦然。当余弦相似度等于1时,表示两个向量的方向完全相同,可以认为它们是相似的;当余弦相似度等于-1时,表示两个向量的方向完全相反,可以认为它们是不相似的;当余弦相似度等于0时,表示两个向量夹角为90度,可以认为它们是不相关的。
在推荐系统中,可以使用余弦相似度来计算用户之间的相似度,然后根据相似度为用户推荐有可能喜欢的商品。
在这里插入图片描述

								图3.2 计算推荐耗时图

3.2.1 欧式距离计算用户相似度
欧式距离[13]是指在欧几里得空间中,两点之间的距离。在二维平面中,两点之间的欧式距离可以通过勾股定理计算,并被定义为:
d=sqrt((x2-x1)2+(y2-y1)2)
其中,(x1, y1) 和 (x2, y2) 分别表示两个点的坐标。
在有长宽高的三维中,欧式距离的计算式可以类比推广。在机器学习中,欧式距离常被用于衡量不同样本之间的相似度,例如在 K-means 聚类算法和 KNN(K最近邻)分类算法中[14]。
而应用于电影观看评分后:假设有两个用户 A 和 B,同时观看了 n 部电影,我们将每位用户对电影的评分表示为 n 维向量,向量中每个元素表示对应电影的评分。则可以使用欧式距离计算两位用户观看电影的相似度。
设 A 和 B 分别为两个长度为 n 的向量,表示两个用户观看电影的评分情况,假设它们对应的欧式距离为 d,则有:
d=sqrt((a1-b1)2+(a2-b2)2+⋯+(an-bn)^2)
其中,ai 和 bi 分别表示用户 A 和 B 对第 i 部电影的评分。欧式距离越小,表示用户 A 和 B 在观看电影时越相似。我们也可以基于欧式距离计算出用户 A 和 B 观看电影的相似度得分,公式如下:
score=1/(1+d)
其中,score 表示用户 A 和 B相似度得分,d 就是欧式距离。score得分越高,表示两个用户观看电影的相似度越高。
3.3 基于项目的协同过滤推荐算法
基于项目的协同过滤算法是目前使用最为广泛的推荐算法之一[15],大多互联网站的推荐系统都是以该算法为基础构建的。

图3.3 基于项目的协同过滤推荐算法示意图
基于物品的协同推荐算法是推荐系统中常用的算法之一,它是基于用户行为相似的假设,将用户的历史行为看作是对商品的评分,利用商品之间的相似度对用户进行推荐商品。基于物品的协同推荐算法相对于基于用户的协同推荐算法,具有更高的推荐准确度、更好的稳定性和更高的实时性。
基于物品的协同推荐算法主要包括以下几个步骤:
计算物品间的相似度:计算每一对物品之间的相似度,常用的相似度度量方法有余弦相似度、皮尔逊相似度等。
找到用户感兴趣的物品:根据用户历史行为,找到与用户喜欢的物品相似的其他物品。
推荐物品:将与用户喜欢的物品相似的其他物品推荐给用户。
在实际应用中,可能还需要考虑物品的热门度和新颖度等问题。例如,热门的商品可能被推荐给更多的用户,导致推荐结果比较单调;而新颖的商品可能受到更少的用户关注,导致推荐结果缺乏多样性。因此,需要根据不同的实际情况进行调整和优化。
对于基于项目的协同过滤推荐算法,也可以使用余弦相似度计算方法计算,也可以使用皮尔逊相关系数[16]。
对于基于物品的协同也可使用余弦相似度,这里介绍另一种皮尔逊系数:皮尔逊相似度计算两个物品a和b之间相似程度的公式如下:
sim(a,b)=(cov(a,b))/(std(x)*std(y))
其中,cov(a,b)表示向量a和向量b的协方差,std(x)表示向量a的标准差,std(y)表示向量b的标准差。
相较于余弦相似度,皮尔逊相似度更加灵敏,可以更好地反映物品之间的关系,但计算过程相对较复杂,并且只适用于存在差异性的物品。而余弦相似度虽然计算比较简单,但很容易受到热门物品的影响。在实际应用中,需要根据具体情况选择相应的相似度计算公式。如图3.4为item推荐算法运算609名用户推荐结果好说。
3.4 基于内容的推荐算法
基基于内容的推荐算法(Content-Based Recommendations,CB)是推荐系统领域中较早出现的一种算法[17],它的核心思想是根据物品的相关信息、用户的相关信息以及用户的历史行为来构建模型的算法,为用户提供与其历史行为记录物品相似度较高的物品。CB算法还拥有易实现、可解释性强等优点,是最早应用于实践的算法,但是由于其存在特征提取困难且准确性不高的缺陷,如今CB算法主要应用于文本类的推荐系统,如今日头条中的新闻推荐功能就使用了基于内容的推荐算法[18]。

图3.4基于item推荐耗时(ms)
3.6 个性化推荐算法总结
基于物品的协同过滤在用户数远大于物品数,而且物品不能经常变换[19],项目的相似度相对于用户的兴趣来讲比较稳定。由于电影之间的距离可能是根据成千上万的电影的评分计算得出,往往能在一段时间内保持稳定[20]。
基于用户的协同过滤算法实时性比较高,适用于物品变化很快、用户有相对稳定的场景[21]。而相对于此算法的缺点是用户之间的距离可能会影响推荐算法的结果。但存在冷启动问题。如表3-1为两个不同推荐算法比较表。
表3-1 两个不同推荐算法比较表
基于用户协同过滤 基于项目协同过滤
性能 适用于用户较少的场景 适用于项目数远小于用户数的场景
实时性 用户有新行为时不一定造成推荐结果的立即变化 用户有新行为时一定会导致推荐结果的实时变化
冷启动 存在用户冷启动问题 存在项目冷启动问题
适用领域 实时性较强, 用户个性化兴趣不太明显的领域。
例如: 新闻网站 长尾物品丰富, 用户个性化需求强烈的领域。
例如: 电子商务、电影网站

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值