Informer

I n f o r m e r Informer Informer

摘要:

长序列时间序列的预测

i n f o r m e r informer informer优点:

  • P r o b s p a r e Probspare Probspare自关注机制,在时间复杂度和内存使用方面达到 O ( N l o g N ) O(NlogN) O(NlogN),在序列依赖对齐方面性能较好。
  • 自注意蒸馏通过将级联层输入减半来突出主导注意力,并有效地处理极长的输入序列。
  • 以一次向前操作的方式预测长序列时间序列,提高了长序列预测的推理速度。

1.简介

T r a n s f o r m e r Transformer Transformer​求解 L S T F LSTF LSTF​缺点:

  • 自注意力的二次计算。标准的点积 ( d o t − p r o d u c t ) (dot-product) (dotproduct)操作,会导致每一层的时间复杂度和内存使用都达到 O ( N 2 ) O(N^2) O(N2)的级别,其中 L L L是输入序列的长度。
  • 长输入的堆叠层的内存瓶颈。 J J J编码器/解码器层的堆叠使得总内存使用量为 O ( J ⋅ L 2 ) O(J·L^2) O(JL2)​,这限制了模型在接收长序列输入时的可扩展性。
  • 预测长期产出的速度下降。原始 T r a n s f o r m e r Transformer Transformer的动态解码使得逐步推理与基于 R N N RNN RNN的模型一样慢,每个步骤都必须等待前一个步骤完成才能进行。

本文主要内容:

  • 提出了 I n f o r m e r Informer Informer来成功地增强 L S T F LSTF LSTF问题的预测能力,这验证了类似 T r a n s f o r m e r Transformer Transformer模型的潜在价值,以捕捉长序列时间序列输出和输入之间的单个长期依赖关系。
  • 提出了 P r o b S p a r s e ProbSparse ProbSparse自注意机制来有效地取代规范的自注意机制,实现了 O ( N l o g N ) O(NlogN) O(NlogN)的时间复杂度和 O ( N l o g N ) O(NlogN) O(NlogN)的内存使用。
  • 提出了自注意力蒸馏操作特权支配 j − j- j堆叠层的注意力分数,并大幅降低总空间复杂度为 O ( ( 2 − ϵ ) N l o g N ) O((2−\epsilon)NlogN) O((2ϵ)NlogN)
  • 提出生成式解码器 ( G e n e r a t i v e S t y l e D e c o d e r ) (Generative Style Decoder) (GenerativeStyleDecoder),只需要向前一步就可以获得长序列输出,同时避免累积错误传播

在这里插入图片描述

I n f o r m e r Informer Informer模型的整体图。左边的部分是 E n c o d e r Encoder Encoder,它接收大量的长序列输入(绿色系列)。我们已经用提出的 P r o b S p a r s e ProbSparse ProbSparse​自注意取代了规范的自注意。蓝色梯形是提取支配性注意的自注意蒸馏操作,急剧减小网络规模。层堆叠副本提高了鲁棒性。对于右侧部分,解码器接收长序列输入,将目标元素填充为零,测量特征图的加权注意力组成,并以生成式的方式立即预测输出元素(橙色系列)。

2.预备

定义:在具有固定大小窗口的滚动预测设置下,在 t t t时刻的输入为 X t = { x t 1 , … , x t L x   ∣   x t i ∈ R d x } X_t = \{ x_t^1, \ldots, x_t^{L_x} \,|\, x_t^i \in \mathbb{R}^{d_x} \} Xt={xt1,,xtLxxtiRdx},输出为 Y t = { y t 1 , … , y t L y   ∣   y t i ∈ R d y } Y_t = \{ y_t^1, \ldots, y_t^{L_y} \,|\, y_t^i \in \mathbb{R}^{d_y} \} Yt={yt1,,ytLyytiRdy}

编码器-解码器架构 ( E n c o d e r − d e c o d e r   a r c h i t e c t u r e ) (Encoder-decoder\ architecture) (Encoderdecoder architecture)被设计用于将输入表示 X t X_t Xt “编码”为隐藏状态表示 H t H_t Ht,并从 H t = h t 1 , . . . , h t L h H_t = {h_t^1, ..., h_t^{L_h}} Ht=ht1,...,htLh 中“解码”出输出表示 Y t Y_t Yt。推理过程涉及一个名为“动态解码” ( d y n a m i c   d e c o d i n g ) (dynamic\ decoding) (dynamic decoding)的逐步过程,其中解码器根据前一个状态 h t k h_t^k htk和第 k k k 步的其他必要输出,计算新的隐藏状态 h t k + 1 h_t^{k+1} htk+1,然后预测第 ( k + 1 ) (k+1) (k+1) 个序列 y t k + 1 y_t^{k+1} ytk+1

