当前位置: 首页 > news >正文

Gated Transformer Networks for Multivariate Time Series Classification

博客贡献人

徐宁

作者

Minghao Liu , Shengqi Ren , Siyuan Ma , Jiahui Jiao , Yizhou Chen , Zhiguang Wang(Facebook AI) and Wei Song∗

标签

多元时间序列分类,Transformer,门控

摘要

    用于时间序列分类的深度学习模型(主要是卷积网络和 LSTM)已被社区广泛研究,并在医疗保健、金融、工业工程和物联网等不同领域得到广泛应用。 与此同时,Transformer Networks 最近在各种自然语言处理和计算机视觉任务上取得了前沿性能。 在这项工作中,我们探索了当前带有门控的Transformer Networks的简单扩展,称为门控Transformer网络(GTN),用于解决多元时间序列分类问题。 通过合并两座 Transformer 塔(分别对通道相关性和时间步相关性进行建模)的门控,我们展示了 GTN 如何自然而有效地适用于多元时间序列分类任务。 我们对十三个数据集进行了全面的实验,并进行了充分的消融研究。 我们的结果表明,GTN 能够取得与当前最先进的深度学习模型相媲美的结果。 我们还探讨了 GTN 在时间序列建模上的自然解释性的注意力图。 我们的初步结果为 Transformer Networks 的多元时间序列分类任务提供了强有力的基线,并为未来的研究奠定了基础。

当前研究存在的问题

传统基于距离的方法

    早期方法如欧几里得距离,动态时间规整(DTW)依赖预定义的相似度度量,但在处理多变量时间序列时存在可扩展性和性能问题。

卷积网络和LSTM

    将Transformer网络应用于时间序列数据的研究尚处于早期阶段,现有研究主要集中于特定任务(如预测或单变量分类),未形成Transformer对多元时间序列分类的综合研究。

Transformer的早期研究

    将Transformer网络应用于时间序列数据的研究尚处于早期阶段,现有研究主要集中于特定任务(如预测或单变量分类),未形成Transformer对多元时间序列分类的综合研究。

本篇文章贡献

  • 探索了当前 Transformer 网络的门控扩展,称为门控 Transformer 网络,用于解决多元时间序列分类问题。 通过利用 Transformer 与自注意力机制并行处理数据的优势来对序列中的依赖关系进行建模,我们证明了合并 Transformer 网络的两座塔的门控非常有效,这些塔对通道和逐步相关性进行建模 用于时间序列分类任务
  • 13 个多元时间序列基准数据集上评估了 GTN,并通过综合消融研究其他最先进的深度学习模型进行了比较。 实验表明 GTN 实现了具有竞争力的性能。
  • 通过可视化定性研究了模型学习到的特征,以证明 GTN 特征提取的质量
  • 初步探索了 GTN 注意力图在时间序列建模上的可解释性,以研究自注意力如何帮助通道和逐步特征提取。

方法

    区别于原生Transformer在单词上堆叠编码器和解码器以及用于序列生成和预测任务的位置嵌入,本文方法在原生Transformer的基础上添加Embedding、两塔和门控三个扩展部件以满足多元时间序列分类的需求,方法框架如图一所示。

在这里插入图片描述

图1. 门控Tranformer网络的模型架构。

Embedding扩展

原生Transformer中Embedding方法

    在原始的Transformer(例如用于自然语言处理任务时),输入是一个离散的单词序列。每个token会先通过嵌入层,转化为一个固定维度的向量表示(即token embedding)。Transformer对这些离散的嵌入向量进行处理,以捕捉序列中每个元素之间的相关性。

    此外,Transformer还使用位置编码来引入序列的位置信息,因为自注意力机制没有内置的顺序感知能力。通过加上位置编码,模型能够识别每个元素在序列中的相对位置

时间序列中的Embedding方法

    这里最大的不同就在于,时间序列数据是连续的,并且由于时间序列本身已经是数值型数据,并且每个时间步对应的特征值(或通道)是多变量的,因此不像自然语言那样需要通过单词嵌入来获得向量表示。

所以,本文的对Embedding层的构造进行了改进。

(1) 全连接层代替嵌入层
    原始Transformer使用嵌入层来将离散的输入(例如单词ID)转换成嵌入向量。在时间序列中,数据已经是数值型的,所以不需要像处理离散数据那样进行词嵌入。
    解决方案:作者选择使用全连接层代替嵌入层。全连接层能够处理输入的连续值,并将其投影到一个新的特征空间。这个过程相当于对原始的时间序列数据进行特征转换,使得输入序列能够适应后续的自注意力机制。

