机票附加产品的推荐系统及方法与流程

文档序号:11217222阅读:1114来源:国知局
机票附加产品的推荐系统及方法与流程

本发明涉及一种机票附加产品的推荐系统及方法。



背景技术:

在线购买机票已经成为用户购买机票的主流方式,用户在购买机票的同时,往往会购买机票附加产品(例如保险、快速安检通道等和机票联合出售商品)。也有很多用户由于匆忙会遗忘购买,为了给用户更好的购买体验,可以在用户购买机票时对用户可能购买的产品进行默认勾选。准确的默认勾选能有效提高用户体验度,错误率高的勾选会造成用户不满意进而导致用户流失。准确预测用户的购买行为,并进行默认勾选推荐十分重要。

经过多年的发展,推荐系统已经在各个领域内得到广泛的应用,尤其在个性化推荐里面。例如,电影和音乐等。主流的推荐系统主要分两种,利用记录,利用特征。利用记录是基于协同过滤的推荐,利用用户的购买历史,找出购买历史相近的用户,为他们推荐相似的产品。另一种是基于模型的推荐,利用用户和商品的特征把购买问题当成简单的分类问题,例如,一个用户是否喜欢某一部电影。有很多基于模型的算法,例如,决策树、svm(supportvectormachine,支持向量机)、贝叶斯等。

而关于机票附加产品的推荐问题和以往的推荐问题有所不同。首先,是关于购买了机票以后的附加产品的推荐问题,以往推荐的一般是同类产品或者是用户购买产品的关联产品;其次,产品的数量很少,以往的推荐的产品数量一般是百到万甚至百万;最后,由于机票不是一个经常购买的产品(一般一个用户一年只购买不到4张),用户的历史信息比较少,而且有很多新的用户出现。

综上所述,如何利用相对不足的机票订单信息来预测用户购买机票附加产品的行为是一个困难的过程。对于一个用户而言,购买的机票频率不高,所以不太适合使用协同过滤一类的算法。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中推荐系统无法准确地推荐出机票附加产品的缺陷,提供一种机票附加产品的推荐系统及方法。

本发明是通过下述技术方案来解决上述技术问题:

一种机票附加产品的推荐系统,其特点在于,所述推荐系统包括模型训练模块、模型测试验证模块及推荐模块;

所述模型训练模块用于通过xgboost算法(一种分类算法)并结合训练数据来训练出xgboost模型;

所述模型测试验证模块用于通过测试数据对所述xgboost模型进行测试,并且通过所述测试数据对应的验证结果来验证所述xgboost模型的输出准确率;

所述推荐模块用于当所述输出准确率大于或等于预设准确率时,上线所述xgboost模型,所述推荐模块还用于当接收到推荐请求时,通过所述xgboost模型并结合请求中的用户数据来推荐出机票附加产品。

较佳地,所述训练数据包括第一用户历史订单数据及第一用户特征数据,所述测试数据包括第二用户历史订单数据及第二用户特征数据,所述用户数据包括第三用户历史订单数据、第三用户特征数据及当前航班信息。

较佳地,所述第一用户历史订单数据、所述第二用户历史订单数据及第三用户历史订单数据均包括始发地、目的地、起飞时间、落地时间及机票附加产品购买信息;

所述第一用户特征数据、所述第二用户特征数据及第三用户特征数据均包括年龄、性别及价格敏感度;

所述当前航班信息包括当前起飞时间、当前起飞城市及机票价格。

较佳地,所述模型训练模块用于采用spark分布式计算(一种高效的分布式计算)来训练出xgboost模型;和/或,

所述模型测试验证模块用于采用交叉验证法对所述xgboost模型进行测试。

较佳地,所述推荐模块还用于上线所述xgboost模型后,通过a/b测试(一种通过对照实验的测试方法)调节出决策阈值,若通过所述xgboost模型预测出的用户购买概率大于或等于所述决策阈值时,默认勾选相应的机票附加产品,若所述用户购买概率小于所述决策阈值时,取消对相应的机票附加产品的勾选。

