今天是2024年5月22日,10:24,今天看这篇经典的论文(如果你问我为什么最近频繁看论文,因为我的创新点无了,要找创新点+太菜了,菜就多看多学)。
论文:TS2Vec: Towards Universal Representation of Time Series
或者是:TS2Vec: Towards Universal Representation of Time Series
GitHub:https://github.com/zhihanyue/ts2vec
AAAI 2022的论文。
(不保证翻译能完美表达作者的内容,因为是机翻的,我人是看的原文,机翻方便写博客.)
摘要
本文介绍了 TS2Vec,这是一个用于学习任意语义层次的时间序列表示的通用框架。与现有方法不同的是,TS2Vec 在增强上下文视图上以分层方式执行对比学习,从而为每个时间戳提供稳健的上下文表示。此外,要获得时间序列中任意子序列的表示,我们可以对相应时间戳的表示进行简单的聚合。我们在时间序列分类任务中进行了大量实验,以评估时间序列表示的质量。结果表明,在 125 个 UCR 数据集和 29 个 UEA 数据集上,TS2Vec 比现有的无监督时间序列表示 SOTAs 有了显著提高。学习到的时间戳级表示在时间序列预测和异常检测任务中也取得了优异成绩。在所学表征基础上训练的线性回归结果优于之前的时间序列预测 SOTAs。此外,我们还提出了一种简单的方法,将学习到的表征用于无监督异常检测,从而在文献中确立了 SOTA 的结果。源代码可在 https://github.com/yuezhihan/ts2vec 公开获取。
1 引言
时间序列在金融市场、需求预测和气候建模等多个行业中发挥着重要作用。学习时间序列的通用表示是一个基本但具有挑战性的问题。许多研究(Tonekaboni、Eytan 和 Goldenberg,2021 年;Franceschi、Dieuleveut 和 Jaggi,2019 年;Wu 等人,2018 年)侧重于学习实例级表征,这种表征描述了输入时间序列的整个片段,并在聚类和分类等任务中取得了巨大成功。此外,最近的研究(Eldele 等人,2021 年;Franceschi、Dieuleveut 和 Jaggi,2019 年)采用了对比损失来学习时间序列的内在结构。然而,现有方法仍存在明显的局限性。
首先,实例级表征可能不适合需要细粒度表征的任务,例如时间序列预测和异常检测。在这类任务中,人们需要推断特定时间戳或子序列的目标,而整个时间序列的粗粒度表示不足以达到满意的性能。
其次,现有方法很少能区分不同粒度的多尺度上下文信息。例如,TNC(Tonekaboni、Eytan 和 Goldenberg,2021 年)可区分长度不变的片段。TLoss(Franceschi、Dieuleveut 和 Jaggi,2019 年)使用原始时间序列中的随机子序列作为正样本。然而,它们都没有在不同尺度上对时间序列进行特征描述,以捕捉尺度不变的信息,而这对时间序列任务的成功至关重要。直观地说,多尺度特征可以提供不同层次的语义,提高学习表征的泛化能力。
第三,大多数现有的无监督时间序列表示方法都受到 CV 和 NLP 领域经验的启发,这些方法具有很强的归纳偏差,如变换不变性和裁剪不变性。然而,这些假设并不总是适用于时间序列建模。例如,裁剪是一种常用的图像增强策略。然而,时间序列的分布和语义可能会随着时间的推移而发生变化,裁剪后的子序列很可能与原始时间序列的分布截然不同。
为了解决这些问题,本文提出了一种名为 TS2Vec 的通用对比学习框架,它能在所有语义层次上对时间序列进行表征学习。它在实例维度和时间维度上分层区分正样本和负样本;对于任意子序列,其整体表示可通过对相应时间戳的最大池化获得。这样,该模型就能以多种分辨率捕捉时间数据的上下文信息,并生成任何粒度的细粒度表示。此外,TS2Vec 的对比目标是基于增强上下文视图,即同一子序列在两个增强上下文中的表示应保持一致。这样,我们就能为每个子序列获得稳健的上下文表示,而不会引入未被重视的归纳偏差,如变换和裁剪不变性。
我们在多个任务中进行了广泛的实验,以证明我们方法的有效性。时间序列分类、预测和异常检测任务的结果验证了 TS2Vec 的学习表征是通用和有效的。
本文的主要贡献概述如下:
- 我们提出了 TS2Vec,这是一个统一的框架,可在不同语义层面学习任意子序列的上下文表示。据我们所知,这是第一项为时间序列领域的各种任务(包括但不限于时间序列分类、预测和异常检测)提供灵活通用表示方法的工作。
- 为了实现上述目标,我们在约束学习框架中采用了两种新颖的设计。首先,我们在实例和时间维度上使用分层对比方法来捕捉多尺度的上下文信息。其次,我们提出了用于正样本对选择的上下文一致性。与以往的技术不同,它更适用于具有不同分布和尺度的时间序列数据。广泛的分析表明了 TS2Vec 对有缺失值的时间序列的鲁棒性,分层对比和上下文一致性的有效性也通过消融研究得到了验证(也经过了时间的验证,分层和上下文一致性确实是有效果的)。
- 在分类、预测和异常检测等三个基准时间序列任务中,TS2Vec 的表现优于现有的 SOTAs。例如,与分类任务中无监督表示的最佳 SOTA 相比,我们的方法在 125 个 UCR 数据集上平均提高了 2.4% 的准确率,在 29 个 UEA 数据集上平均提高了 3.0%。
2 方法
2.1 问题定义
给定 N 个实例的一组时间序列 X = {x 1 , x 2 , --- , x N },目标是学习一个非线性嵌入函数 Temporal Contrast f θ,将每个 x i 映射到最能描述其自身的表示 r i 上。输入时间序列 x i 的维度为 T × F,其中 T 是序列长度,F 是特征维度。表示 r i = {r i,1 , r i,2 , --- , r i,T } 包含每个时间戳 t 的表示向量 r i,t∈ K,其中 K 是表示向量的维度。
2.2 模型架构
TS2Vec 的整体架构如图 1 所示。我们从输入时间序列 x i 中随机抽取两个重叠的子序列,并鼓励在共同的片段上保持上下文表征的一致性。原始输入被送入编码器,编码器通过时间对比损失和实例对比损失进行联合优化。在分层框架中,总损失在多个尺度上求和。
编码器 f θ 由三个部分组成,包括输入投影层、时间戳掩码模块和扩张 CNN 模块。对于每个输入 x i,输入投影层是一个全连接层,它将时间戳 t 的观测值 x i,t 映射到一个高维潜向量 z i,t 上。时间戳掩码模块会掩码随机选择的时间戳上的潜在向量,生成增强的上下文视图。请注意,我们掩码的是潜在向量而不是原始值,因为时间序列的值范围可能是无界的,而且不可能为原始数据找到特殊的标记。我们将在附录中进一步证明这种设计的可行性。
然后,我们将应用一个包含十个残差块的扩张 CNN 模块来提取每个时间戳的上下文表示。每个区块包含两个 1-D 卷积层,每个卷积层都有一个扩张参数(第 l 个区块为 2 l)。扩张卷积可为不同领域提供大的感受野(Bai、Kolter 和 Koltun,2018 年)。在实验部分,我们将展示它在各种任务和数据集上的有效性。
(12:07,吃午饭去了.)
标签:表示,TS2Vec,学习,时间,Series,序列,上下文 From: https://www.cnblogs.com/ZERO-/p/18205878