解决时间序列预测任务时,训练数据太少怎么办?在机器学习场景中,Domain Adaptation是一种解决数据稀疏的常用方法。其核心思路是利用数据充足的source domain样本进行充分学习,再将这些知识迁移泛化到target domain上,两个domain的数据分布往往具有比较大的差异,一般是不同场景的数据。

但是以往的Domain Adaptation更多的应用在分类问题,例如图像分类、文本分类、ctr预估等。在时间序列预测中应用Domain Adaptation的方法相对较少。今天就给大家介绍一篇使用Domain Adaptation解决小样本场景下时间序列预测问题的最新论文,是加利福尼亚大学&亚马逊 AI Lab在ICML 2022中的一篇工作:Domain Adaptation for Time Series Forecasting via Attention Sharing

1

核心思路

先概括一下本文的核心思路,如何将Domain Adaptation技术应用到时间序列预测领域呢?Domain Adaptation成功应用的一个前提是,两个domain的数据虽然分布差异很大,但是却有某些内在规律信息是一致的。比如图像分类能够应用Domain Adaptation技术,是因为不论图像来自哪个领域,图像的一些特性,如平移不变性等是不变的。那么不同domain的时间序列数据,有哪些内在联系呢?

本文的一个核心假设是:在基于attention的时间序列预测模型中(如Transformer),不同域的时间序列数据在预测当前值时,计算历史序列attention的key和query是可迁移的。这个假设的确非常合理,比如两个域的数据周期性不同,但是计算attention score时都是去寻找局部信息和历史序列的哪些pattern最相似,这个规律在不同域是可迁移的,也正是本文所利用的核心点。因此,本文后续就围绕着在基于attention的时序预估模型中,如何对齐source domain和target domain的query和key展开。

作者在文中用模拟数据举了个例子,对比了两种模型,AttF是普通的基于attention的时间序列预测模型,DAF是文中提出得到基于Domain Adaptation模型。左图上面是两个domain的时间序列,下面是不同方法计算出的在target domain的attention score分布。使用本文提出方法进行source domain与target domain的query和key对齐后,能够将在source domain学到的对齐知识迁移到target domain,进而帮助模型在target domain数据集上学到更合理的attention score,从而提升小样本上的预测效果。

2

实现方法

理解了上述核心思路,基本就掌握了本文的精髓。下面我们具体看一下模型的实现方式。

整体模型架构如下图,两个domain的数据一起训练,使用独立的Encoder和Decoder,以及两个domain共享的attention模块。Encoder对输入序列进行编码,然后利用attention+Decoder预测未来,是典型的基于attention的时间序列预测架构。同时Decoder也会重构历史序列,来增强表示的学习。最后在两个domain的attention表示中会增加一个对抗学习模块,实现target domain和source domain中key与query的对齐,进而达成知识迁移的目标。

模型的损失函数如下,由两部分组成,采用了Domain Adaptation中比较常用的min-max对抗学习方法。前两个损失函数是两个domain时间序列的预测损失(对未来的预测损失,外加对历史序列重构的损失);最后一项是利用对抗学习的方法,判断attention模块生成query和key是否来自两个domain。我们希望模型能够得到让Discriminator区分不出来domain的query和key的表示,以此达到两个domain中query和key对齐的目标。

接下来,在具体的模型结构实现上如下图。主要是在Encoder处会生成两个表示,V是原始时间序列过MLP得到value表示,这部分不同domain不同,并不是我们希望迁移的信息。另外,通过不同尺寸的卷积提取不同的pattern,融合到一起得到表示P。这个表示P会进一步映射成query和key,这正是我们希望迁移的信息。

最终,通过上述模型结构的设计,实现了利用value进行domain个性化,并利用pattern生成的query和key,结合对抗学习方法,实现不同domain的知识迁移。

3

实验效果

下表为一些真实数据集上的效果对比,本文提出的方法在各个数据集上都取得最优的效果。

此外,本文也进一步进行了消融实验,并通过可视化的方式验证了DAF学习到的attention map其实是更加合理的,证明了DAF确实能通过source domain海量数据学习到pattern的对齐关系,并迁移到target domain。

4

总结

这篇文章很巧妙的将Domain Adaptation技术应用到了时间序列预测上,其取得成功的核心原因是对问题深入的理解,能够准确捕捉到时间序列中哪些因素在不同domain是不变的,并通过模型上的设计达成既定的目标。

