APP下载

视频资源推荐系统的设计与实现

2019-06-29张阿敏刘强邓会

企业科技与发展 2019年12期
关键词:个性化推荐协同过滤

张阿敏 刘强 邓会

【摘 要】文章对视频资源推荐系统的设计与实现进行了系统且有效的分析和研究,视频资源推荐系统采用个性化推荐技术,使用协同过滤算法进行推荐,运行于Hadoop大数据计算平台,使用MySQL数据库作为存储,系统所需要的数据集采用Python语言编写脚本,并从网上进行数据采集。经测试,该系统可以让用户能得到自己所需的视频资源,移动端用户也能快速找到自己喜欢的类型视频资源和全网推荐视频资源,具有较好的推荐效果。

【关键词】视频资源推荐;个性化推荐;协同过滤

【中图分类号】TP18;TP311.52【文献标识码】A 【文章编号】1674-0688(2019)12-0048-02

各类互联网新技术的快速发展,极大地方便了人们的学习和生活。如何在互联网的数据海洋中寻找到自己的数据,在大数据时代,其中如何解决数据利用率问题是当前研究的重点和热点。对于广大学习者而言,视频学习效果比较直观,如何快速找到自己学习所需的视频资源是一个难点,基于协同过滤算法的视频资源推荐系统就是为了解决大数据利用率低的问题,帮助人们快速查找到自己所需的各类资源,特别是视频资源,方便人们学习。

1 关键技术分析

(1)个性化推荐。视频资源推荐系统可以从大数据中寻找到用户的兴趣点和行为特点,根据用户的兴趣和行为特点向用户推荐信息,通过建立用户和视频资源之间的行为关系,根据用户的历史记录挖掘用户的潜在欲望从而为用户提供精准推荐服务。系统帮助用户挑选他们想看的视频资源,节省用户寻找资源的时间,提升用户对网站的好感度,还能提高用户和系统的亲密联系。同时,用户能快速找到感兴趣的视频资源,也能减轻网站的工作量。

(2)协同过滤算法。协同过滤算法分為基于用户的协同过滤和基于视频资源的协同过滤。基于用户协同过滤利用历史数据进行分析来寻找用户的邻居,根据评分相似的最近用户的评分数据向目标用户生成推荐。基于项目协同过滤推荐依赖项目间的关联来决定推荐。根据目标用户已经评价过的项目,计算该视频资源与其他视频资源的相似性,选择一系列最相似的视频资源生成推荐。由于视频资源间的相似性,所以对已知视频资源的评分就可以推断出其他项目的评分范围,以已评分项目相似的项目作为推荐。

2 系统总体方案

总体设计架构主要包括4个部分。在数据采集部分,一是分析用户的几种上网观看视频的行为,比如点击、收藏及购买等;二是为不同用户行为设置相应分值,采用脚本程序模拟生成可行的数据集。在数据存储部分,用户行为数据保存在分布式文件系统HDFS中,而视频资源信息和用户信息保存在MySQL数据库中。在数据分析部分,通过为点击、收藏、购买3种不同上网行为,设置不同的分值,采用基于评分矩阵及相似矩阵的协同过滤算法,生成最终的推荐矩阵。在数据展示部分,设计一个简易的网站客户端,将推荐结果展示在客户端的Web页面,并可以应用于多种终端。

(1)平台构建方案设计。根据设计要求,Hadoop大数据计算平台满足设计要求,因此选择HDFS用于海量的数据存储,利用MapReduce作为计算框架,对数据进行预处理及计算最终的推荐矩阵,得出推荐视频资源列表。此外,我们采用MySQL作为存储视频资源信息、用户信息及推荐视频资源列表的数据库,网站使用到的后台数据皆来自MySQL。

(2)采集方案设计。系统出于版权、数据采集速度等方面的考虑,采用的数据集不选择采用爬虫技术从某些视频资源网站上进行不间断抓取获得。为了满足海量大数据的前提,我们采取Python编写脚本程序,针对预先设计的推荐方案,我们分时采集生成了4个数据集,分别统计了用户的点击量、收藏量、购买量及视频资源总评分值。

(3)预处理方案设计。根据设计的视频资源推荐算法,我们从生成的数据集中抽取用户ID、视频资源ID、视频资源点击量、收藏量、购买量等有用的相关信息,根据实现设计好的分值合成最终的数据集。为了推荐效率考虑,我们只取数据集中的新采集的数据用于处理,处理后融于先期处理的数据集,这样在程序调试中可以减少因为处理大规模数据而导致的耗时。

(4)存储方案设计。对于视频资源推荐网站而言,尤其是诸如腾讯视频、爱奇艺这样的大型观影网站,一秒内就可以产生海量的数据,传统的集中式集群根本无法满足这种体量的存储,因此需要一种能够存储海量数据并具有良好性能的存储系统作为支撑。HDFS则是满足这种需求的分布式文件管理系统。系统采用HDFS存储体积庞大的数据集,并将处理完的结果存放在HDFS中,只将最终需要推荐给用户的少量数据存放到MySQL中。这样做不仅可以提升系统的效率,减轻MySQL数据库的负担,同时可以节约Hadoop集群的开支。

