专栏首页携程技术干货 | 携程机票是如何准确预测未来一段时间话务量的?

干货 | 携程机票是如何准确预测未来一段时间话务量的?

作者简介

侯淑芳,2016年加入携程机票大数据团队,负责数据分析和挖掘项目,目前主要负责航变预测和话务预测及排班优化。

一、背景

客服中心是携程和用户之间重要的沟通渠道。出于对呼叫中心成本控制以及为用户提供更满意的服务这两方面的均衡考量,我们期望能够预测出呼叫中心未来一段时间的呼入量,以此来预先准确地进行客服人员的排班,在保证话务接通率的基础上缩减人力成本。

而在实际生产应用时,不同行业的话务中心都会受到不同行业相关外生因素干扰。比如营销策略、经济周期、自然时令季节以及天气等等。因此,除了关心话务呼入量的自然分布特征外,还需要结合自身行业属性,充分考虑可能影响话务异常趋势的外生因素,把这些外生因素融入到模型中去,尽可能提升模型预估的准确率。

二、技术方案实施

1、底层数据清洗和流转流程规范

携程呼叫中心由于成立时间比较久,数据保存和传输方式比较传统,都是人工通过EXCEL和邮件手工记录和传输数据。这种现存的数据传输和保存方式不利于话务预测系统的自动化流程。因为,我们第一个需要解决的便是数据的自动化存储和传输。

针对此,我们为预订部的客服工作人员开发了网站,方便其上传历史过往每天的实际话务量,通过MYSQL落库,然后通过数据抽取流程把MYSQL的数据同步到HIVE数据库中,自动化的输入模型中。

2、识别数据波动的趋势和规律

对数据波动的趋势和规律进行分析探索是数据挖掘的第一步工作。我们的业务场景是本周四要提前预测出下一周每天半小时粒度的携程客服中心呼入话量。

因此,我们需要观察携程客服中心历史话务数据的分布规律(包括年话务量分布、月话务量分布、日话务量分布、小时粒度分布以及半小时粒度分布),其中的日粒度和半小时粒度的分布规律如下图所示:

日话务量走势

半小时粒度话务走势

我们知道数据依附于商业活动的属性,每个行业都有其特定业务属性和商业周期。就携程这种具有代表性的旅游行业来说,其生产活动有着很强的季节性和周期性,很大程度上会受到旅游淡旺季、出行天气状况以及经济景气等等各种因素的影响。根据上图的数据,我们可以看出携程话务总体来说呈现出来以下几点特征:

  • 时间序列特征明显

我们可以看到整个数据的走势呈现出很明显的时间特性。

  • 周期特征多样化

通过数据我们可以看到,携程的话务呈现出明显的年周期波动、月周期波动、工作日与双休日这种周周期的波动以及一天之内小时级别的周期性波动。

  • 逐年递减的发展趋势

这种人工接听话务逐年递减的趋势很大程度上要归功于携程APP技术功能的完善。由于携程历年来都很重视技术的研发和用户的操作体验,其PC端和APP的功能设计愈来愈智能化,能极大程度的满足用户的自动化操作需求,因此减少了大量的人工来电咨询量。

  • 节假日波动

节假日的话务量明显要低于正常工作日以及正常双休日的话量。由于携程机票主要提供空中交通的出行服务,其出行热度会直接受制于受到旅游淡旺季的影响,而其咨询期一般都集中在用户的出行前(也就是节假日前),在节假日中,用户都已经处在目的地享受假期,因为呼入话量会急剧下降。

  • 异常值波动

同于受制于携程机票的业务属性,用户能否顺利出行很大程度上掣肘于天气状况,如果发生了极端不适合飞行的天气状况,势必会出现航班延误甚至取消,而此时就会出现携程客户中心的话务暴增点,如果不能提前预估到这种爆点的话量,合理安排客户人员,那在这种时点就会严重影响到用户的体验。

3、特征工程准备

我们知道业内有句俗话“特征工程做不好,调参调到老”,由此可知,特征工程很大程度上决定了一个项目的成败。在预测一个对象时(Y),我们不仅要关注这个Y内部的运行规律,更要注重跟这个Y相关外生因素X的影响。

在上面的篇幅中,我们已经研究的Y的运行规律,接下来我们需要考虑的是X,而X因素的构建很是依赖于业务经验,针对携程机票的商业属性,我们知道机票订单是影响来电量的一个很重要的因素。同时,在上面的篇幅中,我们也提到过极端天气状况是导致话量暴增的直接因素。另外,旅游淡旺季以及节假日这些时间特性也是直接导致话务呈现周期趋势的主要原因。因此,在已有的航变预测系统基础上,我们构建了话务预测V1.0系统:

4、V1.0预测系统模型原理

基于工程部署上面简单、高效、快捷的需求,结合对模型预测准确率的考量,在V1.0系统的实现中,我们融合了外生变量、傅里叶项和ARM模型,也即广义上的ARIMAX模型:

5、V1.0预测系统存在的问题

尽管V1.0系统能够满足日常的预测准确率需求,但是我们发现在节假日和重大天气的预测准确率远没有达到我们预想的准确率。而我们发现这个问题很大程度上要掣肘于模型的表现形式,由于傅里叶项和ARMA的周期只能抽取固定周期的频率,针对农历节假日这种变动周期的频率却没有办法进行精准的刻画,同时我们添加进去的外变量,比如航变和订单因子的影响,在ARIMAX模型中主要都是通过线性关系来影响Y(也就是我们的话务量),其训练出来的模型在这些外生变量上面的系数都比较小,最后导致该种模型不能很好地拟合出这些X和Y之间的关系。

6、V2.0预测系统的开发

为解决V1.0系统暴露出来的问题,我们又开发了V2.0的预测系统,想通过结合时间序列模型在周期性建模上面的优势以及树模型回归刻画变量之间非线性关系的特长,来提升整个系统的预测精度。

出于此,我们首先对原始的话务数据进行了BOX-COX变化,然后对变化后的数据进行三阶指数平滑建模(tbats模型),接着tbats的残差做ARIMA建模:

最后用XGBOOST回归树结合我们的X对arima模型的残差进行修正,最终用修正过后的残差来修正tbats模型的结果。

本项目从传统的时间序列模型开始尝试,逐步修正不同模型在项目应用中产生的问题,我们回测了不同模型在2018-03-05到2018-07-10这段期间的预测准确率,各模型最终的表现如下:

预测模型

平均预测准确率

STL

73.9%

ARIMAX+Fourier

78.9%

TBATS

79.6%

XGBOOST

82.7%

XGB+TBATS

89.5%

三、小结

本项目主要是针对携程呼叫中心的人力排班问题,提前一周进行话务预测。本项目中的方法同样适用于其他行业呼叫中心来电预测。

我们最终发现树模型回归优于传统的时间序列方法,但是能否充分发挥树模型的预测功效,很大程度上取决于特征工程的好坏。

尤其是在时间序列数据的预测上,传统的时间序列模型已然不能解决各行业所遭遇的业务因素对时间序列趋势的干扰,为了把业务因素纳入到预测系统中,我们必须充分构建能够很好的刻画出业务干扰因素的特征,如果你开始考虑树模型回归,请千万记住要把时间规律和趋势提取出来并作为特征放入你树模型中。

本文分享自微信公众号 - 携程技术中心(ctriptech),作者:侯淑芳

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【观点】梁建章:将大公司变成小公司

    导语: 9月18-19日,由中国企业家俱乐部主办的“中国绿公司联盟圆桌会”第七站在上海举行,近70位嘉宾探访了中国绿公司联盟成员企业携程。19日...

    携程技术
  • 携程网梁建章:打造世界领先的互联网企业

    2014年11月22日,第十四届中国MBA发展论坛暨北大光华MBA二十周年庆典在北京大学邱德拔体育馆开幕。2014年11月23日上午于光华管理学...

    携程技术
  • 《携程技术2018年度合辑》,送给爱学习的你~

    2019年已悄然来到我们身边,回首过去的2018年,携程GMV达到6900亿元,首次成为全球OTA行业第一;线下门店超7000家,国内城市覆盖率达到80%;海外...

    携程技术
  • 组和分组卷积

    考虑一个正方形。它是对称的吗?它是如何对称的?它有多少对称性?它有什么样的对称性?

    abtion
  • 马云上市公开信:我本身就充满争议

    大数据文摘
  • 数据结构与算法-二叉树

    cwl_java
  • Autofac高级用法之动态代理

    晓晨
  • 8国5G网速测评!美国最快,是4G的2.7倍

    这期视频他主要回顾了自己这一个月爆红之后的经历和感悟,在反思的过程中,他引用了艺术家Andy Warhol的“十五分钟定律”——每个人都能出名15分钟。何同学说...

    大数据文摘
  • 每日一学——神经网络(下)

    神经网络结构 灵活地组织层 将神经网络算法以神经元的形式图形化。神经网络被建模成神经元的集合,神经元之间以无环图的形式进行连接。也就是说,一些神经元的输出是另一...

    计算机视觉研究院
  • pymysql 1064 (Python字符串转义问题)

    今天在处理前些天爬取的失败数据记录重新入库的时候发现在存入mysql的时候一直给我报1064错误,

    kirin

作者介绍

携程技术

携程工程师

携程 · 工程师 (已认证)

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券