推荐阅读:我的2022届互联网校招分享我的2021总结浅谈算法岗和开发岗的区别互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!公众号:AI蜗牛车保持谦逊、保持自律、保持进步发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记发送【AI四大名著】获取四本经典AI电子书

使用Domain Adaption提升小场景时间序列预测效果的方法相关推荐

  1. 5行代码提升时间序列预测,都有用!

    本文从NeurIPS2021一篇用于提升时间序列预测效果的论文讲起:Adjusting for Autocorrelated Errors in Neural Networks for Time Se ...

  2. 入行时间序列预测必读的4篇论文(附代码)

    时间序列预测是一个发展历史悠久的技术领域,传统的统计学算法(e.g. ARIMA, ETS, GARCH)以及近年来的机器学习(e.g. 广义线性模型,xgboost).深度学习算法(e.g. LST ...

  3. 时间序列预测方法最全总结!

    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值. 需要明确一点的是,与回归分析预测模型不同,时间 ...

  4. R 利用回归分析与时间序列预测北京市PM2.5

    注:代码全部在最后,数据来源UCI,链接如下: https://archive.ics.uci.edu/ml/datasets/Beijing+PM2.5+Data 摘要 现代社会科技进步,人们的生活 ...

  5. 时间序列预测必读的20篇论文!

    信息时代,最不缺的是学习资源,最缺的是系统的学习资源.--于我心有戚戚焉 常有粉丝留言问我,有没有系统的.可供小白.初学者快速上手时间序列预测的学习资源--教材书籍.视频直播.或者论文都行. 我去请教 ...

  6. 【时序】时间序列预测真的需要深度学习吗?

    论文名称:Do We Really Need Deep Learning Models for Time Series Forecasting 论文下载:https://arxiv.org/abs/2 ...

  7. 时间序列预测 预测时间段_应用时间序列预测:美国住宅

    时间序列预测 预测时间段 1.简介 (1. Introduction) During these COVID19 months housing sector is rebounding rapidly ...

  8. 线性回归预时间序列预测

    时间序列预测问题 线性回归方法 什么是线性回归方法 滞后影响 多元线性回归 怎么用线性回归方法 为什么要使用线性回归方法 从kanggle看到的一个教程(原文 ),主要讲解了如何进行时间序列预测,本文 ...

  9. 张量是一个序列_张量流中使用gru和bilstm进行预测分析的时间序列预测

    张量是一个序列 Recurrent Neural Networks are designed to handle the complexity of sequence dependence in ti ...

最新文章

  1. 【FFmpeg】使用sws_scale将AVFrame转换后的图像数据放入cv::Mat中
  2. 生信分析-PS修改坐标
  3. 哎..前段时间的偷懒..造成今天的被动局面...要检讨深刻教训.
  4. 一文搞定深度优先搜索(DFS)与广度优先搜索(BFS)【含完整源码】
  5. Spring Boot:构建一个RESTful Web应用程序
  6. sublime_text 3 注册序列号
  7. 微信分享接口调用(自测通过可以用)
  8. 2017.9.18 HH的项链 思考记录
  9. [Link]NoSQL
  10. eric python mysql,python入门教程13-07 (python语法入门之ORM框架SQLAlchemy)
  11. RouterOS计划任务实例
  12. JQuery 绑定事件
  13. 图论 - 寻找fly真迹
  14. 3.33 利用快速蒙版制作选区 [原创Ps教程]
  15. 压力引起焦虑竟是因为免疫细胞被“压垮”
  16. 零信任能彻底解决邮件安全难题
  17. sklearn库:分类、回归、聚类、降维、模型优化、文本预处理实现用例(赶紧收藏)
  18. 从神龙川到大仙顶——2018秋
  19. 可口可乐和百事可乐查出杀虫剂成分!
  20. java多线程设计模式详解[推荐]

热门文章

  1. mysql取当前月份两位数_SQL获取当前时间月份为两位数
  2. shopee首站入驻哪个国家?哪个国家更好卖?
  3. 市场调研报告-全球与中国地球物理数据市场现状及未来发展趋势
  4. 阻塞队列(二):PriorityBlockingQueue
  5. 2012服务器系统设,server2012服务器安装及设置
  6. 摄影师眼中的爱情(完整版)▒┣
  7. MySQL事务 - 自增ID的回滚以及Auto Increment在InnoDB的实现
  8. win10磁盘分区图文教程
  9. java如何开发视频软件_使用JAVA编写视频播放器
  10. C++11之正则表达式(regex_match、regex_search、regex_replace)