基于混合推荐的电影推荐系统设计
基于混合推荐的电影推荐系统设计
绪论
随着经济的快速发展,人们的娱乐生活越来越丰富。电影,作为娱乐的重要组成部分,
越来越受到大众的欢迎,特别是受到年轻人的喜爱。但是,如何在海量的电影中找到满足自己喜爱的电影却成为一个难题。电影个性化推荐应运而生,它就是来解决如何在海量信息中寻找关键点,向用户推荐出符合用户要求的电影。
本文,基于内容和协同过滤混合的推荐算法,建立一个个性化的电影推荐系统。电影作
为推荐给用户的一种产品,其对特定的时间依赖性并不强。基于内容的推荐系统可以有效地克服冷启动和数据稀疏性问题,在系统初运行阶段和有新用户进入阶段可以提供较高的准确性。当数据评估到达一定程度后,使用协同过滤推荐系统进行推荐。协同过滤技术,不仅可以提供同类型的优质产品给用户,还可以根据近邻集的不同进行跨类型的推荐。并且随着时间的增加,用户评价数的增多,更多的用户加入到系统中后,会找到更匹配的近邻用户,使得推荐质量得到提升。
系统设计
一、总体构架设计
电影推荐系统采用B/S模式的三层框架设计,分为表示层、业务层和数据层。这样的设计模式达到了分散关注、松散耦合、逻辑复用和标准定义的目的。系统总体框架结构图如图1所示。
二、对象关系及动态模型
a)对象关系
电影管理中的主要对象有:管理员和电影。管理员对电影的操作有:查询、修改、删除、添加等。管理员与电影是一对多的关系。
电影推荐中的对象是电影,系统在这些电影信息的基础上进行推荐,系统和电影的关系是多对多的关系。用户对象可以细分为普通用户和管理员。对象详细关系图如图2所示。
~ 1 ~
基于混合推荐的电影推荐系统设计
表示层 页面浏览器 注册,登陆,浏览,观看,添加,删除,修改等 网络应用客户端 业务层 电影管理业务 电影查阅,电影修改,电影删除,电影添加等 电影推荐系统算法 数据层 实时业务数据 电影信息,用户信息,用户浏览信息等 数据仓库(历史数据) 图1 总体构架设计
管理员 电影管理 电影信息 用户 浏览 普通用户 观看 推荐算法 图2 对象间关系图
b)动态模型
电影推荐模块是系统主要的动态模型。电影推荐系统的状态转化图如3所示。
~ 2 ~
基于混合推荐的电影推荐系统设计
图3 推荐的状态转化图
三、数据库设计
用户信息表有三个属性,用户名、邮箱、密码。用户名是主键,为文本类型,邮箱和密码也是文本类型。用户信息数据字典如下表所示。
表1用户信息数据表
数据项 用户名 邮箱 密码 类型 文本 文本 文本 推荐结束 记录用户兴趣 保存用户浏览信息 推荐 已推荐 (用户得到推荐信息) 推荐处理结果 已完成 (用户根据得到的信息进行浏览或观看) 未推荐 登陆 电影信息表有10个属性,电影序号是主键,为数值型。浏览次数也是数值型。电影名、
~ 3 ~
基于混合推荐的电影推荐系统设计
演员、导演、类型、年代、地区、介绍、图片都是文本类型。电影信息表的数据字典如下表所示。
表2 电影信息数据表
数据项 电影序号 电影名 演员 导演 类型 年代 地区 介绍 浏览次数 图片 类型 数值 文本 文本 文本 文本 文本 文本 文本 数值 文本 用户兴趣信息表具有6个属性,其中序号为主键,是数值型。其他用户名、电影名、类型、年代、类型都是文本类型。用户兴趣表的数据字典如下表所示。
表3 用户兴趣信息数据表
数据项 序号 用户名 电影名 类型 年代 类型 类型 类型 数值 文本 文本 文本 文本 电影显示信息表主要有4个属性,电影名为主键,文本类型。其他导演、演员、图片也是文本类型。电影显示信息表的数据字典如下表所示。
表4 电影显示信息数据表
数据项 类型 ~ 4 ~
基于混合推荐的电影推荐系统设计
电影名 导演 演员 图片 电影推荐系统的E-R图如4所示。
用户名 文本 文本 文本 文本 邮箱 用户 密码 用户名 浏览 电影名 电影名 电影 导演 演员 演员 类型 地区 图4 系统E-R图
四、混合推荐算法设计
协同过滤通过计算用户之间的相似性获得推荐,但是忽略了项目和用户自身的特性,而且还具有冷启动问题。基于内容的推荐虽然能够解决协同过滤中的不足,但是它也有缺陷。基于内容的推荐不可避免地受到信息获取技术的制约,例如自动提取多媒体数据的内容特征具有技术上的难题。
在这种条件下,将这两个结合混合推荐算法成为必要。这两种算法的融合不仅相互弥补各自的不足,而且这种混合推荐系统还具有较高的精度和效率。
本混合电影推荐系统中主要有两种推荐算法。一种是协同过滤算法,另一种是基于内容的推荐算法。这两种算法融合于本推荐系统中,根据不同的条件进行推荐。下面详细介绍两种算法的使用条件。
~ 5 ~