基于协同过滤的景区智能推荐系统探析

2024-05-03 05:41王东灿蒋玉香
信息记录材料 2024年3期
关键词:覆盖度景区协同

陈 丹,王东灿,蒋玉香

(西南交通大学希望学院 四川 成都 610400)

0 引言

大数据时代是信息过载的时代,个人旅游决策干扰因素骤然增加。与此同时,推荐系统得到越来越广泛的应用,其应用范畴由电子商务领域延伸到社交网络、旅游推荐等领域。在旅游推荐领域,较之搜索引擎,推荐系统具有“私人定制”特点,可贴合用户使用习惯,满足不同用户独特旅游需求。协同过滤是一种智能推荐算法,可以进一步提升推荐系统的运行精准度。因此,探究基于协同过滤的景区智能推荐系统具有非常突出的现实意义。

1 景区智能推荐系统中的协同过滤算法选择

1.1 算法改进思路

传统协同过滤算法可以计算用户(或物品)相似度,推荐相似用户(或物品)相关的用户(或物品),但是存在长尾效应(零散差异化需求在需求曲线上形成长长的“尾巴”,促使冷门推荐物累加形成一个较热门推荐物更大的结果),导致部分冷门但用户可能会感兴趣的商品难以出现在用户的推荐列表内,埋下旅游攻略推荐算法对应推荐度偏离实际的隐患,抑制最终推荐的攻略覆盖度。基于此,综合考虑用户、城市、攻略之间的联系,在User-CF-1 算法和Item-CF-1 算法混合协同过滤算法(以下简称Final 算法)内,分别计算基于旅游用户的推荐度、基于旅游攻略的推荐度、基于旅游城市推荐的推荐度并平衡3 个推荐度[1]。同时全面研究旅游攻略产品,根据景区旅游攻略的数据特点以及先推荐城市景区再推荐旅游攻略的特殊流程,加入城市热度和攻略热度等影响旅游攻略推荐的各种参数,并对相关参数加以惩罚,以抑制热度高的城市景区景点或攻略推荐度,促使冷门的城市景区景点或攻略能顺利展示在推荐列表内,提高旅游推荐覆盖度。

1.2 算法改进实践

算法输入为User-Item 评分矩阵Final,最近邻个数k和前列排名值N,输出列表内前列排名景区数据。

第一步,收集User 评分数据,预先进行清洗过滤、格式转换,建立User-Item 评分矩阵Final,如式(1)所示。

式(1)中,每一个User 为一个m维向量,其中Nnm表示第n个User 对第m个景区的评分值。在User 为系统已评分游客时,可在式(1)内借助User 特征向量Um=(Nm1,Nm2,…,Nmm)与其他游客特征向量,开展相似度运算,获得相似用户;在User 为未对系统内景区评分游客时,根据游客信息提取特征对其开展相似度计算,获得相似游客对景区评分加权数作为新游客评分加入Final 矩阵。

第二步,收集景区评价指标数据,预先清洗过滤、格式转换,建立scenic-evaluate 指标矩阵Jmn。因景区数量较为稳定且远远小于用户数量,所获得的scenic-evaluate 指标矩阵数据密集,变量之间基本存在共有值,根据景区相似度输出要求,可以Final 矩阵内数据为依据,推测评价指标体系每一项数据权重,构建指标矩阵如式(2)所示。

式(2)中,每一行代表1 个景区的数据,每一列代表已构建评价指标数据。将每一列数据、指标权重相乘,可得到scenic-evaluate 指标相似度。

表1 普通游客信息表(局部)

选取前20 名作为景区相似景区,相似景区列表记录为I1,可设定景区核心代码如下:

第三步,根据层次分析思路,确定景区评价指标的权重。

第四步,根据评价指标权重,加入scenic-evaluate 指标矩阵内指标类数据,获得景区之间相似度。以景区a、景区b为例,将景区a内指标数据集合Ja(a1,a2,…,an)(n≥1)与b的指标集合Jb(b1,b2,…,bn)(n≥1)代入矩阵Jmn,得出景区a、景区b的相似度sim(a,b)。