(2) 非线性激活函数
    为了增强模型的表达能力,作者在全连接层之后引入了一个非线性激活函数tanh。这种非线性转换使得嵌入后的数据更具表达力,能够捕捉到更复杂的模式和关系。

(3) 位置编码
    自注意力机制本身无法捕捉序列元素的相对顺序,因此在时间序列中,仍然需要引入位置信息。这里作者借鉴了原始Transformer的做法,将位置编码添加到嵌入后的时间序列数据上。位置编码允许模型捕捉时间步的顺序信息,使模型能够感知时间维度的顺序依赖性。

双塔Transformer

    多元时间序列具有多个通道,每个通道都是一个单变量时间序列。常见的假设是,在当前或变形的时间步下,不同通道之间存在隐藏的相关性。捕捉时间步(时序)和通道(空间)信息是多变量时间序列研究的关键。以往常见的方式是利用卷积,通过二维或一维卷积核(固定参数共享)来同时整合时间步和通道的信息,但这种方法存在一定缺陷

  • 固定的局部感受野:卷积核只能处理相邻的时间步或通道之间的关系,对于长时间序列或较复杂的跨通道依赖,无法全面捕捉。
  • 参数共享的限制:不同的时间步和通道可能有不同的依赖模式,但卷积核在整个序列中应用相同的参数来减少计算复杂度,无法灵活处理复杂的模式变化。
  • 空间和时序信息的分离不够明确:卷积会同时捕捉空间和时序信息,无法精细化地分别处理这两类信息,可能导致在某些情况下的表现不佳,尤其是在空间和时序相关性显著不同的任务中。

    所以本文采用双塔Transformer的架构,每个塔的编码器通过注意力机制和掩码显式捕捉时间步和通道之间的相关性,分别且灵活地处理时序和通道依赖,不仅提高了对长距离依赖的捕捉能力,还能根据任务需求更好地适应不同时间步和通道间的变化,弥补了卷积方法的局限性。

时间步编码器

    时间步编码器主要目的是捕捉时间序列中不同时间步之间的相关性。所以和原生Transformer一样,会计算每个时间步与其他所有时间步之间的注意力权重。
    但由于在多元时间序列中,每个时间步都对应多个通道,所以时间步编码器的自注意力机制会跨所有通道计算不同时间步之间的成对注意力权重,这意味着模型考虑了整个时间序列中每个时间步的整体信息(所有通道的综合数据)来决定哪些时间步对当前时间步最重要。
    同时时间步编码器中为了防止模型在当前时间步预测时利用未来的时间步信息,在自注意力机制中使用了掩码将蔚来的时间屏蔽掉,避免信息泄露。

通道编码器

    通道编码器(Channel-wise Encoder)的主要目的是捕捉不同通道(变量)之间的依赖关系
    通道编码器与时间步编码器的区别在于,通道顺序是无序的,即通道顺序是可以任意排列的,所以并不需要像时间步编码器那样使用位置编码。其次,对于掩码的使用,通道编码器并没有时间步编码器那么严格,通道编码器的掩码主要用于确保某些特定情况下的数据被屏蔽(例如缺失通道或无效的通道)。

门控

    本文的门控模块被设计用来融合来自两个编码器的特征输出,确保模型能够根据每个编码器的重要性动态调整特征的组合。保证模型能根据任务的需要灵活地调整各个特征的权重,从而在多变量时间序列分类任务中实现更高的性能。这种机制增强了模型的表达能力,提高了模型的适应性和预测能力

  • 特征提取:首先对两个编码器的输出分别添加一个全连接层,再使用非线性激活函数,将两个输出表示为C和S。
  • 特征拼接:将两个编码器的输出特征 C和S 进行线性拼接,形成一个新的特征向量h。 h = W ⋅ C o n c a t ( C , S ) + b h=W \cdot Concat(C,S)+b h=WConcat(C,S)+b
  • 计算门控权重:对拼接后的特征向量h应用softmax函数,以计算门控权重g1和g2: g 1 , g 2 = S o f t m a x ( h ) g_1,g_2 = Softmax(h) g1,g2=Softmax(h)
  • 加权输出:将每个编码器的输出特征与对应的门控权重相乘,然后进行拼接,得到最终的特征向量 y。 y = C o n c a t ( C ⋅ g 1 , S ⋅ g 2 ) y=Concat(C\cdot g_1,S\cdot g_2) y=Concat(Cg1,Sg2)

实验

