点关注,不迷路,定期更新干货算法笔记~
表示学习是机器学习中的一个重要研究方向,在NLP、CV领域有很多经典的表示学习工作。大多数表示学习利用无监督学习的方法,结合合适的正负样本pair构造、损失函数,学习便于让机器学习模型理解的样本表示。近期,表示学习也逐渐应用到了时间序列领域。今天给大家介绍一篇时间序列表示学习的前沿工作,是由北京大学和微软联合署名的一篇AAAI 2022工作TS2Vec。
论文题目:TS2Vec: Towards Universal Representation of Time Series
下载地址:https://arxiv.org/pdf/2106.10466.pdf
1
时间序列中的表示学习
在时间序列中应用表示学习的思路和CV、NLP中类似,以一些无监督任务预训练一个表示生成模型,再利用高模型在下游其他任务上进行finetune,借助良好的表示提升下游任务效果。但是,以往的时间序列表示学习方法存在一些弊端。例如,目前大部分表示学习都是instance-level的,即生成一个时间序列整体的表示。Instance-level的表示比较粗,很难有效应用到时间序列预测或异常检测这种需要更细粒度的时间序列片段表示的任务中。此外,由于表示学习大多借鉴了CV、NLP中的工作,很少有针对时间序列特点设计的无监督训练方法或样本构造方法。
本文提出的TS2Vec时间序列表示学习方法,核心思路也是无监督表示学习,通过数据增强的方式构造正样本对,通过对比学习的优化目标让正样本对之间距离,负样本之间距离远。本文的核心点主要在两个方面,第一个是针对时间序列特点的正样本对构造和对比学习优化目标的设计,第二个是结合时间序列特点提出的层次对比学习。
2
模型结构
TS2Vec模型的整体结构如下图所示。对于一个时间序列,会构造两个包含公共片段的子序列(分别为红色和绿色)。这两个序列会输入到深度学习模型中。深度学习模型采用的是空洞卷积的基本结构,具体结构细节介绍可以参考之前的文章12篇顶会论文,深度学习时间序列预测经典方案汇总。输入序列会经过一个全连接层,将每个时间步映射成一个向量。接下来会对各个时刻的向量进行随机mask,生成一个增强的上下文视图。接下来利用空洞卷积在被随机mask的序列上进行表示抽取,得到每个时刻的表示向量。
3
样本构造
对比学习需要构造正样本对,例如图像对比学习,通过翻转、裁剪等构造一个图像的正样本,而NLP中通过随机删词、替换、回译等方法生成正样本。在之前的时间序列表示学习工作中,构造正样本的方式主要有如下集中:
- Subseries consistency:时间序列和其某个子序列互为正样本
- Temporal consistency:相邻的时间序列片段互为正样本
- Transformation consistency:对时间序列进行缩放、打乱顺序等处理,处理后的时间序列互为正样本
然而,这几种方法可能并不适用于时间序列数据。例如上面图中的两个例子,level shifts、anomalies等情况存在时,Subseries consistency和Temporal consistency生成的样本对显然不具有正样本对具有相似性的性质。因此,本文提出了适合时间序列的正样本对构造方法:Contextual Consistency。Contextual Consistency的核心思路是,两个不同增强视图的时间序列,在相同时间步的表示距离更接近。
文中提出两种构造Contextual Consistency正样本对的方法。第一种是Timestamp Masking,在经过全连接后,随机mask一些时间步的向量表示,再通过CNN提取每个时间步的表示。第二种是Random Cropping,选取有公共部分的两个子序列互为正样本对。这两种方法都是让相同时间步的向量表示更近,如上图所示。
4
层次对比学习
TS2Vec的另一个核心点是层次对比学习。时间序列和图像、自然语言的一个重要差异在于,通过不同频率的聚合,可以得到不同粒度的时间序列。例如,天粒度的时间序列,按周聚合可以得到周粒度的序列,按照月聚合可以得到月粒度的序列。为了将时间序列这种层次性融入对比学习中,TS2Vec提出了层次对比学习,算法流程如下。对于两个互为正样本对的时间序列,最开始通过CNN生成每个时间步向量表示,然后循环使用maxpooling在时间维度上进行聚合,文中使用的聚合窗口为2。每次聚合后,都计算对应时间步聚合向量的距离,让相同时间步距离近。聚合的粒度不断变粗,最终聚合成整个时间序列粒度,逐渐实现instance-level的表示学习。
5
损失函数
TS2Vec的损失函数由两部分组成。第一部分是Temporal Contrastive Loss,即相同时间步的向量表示距离近,而不相同的时间步向量表示距离远。
第二部分是Instance-wise Contrastive Loss,正样本对表示之间的距离近,负样本对表示之间的距离远。负样本对采用的是batch内随机负采样的方式。对于对比学习的训练方式细节可以参考之前的文章对比学习中的4种经典训练模式。
最终loss是由上述两个loss融合得到的,整个loss采用层次对比学习的方式,每层融合后都进行计算:
6
应用和效果
文中将表示学习应用到多个时间序列任务中。对于时间序列分类任务,使用maxpooling获取时间序列instance-level的表示,使用SVM作为分类器,与其他表示学习效果进行对比,TS2Vec在时间序列分类问题上相比其他表示学习方法效果对比如下:
对于时间序列预测问题,采用输入序列经过TS2Vec最后一个时间步的表示向量作为输入,经过一个全连接映射到未来的预测值,部分实验结果和预测可视化图像如下,对比了Informer、NBEATS、TCN等多个SOTA时间序列预测模型:
对于异常检测任务,目标是预测时间序列最后一个点是否异常,文中对于时间序列的最后一个点进行mask前后的表示计算距离,距离超过一定阈值即判定为异常。时间序列异常检测的效果如下:
7
总结
表示学习是深度学习中研究热点之一,时间序列表示学习借鉴其在CV和NLP领域的应用,也逐渐成为研究热点,并且大幅提升了时间序列各项任务上的效果。期待后续更多顶会时间序列表示学习的工作。
END