在这个架构中,编码器负责处理输入数据(例如,一个句子、一段文本、一个图像等),并将其转换为一个或多个隐藏状态向量。这些隐藏状态向量捕获了输入数据的重要信息,这些信息随后被解码器用来生成输出序列。

解码器则负责利用这些隐藏状态向量来生成输出数据。在生成输出时,解码器通常会采用一种序列到序列 ( s e q u e n c e − t o − s e q u e n c e ) (sequence-to-sequence) (sequencetosequence)的方法,即一个步骤接着一个步骤地生成输出序列。在每个步骤中,解码器都会考虑前一个步骤的输出和隐藏状态,来预测下一个输出。

在这里插入图片描述

Informer的输入表示,包括标量投影,本地时间戳和全局时间戳嵌入三个部分.jpg

假设我们有 t t t个序列输入 X t X_t Xt p p p种类型的全局时间戳,输入表示后的特征维度为 d m o d e l d_{model} dmodel。我们首先通过使用固定位置嵌入来保持低阶上下文,即 P E ( p o s , 2 j ) = sin ⁡ ( p o s ( 2 L x ) 2 j / d model ) PE(pos, 2j) = \sin\left(\frac{pos}{{(2L_x)}^{2j/d_{\text{model}}}}\right) PE(pos,2j)=sin((2Lx)2j/dmodelpos),
P E ( p o s , 2 j + 1 ) = cos ⁡ ( p o s ( 2 L x ) 2 j / d model ) PE(pos, 2j+1) = \cos\left(\frac{pos}{{(2L_x)}^{2j/d_{\text{model}}}}\right) PE(pos,2j+1)=cos((2Lx)2j/dmodelpos),,其中 j ∈ { 1 , … , d model 2 } j \in \left\{1, \ldots, \frac{d_{\text{model}}}{2}\right\} j{1,,2dmodel}.。每个全局时间戳由一个可学习的戳嵌入 S E ( p o s ) SE_{(pos)} SE(pos)使用,词汇表大小有限(最多 60 60 60个,即以分钟为最细粒度)。也就是说,自注意力的相似度计算可以访问全局上下文,并且在长输入上的计算开销是可以承受的。为了对齐维度,我们使用一维卷积滤波器(核宽度= 3 3 3,步长= 1 1 1)将标量上下文 x i t x_{i}^{t} xit投影 d m o d e l d_{model} dmodel-维向量 u i t u_{i}^{t} uit。因此,我们有了如下的f反馈向量: X feed[i] t = α u i t + PE ( L x × ( t − 1 ) + i ) + ∑ p [ SE ( L x × ( t − 1 ) + i ) ] p X_{\text{feed[i]}}^t = \alpha u_i^t + \text{PE}(L_x \times (t-1) + i) + \sum_{p} \left[ \text{SE}_{(L_x \times (t-1) + i)} \right]_{\text{p}} Xfeed[i]t=αuit+PE(Lx×(t1)+i)+p[SE(Lx×(t1)+i)]p,其中 i ∈ { 1 , … , L x } i \in \{1, \dots, L_x\} i{1,,Lx},并且 α α α是一个用于平衡标量投影与局部/全局嵌入之间的幅度的因子。如果序列输入已经被标准化了,我们推荐 α = 1 α=1 α=1。这里的PE代表位置嵌入 ( p o s i t i o n   e m b e d d i n g ) (position\ embedding) (position embedding),用于捕捉序列中每个位置的信息;而 S E SE SE是学习的时间戳嵌入 , α α α是一个超参数,用于平衡不同的嵌入或投影对最终输入向量的贡献。

3.方法论

高效自我注意机制

