论文笔记 -- A Transformer-based Framework for Multivariate Time Series Representation Learning

A Transformer-based Framework for Multivariate Time Series Representation Learning

原文:A Transformer-based Framework for Multivariate Time Series Representation Learning | Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining

**出处:**KDD-2021

**摘要:**我们提出了一种基于Transformer编码器架构的多变量时间序列表示学习的新框架。该框架包括一个无监督的预训练方案,它在性能方面对下游的监督学习任务有明显的提升,无论是否使用利用额外的未标记数据,即通过重用现有的数据样本。在我们的几个来自不同领域和具有不同特征的公共多元时间序列数据集上评估框架,证明了它比目前可用最好的回归和分类方法表现明显更好,即使对于只有几百个训练样本组成的数据集也是如此。鉴于科学和工业中几乎所有领域对无监督学习的显著兴趣,这些发现代表了一个重要的里程碑,提出了第一个无监督方法,推动了多元时间序列回归和分类的最先进性能的极限。

Related work(相关工作)

  • 目前的研究重点方向为:通过仅使用有限数量的标记数据或利用现有的大量未标记数据来提供高精度的方法
  • 与计算机视觉和自然语言处理领域不同,在时间序列数据上深度学习的优势还远远建立
  • Transformer的成功之处在于可用独立于任务进行进行数据表示的预训练
  • 对于回归和分类任务,目前,非深度学习方法如TS_CHIEF,HIVE-COTE和ROCKET基于公共评估基准成为了最先进的时间序列回归和分类方法,其次是基于cnn的深度架构,如InceptionTime和ResNet。平均来说,ROCKET是最好的排名方法,包括在大量和各种随机卷积核提取的特征之上训练线性分类器。MiniROCKET,在ROCKET的基础上提高了他在时间维度的处理能力,同时提供了与ROCKET相同的精度。HIVE-COTE和TS_CHIEF模型的灵感来源于邻近森林,模型很复杂且依赖于对时序数据的经验,需要利用shapelet转换、弹性相似度度量、光谱特征、随机区间、基于字典的分类器等等,这些方法计算复杂对具有大量样本和长时间序列的数据集较差,且计算成本非常高。
  • Transformer模型基于一种多头注意机制,该机制使它们特别适合时间序列数据:它们通过考虑每个输入序列元素的上下文(未来-过去)来同时表示每个输入序列元素,而多个注意头可以考虑不同的表示子空间,即输入元素之间的多个相关性。
  • 为了实现处理时间序列中缺失值的目标,使用堆叠双向RNN作为编码器和堆叠RNN作为解码器来重构输入数据,同时使用用户提供的核矩阵作为先验条件控制内部表示,并鼓励学习输入的相似性表示。
  • 为了实现聚类的目的,通过矩阵分解算法(DTW)来进行序列间距离的近似度量可用很好的保持时间序列之间的相似性
  • 一种语言时间序列异常检测的方法,使用一个复合卷积LSTM网络重建多元时间序列之间的相关矩阵
  • 依赖于三元组损失和时间接近性的想法(损失函数会奖励近端段之间的表征相似性,并惩罚时间序列的远端段之间的相似性)来进行音频数据的无监督表示学习。
  • 时间序列在基于Transformer的编码器使用方面

Motivation(问题背景)

深度学习的优势在时间序列远未建立

Contribution(贡献)

  • 在这项工作中,首次提出了使用transformer作为编码器进行多元时间序列无监督表示学习,并应用于时间序列回归和分类任务
  • 第一次证明无监督学习在多元时间序列的分类和回归方面即使没有使用额外的未标记数据样本也比监督学习更具优势。
  • 提出了一种通用的多元时间序列表示学习框架TST,首先训练Transformer使用自回归的方法对输入数据去噪,提取多元时间序列的密集向量表示。
  • 将Transformer使用从一个编码器-解码器的架构推广到一个更广泛的框架去适应无监督的与训练过程,该框架可以通过修改输出层服务于多种时间序列分析的下游任务。

