基于hadoop大数据框架的个性化推荐系统研究与实现

电子科技大学

UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 硕士学位论文

MASTER THESIS

论文题目基于hadoop大数据框架的个性化推荐系统

研究与实现

学科专业软件工程

学号 201321220114

作者姓名邓玉林

指导教师陆鑫

分类号密级

UDC注1

学位论文

基于hadoop大数据框架的个性化推荐系统研究与实现

(题名和副题名)

邓玉林

(作者姓名)

指导教师陆鑫副教授

电子科技大学成都

(姓名、职称、单位名称)

申请学位级别硕士学科专业软件工程

提交论文日期2016.3.18 论文答辩日期2016.4.21

学位授予单位和日期电子科技大学2016年6月

答辩委员会主席

评阅人

注1:注明《国际十进分类法UDC》的类号。

Research and Implementation of Personalized Recommendation System Based on Hadoop Big Data

Frame

A Master Thesis Submitted to

University of Electronic Science and Technology of China

Major: Software Engineering

Author: Deng Yulin

Supervisor: Lu Xin

School: School of Information and

Software Engineering

独创性声明

本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。

作者签名:日期:年月日

论文使用授权

本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。

(保密的学位论文在解密后应遵守此规定)

作者签名:导师签名:

日期:年月日

摘要

摘要

信息过载问题在当今世界越来越突出,目前有三种比较成熟的处理方法,即网站导航、搜索引擎以及推荐系统。网站导航通过收录著名网站并分门别类的方式解决信息过载问题。而搜索引擎通过为海量网页建立索引的方式解决信息过载问题。但是当用户不能明确表述自己的需求时,前两者就略显无力了,而推荐系统就可以解决此类问题。推荐系统通过分析用户历史行为记录,主动为用户推荐其潜在感兴趣的内容。但是随着互联网的高速发展,信息量也呈几何倍数增加,传统的推荐系统在海量数据下容易遭遇计算瓶颈。此外传统推荐系统未充分考虑用户兴趣多变且呈现一定的离散性的问题。

针对以上问题,本文参考以往推荐系统设计方案,以搜索引擎下图书的个性化推荐系统为目标,研究并实现一种基于潜在语义分析和分片聚类的混合推荐系统方案。并使用hadoop大数据处理框架解决推荐系统海量数据处理问题。本文首先研究搜索引擎下用户行为数据采集方法。分析搜索引擎下用户行为类型及其特性,针对各数据类型及其特性使用不同的数据采集方式以及标准化方法,从而完成用户行为数据采集工作。其次,针对搜索引擎下用户行为独特性和用户兴趣多变问题,提出潜在语义分析模型和分片聚类模型分别挖掘用户行为大数据下的长久兴趣和即时兴趣。其中,潜在语义分析推荐模型以内容进行推荐,可以缓解用户和图书冷启动问题,并提升系统推荐的覆盖率。而基于分片聚类的协同过滤推荐模型中的将用户行为按属性和内容分片,可以抽取出用户不同时期的兴趣,从而进一步提升推荐性能,且推荐结果具有一定的新颖性。此外,针对分片聚类过程中搜索引擎下用户相似度计算问题,提出一种基于用户检索词的改进混合类型数据相似度计算方法。最后,基于Hadoop大数据处理框架研究用户行为预处理以及推荐算法的并行化方法,完成搜索引擎下图书的个性化推荐系统的设计与实现。

通过引入Hadoop大数据处理平台,设计并行化的推荐算法,系统处理海量数据的能力有很大提升。通过基于潜在语义分析的推荐模型和分片聚类的推荐模型协同作用,搜索引擎下图书的个性化推荐精准度和覆盖率也有一定改善。最后,通过系统测试以及算法实验证明其正确性。

关键词:推荐系统,Hadoop平台,大数据分析,潜在语义分析,个性化推荐

ABSTRACT

The information overload problem in today's world is more and more prominent, there are threemature methods to treat this problem, namely site navigation, search engine and recommendation system. The way of site navigation to solve the problem isgathers famous sites and classifies them. The search engine builds an index by massive web pages and searchs the indexto solve the problem. But when the user cannot clearly express their needs, the former two is a bit weak, while the recommended system can solve these problems. The recommendation system can analyze the user's historical behavior records, so as to actively recommend the content of the potential interest to the user. But with the rapid development of Internet, the amount of information is increasing exponentially, the traditional recommender systems will be encounter the bottleneck in the calculation of mass data.In addition, the traditional recommendation system does not consider the problem of the user's interest is easy to change.