​ 自注意力机制接收一个元组输入 ( q u e r y , k e y , v a l u e ) (query, key, value) (query,key,value),并通过缩放点积运算 ( s c a l e d d o t − p r o d u c t ) (scaled dot-product) (scaleddotproduct)进行运算,表示为 A ( Q , K , V ) = Softmax ( Q K ⊤ d ) V , 其中  Q ∈ R L Q × d , K ∈ R L K × d , V ∈ R L V × d A(Q, K, V) = \text{Softmax}\left(\frac{QK^{\top}}{\sqrt{d}}\right)V, \text{其中 } Q \in \mathbb{R}^{L_Q \times d}, K \in \mathbb{R}^{L_K \times d}, V \in \mathbb{R}^{L_V \times d} A(Q,K,V)=Softmax(d QK)V,其中 QRLQ×d,KRLK×d,VRLV×d,其中 d d d 是输入维度。为了进一步讨论自注意力机制,令 q i q_i qi, k i k_i ki, v i v_i vi 分别表示 Q Q Q, K K K, V V V 中的第 i i i 行。根据 T s a i   e t   a l . ( 2019 ) Tsai \ et\ al. (2019) Tsai et al.(2019) 的公式,第 i i i 个查询的注意力被定义为概率形式的核平滑器 ( k e r n e l   s m o o t h e r ) (kernel\ smoother) (kernel smoother): 则:
A ( q i , K , V ) = ∑ j k ( q i , k j ) ∑ l k ( q i , k l ) v j = E p ( k j ∣ q i ) [ v j ]                    方程一 A(q_i, K, V) = \sum_j \frac{k(q_i, k_j)}{\sum_l k(q_i, k_l)} v_j=\mathbb{E}_{p(k_j|q_i)}[v_j] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 方程一 A(qi,K,V)=jlk(qi,kl)k(qi,kj)vj=Ep(kjqi)[vj]                   方程一
其中, p ( k j ∣ q i ) = k ( q i , k j ) ∑ l k ( q i , k l ) p(k_j|q_i) = \frac{k(q_i, k_j)}{\sum_l k(q_i, k_l)} p(kjqi)=lk(qi,kl)k(qi,kj) k ( q i , k j ) k(q_i, k_j) k(qi,kj) 是一个核函数。这里我们使用不对称的指数核函数 exp ⁡ ( q i ⋅ k j d ) \exp\left(\frac{q_i \cdot k_j}{\sqrt{d}}\right) exp(d qikj)。自注意力机制通过计算概率$ (p(k_j|q_i)) $来结合值并获取输出。这需要二次时间复杂度的点积计算和 ( O ( L Q L K ) ) (O(L_Q L_K)) (O(LQLK))​ 的内存使用,这是提高预测能力的主要缺点。

​ 从方程 ( 1 ) (1) (1)中,第 ( i ) (i) (i)个查询对所有键的注意力被定义为一个概率 ( p ( k j ∣ q i ) ) (p(k_j|q_i)) (p(kjqi)),而输出是其与值 ( v ) (v) (v)的组合。主要的点积对会鼓励对应的查询注意力概率分布远离均匀分布。如果 ( p ( k j ∣ q i ) ) (p(k_j|q_i)) (p(kjqi))接近均匀分布 ( q ( k j ∣ q i ) = 1 L K ) (q(k_j|q_i) = \frac{1}{L_K}) (q(kjqi)=LK1),那么自注意力就变成了值 ( V ) (V) (V)的简单和,并且对输入是冗余的。自然地,分布 ( p ) (p) (p) ( q ) (q) (q)之间的“相似性”可以用来区分“重要”的查询。我们通过 K u l l b a c k − L e i b l e r Kullback-Leibler KullbackLeibler散度( K L KL KL散度)来测量“相似性”, K L KL KL散度定义为:
K L ( q ∣ ∣ p ) = ln ⁡ ( ∑ l = 1 L K e q i ⋅ k l T d ) − ln ⁡ ( L K ) − ∑ j = 1 L K 1 L K ⋅ q i ⋅ k l T d \begin{equation*} KL(q||p) = \ln\left( \sum_{l=1}^{L_K} e^{\frac{q_i \cdot k_l^T}{\sqrt{d}}} \right) - \ln(L_K) - \sum_{j=1}^{L_K} \frac{1}{L_K} \cdot {\frac{q_i \cdot k_l^T}{\sqrt{d}}} \end{equation*} KL(q∣∣p)=ln(l=1LKed qiklT)ln(LK)j=1LKLK1d qiklT
我们定义第 ( i ) (i) (i) 个查询的稀疏度测量为:
M ( q i , K ) = ln ⁡ ( ∑ j = 1 L K e q i ⋅ k j T d ) − 1 L K ∑ j = 1 L K q i ⋅ k j T d                 方程二 M(q_i, K) = \ln\left( \sum_{j=1}^{L_K} e^{\frac{q_i \cdot k_j^T}{\sqrt{d}}} \right) - \frac{1}{L_K} \sum_{j=1}^{L_K} \frac{q_i \cdot k_j^T}{\sqrt{d}}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 方程二 M(qi,K)=ln(j=1LKed qikjT)LK1j=1LKd qikjT                方程二

