基于协同过滤算法的旅游景点推荐模型研究

2020-07-14 08:37陈思田敬阳
现代电子技术 2020年11期
关键词:旅游景点

陈思 田敬阳

摘  要: 传统基于关联规则的旅游景点推荐模型,不能综合其他相似用户的喜好数据,缺少推荐新信息的能力。为此,设计基于协同过滤算法的旅游景点推荐模型。采用DOM技术搜索目标用户的历史记录,并利用DOMNode类中提供的方法访问并采集页面信息,将采集的数据传送至推荐算法模块,利用协同过滤算法计算用户相似度,求出目标用户的近邻集合。经过推荐综合处理模块剔除掉目标用户已经旅行过的旅游景点,形成最终推荐集推荐给目标用户。至此,模块设计完成。测试结果表明,对于同一目标用户,与传统的推荐模型相比,基于协同过滤算法的旅游景点推荐模型推荐的结果存在一定的新信息,推荐内容更全面,该推荐模型更优于传统的推荐模型。

关键词: 协同滤波; DOM; 用户相似度; 近邻集合; 旅游景点; 推荐模型

中图分类号: TN911.1?34; TP391                  文献标识码: A                     文章编号: 1004?373X(2020)11?0132?04

Research on tourist attraction recommendation model

based on collaborative filtering algorithm

CHEN Si1, TIAN Jingyang2

(1. Tianfu College of SWUFE, Chengdu 610052, China; 2. Chengdu Tengyuan Dachuang Technology Co., Ltd., Chengdu 610000, China)

Abstract: The data of user preference of other similar users cannot be integrated by the traditional tourist attraction recommendation model based on association rules. Therefore, the model is lack of the ability to recommend new information. For this reason, a recommendation model based on collaborative filtering algorithm is designed. The DOM technology is used to search the history records of target users, and the method provided in DOMNode class is used to access and collect the page information. The collected data are transmitted to the recommendation algorithm module. The collaborative filtering algorithm is used to calculate the user similarity and get the neighborhood set of target users. The tourist attractions that the target users have already traveled are removed by the recommendation comprehensive processing module to form the final recommendation sets and recommend them to the target users. The above achieve the module design. The test results show that, for the same target user, there are certain new information in the recommendation results of the tourist attraction recommendation model based on the collaborative filtering algorithm and the recommendation content is more comprehensive in comparison with the traditional recommendation model. The designed model is better than the traditional recommendation model.

Keywords: collaborative filtering; DOM; user similarity; neighborhood set; tourist attraction; recommendation model

0  引  言

隨着互联网技术的发展和普及,旅游爱好者能够通过各种不同的渠道随时随地了解各地旅游信息,选择喜爱的旅游产品,制定满足自身需求的旅游计划。推荐模型能够帮助用户更快地发现有用信息,通过采集用户历史信息和相似用户的喜好,筛选出用户最感兴趣的信息,主动推荐给用户[1]。近年,由于推荐模型所具有的特性方便用户将无用的信息过滤掉,而被应用在各行各业中,但是大部分的推荐方式集中在打包式服务,缺少推荐新信息的能力。

协同过滤算法是向用户推荐用户潜在的感兴趣的内容,同时,过滤掉不完全或不精确的内容[2]。简单来说,协同过滤就是利用有共同兴趣、拥有共同经验的群体的喜好来推荐用户感兴趣的信息,通过合作机制给予信息回应并记录,达到过滤的目的,帮助别人筛选信息[3]。在旅游景点推荐模型中引入协同过滤算法,可改善传统推荐模型中存在的问题,实现更准确、更全面的旅游景点推荐。

1  旅游景点推荐模型设计

本文设计的旅游景点推荐模型主要包括三个模块,分别是推荐算法模块、用户信息采集模块和推荐结果处理模块,结构如图1所示。

1.1  用户行为信息采集模块

通过用户行为信息采集模块采集目标用户信息与旅游景点相关属性信息[4]。当用户通过不同的终端浏览旅游景点相关信息时,利用DOM技术搜索目标用户的历史浏览数据,初步获取该用户浏览的旅游相关信息,如旅游攻略、景区路线、特色小吃等,从而获取与旅游景点相关的各项属性[5]。

该模块主要包括数据分析单元、数据存储单元。采集数据首先需要找到用户目标网页,分析网页中的源码,确定采集的旅游景点数据信息,经过转码等处理方式,将信息整理至Excel文件中,再以文件形式保存至数据库中[6]。一般的浏览器页面都是HTML文件,利用DOM技术将浏览器页面上的数据和结构转换成树形结构表示,用树形结构能够准确描述元素之间的相对位置关系,方便文件解析[7]。在HTML文件中,是树的根节点,其他组件为树的一般节点,该节点包含需要采集的用户行为信息数据。