一种机票附加产品的推荐方法,其特点在于,所述推荐方法包括以下步骤:

s1、通过xgboost算法并结合训练数据来训练出xgboost模型;

s2、通过测试数据对所述xgboost模型进行测试,并且通过所述测试数据对应的验证结果来验证所述xgboost模型的输出准确率;

s3、当所述输出准确率大于或等于预设准确率时,上线所述xgboost模型,所述推荐模块还用于当接收到推荐请求时,通过所述xgboost模型并结合请求中的用户数据来推荐出机票附加产品。

较佳地,在步骤s1中,所述训练数据包括第一用户历史订单数据及第一用户特征数据;

在步骤s2中,所述测试数据包括第二用户历史订单数据及第二用户特征数据;

在步骤s3中,所述用户数据包括第三用户历史订单数据、第三用户特征数据及当前航班信息。

较佳地,所述第一用户历史订单数据、所述第二用户历史订单数据及第三用户历史订单数据均包括始发地、目的地、起飞时间、落地时间及机票附加产品购买信息;

所述第一用户特征数据、所述第二用户特征数据及第三用户特征数据均包括年龄、性别及价格敏感度;

所述当前航班信息包括当前起飞时间、当前起飞城市及机票价格。

较佳地,在步骤s1中,采用spark分布式计算来训练出xgboost模型;和/或,在步骤s2中,采用交叉验证法对所述xgboost模型进行测试。

较佳地,在步骤s3中,上线所述xgboost模型后,通过a/b测试调节出决策阈值,若通过所述xgboost模型预测出的用户购买概率大于或等于所述决策阈值时,默认勾选相应的机票附加产品,若所述用户购买概率小于所述决策阈值时,取消对相应的机票附加产品的勾选。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明提供的机票附加产品的推荐系统及方法利用xgboost模型来准确细致地推荐出机票附加产品,可对用户所需要的机票附加产品进行准确的默认勾选,提高了推荐精度,节省了人力成本,从而提高用户体验度,且采用spark分布式计算来减少模型训练时间,以使得在较短的时间内得到所需模型。

附图说明

图1为本发明较佳实施例的机票附加产品的推荐系统的结构示意图。

图2为本发明较佳实施例的机票附加产品的推荐方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

如图1所示,本实施例提供的机票附加产品的推荐系统1包括模型训练模块11、模型测试验证模块12及推荐模块13。

具体的,模型训练模块11用于通过xgboost算法并结合训练数据来训练出xgboost模型,在历史数据库中选取合适的数据来作为用于训练模型的数据。

在本实施例中,所述训练数据包括第一用户历史订单数据及第一用户特征数据,所述第一用户历史订单数据包括第一始发地、第一目的地、第一起飞时间、第一落地时间及第一机票附加产品购买信息,所述第一用户特征数据包括第一年龄、第一性别及第一价格敏感度,价格敏感度用于表征低价敏感用户或高价用户等信息,当然在本实施例中并不具体限定训练数据的类型,均可根据实际情况来进行相应的选择。

xgboost模型有许多参数需要调节,参数调节的好坏会有不同的效果。在本实施例中,通过训练数据调节出xgboost模型最合适的决策树数量、最大深度、最小分裂参数及学习速率等参数,从而得到最合适的xgboost模型,如何调节出合适的参数需根据实际情况及所需模型来判断,其中,决策树的数量和最大深度对整个模型效果的影响最大,除了上述4个参数以外还有其他参数,不过对效果影响不大,因此在本实施例中不再一一赘述。

