点关注,不迷路,用心整理每一篇算法干货~
今天给大家介绍一篇比较新颖的时间序列异常检测工作,由清华大学发表,基于多模态大模型的能力,构建统一的时间序列异常检测框架。
论文标题:See it, Think it, Sorted: Large Multimodal Models are Few-shot Time Series Anomaly Analyzers
下载地址:https://arxiv.org/pdf/2411.02465v1
时间序列异常检测建模中,需要识别出时间序列是否存在异常点或异常区间,以及异常点或区间的位置。现有的建模方法,一方面都是针对特定数据集的优化,缺少一个在各类数据集中都适用的统一模型;另一方面,现有的异常检测方法也缺少可解释性。
随着LLM的发展和应用,一些时序研究将LLM应用到时间序列预测或异常检测等任务中。然而,一些研究也表明,LLM对于时间序列任务作用不大,这其中可能的一个核心原因是LLM使用文本训练,和时间序列数据差异很大。
基于上述考虑,本文提出将时间序列转换成图像,使用预训练的多模态大模型(LMM)进行异常检测。这种建模方法,一方面将原来的LLM应用从时间序列转换成数字token输入LLM,变成了转换成图片输入到LMM,后者相对来说输入形式和大模型更加契合。另一方面,也能借助大模型的能力,构建一个统一的、可解释的时间序列异常检测模型。
本文提出的时间序列异常检测方法,整体的框架图如下,文中将其划分成See it、Think it、Sorted三个阶段。
在第一个阶段,将原始的时间序列数据转换成图像,让LMM能够看到时间序列数据。这里通过滑动窗口,将时间序列分成不同的子序列,转换成图像,输入到多模态大模型中。
在第二个阶段,通过构造合适的prompt,让LMM能够根据图像信息识别什么样的时间序列是正常的,什么样的时间序列是异常的,并让大模型给出时间序列异常的原因。这里又包含3个子阶段:multimodal reference learning、multimodal analyzing、multi-scaled self-reflection。
在multimodal reference learning阶段,首先会给LLM一些正常的时间序列图片,prompt说明这些时间序列是正常的,让LMM给出时间序列正常的描述,这些描述信息用于后续的异常检测。
在multimodal analyzing阶段,会让LMM解决两个异常检测问题,首先给出时间序列中存在异常的片段位置,接下来让LMM对异常部分进行分类,将其分成异常检测中的point、shapelet、seasonal、trend四种类型。
在multi-scaled self-reflection阶段,会对时间序列对应的异常图像部分进行放大,生成放大后的图像,再输入到LMM中让其进行自我纠错。
上述三个步骤中,每个步骤LMM的输出信息都会用于下一个步骤,作为历史上下文信息,帮助大模型一步一步的理解异常检测任务,并给出预测结果。下面是文中构建的prompt结构例子。
在最后一个阶段,将大模型输出的预测结果进行合、排序等处理。因为上面的输入都是滑动窗口构建的,因此会聚合各个滑动窗口的预测结果。对于一个点在多个窗口的,会加和多个窗口的预测结果,作为最终的预测置信度。最后经过排序和阈值筛选,得到最终的异常检测结果。
下表是本文提出的异常检测方法和其他方法的效果对比,整体取得了比较不错的异常检测效果。
文中也给出了一些异常检测结果的case,包括四种类型异常检测的检测结果,可以看到该方法可以比较好的识别出不同类型的异常序列。
文末送书:留言板发表您的看法,我将随机抽选3位用户送出新书。本书详尽地覆盖了多模态大模型的算法原理和应用实战,提供了丰富的微调技术细节和实际案例,适合对多模态大模型有兴趣的技术人员深入学习和应用。
投稿&加交流群请加微信,备注机构+方向拉群~