电影推荐系统——需求分析和设计

zmsnMYZ 2021-12-25 11:04:27

1.项目概述

       电影资源是网络资源的重要组成部分,随着网络上的电影资源的数量日渐庞大,设计个性化电影的推荐系统是一个非常实用的命题。本课题旨在设计一个为每一个用户推荐与其兴趣爱好契合度较高的电影。

      推荐系统的目的:让用户更快更好的获取到自己需要的内容;让内容更快更好的推送到喜欢它的用户手中;让网站(平台)更有效的增加用户粘性。

2.需求分析

      本系统主要面相于电影观看用户,在后续的项目维护中,主要可以分为以下两种系统操作角色:用户和系统管理员。

2.1 用户角色分析

     用户,即影视推荐功能的使用者。系统为每个用户提供了基本的注册、登录服务,以及在后续的用户信息修改服务,在日常查阅中还有对各个电影的收藏功能和评分功能,针对自己喜爱的电影还可进行影评,发布用户对不同电影的看法和评价,还可将喜爱的电影以链接的形式分享至具有共同兴趣的用户。除了上述功能之外,还有最为核心的功能,大数据框架通过对已有数据的处理和分析,为用户进行个性化电影的推荐和热门电影的推荐,用户还可对电影进行分类搜索,寻找相应观看的视频。根据上述需求,得到如下的用户用例图:

 

2.2 需求分析-功能需求分析

       对于不同的功能需求模块,我们做出如下详解:

     (1)管理员用户信息管理

       在项目的实际运行中,我们需要再后台对不同用户做出相应的用户信息修改操作,以维护用户的正常使用,或者对于长期未登录的用户进行相应的删减操作来释放用户名占用资源。

     (2)电影资源管理

       对于整个项目的运行而言,电影信息需要不断的更新来满足用户对最新电影查看的需求,这就需要后台管理员对整个云端影视信息数据库有相应的操作功能接口,来完成对电影信息的增加、删除以及电影信息修改等操作。

     (3)数据可视化看板

       网站数据的变化对于网站管理员的下一步发展决策有着至关重要的建议性价值,对于数据库中存储的关系型或者非关系型数据,未经可视化的前提下很难具有宏观观测和细节观测的可能性。为此我们提供了相应的数据变化可视化看板,来观察近期用户增长趋势、电影收藏等数据的变化趋势等,提供了一个很好的信息获取方式。

     (4)注册登录

       为了网站对不同用户进行个性化的推荐,我们需要对不同用户的行为数据进行收集。收集的前提就是不同用户具有不同的表示来唯一标志其存在性。利用账户ID对不同用户进行绑定,有助于后续电影资源的推荐和功能的享用。

     (5)用户信息管理

       不同的用户在实际注册后,都可用于对自身信息修改的功能权限,为此我们需要提供相应的功能接口来。例如用户名、邮箱、出生年月、故乡、偏好、现住地、绑定第三方账号等信息修改。

     (6)收藏评论分享评分

       针对用户喜欢的不同电影,我们提供了影评功能,有助于用户发表对电影的不同认知观点等。对于喜欢的电影,用户可进行收藏和评分,系统中实现的推荐算法会根据用户的行为数据进行相应的分析和计算并进行个性化的推荐服务。

     (7)电影资源搜索

       各个电影平台均会为用户提供电影类别搜索功能,用户可以选择不同的类别标签,系统将根据不同的标签进行数据过滤提取出相应的电影展示到客户端页面,并提供浏览功能和详情页的展示功能。

     (8)影视推荐模块

       该功能模块为影视推荐系统最为核心的功能模块,本模块需要实现基于不同方面的个性电影推荐,为用户提供有效的信息推荐。算法模块的实现为基于模型、协同过滤、内容、统计信息的混合推荐,以增强系统的有效性,后续算法的运行借助于大数据框架,以保证推荐的实时性和有效性。

     (9)热门影视排行

       系统需要实现具有共性的热门影视排行,根据近期用户收藏和评论的数据计算出近期或者历史最为受欢迎的电影,以排行榜的形式来呈现给用户。

2.3 需求分析-非功能性需求分析

     (1)系统流畅稳定性需求

       在项目部署后的运行阶段中,随着用户数量的增加,我们要求系统不出现功能性的错误,在数据加载和用户操作的过程中,尽量做到底层逻辑实现和数据加载方式的最优化,以增强改系统的流畅性和稳定性。

     (2)信息安全性需求

       信息安全新主要分为两个方面。其一便是用户隐私信息的存储安全,我们要求系统实现存储的安全性及传输的安全性,以做到对用户隐私的负责。其二便是影视数据的安全性,系统需要实现在系统忽然宕机后的数据可恢复和用户功能的稳定性,其也可作为系统稳定性的一部分。

     (3)推荐有效性

       在系统具有稳定性、流畅性和数据安全性的前提下,我们要实现项目最初的基本需求,即推荐影视信息的有效性。根据用户的行为数据,利用合适的算法计算分析出用户的影视偏好,并未其做出合理的推荐,是该系统最基本的价值。

2.4 业务数据建模

用户
字段名字段属性说明
IDVarchar用户ID
UsernameVarchar用户名
PasswordVarchar用户密码
Filelist文件类对象数组表示属于对应用户的文件列表

 

电影
字段名字段属性说明
Movie_IDVarchar电影ID
Movie_NameVarchar电影名称
Movie_ScoreInteger电影评分
Movie_CommentString电影评论
Click_numInteger电影点赞数
Collect_numInteger电影收藏数
Comment_numInteger电影评论数

 

2.5 MVC架构

       在本项目中,采用MVC模式,将项目分为三层:模型(Model)、(控制器)Controller、(视图)View。Model层位于后端,对数据进行管理。View层位于前端,与用户直接进行交互。Controller层作用于Model层与View层之间,可控制Model层数据在View层界面上的展示。

 

3.功能概述

电影推荐系统功能概述图

4.采用的开发技术和推荐方法

4.1开发技术

项目协作管理:Git

数据获取与处理:scrapy框架

前端技术:AngularJS、html、css

Web开发技术:Java、SSM

数据库:业务数据库MongoDB、搜索服务器 elasticsearch 、缓存服务器Redis

其他框架:Spark、Kafka、Flume-ng、Azkaban

推荐算法:混合推荐(基于模型、协同过滤、内容、统计的推荐)

 

 

4.2推荐方法

基于内容的推荐:根据电影标签计算电影的相似度,来向用户推荐电影。

基于统计的推荐:根据统计数据例如看过的人数以及评分高低向用于推荐电影

协同过滤的推荐(ALS算法):将用户电影评分数据转换为用户电影评分矩阵,矩阵中每一个值代表某用户对某电影的评分。这个矩阵是一个稀疏矩阵。ALS算法把这个矩阵使用两个小维度的矩阵相乘来进行近似。

 

5.项目展望

       在该项目基本功能实现且达到相应的要求后,可以进一步探索性的为当前推荐系统添加新的功能,使其面向的用户群体更大,增强用户依赖性。例如可以加入视频播放功能,将推荐范围拓展至电视剧、短视频、新闻等信息产品。也可随着数据量的增大和数据种类的增多而更换不同形式的推荐算法,以更好的满足用户的信息偏好需求。

 

 作者:352

...全文
11217 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
viola011111 2022-06-23
  • 打赏
  • 举报
回复

有源码吗,求

qq_44454967 2022-05-25
  • 打赏
  • 举报
回复
作者有代码吗?
Angusrun 2022-05-26
  • 举报
回复
@qq_44454967 我有一个python+neo4j写的推荐系统需要 call v:Angusmd

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