本文介绍了蚂蚁集团在时间序列AI技术方面的实践,包括AntFlux蚂蚁时序智能引擎和时序技术在具体业务上的应用。文章从时序价值意义、时序AI技术、蚂蚁自研时序算法、蚂蚁时序智能引擎和时序业务应用等五个方面展开。
时间序列在蚂蚁集团具有广泛的应用场景,如财富投顾、保险投顾、消金、财富、网商业务部门等。需要利用时间序列技术来解决实际问题。
蚂蚁集团针对业务问题,开发了一系列自研时序算法,如APTN、DeepAR+、BiDA、EMSSM等模型。
AntFlux是蚂蚁集团的一个时序平台,提供一站式服务,支持多种数据源,定义模型、训练、评估、部署、调用等功能。
蚂蚁集团通过应用时序技术,实现了多种业务赋能,如绿色计算、AI弹性容量、精细化的资金管理、风险定价等。
导读
本文将分享蚂蚁在时间序列 AI 技术方面的实践,包括 AntFlux 蚂蚁时序智能引擎和时序技术在具体业务上的应用。
1.
时序价值意义
2.
时序 AI 技术
3.
时序算法平台
4.
时序业务应用
5
.
Q&A
分享嘉宾|
刘雨
博士
蚂蚁集团
算法专家
编辑整理|王丽燕
内容校对|李瑶
出品社区|
DataFun
01
时序价值意义
来自麦肯锡的一篇报告显示:时间序列是仅次于结构化数据的一种重要的数据类别,价值高于图像、视频、文本、音频。
人类生活中时序无处不在,比如视频、音频、机器人行动轨迹、心电图、太空旅行、金融上的股价序列等,另外还有天气预报、交通能力预测、供应链管理、自动驾驶也都需要用到时间序列预测。
3.
蚂蚁集团视角的时序应用
时间序列在蚂蚁集团的应用场景包括:
-
用户服务层:
在财富投顾和保险投顾方面精细化服务用户,通过微观层面对用户的需求做推断和用户资产配置。
-
业务运行层:
有消金、财富、网商业务部门,需要对资金流动性做预测、对业务资源做精细化管理。
通过宏观总量进行预测。
-
云计算基础设施:
会应用
AI
弹性容量来提升资源的利用效率。
也是通过宏观总量进行预测。
基于上述需求场景,我们需要用时间序列技术来解决问题,时间序列分两类:
基于上述广泛的业务应用需求,我们开发了工业级的时序算法平台——AntFlux,它提供了先进的时序算法和跨领域解决方案,支持大规模计算,提升了研发到应用的效率和质量,助力用户持续创新。
02
(1)时序统计模型
Holt-Winter(三次指数平滑法)于 60 年代产生,1982 年 ARIMA 算法产生。这类模型有以下特点:
-
都是统计模型,对每个系列单独建模,无法充分挖掘数据内蕴含的可复用的规律。
-
具有较强的先验假设,需要预先设置一个分布。
-
无法有效解决冷启动问题。
比如出现一个新商品,因为没有历史数据,所以无法预测其销量。
-
当序列规模庞大时,需要对每个序列单独建模,模型运维成本大。
(2)时序深度模型
2018 年,就到了时序深度模型的阶段。比如 TCN、N-BEATS、DeepAR、Autoformer、Informer、ETSformer、NSformer、PatchTST、Corrformer 等模型出现。其特点如下:
-
针对不同场景,利用大规模数据构建统一模型,可充分挖掘数据内蕴含的规律,能够解决冷启动问题。
-
模型没有强先验假设,自动提取特征,在复杂大规模时序建模场景效果好。
-
无法跨场景迁移应用,不同场景需要独立构建模型。
-
无
法处理不同类型时序任务(预测、分类、异常识别)。
(3)时序大模型
2023 年,开启了火热的大语言模型阶段,有 TimesNet 模型(清华开发)、LLM-Time 模型(蚂蚁集团和莫纳什大学联合开发)、iTransformer 模型(蚂蚁集团和清华合作开发)等。时序大模型有以下特点:
上图是蚂蚁自研的时序预测算法总纲,这些算法都是为了解决一些业务中存在的问题,通过业务问题来抽象技术需求,然后对每个技术需求针对性地开发模型,提供核心能力解决对应问题。比如:
-
新时序持续出现,如何在持续数据不足的情况下进行预测,就需要大规模时序联合建模的能力,因此我们研发了
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 是蚂蚁集团的一个时序平台,主要包括下面几个模块:
-
Insight 时序洞察:主要用于时序分析,比如异常检测、数据处理特征、时序特征生成。
-
Forecaster 同步时序建模:
具有丰富的时序算法,用于自动化地构建模型。
我们 AntFlux 的预测 SDK,具有丰富的前沿以及自研的时序算法,可以针对不同的场景/数据选择合适的模型。
-
AntFlux-ATS 异步时序建模
-
Components 时序 AIStudio 组件:
给业务算法用的时候,不需要写代码,直接把那个组件拖拉拽就可以建模整个预测任务。
-
WorkFlow 时序工作流
-
Research 算法研创
-
Community 内源&社区
上图是 AntFlux 的架构,包括依赖的底层平台、基础设施,用到的模型,还有在蚂蚁业务应用上所产出的解决方案。
我们提供一站式服务,支持多种数据源,然后定义模型、训练、评估、部署、调用。在生产系统部署完,还需要对模型的性能做监控和运维,及时诊断模型。
下面简要介绍几个重要的产品模块。
(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 是一个时序工作流。
上图展示了 AntFlux 平台与其他国际领先的时序平台的功能对比,可以看到,AntFlux 的功能是非常全面的。
04
时序应用分三个大类:
-
时序洞察:向历史和当下要价值。
比如异常检测、态势感知、热点挖掘(比如根据支付宝流量数据来挖掘出当前的热点事件)、归因分析等。
-
时序预测:
向未来要价值。
比如绿色计算-AI 弹性容量(根据业务程序的流量来动态自动化调整所需要的服务器个数)、精细化的资金管理、风险定价、成本管理、供应链管理等。
-
时序决策:
向空间要价值。
比如预测性规划(比如资金演绎预测出来每个渠道对应的银行卡支付的流量,然后预测性规划来判断哪一个渠道是最优的)、预测性控制等,来辅助业务自动化执行,帮助公司降本增收。
绿色计算,是通过 AI 技术预测需求并自动化调度的一项实践,以帮助蚂蚁达成碳中和目标。
从上图中的流量图可以看到,有了弹性容量后,可以精准地进行弹性伸缩,使 CPU 能够保持在稳定的状态运行。
05
Q1
:TimeLLM 是否有可能适配多元时间序列,如果利用文本对多元时间序列进行描述,是否需要兼顾单序列描述和多通道序列间关系的描述?
A1:Time-LLM 目前是只支持一元的。我们是第一次尝试,后续我们会想把它适配到多元的。多元的时候有一个困难的点:在 prompt 设计的时候,除了这种单条序列的那种统计特性,可能需要我们把时序跟时序之间的这种相关性给描述出来,来辅助大语言模型的推理能力。
Q2
:当前的文本似乎更倾向于对当前序列的特征描述,如果是额外文本信息的补充,这样是否就不再适合用对齐的方式去拉近两个模态的距离?
A2:还是适用的。
Q3
:
请问时间序列预测领域现在还有哪些难点?
A3:时间序列是一个比较老的研究领域,难点可能是:
Q4