旅客需求推荐方法

xiaoxiao2020-7-22  3

旅客需求推荐方法
【专利摘要】本发明涉及一种旅客需求推荐方法,该方法在历史交易数据,等级信息等常规结构化数据的之上,通过JS嵌码的方式收集用户在网站的在线行为等非结构化数据,采用分布式文件系统HDFS作为统一的存储平台,通过Mahout和Storm技术为分别用户提供基于训练模型的离线推荐和在线推荐。本方法不仅扩大了推荐数据的利用范围,提升了推荐精度,而且整合了实时推荐和离线推荐,推荐性能更加稳定。
【专利说明】旅客需求推荐方法
【技术领域】
[0001]本发明涉及民航旅游业的个性化推荐系统构建方法,尤其涉及一种旅客需求推荐方法。
【背景技术】
[0002]在过去的几十年里,随着网络基础设施的普及与改进以及移动互联网相关服务及应用的推广,信息技术的发展让我们进入一个信息爆炸的时代。现如今,无论您身处哪个行业,信息爆炸都是一个不可回避的话题。从航空航天到电子商务,从银行业到医疗行业,虽然行业不同,但都面临着同样的问题,那就是呈爆炸式增长的数据量。民航旅游业也不例夕卜。业界将这种爆炸式增长的数据称为大数据,大数据虽然价值密度低,但是总体价值大,因此大数据既是机遇又是挑战。大数据带来的机遇之一,就是通过大数据分析用户行为习惯,据此为用户提供个性代的推荐。
[0003]但目前,航空旅游业的个性化推荐存在以下问题:
1.数据收集问题。用户在航空旅游的网站上留下了大量的数据,这些数据不仅包括交易等结构化的数据,还包括用户行为等非结构化数据。传统推荐因为受技术限制,只关注结构化数据的应用,而忽略了非结构化数据的应用。
[0004]2.推荐算法可扩展性问题。随着用户和物品数量的大量增加,算法的推荐性能和速度都大幅降低,如此一来,时间和空间都超出可控范围,导致其执行效率变得非常低下,严重影响推荐效果和用户满意度。
[0005]3.互联网环境下,社交网络发达,信息获取途径多,用户认知和接受能力的周期变短,使得用户偏好波动变大。比方说某用户在两周以前特别喜欢篮球,他的旅游计划是本周去美国看一场NBA比赛,但在上周他通过社交网络加入到一个足球的社交群体,通过与群体的交流认知,他觉得足球更有魅力,由此他就本周旅行计划改为去曼彻斯特老特拉福球场看一场足球比赛。

【发明内容】

[0006]为了解决上述问题,本发明提供一种旅客需求推荐方法,本发明的技术方案如下。
[0007]旅客需求推荐方法,包括以下步骤:
步骤1,收集客户信息,历史交易数据,等级信息等常规结构化数据;
步骤2,通过JS嵌码的方式收集用户在网站的在线行为等非结构化数据;
步骤3,将收集到的数据统一存放到分布式文件系统HDFS ;
步骤4,在Mahout框架上选择推荐模型,并利用收集到的数据训练推荐模型;
步骤5,利用Mahout框架采用训练好的模型基于历史数据做离线推荐,并将推荐结果存储到HDFS ;
步骤6,当用户登录网站,为用户提供离线推荐;
步骤7,浏览网站的过程中触发事件,为用户提供基于Storm的在线推荐。[0008]其中,推荐模型的训练过程如下:
步骤1,根据数据量的规模以及推荐性能要求,选择合适的推荐模型;
步骤2,对数据进行数据预处理;
步骤3,训练模型,模型训练好之后,将模型关键参数放入到CSV文件,并存储到HDFS模型文件夹model之中。
[0009]其中,在线推荐和离线推荐使用同一个推荐模型,模型基于离线的历史数据训练,其中历史数据包括结构化的交易数据,也包括非结构化的在线行为数据。
[0010]其中,当数据增长量超过一定阀值时,更新离线推荐和训练模型,阀值可自行设定,离线推荐的阀值初定为5%,训练模型的更新阀值初定为15%。
[0011]本发明的有益效果是,
1.本发明扩大了数据的应用范围,不仅利用了用户交易等结构化数据,还利用了用户行为等非结构化数据,通过扩大数据应用范围,提升推荐精度。
[0012]2.本发明采用在线推荐和离线推荐两种推荐方式,不仅使得推荐的稳定性更高,而且可再次提升推荐精度。
[0013]3.在线推荐和离线推荐均采用分布式的计算框架实现,通过分布式框架提升计算能力,可根据数据规模在计算能力上做水平扩展,解决算法的可扩展性问题。
[0014]4.JS页面标记获取用户行为数据灵活性和可控性都较好,不仅可定制收集各用种户行为,而且获取信息较为完整。
[0015]以下将将结合附图以实施例的方式对本发明做进一步阐述。
【专利附图】