数据集

    本文使用了13个多元时间序列数据集,默认情况下,所有数据集都被分为训练和测试,并且这些时间序列没有进行预处理。

Baseline

    本文共选取了9个模型作为Baseline,其中全卷积网络(FCN)和残差网络(ResNet)。 据报道,这些是多元时间序列分类任务中最好的深度学习模型之一。

实验结果

在多数据集下与多个方法的横向对比

在这里插入图片描述

    结果如表1所示。门控Transformer网络(GTN)与全卷积网络(FCN)和残差网络(ResNet)表现出相当的结果。需要注意的是,这三种模型的结果之间没有统计显著差异,但在NetFlow和KickvsPunch数据集上,GTN表现出更优的性能。GTN的一个缺点是相对容易出现过拟合。与FCN和ResNet不同,后者未使用dropout,而GTN结合了dropout和层归一化,以降低过拟合的风险。

消融实验

在这里插入图片描述

    为了说明GTN中各个模块带来的性能提升,分别单独对两个塔,掩码,门控进行了消融实验

  • 掩码效果:掩码机制确保模型的预测仅依赖于已知的前置输出,对语言模型和时间序列数据都有益。使用掩码的塔式Transformer整体性能优于不使用掩码的模型。

  • 通道与时间步编码:通道编码的Transformer在大多数数据集上优于时间步编码的Transformer,证明了多变量时间序列中不同通道间相关性的重要性。

  • 数据集特性:不同时间序列数据对通道信息和时间步信息的依赖程度不同,例如在PEMS数据集中时间步模型表现更好,而在CMUsubject16数据集中通道模型表现更好。

  • 特征拼接的局限性:简单拼接两个塔的特征有时会导致性能下降,无法发挥各自优势。

  • 门控权重的优势:通过引入门控权重,模型能够动态学习在何时依赖特定塔,从而提升整体性能。

注意力图的可视化

    注意力矩阵分别表示通道和时间步之间的相关性。本文选择了一个来自JapaneseVowels数据集的样本来可视化这两种注意力图。对于通道注意力图(上两张),我们计算了不同通道时间序列之间的动态时间规整(DTW)距离。对于每个时间步(下两张),我们还简单计算了不同通道之间的欧几里得距离,因为在同一时间步上没有时间轴,因此不需要DTW。可视化结果如图2所示。
在这里插入图片描述

在这里插入图片描述

    注意力得分指示了不同令牌之间的语义相关性,时间序列中学习到的通道注意力同样显示出共同激活的相似序列,从而使学习更倾向于最终的标签。
    需要注意的是,较小的DTW距离并不意味着两个序列相似。如通道注意力图所示,块c表示c3和c11之间的DTW距离非常小,但实际上c11和c3的趋势和形状差异很大。初步分析表明,通道注意力也倾向于抓住那些在DTW中没有明显区分因素的相似序列。

相关知识链接

PST论文原文

开源代码

总结

[亮点]

  • 提出双塔结构,独立的提取时间步和通道上的相关性,克服了传统卷积方法的局限。
  • 提出在transformer中加入门控机制,可以动态调整时间步和通道编码器的输出权重,增强了模型对不同特征的适应能力,提高了多变量时间序列分类的性能。
  • 提供了通道和时间步注意力图的可视化分析,增强了模型的可解释性,帮助理解不同特征的贡献。

[局限]

  • 文章的对方法的描述不够完整,缺乏细节。
  • 双塔+门控这种架构会导致较高的复杂度,训练成本较高。
  • 因为模型比较复杂,包含参数过多,模型容易出现过拟合问题。

[启发]

  • 通过门控机制来处理多来源特征,并且可以通过动态调整权重来增强模型的适应性。
  • 可以采用不同的编码器将不同的数据类型的数据整合到同一个模型中。

Bib Tex

@article{liu2021gated,title={Gated transformer networks for multivariate time series classification},author={Liu, Minghao and Ren, Shengqi and Ma, Siyuan and Jiao, Jiahui and Chen, Yizhou and Wang, Zhiguang and Song, Wei},journal={arXiv preprint arXiv:2103.14438},year={2021}
}

相关文章:

Gated Transformer Networks for Multivariate Time Series Classification

