Fork me on GitHub

时间序列 AI 技术与大模型:蚂蚁集团的实践与应用探索

以下文章来源于 https://zhuanlan.zhihu.com/p/686621108

导读 本文将分享蚂蚁在时间序列 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 模型。

以上就是本次分享的内容,谢谢大家。




本文地址:https://www.6aiq.com/article/1710390872447
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出