Model(模型)

请添加图片描述

  • 模型只使用了Transformer的编码器部分,没有使用解码器,这样得到的框架对于时间序列任务是通用的。这样做可以减少大量的参数,节约算力避免过拟合。模型对Transformer做出了改变,使得原本适用于离散的单词索引序列转变为可以适用于多元时间序列。
  • 对于多元时间序列,原始特征向量首先标准化(在训练集样本对于每个维度,减去均值和除以方差),然后线性投影到𝑑维向量空间,其中𝑑为Transformer模型序列元素表示的维度。
  • 对于数据 W p ∈ R d × m W_p\in \mathbb{R}^{d\times m} WpRd×m,当 m = 1 m=1 m=1时,该模型即可用于单维的时间序列。

对于每个训练样本 X ∈ R w × m X\in \mathbb{R}^{w \times m} XRw×m,是一个长度为 w w w,变量个数为 m m m的多元时间序列,构成一个多元时间序列特征向量 x t ∈ R m : X ∈ R w × m = [ x i , x 2 , … , x w ] x_t \in \mathbb{R}^{m}:X\in\mathbb{R}^{w \times m}=[x_i,x_2,\dots,x_w] xtRm:XRw×m=[xi,x2,,xw],对原始特征向量 x t x_t xt首先进行标准化(对于每个维度,减去均值和除以方差)然后线性映射到 d d d维向量空间,其中 d d d为Transformer模型序列元素表示的维度。
u t = W p x t + b p u_t=W_px_t+b_p ut=Wpxt+bp
其中, W p ∈ R d × m W_p\in \mathbb{R}_{d\times m} WpRd×m b p ∈ R d b_p\in R_d bpRd是可以学习的参数, u t ∈ R d , t = 0 , … , w u_t\in\mathbb{R}^d,t=0,\dots ,w utRd,t=0,,w,是模型的输入向量(上式显示了单个时间步长的操作,但所有的输入向量都通过一个矩阵-矩阵乘法同时嵌入),对应于NLP任务的词向量。在添加位置编码并乘以相应的矩阵之后,这些将成为自注意层的查询向量、键向量和值向量。

此外还可以注意到输入向量 u t u_t ut不一定在时间步长为 t t t时从特征向量中获得,模型的计算复杂度为 O ( ω 2 ) O(\omega^2) O(ω2)对于某些参数(可学习的位置编码、批处理规范化和输出层),输入序列长度为 ω \omega ω,为确保数据粒度(数据分辨率)较好,可以使用一个一维卷积层(1个输入和d个输出通道),卷积核 K i K_i Ki的大小为 ( k , m ) (k,m) (k,m),其中k是时间步长的宽度,i是输出通道
u t i = u ( t , i ) = ∑ j ∑ h x ( t = j , h ) K i ( j , h ) ,   i = 1 , … , d u_t^i=u(t,i)=\sum_j{\sum_h{x(t=j,h)K_i(j,h)}}, \ i=1,\dots,d uti=u(t,i)=jhx(t=j,h)Ki(j,h), i=1,,d
这样就可以使用大于1的步幅或扩张因子来控制时间分辨率,虽然在该工作中只使用到了第一个公式,但可以使用第二个公式作为输入来计算查询向量和值向量,并使用第一个公式来计算自注意力层的值。这在单变量时间序列的情况下特别有用,否则自注意将匹配(考虑相关/兼容)所有时间步长。虽然我们观察到,对于某些由更长和更低维时间序列组成的数据集,使用一维卷积层的性能有所提高,但在目前的工作中,为了提出一个单一的架构框架,我们放弃了这些结果。

最后,由于Transformer是一个对输入顺序不敏感的前馈体系结构,为了了解时间序列的序列性质,我们将位置编码 𝑊 p o s R 𝑤 × 𝑑 𝑊_{pos} \mathbb R_{𝑤×𝑑} WposRw×d添加到输入向量 U ∈ R w × b = [ u 1 , … , u w ] : U = U ′ + W p o s U\in \mathbb R^{w \times b}=[u_1,\dots,u_w]:U=U'+W_{pos} URw×b=[u1,,uw]:U=U+Wpos

