字节@漫谈时间序列预测
链接:https://zhuanlan.zhihu.com/p/486343380
模型优化目标为 MAE 时,整体的预测就会比平均值小。部分业务预测偏小跟预测偏多造成的影响是不同的。一般会参考整体的预测偏差,进而使用一些非对称 loss 来进行具体优化。
交叉验证
- 在时间维度上做前后的 split
[[传统时间序列预测]]
[[ARIMA]] 对 AR 部分的残差做移动平均
- [[Python/package]] pmdarima,通过 AutoML 手段来自动搜索参数
[[Prophet]]
[[时间序列预测/问题]]
- 对于时序本身有一些性质上的要求,需要结合预处理来做拟合,不是端到端优化
- 需要对每条序列做拟合预测,性能开销大,数据利用率和泛化能力堪忧,无法做模型复用
- 较难引入外部变量
- 多步预测能力比较差
机器学习方法
基于训练窗口的信息来构建特征,转化为表格类预测问题来求解
[[Feature Engineering/Time Series Feature]]
- tsfresh 自动特征工程
模型选择
- 自动参数优化 Optuna 或 FLAML
- NN 优势
- 通过 embedding 学习类别变量
- loss 设计更加灵活
- [[Tabular Data]]
- local 模型和 global 模型取舍
- local 方法每一个序列都要构建一个单独的模型来训练预测
- global 使用所有数据进行训练
- 例子
- 股票中科技股的趋势和银行股的趋势明显不同
深度学习方法
思路
- 充分使用多层级维度的信息
- 只使用原始的序列和其它相关输入信息,基本不做特征工程,希望通过各类模型结构自动学习到时序的隐含表达,进而做到端到端的预测输出
与机器学习方法对比:
- 机器学习方法一般模型部分处理会相对简单,但涉及到的预处理,特征工程及后处理方面会比较复杂。
- 在整理 pipeline 层面会相对简单,更提倡 end-to-end 的训练,但模型部分则相对复杂和难以优化。
[[Seq2Seq]]
- [[Web Traffic Time Series Forecasting 1st place solution]]
[[@WaveNet: A Generative Model for Raw Audio]]
- [[空洞卷积]] residual connection skip connection 门机制
- CNN 结构缺乏[[位置编码]]导致对于序列问题预测效果不如 RNN
[[LSTNet]] 效果不如特征工程 + fastai 效果好
[[DeepAR]] #mark/paper #时间序列专题学习
- 输出概率分布
- [[quantile regression]] ngboost LightGBMLSS 等库在 GBDT 模型上实现概率预测输出。
- 亚马逊开源时序预测库 gluon-ts
[[N-BEATS]] 单变量时序预测,具有一定的 seasonality,trend 的可解释性 #mark/paper
[[@Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting]] 与树匹敌的深度学习模型 #mark/paper
- [[Gated Residual Network]]
- [[Variable Selection Networks]] 特征变量选择网络,类似于树模型做特征选择
- [[TabNet]] [[NODE]] 也有这种模拟决策树行为的设计
- 输入特征的系统化设计,
- 静态类别/连续变量
- 动态已知类别/连续变量
- 动态未知类别/连续变量
- [[Pytorch Forecasting]] 实现
1 | training = TimeSeriesDataSet( |
- [[@Efficient Automated Deep Learning for Time Series Forecasting]] #mark/paper
没有能大规模应用的深度时序模型
- [[@Do We Really Need Deep Learning Models for Time Series Forecasting?]] #mark/paper
- [[@Kaggle forecasting competitions: An overlooked learning opportunity]] #mark/paper
- [[@Deep Learning for Time Series Forecasting: Tutorial and Literature Survey]] #mark/paper
可能方向
- 数据增强
- Time Series Data Augmentation for Deep Learning: A Survey
- 时序问题预训练
- A network-based transfer learning approach to improve sales forecasting of new products
[[AutoML]] 模型的自动选择和调优
因此完善的 AutoML 方案中,也需要包含例如 prior shift, covariate shift, concept drift 等方面的检测与处理,以适应复杂的真实预测场景。
[[Life Long Learning]] 模型的学习预测会随着时间的推移不断有新数据的输入