第一项是所有键上 ( q i ) (q_i) (qi) L o g − S u m − E x p ( L S E ) Log-Sum-Exp(LSE) LogSumExpLSE,第二项是这些键的算术平均值。如果第 ( i ) (i) (i)个查询获得了较大的 ( M ( q i , K ) ) (M(q_i, K)) (M(qi,K))值,那么它的注意力概率 ( p ) (p) (p) 就更加“多样化”,并且有很大可能性包含长尾自注意力分布中头部字段的主要点积对。这里,“多样化”意味着注意力不仅仅集中在少数几个键上,而是相对均匀地分布在多个键上。同时,由于 ( M ( q i , K ) ) (M(q_i, K)) (M(qi,K))​ 值较大,该查询的注意力分布更有可能包含那些具有较大点积值的键-查询对,这些对在长尾分布中占据主导地位。

​ 基于所提出的度量标准,我们通过允许每个键仅关注于占主导地位的查询u,从而实现了 P r o b S p a r s e ProbSparse ProbSparse​自注意力机制。
A ( Q , K , V ) = Softmax ( Q ‾ K T d ) V                     方程三 A(Q, K, V) = \text{Softmax}\left(\frac{\overline QK^T}{\sqrt{d}}\right)V\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 方程三 A(Q,K,V)=Softmax(d QKT)V                    方程三
其中, ( Q ‾ ) (\overline Q) (Q)是一个与 ( q ) (q) (q) 相同大小的稀疏矩阵,它仅包含根据稀疏性度量 ( M ( q , K ) ) (M(q,K)) (M(q,K)) 选择的前 ( u ) (u) (u) 个查询。通过一个常数采样因子 ( c ) (c) (c) 来控制,我们设定 ( u = c ⋅ ln ⁡ L Q ) (u = c \cdot \ln L_Q) (u=clnLQ),这使得 P r o b S p a r s e ProbSparse ProbSparse 自注意力机制在每次查询-键查找时只需要计算 ( O ( ln ⁡ L Q ) ) (O(\ln L_Q)) (O(lnLQ)) 个点积,并且层的内存使用保持在 ( O ( L K ln ⁡ L Q ) ) (O(L_K \ln L_Q)) (O(LKlnLQ))

简单来说, P r o b S p a r s e ProbSparse ProbSparse 自注意力机制通过稀疏化手段,仅对稀疏矩阵 ( Q ) (Q) (Q)中的前 ( u ) (u) (u)个查询(根据某种稀疏性度量)进行计算,从而降低了计算复杂度和内存使用。这里的 ( u ) (u) (u) 是基于查询数量 ( L Q ) (L_Q) (LQ)的对数和一个常数采样因子 ( c ) (c) (c)​ 来确定的。

然而,为了计算度量 ( M ( q i , K ) ) (M(q_i, K)) (M(qi,K))而遍历所有查询需要计算每对点积,即时间复杂度为平方级别的 ( O ( L Q L K ) ) (O(L_Q L_K)) (O(LQLK)),并且 L S E ( L o g − S u m − E x p ) LSE(Log-Sum-Exp) LSE(LogSumExp)操作存在潜在的数值稳定性问题。鉴于这一点,我们提出了一个查询稀疏性度量的近似方法。

引理一:对于每个查询 q i ∈ R d q_i \in \mathbb{R}^d qiRd 和键集中的 k j ∈ R d k_j \in \mathbb{R}^d kjRd 在集合 K K K 中,我们有边界 ln ⁡ L K ≤ M ( q i , K ) ≤ max ⁡ j {   q i ⋅ k j T d } − 1 L K ⋅ ∑ j = 1 L K {   q i ⋅ k j T d } + ln ⁡ L K \ln L_K \leq M(q_i, K) \leq \max_j \left\{ \frac{ \, q_i \cdot k_j^T}{\sqrt{d}} \right\} - \frac 1{L_K}\cdot \sum_{j=1}^{L_K} \left\{ \frac{ \, q_i \cdot k_j^T}{\sqrt{d}} \right\}+ \ln L_K lnLKM(qi,K)jmax{d qikjT}LK1j=1LK{d qikjT}+lnLK 。当 q i ∈ K q_i \in K qiK 时,该不等式也成立。