【附图说明】
[0016]图1是本发明实施例的技术架构图;
图2是本发明实施例JS标记获取用户行为信息;
图3本发明实施例的用户行为示意图;
图4本发明实施例的推荐效果示意图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
[0018]如图1所示,本发明实施推荐方法包括离线推荐和在线推荐两部分,其中离线推荐的执行过程如下:
1.收集用户历史数据,数据包括用户个人信息,历史交易数据,旅游产品数据等;
2.应用Flume框架,将历史数据导入到HDFS文件夹;数据放入HDFS之后以数据类别存放,然后在每个类别下面以时间戳为文件夹名构造子文件夹,以此标识文件的增量式存放,文件名用类别加时间戳的方式标识;如有13年10月I号的针对十一假期推出的一个革命老区团体游活动的数据文件,就会被放到文件夹/travel/201310下,命名为travel—20131001.csv ;
3.应用Mahout框架,利用已获得的历史数据,训练推荐模型;推荐模型训练的结果输出是具体的算法参数,结果以CSV的形式存储在HDFS模型文件夹model之中; 4.应用Mahout框架利用已训练好的模型基于历史数据做个性化的推荐,推荐结果以CSV的形式存放到HDFS推荐文件夹recommendation离线部分offline之中;
5.开发ServiceAPI调用推荐结果;Service API的参数包括推荐类型,用户ID ;
6.前台调用ServiceAPI,获取推荐结果并展示;推荐结果包括推荐类型,推荐内容
等;
对应离线推荐,在线推荐的执行流程如下:
1.用户浏览网站,触发推荐事件;
2.应用Kafka框架根据触发事件,推送数据到storm集群;推送数据包括触发事件的行为数据以及推荐所需的部分历史数据;行为数据是指事件认定的关键词,如活动名称,旅游线路,旅游景点,酒店名称等;部分历史数据是指与关键词和用户相关的历史数据;
3.应用storm集群启动实时推荐引擎,应用离线推荐过程中训练好的模型为用户进行实时推荐,并将推荐结果以CSV的形式存放到HDFS推荐文件夹recommendation在线部分online 之中;
4.前台调用ServiceAPI,获取推荐结果并展示;在线推荐的Service API同离线推荐的Service API相同,不同之处在于前台调用时传递的推荐类型参数。
[0019]在推荐实施过程中,利用JS嵌码收集用户在线行为数据和推荐实现是关键步骤。如图2所示,JS嵌码收集用户在线行为数据包括以下步骤:
1.根据定义的事件,嵌入JS代码到网页;
2.用户访问网页时,将同时并发执行嵌套在页面中的JS标记代码;
3.JS代码通过事件或时间触发,将需要获取的用户行为信息以avix)的方式发送到特定端口 ;
4.Flume监听端口,当监听到端口有数据输入时,将用户行为数据sink到HDFS中。
[0020]在线推荐由事件触发,事件由系统定义。如图3所示,当用户从同一出发地连续搜索多个旅游城市目的地达到一定次数时,可将此行为定义为旅游意向事件travel_intention,据此事件可以对其做旅游线路等推荐。
[0021]系统的推荐结果如图4所示,推荐内容根据具体的推荐主题而定。
【权利要求】
1.旅客需求推荐方法,其特征在于,包括以下步骤: 步骤1,收集客户信息,历史交易数据,等级信息等常规结构化数据; 步骤2,通过JS嵌码的方式收集用户在网站的在线行为等非结构化数据; 步骤3,将收集到的数据统一存放到分布式文件系统HDFS ; 步骤4,在Mahout框架上选择推荐模型,并利用收集到的数据训练推荐模型; 步骤5,利用Mahout框架采用训练好的模型基于历史数据做离线推荐,并将推荐结果存储到HDFS ; 步骤6,当用户登录网站,为用户提供离线推荐; 步骤7,浏览网站的过程中触发事件,为用户提供基于Storm的在线推荐。
2.如权利要求1所述的旅客需求推荐方法,其特征在于:步骤I中采用JS标记收集到的非结构数据包括点击,浏览区域,停留时间,Ajax。
3.如权利要求1或2所述的旅客需求推荐方法,其特征在于:步骤3所述的HDFS文件系统,包括基于HDFS文件系统的数据库Hbase和Hive。
4.如权利要求1所述的旅客需求推荐方法,其特征在于:步骤4中所述模型不仅包括聚类,分类,预测,协同过滤等常用模型,还包括自行开发定制新的模型。
5.如权利要求1或权利要求4所述的旅客需求推荐方法,其特征在于:步骤4和5所述的模型训练和推荐均采用分布式的实现。
6.如权利要求1所述的旅客需求推荐方法,其特征在于:步骤7中所述的事件采用定制的方式,定制方法视具体应用环境而定。
【文档编号】G06Q50/14GK104021483SQ201410175627
【公开日】2014年9月3日 申请日期:2014年6月26日 优先权日:2014年6月26日
【发明者】陈思恩, 冯望烟 申请人:陈思恩

最新回复(0)