To solve the above issues, in this thesis, we refer to the previous recommendation system design. Research and implement a hybrid recommendation system based on latent semantic analysis and shard-clustering. So as to achieve the goalthat is the personalized recommendation system of books in the environment of search https://www.360docs.net/doc/856669760.html,ing Hadoopplatform solve the problem of massive data processing. This thesis firstly studies the method of search engine user behavior data acquisition. To analyze the types and characteristics of users' behavior under the search engine, and use different data collection methods and standardized methods to process these data, so as to complete the work of user behavior data collection. Secondly, In view of the uniqueness of user behavior and user’s interest changeab le problem in the search engine, proposed the latent semantic analysis model and shard clustering model to mining user's long-term interests and immediate interests,Latent semantic analysis model is based on content to create recommendation,so it can alleviate the problem of user and book cold start, and enhance the recommendation system coverage. And the collaborative filtering recommendation model based on shard-clustering cuts the user behavior to fragment by the attributes and content, so as to extract the user interests in different periods. So it can improve the performance of the recommendation, and make the results of recommendation more novelty.In addition, according to the problem of computing the

similarity of users in the process of shard-clustering, this thesis proposes a new method of computing the similarity of the mixed type data based on the user's search term. Finally, Based on the Hadoop big data processing framework, the parallel method of user's behavior pretreatment and recommendation algorithm is studied, and design and implementation of personalized recommendation system for books under the search engine.

Through use the Hadoop big data processing platform, design of the parallel recommendation algorithm, the ability of the system to deal with massive data has a great improvement. Through the synergy of latent semantic analysis model and shard clustering model, the accuracy and coverage rate of the personalized recommendation system is improved.At last, the correctness of the algorithm is proved by the test of the system and the algorithm.

Keywords:Recommendation system, Hadoopplatform, Big data, Latent semantic analysis, Personalized recommendation

目录

第一章绪论 (1)

1.1 研究工作的背景与意义 (1)

1.2 推荐系统的国内外研究现状 (2)

1.3 本文的主要工作 (4)

1.4 本论文的结构安排 (5)

第二章相关技术基础 (6)

2.1 大数据分析技术 (6)

2.1.1 大数据的特性 (6)

2.1.2 大数据分析方法 (7)

2.2 HADOOP云计算平台 (7)

2.2.1 HADOOP分布式文件系统 (7)

2.2.2 MAPREDUCE编程模型 (8)

2.3 全文检索技术 (11)

2.3.1 TF-IDF和PAGERANK算法 (12)

2.3.2 潜在语义检索(LDI) (12)

2.4 推荐系统相关技术 (13)

2.4.1 协同过滤推荐算法 (14)

2.4.2 基于内容的推荐算法 (17)

2.4.3 混合推荐算法 (17)

2.5 本章小结 (17)

第三章基于HADOOP大数据框架的个性化推荐方法研究 (18)

3.1 用户数据采集研究 (18)

3.1.1 搜索引擎下用户行为数据类型及其特殊性 (18)

3.1.2 用户行为数据及图书数据采集方法 (20)

3.1.3 用户行为数据及图书数据标准化方法 (21)

3.2 大数据下用户行为特性分析及个性化推荐模型 (22)

3.2.1 用户行为数据特性研究 (22)

3.2.2 用户行为兴趣分析及个性化推荐模型 (24)

3.3 用户行为分析方法 (25)

3.3.1 基于潜在语义分析的用户分析模型 (25)

3.3.2 基于分片聚类的用户兴趣分析模型 (29)

3.4 大数据并行个性化推荐算法 (30)

3.4.1 数据预处理的并行化 (31)

3.4.2 基于潜在语义分析的并行推荐算法 (33)

3.4.3 基于聚类的协同过滤并行推荐算法 (34)

3.4.4 推荐系统冷启动问题 (36)

3.5 本章小结 (36)

第四章系统需求分析 (37)

4.1 搜索引擎下的推荐系统概述 (37)

4.2 搜索引擎下的推荐系统功能需求 (38)

