[论文分享]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] token与patched的时间序列数据相结合,允许实例级嵌入通过扩展时间序列范围来捕获更全面的语义信息。
-
两个借口任务: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时间戳级嵌入的有效性,我们对时间序列预测进行了线性评估。这包括使用借口任务对编码器进行预训练,然后冻结编码器权重,并在下游预测任务上附加线性层进行训练。
针对多变量和单变量都进行了预测实验。
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层实现不同视图
相关文章:
[论文分享]TimeDRL:多元时间序列的解纠缠表示学习
论文题目:TimeDRL: Disentangled Representation Learning for Multivariate Time-Series 论文地址:https://arxiv.org/abs/2312.04142 代码地址:暂无 关键要点:多元时间序列,自监督表征学习,分类和预测 摘…...
分享一个好看的vs主题
最近发现了一个很好看的vs主题(个人认为挺好看的),想要分享给大家。 主题的名字叫NightOwl,和vscode的主题颜色挺像的。操作方法也十分简单,首先我们先在最上面哪一行找到扩展。 然后点击管理扩展,再搜索栏…...
什么是云呼叫中心?
云呼叫中心作为一种高效的企业呼叫管理方案,越来越受到企业的青睐,常被用于管理客服和销售业务。那么,云呼叫中心到底是什么? 什么是云呼叫中心? 云呼叫中心是一种基于互联网的呼叫管理系统,与传统的呼叫…...
还在用nvm?来试试更快的node版本管理工具——fnm
前言 📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步! 🍅 个人主页:南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …...
【Hadoop精讲】HDFS详解
目录 理论知识点 角色功能 元数据持久化 安全模式 SecondaryNameNode(SNN) 副本放置策略 HDFS写流程 HDFS读流程 HA高可用 CPA原则 Paxos算法 HA解决方案 HDFS-Fedration解决方案(联邦机制) 理论知识点 角色功能 元数据持久化 另一台机器就…...
企业需要哪些数字化管理系统?
企业需要哪些数字化管理系统? ✅企业引进管理系统肯定是为了帮助整合和管理大量的数据,从而优化业务流程,提高工作效率和生产力。 ❌但是,如果各个系统之间不互通、无法互相关联数据的话,反而会增加工作量和时间成本…...
【vue】开发常见问题及解决方案
有一些问题不限于 Vue,还适应于其他类型的 SPA 项目。 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的。如果一个页…...
飞天使-k8s知识点3-卸载yum 安装的k8s
要彻底卸载使用yum安装的 Kubernetes 集群,您可以按照以下步骤进行操作: 停止 Kubernetes 服务: sudo systemctl stop kubelet sudo systemctl stop docker 卸载 Kubernetes 组件: sudo yum remove -y kubelet kubeadm kubectl…...
ZooKeeper 集群搭建
文章目录 ZooKeeper 概述选举机制搭建前准备分布式配置分布式安装解压缩并重命名配置环境配置服务器编号配置文件 操作集群编写脚本运行脚本搭建过程中常见错误 ZooKeeper 概述 Zookeeper 是一个开源的分布式服务协调框架,由Apache软件基金会开发和维护。以下是对Z…...
Meson:现代的构建系统
Meson是一款现代化、高性能的开源构建系统,旨在提供简单、快速和可读性强的构建脚本。Meson被设计为跨平台的,支持多种编程语言,包括C、C、Fortran、Python等。其目标是替代传统的构建工具,如Autotools和CMake,提供更简…...
【大模型AIGC系列课程 5-2】视觉-语言大模型原理
重磅推荐专栏: 《大模型AIGC》;《课程大纲》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在…...
震惊!难怪别人家的孩子越来越聪明,原来竟是因为它
前段时间工作调动给孩子换了个新学校,刚开始担心她不能适应新学校的授课方式,但任课老师对她评价很高,夸她上课很专注。 为了训练孩子的专注力,作为家长可没少下功夫,画画,下五子棋等益智游戏的兴趣班没少…...
Linux操作系统(UMASK+SUID+SGID+STICK)
UMASK反掩码 如何查看反掩码:直接在终端窗口运行 umask root用户反掩码:0022 普通用户反掩码:0002 UMASK的作用:确定目录,文件的缺省权限值 以root身份创建目录,观察目录的9位权限值 以root身份创建普通文件…...
Java 中单例模式的常见实现方式
目录 一、什么是单例模式? 二、单例模式有什么作用? 三、常见的创建单例模式的方式 1、饿汉式创建 2、懒汉式创建 3、DCL(Double Checked Lock)双检锁方式创建 3.1、synchronized 同步锁的基本使用 3.2、使用 DCL 中存在的疑…...
【C语言】自定义类型之联合和枚举
目录 1. 前言2. 联合体2.1 联合体类型的声明2.2 联合体的特点2.3 相同成员的结构体和联合体对比2.4 联合体大小的计算2.4 判断当前机器的大小端 3. 枚举3.1 枚举类型的声明3.2 枚举类型的优点3.3 枚举类型的使用 1. 前言 在之前的博客中介绍了自定义类型中的结构体,…...
使用Mosquitto/python3进行MQTT连接
一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。 …...
JavaWeb笔记之前端开发HTML
一、引言 1.1HTML概念 网页,是网站中的一个页面,通常是网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。通常我们看到的网页都是以htm或html后缀结尾的文件,俗称 HTML文件。 …...
通过IP地址定位解决被薅羊毛问题
随着互联网的普及,线上交易和优惠活动日益增多,这也为一些不法分子提供了可乘之机。他们利用技术手段,通过大量注册账号或使用虚假IP地址进行异常操作,以获取更多的优惠或利益,这种行为被称为“薅羊毛”。对于企业和平…...
Leetcode 122 买卖股票的最佳时机 II
题意理解: 已知:一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格 如何哪个时间点买入,哪个时间点卖出,多次交易,能够收益最大化 目的:收益最大化 解题思路: 使用贪心…...
音频文件合成
音频文件合成 音频文件合成 http://ffmpeg.org/download.html https://blog.csdn.net/u013314786/article/details/89682800 http://www.360doc.com/content/19/0317/01/10519289_822112563.shtml https://chaijunkun.blog.csdn.net/article/details/116491526?spm1001.210…...
20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞
20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞 2023/12/20 17:19 简略步骤:rootrootrootroot-X99-Turbo:~/3TB$ tar --use-compress-programpigz -xvpf rk3399-android-10.git-20210201.tgz rootrootro…...
vivo 容器平台资源运营实践
作者:vivo 互联网服务器团队 - Chen Han 容器平台针对业务资源申请值偏大的运营问题,通过静态超卖和动态超卖两种技术方案,使业务资源申请值趋于合理化,提高平台资源装箱率和资源利用率。 一、背景 在Kubernetes中,容…...
ASP.NET Core面试题之Redis高频问题
🎈🎈在.NET后端开发岗位中,如今也少不了、微服务、分布式、高并发高可用相关的面试题🎈🎈 👍👍本文分享一些整理的Redis高频面试题🎉 👍👍机会都是给有准备…...
【教程】Ubuntu基本软件安装
文章目录 一、搜狗输入法安装二、百度网盘安装三、划词翻译 一、搜狗输入法安装 全网最准确的Ubuntu 20.04 安装搜狗输入法的步骤 二、百度网盘安装 百度云盘for Linux安装教程和体验 三、划词翻译 ubuntu最好用的划词翻译词典:有道词典和GoldenDict...
Jenkins 构建环境指南
目录 Delete workspace before build starts(常用) Use secret text(s) or file(s) (常用) Add timestamps to the Console Output (常用) Inspect build log for published build scans Terminate a …...
基于Go语言的HTTP路由设计与实现
在Go语言的世界里,HTTP路由是一种将HTTP请求映射到相应处理函数的技术。通过路由,我们可以确定当用户发送一个HTTP请求时,应该调用哪个函数来处理该请求。在这个过程中,我们可以使用多种方法来实现路由设计,下面我将以…...
SpringMVC01
SpringMVC 1. 学习⽬标2. 什么叫MVC?3. SpringMVC 框架概念与特点4. SpringMVC 请求流程5. Spring MVC 环境搭建6. URL 地址映射配置7. 参数绑定8. JSON 数据开发JSON普通数组步骤1:pom.xml添加依赖步骤2: 修改配置⽂件步骤3. 注解使⽤ 1. 学习⽬标 2. 什…...
基于Redis限流(aop切面+redis实现“令牌桶算法”)
令牌桶算法属于流量控制算法,在一定时间内保证一个键(key)的访问量不超过某个阈值。这里的关键是设置一个令牌桶,在某个时间段内生成一定数量的令牌,然后每次访问时从桶中获取令牌,如果桶中没有令牌&#x…...
【小白专用】php pdo方式连接sqlserver 设置方法 更新23.12.21
windows系统的拓展相对来说比较好安装,直接下载对应的dll文件,修改php.ini配置文件即可。 添加PHP对SQL SERVER的支持 1.新建PHP 文件,输入内容: <?php echo phpinfo(); ?> 2.运行后,可以查看到如下数据&…...
打开C#项目时出现“error : 找不到指定的 SDK”的错误解决方法汇总
从github上克隆项目回来,发现编译通过,我是通过一下步骤解决的: 1.到适用于 Visual Studio 的 .NET SDK 下载网址下载对应版本的.NET SDK,关闭当前VS后安装; 2.参考VS2022报错:error : 找不到指定的 SDK“…...
自学网站查分数/长春最新发布信息
课程描述 这门课是对自然语言处理(NLP)详细介绍,自然语言处理是对能够用人类语言处理、理解或交流的计算系统的研究。该课程涵盖了基本方法,主要是机器学习和深度学习,用于整个自然语言处理领域,以及一套历史和当代的自然语言处理…...
福建省建建设行业信用评分网站/无锡优化网站排名
侧滑菜单有很大的坑,根据网友的描述,在苹果上正常,安卓上不能用。并且社区里很多人提了问题都没得回复。目前最有效的方法只能修改源码,增加window.h5pullDown的判断。在引入mui前添加一个全局变量var h5pullDown true;方案一我是…...
苏南建设集团网站/nba最新交易汇总
深海才会有鲸鱼 首先,在此,感怀毛星云先生,虽并无交集,但若曾我有幸认识你的话,我想我一定是你的忠实的粉丝,你一定是我的追逐的榜样。 听到这样的消息真的好惋惜,如此勤奋、聪颖、执着且有梦想…...
怎么把网站放到空间/成都最新热门事件
2019.08.29学习整理 绑定方法与非绑定方法 绑定方法 对象绑定方法 类的绑定方法 绑定方法:特殊之处,绑定给谁就是谁来调,并且会把自身调过来 类的绑定方法 绑定给类,类来调用,会把类自身传过来 类的绑定方法用在什么地…...
dedecms 网站名称/淘宝宝贝关键词排名查询工具
Python-数据库—4679人已学习 课程介绍 Python链接MySQL数据库,进行操作,增删改查课程收益Python链接MySQL数据库,进行操作,增删改查讲师介绍尹成 更多讲师课程尹成,毕业于清华大学,拥有顶尖公司Google&…...
做网站说什么5.0啥意思/百度浏览器电脑版
出手自Rod Johnson的《J2EE Development without EJB》是一本难得的好书,无论是对于Java程序员,还是.NET程序员。特别是对于.NET程序员,.NET平台的企业级应用还不是很多,.NET平台上的实用性的架构也远远不及J2EE这么成熟ÿ…...