基于用户的协同过滤电影推荐系统的设计与实现

基于用户的协同过滤

电影推荐系统的设计与实现

摘要 电影是人们日常生活和休闲的选择,在视频服务领域,平常使用通用的算法来解决数据稀疏的问题,而本文提出并实现了一个基于用户的协通过滤的电影推荐系统。并且运用三层架构以及MTV的开发模式,使用Mysql数据库,使用了Tomcat,Python web,Html,等技术,主要使用Python程序语言编写。该系统实现了基于用户的协同过滤的电影推荐,并利用python web实现可视化,为用户提供电影评分功能,并且针对不同用户,做出个性化的电影推荐。

关键词 电影推荐 MTV 协同过滤 Web

  1. 引言

1.1系统开发背景

随着现在我们的生活物质条件的提高,人们便想进一步追求更高的精神层面上的需求。最近几年以来,学校内部更加重视学生德智体美劳各个方面的均衡发展,网络上也出现了越来越多五花八门的电影节目,大众在精神层面得到了提升,对精神文化产品尤其是高品质电影产品的需求也日趋提高。借助互联网规模的扩大完善和数字存储技术的提升,电影产业蓬勃发展,电影数量也以几何级数倍增,有以国外IMDB和国内豆瓣为代表的电影评价及推荐网站,也有以国外YouTube和国内腾讯视频、爱奇艺等在线视频、电影观看平台;使得人们选择电影的方式变得更加多元化。一方面,网络中海量电影资源出现了信息过载等现象,这些电影通过本身携带的标签(如表演者、年代、内容等)与其他电影进行区分,但此种分类标准皆不统一而且缺乏开放性;在另一方面,用户被这些海量电影所包围着,传统普遍的检索方式已经无法满足用户的需求,不能从中有效地获取自己所需的电影资源,这类现象使得用户陷入了选择困难的僵局。因此,找到一种适合的信息推送方法,把最符合用户喜爱的电影推送给用户成为了一种极具商业价值的研究动向。信息推送最典型的使用就是在电子商务领域,并且已经取得了良好的发展成绩。电子商务使用互联网建立了大量虚拟的网上商店,随着商品数量的增加以及系统的完善,客户拥有了更多的选择权利和机会,同时也带给了客户许多的问题,即如何挑选出更适合自己的商品,这毫无疑问需要用户提前搜索浏览大量的无用信息。作为信息推送的主要手段,推荐系统便成为了解决信息过载问题的最有效的方法。推荐系统在猜测用户需求的基础上,同时主动向用户推送可能需要的信息,并且通过进一步研究用户的行为,为其推荐更具个性化的需求。

 电影推荐系统作为推荐系统其中一项重要应用也取得了长足的进步。以国内的腾讯视频为例:当用户观看了几个电影之后,其通过收集分析用户最近的观影记录后,每天更新最新的推荐列表,并且观看的电影越多,推荐的电影内容会更加准确,腾讯视频的推荐界面如图 1.1 所示。这些视频软件的推荐板块,不用用户主动搜索关键词,就能产生用户可能感兴趣的电影表单,进而吸引用户点击,提高电影曝光率和点击率。

图1.1腾讯视频推荐页面

1.2系统开发目的和意义

随着推荐技术的发展和扩张,至今,推荐系统已然成为了一个相对独立的研究领域,开发本系统,是为了更深入了解推荐技术,并对于某一项推荐技术做出详细地技术实现,过程中,对个人技术如WEB和python语言能力地提升都有很好的帮助,同时,在详细了解了某项推荐技术之后,今后对于个人进入推荐领域也做出了认知铺垫和技术铺垫。

1.3目前国内外研究现状

如今,许多大型的互联网站点,如 music.163.com、Amazon.com、You Tube、taobao.com、Yahoo!和 IMDb,在这些网站中,推荐系统有着十分重要的地位,并且网友对这些网站的评价都比较高。推荐领域有一项专门的国际会议,即ACM推荐系统会议,它们也会开设专门的商讨会,如今已然已经成为世界推荐技术的研究应用的顶会。国内外也有专项的期刊,如《International Journal of Electornic Commerce》和《IEEE Intelligent Systems》等。现今,在研究型应用中的推荐系统有:

(1) TYPESTRY

研究型协同过滤系统,它能过滤推荐电子新闻和电子邮件等。在用户使用推荐系统时,系统必须被告之和他相似的用户,因此它只适合于受众比较小的用户使用。

(2) ACF

主动协同过滤推荐系统,实现协同过滤通过指针,可以推荐电子文档。它和TYPESTRY 系统同样只适合于受众比较小的用户使用。

(3) Ringo

他属于研究型的推荐系统,通常用来为用户推荐音乐,也只适合小众范围的推荐。

(4) Video Recommender

专门用于推荐电影的协同过滤电影推荐系统。它为用户提供的推荐服务,收集用户评分数据的方式主要是通过接收电子邮件,因此,这种方式有着天然的缺陷和弊病。

(5) FAB

它是支持基于内容的过滤和协同过滤。FAB 结合了上述两种推荐系统的优点,主要用于推荐网络页面。

除了上述提到的研究型推荐系统外,在国内外的各个技术应用领域中也用到了推荐系统,如:为用户推荐商品、书籍、音乐、电影等。国内的推荐系统技术起步较晚,发展也比较缓慢,但推荐系统的身影也渗透到了各大网站应用中,淘宝、网易云音乐、豆瓣电影、豆瓣音乐、腾讯、头条等。

