1. 研究目的与意义
互联网在最近的十年内出现了爆发性的增长,伴随用户数量的迅速增长的背后是用户数据量的指数级增长,面对海量的信息,用户往往会感到束手无策,这就是互联网中所谓的信息过载的问题。如何帮助用户从海量的信息中获取用户最感兴趣的信息逐渐成为一项热门的研究工作。云计算(cloudcomputing)这个概念的直接起源是亚马逊ecc(elasticcomputecloud的缩写)产品和google-ibm分布式计算项目。这两个项目直接使用到了“cloudcomputing”这个概念。之所以采用这样的表述形式,很大程度上是由于这两个项目与网络的关系十分密切,而“云”的形象又常常用来表示互联网。因此,云计算的原始定义即为将计算能力放到互联网上。当然,云计算发展至今,早已超越了原始的概念。如今云计算项目推进比较成功的例子有亚马逊、谷歌、vmware等,推荐系统正是在这样的发展环境下为解决互联网信息过载的问题应运而生。
在视频网站的发展伊始,推荐系统就应运而生。视频网站根据当前的热门视频及用户的个性化数据,为用户提供个性化的视频推荐,从而增加用户的粘度,提高网站的流量,是各大视频网站极为重视的功能之一。对于在线电影提供商,在线影片推荐系统的推荐效率为直接影响公司的经济效益,同时对公司发展产生重要的影响。
个性化的电影推荐系统旨在利用已有的用户的评分和使用数据,通过大数据平台的处理为推荐引擎提供可靠,效率更高的电影推荐。增强视频网站的用户体验,提高网站的访问流量。
2. 研究内容和预期目标
系统采用软件工程的设计思维分模块设计,主要为:自底向上逐步实现底层I/O模块、核心的数据处理推荐算法模块、网页电影浏览模块、离线推荐系统模块。底层I/O模块负责数据的读、写和存储推荐系统使用的相关实体数据。核心数据处理实现最经典KNN协同过滤算法,KNN算法即邻居算法,主要分为基于用户的算法(user-based),基于物品的算法(item-based)。系统使用item-based实现为用户提供效率高的推荐,实现整个系统的核心。网页电影浏览模块负责提供用户影片信息浏览等展示功能,负责提供用户的前端体验。在线推荐引擎模块则是负责连接数据处理模块和前端网页的桥梁,以冷启动的方式定时进行数据分析过程,离线推荐系统则借助分析过后的数据为用户提供相关的电影推荐功能。
本课题通过借助spark大数据处理平台,借助spark的内存操作的优势,研究item-based算法的具体实现及性能提升。预期能在2-3台8G以上内存的普通计算机搭建的集群处理3-5万条数据的数据不超过4-5小时,并能提供多线程实现的推荐引擎为用户提供及时高效的推荐,用户在前端有较好的流畅的浏览体验。整体上系统能稳定运行,并不出现大的bug。
3. 研究的方法与步骤
本次的课题涉及到了本科阶段未接触到的云计算的相关的知识,需要一定的知识储备,因此在准备阶段就课题的可行性和实现的可能方式上做了很多构思,最后拟采用下面的研究方法进行课题:
1.云计算相关的底层i/o了解和集群的搭建
2.简单的mapreduce的代码编程以熟悉spark和相关的开发环境使用。
4. 参考文献
[1]resnick,paulandvarian,hal.recommendersystems[j].introductiontospecialsectionofcommunicationsoftheacm.vol.1997,40(3):56-58.
[2]刘建国,周涛,汪秉宏.个性化推荐系统的研究进展[j].自然科学进展,2009,19(1),1-15.
[3]杨志文,刘波.基于hadoop平台协同过滤推荐算法[j].计算机系统应用,2013,(7):108-112
5. 计划与进度安排
序号 起止日期 任务 工作内容
1、 2022-02-15~2022-02-29 调研 调研,撰写开题报告
2、 2022-03-01~2022-03-10 查阅文献资料 论文综述
