[论文分享]TimeDRL:多元时间序列的解纠缠表示学习

论文题目:TimeDRL: Disentangled Representation Learning for Multivariate Time-Series

论文地址:https://arxiv.org/abs/2312.04142

代码地址:暂无

关键要点:多元时间序列,自监督表征学习,分类和预测

摘要

在许多现实世界的应用程序(例如,医疗保健和工业)中,多变量时间序列数据信息丰富,但由于缺乏标签和高维,具有挑战性。

最近在自监督学习方面的研究已经显示了它们在不依赖标签的情况下学习丰富表征的潜力,但它们在学习解纠缠嵌入和解决归纳偏差问题(例如,变换不变性)方面存在不足。为了解决这些挑战,我们提出了TimeDRL,这是一个通用的多元时间序列表示学习框架,具有解纠缠的双层次嵌入。TimeDRL具有三个新特征:(i)使用[CLS]令牌策略从修补的时间序列数据中分离出时间戳级和实例级嵌入的派生;(ii)利用时间戳预测和实例对比任务进行解纠缠表示学习,前者优化带有预测损失的时间戳级嵌入,后者优化带有对比损失的实例级嵌入;(iii)避免使用增强方法来消除归纳偏差,例如从裁剪和屏蔽中获得的变换不变性。在6个时间序列预测数据集和5个时间序列分类数据集上的综合实验表明,TimeDRL持续优于现有的表征学习方法,预测MSE平均提高57.98%,分类准确率平均提高1.25%。

此外,广泛的研究证实了TimeDRL体系结构中每个组件的相对贡献,半监督学习评估证明了它在现实场景中的有效性,即使有有限的标记数据。

1 介绍

在时间序列域中直接应用SSL面临两个挑战:

1)学习解纠缠的双级表示。现有的方法侧重于派生时间戳级别的嵌入或实例级别的嵌入,但不能同时派生两者。时间戳级别的嵌入对于异常检测和预测是有效的,而实例级别的嵌入则适合于分类和聚类任务。

理论上我们可以通过使用池化方法从时间戳级嵌入中提取实例级嵌入来避免显式地派生实例级嵌入,但这种方法通常会导致各向异性问题,其中嵌入被限制在嵌入空间中的一个狭窄的锥形区域,从而限制了它们的表达性。

2)归纳偏差。归纳偏差是指在学习过程中采用数据增强方法的假设和先验知识,以增强模型对未知数据的泛化能力。其他领域的数据增强方法引入的归纳偏差不适用于时间序列数据。

2 创新点

  • 解纠缠双级嵌入的普遍适用性:我们介绍了TimeDRL,一个操作于解纠缠双级嵌入的多元时间序列表示学习框架。这种设计可以广泛适用于各种时间序列下游任务。TimeDRL利用专用的[CLS] tokenpatched的时间序列数据相结合,允许实例级嵌入通过扩展时间序列范围来捕获更全面的语义信息。

  • 两个借口任务:TimeDRL使用时间戳预测任务来优化时间戳级嵌入,使用实例对比任务来优化实例级嵌入,确保在两个级别上有效学习。

  • 减轻归纳偏倚:为了避免归纳偏倚,TimeDRL在时间戳预测任务中使用了一种没有屏蔽的重建误差方法,并在实例对比任务中利用dropout层的随机性,确保无偏数据表示。

  • 在11个真实世界基准测试中的有效性能:TimeDRL在时间序列预测和分类基准测试中始终优于最先进的性能,证明了所提出的方法在真实世界应用中的通用性。

3 方法

采用Siamese网络架构,使用Transformer作为编码器fθ,通过利用编码器内dropout层的固有随机性从相同的输入生成两个不同的嵌入视图,从而消除了对数据增强的需要。为了优化编码器,采用了两个pretext任务:以时间戳级嵌入为目标的时间戳预测任务和以实例级嵌入为重点的实例对比任务

3.1 解纠缠的双级嵌入