随着互联网的发展和网络视频的不断兴起,电影推荐系统,也在不断地成长。如今,国外针对电影的推荐系统有 Rotten Tomatoes 、Moive Lens等,他们主要针对用户信息检索功能,做出相应的推荐。

Moive Lens 使用评分的机制来收集和决定用户和电影之间的信息关联,具体已经可以实现电影的有关导演、演员、名称等模糊查询,并且根据已知信息关联程度对用户进行相关电影推荐。

Rotten Tomatoes 对于用户的推荐并不友好,他将电影的评分两级化,只分为优级和劣级,在对用户做出推荐时,没有很强的针对性。

国内对于电影的推荐系统也逐渐完善,大型视频信息网站如头条系,百度系等,他们已经拥有专业的推荐系统技术团队,不论是基于内容的推荐系统,还是采用较为新型的协同过滤推荐系统,或者是与机器学习相结合的技术,得到用户和电影之间的相似度。各个算法相比较,互有优缺,但这都为视频服务行业的发展提供有利的条件,促进和推动着行业的发展和相关技术的进步。

  1. 可行性分析

2.1技术可行性

本系统运用了mysql数据库和python的Django框架,在web应用程序开发时,使得开发人员专心于应用程序本身,而不用刻意关注程序与数据库的交互,后端程序和数据库的交互交给了Django框架的中间件,开发人员只需要使用简单的语句就可以完成从数据库的设计,到与数据库的交互,并且使用Html和jinjia编写出动态的前端页面,方便用户的使用和操作,对于大数据的存储和处理也十分到位,本系统使用到的电影、用户和登录的数据库信息可以被Django框架十分有效地管理。因此,技术方面是十分可行的。

2.2经济可行性

由于本系统所完成的功能有所简略,注重于推荐算法本身,并不需要很多人力物力资源从而消耗大量成本,仅仅需要一台电脑,配上开发人员开发应用程序使用的时间,仅仅需要消耗较少的资金和自然资源,因此,在经济方面是可行的。

2.3社会可行性

本系统最终的目的是在于理解和掌握推荐系统中较为简单的协同过滤算法,过程中涉及到的web应用开发是有利于算法结果的展示,没有违背任何社会发展规律,也与道德和政治方面无关,因此在社会层面上市可行的。

2.4操作可行性

随着网络的发展和个人计算机的普及,如今,几乎每个人都已经拥有至少一台移动网络设备,并且,大部分人对于移动网络设备的操作都比较熟悉。因此,在wen应用程序开发时,只需要精简功能选项,让用户可以一目了然,了解系统的功能,那么在操作这一方面,也是可行的。

  1. 需求分析

3.1需求调研

当今是信息爆炸的时代,每天都有无数的新信息涌入互联网,例如网络上的影视资源、音乐资源、书籍资源、商品信息等等,而人们仅仅浏览这些信息就需要消耗大量的精力和时间,如果有一种程序或者算法,可以帮助人们减轻这些无谓的精力消耗,那么这类程序或者算法必将是造福人类的。于是一些优秀的程序员从实际生活中受到启发。在某个人看过某个电影并且留下了评论和评分后,其他人便可以根据这些评论或评分来判断自己是否值得去看某个电影,电影的评论和评分逐渐多起来之后,这些数据就显得更重要了,因为这些数据已经大到可以给某个电影下一个直接的定义:好看或不好看,这就是国内知名网站豆瓣网的主营业务。

而本系统涉及到的算法则是另一些同样优秀的程序员和算法工程师贡献的,虽然比较基础,但是也为以后的推荐算法奠定了基础。基于用户的协同过滤算法,是根据用户的评分来计算每个用户的关联度,在数据量比较大的时候,此算法可靠程度也比较高,可以为用户推荐出与之关联度最高的用户,推荐出该用户所看过的电影。

3.2系统具体功能需求整理

(1)电影信息的获取:

对于电影的信息如:电影名称、演员、用户评分等信息,有用于机器学习的数据集,在网站http:// grouplens.org/datasets/movielens可以下载到,下载成功后是一个表格,使用python写一个脚本将数据存入到数据库中,为系统的开发做准备;

(2)系统的登录功能:

由于本系统使用的是基于用户的协同过滤算法做电影推荐,所以需要一个用户登录的功能,来区分用户,并且给不同的用户推荐各自不同的电影;

(3)电影评分功能:

每个登录的不同用户可以给数据库已有的电影进行评分,评分范围从1-5分,用户评价过的电影越多,推荐的电影会越接近该用户所喜爱观看的类型;

(4)电影评分删除功能:

在进行系统的演示时,为了直观地看到某个电影的评分对于推荐给用户的电影类型的影响,添加了电影评分删除的功能,在删除某个电影评分后,推荐给改用户的电影可能会发生变化;

(5)电影推荐功能:

经过对某些电影进行评分,系统后台会根据基于用户的协同过滤算法,计算出与该用户关联度最高的某个用户,并将此用户观看过的电影按评分从高到低排列推荐给用户,此功能也是本系统的可心功能。

  1. 关键技术

4.1系统开发环境

本系统使用Pycharm集成的开发环境,成功开发了基于B/S的基于用户的协同过滤电影推荐系统,用到的环境和工具如下:

磁盘:100G以上;内存:4G及以上; 

数据库:mysql6.0及以上

开发软件:Pycharm 、sublime3

编程语言:Python2或Python3

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码空间站11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值