根据引理一,我们提出了最大均值测量为:
M ‾ ( q i , K ) = max ⁡ j { q i ⋅ k j T d } − 1 L K ∑ j = 1 L K q i ⋅ k j T d                         方程四 \overline M(q_i, K) = \max_j \left\{ \frac{q_i \cdot k_j^T}{\sqrt{d}} \right\} - \frac{1}{L_K} \sum_{j=1}^{L_K}\frac{q_i \cdot k_j^T}{\sqrt{d}} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 方程四 M(qi,K)=jmax{d qikjT}LK1j=1LKd qikjT                        方程四
命题一:假设 k j ∼ N ( μ , Σ ) k_j \sim N(\mu, \Sigma) kjN(μ,Σ),我们让 q k i q{k_i} qki 表示集合 { ( q i k j T ) / d   ∣   j = 1 , … , L K } \left\{ \left( q_i{k_j^T} \right) / \sqrt{d} \,|\, j = 1, \ldots, L_K \right\} {(qikjT)/d j=1,,LK},那么对于 ∀ M m = max ⁡ i M ( q i , K ) \forall M_m = \max_i M(q_i, K) Mm=maxiM(qi,K),存在 κ > 0 \kappa > 0 κ>0 使得:在区间 ∀ q 1 , q 2 ∈ { q   ∣   M ( q , K ) ∈ [ M m , M m − κ ) } \forall q_1, q_2 \in \{ q \,|\, M(q, K) \in [M_m, M_m - \kappa) \} q1,q2{qM(q,K)[Mm,Mmκ)} 内,如果 M ‾ ( q 1 , K ) > M ‾ ( q 2 , K ) \overline M(q_1, K) > \overline M(q_2, K) M(q1,K)>M(q2,K) 并且 Var ( q k 1 ) > Var ( q k 2 ) \text{Var}(q{k_1}) > \text{Var}(q{k_2}) Var(qk1)>Var(qk2),那么 M ( q 1 , K ) > M ( q 2 , K ) M(q_1, K) > M(q_2, K) M(q1,K)>M(q2,K) 的概率很高。为了简化,证明中给出了概率的估计。

​ 边界放宽下的前 ( u ) (u) (u) 个的顺序在命题 1 1 1(请参阅附录 D . 2 D.2 D.2中的证明)中得以保持。在长尾分布下,我们仅需要随机抽取 ( U = L Q ln ⁡ L K ) (U = L_Q \ln L_K) (U=LQlnLK)个点积对来计算 ( M ‾ ( q i , K ) ) (\overline M(q_i, K)) (M(qi,K)),即将其余的点积对填充为零。我们从中选择稀疏的前 ( u ) (u) (u)个作为 ( Q ) (Q) (Q)。在 ( M ( q i , K ) ) (M(q_i, K)) (M(qi,K)) 中的最大值操作对零值不太敏感,并且数值上是稳定的。在实践中,查询和键的输入长度通常是相等的,即 ( L Q = L K = L ) (L_Q = L_K = L) (LQ=LK=L),这样 P r o b S p a r s e ProbSparse ProbSparse自注意力的总时间复杂度和空间复杂度都是 ( O ( L ln ⁡ L ) ) (O(L \ln L)) (O(LlnL))

E n c o d e r : Encoder: Encoder:允许在内存使用限制下处理更长的顺序输入

在这里插入图片描述

Informer编码器的架构。 (1)每个水平堆叠代表图2中的编码器副本中的一个独立副本; (2)上面的堆叠是主要堆叠,它接收整个输入序列,而第二个堆叠则接收输入的一半切片; (3)红色层是自注意力机制的点积矩阵,通过在每一层应用自注意力蒸馏技术,这些矩阵的数量逐渐减少; (4)将两个堆叠的特征图合并作为编码器的输出。

​ 该编码器被设计用于提取长序列输入中的稳健长程依赖关系。在输入表示之后,第 t t t个序列输入 X t X_t Xt被重塑为一个大小为 L x × d model L_x \times d_{\text{model}} Lx×dmodel的矩阵 X t feed en ∈ R L x × d model X_t^{\text{feed en}} \in \mathbb{R}^{L_x \times d_{\text{model}}} Xtfeed enRLx×dmodel​。