在本实施例中,模型训练模块用于采用spark分布式计算来训练出xgboost模型。由于机票附加产品很少,对于每个产品,可以把用户购买与否当成一个二分类问题,对于二分类问题,梯度下降决策树是一个很流行的算法,然而该算法虽然准确性高,预测效果好,但是需要大量的时间,对于这类有着大量并行计算的问题,便可以通过将可并行的部分分配到不同的服务器上来减少计算时间。根据推荐需求和特征来选择xgboost算法,并通过spark分布式计算来减少模型训练时间,使得在较短的时间内得到所需模型,封装之后供线上系统调用。

模型测试验证模块12用于通过测试数据对所述xgboost模型进行测试,并且通过所述测试数据对应的验证结果来验证所述xgboost模型的输出准确率,在历史数据库中选取合适的数据来作为用于测试模型的数据。

在本实施例中,所述测试数据包括第二用户历史订单数据及第二用户特征数据,所述第二用户历史订单数据包括第二始发地、第二目的地、第二起飞时间、第二落地时间及第二机票附加产品购买信息,所述第二用户特征数据包括第二年龄、第二性别及第二价格敏感度,当然在本实施例中并不具体限定测试数据的类型,均可根据实际情况来进行相应的选择。

在本实施例中,模型测试验证模块用于采用交叉验证法对所述xgboost模型进行测试。交叉验证法是检验模型好坏的基本方法,把数据分为k份,轮流把k份数据中的1份作为测试集,剩下k-1份作为训练集,选出平均测试效果最好的模型。此时,利用交叉验证法可进一步调节出最合适的各项参数。

推荐模块13用于当所述输出准确率大于或等于预设准确率时,上线所述xgboost模型,推荐模块13还用于当接收到推荐请求时,通过所述xgboost模型并结合请求中的用户数据来推荐出机票附加产品。

在本实施例中,所述用户数据包括第三用户历史订单数据、第三用户特征数据及当前航班信息,所述第三用户历史订单数据包括第三始发地、第三目的地、第三起飞时间、第三落地时间及第三机票附加产品购买信息,所述第三用户特征数据包括第三年龄、第三性别及第三价格敏感度,所述当前航班信息包括当前起飞时间、当前起飞城市及机票价格,当然在本实施例中并不具体限定用户数据的类型,均可根据实际情况来进行相应的选择。

在本实施例中,上线所述xgboost模型一段时间,此过程中,通过a/b测试调节出决策阈值,即通过使用所述xgboost模型和使用其他模型来进行对照实验,决策阈值决定了是否默认勾选的基准线。xgboost模型可以预测出用户购买概率,若通过所述xgboost模型预测出的用户购买概率大于或等于所述决策阈值时,默认勾选相应的机票附加产品,若所述用户购买概率小于所述决策阈值时,取消对相应的机票附加产品的默认勾选,从而为用户推荐出合适的机票附加产品。

相对于现有的采用规则的推荐方案,xgboost模型可以通过对用户和机票情景特征更好的学习,做更准确细致的预测,从而提高用户体验度。基于规则的推荐方案主要是基于业务经验,人力成本大且人为影响因素大,往往容易忽略一些重要信息。使用xgboost模型不需要过多的人力成本,利用用户和机票的原始数据即可学习。并利用分布式计算,并行训练模型,从而缩短训练时间并得到高精度模型。

如图2所示,本实施例还提供一种机票附加产品的推荐方法,所述推荐方法包括以下步骤:

步骤101、通过xgboost算法并结合训练数据来训练出xgboost模型。

在本步骤中,在历史数据库中选取合适的数据来作为用于训练模型的数据。

在本步骤中,所述训练数据包括第一用户历史订单数据及第一用户特征数据,所述第一用户历史订单数据包括第一始发地、第一目的地、第一起飞时间、第一落地时间及第一机票附加产品购买信息,所述第一用户特征数据包括第一年龄、第一性别及第一价格敏感度,价格敏感度用于表征低价敏感用户或高价用户等信息,当然在本步骤中并不具体限定训练数据的类型,均可根据实际情况来进行相应的选择。