博客贡献人 徐宁 作者 Minghao Liu , Shengqi Ren , Siyuan Ma , Jiahui Jiao , Yizhou Chen , Zhiguang Wang(Facebook AI) and Wei Song∗ 标签 多元时间序列分类,Transformer,门控 摘要 用于时间序列分类的深度学习模型(主要是卷积网…...

这一次,AI真的能帮你实现职场跃迁

你有没有想过: AI不仅能帮你实现工作提效 还能帮你实现职场跃迁! 根据行业报告,近年来**AIGC(AI Generated Content)**领域岗位数量井喷式增长,AI大模型产品经理作为连接技术与市场的桥梁,正扮…...

Python绘制--绘制心形曲线

今天,我们将通过Python代码来绘制一个心形曲线,这是一个经典的数学表达。 一、心形曲线的数学原理 心形曲线,也被称为心脏曲线,是一个代数曲线,可以通过参数方程定义。其数学表达式如下: x16sin⁡3(t)x16…...

初识Linux · 自主Shell编写

目录 前言: 1 命令行解释器部分 2 获取用户命令行参数 3 命令行参数进行分割 4 执行命令 5 判断命令是否为内建命令 前言: 本文介绍是自主Shell编写,对于shell,即外壳解释程序,我们目前接触到的命令行解释器&am…...

海报设计模板免费的好用吗?活动海报排版技巧轻松get

虽然今年所有的法定节假日已经过完了,但对于电商打工族来说,需要制作活动海报的节日,还有很多吧...... 刚听到小道消息,说是今年的双十一,从十月十四号就开始预热了! 怎么样,大家的预热活动海…...

【Linux基础】03 Linux环境基础开发工具使用

1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令,搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店! 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我…...

【CSS】flex: 1; 的意思

在 Flexbox 布局中,flex: 1; 是一个简写属性,它表示弹性容器中的子元素如何分配可用空间。flex: 1 意味着该元素可以根据剩余的空间进行扩展,占据相应的比例。具体来说,flex: 1; 是 flex-grow、flex-shrink 和 flex-basis 这三个属…...

C++ 3D冒险游戏开发案例

3D冒险游戏的C开发案例,包括游戏设计、实现细节、图形渲染、音效处理等内容。 3D冒险游戏开发案例 一、游戏设计 游戏概述 游戏名称:“探索者的传奇”类型:3D冒险游戏目标:玩家控制角色在一个开放的世界中探索、解谜、战斗并完成…...

【AIGC】Exa AI 要做 AI 领域的 Google

又一个AI搜索引擎诞生:Exa AI。 与其他旨在取代谷歌的AI驱动搜索引擎不同,Exa的目标是创建一个专门为AI设计的搜索工具。 Exa的使命: 互联网包含人类的集体知识,但目前的搜索体验更像在垃圾场中导航,而非在知识图书馆中漫游。核…...

YOLOv8 基于MGD的知识蒸馏

YOLOv8 基于MGD的知识蒸馏 接着上一篇我们介绍了YOLOv8的剪枝方案和代码,本篇文章将剪枝后的模型作为学生模型,剪枝前的模型作为教师模型对剪枝模型进行蒸馏,从而进一步提到轻量模型的性能。 Channel-wise Distillation (CWD) 问题和方法 …...

全国消防知识竞赛活动方案哪家强

关键词:消防安全、预防火灾、消防意识、消防员、防火安全 适合行业:所有行业 推荐功能:答题、投票、H5 宣传角度 1.从日常生活场景出发,指导大家如何检查家庭中的火灾隐患。例如检查电线是否老化、插座是否过载、是否在楼梯间…...

JavaEE学习一条龙服务————概述

鉴于之前的笔记较乱,没有逻辑关系,,博主决定从JacaEE整个学习的阶段出发,整理一系列博客,供大家学习交流,提升自己。 此文章已绑定一篇我为大家梳理的JavaEE一条龙学习知识点的文档,大家可下载…...

分支预测器BPU

分支预测器BPU 0 Intro0.1 CPU执行过程0.2 分支预测0.2.1 TAGE预测器0.2.2 跳转地址 分支预测器BPU是深入研究一个高性能处理器的一个很好的开始项目; 0 Intro 条件分支是指后续具有两路可执行的分支。可以分为跳转分支(taken branch)和不跳转分支(not-taken branc…...

Go 系列教程 —— 数组和切片

数组 数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型…...

适配器模式【对象适配器模式和类适配器模式,以及具体使用场景】

2.1-适配器模式 ​ 类的适配器模式是把适配者类的API转换成为目标类的API,适配器模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作,其实在具体的开发中,对于自己系统一开始的设计不会优先考虑适配器模式,通常会将接…...

【EXCEL数据处理】保姆级教程 000016案例 EXCEL的vlookup函数。

【EXCEL数据处理】000016案例 vlookup函数。 前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】保姆级教…...

【软件推荐】通过Rufus制作信创操作系统U盘安装盘 _ 统信 _ 麒麟 _ 方德

原文链接:【软件推荐】通过Rufus制作信创操作系统U盘安装盘 | 统信 | 麒麟 | 方德 Hello,大家好啊!今天给大家带来一篇关于如何使用Rufus制作信创操作系统(如统信UOS、麒麟KOS、中科方德等)的U盘启动安装盘的文章。Ruf…...

MySql 多表设计

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本分为:一对多,多对多&a…...

wpf实现新用户页面引导

第一步 第二部 部分代码: private void show(int xh, FrameworkElement fe, string con, Visibility vis Visibility.Visible) {Point point fe.TransformToAncestor(Window.GetWindow(fe)).Transform(new Point(0, 0));//获取控件坐标点RectangleGeometry rg new Rectangl…...

【小白向】机器人入门之ROS系统的学习(Ubuntu24.04+ROS2)

目录 一.复杂的机器人系统 二.ROS机器人系统 1.简介 1.节点 2.话题 2.安装 3.测试 4.可视化 RQT: RVIZ: 显示属性: 显示状态: 一.复杂的机器人系统 依照我们现在的技术来看,机器人系统仍是极其复杂的,往…...

SNAP-MS策略:可溶性水凝胶微珠,高效表征蛋白质复合物

大家好!今天来了解一种高效的蛋白质复合物纯化和表征策略的文章——《Biofunctionalized dissolvable hydrogel microbeads enable efficient characterization of native protein complexes》发表于《Nature Communications》。蛋白质复合物在生命过程中起着关键作…...

java对象序列化Serializable的应用场景

目录 Java对象序列化的应用场景 网络通信: 对象持久化: 分布式计算: 缓存存储: 远程方法调用(RMI): 基于JMS的消息传递: Java集合类中的对象需要被存储: 对象深…...

springboot-网站开发-linux服务器部署jar格式图片存档路径问题

springboot-网站开发-linux服务器部署jar格式图片存档路径问题!近期在部署自己的网站源码,使用的是jar格式的编码格式。发布到远程服务器后,发现客户捐款的证书图片存在异常。 经过排查代码,找到了原因。下面分享给大家。 1&…...

面试--java基础

Java基础 Java 中的几种基本数据类型了解么?基本类型和包装类型的区别?包装类型的缓存机制了解么?成员变量与局部变量的区别?静态变量有什么作用?静态方法为什么不能调用非静态成员?重载和重写有什么区别&#xff1f…...

NLP自然语言处理

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割OpenCVPytorchNLP自然语言处理 NLP自然语言处理 一、NLP简介二、文本预处理2.1 文本预处理简介2.2 文本处理的基本方法2.3 文本张量表示方法2.3.1 onehot编码2.3.2 word2vec编码 2.4 文本数据分析2.5…...

web自动化测试基础(从配置环境到自动化实现登录测试用例的执行,vscode如何导入自己的python包)

接下来的一段时间里我会和大家分享自动化测试相关的一些知识希望大家可以多多支持,一起进步。 一、环境的配置 前提安装好了python解释器并配好了环境,并安装好了VScode 下载的浏览器和浏览器驱动需要一样的版本号(只看大版本)。 1、安装浏览器 Chro…...

鸿蒙 Next 实战: 电子木鱼

前言 正所谓:Hello Word 是程序员学任何一门语言的第一个程序实践。这其实也是一个不错的正反馈,那如何让学习鸿蒙 Next 更有成就感呢?下面就演示一下从零开发一个鸿蒙 Next 版的电子木鱼,主打就是一个抽象! 实现要点…...

SQLite SQL调优指南及高级SQL技巧

记忆已更新 以下是《SQLite SQL调优指南及高级SQL技巧》文章的完整输出,字数目标为30000字,详细介绍并结合2024年最新技术趋势和优化策略。代码部分不计入字数统计。 SQLite SQL调优指南及高级SQL技巧 SQLite 是广泛使用的嵌入式数据库,因其…...

WordPress 6.7即将发布的新功能(和截图)

我们一直在密切关注 WordPress 6.7 的开发并测试该版本的测试版,它将带来一些令人兴奋的更新和几个新功能。 例如,我们很高兴地发现即将发布的版本将附带全新的默认主题,并对块编辑器和站点编辑体验进行大规模改进。 在本文中,我…...

SpringBoot整合QQ邮箱

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件.... 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,…...