时间序列中的无监督表示学习

这篇具有很好参考价值的文章主要介绍了时间序列中的无监督表示学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自监督学习中,有一个常用的方法是对比学习;

2.  时间序列的表示学习

1.1 采用对比学习的方式

Time-series representation learning via temporal and contextual contrasting(IJCAI’21)

本文采用对比学习的方式进行时间序列表示学习。首先对于同一个时间序列,使用strong和weak两种数据增强方法生成原始序列的两个view。

Strong Augmentation指的是将原始序列划分成多个片段后打乱顺序,再加入一些随机扰动;

Weak Augmentation指的是对原始序列进行缩放或平移。

时间序列中的无监督表示学习

接下来,将strong和weak两个增强的序列输入到一个卷积时序网络中,得到每个序列在每个时刻的表示。文中使用了Temporal Contrasting和Contextual Contrasting两种对比学习方式。

Temporal Contrasting指的是用一种view的context预测另一种view在未来时刻的表示,目标是让该表示和另一种view对应的真实表示更接近,这里使用了Transformer作为时序预测的主体模型,公式如下,其中c表示strong view的Transformer输出,Wk是一个映射函数,用于将c映射到对未来的预测,z是weak view未来时刻的表示:
时间序列中的无监督表示学习

Contextual Contrasting则是序列整体的对比学习,拉近相同序列生成的两个view的距离,让不同序列生成的view距离更远,公式如下,这里和图像对比学习的方式类似:

时间序列中的无监督表示学习

1.2 采用无监督表示学习

TS2Vec: Towards Universal Representation of Time Series(AAAI’22)

TS2Vec核心思路也是无监督表示学习,通过数据增强的方式构造正样本对,通过对比学习的优化目标让正样本对之间距离,负样本之间距离远。本文的核心点主要在两个方面,第一个是针对时间序列特点的正样本对构造和对比学习优化目标的设计,第二个是结合时间序列特点提出的层次对比学习。

对于正样本对构造方法,本文提出了适合时间序列的正样本对构造方法:Contextual Consistency。Contextual Consistency的核心思路是,两个不同增强视图的时间序列,在相同时间步的表示距离更接近。文中提出两种构造Contextual Consistency正样本对的方法。第一种是Timestamp Masking,在经过全连接后,随机mask一些时间步的向量表示,再通过CNN提取每个时间步的表示。第二种是Random Cropping,选取有公共部分的两个子序列互为正样本对。这两种方法都是让相同时间步的向量表示更近,如上图所示。

时间序列中的无监督表示学习
TS2Vec的另一个核心点是层次对比学习。时间序列和图像、自然语言的一个重要差异在于,通过不同频率的聚合,可以得到不同粒度的时间序列。例如,天粒度的时间序列,按周聚合可以得到周粒度的序列,按照月聚合可以得到月粒度的序列。为了将时间序列这种层次性融入对比学习中,TS2Vec提出了层次对比学习,算法流程如下。

对于两个互为正样本对的时间序列,最开始通过CNN生成每个时间步向量表示,然后循环使用maxpooling在时间维度上进行聚合,文中使用的聚合窗口为2。每次聚合后,都计算对应时间步聚合向量的距离,让相同时间步距离近。聚合的粒度不断变粗,最终聚合成整个时间序列粒度,逐渐实现instance-level的表示学习。

1.3 多元时间序列表示

A transformer-based framework for multivariate time series representation learning(KDD’22)

这篇文章借鉴了预训练语言模型Transformer的思路,希望能够在多元时间序列上通过无监督的方法,借助Transformer模型结构,学习良好的多元时间序列表示。本文重点在于针对多元时间序列设计的无监督预训练任务。如下图右侧,对于输入的多元时间序列,会mask掉一定比例的子序列(不能太短),并且每个变量分别mask,而不是mask掉同一段时间的所有变量。预训练的优化目标为还原整个多元时间序列。通过这种方式,让模型在预测被mask掉的部分时,既能考虑前面、后面的序列,也能考虑同一时间段没有被mask的序列。

时间序列中的无监督表示学习

下图展示了无监督预训练时间序列模型对时间序列预测任务带来的效果提升。左侧的图表示,不同有label数据量下,是否使用无监督预训练的RMSE效果对比。可以看到,无论有label数据量有多少,增加无监督预训练都可以提升预测效果。右侧图表示使用的无监督预训练数据量越大,最终的时间序列预测拟合效果越好。

时间序列中的无监督表示学习

1.4 时序领域采样

本文提出的方法在正负样本的选择上和损失函数的设计上相比上一篇文章有一定区别。首先是正负样本的选择,对于一个以时刻t为中心的时间序列,文中采用一个高斯分布来划定其正样本的采样范围。高斯分布以t为中心,另一个参数是时间窗口的范围。对于时间窗口范围的选择,文中采用了ADF检验的方法选择最优的窗口跨度。如果时间窗口范围过长,可能导致采样的正样本和原样本不相关的情况;如果时间窗口过小,会导致采样的正样本和原样本重叠部分太多。ADF检验可以检测出时间序列在保持稳定的时间窗口,以此选择最合适的采样范围。