​ 自注意力蒸馏 ( S e l f − a t t e n t i o n   D i s t i l l i n g ) (Self-attention\ Distilling) (Selfattention Distilling)作为 P r o b S p a r s e ProbSparse ProbSparse自注意力机制的自然结果,编码器的特征图包含了冗余的值 V V V组合。我们利用蒸馏操作来突出具有主导特征的优势组合,并在下一层生成一个集中的自注意力特征图。这极大地缩减了输入的时间维度,如图中注意力模块的 n n n个头权重矩阵(重叠的红色方块)所示。受到空洞卷积 ( Y u , K o l t u n , a n d   F u n k h o u s e r   2017 ; G u p t a   a n d   R u s h   2017 ) (Yu, Koltun, and \ Funkhouser \ 2017; Gupta \ and \ Rush \ 2017) Yu,Koltun,and Funkhouser 2017;Gupta and Rush 2017的启发,我们的“蒸馏”过程从第 j j j层向前传递到第 ( j + 1 ) (j+1) (j+1)​层,作为
X t j + 1 = MaxPool ( ELU ( Conv1d  [ X t j ] A B ) )              方程五 X_{t}^{j+1} = \text{MaxPool}\left( \text{ELU}\left( \text{Conv1d}\ \left[ X_{t}^{j} \right]_{AB} \right) \right)\ \ \ \ \ \ \ \ \ \ \ \ \ 方程五 Xtj+1=MaxPool(ELU(Conv1d [Xtj]AB))             方程五

其中,该表达式 [ ⋅ ] A B [·]_{AB} []AB包含多头ProbSparse自注意力机制以及注意力块中的关键操作,其中 C o n v 1 d ( ⋅ ) Conv1d(·) Conv1d()在时间维度上执行一维卷积滤波器 ( ( (核宽度 = 3 ) =3) =3),并使用 E L U ( ⋅ ) ELU(·) ELU()作为激活函数 ( C l e v e r t , U n t e r t h i n e r , a n d   H o c h r e i t e r   2016 ) (Clevert, Unterthiner, and\ Hochreiter\ 2016) (Clevert,Unterthiner,and Hochreiter 2016)。我们在堆叠一层后添加一个步长为 2 2 2的最大池化层,将 X t X_t Xt下采样到其一半的切片,这样可以将整个内存使用量减少到 O ( ( 2 − ε ) L l o g L ) O((2 - ε)L log L) O((2ε)LlogL),其中 ε ε ε​是一个很小的数。为了增强蒸馏操作的鲁棒性,我们构建了主堆栈的减半副本,并通过每次丢弃一层来逐渐减少自注意力蒸馏层的数量,形成一个如图所示的金字塔结构,从而使其输出维度对齐。因此,我们将所有堆栈的输出连接起来,得到编码器的最终隐藏表示。

D e c o d e r : Decoder: Decoder:通过一个前向过程生成长序列输出

​ 我们使用的标准解码器结构 V a s w a n i   e t   a l . 2017 Vaswani\ et\ al. 2017 Vaswani et al.2017,它由两层相同的多头注意力层堆叠而成。然而,为了缓解长预测中速度下降的问题,我们采用了生成式推理。我们将以下向量作为输入提供给解码器:
X feed de t = Concat ( X token t , X 0 t ) ∈ R ( L token + L y ) × d model                   方程六 \mathbf{X}_{\text{feed de}}^t = \text{Concat}(\mathbf{X}_{\text{token}}^t, \mathbf{X}_{0}^t) \in \mathbb{R}^{(L_{\text{token}} + L_y) \times d_{\text{model}}}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 方程六 Xfeed det=Concat(Xtokent,X0t)R(Ltoken+Ly)×dmodel                  方程六
其中, X t token ∈ R L token × d model X_t^{\text{token}} \in \mathbb{R}^{L_{\text{token}} \times d_{\text{model}}} XttokenRLtoken×dmodel作为起始令牌。 X t 0 Xt_0 Xt0是一个占位符,用于目标序列(将其标量值设为 0 0 0)。在 P r o b S p a r s e ProbSparse ProbSparse自注意力计算中,应用了掩码多头注意力 ( M a s k e d   M u l t i − h e a d   A t t e n t i o n ) (Masked\ Multi-head\ Attention) (Masked Multihead Attention),通过将掩码的点积设置为 − ∞ −∞ 来阻止每个位置关注到后续位置,从而避免了自回归 ( a u t o − r e g r e s s i v e ) (auto-regressive) (autoregressive)性质。一个全连接层获取最终输出,其输出大小 d y d_y dy​ 取决于我们是否执行单变量预测或多变量预测。