4.2.1 用户行为数据采集功能 (38)

4.2.2 用户行为数据预处理功能 (38)

4.2.3 用户兴趣分析功能 (39)

4.2.4 图书推荐功能 (40)

4.2.5 推荐展示功能 (41)

4.2.6 用户推荐反馈功能 (41)

4.3 搜索引擎下的推荐系统非功能需求 (42)

4.4 本章小结 (42)

第五章推荐系统的设计 (43)

5.1 系统组成架构 (43)

5.2 系统层次架构设计 (44)

5.3 推荐系统功能设计 (45)

5.3.1 系统总体功能设计 (45)

5.3.2 个性化推荐功能详细设计 (46)

5.4 推荐系统数据库设计 (51)

5.5 本章小结 (53)

第六章推荐系统的实现 (54)

6.1 系统开发环境 (54)

6.2 系统运行环境 (54)

6.3 系统功能实现及核心代码展示 (55)

6.3.1 数据预处理功能实现 (55)

6.3.2 用户兴趣分析功能实现 (58)

6.3.3 图书推荐功能实现 (59)

6.3.4 图书推荐功能展示 (65)

6.4 本章小结 (66)

第七章推荐系统的测试 (67)

7.1 测试环境 (67)

7.2 系统功能测试 (67)

7.3 系统性能测试 (68)

7.4 算法实验分析 (70)

7.4.1 数据集 (70)

7.4.2 算法评价指标 (70)

7.4.3 实验结果分析 (71)

7.5 本章小结 (73)

第八章全文总结与展望 (74)

8.1 全文总结 (74)

8.2 后续工作展望 (75)

致谢 (76)

参考文献 (77)

攻读硕士学位期间取得的成果 (80)

第一章绪论

第一章绪论

本章首先介绍推荐系统研究的背景,探究搜索引擎下推荐系统的价值和意义。然后分析国内外推荐系统的研究现状,同时阐述本论文的主要研究内容,给出论文主要贡献和创新点,最后结合文章内容安排本论文结构。

1.1 研究工作的背景与意义

随着信息时代互联网的普及,信息过载问题在当今世界也越来越突出。目前有三种比较成熟的处理方法,即网站导航、搜索引擎以及推荐系统。网站导航通过收录著名网站并分门别类,这样用户就可以通过类别查找感兴趣的网站,有名的网站导航网站有雅虎、Hao123等。搜索引擎通过爬虫将整个互联网网页数据爬取下来,并为这些数据以词为单位建立索引,用户输入关键词就能检索到感兴趣的网站,最著名的搜索引擎公司国外有google国内有百度。但是当用户不能明确表述自己的需求时,网站导航与搜索引擎就略显无力了,推荐系统应运而生。

推荐系统从最初的使用到现在,已经发展的比较成熟了。业界为提高推荐系统质量,积极举办各类与推荐系统相关的比赛。比较著名的有Netflix的推荐系统大赛以及阿里巴巴的大数据竞赛,而这些企业都获得了很大的成功。Netflix公司曾做过统计发现,通过推荐系统找到自己感兴趣的电影和视频的用户占比达百分之六十。而亚马逊通过推荐系统至少提升了35%的销售额。图1-1为亚马逊购买书籍后的推荐效果。而今,推荐系统的应用更加广泛了,电子商务领域基本上全部使用推荐系统帮助其提高销量;内容制作与分发领域有Hulu、Youtube、爱奇艺、腾讯视频等大部分电影和视频网站的推荐系统为用户快速找到其感兴趣的内容。还在个性化音乐平台、社交网络平台、个性化阅读、O2O服务、搜索引擎、个性化广告领域有广泛的应用。由此可见推荐系统已经从方方面面帮助人们快速找到所求。

但是随着互联网的高速发展,信息也呈几何倍数增加。传统的推荐系统在海量数据下容易遭遇存储和计算瓶颈,例如目前淘宝用户数与图书数已经达到10亿级,要在10亿乘10亿的矩阵上做推荐是不可能在单机环境下完成的。而hadoop 提供可靠的分布式数据存储(HDFS),为海量数据存储提供了快速存取方案;提供的MapReduce数据处理模型,通过map和reduce将一个大任务分解为子任务并行化处理,从而高效的处理大规模数据集。