时间序列中的无监督表示学习

在损失函数方面,文中主要解决的是伪负样本的问题。如果将上面选定的窗口外的样本都视为负样本,很有可能会出现伪负样本的情况,即本来是和原样本相关的,但因为距离原样本比较远而被误认为是负样本。例如时间序列是以年为周期的,时间窗口选择的是1个月,可能会把去年同期的序列认为是负样本。这会影响模型训练,使模型收敛困难。为了解决这个问题,本文将窗口外的样本不视为负样本,而是视为没有无label样本。在损失函数中,给每个样本设定一个权重,这个权重表示该样本为正样本的概率。这种方法也被称为Positive-Unlabeled (PU) learning。最终的损失函数可以表示为如下形式:

时间序列中的无监督表示学习

1.5 多变量时间序列

本文的时间序列表示学习方法思路来源于经典的词向量模型CBOW。CBOW中的假设是,一个单词的上下文表示应该和该单词的表示比较近,同时和其他随机采样的单词表示比较远。本文将这种思路应用到时间序列表示学习中,首先需要构造CBOW中的上下文(context)和随机负样本,构造方法如下图所示。首先选择一个时间序列xref,以及xref中的一个子序列xpos。,xref可以看成是xpos的context。同时,随机从其他时间序列,或者当前时间序列的其他时间片段中采样多个负样本xneg。这样就可以构造类似CBOW的损失函数了,让xref和xpos离得近,同时让xref和其他负样本xneg距离远。

时间序列中的无监督表示学习

在模型结构上,本文采用了多层空洞卷积的结构,这部分模型结构在之前的文章中有过详细介绍,感兴趣的同学可以参考:12篇顶会论文,深度学习时间序列预测经典方案汇总。

时间序列中的无监督表示学习

2. 无监督的预训练

Self-Supervised Contrastive Pre-Training For Time Series via Time-Frequency Consistency

先验性假设,时频一致性

无监督预训练的核心是将先验引入模型学习强泛化性的参数,本文引入的先验是同一个时间序列在频域的表示和在时域的表示应该相近,以此为目标利用对比学习进行预训练。

2.1 动机

无监督预训练在时间序列中的应用越来越多,但是和NLP、CV等领域不同的是,时间序列中的预训练没有一个特别合适的,在所有数据上都一致的先验假设。例如在NLP中,一个先验假设是不管是什么领域的文本,或者什么语种的文本,都遵循相同的语法规律。但是在时间序列中,不同数据集的频率、周期性、平稳性差异都很大。以往的预训练方法现在一些数据集pretrain再在目标数据集finetune。如果预训练的数据集和finetune数据集的时间序列相关特征差异很大,就会出现迁移效果不好的问题。

为了解决这个问题,本文找到了一种不论在什么样的时间序列数据集中都存在的规律,那就是一个时间序列的频域表示和时域表示应该相似。在时间序列中,时域和频域就是同一个时间序列的两种表示,因此如果存在一个时域频域共享的隐空间,二者的表示应该是相同的,在任何时间序列数据中都应该有相同的规律。

基于上述思考,本文提出了Time-Frequency Consistency (TF-C)的核心架构,以对比学习为基础,让时域和频域的序列表示尽可能接近。

2.2 基础模型架构

基于上述思路,本文构建的整体模型结构如下图。首先利用多种时间序列数据增强手段,生成每个时间序列的不同增强版本。然后将时间序列输入到Time Encoder和Frequency Encoder,分别得到时间序列在时域和频域的表示。损失函数包括时域对比学习loss、频域对比学习loss、时域和频域的表式对齐loss。

时间序列中的无监督表示学习

在时域上,使用的数据增强手段包括jittering、scaling、time-shifts、neighborhood segments等时间序列对比学习中的经典操作(对于时间序列数据增强,后续会出一个单独的文章系统性介绍)。经过Time Encoder后,让一个时间序列和其增强的结果表示相近,和其他时间序列远离:

时间序列中的无监督表示学习

在频域上,本文是首次研究了如何进行频域中的时间序列数据增强。文中通过随机抹除或增加frequency components实现频域上的数据增强。同时为了避免频域的绕道对原始序列噪声大的变化,导致增强后的序列和原始序列不相似,会对增删的components和增删幅度做限制。对于删除操作,会随机选择不超过E个频率进行删除;对于增加操作,会选择那些振幅小于一定阈值的频率,并提升其振幅。得到频域数据增强的结果后,使用Frequency Encoder得到频域表示,并利用和时域类似的对比学习进行学习。

2.3 时域频域一致性