第五步,计算Final 矩阵中每2 个景点的相似度值,根据结果排序,选取排名前列的最近毗邻集合。

第六步,在Final 矩阵中,利用User 对景点的评分,推测游客间相似度,获得游客最近邻游客,选取排名前列的邻居游客。

第七步,根据排名前列的邻居游客对游客未评价景区的评分,以加权方式,预先估测游客对未评价景区的评分。

第八步,判断预先估测评价分值中较高的景区数量,在景区数量少于推荐列表个数时,利用列表中已有景区的相似经典补充缺失部分[2]。

2 基于协同过滤的景区智能推荐系统设计

2.1 系统需求分析

景区智能推荐系统的服务对象为游客,主要参与者为普通游客和系统管理维护人员[3]。普通游客需要景区智能推荐系统具有景区信息浏览、未注册或未登录热门景区推荐、景区评分查看、景区攻略发布与分享、个人名称与密码修改、预订信息修改等功能。

系统管理维护人员要求景区智能推荐系统具有用户信息管理(含注册用户管理、密码修改)、景区资讯管理、站内新闻管理、旅游攻略信息管理等几个部分。

“Don’t put me off,Anna.Are you afraid of being chaotic?”(1972:247)

除功能需求外,基于协同过滤的景区智能推荐系统还需要满足安全性需求,确保普通游客登录系统安全以及数据存取安全。同时系统应当可根据外部需求动态而扩展,允许优化维护,适应未来发展需要[4]。

2.2 系统总体架构

基于协同过滤算法的系统总体架构如图1 所示。

图1 基于协同过滤的景区智能推荐系统总体框架

由图1 可知,基于协同过滤的景区智能推荐系统由数据应用层、数据接口层、数据存储层、数据采集层几个层级组成。其中数据应用层主要是系统操作界面,包括旅游资讯、景区推荐、旅游小助手、个人中心等。旅游资讯主要根据普通游客历史浏览喜好推荐网络爬虫采集的旅游新闻、图片、短视频信息;景区推荐主要根据改进Final 算法生成推荐列表,便于用户查看景区推荐信息;旅游小助手可将后台智能生成推荐数据推送至APP 端,为用户推荐景区周边与用户需求相符的内容;个人中心主要是用户个人资料设置以及历史访问足迹查看位置。

数据接口层主要为编程开发访问服务器Websocket接口;数据存储层主要为分布式数据库,包括非结构化数据库、MySQL 结构化数据库;数据采集层主要为网络爬虫、旅游APP 接口[5]。

2.3 系统数据库设计

在系统数据库设计时,可以先进行数据模型的构建,如景区实体数据模型如图2 所示。

图2 景区实体数据模型

由图2 可知,景区实体数据模型是景区智能推荐的重要支撑,有景区编号、景区介绍、地址等几个属性。在景区实体数据模型构建后,可以从实体与实体之间联系着手,进行数据库表的构建,包括普通游客信息表、景区推荐信息表、景区攻略信息表、后台维护管理人员信息表等。以普通游客信息表为例,局部数据库表信息如表1 所示。

3 基于协同过滤的景区智能推荐系统实现

3.1 系统实现环境

基于协同过滤的景区智能推荐系统实现环境为Windows 10,网络站点服务器为MyEclipse 2022.1.0 +Tomcat 8.5 +JDK 8.5, 数据库管理系统为 SQL Server 2020。

3.2 系统功能实现

旅游景点推荐界面主要面对普通游客,需提供景区信息、景区攻略、景区线路等搜索、浏览、留言、分享服务。其中景区信息浏览为站内浏览模式,游客可在系统首页浏览推荐信息。根据游客历史浏览信息的差异,旅游景点推荐界面显示景区信息也具有一定差异。对于部分新注册登录游客,因其无历史浏览数据,仅推荐当前热门旅游景区;对于已注册登录一段时间的游客,系统自动记录其历史浏览数据,借助协同过滤技术为其推荐所需的旅游景区。局部实现代码如下所示:

3.2.2 用户注册登录界面

