基于协同过滤推荐算法的影单管理系统毕业论文
2020-03-12 10:35:19
摘 要
层出不穷的电影网站和电影交流社区在为用户提供海量信息的同时也带来了信息过载的问题。信息过载使用户获取最有价值的电影信息的成本升高,用户需要耗费大量的时间和精力来筛选出最合适的电影,体验感较差。同时,很多用户希望可以有一款软件可以记录并管理自己看过电影。
为了解决信息过载问题和满足用户潜在需要,本论文首先对推荐功能进行研究分析。通过调研发现,目前绝大多数电影平台的推荐功能都采用基于内容的推荐算法来主动推荐,如爱奇艺,优酷等。虽然这种推荐模式可以有效地避免冷启动的问题,但是主动推荐也意味着用户要主动过滤,信息针对性不强,同时电影作为一种多媒体资源,很难提取内容特征,所以推荐误差也很大。而相比于基于内容的推荐算法,协同过滤推荐算法是将与用户具有相似兴趣的同类用户喜欢的物品推荐给用户,这种推荐模式可以通过收集用户的反馈不断矫正用户偏好,推荐的信息更加有针对性。而且基于用户的协同过滤推荐算法是最易于实现,不需要训练的一种算法。因此,选用基于用户的协同推荐过滤算法作为实现电影推荐功能和解决信息过载问题的基础。
考虑到用户希望可以管理影单的潜在需求,系统将推荐算法与影单管理有机结合,对电影爱好者观影交流的现状详细梳理,针对其中的存在问题提出项目目标并进行详细的需求分析,设计了用户进行影单管理和获取推荐的新业务流程,确定了用户在影单管理中的评分机制,并将评分数据归一化后作为推荐算法的输入数据。然后明确系统要具备的功能,主要包括用户注册登陆,好友管理,影单管理,评论管理,推荐电影等。
最后,做编码设计和数据库设计并编写程序代码。系统采用B/S的系统结构,前端使用Bootstrap框架,界面简洁美观,后端采用node Express MySQL框架模式,nodeJs是一门适用于高并发,非阻塞,I/O密集的后端开发语言,MySQL是中小型关系数据库,符合开发条件和需求。算法方面考虑到技术可行性以及系统需要,精简算法矩阵,以用户评分为主要因素加以应用。
经过不断调试和测试,系统成功地实现了所有预期功能,有效地解决了信息过载问题,满足了广大互联网电影用户的潜在需求。
关键词:协同过滤推荐算法;推荐算法;Express;NodeJs;个性化推荐;电影推荐;影单管理;
Abstract
The endless stream of movie websites and film exchanges have also provided users with massive information while also causing information overload. Information overload increases the cost for the user to obtain the most valuable movie information, and the user needs to spend a lot of time and energy to screen out the most suitable movie, which has a poor sense of experience. At the same time, many users want to have a piece of software that can record and manage the movies they have watched.
In order to solve the problem of information overload and meet the potential needs of users, this paper first analyzes the recommended functions. Through investigation, it has been found that most of the recommended functions of the movie platform adopt the content-based recommendation algorithm to actively recommend, such as iQIYI, Youku, etc. Although this recommendation model can effectively avoid the problem of cold start, active recommendation also means that the user should actively filter and the information is not targeted. At the same time, the movie as a multimedia resource is difficult to extract the content features, so the recommendation error is also very Big. Compared with the content-based recommendation algorithm, the collaborative filtering recommendation algorithm is to recommend the user-like items with similar interests of the user to the user. This recommendation mode can continuously correct user preferences by collecting user feedback, and the recommended information is further improved. Targeted. And the user-based collaborative filtering recommendation algorithm is the easiest to implement and does not require training. Therefore, the user-based collaborative recommendation filtering algorithm is chosen as the basis for implementing the movie recommendation function and solving the problem of information overload.
Considering that users hope to manage the potential demand of photocopies, the system organically combines recommendation algorithms with photocolumn management, carefully combing the current situation of moviegoers' viewing exchanges, and proposing project goals and detailed requirements analysis for the problems existing therein. , Designed the user to manage the photo album and obtain the recommended new business process, determined the user's scoring mechanism in the photo album management, and normalized the score data as the input data of the recommendation algorithm. Then define the functions that the system must have, including user registration, friend management, photo album management, comment management, and recommended movies.
Finally, do code design and database design and write program code. The system adopts the B/S system structure. The front end uses the Bootstrap framework. The interface is simple and beautiful. The back end adopts the node Express MySQL framework model. nodeJs is a back-end development language suitable for high concurrency, non-blocking, and I/O intensive. MySQL is a small and medium-sized relational database that meets development conditions and requirements. The algorithm considers the technical feasibility and the system needs, simplifies the algorithm matrix, and uses the user rating as the main factor.
After continuous debugging and testing, the system successfully implemented all expected functions, effectively solved the information overload problem, and met the potential needs of the majority of Internet movie users.
Keywords: collaborative filtering recommendation algorithm; recommendation algorithm; Express; NodeJs; personalized recommendation; movie recommendation;
目录
摘要 1
Abstract 2
1 绪论 1
1.1 开发背景及意义 1
1.2 国内外研究现状 2
1.2.1国外研究现状 2
1.2.2国内研究现状 3
1.3研究内容 3
2 系统分析 5
2.1 系统需求分析 5
2.2 业务流程分析 6
2.3 数据流程分析 9
2.4 数据字典 9
2.4.1数据项 9
2.4.2处理逻辑 12
2.5 技术可行性分析 13
3 系统设计 14
3.1 功能结构设计 14
3.2 编码设计 15
3.3 算法设计 15
3.4 数据库设计 17
3.4.1数据库概念设计 17
3.4.2数据库表结构 18
3.5 程序模块设计 20
3.6 输入输出设计 22
3.6.1输入设计 22
3.6.2输出设计 22
4 关键代码 23
5 系统实施 29
5.1系统开发环境 29
5.2模拟运行数据 29
5.1.1个人信息功能模块 29
5.1.2好友管理功能模块 31
5.1.3影单管理功能模块 32
5.1.4评论管理功能模块 34
5.1.5推荐管理功能模块 34
5.3系统调试和测试 34
6 结论 35
致谢 37
参考文献 38
1 绪论
开发背景及意义
电影作为一项具有文化价值的精神娱乐,颇受大众喜爱。计算机技术和网络技术的飞速更新使得电影资源网站和电影交流社区层出不穷,电影爱好者从互联网获取电影资源更加方便和快捷。但是,这种快捷是基于海量电影信息的,它们在提供快捷的同时也为用户带来了信息过载的问题。信息过载意味着用户需要耗费大量的时间和精力从海量电影信息中筛选出最适合自己的电影,使得用户获取最有价值的电影信息的成本升高,体验感较差。因此,开发一款可以为用户进行个性化电影推荐的系统是很有必要的。
目前互联网上的电影平台主要有以下几类:
(1)不具有推荐功能的电影资源聚合网站,如电影天堂等。这一类网站实现了电影资源的聚合,用户可以在上面获取到最新的电影资源和几乎所有上映过的电影。它们在获取最新电影和定向搜索电影方面具有很大的优势,但它们在信息过载问题上没有提供解决方案。
(2)具有推荐功能的电影社区,如豆瓣电影等。它们通过分类条件(时间、类型、地区、评分)等对电影进行了区分,并且具有影单分享的推荐模式。影评交流和评分机制也帮助用户更好地筛选电影,缓解了信息过载问题。但是,用户在筛选过程中仍然不可避免地遇到信息的重复和遗漏,比如用户浏览一个热度很高的影单,却发现影单中80%的电影都是已经观看的,且剩下20%不是自己感兴趣的类型,这样就导致了时间和精力的浪费。
(3)基于内容推荐算法或混合推荐算法的视频网站,如爱奇艺,优酷等。它们会在用户观看某部电影时主动推荐有关联性的电影,这种推荐可以有效地解决冷启动的问题,但是电影作为多媒体资源,很难提取出它的内容,所以推荐误差较大。而且主动的推荐意味着主动的过滤,仍然无法解决信息过载问题。
相比于以上的推荐方式和基于内容的推荐算法,协同过滤推荐算法是将与用户具有相似兴趣的同类用户喜欢的物品推荐给用户,这种推荐模式可以通过收集用户的反馈不断矫正用户偏好,推荐的信息更加有针对性。而且基于用户的协同过滤推荐算法是简单,不需要训练的一种算法,因此本论文选用该算法作为实现推荐功能的基础。
此外,很多用户希望可以有一款软件能够记录并管理自己看过的电影,并且豆瓣等电影交流网站的影评呈现为金字塔模式,好的影评被大多数人看到,而新的观点无法被看到,甚至部分影评充当了软营销的工具。于是,考虑到用户的潜在需求,结合豆瓣电影通过影单分享的推荐机制,本论文决定采用基于用户的协同过滤推荐算法,以影单管理和用户评分为算法输入,以好友管理和电影讨论功能为补充,开发一款可以为用户进行精准电影推荐,并满足影单管理等潜在需求的系统——基于协同过滤算法的影单管理系统。
实现基于协同过滤推荐算法的影单管理系统,具有如下意义:
1)解决信息过载的问题,电影爱好者可以花费更少的时间和精力来获取匹配度更高的资源。
2)为电影爱好者提供一个可以管理自己影单的软件,满足潜在需求。用户可以记录自己看过的所有电影,并随时通过分类条件进行翻阅和浏览。
3)以影单管理和推荐功能为基础吸引用户,不断完善推荐机制,增大用户粘度。同时进一步拓展系统功能,通过好友系统,影友圈等功能逐渐推行一种电影社交的生活交流方式(部分功能处于展望阶段)。然后通过大量的用户和观影数据,在解决当前问题的基础上进一步挖掘用户需求,从而一步步地创造商业价值和社会价值。
1.2 国内外研究现状
目前国内外没有关于影单管理系统的研究,本系统属于初次尝试。而在个性化电影推荐和协同过滤推荐算法方面,国内外已经有了很多的研究。
1.2.1国外研究现状
推荐系统的概念是在20世纪90年代中期提出的,最早出现在1995年美国人工只智能协会上,斯坦福大学的Marko Balabanovic等人推出了个性化推荐系统LIRA,它和同时提出的个性化导航系统Web Watecher以及个性化导航智能体Letizia是三大经典推荐系统,它们标志了个性化推荐服务的开始。此后,个性化推荐系统进入了快速发展阶段。
2000年,著名的论文检索引擎 Cite Seer 增加了个性化推荐功能。2001 年,纽约大学的 Alexander Tuzhilin 和Gediminas Adoavicius 通过对用户兴趣建模分析实现了服务于个性化电子商务网站建模系统。 2001 年,IBM 公司为了便于商家建立个性化电子商务网站在其电子商务平台 Websphere 中增加了个性化功能。 2003 年,Google 通过用户搜索的关键词来提供相关的广告,开创了 Ad Words的新盈利模式,成为 Google 广告收入的主要来源。而后 Google 又为 Ad Words添加了个性化服务元素。摒弃了以往只关注单次搜索的关键词的方法,通过对用户近期的搜索历史记录进行分析,建立用户的喜好和需求模型,使得推荐的广告内容更加精准。
个性化推荐技术在电影领域的应用也层出不穷:其中最著名的电影推荐系统网站是由美国的Minnesota大学Grounplens研究小组开发的基于协同过滤的电影推荐系统—Movie Lens Recommender[1]。用户可以对观赏过的电影进行评分,系统要求新加入的使用者必须至少对15部以上的电影进行评分操作,才能通过其评分电影比对出相似的使用者群,并产生合适的电影清单[2]。此外,Poly Lens也是一个使用协同过滤机制的电影推荐系统,其实质仍为Movie Lens 的延伸,它主要目标是提供群体使用者一个合适的电影推荐清单,其方法是先从群体中使用者评分过的电影预测群体对电影的喜好度,进而推荐群体使用者中未评分过的电影。More也是一个电影推荐网站,它是整合协同过滤式与内容导向式的推荐方法。协同过滤式的方法是使用Movie Lens中使用者对电影评分的协同过滤矩阵,以找出相似度高地使用者群;其内容导向式的方法是汇集线上电影资料库的电影资料如导演、演员以及电影类型等资料结合使用者所评分的电影,预测使用者对电影的喜好程度进而进行推荐。
1.2.2国内研究现状
国内对于推荐系统的研究从2000年开始,起步相对于国外来说较晚。但是随着中国电子商务的蓬勃发展,推荐系统的巨大市场价值使其获得了很好的发展环境,如淘宝、京东、豆瓣等纷纷开始提供个性化服务。2009 年7月,国内首个推荐系统科研百分点信息科技有限公司成立专注于推荐引擎技术与解决方案,通过与国内外知名的商务网站与资讯类网站合作,每天为数以千万计的消费者提供实时智能的商品推荐服务[3]。 国内搜索巨头百度也将推荐引擎与云计算、搜索引擎并列为未来互联网重要战略规划以及发展方向。在个性化的百度新首页中,用户可以看到百度为其推荐的网站和用户可能感兴趣的 App 应用[4]。
在电影领域,爱奇艺、优酷等视频网站纷纷推出了用户和视频内容两者相结合的推荐服务,他们是基于用户登录后的观看记录或搜索历史进行一些基于相似用户的个人选择的推荐策略[5]。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: