干货 | 深度多元时序模型在携程关键指标预测场景下的探索应用

本文介绍了携程如何使用深度多元时序模型预测流量、订单量和GMV等关键指标,重点讨论了预测难点、模型设计和实战经验,包括Prophet、Informer、Autoformer、DLinear和TimesNet等模型的比较与应用。
摘要由CSDN通过智能技术生成

作者简介

doublering,携程高级算法工程师,关注自然语言处理、LLMs、时序预测等领域。

一、背景

互联网行业中,有许多关键指标直接影响公司未来的规划与决策,比如流量、订单量、销售额等。有效地预测这些关键指标能够辅助公司提前做出相应的预算、规划、决策,实现收益的最大化。

预测关键指标实际上是个典型的时间序列预测问题,即基于指标的历史真实数据来预测未来一段时间的值。在携程也有一些相关的业务场景,本文将以预测流量、订单量、GMV为例,介绍我们在时间序列预测方面使用的一些方法与思考。

二、问题定义与难点

2.1 口径定义

预测目标值:流量、订单量和GMV等关键指标。

预测时长:未来30天。

重点关注节假日期间的预测,包括清明节、劳动节等法定节假日以及法定节假日的前后一段时间,要求在法定节假日的提前一段时间进行预报,为业务在关键时间节点的投放提供参考。

2.2 难点

在现实场景中,时间序列预测会受到宏观政策、自然灾害、社会运动等多种因素的影响,而且这些因素难以量化,这集中表现为时序数据中的突变点和非周期性。再者,时序数据的周期通常以天为单位,一些历史较短领域的训练样本会不足。同时,时序模型需要支持多个特征辅助预测,如节假日特征、时间类特征以及各种协变量等。为了更早地布局,需要进行长时预测,即预测未来一个月、半年、一年的值。

三、方案设计

3.1 数据选择与特征构建

选取近几年的关键指标的时序数据,时间粒度为“天”。我们画出各项指标的历史数据,可以看到明显的节假日效应,每个尖峰都对应着法定节假日或者寒暑假期间,数值的涨跌对应着工作日与非工作日等。

由此,我们依据时序顺序追溯构造7个假期/时间型特征,分别为:预测日是否为假期、预测日是否为工作日、预测日在假期中是第几天、预测日距离下一次假期的天数、预测日是周几(周日为1)、预测日所处星期在一年中是第几周、预测日所处的季节等。

566e9199f3ebb8eaeabd5e1dc65bfab9.png

同时,注意到各项指标之间的总体趋势是有关联的,当预测其中一项指标时,其他指标也可作为特征入模,以提高预测的准确性,因此总共构建了20个左右的特征。

3.2 模型介绍

通常来说,时间序列预测模型大致可分为三类:一是传统时间序列预测模型,比如移动平均、ARIMA、指数平滑法等,二是机器学习模型,比如线性回归、树模型、Prophet等,三是深度学习模型,比如时序卷积网络(TCN)、LSTM、Transformer等。

目前工业实践上,采用传统时间序列预测模型进行预估较为普遍。传统时间序列预测模型具有可解释性、简单直观、理论成熟等优点,但其通常只能以单变量的方式进行预测,而我们的任务涉及多个关键指标的预估,有多个特征会影响这些指标,而且这些指标之间也互有影响。除此之外,传统时间序列预测模型处理多步预测时,往往采用滚动预测的策略,即使用前一期预测值作为实际值加入模型,从而得到下一期的预测,这种策略会导致预测误差累计,从而使得多步预测的精准性越来越差。

机器学习方法可以利用多变量进行预测,学习到时间序列数据中的复杂模式和趋势,但是其需要针对每一个指标训练一个模型,并且涉及到多步预测时,也会存在误差累积的缺点。

近年来,基于深度学习的方法也被广泛地应用于时序预测任务中,例如时序卷积网络(TCN)、LSTM、Transformer等。这些方法克服了上述缺点,具有支持输入多个变量,自适应地提取特征,执行多步预测,一次性输出多个指标的预测值等优势。因此,本文的实战部分利用的是深度学习方法。下面简要介绍实践中涉及到的几种模型或方法。

3.2.1 Prophet

Prophet是Facebook开发的时间序列预测模型,具有简单易用、运行效率高、可解释性强等优点。Prophet是将时间序列看成是一个关于t的函数,并将时间序列分解为趋势项、季节项和节假日项等,有加法模型和乘法模型两种模式,加法模型的核心公式如下:

y(t)=g(t)+s(t)+h(t)+ϵt

其中,g(t)代表趋势项,s(t)代表季节项,h(t)代表节假日项(或者泛指外部变量), ϵt代表噪声项。

趋势项用于拟合时间序列非周期性的趋势变化,例如:上升、下降趋势。按照趋势模式,可分为线性趋势和非线性趋势,线性趋势的公式为:

g(t)=kt+m

非线性趋势的公式为:

9fcd0a92be57f87dde0d4d69d8c58a7e.png

其中,C表示上限容量,即g(t)所能达到的上界;k表示增长率;m表示偏移参数,趋势项斜率发生变化的转折点。调整m可以对曲线进行左右平移。在具体的实现中,C和k都是时间t的函数,且k的变化是不连续的,为了使g(t)连续会引入一系列复杂的变换,在此不赘述。

季节项用于拟合周、月、季等的周期性变化趋势,使用傅里叶级数来逼近:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值