上述的基础模型结构只是分别在时域和频域内利用对比学习拉近表示,还没有引入时域和频域表示的对齐。为了实现时域和频域的一致性,本文设计了一种一致性loss拉近同一个样本在时域和频域的表示。

具体的损失函数如下,主要借鉴了triplet loss的思想。其中STF是同一个时间序列经过时域Encoder和频域Encoder生成表示的距离,其他带波浪线上标的,表示使用该样本的某种增强样本得到的序列。这里的假设是,一个样本的时域编码和频域编码应该更接近,离其增强后样本的时域编码或频域编码更远。

时间序列中的无监督表示学习

最终模型通过上述3个loss联合进行预训练。

reference

ref1文章来源地址https://www.toymoban.com/news/detail-499868.html

到了这里,关于时间序列中的无监督表示学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时间序列预测模型实战案例(三)(LSTM)(Python)(深度学习)时间序列预测(包括运行代码以及代码讲解)

    目录 引言 LSTM的预测效果图 LSTM机制 了解LSTM的结构 忘记门 输入门 输出门 LSTM的变体 只有忘记门的LSTM单元 独立循环(IndRNN)单元 双向RNN结构(LSTM) 运行代码 代码讲解 LSTM(Long Short-Term Memory)是一种常用的循环神经网络(RNN)模型,用于处理序列数据,具有记忆长短期的能力。

    2024年02月08日
    浏览(85)
  • statsmodels专栏4——深度解析:Python中的Statsmodels库时间序列分析

    时间序列分析在数据科学领域中占据着重要地位,它不仅帮助我们理解数据的趋势和模式,还能够提供对未来趋势的预测。在众多时间序列分析工具中,Python中的Statsmodels库以其强大的功能和灵活性备受青睐。本文将深入探讨Statsmodels库在时间序列分析中的应用,聚焦于移动平

    2024年03月16日
    浏览(43)
  • 基于机器学习/深度学习的时间序列分析相关论文

    Robust Time Series Analysis and Applications: An Industrial Perspective, in  KDD  2022. Time Series in Healthcare: Challenges and Solutions, in  AAAI  2022. [[Link]](https://www.vanderschaar-lab.com/time-series-in-healthcare/) Time Series Anomaly Detection: Tools, Techniques and Tricks, in  DASFAA  2022. [[Link]](https://www.dasfaa2022.org//tutorials/T

    2024年02月13日
    浏览(49)
  • 数学建模学习笔记(15)时间序列分析

    时间序列的概念 :也称为动态序列,是指将某种现象的指标值按照时间顺序排列而成的数值序列。 时间序列的组成要素 :时间要素、数值要素。 时间序列的分类 : 时期时间序列 :数值要素反应现象在一定时期内的发展的结果; 时点时间序列 :数值要素反映现象在一定时

    2024年02月01日
    浏览(38)
  • Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测

    最近我们被客户要求撰写关于时间序列预测的研究报告,包括一些图形和统计输出。  使用ARIMA模型,您可以使用序列过去的值预测时间序列。在本文中,我们从头开始构建了一个最佳ARIMA模型,并将其扩展到Seasonal ARIMA(SARIMA)和SARIMAX模型。 时间序列是在定期时间间隔内记

    2024年02月04日
    浏览(55)
  • 学习笔记:基于Transformer的时间序列预测模型

    为了便于读者理解,笔者将采取一个盾构机掘进参数预测的实际项目进行Transformer模型的说明。此外,该贴更多用于本人的学习记录,适合于对Transformer模型已经有一定了解的读者。此此次外,不定期更新中。 一些参考与图片来源: Transformer论文链接 transformer的细节到底是怎

    2024年02月03日
    浏览(66)
  • 深度学习时间序列预测项目案例数据集介绍

    💥项目专栏:【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍) 🌈 本专栏使用的数据集为 风速预测的时间序列数据 ,该数据集包含一个气象站内嵌入的5个天气变量传感器阵列的 6574 个每日平均样本。该设备位于油

    2023年04月15日
    浏览(46)
  • 机器学习-使用 XGBoost 时间序列预测能源消耗

    简而言之,时间序列预测是根据以前的历史数据预测未来值的过程。目前使用时间序列预测的最热门领域之一是加密货币市场,人们希望预测比特币或以太坊等流行加密货币的价格在未来几天甚至更长时间内将如何波动。另一个现实世界的案例是能源消耗预测。尤其是在能源

    2024年02月11日
    浏览(48)
  • 机器学习多步时间序列预测解决方案

    近年来,随着机器学习与深度学习的发展机器学习平台的成熟,数据科学家们不再需要关心底层的基础设施及构建复杂的训练与推理环境,从而可以把主要的时间与精力放在数据与算法本身。在机器学习变得更容易的今天,越来越多的传统行业已经开始使用机器学习算法来解

    2024年02月10日
    浏览(52)
  • 【关于时间序列的ML】项目 5 :用机器学习预测天气

      🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】 ​​  🖍foreword

    2023年04月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包