导读本文将分享蚂蚁在时间序列 AI 技术方面的实践,包括 AntFlux 蚂蚁时序智能引擎和时序技术在具体业务上的应用。
本文会围绕下面五个部分展开:
1. 时序价值意义
2. 时序 AI 技术
3. 时序算法平台
4. 时序业务应用
5. Q&A
分享嘉宾|刘雨博士 蚂蚁集团 算法专家
编辑整理|王丽燕
内容校对|李瑶
出品社区|DataFun
01
时序价值意义
1. 时序产业价值
来自麦肯锡的一篇报告显示:时间序列是仅次于结构化数据的一种重要的数据类别,价值高于图像、视频、文本、音频。
2. 无处不在的时序
人类生活中时序无处不在,比如视频、音频、机器人行动轨迹、心电图、太空旅行、金融上的股价序列等,另外还有天气预报、交通能力预测、供应链管理、自动驾驶也都需要用到时间序列预测。
3. 蚂蚁集团视角的时序应用
时间序列在蚂蚁集团的应用场景包括:
用户服务层:在财富投顾和保险投顾方面精细化服务用户,通过微观层面对用户的需求做推断和用户资产配置。
业务运行层:有消金、财富、网商业务部门,需要对资金流动性做预测、对业务资源做精细化管理。通过宏观总量进行预测。
云计算基础设施:会应用 AI 弹性容量来提升资源的利用效率。也是通过宏观总量进行预测。
基于上述需求场景,我们需要用时间序列技术来解决问题,时间序列分两类:
异步时间序列:比如用户的行为序列、故障的日志。每个事件发生的时间间隔是不等的。对应解法是通过点过程(neural point process)算法,学习连续时间上的联合分布(行为发生的时间和事件的类型)。
同步时间序列:每个数据点发生的时间间隔是相等的。因为蚂蚁集团的数据量庞大,一般会用全局模型,即用一个模型建模所有序列。
基于上述广泛的业务应用需求,我们开发了工业级的时序算法平台——AntFlux,它提供了先进的时序算法和跨领域解决方案,支持大规模计算,提升了研发到应用的效率和质量,助力用户持续创新。
02
时序 AI 技术
1. 时间序列发展
(1)时序统计模型
Holt-Winter(三次指数平滑法)于 60 年代产生,1982 年 ARIMA 算法产生。这类模型有以下特点:
都是统计模型,对每个系列单独建模,无法充分挖掘数据内蕴含的可复用的规律。
具有较强的先验假设,需要预先设置一个分布。
无法有效解决冷启动问题。比如出现一个新商品,因为没有历史数据,所以无法预测其销量。
当序列规模庞大时,需要对每个序列单独建模,模型运维成本大。
(2)时序深度模型
2018 年,就到了时序深度模型的阶段。比如 TCN、N-BEATS、DeepAR、Autoformer、Informer、ETSformer、NSformer、PatchTST、Corrformer 等模型出现。其特点如下:
针对不同场景,利用大规模数据构建统一模型,可充分挖掘数据内蕴含的规律,能够解决冷启动问题。
模型没有强先验假设,自动提取特征,在复杂大规模时序建模场景效果好。
无法跨场景迁移应用,不同场景需要独立构建模型。
无法处理不同类型时序任务(预测、分类、异常识别)。
(3)时序大模型
2023 年,开启了火热的大语言模型阶段,有 TimesNet 模型(清华开发)、LLM-Time 模型(蚂蚁集团和莫纳什大学联合开发)、iTransformer 模型(蚂蚁集团和清华合作开发)等。时序大模型有以下特点:
利用跨场景超大规模的数据构建大规模参数的模型,具备跨场景泛化、多任务处理能力。
可以更好地利用多模态的数据,比如金融场景利用金融市场数据、研报等,在电力场景利用电力、气象等不同模态的数据来提升预测效果。
提供了开箱即用的学习分析服务,应用者无需建模。
2. 蚂蚁集团自研时序 AI 算法
上图是蚂蚁自研的时序预测算法总纲,这些算法都是为了解决一些业务中存在的问题,通过业务问题来抽象技术需求,然后对每个技术需求针对性地开发模型,提供核心能力解决对应问题。比如:
新时序持续出现,如何在持续数据不足的情况下进行预测,就需要大规模时序联合建模的能力,因此我们研发了 APTN、DeepAR+、BiDA、EMSSM 等模型。
有时候序列的变量可能是数据精度不够高,需要协变量和外生因子来提升预测性能,于是开发了一些模型提供多元混合复杂时序建模能力。
预测值具有不确定性,所以我们提供了概率预测能力,在预测的时候不只是提供一个点的预测值,而是会提供一个预测的分布。比如 EMSSM(深度状态空间模型),TF-EBM(深度能量模型)。
层次化时间序列模型:Hier-Transformer-CNF、SLOTH、FlowHTS 模型。适用于一些序列天然存在结构化关系的情况,比如一个国家的旅游总人数,是由每个省的旅游人数加起来得到的,所以就对应开发了层次化的时间序列模型。
异步时间序列模型:NHPI、HYPRO、PromptTPP、LAMP 模型,用来处理时间间隔不等长的时间序列模型。并且与目前流行的大语言模型融合,增强了对长时事件序列的预测能力。
时间序列大模型:Time-LLM、iTransformer。
(1)时序大模型:Time-LLM 多模态&跨领域一元时序预测
Time-LLM 模型是通过重编程(model reprogramming)大语言模型来实现时间序列预测的时序基础模型。
Model reprogramming 是 cross modality(跨模态)的一种能力,通过源数据预训练好的模型来把这个模型应用到另一个 modality,不需要进行 fine tuning。其核心有两点:一个是 input transformation(输入转换),把 target 数据转成 LLM 需要的那个表征(源域表征),然后传入大语言模型;第二个是 remapping layer(输出映射),大语言模型输出预测值之后,它还在 source (源域)的 modality,再通过一个 output remapping 把结果重新映射到 target 需要的那个 modality。
Time-LLM 结合了文本和时序。一般大语言模型训练样本基本上都是文本,对数字天然不敏感。而 Time-LLM 用 model reprogramming 把大语言模型应用到了时序预测上。其核心设计为:
结合了 prompt 和时序输入。prompt 加上输入的时序窗口统计特性,比如输入这段序列的均值方差、这段时序上升下降趋势等等,给到一些统计知识,用文本的方式表达出来。
把时序打成 patch(分块),然后做 patch reprogram,更好地把时序的表征和大语言模型需要的表征 align(对齐),再把时序和文本两个表征拼接,输入到大语言模型,大语言模型本身是冻结的,不需要 fine tuning,然后产出预测值。最后是 output remapping layer(输出映射层)输出最终的结果。
模型具有如下一些优势:
新颖:引领“语言+时序”的多模态基础模型新范式,将时序预测转化为“自然语言”任务。
轻量:利用既有的预训练语言大模型,无需微调,节约资源。在论文实验中用的是 LLAMA-7B 模型。
预测性能佳:在主流时序预测任务上取得优异效果。
泛化能力强:具备良好的跨领域迁移能力,在少样本(few-shot)与零样本(zero-shot)任务上取得领先效果。
论文中有更多实验结果,这里仅截取其中 3 个任务:
长时预测:测试了 8 个数据集(ETT、Weather、ECL 等),图上红色代表误差最小的。可以看到 Time-LLM 模型在长时预测取得与当前领先模型PatchTST 相当、甚至超越的预测效果。
短时预测:用的是 M4 数据集。基准模型中 GPT4TS 是阿里出的针对时序的大模型,这个模型和 Time-LLM 有区别,它对大语言模型做了微调。从上图可以看到,Time-LLM 在短时预测也是最好的。蓝色标注代表的是效果第二好。
跨场景零样本迁移预测:上图可看到在 ETTh1 训练,再在 ETTh2 预测也是 Time-LLM 的效果最好。
(2)时序大模型:iTransformer 通用多元时序预测
之前很多 Transformer 的时序模型,在做多元时序预测都是以时间步为中心的表征,把每个时间步 t,当成一个样本,然后再做 tokenization。但 iTransformer 模型不一样,它是以变量或者时序为中心,把整条时序当成一个变量,再做 tokenization。先前做法的缺点为,同一个时间步内多元分布是不同的,而且可能每条时序的量级差别很大,很可能造成学习到的表征效果欠佳。所以之前有学者质疑Transformer 在实际上的效果,并指出完全基于 MLP 的模型,效果比Transformer 还要好。
把每条时序当成一个变量做 tokenization 之后,用多元的 attention 来学习到时序之间的 correlation。每生成一条单独的序列,再对每条序列做单独的建模,可以并行化的预测,又能提高 Transformer 的效率。
上图是 iTransformer 的整体架构,右边 Transformer 模块基本没有改动,最主要的改变在数据输入层,以每条时序变量为中心来建模。模型效果在几个典型的公开数据集上取得了领先或者第二的效果。
另外一个特点是以变量为中心,比如在训练的时候,只用到 20% 的序列做训练,在预测的时候,可以对100% 的序列做预测,可泛化到未见过的变元预测上,也是取得了领先的预测效果。
(3)时序 AI 技术:Memory Augmented State Space Model(IJCAI2022)长程时序概率预测
下面介绍状态空间模型,属于结构化的时序模型。
第一类是典型的基于 RNN 的模型,其主要缺点是预测下一步的时候需要用到前一步的预测值作为输入,这样就会造成误差累积,对 memory (内存)要求比较高,而且要串行计算,所以效率不够高。
第二类是典型的基于 Transformer 的模型,它具有一定的可解释性,可以用 attention weights 来产生每个变量的重要性。相对 RNN 来说避免了误差累积问题。
第三类是典型的 Deep State Space Model(深度状态空间模型),这是一种结构化的时序时间序列模型,它最大的优点是具有可解释性,特点是不直接对观测变量做建模,而是对隐变量建模,观测变量则通过隐变量来生成。这个模型具有一些优点,比如 data efficient,可避免误差累积,对异常值 robust,并且能处理缺失值。
为什么需要开发 Memory Augmented States Model?传统的状态空间模型要满足马尔科夫假设,即下个状态只跟当前状态或者之前有限步的状态有关,这是 fixed-order 马尔科夫过程。在解决一些长程依赖的问题时就有局限性,效果不够好,所以我们就利用一个外置的记忆模块以(key, value)的形式来记忆更久之前的隐状态,开发了 Memory Augmented States-space Model。
这个模型最主要的特点是有 external memory,比如我们要预测未来某个节假日某种商品的销量,这与去年同个节假日的销量是强相关的,至少有 1 年的相关性。我们在外部记忆模块把去年模型训练产出的隐状态、RNN 产出的 h、状态空间模型的隐变量 z,通过外置记忆模块 (上图中的红框)保存下来。然后在预测今年的时候,通过当前 RNN 输出 ht,相当于是一个 local memory,然后 local memory 来 query 外置 g 模块里内容,相当于是 global memory,结合 local memory 和 global memory,产出当前的隐状态,然后再产出观测值。通过这种方法解决长程预测问题。
(4)时序 AI 技术:SLOTH (AAAI 2023) 在层次化结构上进行时序预测
有些时序是天生的层次化的结构,比如商品零售是一个大类商品,它包括各个小类商品,各个小类商品又可以向往下一层类目细分。商品零售总销量是用各个小类的商品销量聚合而成的。为了解决这种层次化结构时序预测问题,我们开发了层次化时间序列模型——SLOTH。
该模型的特点为,利用时序的层次化结构,充分融合时序的层级之间的信息,增强表征能力。除此之外,模型的预测模块还与下游决策模块相结合。因为一般用时序预测,还会有后续的决策过程。之前大部分模型,预测和决策是分开的,但是这个模型会在预测值产生之后,直接输入到下游的决策模块,下游决策模块是一个优化问题,用了一个 OPTNet,把优化的 loss 回传到时序训练模块来,即实现预测和决策一体化建模。
上层是下层聚合而成的,所以上层的序列一般比较稳定,而下层时序特点可能不是很明显,所以我们会用 bottom-up attention,top- down convolution,来把上层的信息和底层的信息相互融合。
从上图可看出 SLOTH 模型的效果基本上是最好的。
03
蚂蚁时序智能引擎:AntFlux
1. AntFlux 是什么
AntFlux 是蚂蚁集团的一个时序平台,主要包括下面几个模块:
Insight 时序洞察:主要用于时序分析,比如异常检测、数据处理特征、时序特征生成。
Forecaster 同步时序建模:具有丰富的时序算法,用于自动化地构建模型。
我们 AntFlux 的预测 SDK,具有丰富的前沿以及自研的时序算法,可以针对不同的场景/数据选择合适的模型。
AntFlux-ATS 异步时序建模
Components 时序 AIStudio 组件:给业务算法用的时候,不需要写代码,直接把那个组件拖拉拽就可以建模整个预测任务。
WorkFlow 时序工作流
Research 算法研创
Community 内源&社区
2. AntFlux 架构
上图是 AntFlux 的架构,包括依赖的底层平台、基础设施,用到的模型,还有在蚂蚁业务应用上所产出的解决方案。
3. 一站式服务
我们提供一站式服务,支持多种数据源,然后定义模型、训练、评估、部署、调用。在生产系统部署完,还需要对模型的性能做监控和运维,及时诊断模型。
4. 产品家族
下面简要介绍几个重要的产品模块。
(1)AntFlux-Forecaster
AntFlux-Forecaster,覆盖了完整的时序预测建模流程。
我们从技术需求出发,抽象出了如上图中所示的核心能力,针对所需的核心能力内置了一些算法,包括自研的和一些业界流行的算法。
(2)AntFlux-Insight
AntFlux-Insight 模块主要用于前期的时序分析,包括时序表征、时序检测和模型诊断。
(3)AntFlux-AI Studio Components
AntFlux-AI Studio Components 可以通过形象的拖拉拽的方式进行建模和模型部署。同时我们还开发了自动时序建模组件 AutoTS,可以自动选择合适的模型,自动调优超参数,以及模型集成的能力。这些组件大大简化了时序建模的步骤,即使非时序专业人士也能轻松建模。
(4)AntFlux-WorkFlow
AntFlux-WorkFlow 是一个时序工作流。
5. 竞品对比
上图展示了 AntFlux 平台与其他国际领先的时序平台的功能对比,可以看到,AntFlux 的功能是非常全面的。
04
时序业务应用
1. 业务赋能
时序应用分三个大类:
时序洞察:向历史和当下要价值。比如异常检测、态势感知、热点挖掘(比如根据支付宝流量数据来挖掘出当前的热点事件)、归因分析等。
时序预测:向未来要价值。比如绿色计算-AI 弹性容量(根据业务程序的流量来动态自动化调整所需要的服务器个数)、精细化的资金管理、风险定价、成本管理、供应链管理等。
时序决策:向空间要价值。比如预测性规划(比如资金演绎预测出来每个渠道对应的银行卡支付的流量,然后预测性规划来判断哪一个渠道是最优的)、预测性控制等,来辅助业务自动化执行,帮助公司降本增收。
2. 绿色计算
绿色计算,是通过 AI 技术预测需求并自动化调度的一项实践,以帮助蚂蚁达成碳中和目标。
从上图中的流量图可以看到,有了弹性容量后,可以精准地进行弹性伸缩,使 CPU 能够保持在稳定的状态运行。
05
Q&A
Q1:TimeLLM 是否有可能适配多元时间序列,如果利用文本对多元时间序列进行描述,是否需要兼顾单序列描述和多通道序列间关系的描述?
A1:Time-LLM 目前是只支持一元的。我们是第一次尝试,后续我们会想把它适配到多元的。多元的时候有一个困难的点:在 prompt 设计的时候,除了这种单条序列的那种统计特性,可能需要我们把时序跟时序之间的这种相关性给描述出来,来辅助大语言模型的推理能力。
Q2:当前的文本似乎更倾向于对当前序列的特征描述,如果是额外文本信息的补充,这样是否就不再适合用对齐的方式去拉近两个模态的距离?
A2:还是适用的。
Q3:请问时间序列预测领域现在还有哪些难点?
A3:时间序列是一个比较老的研究领域,难点可能是:
如何更好地支持一些协变量数据来提高预测。
如何利用其他模态的信息来辅助时序预测。
究竟扩大模型容量是否真的对模型效果有很大的提高?
深度时间序列模型可解释性比较差,比较难解释预测效果变差的原因。
Q4:为什么 iTransformer 可以处理多模态数据?
A4:iTransformer 是针对多元时间序列来预测的。它的核心点是把整个时序当作一个变量来做预测。处理多模态数据的是 time-LLM 模型。
以上就是本次分享的内容,谢谢大家。