(5)挖掘与分析方案设计。系统需要根据实际情况选择合适的推荐算法,通过分析用户不同的上网行为,设计出合适的推荐算法产生符合要求的推荐结果。系统采用Java语言编写MapReduce程序实现所设计的协同过滤推荐算法。对于视频资源推荐系统的推荐算法,完成如下功能:{1}算法适用于海量数据的处理,能分布式并行运算。{2}程序能从HDFS上获取数据进行处理,处理的中间结果和最后结果都应该存放在HDFS上。{3}程序能根据用户的在系统上的行为数据(如浏览、收藏、购买等)快速稳定高效地计算出推荐的结果。{4}程序能对推荐结果进行过滤和排序。

(6)数据可视化方案设计。系统运行于在Linux系统的Tomcat服务器,后台数据处理使用Java语言,数据库使用MySQL。用户可以在该视频资源推荐系统上注册登录、浏览、收藏资源等。网站后台根据登录用户的ID从数据库中获取该用户的推荐清单,根据清单在数据库item表查询获取视频资源信息,将得到的视频资源名、视频资源价格、点击量、收藏量、购买量等信息显示在网页中。网站使用到的数据存放在MySQL中,但是数据分析的结果存储于HDFS上,所以在系统处理完数据之后,程序会将处理结果同时写入两个不同的存储系统中。结果展示使用了最简洁的实现方式,以Web页面展示给用户,简单而高效。

3 数据挖掘与分析方案的实现

(1)基于协同过滤算法构建推荐模型。系统采用协同过滤算法,给用户推荐他们想看的视频资源。根据用户行为列表计算用户、视频资源的评分矩阵,为点击事件设置分值为“1”,收藏设置分值为“3”,购买设置分值为“5”;然后根据用户、视频资源的评分矩阵计算视频资源与视频资源的相似度矩阵;根据相似度矩阵、评分矩阵计算出推荐列表。

第一步,构建用户评分矩阵。用户评分矩阵的第一列是视频资源的ID,第二列是该用户对相应视频资源的评分,生成每个用户的评分矩阵,将中间结果保存在HDFS中。第二步,构建相似度矩阵。相似度矩阵的第一列是视频资源的ID,第二列是该视频资源与所有视频资源相对应的相似度。利用余弦计算相似度。第三步,转置评分矩阵。转置之后的第一列是用户的ID,第二列是该视频资源与之相对应视频资源的分值。第四步,构建推荐矩阵。利用相似度矩阵乘以转置评分矩阵,得到最终的推荐矩阵。推荐矩阵第一列是视频资源ID,第二列是用户ID及对应的推荐度。第五步,去掉推荐列表中用戶已经操作过的视频资源,例如用户A已经购买观看过“云计算入门”,则将该视频从推荐列表中删除。

(2)资源推荐的实现方式。{1}基于全网点击量。结合设计好的协同过滤算法,我们将用户点击量作为评分矩阵中的分值,从而组成评分矩阵,后续生成相似度矩阵、推荐矩阵。通过对全网用户的点击量整合、分析,将其排序,能够得到点击量最高的一些视频资源。{2}基于全网收藏量。结合协同过滤算法,我们将用“户点击量+收藏量”作为评分矩阵的分值,组成评分矩阵,后续生成相似度矩阵、推荐矩阵。通过对全网用户的收藏量高的视频资源进行整合和分析,将其排序,能够得到收藏量最高的一些资源。{3}基于购买量。将用户对某视频资源的浏览量、购买量作为评分矩阵的分值,如果存在收藏行为则加上收藏量,组成评分矩阵,后续生成相似度矩阵、推荐矩阵。通过对全网用户的购买量的收集,能够排序得出购买量最高的一些视频资源,即向用户推荐购买量最高的一些视频资源。{4}基于全网评分。用户的购买行为建立在浏览视频资源的行为上,用户只有购买之后才能观看视频资源,视频资源评分由视频资源的点击量、收藏量、购买量计算得到。{5}基于用户。根据用户行为进行分析,建立在用户浏览、收藏、购买视频资源的行为上,不同用户的行为不同,所根据用户推荐的视频资源自然也不同,找出用户行为相似的个体,即兴趣口味相似的用户,将数据对比分析,推荐相似用户的视频资源,从而实现用户与用户之间的联系,实现基于用户的视频资源推荐。

4 结论

采用协同过滤推荐算法为用户实现个性化推荐各类学习资源,使用MapReduce处理框架使得算法可以在多个计算机节点上并发执行程序,更快速地计算出推荐结果。经测试系统达到了推荐视频资源的目的,为用户提供了便利服务。该系统除了可以用于为学习者推荐学习资源外,还可以用于影视作品、音乐等资源的推荐。

参 考 文 献

[1]贾忠涛.基于协同过滤算法的电影个性化推荐系统设计与实现[J].软件导刊,2015,14(1):86-88.

[2]王均波.协同过滤推荐算法及其改进研究[D].重庆:重庆大学,2010.

[3]傅杰.基于集成学习的个性化推荐系统的研究与实现[D].南昌:江西理工大学,2010.

[4]韩慧俊.电子商务个性化推荐系统的研究[D].上海:上海交通大学,2007.

[5]兰艳,曹芳芳.面向电影推荐的时间加权协同过滤算法的研究[J].计算机科学,2017,44(4):295-301,322.

猜你喜欢

个性化推荐协同过滤
基于远程教育的个性化知识服务研究
图书推荐算法综述
改进的协同过滤推荐算法
基于链式存储结构的协同过滤推荐算法设计与实现
基于相似传播和情景聚类的网络协同过滤推荐算法研究
个性化推荐系统关键算法探讨
基于协同过滤算法的个性化图书推荐系统研究
混合推荐算法在电影推荐中的研究与评述
文本数据挖掘在电子商务网站个性化推荐中的应用