用户注册登录界面主要面对系统用户,需要提供系统账户注册、系统登录以及登录后用户个人信息修改、密码口令修改服务。在注册时,系统要求用户提供有效名称和密码口令,并自动验证用户输入信息是否与已注册信息重复,若重复,则提醒用户重新注册。在用户登录界面,系统要求用户填写注册名及密码口令,并在后台验证用户输入注册名、密码是否有误,一方有误即提示重新登录,当且仅当注册名、密码均正确的情况下,用户可进入景区旅游推荐系统主界面。进入主界面后,用户可以根据需要修改个人名称、简介、签名等信息,也可以重新设置密码口令。若需重新设置密码口令,用户需利用注册手机号重新验证。

3.2.3 后台信息管理界面

后台信息管理界面主要面对系统管理维护人员,是系统前端运行的基础,主要包括用户信息管理、景区信息管理、景区攻略管理等。在功能齐全、操作简单便捷原则指导下,后台界面可划分为功能列表、系统名称、操作界面三个部分。在功能列表部分,后台操作者可以点击各个功能列表,根据需要更新功能;对于系统名称,权限内的后台操作者可以进行修改;在操作界面,后台操作者可以在个人权限范围内进行操作。

3.3 系统核心功能测试

景区旅游攻略推荐是系统核心功能,也是测试的主要对象。因攻略是旅行市场的一款产品,由用户创建,被用户阅览,优质旅游攻略包含标题、内容、旅游城市、游玩景点,平均旅游攻略篇数过万,覆盖多个城市,且多数城市相互毗邻。基于此,系统功能测试选择覆盖度指标,利用游客覆盖度、城市覆盖度、旅游攻略覆盖度几个二级指标进行评价,覆盖度高代表通过基于协同过滤的景区智能推荐系统推荐景区能力强,覆盖度低则表示基于协同过滤算法的景区智能推荐系统推荐效果不佳。在系统核心功能测试指标及判定依据明确的情况下,选择旅游网站真实用户,评测的普通游客用户历史行为记录为42 362 条,优质旅游攻略为11 251 篇,城市为1 525 个,分别计算User-CF-1 算法、Item-CF-1 算法、Final 算法支持下的景区智能推荐系统游客覆盖度、城市覆盖度、旅游功率覆盖度。得出基于用户协同过滤算法的景区智能推荐系统覆盖度见表2。

表2 基于用户协同过滤算法的景区智能推荐系统覆盖度 %

由表2 可知,基于Final 协同过滤算法的景区智能推荐系统游客覆盖度、城市覆盖度、旅游攻略覆盖度最高,分别为44.36%、78.36%、49.68%,各项覆盖度指标均高于基于User-CF-1 算法的景区智能推荐系统覆盖度、基于Item-CF-1 算法的景区智能推荐系统覆盖度,表明改进的Final 算法推荐效果较佳,基于Final 算法的景区智能推荐系统具有较大的推广应用价值。

4 结语

综上所述,协同过滤推荐算法是智能推荐系统的核心算法,利用协同过滤算法对景区景点信息进行过滤与选取,可以有效解决景区景点信息泛滥问题,并为游客提供个性化推荐方案。借鉴协同过滤系统Tapestry 开发经验,景区可以整合传统User-CF-1 算法和Item-CF-1 算法两种协同过滤推荐算法,打造一个极具特色的旅游攻略推荐系统,增加推荐攻略的覆盖度,解决“长尾效应”的推荐问题。进而在景区智能推荐系统中,分析游客历史旅游行为,对景区景点信息进行分类,并为不同游客提供个性化旅游建议,满足游客个性化游览需求。

猜你喜欢
覆盖度景区协同
呼和浩特市和林格尔县植被覆盖度变化遥感监测
基于NDVI的晋州市植被覆盖信息提取
云南发布一批公示 10家景区拟确定为国家4A级旅游景区
蜀道难:车与路的协同进化
低覆盖度CO分子在Ni(110)面的吸附研究
『摘牌』
“摘牌”
“四化”协同才有出路
某景区留念
三医联动 协同创新