相比于确定性的正弦编码,使用完全可学习的位置编码对本工作中提出的所有数据集表现更好。基于模型的性能,观察到位置编码通常不会对时间序列的数值信息产生显著干扰,类似于词嵌入的情况;假设这是因为位置信息被学习,从而占据一个不同的近似正交的子空间,来投影时间序列样本所在的子空间。这种近似正交条件在高维空间中更容易满足。

时间序列数据的一个重要因素是单个样本可能有相当大的长度变化。在该模型中首先得到数据集中最大的序列长度,较短的样本用任意值进行填充,在之后的注意力机制中利用生成的一个填充掩码,为填充布冯的之以利分数添加一个较大的负值,之后使用softmax函数计算自注意力的分布,使得模型可以忽略填充部分的值。

NLP中的Transformer在计算自注意后和每个编码器块的前馈部分后使用层归一化,导致比批归一化有显著的性能提高。然而,在这里使用批归一化,这可以减轻时间序列中离群值的影响,这是在NLP词嵌入中没有出现的问题。NLP任务批归一化的性能较差主要归因于样本长度的极端变化(即在大多数应用程序中的句子长度),而在我们在这里研究的数据集中,这种变化要小得多。通过实验证明了批处理归一化确实可以比层归一化提供显著的性能好处,而其程度可能会根据数据集的特性而有所不同。

Unsupervised (self-supervised) pre-training(无监督和自监督预训练)

作为模型的无监督与训练过程,使用了自回归任务做时间序列的降噪输入,具体做法为:将输入数据的某些值设置为0,使用模型去预测这些数据。每个训练样本和epoch独立创建一个二进制噪声 M ∈ R w × m M\in\mathbb R^{w\times m} MRw×m,输入任务通过元素乘法 X ~ = M ⨀ X \widetilde X=M\bigodot X X =MX进行,平均而言,通过长度为0s和1s的交替,每个长度为w的序列(多变量时间序列中的一个序列)被掩盖的比例为r。

我们选择状态转换概率,这样每个掩码段(序列为0s)的长度遵循平均 l m l_m lm的几何分布,然后是一个平均长度为 l u = 1 − r r l m l_u= {1-r\over r}l_m lu=r1rlm的未掩码段(序列为 1 s 1_s 1s)。我们在所有提出的实验中都选择了 𝑙 𝑚 = 3 𝑙_𝑚=3 lm=3

我们希望控制掩蔽序列的长度,而不是简单地使用参数𝑟的伯努利分布来独立设置所有掩蔽元素随机,原因是输入中非常短的掩蔽序列(例如,1掩蔽元素)通常可以通过复制前面或之后的值或其平均值来进行简单的近似预测。为了获得足够长的具有相对较高可能性的掩蔽序列,需要一个非常高的掩蔽比例𝑟,这将使整个任务具有不利的挑战性。为了获得足够长的具有较高可能性的掩蔽序列,需要非常高的掩蔽比例𝑟,这将使整个任务具有不利的挑战性。按照上述过程,在每个时间步长,平均𝑟·𝑚变量将被掩盖。我们根据经验发现𝑟=0.15工作良好,并将其用于所有提出的实验。这个输入掩蔽过程不同于BERT等NLP模型使用的“阻塞类型”掩蔽,在BERT中,一个特殊的标记,因此单词嵌入向量替换了原始单词嵌入,即在受影响的时间步长的整个特征向量。我们选择这种掩蔽模式是因为它鼓励模型学习关注单个变量的之前和后续部分,以及时间序列中其他变量的现有当代值,从而学习对变量之间的相互依赖关系进行建模。在表3中,我们显示了这种掩蔽方案比其他去噪输入的可能性更有效。