树形结构如图2所示。

其中,叶节点是网页内的内容,如旅游景点相关图片和文本信息等,利用DOM技术遍历树中的节点,使用DOMNode类中提供的方法访问HTML文档中全部内容,并从中提取需要的信息[8]。DOMNode类部分信息获取方法如表1所示。

用户在使用不同的终端浏览网页时,网页结构基本相似,使用相对路径的信息抽取方法在网页中抽取信息[9],其核心就是深度遍历DOM树后,利用抽取规则筛选出用户感兴趣的旅游景点相关数据,得到符合条件的信息后暂存起来,当完成整个对象的遍历后,重新整理暂存的数据信息,存入数据库中[10]。

1.2  基于协同过滤的推荐算法模块设计

当用户行为信息采集完成后,相关数据传送至推荐算法模块,利用协同过滤算法分析目标用户行为信息,以此为基础,搜索与其喜好相似的用户,组成邻居集,从中筛选出集中感兴趣的旅游景点推荐给目标用户[11]。假设用户?项目评分矩阵为[t=tij],[tij]表示第[i]个用户是否评价第[j]个项目,设置0或1来表示,0表示该用户没有评价该项目,1表示该用户已评价该项目[12]。用户之间的相似性计算公式为:

[ri,iε=i=1Nij&iεjti?tiε]  (1)

式中:[ti]表示其他用户已评分的项目集的个数;[tiε]表示待预测评分用户的项目评分集个数;[i=1Nij&iεj]表示其他用户和待测用户所共有的项目的个数。当[ri,iε=1],[i=1Nij&iεj≥λ]([λ]表示共有项目的极大值)时,说明用户之间存在绝对相似。

相似性计算公式如下:

[simia,ibε=iε∈Iabia-iaib-ib×ri,iεiε∈Iabia-ia2×iε∈Iabib-ib2] (2)

式中[simia,ibε]表示基于目标用户[iε]的[a],[b]用户的相似性。确定相似度后,建立[i]的近邻列表[i1,i2,…,in],按照用户相似度从小到大排列,从近邻的列表中选取一定数量的用户作为目标用户[iε]的最近邻居。

利用阈值法选取一个固定的相似度数值作为阈值,规定目标用户最近的邻居大于此阈值[13]。最近邻居的形成过程如图3所示。

图3中,黑色的圆表示目标用户,白色的圆表示其他用户,通过计算目标用户与其他用户之间的相似度,以目标用户为中心的5个最近用户被选为目标用户的最近邻居[14]。

获取最近邻居信息后,计算用户对项目的综合评分,公式如下:

[Qε=simia,ibε×qizjsimia,ibε] (3)

式中[qizj]表示最近邻居[iz]对旅游景点[j]的评分值,评分值越大表示目标用户感兴趣的程度越大,其形成的推荐列表也就是top?[N]推荐。将结果传送至推荐结果综合处理模块。

1.3  推荐结果综合处理

获得top?[N]推荐列表后,按照评分值的大小排序,同时,根据旅游景区热度值,计算列表中每个景点的推荐值,取前[N]项组成用户兴趣矩阵,作为最终推荐结果[15]。其中,景点推荐值通过目标用户要旅游的月份和城市决定。若目标用户是已注册的用户,将目标用户已经旅行过的旅游景点信息从推荐集中剔除,将最终结果记作top?[S]。通过程序代码将结果推送至页面上,以便目标用户浏览和发现。至此,基于协同过滤的旅游景点推荐模型设计完成。

2  旅游景点推荐模型测试

2.1  测试环境及数据集选择

旅游景点推荐模型测试在CPU为AMD 2.0 GHz,内存为8 GB,硬盘为500 GB的PC机上执行,其配置的系统为Windows 10。测试使用的数据集采用GroupLens小组提供的数据集,该数据集的大小约为1 000K,包含大约1万条评分信息,1 079个用户,124个旅游景点。

2.2  测试设计

测试旅游景点推荐模型,从数据集中随机选择一位目标用户作为测试对象,使用基于协同过滤的旅游景点推荐模型向用户推荐旅游景点,同时,引用传统的基于关联规则的推荐模型,对同一用户推荐旅游景点。该用户的历史浏览信息记录如图4所示。

2.3  测试结果及分析

