基于协同过滤算法的个性化影视推荐系统
作者: 王佳斐 范伊红 宋永旗 王帅杰 付炳威
摘要:用户在电影网站观看电影时,大多数电影网站给用户推荐的电影会出现单一化的问题,导致用户在寻找心仪的电影和尝试观看其他电影时较为困难。同时,当新用户在进行注册时,由于缺少新用户的观看信息,从而会产生推荐内容不对口的问题。文章利用协同过滤算法并融合电影类型及用户评分数据,实现了个性化影视推荐系统,该系统能够向新老用户精准推荐影视作品。
关键词:个性化推荐;网络影视;协同过滤;顶级K推荐;混合推荐
中图分类号:TP391.6 文献标识码:A
文章编号:1009-3044(2022)23-0012-02
近年来,随着移动智能设备、通信设备的快速发展和5G技术的迅速普及,在移动设备上看电影、看电视已经成为人们休闲娱乐的最流行方式之一。随着用户对观影过程中信息需求越来越多,影视行业也开始注重从多个角度提供更为全面的服务。其中影视推荐系统作为一种重要手段为观众和影视创作者之间架起了桥梁。但是,影视推荐的结果却面临着严重的单一化问题,如何提高影视推荐的内容多样化,避免内容的单一化,给用户带来更好的体验,是当今所有的影视平台面临的首要问题。
个性化推荐是一种功能,它会通过用户的个性化需求来推荐符合其需求的内容。推荐系统一般有三种分离技术:一是基于内容,即对信息的内容进行建模;二是基于用户,按相似人群的兴趣进行建模;三是混合方法,即集成多种方法达成实际效果。本系统采用基于用户数据的建模方法,主要提取了用户对电影的评分数据及观看历史数据、用户好友喜好的电影数据,并进行筛选,为推荐系统的构建提供了重要数据。
1 个性化影视推荐系统设计
本系统采用分层的架构方法,首先将预先准备好的电影数据存储到MySQL中;应用层包括:精彩推荐、历史记录、添加好友、电影详细、用户操作等;业务层包括:处理请求、数据交互、返回结果、推荐反馈等;算法层包括:协同过滤、基于评分推荐、基于历史记录推荐、基于用户好友推荐;管理层包括:数据监控和数据维护等,如图1所示。
2 协同过滤算法在系统中的设计
2.1 协同过滤算法
协同过滤算法作为一种结构简单的推荐算法被广泛地应用于各类推荐系统中,在1994年作为“信息过滤”被提出研究[1],又在 2002年被 PremMel-ville称为“协同过滤”并进行了进一步研究[2]。其算法核心是通过寻找集合中最近的“邻居”,并通过用户彼此之间的相似度来提供对于相应电影的推荐。目前则采用启发式或基于模型的协同过滤算法[3]。推荐内容精准度是一个推荐框架的重要指标,为了正确地给客户推荐电影。本文提出了一种多个指标混合的方法,该方法通过使用两个分类器来解决推荐内容多样化问题并降低错误率。本文算法流程图如图2所示。
2.1.1 顶级K推荐
经典的推荐系统是根据用户对于某一部电影的评价或者评分和用户的相关属性对推荐的内容中进行排序,这种推荐系统推荐的内容会过于单一化,本文考虑到用户可能喜好的类型不同,所以提出了一种交叉方法依照不同的属性产生的推荐结果进行排序,以提高推荐的准确性。通过这种排序,推荐的电影类型可能会超过用户所期望的类型。
这里,在公式(1)中,客户u对电影i和j的评分分别为Ni和Nj,电影i和j的普遍性(电影热度和观看时长)分别为Mi和Mj。
2.2 基于电影评分的个性化推荐
第一类推荐,基于与推荐相关的用户评分数据,系统设置了电影评分功能和用户行为记录功能,数据库记录所有的用户评分数据。采用五分制打分,推荐之前找到目标用户与其他各个用户有过相同评分的电影。把目标用户与其他用户以及电影构成一个user-score二维矩阵M如表1,利用公式(2)计算目标用户与其他用户的相似度:
其中R(u,i)是第u个用户对第i个电影的评分,R(i)是第i个电影的平均得分。计算目标用户和其他用户之间的相似度,使用此公式,并找出前三个,把前三名评分过的电影中目标用户未评分的电影,作为待推荐商品。最后向目标用户推荐前20名电影,这是推荐电影的主要方式。
2.3 基于历史记录的个性化推荐
第二类推荐,系统根据用户的历史浏览记录来进行推荐电影并通过电影的各种属性进行了不同的推荐。根据电影的发布时间实现了最新电影推荐;根据电影的平均评分数据实现了最热电影推荐;根据电影的类型实现了相似电影推荐。对于新用户,由于缺少其相关的历史数据,所以本文先采集用户的一些基本信息,如喜欢什么类型的电影,并且以最热电影为基础,为其进行初步的类型模型构建,并最终进行推荐。
2.4 基于好友喜好的个性化推荐
第三类推荐,系统通过用户与他的好友的相关联系数据。寻找和目标用户有相同偏好的朋友,然后根据目标用户朋友的偏好为目标用户生成推荐。基本原理就是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源,如图3所示。
上图示意出基于好友间协同过滤推荐机制的基本原理,首先A和C之间互为好友,并且假定用户A喜欢电影A、电影C、用户B喜欢电影B、用户C喜欢影片A、电影C、电影D;当用户A在观看电影时,A会根据用户的反馈对电影进行评分。如果我们想知道用户是否有规律地收看电影的话,就需要了解每个用户在一段时间内观看的电影数量。根据这些用户的历史偏好,我们可以看出用户A和用户C有相似的喜好,用户C也喜欢电影D,所以我们可以推断用户A也可能喜欢电影D。并且A和C之间互为好友,比A与B非好友之间更具有推荐的可能,因此可以将电影D推荐给用户A。
2.5 基于不同推荐方式的顶级K推荐
根据上述三类不同的推荐方式,我们最终将它们进行顶级K推荐,这样可以扩展可能喜好的电影类型并将其在页面上进行推荐,同时也降低了推荐的错误率,提升了用户的体验。
3 推荐性能测试
与传统的电影推荐系统相比,协同过滤算法集成了标签,提高了电影推荐系统网站平台用户的观看体验。优化了对电影的评估策略。本系统在传统协同过滤算法的基础上增加了根据电影属性的推荐,如:最热电影推荐、最新电影推荐与相似电影推荐,使得用户的观影体验得到进一步提高。
本系统采用EuclideanDistanceSimilarity(欧氏距离相似度)算法[4],分别进行了三种不同方式的推荐,并最终进行顶级k推荐,最后经过一系列的测试将参数NNEIGHBORHOOD_NUM(邻居数目)设置为4,能达到较好的推荐效果,准确率与召回率[5]测试如表2所示:
4 结语
在本文中,我们设计了一个依赖于交叉方法的推荐模型,该系统将协同过滤 (Collaborative Filtering, 简称 CF)与用户相关提取属相结合,从而使推荐的电影更加符合用户的需求。精确评估表明,所提出的系统完全绕过了传统的基于用户的CF和基于电影的CF,并减少所推荐的单一化电影的数量。在真实用户的数据集基础上,通过一系列筛选,推荐结果表明,该方法在保持高精度的同时,有效地提高了推荐电影的总体多样性和特征多样性。用户可以在第一时间内寻找所需求的电影。
参考文献:
[1] MASAHIRO MORITA and YOICHI SHINODA.Annual International ACM SIGIR Conference on Research & Develapment in Information Retrieval[C].Berlin Heidelberg: Springer-Verlag,1994:272-281.
[2] PREM MELVILLE and RAYMOD J. MOONER and RAMADASS NAGARAJAN.Eighteenth National Conference on Artificial Intelligence[C].Edmonton Canada: AAAI Press,2002:187-192.
[3] 王兴茂,张兴明,吴毅涛,等.基于启发式聚类模型和类别相似度的协同过滤推荐算法[J].电子学报,2016,44(7):1708-1713.
[4] 宋军英,崔益伟,李欣然,等.基于欧氏动态时间弯曲距离与熵权法的负荷曲线聚类方法[J].电力系统自动化,2020,44(15):87-94.
[5] 朱丹青.基于机器学习的多模型融合的Webshell检测方法设计与实现[D].南京:南京邮电大学,2020.
【通联编辑:梁书】