每个时间步长中,在 z t ∈ R d z_t\in \mathbb R^d ztRd的线形层使用参数 W o ∈ R m × d W_o\in R_{m\times d} WoRm×d b o ∈ R m b_o\in \mathbb R^m boRm,同时,模型会输出完整的输入向量的估计值 x ^ t \hat x_t x^t,但是在这个过程中只考虑了设置的掩码噪声对数据样本的均方误差损失
x ^ t = W o z t + b o L M S E = 1 ∣ M ∣ ∑ ( t , i ) ∑ ∈ M ( x ^ ( t , i ) − x ( t , i ) ) 2 \hat x_t=W_oz_t+b_o \\ \mathcal L_{MSE}={1\over |M|}\sum_{(t,i)}\sum_{\in M}(\hat x(t,i)-x(t,i))^2 x^t=Wozt+boLMSE=M1(t,i)M(x^(t,i)x(t,i))2
这个目标与去噪自动编码器所使用的目标不同,后者的损失考虑在(通常是高斯)噪声破坏下的整个输入的重建。此外,我们注意到,上述方法不同于简单的dropout在输入嵌入上,这与掩码值的统计分布有关,以及在这里掩码也决定了损失函数这一事实。事实上,我们在训练所有的有监督和无监督模型时,还使用了10%的dropout。

Regression and classification(回归和分类)

TST为一个统一的时间序列预训练模型,在将其应用于分类任务时需要对模型做出以下修改:

所有时间步长的最终表示向量 z t ∈ R d z_t\in \mathbb R^d ztRd连接到一个向量 z ˉ ∈ R d ⋅ w = [ z 1 ; …   ; z W ] \bar z\in \mathbb R^{d\cdot w}=[z_1;\dots;z_W] zˉRdw=[z1;;zW]作为参数为 W o ∈ R n × ( d ⋅ w ) W_o\in \mathbb R^{n\times(d\cdot w)} WoRn×(dw) b o ∈ R n b_o\in \mathbb R^n boRn的线性输出层的输入,其中n为回归问题的标量数或分类问题的类数
y ^ = W O z ˉ + b o \hat y = W_O\bar z+b_o y^=WOzˉ+bo
将回归问题的损失定义为均方误差 L = ∥ y ^ − y ∥ 2 \mathcal L=\|\hat y -y\|^2 L=y^y2,其中 y ∈ R n y\in \mathbb R^n yRn为为分类准确性。

在分类问题中, y ^ \hat y y^通过一个softmax函数获得类上的分布。使用预测标签与真实标签的交叉熵作为分类损失。

Experiment(实验)

数据集信息:

请添加图片描述

**问题1:**给定一个有部分标签的数据集,额外的标签将如何影响性能?

监督学习和无监督预训练都会随着标签的增加表现出更好地性能,但是无监督预训练的表现要好于监督学习

请添加图片描述

**问题2:**给定一个带标签的数据集,额外的未带标签的数据集将如何影响性能?

对于无监督预训练,使用额外的未带标签的数据越多,均方误差越小

请添加图片描述

模型在回归和分类任务上的表现

请添加图片描述

模型与Baseline的对比实验结果

请添加图片描述

  • 15
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Crossformer是一种利用交叉维度依赖性进行多元时间序列预测的Transformer模型。这个模型的动机是填补之前Transformer在处理多元时间序列时对不同变量之间关系刻画不足的问题。之前的Transformer更多地关注如何通过时间维度的注意力机制建立时序上的关系,而忽略了变量之间的关系。Crossformer通过引入时间维度和变量维度两个阶段的注意力机制来解决这个问题。特别是在变量维度上,Crossformer提出了一种高效的路由注意力机制。这篇论文填补了多元时间序列预测中变量关系建模的空白,并在ICLR2023中被提出。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [【ICLR 2023】 CrossFormer增强多元时间序列建模能力](https://blog.csdn.net/qq_33431368/article/details/129483613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [读论文《Crossformer:利用跨维度依赖进行多变量时间序列预测的Transform》](https://blog.csdn.net/vzvzvzv/article/details/131376526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值