创新实训(项目)
暑假期间思考项目
3.1—3.5号 写申请书
3.9—3.10号 答辩准备
项目目标
构建一个比价与旅游住宿推荐系统,可根据用户点击经验进行深度学习,使得后期查询得到更理想的排序结果;针对各大平台的信息进行数据清洗并进一步比较,以提供合适的车票、住宿及优惠等。通过项目提高团队成员对项目实现方法技术、过程管理规划等整体的理解,并增强自主解决问题、合作完成项目的能力
项目背景
随着经济的发展、人民可支配收入的增长,订票、订酒店、订民宿、外卖等一系列网站越来越多而同一商品在各网站的价格参差不齐,这使得传观念下的货比三家变得复杂了许多。购买一件商品若想进行充分的比较,需要花费大量的时间,因此“比价”类网站就变得尤为重要。
-
新优惠形式的出现,例如美团、口碑等应用提供了各种休闲娱乐商家的优惠券,可以在app上购买提供的优惠券以达到更省钱的目的,但各平台提供的优惠额度以及优惠套餐并不完全相同,若想找到适合自己且最佳的优惠方案需要逐个平台进行比较,十分繁琐。随着网络爬虫的盛行,快速收集各个平台大量的数据并进行比较成为了可能,这可以为人们节省大量的时间和金钱。
-
旅游业发展迅猛,2020年度国内旅游人数达28.79亿人次(由于疫情比上年同期减少30.22亿人次),有关出游攻略等内容备受关注,攻略大都包含:酒店/民宿、旅游景点、美食、出游路线等,根据攻略规划出较优方案成为人民的新需求。针对住宿选择一点来说,各种类型的住宿选择层出不穷,有越来越多的酒店可供选择,那么如何进行选择成为了一个新问题。因此,为了便利用户的选择,只需用户提供部分信息,例如想要到访的地点、住宿时间等,我们的平台会根据距离、评分、价格等方面给出一些酒店的选择方案,无需用户逐一进行筛选。新一代人工智能、大数据等新兴IT技术,为优化选择和推荐排序等提供了更好的解决方案,最终得到结果的质量与速度远远优于人。对用户在网站上的行为进行学习,不断优化推荐算法,以达到更好的用户体验,解决设计旅游攻略耗时长、比较难的问题。
技术
(一)景点路线规划
- 使用了百度地图的API,根据百度地图API中提供的坐标拾取器、关键字检索、区域检索等接口,实现以酒店位置为中心的周围景点信息(位置信息、距酒店距离、交通方式选择、预计行程时间等)的获取。
- 在获取了景点位置之后,利用离散的图论知识,构造以酒店为中心的轮图。(n阶轮图:即在n-1阶圈内放置一个顶点,连接这个顶点与这个圈轮上的所有顶点,所得的n阶简单图称作n阶轮图。)
- 图中的所有连线都是可以点击的,用户点击之后就可以查看该线上的路程、交通方式、换乘路线、预计时间等详细信息。
- 设计轮图构造算法:根据地图中随机的几个点,在点的位置随机、数量随机、距离随机的情况下,确认中心点后,找出各个点的相邻点,然后构造出轮图。(即构造之后任何两条线之间都不会相交,并且任意点都与中心点相连,任意点都与三条线相连(除中心点之外),构造出轮图之后根据百度地图API的接口,用绘图工具在地图上画出具体的路线。
(二)优惠内容的爬取
- 使用了python的爬虫,主要会用到python中提供的request、BeautifulSoup、re(正则表达式)等库,对网站源代码进行HTML语义分离,爬出重要信息。
- 在爬出信息之后,还要进行处理,比如价格要计算上平台的优惠,最后算出一个用户真实结算价来,使用户能够知道哪个平台更实惠。在这里也会用到python强大的数据处理功能。
- 因为后端使用的是Java开发,而爬虫用到python,所以会将python代码嵌入到Java代码中来实现。
(三)景点图片的爬取
为了给予用户更好的用户体验,会爬取各地的景点的实景图,并在介绍景点时呈现给用户。用户可以根据图片来了解景点外观,从而决定自己是否要去参观。
(四)酒店选取
酒店的推荐算法主要是基于location-based,实时用户行为对酒店进行排序。
- location-based:在推荐算法中,我们也会根据景点的实时地理位置触发相应的策略。
- 实时用户行为:当用户产生了订购行为上游的某些行为时,会有相当一部分因为各种原因使行为流没有形成转化。但是,用户的这些上游行为对我们而言是非常重要的先验知识。很多情况下,用户当时没有转化并不代表用户对当前的酒店不感兴趣。当用户再次到达我们的推荐展位时,我们根据用户之前产生的先验行为理解并识别用户的真正意图,将符合用户意图的相关特征再次展现给用户,引导用户沿着行为流向下游行进,最终达到下单这个终极目标。目前引入的实时用户行为包括:实时点击。
- 算法主要是利用机器学习的神经网络相关知识。
我们的目标是预测用户的点击行为。有点击的为正样本,无点击的为负样本,同时,在训练时对于购买过的样本进行一定程度的加权。而且,为了防止过拟合,我们对正负样本的比例进行控制。最后,我们还要对训练样本进行清洗,去除掉Noise样本(特征值近似或相同的情况下,分别对应正负两种样本)。借助于深度学习来节约特征工程中的巨大投入,更多地让点击率预估模型和各辅助模型自动完成特征构造和特征选择的工作,并始终和业务目标保持一致 - 当用户选择较多景点时且分散在若干个相对较远的区域内时,设计合适的算法可以实现推荐在出行期间入住多个酒店从而能在每一天入住离当天游玩景点较近的酒店,避免只选择一家酒店导致去较远景点或者商圈时,来回耗费太多时间。
预期成果
后台,负责进行各平台的数据爬取、数据处理、数据分析的操作,并且将得到的各种数据综合起来,通过推荐算法,进行排序,最后以接口的形式将数据提供给web网站。
web前端,通过后台接口的方式,实现与用户的交互,用户可以输入自己的始发地和目的地、出发日期、预计人数等,查询各平台的机票、火车票、酒店、景点等,网页根据后台返回的数据,实现将各平台机票、火车票、酒店、景点等的价格进行比较的功能,以图形化的形式呈现给用户,使用户能够清晰地知道在哪个平台购买更加优惠。