xgboost模型有许多参数需要调节,参数调节的好坏会有不同的效果。在本步骤中,通过训练数据调节出xgboost模型最合适的决策树数量、最大深度、最小分裂参数及学习速率等参数,从而得到最合适的xgboost模型,如何调节出合适的参数需根据实际情况及所需模型来判断,其中,决策树的数量和最大深度对整个模型效果的影响最大,除了上述4个参数以外还有其他参数,不过对效果影响不大,因此在本步骤中不再一一赘述。

在本步骤中,采用spark分布式计算来训练出xgboost模型。由于机票附加产品很少,对于每个产品,可以把用户购买与否当成一个二分类问题,对于二分类问题,梯度下降决策树是一个很流行的算法,然而该算法虽然准确性高,预测效果好,但是需要大量的时间,对于这类有着大量并行计算的问题,便可以通过将可并行的部分分配到不同的服务器上来减少计算时间。根据推荐需求和特征来选择xgboost算法,并通过spark分布式计算来减少模型训练时间,使得在较短的时间内得到所需模型,封装之后供线上系统调用。

步骤102、通过测试数据对xgboost模型进行测试及验证。

在本步骤中,通过测试数据对所述xgboost模型进行测试,并且通过所述测试数据对应的验证结果来验证所述xgboost模型的输出准确率,在历史数据库中选取合适的数据来作为用于测试模型的数据。

在本步骤中,所述测试数据包括第二用户历史订单数据及第二用户特征数据,所述第二用户历史订单数据包括第二始发地、第二目的地、第二起飞时间、第二落地时间及第二机票附加产品购买信息,所述第二用户特征数据包括第二年龄、第二性别及第二价格敏感度,当然在本步骤中并不具体限定测试数据的类型,均可根据实际情况来进行相应的选择。

在本步骤中,采用交叉验证法对所述xgboost模型进行测试。交叉验证法是检验模型好坏的基本方法,把数据分为k份,轮流把k份数据中的1份作为测试集,剩下k-1份作为训练集,选出平均测试效果最好的模型。此时,利用交叉验证法可进一步调节出最合适的各项参数。

步骤103、上线xgboost模型,调节出决策阈值,根据推荐请求及决策阈值推荐出机票附加产品。

在本步骤中,当所述输出准确率大于或等于预设准确率时,上线所述xgboost模型,当接收到推荐请求时,通过所述xgboost模型并结合请求中的用户数据来推荐出机票附加产品。

在本步骤中,所述用户数据包括第三用户历史订单数据、第三用户特征数据及当前航班信息,所述第三用户历史订单数据包括第三始发地、第三目的地、第三起飞时间、第三落地时间及第三机票附加产品购买信息,所述第三用户特征数据包括第三年龄、第三性别及第三价格敏感度,所述当前航班信息包括当前起飞时间、当前起飞城市及机票价格,当然在本步骤中并不具体限定用户数据的类型,均可根据实际情况来进行相应的选择。

在本步骤中,上线所述xgboost模型一段时间,此过程中,通过a/b测试调节出决策阈值,即通过使用所述xgboost模型和使用其他模型来进行对照实验,决策阈值决定了是否默认勾选的基准线。xgboost模型可以预测出用户购买概率,若通过所述xgboost模型预测出的用户购买概率大于或等于所述决策阈值时,默认勾选相应的机票附加产品,若所述用户购买概率小于所述决策阈值时,取消对相应的机票附加产品的默认勾选,从而为用户推荐出合适的机票附加产品。

本实施例提供的机票附加产品的推荐系统及方法利用xgboost模型来准确细致地推荐出机票附加产品,可对用户所需要的机票附加产品进行准确的默认勾选,提高了推荐精度,节省了人力成本,从而提高用户体验度,且采用spark分布式计算来减少模型训练时间,以使得在较短的时间内得到所需模型。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1