一种基于SpringBoot的影视内容推荐系统的设计与实现
2023-05-30叶长青
叶长青
摘要:互联网大数据时代下,网络中的信息呈爆炸式增长,例如用户日常观看的影视内容每天都在大量更新,这使得用户在选择时出现了一定的困难,影视推荐系统可以帮助用户解决这个问题。该文对影视推荐算法进行了研究,对现今流行的协同过滤推荐算法加以改进,同时利用SpringBoot框架,设计并实现了一种个性化影视推荐系统,对用户感兴趣的影视内容进行分析预测,提供检索、个性化推荐等服务。
关键词: 大数据;影视推荐;SpringBoot
中图分类号:TP311.5 文献标识码:A
文章编号:1009-3044(2023)01-0085-03
1 推荐系统的介绍
互联网中的信息呈爆炸式增长,人们很难从纷繁复杂的信息中获取自己想要的部分,这种现象被称作为信息过载(Information Over-load) 。为了解决这个问题,推荐系统(Recommendation System, RS) 应运而生,它可以根据用户的需求、兴趣、习惯等将海量信息快速地筛选至用户可接受的数量,以便用户迅速准确地找到自己想要的部分。
与以往传统的搜索引擎不同的是,推荐系统是根据用户历史记录,通过一些算法来分析用户的个人兴趣从而得到结果,而不是仅仅通过用户输入的关键字进行搜索。如今个性化推荐系统已经成了网络上的一种标准产品,它不但可以为使用者进行内容搜索,同时也向用户提供内容推荐,这种推荐是基于用户平时的使用习惯。推荐系统已经成了提升用户使用感受和黏度的重要方式,因此无论在学术界还是在工业界,对于它的研究和应用已经越来越深入和普遍。
在影视内容的应用领域,个性化推荐算法已在国内外实践中得到广泛使用。经典的推荐算法包括基于内容的推荐、基于用户或者项目的协同过滤推荐以及混合推荐方法等。
2 协同过滤推荐算法
2.1 推荐算法基本原理介绍
个性化推荐系统利用算法和技术精准地确定目标受众,向使用者提供推荐建议。在生成结果的过程中,充分关注到了使用者的个性需要,使得推荐的效果更加符合使用者的偏好,从而提升了推荐的效果。
推荐系统的核心是推荐算法。Adomavicius等人提出了推荐算法的形式化定义:
2.2 协同过滤算法
协同过滤(Collaborative Filtering, CF) 算法综合考虑当前用户的历史偏好以及其他偏好相近用戶的意见来为当前用户推荐新物品或者预测当前用户对特定物品的偏好。本系统的协同过滤算法采用最近邻推荐,用户的相似程度称为“距离”,距离相近的用户被称为“邻居”,该模型的原理是:具有类似喜好的使用者在未来也极有可能有相似的偏好,通过“邻居”的评价来预测目标用户对该项目的喜爱程度。该方法又可分为基于用户的算法和基于项目的算法,以用户为中心寻找用户之间的相似点或者以项目为中心寻找用户偏好项目的相似点。该方法利用如图1所示的“用户—项目评分矩阵”进行推荐。
基于内存的协同过滤算法的一般步骤可分为如下几步:1) 构建用户-项目评分矩阵;2) 计算用户之间或项目之间的相似度;3) 找出相似用户集合或相似项目群;4) 生成推荐候选集给用户。在上述几个步骤中,相似度计算是整个流程最为核心的步骤。
3 系统设计与实现
3.1 SpringBoot框架与SSM框架
本系统的实现采用了SpringBoot作为基础框架,业务实现则采用了流行的SSM框架。SpringBoot框架是对传统的Spring MVC框架的封装改进,摒弃了传统Spring MVC相对复杂的xml配置,只保留了极简的配置方式,同时它也有很灵活的其他配置方式。SpringBoot已经成了当今流行的微服务框架形式,对于快速开发、部署、上线等都起到了很大的帮助。
SSM框架包含了三个技术:Spring、Spring MVC和MyBatis,是一套完整的Web开发解决方案,其中Spring和Spring MVC已经集成在上面提到的SpringBoot框架中,而MyBatis是一个较流行的持久层框架,利用它可以进行Java对象与数据库对象的相互转化以及SQL语句、存储过程等的灵活表示。
3.2 需求分析
本系统具有的需求功能设计如下:
1) 信息维护。影视资源是本系统的基础数据,是各类分析结果的来源。本功能的主要任务是保存影视资源的基本信息、资源的关联信息、资源的来源以及用户评分反馈的信息。其中最后一个用户反馈信息尤其重要,它包括影视资源的来源网站、观看数量、点赞数量、弹幕数量、评价评分、收藏数量、付费观看数量等,是进行影视资源评分的重要参考。同时该模块功能还负责维护用户本身的信息,包括用户名密码、手机号、关联社交账号等。
2) 用户管理。该模块负责记录用户自己的观看浏览历史、收藏、点赞等信息,这些信息是进行兴趣爱好偏向的最重要的依据之一,同时也方便用户观看自己曾经的浏览内容,快速找到感兴趣的资源以便回看。同时用户管理也针对新老用户设计不同的权限加以管理。
3) 偏好管理。用户可以自己根据兴趣设定想收到的推荐内容,设定系统界面的布局风格,设定自己习惯观看影片的浏览方式,屏蔽自己不感兴趣的影视内容或演员等。用户的这种行为可以更好地为推荐系统提供参考。
4) 影视内容检索和推荐。这是本系统的核心功能,首先在信息维护的基础之上,系统会对影视内容做分类汇总,根据不同的标准来归类各种影视作品,给予多种标签和优先级,便于用户进行影视内容搜索。在此基础之上,再结合用户自己设定的偏好、用户的内容浏览历史、用户屏蔽内容等采用一定的算法推算出用户感兴趣的内容或者演员,积极展示在用户检索的结果中或者用户观看界面的旁边。在用户使用系统的过程中,根据用户的数据对模型进行不断地更新,挖掘预测用户进一步可能的偏好,修正模型过期和不合理的地方,以得到最合理的推荐结果。
3.3 系统体系结构
本系统的系统架构设计如图2所示,可以从用户接口层(前端UI) 、业务逻辑层(业务服务)、推荐算法层和数据持久层几个层次对系统架构进行设计。
系统可以很明显地分为界面层、业务逻辑层、算法层和数据层,这是一种很清晰的设计思路。界面层用来提供用户使用的界面,推荐列表和分类列表放在显眼的位置,方便用户使用。使用成熟的HTML+CSS+JavaScript实现;业务逻辑层提供绝大部分的业务功能,包括数据管理、用户管理等,并成为界面层和数据、算法层的中间接口层;算法层提供核心的影视内容推荐算法,具体算法在后面会提及,这是一个单独的模块,它被设计成可以方便地替换,以便及时地更新算法模型;数据层负责基础数据的存储,包括影视内容、用户信息、用户行为等。
3.4 系统功能设计
系统主要包括三大功能模块:
1) 用户信息模块:主要负责用户信息的管理与维护,分为登录注册模块、信息维护模块和历史管理模块。用户在登录时输入用户名密码,服务端检查是否符合,如不符合给出错误提示。用户在注册时可以简单地通过手机号码来注册,也可以使用其他社交账号关联登录。在登录成功后可以自己查看修改用户信息。同时在用户管理界面上,还可以看到自己的观看历史、影片收藏、感兴趣内容设置等功能。
2) 影视信息模块:主要包括影视片库查询、影视榜单列表、影视个性化推荐等功能。影视查询可以采用模糊关键字查询,在收到关键字后,系统在自己的片库中查询符合条件的影片,并根据算法的预测,给出用户可能感兴趣的影片;影視个性化推荐采用离线和在线的方式,在线方式负责实时更新影视资源,而离线方式则利用算法对影视库的资源进行计算分析,这个操作相对比较耗时。
3) 后台管理模块是为后台管理员设计的,包括基本的电影信息管理、会员信息管理,对评论、评价的审核以及标签分类等。
4 协同过滤算法的改进
基于协同过滤算法的推荐过程可以分为三步:1) 建立用户-电影评分矩阵;2) 计算用户相似度,然后使用该相似度进一步计算,得到用户的最近目标邻居集合;3) 在上一步的基础上,最后对目标用户计算得到预测结果。
针对协同过滤算法存在的一些不足,进行以下改进:
1) 权重的增设,增设权重的方式用于调整皮尔森相关系数,形式为:
2) 加权累计,应对冷启动问题,可以将基于内容等推荐算法纳入考虑,使用加权和的方法,利用电影属性计算两部电影间相似性的方法:
5 小结
本文对影视推荐算法进行了一些研究,对传统的协同过滤算法进行了一些改进,使其具有更好的推荐效果。本文利用当今流行的SpringBoot框架和SSM框架把推荐算法应用到实际场景中去,实现了影视内容的搜索和个性化推荐服务,并能根据用户的行为预测他们可能感兴趣的影视内容。
参考文献:
[1] Resnick P,Varian H R.Recommender systems[J].Communications of the ACM,1997,40(3):56-58.
[2] 侯林坤.电影个性化推荐系统的构建[J].电脑知识与技术,2020,16(27):41-42.
[3] 阳翼,朱筠丽,万依柳.中国新生代电影大片消费偏好调查报告[J].现代传播(中国传媒大学学报),2012,34(1):92-97.
[4] 李晓菊.协同过滤推荐系统中的数据稀疏性及冷启动问题研究[D].上海:华东师范大学,2018.
[5] 孙鑫.详解Spring Boot——从入门到企业级开发实战[M].北京:电子工业出版社, 2021.
【通联编辑:代影】