综上所述,推荐系统是应对信息时代信息过载问题的核心技术之一,具有重

电子科技大学硕士学位论文

要的研究价值和实际应用价值。在大数据领域中,人们常说:―大数据胜于好算法‖。由此可见用户数据的重要性,特别是大数据时代的到来,用户数量、物品数量、信息量的增加,推荐系统也不得不面对海量数据处理等问题。所以研究并解决海量数据下推荐系统所遇到的问题具有非常深远的现实意义。

图1-1 亚马逊推荐系统展示

1.2 推荐系统的国内外研究现状

自1990年以来,推荐系统技术蓬勃发展,业界提出了各种各样的实用的推荐系统方案。目前常用的推荐系统技术包括:协同过滤算法[1],基于内容的推荐算法[2],基于知识的推荐算法[3]以及混合推荐算法[4]。每种方法都有其局限性与优势。例如对于协同过滤算法存在冷启动、数据稀疏性以及扩展性问题[5],对于基于内容的推荐算法存在过于专业化,工作量大等问题[5]。为了解决此类问题,人们提出了许多先进的推荐方法。例如社交网络推荐算法[6]、基于潜在语义模型的推荐算法[7]、

第一章绪论

模糊推荐算法[8]、上下文感知的推荐算法[9]以及随机森林推荐算法[10]等等。推荐系统从最初的电子商务推荐到如今音乐、电影、社交网络、阅读、O2O、广告、旅游、新闻,搜索等领域的广泛推荐,已经与人们息息相关了。

基于邻域的推荐算法又名协同过滤算法(Collaborative filtering)是最早被实际应用的推荐算法。CF算法又分为基于用户(UserBased)和基于物品(ItemBased)的。基于用户的协同过滤(UserBased-CF)算法于1992年被应用于邮件过滤系统,之后2年被GroupLens使用在新闻推荐领域。协同过滤算法实现简单且高效,但是存在着冷启动(Cold start)以及矩阵稀疏性(sparsity)等问题。幸运的是,冷启动以及稀疏性问题可以通过一些方法降低。Hyung Jun Ahn在2007年提出了一种新的相似性度量方法以缓解冷启动问题[11],Andre Luiz Vizine Pereira等人于2015年进一步提出了协同聚类学习方法解决冷启动问题[12]。ZAN HUANG等为缓解稀疏性问题提出了一种联想检索技术[13]。所以ItemBased-CF算法仍然是普遍使用的推荐算法。无论是国外的亚马逊、YouTube还是国内的淘宝、京东,它们的推荐系统基础都是ItemBased-CF算法。

基于内容的推荐算法发源于信息检索领域的研究,因为基于内容的推荐算法需要分析物品的内容信息,而信息检索最有名的TF-IDF算法可以用于分析文本内容,但是对于视频音频的内容分析一直是一个难点。但是随着图像识别,语音识别等技术的普及未来基于内容的推荐算法将会越来越有竞争力。

对于每人一生只购买一次或者少数几次的物品,如房屋,车等物品。推荐系统会严重的缺乏用户数据,导致推荐算法很难成功运行,所以基于知识的推荐系统应运而生。它不需要用户行为数据的支撑,不存在CF算法等的缺陷,而是采用问答形式完成推荐,推荐形式类似于商店里面的销售员。本体论作为一种形式化的知识表示方法已经被用于推荐系统[14]。

为了提高系统的性能,克服传统推荐算法的局限性。一种混合推荐算法逐渐流行起来,它通过混合、加权、切换、级联、特征组合2种或2种以上推荐算法,充分利用各推荐算法的优势,从而获取更高的性能。最常见的混合推荐算法实例就是混合协同过滤算法与其他推荐算法从而缓解冷启动与数据稀疏性问题。

随着用户数据越来越多,商品数量也急剧增加。虽然硬盘容量也不断的提升,但是硬盘的访问速度却没有与时俱进,目前1TB的硬盘已经成为主流,但是数据读取速度大概为100MB/s,读取完毕整个硬盘的数据需要2.5个小时。随着Google 三大论文的提出,云计算技术飞速发展,Hadoop作为Apache软件基金会的开源实现是目前最受欢迎的云计算平台。通过可靠的共享存储,Hadoop可以将1TB的数据分别存储在不同的硬盘中,然后并行读取数据。假设有60个硬盘并行读取,