transformer在下游时间序列任务中取得了显著的成功,但在时间序列的自监督学习领域,基于cnn和基于rnn的模型通常优于transformer,这表明transformer在时间序列表示学习中的全部潜力尚未得到充分利用。此外,BERT和RoBERTa等模型已被证明在生成高质量的句子嵌入方面取得了成功,这使得Transformer Encoder成为我们框架的合适选择。

我们采用Transformer Encoder作为TimeDRL的主要架构,采用了PatchTST中的Patch概念,将相邻的时间步长聚合到一个基于Patch的token中。该技术大大减少了transformer所需的上下文窗口大小,显著降低了培训成本,并大大增强了培训过程的稳定性。

在BERT和RoBERTa中,[CLS]令牌用于捕获句子级嵌入,这促使我们采用它来提取时间序列域中的实例级嵌入。虽然理论上可以通过池化方法(例如,全局平均池化)从时间戳级嵌入派生实例级嵌入,这种方法会导致各向异性问题。当时间戳级嵌入被限制在嵌入空间中的一个狭窄区域时,就会出现这个问题,从而降低了它们有效捕获各种信息的能力。NLP中的研究表明,与传统的池化方法相比,通过对比学习优化[CLS]令牌可以获得更好的结果。这一发现与我们的实验结果一致。

具体框架:

1)给定一个输入时间序列样本,我们首先应用实例归一化和Patch得到一系列token

2)在这些token的开头添加一个[CLS] token,得到编码器的输入

3)编码器由一个线性token编码层,一个线性位置编码层和一系列自关注块组成

4)得到编码器输出后,将第一个token([CLS]token)对应的嵌入指定为实例级嵌入zi,将后续的嵌入视为时间戳级嵌入zt

3.2 TimeDRL中的时间戳预测任务

时间戳预测任务的目的是在不引入归纳偏差的情况下推导时间戳嵌入。考虑到不同时间序列数据集之间特征的巨大差异,我们将TimeDRL设计为一个通用框架,避免了任何转换不变性的考虑。因此,我们在TimeDRL中引入了非增强的时间戳预测任务,重点研究了在没有数据增强方法的情况下对经过patch的时间序列数据进行重建

给定时间戳级嵌入zt,通过时间戳预测头pθ(没有激活函数的线性层)进行处理以生成预测,预测损失LP计算xpatch与预测输出之间的MSE:

实例级嵌入zi不会从MSE损失中更新,总LP是对两个视图的LP取平均。

3.3 TimeDRL中的实例对比任务

为了捕获整个序列的整体信息,我们开发了一个实例对比任务,通过对比损失来派生实例级嵌入。在对比学习中,需要两个不同的嵌入视图来计算损失。NLP中的SimCSE应用对比任务来改进来自[CLS]令牌的句子级嵌入,利用dropout层来引入变化,而不依赖于任何外部增强方法。

为了与我们避免数据增强的承诺保持一致,我们在编码器内使用dropout层来引入输出嵌入的随机性,通过两次将数据通过编码器,从相同的输入生成两个不同的嵌入视图。对于每个嵌入,我们提取第一个位置作为我们的实例级嵌入。

此外,只使用这种技术无法解决对比学习中的抽样偏差。当随机选择的负样本与正样本相似时,就会发生抽样偏差,这是由于周期模式的存在而在时间序列域中常见的情况。为了缓解这一问题,本文提出的方法结合了一个额外的预测头和一个停止梯度操作,以防止模型崩溃。

使用负余弦相似度计算损失,总LC是对两个视图的LC取平均。

最后,联合训练时间戳预测任务和实例对比任务,并使用λ在两种损失之间进行调整:

4 实验

4.1 下游任务

将数据集划分为三个部分:60%用于训练,20%用于验证,20%用于测试,除非存在预定义的训练-测试分割。

我们使用transformer作为编码器的架构fθ。使用线性层设计了时间戳预测头pθ,使用中间有BatchNorm和ReLU的两层MLP设计了实例对比头pθ。

