个性化旅游推荐系统设计与实现毕业论文
2020-03-24 15:22:44
摘 要
信息时代的发展,极大的促进了网络的普及,由此产生了极大的数据量。但许多重复的无意义的数据也给人们选择自己感兴趣的信息带来了极大的困扰。为了解决这个问题,个性化推荐系统随之产生。
对于想要旅游的人来说,个性化推荐系统无疑是一个非常好的辅助工具。这样可以将用户从庞大的数据选择中解放出来。而且可以根据用户的对不同旅游类型的偏好,为用户提供合其口味的旅游类型。
为了解决以上问题,本文以个性化旅游推荐系统为研究对象,并在完成这项任务的过程中做出了以下工作:
- 以基于用户、基于条目的协同过滤和基于内容的推荐算法为基础,构造推荐引擎。
- 对系统进行需求分析,再对系统进行进行功能设计和数据库设计。
- 运用android技术进行系统界面的设计。
- 运用java的spring,spring MVC和Hibernate框架进行后台的编写。
- 运用服务器进行前端与后台的连接,并且实现登陆、注册、搜索,个性化推荐等功能。
关键字:旅游 ;个性化推荐 ;协同过滤 ;推荐引擎;java;android
Abstract
The development of the information age has greatly promoted the popularization of the Internet, resulting in a huge amount of data. However, many repeated non-meaningful data also cause great difficulties for people to choose the information they are interested in. In order to solve this problem, a personalized recommendation system is produced.
For those who want to travel, personalized recommendation system is undoubtedly a very good auxiliary tool. This frees the user from the huge data selection. Moreover, according to the user's preferences for different travel types, the user may be provided with a travel type that suits his taste.
In order to solve the above problems, this thesis takes the personalized tourism recommendation system as the research object, and has done the following work in the process of completing this task:
1. Construct a recommendation engine based on user-based, item-based collaborative filtering and content-based recommendation algorithms.
2. Perform a requirement analysis on the system, and then perform functional design and database design on the system.
3. Use android technology to design the system interface.
4. Use the three major frameworks of java to write in the background.
5. Use the server for front-end and back-end connections, and achieve landing, registration, search, personalized recommendation and other functions.
Key words: travel; personalized recommendation; collaborative filtering;recommendation engine;java;android
目 录
摘要 I
Abstract II
第1章. 绪论 1
1.1课题研究的背景 1
1.2 国内外研究现状 1
1.3 研究内容 2
1.4 论文组织架构 3
第2章.个性化推荐技术综述 4
2.1个性化推荐算法简介 4
2.1.1基于用户的协同过滤算法 5
2.1.2基于项目的协同过滤算法 8
2.1.3基于内容的算法 8
2.2个性化推荐算法优缺点简述 8
第3章.可行性分析及系统需求分析 10
3.1 可行性分析 10
3.1.1 目标方案的可行性 10
3.1.2 经济可行性 10
3.1.3 技术可行性 10
3.2 系统需求分析 11
3.2.1系统功能需求 11
3.2.2系统性能需求 11
第4章.个性化旅游系统的设计与实现 12
4.1 系统的设计 12
4.1.1 系统的软件结构设计 12
4.1.2 系统的功能设计 12
4.1.3 系统的数据库设计 16
4.2 系统的实现 17
4.2.1 登陆界面的实现 17
4.2.2 注册界面的实现 18
4.2.3 搜索功能的实现 19
4.2.4 个性化推荐功能的实现 20
4.3 核心功能的代码实现 21
第5章.总结 29
5.1工作总结 29
5.2 自我总结 29
参考文献 31
致谢 33
绪论
1.1课题研究的背景
随着互联网走进千家万户,人们的信息交流和共享越来越多的在互联网上进行,人们足不出户就可以获取到所需要的各种信息,然而互联网在个大众提供丰富的信息资源的同时,也不可避免的出现了信息过载的问题,目前互联网上充斥着各种各样的数据和信息,其中有很多是人们所不需要的,因此大量无意义的数据给人们筛选有效信息带来了巨大的困难。为了解决信息过载问题,个性化的推荐系统应运而生。随着人们越来越多的使用互联网,人们的各种访问信息驻留在各个网站上,互联网当中的个性化推荐系统通过对这些用户行为进行分析,然后采用各种数据挖掘算法对信息进行过滤和处理,最终将人们最可能感兴趣的产品、项目或者各种信息推荐给用户。
改革开放四十年来,中国的经济迅猛发展,综合国力不断增强,人民的生活水平日益提高,外出旅游逐渐的成为了人们生活中的一个重要的组成部分。由于旅游电子商务网站能够让人们的出行游玩变得更加方便快捷,旅游电子商务网站在这样的大环境下迅速发展。如今在线旅游已经成为最热门的电子商务之一,越来越多的人在旅游网站制定出游计划。然而,由于在线旅游网站含有全国乃至世界大部分的旅游线路信息,这就使得用户花费大量的时间去筛选合适的旅游路线信息,因此,帮助用户快速查询其所需要的旅游信息,为其提供符合其兴趣或口味的个性化旅游线路就显得非常必要了。如今,个性化推荐系统电子商务网站已经得到了非常广泛的应用。
1.2 国内外研究现状
在上个世纪90年代早期,推荐系统已经被应用到实际的商业活动中,然而Resnick和Varian正式提出推荐系统这个概念是在1997年。在商业应用逐渐扩大的情况下,推荐系统慢慢的引起了世界各地的重视。
1995年,在美国人工智能协会上,卡耐基梅隆大学的Robert Armstrong等人提出了个性化导航系统Web Watcher,斯坦福大学Marko Balabanovic等人提出了个性化推荐系统LIRA;1995年8月,在国际人工智能联合大会上,麻省理工大学的Hernry Lieberman 提出了个性化导航智能体Litizia,这一系统的诞生,标志着个性化系统的产生。1996年到2000年期间,Yahoo、ATamp;T实验室、德国Dreden技术大学以及NEC研究院等机构,纷纷提出了个性化推荐的相关研究和应用,从此以后,个性化推荐系统逐渐从学术研究开始走向实际的应用[1]。
进入21世纪之后,随着互联网以及电子商务的不断发展,个性化推荐系统逐渐得到了广泛的应用。2001年,纽约大学的Gediminas Adoavicius等人构建了个性化电子商务网站的用户建模系统,IBM公司也在Websphere电子商务平台中添加了个性化功能,这样可以方便商家开发个性化的电子商务网站。2007年3月开始,google在AdWords中添加了个性化的元素,以便于更好的把握用户的需求。2011年8月,纽约大学的个性化推荐系统团队在中国成立了一家公司,坐落在杭州,它提出了到目前为止最为精准的基于社交网络的推荐算法:在传统的协同过滤推荐引擎基础上,添加了用户社交信息以及用户的隐性反馈信息,如网页的停留时间,链接的点击以及产品页的浏览次数等行为。目前,很多国际知名的大型电子商务网站都有构建自己的个性化推荐系统,如Amazon、Netflix等。随着国内电子商务的兴起发展,国内许多知名电子商务网站。个性化推荐技术在电子商务网站已经取得了良好的经济效益。
今年来,随着旅游电子商务网站的兴起,个性化旅游推荐系统的研究也成为一个热门的研究领域。目前为止,国内外学者对个性化旅游推荐系统已经有了一些研究成果。现有的研究工作大体可以分为以下三种:1.为用户提供更多的旅游信息,帮助用户做出决定,比如Wu等人设计了一个系统,该系统可以利用多媒体技术为用户生成个性化的旅游信息,包括文本,图片,视频等[2],Jing等人开发了一个旅游推荐系统来帮助用户获取到更多比较好的旅游信息[3];2.给用户推荐旅游线路,比如Hao等人通过建模的方式,从游客旅游归来的游记中挖掘信息,从而推荐给用户他们可能感兴趣的目的地[4];lu等人设计了一个旅游计划的框架,该框架利用旅游游记和标注地理位置信息的图片自动为用户生成旅游计划[5];3.从供应商,即传统的旅游社,提供的旅游路线中为用户选择满足游客个性化需求的旅游线路,如王等人提出了利用用户-景点-路线三部图来描述用户的行为,通过对随机行走算法的改进,并通过对景点的聚类,从而给用户推荐合适的旅游线路[6]。然而,这些研究大多都处于理论研究阶段或者针对于某一特定场景,由于旅游产品的特殊性,目前针对旅游个性化推荐系统还没有一个成熟的成果。因此,个性化旅游推荐系统在未来一段时间内,仍然是国内外学者一个研究热点。
1.3 研究内容
为了构建一个个性化推荐系统,本项目进行了以下的研究:
(1)由于现在的电子商务网站日趋成熟,个性化推荐系统也应该做的比较成熟。因此,我浏览了许多的其它的旅游网站,对他们的功能模块,设计实现,组织架构做了许多的研究与分析,起到了良好的借鉴作用。
(2)该系统的核心功能模块是个性化推荐模块,这里面涉及到基于条目、基于用户的协同过滤和基于内容的算法。并且对它的基本概念,算法流程,应用情景和各自的优点和缺点进行了研究。
(3)完成个性化功能模块的设计与实现,并找到合适的数据集。以基于条目、基于用户的协同过滤和基于内容的算法为基础创建一个引擎,将其应用到个性化推荐系统中,并评估和分析了该推荐系统的推荐效果。
1.4 论文组织架构
本论文一共分为五章,内容组织结构如下:
第1章 首先在开头详细论述本课题的选题社会发展背景以及研究意义,并且对国内外研究发展进程进行了分析,介绍论文的研究内容和组织结构,以上的研究为本文确立了大致的方向。
第2章 通过对第一章的分析以及论文的要求,提出问题,详细了解所需要掌握的算法和技术,对问题的可行性以及系统的分析,然后介绍了系统的主要功能和数据库的设计。
第3章 个性化推荐系统的分析,设计与实现。利用所学过的java技术和数据库技术,根据第二章的需求分析,进行功能模块的设计与实现。并介绍了系统具体的实现步骤和算法的详细流程,最后展示了运行结果。
第4章对运行的结果进行分析与评价。
第5章总结与展望,总结这次的论文,写出收获与体会。
2.个性化推荐技术综述
2.1个性化推荐算法简介
随着互联网的不断发展,其中的数据量成爆炸式的增长,解决了原来人们信息匮乏的问题。但是海量的数据也带来了信息过载的问题,人们想要找到自己想要的信息需要耗大量的时间,而且效果往往不尽如人意,这就给用户带来了糟糕的用户体验。因此,如何从海量的数据中高效的获取自己想要的信息,减轻用户的负担,成为目前各个网站急需解决的问题。现代解决方案是通过数据挖掘以及机器学习这些技术建立智能系统,具体步骤是首先建立数学模型,然后运用计算机进行处理,通过分析用户的行为习惯,再对用户进行个性化推荐。这样的系统就代替了用户的操作,为用户思考,拥有了智能性。这样信息过载的问题就得到了有效的解决。
而个性化推荐系统的核心是推荐引擎,推荐引擎原理图如图2.1所示,首先搜索引擎
收集线路信息、客户信息、行为信息,经过引擎的处理,再将合适的旅游地点推荐给用户。
图2.1 推荐引擎原理图
推荐引擎的数据源主要包含以下几种:
(1)推荐商品的元数据,如旅游类型,旅游地点等;
(2)该系统用户的基本信息,如,兴趣,年龄,性别等;
(3)用户对旅游地点或类型的偏好。如,用户查看的,用户打分和评论的
(4)给系统的个性化推荐引擎的算法流程简介:
2.1.1基于用户的协同过滤算法
在个性化推荐中,基于用户的协同过滤算法被应用的最为频繁和广泛,它根据邻居用户的兴趣爱好来预测目标用户的兴趣爱好。算法的大致简要流程如下:首先经过统计找到与目标用户有相似兴趣的邻居,然后以目标用户的邻居的兴趣为依据,向目标用户生成推荐。
它的基本原理是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源对当前用户,系统通过其历史访问记录及特定相似度函数,计算出与其访问行为(购买的产品集合、访问的网页集等)最相近的N个用户作为用户的最近邻居集,统计的近邻用户访问过而目标用未访问的资源生成候选推荐集,然后计算候选推荐集中每个资源对用户的推荐度,取其中K个排在最前面的资源作为用户的推荐集。
算法步骤
1.建立用户模型
协同过滤算法的输入数据通常表示为一个 m*n 的用户一 评价矩阵R,m是用户数,n是项目数,其中Rij表示第i个用户对第j个项目的评分值,评分矩阵图如图2.2所示。
图2.2 评分矩阵图
这里的评分值可以是用户的浏览次数,购买次数等隐式的评分,还可以采用显示评分,如用户对商品的直接评分,本算法的实现是采用用户对所购买商品的直接评分作为评分矩阵中评分值的。
2.寻找最近邻居
寻找最近邻居:在这一阶段,主要完成对目标用户最近邻居的查找。通过计算目标用户与其他用户之间的相似度,算出与目标用户最相似的“最近邻居”集。即:对目标用户i产生一个以相似度sim(i, j)递减排列的“邻居”集合。该过程分两步完成:首先计算用户之间的相似度,可采用皮尔森相关系数、余弦相似性和修正的余弦相似性等度量方法。其次是根据如下方法选择“最近邻居”:(1)选择相似度大于设定阈值的用户;(2)选择相似度最大的前 k个用户;(3) 选择相似度大于预定阈值的 k个用户。
余弦相似性(Cosine)
每一个用户的评分都可以看作为维项目空间上的向量,如果用户对项目没有进行评分,则将用户对该项目的评分设为0。用户间的相似性通过向量间的余弦夹角度量。设用户和用户在维项目空间上的评分分别表示为向量和向量,则用户和用户之间的相似性为公式2.1所示:
(2.1)
其中,分子为两个用户评分向量的内积,分母为两个用户向量模的乘积。
相关相似性(Correlation)
设用户和用户共同评分过的项目集合用表示,,则用户和用户之间的相似性通过Pearson相关系数度量,如公式2.2所示:
(2.2)