自动相关机制(Auto-Correlation Mechanism)的实现
自动相关机制在 Autoformer 架构中起到了关键作用,它通过检测时间序列中的周期性依赖关系来捕捉隐含的周期性信息。以下是这一机制的具体实现步骤和原理:
1. 键、查询和值矩阵(K, Q, V)的生成
自动相关机制使用三种矩阵来捕捉时间序列中的依赖关系:
- 键(Key, K)
- 查询(Query, Q)
- 值(Value, V)
这些矩阵的生成通常是通过线性变换(即权重矩阵)从输入序列中获得的。具体公式如下:
K
=
X
W
K
,
Q
=
X
W
Q
,
V
=
X
W
V
K = XW_K, \quad Q = XW_Q, \quad V = XW_V
K=XWK,Q=XWQ,V=XWV
其中
X
X
X是输入时间序列数据,
W
K
,
W
Q
,
W
V
W_K, W_Q, W_V
WK,WQ,WV是可训练的权重矩阵。
2. 相关性计算
通过计算查询和键的点积来确定序列中不同时间步之间的相关性,公式如下:
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
k
)
V
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
Attention(Q,K,V)=softmax(dkQKT)V
其中
d
k
d_k
dk是键向量的维度,用于缩放点积结果,以避免点积值过大。
自相关计算的解释:自相关计算的解释
3. 自动相关检测
在自动相关机制中,重点在于通过自相关函数来检测时间序列中的周期性模式。具体步骤如下:
-
计算自相关:计算输入序列的自相关函数,自相关函数用于度量序列自身在不同滞后时间的相关性。
AutoCorrelation ( X ) = ∑ t X t X t + k \text{AutoCorrelation}(X) = \sum_{t} X_t X_{t+k} AutoCorrelation(X)=t∑XtXt+k
其中 k k k为滞后时间, X t X_t Xt为时间步 t t t的数据点。 -
构建周期性依赖关系:根据自相关结果,识别出序列中显著的周期性模式。这些模式反映了时间序列在不同周期中的相似性。
4. 聚合相似子序列
通过自动相关检测得到的周期性依赖关系,模型能够聚合来自不同周期的相似子序列。这一步的关键在于利用相关性矩阵,将相似的时间步数据聚合在一起,从而更好地捕捉和利用时间序列中的周期性信息。
5. 实现细节
- 矩阵操作:使用矩阵乘法和软最大化函数(softmax)来计算注意力分布,确定不同时间步之间的权重。
- 周期性建模:利用周期性依赖关系,将输入时间序列进行重构,以增强模型对周期性模式的识别能力。
实例解释
假设我们有一个月度销售数据时间序列,使用自动相关机制的具体过程如下:
- 输入数据:月度销售数据 X X X。
- 生成 K, Q, V 矩阵:
- 通过线性变换,得到 K = X W K K = XW_K K=XWK, Q = X W Q Q = XW_Q Q=XWQ, V = X W V V = XW_V V=XWV。
- 计算相关性矩阵:
- 计算 Q K T d k \frac{QK^T}{\sqrt{d_k}} dkQKT,并通过 softmax 归一化得到注意力分布矩阵。
- 计算自相关:
- 计算自相关函数,识别出显著的周期性(例如,12 个月的季节性周期)。
- 聚合相似子序列:
- 利用注意力分布矩阵,将相似的月份数据聚合在一起,增强季节性模式的识别和利用。
总结
自动相关机制通过生成 K, Q, V 矩阵、计算查询和键的点积来确定序列中的相关性,并通过自相关函数检测周期性模式,最终聚合相似子序列。这一机制帮助 Autoformer 更好地捕捉和利用时间序列中的周期性信息,从而提高预测的准确性和稳定性。