在iTransformer模型中,Embedding层与传统Transformer模型中的Embedding层存在显著的区别。这些区别主要体现在对时间序列数据的处理方式以及如何利用Transformer组件来捕捉时间序列中的信息。
传统Transformer的Embedding
在传统的Transformer模型中,Embedding层通常用于将离散的输入(如单词或标记)映射到连续的向量空间中。在时间序列预测的上下文中,如果采用传统的Transformer架构,通常会将同一时间戳下的多个变量(或称为特征)打包成一个token进行Embedding。然而,这种方式可能会带来一些问题,因为不同变量可能具有不同的物理意义和延迟效应,将它们简单地打包成一个token可能会丢失这些信息。
iTransformer的Embedding
相比之下,iTransformer采用了一种“倒置”的视角来处理时间序列数据。它不再将同一时间戳下的多个变量打包成一个token,而是将每个变量的整个时间序列独立地Embedding为一个token。具体来说,每个时间序列变量(例如,温度、湿度等)的所有历史观测值被看作是一个独立的序列,这个序列被整体嵌入为一个token。这样,每个token都代表了一个变量在时间维度上的完整信息。
例子对比
假设我们有一个包含温度和湿度的多变量时间序列。
传统Transformer
- Embedding:在同一时间戳t,将温度和湿度的值打包成一个token [温度_t, 湿度_t],然后对这个token进行Embedding。这样,不同时间戳下的token之间主要反映了时间上的变化,而同一token内的变量之间则没有明确的区分。
- 问题:可能无法有效地捕捉不同变量之间的延迟效应和相关性。
iTransformer
- Embedding:将温度的所有历史观测值(例如,温度_1, 温度_2, ..., 温度_n)看作是一个序列,并将其整体嵌入为一个token(称为温度token)。同样,将湿度的所有历史观测值嵌入为另一个token(称为湿度token)。
- 注意力机制:在Transformer的注意力层中,这些token(每个代表一个变量的时间序列)之间通过注意力机制进行交互,从而捕捉不同变量之间的相关性。
- FNN:在Transformer的FNN(Feed-Forward Network)层中,每个token(即每个变量的时间序列)独立地通过FNN进行进一步的处理,以学习时间序列内部的表示。
通过这种方式,iTransformer能够更有效地捕捉时间序列数据中变量之间的相关性,并且能够在不改变Transformer基本组件的情况下,通过对数据表示方式的创新,来提升时间序列预测的性能。