​ 生成式推断中的起始令牌是自然语言处理中“动态解码”的一种高效技术,我们将其扩展为生成式的方式。我们并没有选择特定的标志作为令牌,而是在输入序列中采样一个长度为 L t o k e n L_{token} Ltoken的序列,该序列是输出序列之前的一个较早片段。以预测 168 168 168个点为例(即 7 7 7天的温度预测),我们将目标序列之前的已知 5 5 5天作为“起始令牌”,并将这些信息与生成式推断解码器一起输入,表示为 X f e e d d e = X 5 d , X 0 X_{feed_de} = {X_{5d}, X_0} Xfeedde=X5d,X0。其中, X 0 X_0 X0包含目标序列的时间戳,即目标周的背景信息。值得注意的是,我们提出的解码器通过一次前向过程即可预测所有输出,避免了传统编码器-解码器架构中耗时的“动态解码”过程。在计算效率部分,我们给出了详细的性能比较。

​ 我们选择均方误差 ( M S E ) (MSE) (MSE)作为预测值与目标序列之间的损失函数,并将损失从解码器的输出反向传播至整个模型。

4.实验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/681496.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

变量位置不同会死机?郭天祥老师视频的遗留问题分析答案

在郭天祥老师视频里有一个问题分享,是EXMC初始化里的一个变量定义和初始化位置不同会导致程序死机,最终定位到程序是进入hardfault死机,但暂时没有后续分析了,这里我们来继续分析一下。 死机的程序是这样的: 这段代码…

springboot集成uid-gengrator生成分布式id

一、简介 uid-generator是由百度技术部开发,GitHub地址 UidGenerator是Java实现的, 基于Snowflake算法的唯一ID生成器 Snowflake算法 Snowflake算法描述:指定机器 & 同一时刻 & 某一并发序列,是唯一的。据此可生成一个64 bits的唯一ID&#x…

SD6210A 低噪声可调电荷泵DC/DC转换器芯片IC

一般描述 该SD6210A是一种低噪声,恒定频率(1.20MHz)开关电容电压倍增器。它产生一个调节输出电压从2.8V到5V的输入与高达250mA的输出电流。低外部零件数(一个飞行电容器和两个小旁路电容的VIN和VOUT)使SD6210A非常适合小型,电池供电的应用新的电荷…

元宇宙数字藏品交易所,未来发展的大趋势

随着科技的飞速进步,元宇宙以其独特的魅力为数字世界绘制了一幅前所未有的宏伟蓝图。在这一宏大的背景下,数字藏品交易所作为连接虚拟与现实的桥梁,正以其卓越的优势,引领着数字藏品市场迈向新的高度。 首先,元宇宙为…

HBuilderX编写APP一、获取token

一、新建项目 二、从onenet获取key.js 1、下载之后的压缩包,解压2、关键就是找到key.js 3、将这个key.js复制到刚才的目录下面去 4、这个key.js文件就是生成token的代码 5、只要调用createCommonToken(params)这个函数,就可以实现生成token了 其中onload…

如何将OnePlus手机上的文件轻松传输到Mac(3种简便方法)

拥有一台OnePlus手机,意味着你拥有了一台性能强劲、功能丰富的Android设备。但当手机存储空间告急,或者你想要更好地管理和备份个人数据时,将文件传输到Mac电脑上无疑是一个明智的选择。本文将为你介绍三种简单有效的方法,帮助你轻…

十大排序-冒泡排序

算法原理如下: 给出一组数据;比较相邻的元素。如果第一个比第二个大,互换两个值。对每一组相邻元素同样方式比较,从开始的第一组到结束的最后一组。最后的元素会是最大数。除了排列好的最大数,针对所有元素重复以上步…

十、结果处理器

这一章和上一章参数处理器类似 首先是在XML解析的时候,顺便解析resultMap和resultType,一般更多的可能用的是resultType,为了实现统一,使用 resultType 的情况下,Mybatis也会创建一个resultMap实体类映射。 使用的时…