利用不同的推荐模型向目标用户推荐结果在HTML页面中显示出来,为了便于对比分析,利用软件将推荐结果页面的信息提取出来,结果如图5所示。图中右侧为基于协同过滤算法的推荐模型推荐结果中提取的关键词,左侧为传统的基于关联规则的推荐模型推荐结果提取的关键词。

观察图5,左侧为推荐结果1,右侧为推荐结果2。左侧结果中显示的关键词都是与目标用户重点关注信息相关的词汇,为用户提供了最感兴趣的内容,但是这些内容只是用户已经关注的相关信息,缺少新信息的推荐,具有一定的局限性。而使用基于协同过滤的推荐模型推荐结果中,关键词不仅包括推荐结果1中的关键词,而且还存在目标用户历史浏览信息中未有的关键词,向用户推荐了新的内容。

这是由于使用协同过滤算法,结合了相似用户的喜好数据,利用 DOM技术筛选并采集相关信息,并通过计算评分向目标用户提供其深层次感兴趣的旅游景点信息。综上所述,基于协同过滤算法的推荐模型能够向目标用户提供更多更优质的内容,具有更好的发展空间,更适合应用在实际项目中。

3  结  语

本文在旅游景点推荐模型中引入协同过滤算法,利用该算法结合相似用户喜好数据,推荐新信息的特点,弥补传统基于关联规则的推荐模型中的不足之处,向目标用户推荐更多、更详细的旅游景点。通过与传统推荐模型的对比测试,证明了该推荐模型在推荐旅游景点能力上存在一定的优势。

注:本文通讯作者为田敬阳。

参考文献

[1] 刘静,刘耀龙,段锦.基于5A景区最大承载量和游客接待量的旅游供需关系模型研究[J].科技通报,2017,33(7):264?268.

[2] 沈记全,王磊,侯占伟,等.基于情景上下文与信任关系的旅游景点推荐算法[J].计算机应用研究,2018,35(12):3640?3643.

[3] 刘海鸥,孙晶晶,苏妍嫄,等.基于用户画像的旅游情境化推荐服务研究[J].情报理论与实践,2018,41(10):87?92.

[4] 李雅美,王昌栋.基于标签的个性化旅游推荐[J].中国科学技术大学学报,2017,47(7):547?555.

[5] 孟桓羽,刘真,王芳,等.基于图和改进K近邻模型的高效协同过滤推荐算法[J].计算机研究与发展,2017,54(7):1426?1438.

[6] 宋恺涛,彭甫镕,陆建峰.基于多核学习的协同滤波算法[J].数据采集与处理,2018,33(3):496?503.

[7] 毛宁,杨德东,杨福才,等.多特征融合的多模板协同相关跟踪[J].液晶与显示,2017,32(2):153?162.

[8] 姚静天,王永利,侍秋艷,等.基于联合物品搭配度的推荐算法框架[J].上海理工大学学报,2017,39(1):45?53.

[9] 杨兴雨,李华平,张宇波.基于聚类和随机森林的协同过滤推荐算法[J].计算机工程与应用,2018,54(16):152?157.

[10] 李瑞远,洪亮,曾承.多层聚簇中基于协同过滤的跨类推荐算法[J].小型微型计算机系统,2017,38(4):657?663.

[11] 李剑锋,秦拯.一种基于局部近邻Slope One协同过滤推荐算法[J].计算机工程与科学,2017,39(7):1346?1351.

[12] 于阳,于洪涛,黄瑞阳.基于多重信任的协同过滤推荐算法[J].计算机科学,2018,45(5):108?115.

[13] 郭宁宁,王宝亮,侯永宏,等.融合社交网络特征的协同过滤推荐算法[J].计算机科学与探索,2018,12(2):208?217.

[14] 孔欣欣,苏本昌,王宏志,等.基于标签权重评分的推荐模型及算法研究[J].计算机学报,2017,40(6):1440?1452.

[15] 王瑜,武延军,吴敬征,等.基于异构网络面向多标签系统的推荐模型研究[J].软件学报,2017,28(10):2611?2624.

猜你喜欢
旅游景点
贫民窟也能成旅游景点?
美人鱼
玛雅金字塔重新开放
敦煌古迹旅游景点与《周易》
旅游景点文史缺失八例辨析
课程教学大纲《旅游文化》
顺应论角度下旅游景点解说的英译原则与实例分析*——以福州鼓岭旅游景点为例
从生态翻译学视角看韶关旅游景点的再译
陕西旅游景点公示语英译错误分析与对策
旅游景点介绍的文体分析