在时间序列预测任务中,我们将通道独立与补丁结合在一起。该方法将多变量时间序列视为多个单变量序列,由单个模型进行综合处理。对于时间序列分类,我们发现忽略信道无关性会产生更好的结果。

4.1.1 预测

为了评估TimeDRL时间戳级嵌入的有效性,我们对时间序列预测进行了线性评估。这包括使用借口任务对编码器进行预训练,然后冻结编码器权重,并在下游预测任务上附加线性层进行训练。

根据SimTS(实验设置参照TS2Vec)中使用的实验设置(baseline实验结果完全与SimTS文中一致),针对多变量和单变量都进行了预测实验,历史长度L=402。

ETT的所有特征都用于多变量预测,而单变量预测仅使用油温特征。

Exchange包括8个国家从1990年到2016年的每日汇率。对于多变量预测,使用来自所有这些国家的数据,而对于单变量预测,特别关注新加坡。

Weather提供近1600个美国地区4年来的当地气候数据。对于多变量预测,考虑所有特征,而对于单变量预测,我们会特别关注’web bulb’ 特征。

预训练和下游任务使用同一数据集。

4.1.2 分类

为了评估TimeDRL实例级嵌入的有效性,我们使用线性评估方法进行时间序列分类。采用与预测评估类似的方法,我们首先使用自监督学习训练编码器,冻结其权重,然后附加一个线性层用于分类任务的训练。

4.1.3 半监督实验

首先在大型未标记数据集上训练编码器以学习丰富的表示,然后在下游任务头部使用有限的标记数据进行微调,编码器权重在微调期间被调整。为了模拟有限标签数据可用性的情况,我们在数据集中随机保留一部分标签。仅使用标记数据(监督学习)与结合未标记和标记数据(带微调的TimeDRL)的比较结果如图所示。结果表明,将未标记的数据与TimeDRL结合可以显著提高性能,特别是在可用的标记数据很少的情况下。值得注意的是,即使100%的标签可用,TimeDRL预训练阶段的好处也是显而易见的。

4.2 消融实验

1)pretext 任务

时间戳预测任务侧重于将损失专门应用于时间戳级嵌入,而实例对比任务则针对实例级嵌入。我们的实验研究了每个任务对表征学习有效性的影响。

2)数据增强方法

实验了6种特定于时间序列的数据增强方法。

  • 抖动通过加性高斯噪声模拟传感器噪声。

  • 缩放通过将数据与随机标量相乘来调整数据的大小。

  • 旋转通过排列特征的顺序和可能翻转特征值的符号来修改数据集。

  • 排列将数据分割成段,然后随机排列这些段以创建新的时间序列实例。

  • 屏蔽将时间序列数据中的值随机设置为零。

  • 裁剪将删除时间序列实例的左右区域,并用零填充空白以保持相同的序列长度。

对于时间序列,采用掩蔽和裁剪增强的危害相对较小,但它们仍然会导致性能下降。该实验支持了我们最初的假设,即完全避免增强方法对于消除归纳偏置至关重要,从而确保TimeDRL的最佳性能。

3)cls token 的 pool方式

对实例级嵌入的其他3种不同池化策略进行了实验。

  • Last利用最后一个时间戳级嵌入作为实例级表示。

  • GAP使用全局平均池,在时间轴上平均时间戳级嵌入,以聚合实例级嵌入。

  • All 将所有时间戳级嵌入Flatten,以创建单个实例级表示。

4)encoder结构

使用5种不同的模型进行了实验。

  • Transformer Encoder使用屏蔽自注意。这确保了每个时间戳的嵌入只关注前面的时间戳,而不是后面的时间戳。

  • ResNet采用了计算机视觉的著名架构ResNet18,用适合于时间序列数据的一维卷积进行修改。

  • TCN[49]将扩张和残差连接与因果卷积结合起来,专门用于时间序列的自回归预测。

  • LSTM使用长短期内存单元来捕获顺序数据中的依赖项。使用单向LSTM,关注过去和现在的数据,以防止未来的数据泄漏。

  • Bi-LSTM遵循LSTM结构,但包含双向处理,允许模型集成来自过去和未来时间戳的信息。

