论文标题:ChatTime: A Multimodal Time Series Foundation Model
论文链接:https://arxiv.org/abs/2412.11376
代码链接:https://github.com/ForestsKing/ChatTime
本文针对传统时间序列预测方法的局限,创新地将时间序列建模为外语(foreign language),构建多模态时间序列基础模型 ChatTime,支持零样本预测和双模态输入输出,通过实验验证其在多种任务和场景下性能优越,还创建了多模态数据集,为时间序列分析提供了新视角与解决方案。
时间序列数据在各个领域都很常见,其准确预测对于金融、交通、能源、医疗等行业的决策支持至关重要。人类专家经常整合多模态信息进行时间序列预测。例如,经济学家将历史金融数据序列与政策报告相结合,以预测未来市场趋势。然而,目前大多数深度学习范式在单个数据集上基于固定的历史和预测窗口进行训练和预测,缺乏对不同场景或数据集的适应性。此外,大多数现有方法仅使用单模态数值数据。
大语言模型(LLM)的快速发展引起了广泛关注,一些研究利用大量时间序列数据构建时间序列基础模型。然而,从头开始训练的效率极低,并且丧失了处理文本信息的能力。其他研图将预训练大语言模型的权重整合到新的时间序列预测框架中。这些研究主要对额外的输入和输出层进行微调(比如Autotime),以同时考虑时间序列和文本信息。但这些额外的层不具备零样本学习能力,并且每个数据集都需要重新微调。
这就引出了一个问题:是否有可能构建一个多模态时间序列基础模型,既允许零样本推理,又支持时间序列和文本双模态输入和输出?
从本质上来说,用于预测下一个单词的语言模型和用于预测下一个值的时间序列模型,都是对历史数据的序列结构进行建模,以预测未来情况。两者的核心都是一个 n 阶马尔可夫过程。本文构建的 ChatTime并时间序列概念化为一门外语(通过归一化和离散化,将连续无界的时间序列转换为一组有限的离散值,然后通过添加标记字符将它们表征为外语单词)。
使用与词汇扩展相同的方法对预训练的大语言模型进行持续预训练和指令微调,无需从头开始训练或改变模型架构。如表所示,ChatTime降低了训练成本,还获得了额外的处理文本信息的推理能力。
总体思路:训练过程分为两个阶段:持续预训练和指令微调。这两个阶段均使用带有低秩自适应(LoRA)的 4 位量化模型。基本思路:首先通过归一化、离散化以及添加标记字符,将时间序列编码成外语。然后,扩展后的分词器会把文本和外语单词转换为词元索引。经过大语言模型(LLM)处理后,反分词器再将词元索引转换回文本和外语单词。最后,通过去除标记字符并应用逆归一化操作,将外语单词重新解码为时间序列。
3.1 Model Architecture
核心三部分:归一化、离散化和标记化。
归一化:因时间序列是无界连续实值数据,ChatTime先运用最小-最大归一化,基于历史序列将数据映射到 -0.5至0.5的范围,为预测序列预留缓冲。
离散化:采用分箱技术把连续实值量化为离散标记,将 -1到1的区间均分为10000个箱,以箱中心值作为离散值。
标记化:为解决LLMTIME逐位分词计算成本高的问题,在离散化时间序列前后添加“###”形成外语单词,扩展分词器词汇表,还引入“###Nan###”处理缺失值 。
3.3 Continuous Pre-Training
模型的连续预训练环节采用自回归预测策略,以五种不同窗口及步长对原始时间序列滑动切片,使模型能适配任意大小窗口。鉴于原始数据重复模式多且计算资源受限,作者进行了K均值聚类,分为100万组与2.5万组,每组随机选一样本,分别构建出用于连续预训练(100万个样本)和指令微调(2.5万个样本)的高质量数据集。
3.4 Instruction Fine-Tuning
微调阶段借助四个任务数据集对ChatTime-1-7B-Base进行操作,每个任务抽取25,000个样本,共计100,000个实例,且仅微调Transformer层得到最终的ChatTime-1-7B-Chat。任务设置上,为留存大语言模型文本推理能力引入文本问答任务。
包括三项主要任务:零样本时间序列预测(ZSTSF)、上下文引导的时间序列预测(CGTSF)和时间序列问答(TSQA)。这些任务分别考察基础模型在时间序列到时间序列、文本到时间序列以及时间序列到文本的模态转换能力。
实验结果证实了ChatTime在多个任务和场景中的卓越性能,凸显了其作为多模态时间序列基础模型的潜力。