基于用户画像的电影推荐系统的设计与实现
2024-01-05黄奕宸
黄奕宸
基于用户画像的电影推荐系统的设计与实现
黄奕宸
(南京信息工程大学 雷丁学院,江苏 南京 210044)
针对传统推荐算法在电影推荐系统中无法满足用户对电影查找效率的要求,提出一种基于用户画像的电影推荐算法。首先,对基于内容、协作过滤、组合和用户特征的推荐方法进行研究,针对用户兴趣、群体和个性化特征,将不同的电影推荐算法进行融合并提出了一种基于用户画像的电影推荐算法;其次,将基于用户画像的推荐算法应用于影片推荐,设计并实现了基于用户画像的电影推荐系统,完成了影片推荐和后台管理等主要功能模块的开发。应用结果表明,该系统可使用户方便快捷地获取自己感兴趣的电影信息,提升了数据查找的效率。
电影推荐; 用户画像; 层次聚类; 协同过滤
一、引言
随着互联网的飞速发展,数据的爆炸式增长使人类迅速步入到大数据时代,网络是人们获取信息资源的一条重要途径。然而,面对如此海量且复杂的数据,如何快速地找到自己感兴趣或对自己有用的信息会十分困难[1-2]。所以,使用网络去查找自己想要的信息成为了现在大部分人的首选。但是,即使是在网络上查找数据,面对如此庞大的数据量,对于现在人们快节奏的生活方式来说查找速度相对比较慢,因此,提升数据查找效率尤为重要。
在推荐系统中,常用推荐算法有基于内容的推荐算法、基于协同过滤的推荐算法和组合推荐算法[3]。基于内容的推荐算法的基本思想是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。这一推荐策略首先提取推荐对象的内容特征,和用户模型中的用户兴趣偏好匹配,匹配度较高的推荐对象就可作为推荐结果推荐给用户。基于内容的推荐算法可以避免“过度推荐”现象,但是它需要对物品进行特征提取和相似度计算,这些过程需要消耗大量的计算资源和时间。针对此问题,计算推荐项目模型中项目的特征和用户模型中用户的偏好两者之间的相似性是关键,常用的方法有决策树、神经网络和基于向量的表示方法等[4]。
基于协同过滤的推荐算法是比较经典的推荐算法,它在系统拥有用户偏好信息、用户使用或购买历史和用户历史评分数据的情况下,可以挖掘出用户潜在且未知的兴趣爱好,表现出良好的推荐性能。但随着内容的复杂,用户和项目的增加,算法本身就存在一些问题,如冷启动问题[5]和数据稀疏性问题[6]等。针对这些问题,很多学者对传统协同过滤推荐算法进行了研究并改进,例如,Tso等[7]采用基于内容的最近邻居查找技术解决冷启动问题,Zhang等[8]运用BP神经网络缓解数据稀疏性问题。
组合推荐算法的核心思想是通过组合不同推荐策略,达到扬长避短的目的,从而产生更符合用户需求的推荐。理论上讲可以有很多种的推荐组合方法,但目前研究和应用最多的组合推荐是基于内容的推荐和系统过滤推荐的组合[9],主要混合思路包括推荐结果混合和推荐算法混合。如Good等[10]采用投票机制来组合推荐结果,采用一定的标准对两者产生的推荐结果判断,从而选择其中之一,利用预测打分的线性组合进行推荐。Cattuto等[11]采用协同推荐的框架内混合基于内容的推荐来进行社会网络分析。
基于此,本文提出一种新的基于用户画像的推荐算法。首先,对基于内容、协作过滤和组合的推荐方法进行了深入研究,并将不同的电影推荐算法进行融合,将其应用于影片推荐之中;其次,结合热门影片特征探讨了影片推荐策略与方法,完成了基于用户画像的影片推荐和后台管理等主要功能模块的开发。
本文主要创新点在于:
(1)对基于内容、协作过滤、组合和用户特征的推荐方法进行了研究,将不同的电影推荐算法进行融合并提出一种新的基于用户画像的推荐算法;
(2)设计并实现了基于用户画像的电影推荐系统,详细介绍了电影推荐系统的框架,完成了影片推荐和后台管理等主要功能模块的开发。
二、本文推荐算法实现
(一)数据准备
根据使用者的特征,可以按照使用者的偏好及行为记录,向不同的使用者推荐影片。其中,最重要的信息是影片的细节、使用者的个人资料以及使用者的观影记录。影片细节一般包括影片的名字、导演、演员、放映时间、类型、地区以及影片简介。如图1所示。这些信息可以通过Python进行爬虫来获得。在此基础上,可以根据用户的喜好,对其进行分类,并根据其喜好,进行个性化的影片推荐。用户的观影记录是随机寻找几位同学根据自己的习惯去查询电影,通过真实点击得到的数据。用户信息也是根据这几位使用的同学来制作的真实数据。
(二)数据处理
本电影推荐系统主要是处理用户在使用过程中生成的观影记录表中的数据,使用的工具是Python。首先,筛查出目前正在使用该系统的用户观影记录中每一条观影记录所观看的电影的详细信息,并将这些信息存在一个文本文件中作为样本文件1,然后对样本文件进行分词并去掉停用词生成一个样本文件2;其次,生成一个不包含重复电影信息的列表,该列表用来记录后续相关词频。通过对样本文件1的分析,可以利用时域分析方法对关键字进行权重计算。
(三)基于用户画像的电影推荐
1.基于兴趣画像的电影推荐
基于兴趣画像的电影推荐是根据上面的数据处理得到的兴趣标签权重来进行推荐影片,这些兴趣标签权重是根据用户的观影记录以及影片的相关内容而得到,所以与用户的兴趣息息相关。推荐方式是根据该标签的权重乘以要推荐的总影片数10得到该类型影片需要推荐几部,算法如公式(2)所示。
用户画像的标签是推荐电影的主要依据,根据标签来确定所推荐的相关类型的电影,再根据权重得到该类型需要推荐多少部影片,基于兴趣画像的推荐流程图如图2所示。
图2 基于兴趣画像的推荐过程图
2.基于群体画像的电影推荐
相同类型的用户,他们的兴趣是非常相近的。因此,向他们推荐的电影大概率也是他们喜欢看的,或者是他们没看过但是看了之后会很喜欢,这就将他们潜在的电影偏好类型给挖掘出来了。生成兴趣画像的相关聚类系统采用的是层次聚类算法,层次聚类流程图如图3所示。
首先,拿到所有用户的观影记录并将每个用户所观看的电影详细信息(电影类型、导演、主演和地域)保存在初始数据文本中。然后,再将初始数据文本按照用户进行分词并删掉停用词,得到的数据保存在初始标签文本中。接下来,将原始标签文本转换为词条矩阵,并利用TF-IDF算法对每个词进行权重计算而得到权重矩阵。最后,通过使用加权矩阵来计算聚类之间的相似性。余弦值的计算如公式(3)所示。
图3 层次聚类流程图
将上面聚类得到的结果作为协同过滤模型的输入,查询到与当前观影用户在一个用户群中的用户,并将其他用户看过最多的电影但是该用户没有看过的前十部电影推荐给他,如图5所示。
图5 系统实现推荐的过程图
3.基于用户属性画像的电影推荐
选择性别属性作为推荐的条件之一是因为男用户和女用户之间喜欢观看的影片一般会存在较大的差异。选择年龄属性作为推荐的条件之一是因为不同年龄的用户所观看的影片也会有很大的差异,例如年轻一些的用户喜欢看爱情或者动作影片,但是中年用户就喜欢看一些纪录片或者家庭伦理的影片。选择星座属性作为推荐条件之一是因为即使是同一性别同一年龄的人,他们的性格也会有不同,性格的不同也会导致所观看影片的类型有所差异。所以,本文选择利用以上这些属性叠加来对观影用户进行分类,同时也参考了协同过滤的思想来进行推荐,将处在同一个属性画像的用户看过最多的前十部电影推荐出去,这样就实现了基于用户属性画像的电影推荐。
基于用户属性画像的电影推荐描述了相同性别、年龄和星座用户的整体偏好,为用户提供了很好的电影参考。并且此模块的电影推荐与前面使用的电影推荐方式相比,优点是基于用户属性画像的电影推荐方式不存在冷启动问题,即使该用户从来没有产生过任何一条观影记录,也可以根据该用户的属性画像来推荐电影,如图6所示。
图6 基于用户属性画像的电影推荐过程图
三、推荐系统的设计
(一)需求分析
1.系统的功能需求
影片推荐部分利用用户的个人特征和行为数据,结合先进的推荐算法,为用户提供符合其兴趣和喜好的电影推荐。而影片数据管理部分则负责对电影库进行维护和管理,确保电影信息的准确性和完整性。电影推荐模块主要负责用户的登录、检索和修改个人信息的操作,并且为观影用户提供基于星座的推荐、基于用户画像的协同过滤推荐、热门电影推荐、最新影片推荐和基于用户兴趣画像的推荐。资料管理模块提供了查询、插入和修改影片数据的功能,同时也支持将观众的观看记录导入到影片中。管理员可以通过这个模块方便地管理影片库的数据,更新影片信息,并将观众的观看记录与相应的影片进行关联。这样的设计可以帮助管理员有效地管理和维护影片系统,确保数据的准确性和完整性。
2.用户的需求分析
从图7可以看出,此系统的操作对象有两种,分别是用户和管理员。用户在此系统中拥有自己的账号和个人资料,登录后可自行查看、修改,此外用户可以翻阅影片信息,获得系统推荐。另外,管理员也拥有个人账号,登录后即可管理影片的相关工作,也可以管理用户的各种信息。
图7 管理员与观影用户用例图
3.开发技术以及软件环境
对于本系统来说,Python语言非常适配聚类算法,因为Python在处理数据方面非常的便捷和高效,它非常适合对于大数据的处理。J2EE技术能够构成多层级的信息化系统结构体系[13],在企业信息化建设的实际应用中,能够简化系统构建流程,降低信息化建设成本,提高企业经济效益,同时具有良好的可用性、可拓展性、安全性以及稳定性。
本系统使用的是Spring Boot框架[14]。Spring Boot框架通过大量注解实现自动化配置,只需要添加相应的场景依赖,就可以快速构建出一个独立的Spring应用,无需手动添加配置,从而大大减少了开发人员的工作量,提高了开发效率。Spring Boot框架内部已经实现了与Spring以及其他常用第三方数据库的整合连接,并提供了默认最优化的整合配置,使用时基本上不需要额外生成配置代码和XML配置文件,代码结构清晰,易于维护和扩展,同时也提供了丰富的监控和管理工具,方便开发者进行应用的监控和管理。而且,Spring Boot框架提供了丰富的测试支持,可以方便地进行单元测试和集成测试。因此,Spring Boot框架也受到了大多数企业和开发人员的喜爱。
(二)系统的设计
1.系统功能模块的设计
系统功能模块设计如图8所示:
图8 系统功能模块图
2.系统的开发框架的设计
基于用户画像的电影推荐系统采用的是SpringBoot+MyBatis框架进行研究开发,业务处理使用的是SpringBoot,MyBatis用作数据持久层与本数据库进行相关交互[15]。SpringBoot框架分为实体层、服务层、控制层及负责数据库持久化操作的Mapper映射层。实体层存放的是实体类,实体层里面的属性与数据库中的属性保持一致,这样方便了数据的传递与相关操作。
系统的工作流程如下:当前端JSP页面向控制层发送请求时,控制层将调用相应的服务层方法来处理相关的逻辑,服务层进一步调用数据存取层执行数据操作,而数据存取层则利用MyBatis与数据库进行数据交互。这样的架构设计使得系统各层之间的职责清晰,实现了请求处理和数据操作的分离,提高了系统的可维护性和扩展性。
3.数据库的设计
基于用户画像的电影推荐系统采用的是轻量级数据库MySQL,并且数据库的设计满足第三范式,具有良好的稳定性。具体见用户信息表、观影记录表和影片信息表(表1—3)。利用数据库表,系统可以对用户数据、观影记录和电影信息进行有效地管理,满足了系统的正常运作和数据分析的需要。
表1 用户信息表
表2 观影记录表
表3 影片信息表
四、系统主要功能模块及界面实现
(一)电影推荐模块的实现
如果是首次访问该电影推荐系统,将看到一个与图9(a)相对应的全新网页。在首页的中央位置,有三个推荐栏目,分别是今日推荐、大家都在看和最新上映;用户登录界面的设计如图9(b)所示,登录后可进入网站首页;当用户登录成功之后,就会进入主页,这个主页的界面如图9(c)中所示。在这个网页上,有星座推荐、兴趣推荐、合作推荐、观影排名以及最近的电影推荐。搜索栏页面如图9(d)所示,搜索结果页面如图9(e);电影详细页面,如图9(f)所示。这个网页包含了电影的种类、放映时间以及电影的星级等信息。
(a) 初始页面(b) 用户登录界面 (c) 用户登录后的首页(d) 搜索结果图 (e) 查看详细图(f) 电影详细页面
(二)后台管理模块的实现
后台管理模块是供影像系统管理员使用的,资料输入页如图10(a)所示;管理员需要每隔一段时间(一周左右)去点击一下右下角的“更新聚类结果”按钮,用户群体画像就会更新一次;用户管理页面,如图10(b)所示;管理人员可通过用户名称和账号等方式获取用户相关信息,并进行编辑或删除操作,如图10(c)所示;电影管理页如图10(d)所示,在电影资料变更页中,管理员可以变更电影的名称、类型、导演、主演和其他相关的资料,如图10(e)所示。
(a) 数据导入页面(b) 用户管理界面 (c) 编辑用户信息界面(d) 影片管理界面 (e) 修改电影信息页面
五、结论
为了解决传统推荐算法在电影推荐系统中效率低且准确度不高等问题,本文基于不同电影推荐算法,提出一种基于用户画像的推荐算法并应用于电影推荐系统。一方面,通过融合内容、协同过滤、组合技术以及用户画像分析技术,实现用户对影片的个性化和精准化检索;另一方面,通过需求分析,明确系统功能和用户需求,选择适合的开发技术和软件环境,并设计相应的功能模块、开发框架、界面以及数据库,构建基于用户画像的电影推荐系统,能够在用户与管理员两个角色之间实现良好的交互体验,为用户提供了高效、便捷和个性化的电影选择,同时也为电影行业的发展带来新的机遇和方向。
[1] 饶子昀,张毅,刘俊涛,等.应用知识图谱的推荐方法与系统[J].自动化学报,2021,47(9):2061-2077.
[2] 范敏,郭瑞欣,李金海.网络决策形式背景下基于因果力的邻域推荐算法[J].模式识别与人工智能,2022,35(11):977-988.
[3] 吴正洋,汤庸,刘海.个性化学习推荐研究综述[J].计算机科学与探索,2022,16(1):21-40.
[4] 陈晓霞,卢菁.融合多数据源的动态自适应推荐算法[J].计算机工程,2018,44(9):64-69.
[5] Bobadilla J, Ortega F, Hernando A, et al. A collaborative filtering approach to mitigate the new user coldstart problem[J]., 2012, 26: 225-238.
[6] Kim B M, Li Q, Park C S, et al. A new approach for combining content-based and collaborative filters[J]., 2006, 27(1): 79-91.
[7] Tso K, Schmidt-Thieme L. Attribute-aware collaborative filtering[M]//From Data and Information Analysis to Knowledge Engineering. Springer Berlin Heidelberg, 2006: 614-621.
[8] Zhang F, Chang H Y. A collaborative filtering algorithm embedded BP network to ameliorate sparsity issue[C]//Machine Learning and Cybernetics, 2005. Proceedings of 2005 International Conference on. IEEE, 2005, 3: 1839-1844.
[9] Pazzani M. A framework for collaborative,content-based and demgraphic filtering[J]., 1999, 13(5): 393-408.
[10] Good N, Schafer J B, Konstan J A, et al. Combining collaborative filtering with personal agents for better recommendations[C]//Proc Conf Am Assoc Artificial Intelligence, 1999: 439-446.
[11] Cattuto C, Loreto V, Pietronero L. Semiotic dynamics and collaborative tagging[J]., 2007, 104(5): 1461-1464.
[12] 冯建英,王博,吴丹丹,等.用户画像技术与其在农业领域应用研究进展[J].农业机械学报,2021,52(S1):385-395.
[13] 张玉洁,董政,孟祥武.个性化广告推荐系统及其应用研究[J].计算机学报,2021,44(3):531-563.
[14] 于强,林民,李艳玲.基于深度学习的关键词生成研究综述[J].计算机工程与应用,2022,58(14):27-39.
[15] 张智,王韵楚,林振智,等.基于套餐隐式评分与用户画像的电力套餐推荐方法[J].电力系统自动化,2023,47(4):91-101.
Design and Implementation of Movie Recommendation System Based on User Profile
HUANG Yichen
( NUIST Reading Academy, Nanjing University of Information Science and Technology, Nanjing 210044, Jiangsu, China )
Aiming at the traditional recommendation algorithm in the film recommendation system cannot meet the user's requirements for the efficiency of film finding, this paper proposes a film recommendation algorithm based on user profile. Firstly, the recommendation methods based on content, collaborative filtering, combination and user characteristics are studied, and different movie recommendation algorithms are fused and a movie recommendation algorithm based on user profile is proposed according to user interests, groups and personalized characteristics; Secondly, the user-image-based recommendation algorithm is applied to film recommendation, the user-image-based film recommendation system is designed and implemented, and the development of film recommendation and background management modules is completed. The application results show that the system can enable users to obtain the film information they are interested in easily and quickly, thereby improving the efficiency of data search.
movie recommendation, user profile, hierarchical clustering, collaborative filtering
2023-10-11
黄奕宸(1999-),男,苗族,贵州铜仁人,硕士,研究方向:数据决策与分析应用。
TP393/J90-05
A
1673-9639 (2023) 06-0075-09
(责任编辑 郭玲珍)(责任校对 肖 峰)(英文编辑 田兴斌)