电子科技大学硕士学位论文

那么只要2.5分钟就能完成。而且推荐算法的计算在一定程度上是可以并行化的,通过并行化计算,某些在单机上完成不了的任务,可以通过Hadoop的MapReduce 完成,从而极大的提高推荐系统性能。

1.3 本文的主要工作

本论文以搜索引擎为基础,针对海量用户数据处理问题,参考以往分布式推荐系统实现方案,提出一种基于潜在语义分析和分片聚类的混合推荐系统优化方案。主要工作包括:

(1)用户行为数据采集与标准化研究。搜索引擎用户行为数据更为多样化和独特性,包含大量用户检索信息。研究哪些行为能反映用户喜好对搜索引擎的推荐是至关重要的。

(2)用户兴趣多变及离散问题研究。研究用户行为数据的多样性,根据用户特征,建立用户兴趣分析模型,研究发掘用户长久兴趣和即时兴趣,从而解决用户兴趣多变及离散问题。

(3)用户相似度研究。研究基于用户检索数据的用户相似度计算,以及研究如何计算混合类型的用户数据相似度等问题。

(4)用户行为大数据下推荐系统算法研究。研究一种基于潜在语义分析和分片聚类的混合推荐系统优化方案。此外,为优化系统处理大规模数据的能力,本文引入分布式hadoop大数据处理框架处理海量数据,实现数据预处理和推荐算法的并行化。

主要创新点包括:

(1)基于搜索引擎的推荐系统实现。当下推荐系统技术现状未充分考虑用户兴趣多变及离散问题,且未对用户检索主题词进行关联分析。本文研究一种搜索引擎下的图书推荐系统的设计和实现,重点研究如何针对用户的长久兴趣和即时兴趣进行推荐,从而解决用户兴趣多变和离散的问题。

(2)推荐模型的改进。本论文结合Hadoop云计算模型,提出一种基于潜在语义分析和分片聚类的推荐系统优化方案。潜在语义分析推荐模型以内容进行推荐,可以缓解用户和图书冷启动问题,并提升系统推荐的覆盖率。而基于分片聚类的协同过滤推荐模型中的将用户行为按属性和内容分片,可以抽取出用户不同时期的兴趣,从而进一步提升推荐性能,且推荐结果具有一定的新颖性。此外,还实现数据预处理和推荐算法的并行化。

(3)用户相似度计算改进。搜索引擎下用户数据包含大量检索词,研究基于检索数据的用户相似度计算问题。

第一章绪论

1.4 本论文的结构安排

本文的章节结构安排如下:

第一章是绪论,主要介绍本论文课题的研究背景与研究意义。并结合本课题即推荐系统的国内外现状,给出本论文主要研究内容,最后列出本论文的结构安排。

第二章是相关技术基础,重点介绍推荐系统的相关技术。分别介绍大数据处理的方法、Hadoop云计算平台、全文检索技术以及推荐系统相关技术基础。

第三章是基于Hadoop大数据框架的个性化推荐方法研究,主要研究推荐系统的数据采集、用户行为分析模型、用户行为分类方法以及并行推荐算法。充分考虑到搜索引擎下用户存在长久兴趣和即时兴趣,分别设计基于潜在语义分析的推荐模型和基于分片聚类的推荐模型用于图书推荐。

第四章是系统需求分析,根据搜索引擎下推荐系统实际需求,分析并确认推荐系统的功能需求和非功能需求。

第五章是推荐系统的设计。根据上一章的系统需求,结合目前业界开源项目,完成推荐系统的设计。其主要内容包括系统的组成架构设计、系统层次架构设计、系统的功能设计以及数据库的设计。

第六章是推荐系统的实现。完成Hadoop云计算平台以及Solr搜索引擎平台的环境搭建,包括系统的运行环境和开发环境,数据预处理、用户行为分析与个性化推荐各模块的具体实现。并给出相应实现界面及代码。

第七章是推荐系统的测试。包括推荐系统的功能测试和性能。并完成推荐算法实验分析。

第八章是总结与展望。对本课题的研究进行总结,分析了当前研究存在的不足,并对搜索引擎下的图书推荐系统的研究和发展方向进行展望。

相关文档
最新文档