负载均衡算法深度探析:F5技术在高效流量管理中的应用

传统的单一服务器模式下,随着用户请求量的增加,单个服务器可能会承受过重的压力,导致响应速度下降甚至系统崩溃,负载均衡技术应运而生。它广泛应用于各种软硬件系统中,将网络流量以某种算法合理分配给各个节点&#xf…

【wiki知识库】05.分类管理实现--前端Vue模块

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、🌏前端部分的改造 2.1 新增一个tool.ts 2.2 新增admin-categoty.vue 2.3 添加新的路由规则 2.4 添加the-welcome.vue 2.5 修改HomeView.vue 三、❗注意 一、&…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十六)- 微服务(6)

目录 10. Docker 10.1 Docker基本操作 10.1.1 镜像相关命令 10.1.2 容器相关命令 10.2 数据卷命令 10.2.1 常用命令 : 10.2.2 挂载数据卷 10. Docker 10.1 Docker基本操作 10.1.1 镜像相关命令 docker --help 查看docker帮助文档 docker images --help 查看docker ima…

人工智能任务5-高级算法工程师需要学习哪些课程与掌握哪些能力

大家好,我是微学AI,今天给大家介绍一下人工智能的任务5-高级算法工程师需要学习哪些课程,需要掌握哪些能力。高级算法工程师需要掌握的算法模型有:人脸检测模型MTCNN,人脸识别方法Siamese network、center loss、softm…

你中了机房建设管理的这几个误区吗?

机房建设及管理中的六大误区 作为机房建设及运维管理人员,您是否也常因为以下问题面临各种“头痛”瞬间 —— 由于缺少支持材料以及分析文件,常常迫不得已成为了各类“网络问题”的最终“背锅侠”,不仅要面对来自领导和客户的压力&#xff0…

Java EE-Spring Security配置

Spring Security 基本概念 spring security 的核心功能主要包括: 认证 (你是谁) 授权 (你能干什么) 攻击防护 (防止伪造身份) 其核心就是一组过滤器链,项目启动后将会自动配置。…

多模态模型学会打扑克:表现超越GPT-4v,全新强化学习框架是关键

​卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践,基于大语言模型和RAG技术,集合海量工业领域生态资源方优质产品和知识服务,旨在通过智能搜索、连续交互,实时生成个性化的内…

【计算机网络】计算机网络的概念

计算机网络的概念 导读一、计算机网络的概念1.1 个人理解1.2 通信设备与线路1.2.1 集线器1.2.2 交换机1.2.3 路由器 1.3 计算机网络的进一步理解1.4 互联网1.5 网的不同含义 二、计算机网络的不同定义2.1 广义观点2.2 资源共享观点2.3 用户透明性观点 结语 导读 大家好&#x…

JAVA小案例-用循环语句输出1-1000以内能被5整除的数,每5个一行

JAVA小案例-用循环语句输出1-1000以内能被5整除的数&#xff0c;每5个一行 直接看代码&#xff1a; public class Zhengchu {/*** 用循环语句输出1-1000以内能被5整除的数&#xff0c;每5个一行** param args*/public static void main(String[] args) {for (int i 1; i <…

拆分盘投资逻辑与风险探讨

一、引言 随着互联网金融的蓬勃发展&#xff0c;拆分盘作为一种新型投资模式逐渐进入公众视野。它以独特的“只涨不跌”的投资逻辑吸引了众多投资者的关注。本文将对拆分盘的投资逻辑进行解析&#xff0c;并通过一个简单示例进行说明&#xff0c;同时深入探讨其潜在风险&#…

【栈】736. Lisp 语法解析

本文涉及知识点 栈 LeetCode736. Lisp 语法解析 给你一个类似 Lisp 语句的字符串表达式 expression&#xff0c;求出其计算结果。 表达式语法如下所示: 表达式可以为整数&#xff0c;let 表达式&#xff0c;add 表达式&#xff0c;mult 表达式&#xff0c;或赋值的变量。表达…

软件需求分析文档(需求报告实际项目直接套用模板Word及软件全文档)

目录 第1章 序言 第2章 引言 2.1 项目概述 2.1.1 项目背景 2.1.2 项目目标 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 3.1.1 接口要求 3.1.2 系统专有技术 3.1.3 查询功能 3.1.4 数据安全 3.1.5 可靠性要求 3.1.6 稳定…