适合时空预测的时间序列表示学习方法

人工智能 算法
本文提出的模型核心结构如下图所示,其核心一方面是将时空信息融合到对比学习中的方式,另一方面是对比学习框架的升级。

最近,香港科技大学、上海AI Lab等多个组织联合发布了一篇时间序列无监督预训练的文章,相比原来的TS2Vec等时间序列表示学习工作,核心在于提出了将空间信息融入到预训练阶段,即在预训练阶段考虑各个序列之间的关系。因此,本文提出的方法也更适合作为时空预测领域的预训练模型。下面为大家详细介绍一下这篇文章。

论文标题:Correlated Time Series Self-Supervised Representation Learning via Spatiotemporal Bootstrapping

下载地址:https://arxiv.org/abs/2306.06994

1、背景

在过去的工作中,有很多对时间序列无监督预训练的研究,一般使用对比学习的思路进行时间序列Encoder的自监督训练。然而,历史的工作存在3个弊端。

第一个是大多数过去的方法学习的都是序列整体的表示,而时间序列预测任务更关注每个时间步的表示,因此上下游任务存在一定的不适配问题。

第二个是过去的工作都是在单个时间序列本身上进行预训练,没有考虑到各个序列之间的关系。

第三点是以往的对比学习预训练方法,在构造负样本的过程中经常出现伪负样本问题(即构造的负样本其实应该是正样本),这导致了对模型效果的负向影响。

针对上述3个问题,本文提出了一系列解决方法,核心是在预训练阶段同时考虑时序关系和空间关系,并且将对比学习框架改为不依赖正样本的BYOL。

图片图片

2、模型细节

本文提出的模型核心结构如下图所示,其核心一方面是将时空信息融合到对比学习中的方式,另一方面是对比学习框架的升级。

对于一个时间序列,需要在时间维度和空间维度都进行对比学习,将时空信息同时融合到预训练阶段。对于时间维度,文中利用滑动窗口的方式,对一个序列生成两个有overlap的子序列,其中一个作为View,另一个作为时间维度的Target。其中,View部分使用随机mask的方式,遮盖一部分时间步的样本点。在时间维度的对比学习,即利用View和Temporal Target之间进行对比学习。

在空间维度上,根据节点之间的拓扑关系,随机采样一个当前序列的邻居序列,同样使用滑动窗口生产成本一个子序列。这个序列作为View的空间维度Target,使用对比学习拉近View和Spatial Target之间的距离。

图片

在得到上述两类样本后,文中采用了BYOL的对比学习框架,避免了对负样本进行构造,因此解决了伪负样本的问题。BYOL是一种只依赖正样本的对比学习框架,其原始论文中的具体做法为,使用两个模型结构完全相同但参数不同的online network和target network,其中target network的参数是online network参数的滑动平均,target network的输出表示是online network的预测目标,target部分不会根据loss更新其参数。也就是用两套参数实现正样本1对正样本2的预测。

图片图片

在本文中也是类似的方式,利用被部分mask的View,同时预测Temporal Target和Spatial Target,模型的loss包含Temporal和Spatial两部分相应的对比学习loss。模型的具体结构采用了TCN的结构(主体为空洞卷积),且View的模型参数和Target的模型参数不共享。

3、实验效果

下面为本文提出的表示学习方法在时空预测数据集上的预测效果,可以看到相比TS2Vec(目前SOTA的时间序列表示学习方法),有比较明显的效果提升。这说明本文提出的引入空间信息的对比学习,对于时空预测类型的问题效果更好。

图片图片

下图为预测case分析,本文提出的方法相比TS2VecUI有更好的预测趋势。

图片图片

责任编辑:武晓燕 来源: 圆圆的算法笔记
相关推荐

2023-10-05 06:05:54

谷歌时间训练

2024-06-03 11:05:11

2016-07-14 16:27:54

linux

2016-12-28 15:19:22

大数据机器学习销售预测

2023-01-30 17:10:23

DeepTime元学习

2024-05-09 16:23:14

2016-09-30 15:33:02

集成学习机器学习算法

2009-09-28 10:40:28

.NET学习

2024-09-04 16:36:48

2022-07-15 16:14:39

深度学习时间序列理论

2010-05-04 17:48:53

2009-09-08 09:25:46

思科认证学习方法思科认证

2009-09-16 10:16:29

CCNA学习方法CCNA

2009-06-17 15:06:39

Java 学习方法

2023-10-13 15:34:55

时间序列TimesNet

2009-09-04 09:37:49

思科认证CCNA学习方法

2024-02-21 14:32:09

2009-10-15 11:24:00

CCNA学习方法CCNA

2024-06-27 16:38:57

2011-07-10 15:07:37

点赞
收藏

51CTO技术栈公众号