基于用户兴趣模型的旅游景点算法研究_第1页
基于用户兴趣模型的旅游景点算法研究_第2页
基于用户兴趣模型的旅游景点算法研究_第3页
基于用户兴趣模型的旅游景点算法研究_第4页
基于用户兴趣模型的旅游景点算法研究_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要旅游业是我国重要经济组成部分,国家推进经济发展的同时,带动了国民旅游需求。移动智能终端与互联网技术的发展和普及,在线旅游业得到快速的发展,众多旅游平台进入大众视野,携程出行、去哪儿旅行、马蜂窝旅游等平台为我们选择景区提供便利。景区众多,现有信息严重过载,不同的人在不同时间对景点选择各不相同,如何在各数据中选择最符合自身需求的景点成为一大难题。本次研究以基于用户兴趣模型的推荐算法为主要研究课题。主要包括:首先,对部分推荐系统进行研究,从而总结这几种推荐方法的优劣。本次研究以用户对景点商品的浏览、收藏、购买、点赞的次数对旅游用户景点选择的影响为着手点,结合一定的上下文信息为用户推荐用户感兴趣的景点。通过阿里巴巴获得真实的数据分别在SVD算法、SVD++算法、NMF算法、Slopeone算法中推荐用户目标景点的结果进行验证前文理论是否符合实际情况,并通过运行结果总结这四种推荐算法的优缺点,从而实现对旅游景点推荐算法的研究。关键字:数据挖掘;传统推荐算法;推荐算法框架;用户兴趣建模AbstractTourismisanimportantpartofChina'seconomy.Whilethecountrypromoteseconomicdevelopment,itdrivesthedemandofnationaltourism.WiththedevelopmentandpopularizationofmobileintelligenceandtheInternet,theonlinetourismindustryhasdevelopedrapidly.Manytourismplatformshaveenteredthepublic'sfieldofvision.CtripTravel,wheretotravel,Macellulartourismandotherplatformsprovideconvenienceforustochoosescenicspots.Therearemanyscenicspots,andtheexistinginformationisseriouslyoverloaded.Differentpeoplechoosedifferentscenicspotsatdifferenttimes.Howtochoosethemostsuitablescenicspotineachdatahasbecomeabigproblem.Thisresearchfocusesontherecommendationalgorithmbasedonuserinterestmodel.Itmainlyincludes:Firstofall,somerecommendationsystemsarestudiedtosummarizetheadvantagesanddisadvantagesofthesemethods.Thisstudystartswiththeimpactofthenumberoftimesusersbrowse,collect,buyandlikescenicspotsontheselectionofscenicspotsfortourismusers,combinedwithcertaincontextinformationtorecommendscenicspotsthatusersareinterestedin.ThroughAlibabatoobtainrealdatainSVDalgorithm,SVD++algorithm,NMFalgorithm,slopeonealgorithmtorecommendtheuser'stargetscenicspotresultstoverifywhethertheprevioustheoryisinlinewiththeactualsituation,andthroughtherunningresultstosummarizetheadvantagesanddisadvantagesofthesefourkindsofrecommendationalgorithms,inordertoachievetheresearchofscenicspotrecommendationalgorithm.Keywords:datamining;traditionalrecommendationalgorithm;recommendationalgorithmframework;Userinterestmodeling第1章绪论1.1研究背景和意义中国的旅游产业随着科技和经济的发展越来越迅速。中国政府近年来为了促进旅游业的发展,正在制定相关政策。这些政策无疑不是为促进中国旅游业的发展保驾护航。人们有了更多时间和精力享受旅游带来的乐趣,但是每个人的喜好有所不同,人们更加依赖互联网推荐景点带来的快捷。【1】作为普通公民,通过各网络公司研发的旅游出行推荐平台发现,并不能准确的推荐出合适的旅游景点,或者很多景点并没有记录在平台大数据中,就中国景区已数不胜数,许多人认为推荐系统是帮助用户实现对信息进行过滤和筛选的有效工具【2】,在生活中的众多领域中得到广泛应用。其中,目前为了提高推荐精度和用户体验效果,推荐系统主要利用用户画像的方式准确实现用户兴趣建模。【3】因此提取大量信息资源中的有用信息是研究的重点,中国的快速发展需要更准确、更便捷的推荐方式。本文以阿里巴巴旅游信息为例结合用户兴趣模型的景点推荐算法的研究具有较强的现实理论及实践意义。1.2国内外研究现状近些年来关于旅游景点推荐的研究进程增长迅速,国内的研究大多集中于对类型、内容等分类推荐,李远博等人设计的旅游推荐研究【4】以项合并剪枝策略实现对算法的改进,大大减少了挖掘过程中的重复挖掘问题,但是在推荐个性化方面有所不足;赫磊等人在基于云平台智慧旅游信息的推送系统研究【5】中,通过Hadoop平台中的MapReduce模型对协同过滤算法进行改进,将分析得到的结果尽可能快的推荐给用户,这次的研究极大改善了传统旅游信息服务,但不足之处是没有体现出精确的个性化推荐景点的效果;王显飞等人提出基于约束的旅游推荐系统,【6】利用交互的方式来获取用户的兴趣,这样的方法能更好的发现用户兴趣,但缺少了机器自主进行特征学习的功能。李雅美对协同过滤算法进行改进,实现了基于四个特征标签的协同过滤推荐算法。【7】史一凡在原来研究的基础上引进了社会关系这一限定以达到完善景点推荐的目的。【8】马腾腾等人则将协同过滤算法与SlopeOne算法结合进行改进。【9】国外基于用户兴趣模型的旅游景点推荐算法的研究与国内的研究基本一致,GulcinBuyukozkan和BuseErgun设计的以CBR算法为基础的旅游智慧推荐系统【10】,提出了旅游信息在线服务的推荐方式,然而缺点是因为这种推荐方法没有建立在不同旅游信息之间的联系,从而旅游景点的个性化推荐是很难实现的。Moreno等人利用在数据挖掘算法生成的一系列关联规则的基础上,建立基于关联规则的数据预测模型,实现预测效率的提高,推荐误差极大减少。H.H.Owaied等人为用户提供用户自身感兴趣的旅游信息,设计出通过用户操作行为的基于知识的推荐系统【11】。Sun等人利用关联规则来挖掘各个项目之间的联系,使协同过滤算法中得数据稀疏性问题得到改善。Chun等人提出了关联规则的层次算法。Li等人利用定义的多个关联规则模板,将用户不感兴趣的规则数量减少。Salem和Rauterber为解决冲突问题提出基于上下文的环境合并多个用户配置文件的方法。LiuC等人介绍了基于贝叶斯网络的方法,在此种方法中的机器对数据流的学习是有效的和可扩展的,所以能为用户提供更准确的个性化服务。[12]1.3研究方法与主要内容1.3.1研究方法本次论文研究所使用的主要方法包括:(1)文献研究法:根据一定的研究目的和课题,调查研究已有的相关文献,本次研究主要利用知网及其他数据库中学术论文和期刊文件中已有的方法理论,进一步全面准确的掌握研究问题,通过这种方法,研究者对研究内容产生的初步印象,便于了解旅游推荐方面发展全貌与发展过程。(2)跨学科研究法:研究并不能单纯的运用一种学科知识,而是多种学科的相互作用。在本次研究运用计算机学、运筹学、管理学等理论,分别从整体上对旅游景点推荐的发展作出总结,在各个部分中详细运用,给予基于用户兴趣模型的景点推荐思想,因此这种方式也称为“交叉学科思想”。(3)数量研究法:数量研究法的别称有“定量分析法”或“统计分析法”,在本次研究中指通过对游客在景点对商品的购买、浏览、点击等数量关系的分析研究,认识、揭示各个部分事物之间的变化规律、相互联系等关系,从而正确解释和预测。(4)描述性研究法:描述性研究法与其他研究方法比较来说是一种更简单的研究方法,更多是研究者对已有的实验结论和其他专家的总结进行研究,然后应用到本次的实验研究中。(5)功能分析法:功能分析法是一门社会科学,通过对社会现象进行分析的科学,通过分析社会中已经存在的社会现象,判断要想解决这些现象需要具备怎样的功能。例如,目前社会上出现了景点介绍存在误差,不能及时准确的对游客提供游客心仪的旅游景点,如何解决这一问题,准确为游客提供景点推荐成了亟待解决的问题。1.3.2主要研究内容本文以旅游景点推荐的用户兴趣模型推荐算法研究为主要研究目标,即利用社会旅游平台中的大数据结合主流推荐算法实现景点个性化推荐。具体来说,本文以海量数据分析为基础,首先从阿里巴巴平台上获取用户对景点的点击、购买、收藏、浏览等多种个体用户的行为数据,并以此为获取用户兴趣的数据来源,以使用实证研究达到对用户兴趣模型的推荐算法研究。具体的目标如下:(1)前期,通过查阅已有的相关论文与期刊资料,了解到常用的推荐算法,包括:基于协同过滤推荐算法、基于社交网络推荐算法、基于内容的推荐算法等,然后介绍本次研究使用的四种推荐算法,分别是:SVD算法、SVD++算法、SlopeOne算法、NMF算法。(2)基于用户模型推荐,得到用户历史行为信息得到用于兴趣模型,最后对结果进行TOP-N推荐,根据算法模型的误差值和运行时间以实现对推荐算法的研究。1.4论文的组织结构本次论文主要分为五个章节,每个章节的具体内容如下:第一章是绪论,绪论主要介绍了论文的研究背景及意义,表明本论文书写意图为研究在旅游大数据库中实现个性化景点推荐的算法,并介绍国内外推荐算法的发展现状。第二章介绍研究的理论与技术,主要论述推荐系统、介绍常见的三种推荐算法及本次研究中用到的相关理论和技术。第三章论述基于用户兴趣模型的旅游景点推荐算法构建过程,包括导入数据、查看数据集信息、查看数据类型、对多余数据的删除操作及后期的数据清洗等。第四章主要对阿里旅行的数据通过四种算法运性后得到的结果进行实证分析论述。第五章总结本次论文的研究工作的成果,对今后在此领域进一步研究进行展望。1.5本章小结本章对研究论文的纲要进行初步介绍,简单介绍旅游景点推荐算法国内外研究情况,讲明研究背景,使用多种研究方法,表明研究目标,介绍论文的各组成部分,便于后期展开详细分析,得出最终的研究结果。第2章研究的相关理论与技术推荐系统指的是基于用户与物品之间的相关信息以及用户与物品之间的交互信息,预测出用户对物品的感兴趣程度,然后机器根据用户感兴趣程度把最适合的产品按一定的推荐顺序推荐给用户。如今网络信息爆炸的时代,准确检索出自己想要信息并不容易,因此找到合适的推荐系统是问题解决的途径。【13】在前期的调查中主要分析了几种最常见的推荐方法分别是:基于协同过滤、基于矩阵分解、基于内容的推荐算法。这些推荐方法具有不同的优点和劣势,下文中进行详细说明。2.1常见的推荐系统分类推荐系统已经诞生了许多年,对于我们来说并不陌生,在这期间许多的学者对推荐系统进行了不同层次的研究和分析,为推荐系统的发展作出了很大的贡献。为了保证推荐系统的各种要求,产生精确而有效的推荐效果,各种各样的推荐算法层出不穷,体现在我们日常生活的方方面面。2.1.1基于协同过滤的推荐算法介绍基于协同过滤推荐系统对于现在来说依然是较为主流的算法,主要是根据有相似偏好的用户曾经选择物品的喜好程度,为用户提供推荐,主要将协同过滤算法分为:基于用户的协同过滤算法和基于物品的协同过滤算法。【14】(1)基于用户的协同过滤推荐算法基于用户协同过滤算法可以解释为用户A和用户B假设具有相似的喜好物品,则说明用户A与B的喜好相似,在向用户A推荐时推荐B已经选择过而A还未选择的物品。如下图: 物品A 用户A 物品B相似 用户B 物品C 物品D 用户C物品D喜欢可能喜欢图2-1基于用户协同过滤算法图示图中用户A与B共同喜欢物品A,则用户A与B的兴趣爱好相似,系统向用户A推荐用户B曾经选择的物品C而不会推荐物品D,这就是基于用户的协同过滤推荐算法。余弦相似度和Jaccard相似度是基于协同过滤推荐算法中涉及的主要的相似度计算方法。余弦相似度公式为:Wij=N(i)∩N(j)N(i)//N(j)其中Wij表示用户i与景点j的相似度得分,N(i)、N(j)分别代表用户i、j喜爱的所有景点,计算可知得到的相似度得分越高,表示用户之间的相似度就越高。【15】(2)基于物品的协同过滤推荐算法假设用户具有相似喜好,用户A曾选择景点A、B、D,用户B曾选择景点A、B、C,用户C曾选择景点A、D,则系统进行推荐时,向用户C推荐景点B。如下图:景点A用户A景点B用户B景点C用户C景点D喜欢可能喜欢图2-2基于用品协同过滤算法图示基于物品的协同过滤算法应用过程大致分为以下几个步骤:首先,计算商品之间的相似度;然后,计算推荐用户对物品的感兴趣程度,生成推荐列表,将推荐列表供用户选择。对物品相似度的计算与用户相似度计算不同,因为一个用户的喜好可能具有多个方面,两个景点被推荐给同一用户喜好列表中可能属于多个方面,如果两个景点被推荐给多个用户的景点推荐表中,就可以推断这两个景点可能是属于同一个领域的。基本计算公式如下:Wxy=N(x)∩N(y)Wij代表景点x与y的相似度,N(x)和N(y)代表景点x、j有被推荐给多用户的情况。2.1.2基于社交网络的推荐算法因为近年来移动智能手机的普及,人们可能会添加很多兴趣爱好群,如:爬山群,手工群等,聚集着来自不同地方、不同年龄阶段的相同兴趣爱好者,人们在主意不定时更热衷于听从朋友的建议。因此,推荐系统的信任度成为一个至关重要的部分,信任为“用户A对用户B游玩景点A的满意程度的信任度”。Massa等人假设“用户亲密程度越高,信任度越高”。为了可以有效地解决用户之间信任预测问题Golbeck提出的一种算法,即TidalTrust算法。【17】2.1.3基于内容的推荐算法用户曾经在浏览其他景点时会被记录下来,基于内容的推荐则主要是为用户推荐用户曾经感兴趣的景点。例如,游客A在2019年特别喜欢爬山,然后在旅游平台上查找关于山的景区,然后后台会存储游客A喜欢爬山,何时爬山,去何地。所以在推荐中,尽可能多的向游客A推荐山的景区。机器将用户感兴趣的景区的共性进行表征,并存储于用户个人的信息中,这就是基于内容的推荐方式。如下图:景点A(田园风光)用户A景点B(高峻大山)相似用户B景点C(田园风光)用户C景点D(壮阔大海)喜欢可能喜欢图2-3基于内容推荐算法图示由图可知,用户C曾经喜欢田园风光,则在推荐时,依然首先推荐田园风光的景区。基于内容的推荐系统主要有三个过程分别为:项目表示、特征学习、生成推荐;【18】主要的两种技术分别是:基于传统信息检索方式的推荐、结合机器学习和统计方法建模。2.2推荐算法评价与比较推荐算法的评价指标大部分都是针对准确性的,准确性评价指标有很多,主要有以下几类:分类、预测评分、排序等。当然在覆盖率、多样性等都是评价标准。每一个推荐系统都有各自的优点和缺点,在具体应用中要根据不同的标准选择恰当的推荐系统。基于协同过滤算法具有用户冷启动问题,需要大量的数据进行,新用户会过分依赖于用户的评分信息。但是Bobadilla等人提出一种新的度量用户之间相似度的方法,在原有的基础上增加了加权处理,并在后续工作中构建一种用户相似度算法对新老用户进行度量,确保提供可靠推荐。当然具备很多优点,例如很多非热门景点也可能推荐给游客。基于社交网络的推荐算法可以解决传统推荐方法的数据量较少的问题。传统推荐系统在数据很少的时候,相似用户和相似景点难以得到,从而无法准确推荐。在社交网络推荐中,不只从用户-物品评分矩阵中找出相似,而是社交好友直接推荐,将推荐置于日常的交往中,推荐得到的结果更加的快捷、准确。[19]但是在实际应用时,并不能准确把握用户对好友的信任程度,在推荐中不能考虑对用户的影响程度。基于内容推荐算法不需要过度依赖用户评分情况,对于一些用户并不经常出去旅游,历史信息难以获取,所以协同过滤算法并不适用,基于内容推荐可以避免协同过滤算法的弊端,不存在冷启动问题。在推荐景点的时候只需要事先了解景区的主要的风格。在景区刚刚建立还没有名气时,凭借景点的自身特征向对应的游客进行推荐。可为有单一爱好的游客提供专一的推荐,但是也有缺点:特征提取困难,无新景点推荐,很容易出现每次推荐景点比较相似的情况,【20】例如喜爱爬山的游客A突然想去看海,那么不能及时的更新推荐,可能会让用户感觉推荐并不符合自身要求。2.3用户兴趣模型2.3.1用户兴趣建模概述推荐系统的基础是用户建模,一个优秀的推荐系统通常从数据输入开始,然后进行用户建模及项目匹配,最后实现准确的推荐输出。用户建模的好坏将直接影响推荐结果效率的高低,建模过程就是利用用户的兴趣记录和历史行为数据总结用户模型的过程。旅游景点的推荐与商品推荐等方面相比数据更为稀疏,推荐更为复杂。机器将用户提供的个人的兴趣偏好信息与系统挖掘出来的用户偏好信息结合起来,随着游客行为的不断增加,系统所获得的反馈就越多。本文是通过获取游客在景点的购买力或者浏览、点赞数据进行用户建模。建模完成后根据所要研究的相关算法,给出基于用户兴趣模型的旅游景点推荐算法的研究结果。2.3.2建模相关技术本次研究主要用到以下四种推荐算法:SVD是一种强大的降维工具,用于去噪、图片压缩,本质上SVD算法是矩阵分解中的一种解法,用途十分广泛,一般用于推荐系统,根据用户以往的数据对景点进行评分,可以使用基于协同过滤的方法来计算,核心是计算相似度。该算法的好处在于可以解决矩阵的稀疏性问题,同时可以降低矩阵的维度,提高运算速度,但机器需提供较大的空间。某个用户对某个商品进行评分,说明该顾客购买过该景点的物品,事实上蕴含了一定的信息,侧面反映了用户的爱好,将反应通过隐式参数体现在模型中,从而得到一个精细模型,这便是SVD++。NMF算法指将一个大矩阵分解成两个小一些的矩阵,并且要求分解得到的两个矩阵不能有对数据无效的负值,例如将一个原矩阵W分解成两个非负矩阵X和Y线相乘的形式,其中X为权重系数矩阵,Y为特征向量,因此称为非负矩阵分解算法,通过降维转化为聚类问题,接下来可以使用经典的聚类方法。Slopeone算法是基于不同物品之间的评分差的线性算法,通过计算两物品同时被评分的均值,为物品间的评分偏差,然后根据商品的评分偏差和历史评分,预测为评价的商品评分。将最终得到的预测评分从大到小排序,取top-N的景点形成推荐列表推荐给用户。该算法的最大优点是算法简单,执行效率高,但是严重依赖用户行为,存在冷启动和稀疏性问题,并且算法总是将个人喜好与大众的平均喜好对比,推荐的景点很难个性化,使许多用户的推进结果趋于一致,即大众口味。2.3.3用户建模过程准确的用户建模是个性化推荐的基础,用户兴趣建模指机器通过获取用户兴趣偏好信息,建立对用户兴趣准确描述,面向算法,具有特定数据结构的用户描述的计算机模型。所以,在用户兴趣推荐系统中,需要首先建立用户兴趣模型,然后利用不同的推荐算法计算,最后将景点推荐给用户。本次用户建模过程如下:用户兴趣信息用户兴趣信息的模型化表示用户兴趣信息表示用户兴趣信息获取用户兴趣信息用户兴趣信息的模型化表示用户兴趣信息表示用户兴趣信息获取模型评价用户兴趣模型用户兴趣建模模型评价用户兴趣模型用户兴趣建模图2-4用户兴趣建模过程框架图2.4本章小结本章主要是对相关技术理论的简单介绍,首先对推荐系统中的基本的三种推荐算法进行介绍,例举了部分算法的公式,然后对三种推荐算法进行对比,最后是关于用户兴趣建模的介绍,包括用户兴趣建模的概述、用户兴趣建模的相关技术,为下一章基于用户兴趣建模奠定了基础。第3章基于用户兴趣推荐模型的构建3.1实验数据在大数据时代,数据的产生和收集是进行数据处理的基础,面对计算机中的海量数据,人们缺乏获取有用信息的有效手段,因此产生对数据挖掘技术的需求,有了需求,还需要技术支撑。由于计算机技术及相关技术的发展为数据挖掘技术的提出和普遍接受提供了研究和应用的技术基础,数据挖掘是大数据应用的最关键也是最基础的工作。总的来说,数据挖掘泛指从大量数据中挖掘出未知的、隐含的有用信息系统化的过程。【22】3.2数据预处理最初为进行实验数据挖掘准备的原始数据通常很大,并且很杂乱。初始数据集中不免有缺失值、错误记录、失真等问题,所以在进行最终的数据分析之前,应该对原始数据集进行预处理。对一组数据进行清理,主要用到对缺失值的处理,当数据集不是很大并且缺失值不多时可以人工填写缺失值;用属性的均值填充缺失值,当然还具有其他填充方式。【23】数据集成与变换是指将数据变换成适合数据挖掘的形式,具体步骤有:平滑、聚集、数据泛化、规范化、属性构造。为了评价推荐算法的性能的好坏,一般使用以下两个计算公式,测试推荐系统准确性,分别是平方绝对值误差(MAE)、方根误差(RMSE):MAEf=1RRMSEf=1R其中Rtest是测试数据集,ui表示用户i,cj表示商品j,r(ui,ci)表示用户ui对商品ci的评分。【24】在数学的学习知道误差值越小越好,在推荐是算法性能比较中也是如此。3.3构建过程构建用户兴趣模型,首先需要获取用户在网络平台中发布的行为交互信息,基于用户行为数据对用户感兴趣的资源进行识别。我们首先在社会媒体上收集包括用户对景点商品的购买、点赞、浏览等行为数据,同时去掉对用户兴趣体现很小的词,即缺失值、重复值等。用户兴趣建模的基础是对用户所感兴趣的资源进行识别,基于用户行为的识别是对用户感兴趣资源识别最常用的方式,通过用户在景点的浏览、收藏、点赞、购买等行为识别用户感兴趣的资源。但是不同的用户行为所能表现的用户兴趣偏好是不同的,比如“购买”行为要比“浏览”的行为更反映用户喜好。Wxy=1ifaction∈{browse,buy,keep,click}其中:action指用户x与景点y的交互行为,代表用户x可能发生的行为集合,例如browse(浏览)、buy(购买)、keep(收藏)、click(点击);T(y)表示用户浏览时间;C(y)表示用户点击次数。F[T(y),C(y)]为T(y),C(y)到Wxy映射函数,其函数公式如下:Ty=tyq=1Cy=cyq=1其中ty为用户对景点商品的浏览时间,cy为用户对景点中商品的点击次数。考虑到用户给景点商品的评价的场景,用一个数学模型模拟用户为景点商品评价的场景,将评分矩阵U看作是两个矩阵的乘积:U=u11⋯u1k⋮⋱RU*I=PU*KQK*I公式(3-7)其中U表示用户数,I表示商品数,利用R中已知评分训练P和Q将P和Q相乘结果最好的拟合已知评分,则未知评分为P的某行乘以Q的某行得到了:rui=pUT计算预测值与真实值的误差公式为:Eui=rui-rui公式(3-9)继而计算出总的误差平方和:SSE=U,IEui2=(rui-通过获取用户兴趣之后,我们可以采用不同的推荐算法将与用户兴趣最相吻合的前N个景点推荐给用户,形成推荐列表。即将用户向量与资源向量进行计算后基于用户兴趣推荐,将形成的推荐列表进行排序,过滤重复数据,最终取TOP-N个最符合要求的目标数据形成最终推荐列表,完成基于用户兴趣模型的景点推荐。推荐列表形成过程如下:资源向量用户向量资源向量用户向量 相似度计算相似度计算基于用户兴趣推荐基于用户兴趣推荐排序排序TOP-NTOP-N选择生成推荐列表生成推荐列表图3-1推荐列表生成过程3.4本章小结本章介绍基于用户兴趣模型的构建过程,表明对数据集的初步处理,包括数据的查看、数据清洗等,通过本章的处理工作,机器使用不同算法运行数据集得到最终结果以研究推荐算法。第4章实证研究结果与分析推荐系统需要解决的主要问题是,当游客去一个陌生的城市旅游时,在对当地情况并不了解的情况下,可以给出及时,令游客满意的旅游景点推荐,游客可以根据推荐列表进行选择。在景点推荐中,总是会根据景点名气和热度为游客推荐,或者平台根据用户的GPS定位,就近推荐景区。当时都没有考虑游客的兴趣爱好,或许会给成年人推荐游乐场,为年迈游客推荐极限运动,可以看出来是一种大众推荐,但是考虑用户兴趣模型的景点推荐会有所不同。作为一个推荐,可以从不同的方面入手选择受欢迎的景点推荐给用户,本次研究为根据游客在景点的浏览、收藏、购买力为着手点推荐合适的旅游景点。基于常用的SDV、SDV++、NMF、slopeone算法,对数据进行引入,导入数据,查看数据信息,数据清洗等常规操作,根据运行的误差值和运行时间选择最优的推荐算法。4.1数据采集及预处理本次研究的数据集来自于阿里巴巴旗下的阿里旅行,有五百万条数据包含了用户操作行为,对于重复的数据及缺失值处理等操作,数据格式设定为:user-用户编号、time_stamp-时间戳(准确标识唯一时间)、btag-用户操作的行为、pv-浏览行为、cart-收藏行为、fav-点赞行为、buy-付款行为、cate-商品编号、brand-页面ID。4.1.1查看数据集信息我们上文已经介绍了数据预处理的重要性及一些基本步骤,通过预处理将数据中的缺失值等问题进行处理,得到较为优秀的数据集。查看数据集信息:behavior_log.head(5)图4-1部分数据信息示例数据集中包含用户、时间戳、用户行为、商品编号、页面ID,由于数据过多,进行删除重复的行数据,数据压缩,去掉不需要的列,最终得到:用户数:print("用户数:{}".format(len(behavior_log['user'].unique())))进行数据预处理后得到较符合条件的用户数为519386位。商品数:print("商品数:{}".format(len(behavior_log['cate'].unique())))对数据集处理后有8474件商品符合条件。行为记录数:print("用户数:{}".format(len(behavior_log)))得到的用户及商品后,用户对商品进行的操作即行为记录数有1023855条。用户与景区商品的比例:按用户对商品进行分类,得出商品的普及程度,进行排序取前100个。图4-2商品普及程度排序图商品被购买的次数:按商品对用户进行分类,得出每种商品被购买的次数,进行排序。图4-3商品购买次数排序图筛选符合条件的商品:temp=temp[temp>=3]temp=temp.reset_index()behavior_log=pd.merge(temp[['cate']],behavior_log,on='cate',how='left')筛选后得到的商品与购买次数为7315次筛选符合条件的用户:temp=behavior_log.groupby(['user'])['cate'].count()temp=temp[temp>=3]temp=temp.reset_index()behavior_log=pd.merge(temp[['user']],behavior_log,on='user',how='left')筛选的用户数为358159。4.1.2数据清洗为了发现并指正数据文件中机器可识别的错误,数据清洗成为数据预处理的第一步也是非常关键的一步,通过数据预处理操作可以检查数据是否具有一致性,及时处理数据中的缺失值和无效值。首先对时间序列进行排序,删除多余的列数据,判断出是否具有缺失值,将缺失值填充为0,主要是为了降低计算的复杂度。4.2评分规则偏好评分规则:m:用户对应的行为次数该偏好权重比例,根据业务调参,上线评测获得进一步权重分配:pv:ifm<=20:score=0.2*m;elsescore=4fav:ifm<=20:score=0.4*m;elsescore=8cart:ifm<=20:score=0.6*m;elsescore=12buy:ifm<=20:score=1*m;elsescore=204.3测试结果判断一个算法的优劣,一般是从运行时间和误差值进行判断,对于同一组数据运行时间快,误差值小的算法更优。机器运用SVD算法将处理后的数据进行运行结果如下:图4-4SVD算法误差值结果图如上图所示,SVD的误差总体在0.9397到0.9401之间。明显可以看出,当推荐景点的数量由20到160逐渐增大时,算法的准确值是先升高,然后再下降;推荐的准确性达到了最优时,推荐数量为20,当推荐数量为40时,推荐的准确性最差。图4-5SVD算法运行时间结果图上图显示的SVD算法的运行时间结果在50到57之间。由图可知运行时间随着推荐数量的增多而增多,当推荐数量为40时,运行时间最短,当推荐数量为140时,运行时间最长。机器运用SVD++算法得到的误差值结果如下:图4-6SVD++算法误差值结果图SVD++的误差值在0.96825到0.96975之间。同SVD算法类似,算法的误差值先增大后降低,在推荐数量160时误差值最小,在推荐数量为60时误差值最大。图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论