时间延迟聚合
基于周期的依赖性连接了估计周期中的子序列。我们提出了时间延迟聚合模块(见图2),可以基于选定的时间延迟 τ 1 , ⋯ , τ k \tau_1, \cdots, \tau_k τ1,⋯,τk滚动序列。此操作可以对齐处于相同周期相位位置的相似子序列,这与自注意力机制中的点对点积聚合不同。最后,我们通过 softmax 归一化置信度来聚合子序列。
单头情况
对于单头情况和长度为 L L L的时间序列 X X X,在投影器之后,我们得到查询 Q Q Q、键 K K K和值 V V V。这样,它可以无缝替换自注意力机制。自动相关机制如下:
-
选择时间延迟 τ 1 , ⋯ , τ k \tau_1, \cdots, \tau_k τ1,⋯,τk:
τ 1 , ⋯ , τ k = arg Topk τ ∈ { 1 , ⋯ , L } ( R Q , K ( τ ) ) \tau_1, \cdots, \tau_k = \text{arg Topk}_{\tau \in \{1, \cdots, L\}} (R_{Q,K}(\tau)) τ1,⋯,τk=arg Topkτ∈{1,⋯,L}(RQ,K(τ)) -
计算归一化的自相关函数值:
R ~ Q , K ( τ 1 ) , ⋯ , R ~ Q , K ( τ k ) = SoftMax ( R Q , K ( τ 1 ) , ⋯ , R Q , K ( τ k ) ) \tilde{R}_{Q,K}(\tau_1), \cdots, \tilde{R}_{Q,K}(\tau_k) = \text{SoftMax}(R_{Q,K}(\tau_1), \cdots, R_{Q,K}(\tau_k)) R~Q,K(τ1),⋯,R~Q,K(τk)=SoftMax(RQ,K(τ1),⋯,RQ,K(τk)) -
自动相关计算公式:
Auto-Correlation ( Q , K , V ) = ∑ i = 1 k Roll ( V , τ i ) R ~ Q , K ( τ i ) \text{Auto-Correlation}(Q, K, V) = \sum_{i=1}^{k} \text{Roll}(V, \tau_i) \tilde{R}_{Q,K}(\tau_i) Auto-Correlation(Q,K,V)=∑i=1kRoll(V,τi)R~Q,K(τi)
具体解释和例子
假设我们有一个长度为
L
=
8
L=8
L=8的时间序列
X
X
X:
X
=
[
2
,
1
,
3
,
4
,
2
,
1
,
3
,
4
]
X = [2, 1, 3, 4, 2, 1, 3, 4]
X=[2,1,3,4,2,1,3,4]
通过投影器,我们得到查询
Q
Q
Q、键
K
K
K和值
V
V
V,假设它们为:
Q
=
[
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
]
Q = [1, 2, 1, 2, 1, 2, 1, 2]
Q=[1,2,1,2,1,2,1,2]
K
=
[
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
]
K = [2, 1, 2, 1, 2, 1, 2, 1]
K=[2,1,2,1,2,1,2,1]
V
=
[
3
,
4
,
3
,
4
,
3
,
4
,
3
,
4
]
V = [3, 4, 3, 4, 3, 4, 3, 4]
V=[3,4,3,4,3,4,3,4]
我们计算 Q Q Q和 K K K的自相关函数 R Q , K ( τ ) R_{Q,K}(\tau) RQ,K(τ),假设我们计算出的前 3 个最大的自相关值的时间延迟分别是 τ 1 = 2 \tau_1=2 τ1=2, τ 2 = 4 \tau_2=4 τ2=4, τ 3 = 6 \tau_3=6 τ3=6,然后计算 softmax 归一化后的值。
假设:
R
Q
,
K
(
2
)
=
0.8
,
R
Q
,
K
(
4
)
=
0.9
,
R
Q
,
K
(
6
)
=
0.7
R_{Q,K}(2) = 0.8, R_{Q,K}(4) = 0.9, R_{Q,K}(6) = 0.7
RQ,K(2)=0.8,RQ,K(4)=0.9,RQ,K(6)=0.7
归一化后得到:
R
~
Q
,
K
(
2
)
=
0.35
,
R
~
Q
,
K
(
4
)
=
0.40
,
R
~
Q
,
K
(
6
)
=
0.25
\tilde{R}_{Q,K}(2) = 0.35, \tilde{R}_{Q,K}(4) = 0.40, \tilde{R}_{Q,K}(6) = 0.25
R~Q,K(2)=0.35,R~Q,K(4)=0.40,R~Q,K(6)=0.25
自动相关计算:
-
时间延迟操作 Roll:
- Roll ( V , 2 ) \text{Roll}(V, 2) Roll(V,2): [ 3 , 4 , 3 , 4 , 3 , 4 , 3 , 4 ] [3, 4, 3, 4, 3, 4, 3, 4] [3,4,3,4,3,4,3,4]滚动两位变成 [ 4 , 3 , 4 , 3 , 4 , 3 , 4 , 3 ] [4, 3, 4, 3, 4, 3, 4, 3] [4,3,4,3,4,3,4,3]
- Roll ( V , 4 ) \text{Roll}(V, 4) Roll(V,4): [ 3 , 4 , 3 , 4 , 3 , 4 , 3 , 4 ] [3, 4, 3, 4, 3, 4, 3, 4] [3,4,3,4,3,4,3,4]滚动四位变成 [ 3 , 4 , 3 , 4 , 3 , 4 , 3 , 4 ] [3, 4, 3, 4, 3, 4, 3, 4] [3,4,3,4,3,4,3,4]
- Roll ( V , 6 ) \text{Roll}(V, 6) Roll(V,6): [ 3 , 4 , 3 , 4 , 3 , 4 , 3 , 4 ] [3, 4, 3, 4, 3, 4, 3, 4] [3,4,3,4,3,4,3,4]滚动六位变成 [ 4 , 3 , 4 , 3 , 4 , 3 , 4 , 3 ] [4, 3, 4, 3, 4, 3, 4, 3] [4,3,4,3,4,3,4,3] -
加权求和:
Auto-Correlation ( Q , K , V ) = 0.35 × [ 4 , 3 , 4 , 3 , 4 , 3 , 4 , 3 ] + 0.40 × [ 3 , 4 , 3 , 4 , 3 , 4 , 3 , 4 ] + 0.25 × [ 4 , 3 , 4 , 3 , 4 , 3 , 4 , 3 ] \text{Auto-Correlation}(Q, K, V) = 0.35 \times [4, 3, 4, 3, 4, 3, 4, 3] + 0.40 \times [3, 4, 3, 4, 3, 4, 3, 4] + 0.25 \times [4, 3, 4, 3, 4, 3, 4, 3] Auto-Correlation(Q,K,V)=0.35×[4,3,4,3,4,3,4,3]+0.40×[3,4,3,4,3,4,3,4]+0.25×[4,3,4,3,4,3,4,3]
计算结果:
=
[
3.65
,
3.4
,
3.65
,
3.4
,
3.65
,
3.4
,
3.65
,
3.4
]
= [3.65, 3.4, 3.65, 3.4, 3.65, 3.4, 3.65, 3.4]
=[3.65,3.4,3.65,3.4,3.65,3.4,3.65,3.4]
编码器-解码器自动相关
对于编码器-解码器自动相关(见图1), K K K和 V V V来自编码器 { X en } \{X^{\text{en}}\} {Xen},并将调整为长度 O O O, Q Q Q来自解码器的前一块。
综上所述,时间延迟聚合块通过选择最佳滞后时间来对齐和聚合时间序列中的相似子序列,从而可以在时间序列分析中更好地捕捉到数据的周期性结构。