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架构基础上引入门控机制可以增强模型处理长期依赖关系的能力以及更好地控制信息流。这种改进对于解决序列建模中的挑战至关重要。 #### 门控机制的作用 通过加入类似于LSTM或GRU中的门结构,可以在自注意力层和前馈神经网络之间实现更精细的信息流动管理[^2]。具体来说,在每一层内部设置输入门、遗忘门和输出门来调节来自不同位置特征的重要性程度。这有助于缓解梯度消失问题,并允许更深层数的设计成为可能。 #### 实现方式 一种常见的做法是在标准多头自注意模块之后添加一层带有参数W_g权重矩阵乘法操作作为门函数g(x),其定义如下: \[ g(x)=\sigma(W_{g} \cdot h+x) \] 其中\( W_{g}\)表示可训练参数;而 \(h\) 则代表当前时刻隐藏状态向量;最后利用Sigmoid激活函数σ确保输出范围位于(0,1)区间内以便于后续加权求和运算。 接着将上述计算得到的结果应用于残差连接之前的位置上,即: \[ y=(1-g(x)) * x+g(x)*F(x) \] 这里 F 表示经过线性变换后的子层输出,x 是该子层对应的原始输入数据。这样做的好处是可以动态调整保留多少原有信号强度的同时融入新产生的表征信息[^3]。 ```python import torch.nn as nn class GatedLayer(nn.Module): def __init__(self, dim_model): super(GatedLayer, self).__init__() self.linear = nn.Linear(dim_model, dim_model) self.gate_linear = nn.Linear(dim_model, dim_model) def forward(self, x): gate_values = torch.sigmoid(self.gate_linear(x)) transformed_x = self.linear(x) return (1 - gate_values) * x + gate_values * transformed_x ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值