Transformer Decoder的性能下降,突出了双向自我注意在实现对整个序列的全面理解中的关键作用。同样,当比较LSTM和Bi-LSTM时,后者表现出更高的性能,因为它能够访问过去和未来的信息。

5)停止梯度

为了解决抽样偏差,我们的方法包括一个额外的预测头和一个停止梯度操作。这种不对称设计,一条路径带有额外的预测头,另一条路径带有停止梯度,在防止模型崩溃方面被证明是有效的。

5 总结

  • 分离了时间戳级和实例级嵌入

  • 引入两个优化目标

  • 对patch后的数据进行重建

  • 采用编码器内的dropout层实现不同视图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/268306.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【杂】如何修复视频--> Wondershare Repairit

近日换宿舍,从一个校区搬到另一个校区,突发奇想决定用相机录一点视频~ 浅浅尝试一下录vlog才发现做短视频也并非想象中那般容易,尤其是构思内容和文案,并且实施起来也会有很多问题,比如手拿着相机录真的很抖o((⊙﹏⊙)…

车手互联是不是杀手锏,来听听一家头部手机厂的座舱方法论

作者 |Amy 编辑 |德新 十年前, 苹果CarPlay和谷歌Android Auto相继推出,手机与车机两个此前貌似无关的品类,从此开始产生交集。 科技巨头看好车机的硬生态,汽车大鳄们则垂涎于科技圈的软实力。 CarPlay和Android Auto的出现&am…

《操作系统A》期末考试复习题——大题51-62(手写笔记)

51、如果限制为两道的多道程序系统中,有4个作业进入系统,其进入系统时刻、估计运行时间为下图所示。系统采用SJF作业调度算法,采用SRTF进程调度算法。作业进入系统时刻、估计运行时间如下: 作业 进入系统时刻 估计运行时间/min …

PHP代码审计之反序列化攻击链CVE-2019-6340漏洞研究

关键词 php 反序列化 cms Drupal CVE-2019-6340 DrupalKernel 前言 简简单单介绍下php的反序列化漏洞 php反序列化漏洞简单示例 来看一段简单的php反序列化示例 <?phpclass pingTest {public $ipAddress "127.0.0.1";public $isValid False;public $output…

1979 年至今的每日地面气象数据AgERA5 (ECMWF) 数据集

AgERA5 (ECMWF) 数据集 1979 年至今的每日地面气象数据&#xff0c;作为农业和农业生态研究的输入。该数据集基于地表每小时 ECMWF ERA5 数据&#xff0c;称为 AgERA5。原始ERA5数据的采集和预处理是一项复杂且专业的工作。通过提供 AgERA5 数据集&#xff0c;用户可以从这项工…

基于Java (spring-boot)的仓库管理系统

一、项目介绍 本系统的使用者一共有系统管理员、仓库管理员和普通用户这3种角色: 1.系统管理员&#xff1a;通过登录系统后&#xff0c;可以进行管理员和用户信息的管理、仓库和物品分类的管理&#xff0c;以及操作日志的查询&#xff0c;具有全面的系统管理权限。 2.仓库管理…

CPP虚析构函数

#include<iostream> using namespace std;class base {public:base(){};virtual ~base(){}; };// 在类声明中声明纯虚析构函数 //base::~base() {}class father: public base {public:~father(){cout << "father" << endl;} };int main() {base* a…

沉浸式go-cache源码阅读!

大家好&#xff0c;我是豆小匠。 这期来阅读go-cache的源码&#xff0c;了解本地缓存的实现方式&#xff0c;同时掌握一些阅读源码的技巧~ 1. 源码获取 git clone https://github.com/patrickmn/go-cache.git用Goland打开可以看到真正实现功能的也就两个go文件&#xff0c;ca…

低代码平台表单引擎设计器

目录 一、前言 二、JNPF表单设计组成 功能一览&#xff1a; 三、低代码哲学 四、结语 一、前言 无论是构建SaaS产品&#xff0c;还是开发内部工具&#xff0c;甚至是服务于消费者的C端产品&#xff0c;表单始终是不可或缺的一环。作为支持用户提交信息的核心组件&#xff…

数学建模之聚类模型详解

聚类模型 引言 “物以类聚&#xff0c;人以群分”&#xff0c;所谓的聚类&#xff0c;就是将样本划分为由类似的对象组成的多个类的过程。聚类后&#xff0c;我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测&#xff1b;也可以探究不同类之间的相关性和主…

员工考核UI网页界面(PS大屏文件资料)

现分享人员管理可视化数据统计网页UI、员工考核数据可视化UI网页界面模版的UI源文件&#xff0c;供UI设计师们快速获取PSD源文件完成工作。 若需更多 大屏组件&#xff0c;请移步小7的另一篇文章&#xff1a;数据可视化大屏组件&#xff0c;大屏PSD设计源文件(大屏UI设计规范)…

C++ 之LeetCode刷题记录(二)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 从今天开始cpp刷题之旅&#xff0c;多学多练&#xff0c;尽力而为。 先易后难&#xff0c;先刷简单的。 9、回文数 给你一个整数 x &#xff0c;如果 x 是一个…

MySQL的事务-原子性

MySQL的事务处理具有ACID的特性&#xff0c;即原子性&#xff08;Atomicity)、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09;。 1. 原子性指的是事务中所有操作都是原子性的&#xff0c;要…

从0开始python学习-35.allure报告企业定制

目录 1. 搭建allure环境 2. 生成报告 3. logo定制 4. 企业级报告内容或层级定制 5. allure局域网查看 1. 搭建allure环境 1.1 JDK&#xff0c;使用PyCharm 找到pycharm安装目录找到java.exe记下jbr目录的完整路径&#xff0c;eg: C:\Program Files\JetBrains\PyCharm Com…

有关List的线程安全、高效读取:不变模式下的CopyOnWriteArrayList类、数据共享通道:BlockingQueue

有关List的线程安全 队列、链表之类的数据结构也是极常用的&#xff0c;几乎所有的应用程序都会与之相关。在java中&#xff0c; ArrayList和Vector都使用数组作为其内部实现。两者最大的不同在与Vector是线程安全的。 而ArrayList不是。此外LinkedList使用链表的数据结构实现…

C/C++图形化编程(2)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 站在巨人的肩上是为了超过巨人&#x…

040、全卷积

之——FCN 目录 之——FCN 杂谈 正文 1.FCN 2.实现 杂谈 FCN&#xff08;Fully Convolutional Network&#xff09;是一种深度学习网络架构&#xff0c;专门设计用于语义分割任务。传统的深度学习网络如卷积神经网络&#xff08;CNN&#xff09;在处理图像时通常用于分类…

Spring Boot学习随笔- 第一个Thymeleaf应用(基础语法th:,request、session作用域取值)

学习视频&#xff1a;【编程不良人】2021年SpringBoot最新最全教程 第十五章、Thymeleaf Thymeleaf是一种现代化的服务器端Java模板引擎&#xff0c;专门用于Web和独立环境。Thymeleaf在有网络和无网络的环境下皆可运行&#xff0c;即可以让美工在浏览器查看页面的静态效果&am…

2023年12月16日~12月22日(自适应反馈机制下基于卷积神经网络的高清晰反射波反演算法:CNN-RWI)

标题&#xff1a;Adaptive Feedback Convolutional-Neural-Network-Based High-Resolution Reflection-Waveform Inversion 全波形反演&#xff08;FWI&#xff09;是一种非线性拟合观测地震记录从而获得高清晰速度模型的最优化算法。FWI能够通过拟合浅层初至波和反射波获得较准…

1.数字反转

题目 AC import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();if(n>0) {StringBuilder str new StringBuilder();str.append(n);StringBuilder str1 str.reverse();String st…