Informer

news2024/10/6 6:02:23

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.实验

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

plsql 实现自动补全语句

1.打开plsql程序所在文件目录 2.在此目录下新建文件auto_complete.txt (文件名随便起) 3.在auto_complete.txt 中写入关系对应: 4.在配置-首选项-用户界面-编辑器 中引入auto_complete.txt 即可 5.开一个sql窗口,输入sf 后敲个…

hadoop部署hive

1.安装mysql数据库 这里采用docker部署mysql,如果没有安装docker #安装yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken #设置docker镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/…

golang的函数为什么能有多个返回值?

在golang1.17之前,函数的参数和返回值都是放在函数栈里面的,比如函数A调用函数B,那么B的实参和返回值都是存放在函数A的栈里面,所以可以轻松的返回多个值。 其他的编程语言大都使用某个寄存器来存储函数的返回值。 但是从golang…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于两阶段鲁棒的多综合能源微网-共享储能电站协同优化运行策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Android 安装调试 TelephonyProvider不生效

直接安装TelephonyProvider的时候&#xff0c;&#xff08;没有重启&#xff09;发现数据库没有生效。 猜测应该是原本的数据库没有删除后重建更新。 解决方法&#xff1a;杀掉phone进程 adb shell am force-stop com.android.phone 查看device进程 adb shell ps | grep <…

实验二、网络属性设置《计算机网络》

精神状态 be like&#xff1a;边写边崩溃&#xff0c;越写越得劲儿。 目录 一、实验目的&#xff1a; 二、实验内容 三、实验步骤&#xff1a; 四、实验小结 一、实验目的&#xff1a; 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识&#xff1a; 1、…

MySQL有哪些锁?

文章目录 前言一、全局锁1.全局锁是怎么用的&#xff1f;2.全局锁应用场景是什么&#xff1f;3.加全局锁又会带来什么缺点呢&#xff1f;4.既然备份数据库数据的时候&#xff0c;使用全局锁会影响业务&#xff0c;那有什么其他方式可以避免&#xff1f; 二、表级表1.MySQL 表级…

vue2组件封装实战系列之space组件

组件之 GfSpace 多个同类型的内容比如 div/span/button/li 等&#xff0c;实现水平、垂直方向的均匀布局的功能 效果预览 属性 参数类型说明可选值默认值flexBoolean是否 flex 布局true/falsefalsegapNumber内容间距-10directionString内容排列方向row/columnrow 代码实现 这…

使用Colaboratory免费GPU资源微调Llama3-8b

Llama3微调过程 准备工作 Google Colaboratory Google Colaboratory&#xff0c;也称为 Colab&#xff0c;是一个基于云的平台&#xff0c;允许用户编写和执行 Python 代码。 它为机器学习和数据分析任务提供了便利的环境&#xff0c;并内置了对 TensorFlow 等流行库的支持。…

【uniapp】带圆角渐变边框实现

1. 效果图 2. 代码实现 <image class"item-left-img" :src"url" mode"aspectFill" />.item-left-img {width: 240rpx;height: 320rpx;border: 6rpx solid transparent;background-clip: padding-box, border-box;background-origin: padd…

企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程

系统概述 企业建站响应式网站建设平台版源码系统是一款集创新性、实用性和便捷性于一体的建站解决方案。它旨在为用户提供一站式的网站建设服务&#xff0c;无论你是新手还是经验丰富的开发者&#xff0c;都能通过该系统轻松实现网站的构建与部署。 该系统采用先进的技术架构…

Oracle和mysql中插入时间字段

例如有id 和 times两个字段 Oracle insert into xxx values|(1,sysdate) mysql insert into xxx values(1,now()) 在 MySQL 中&#xff0c;SYSDATE() 函数也是可用的&#xff0c;它与 NOW() 类似&#xff0c;但略有不同&#xff1a; NOW…

毫米波雷达深度学习技术-1.6目标识别1

1.6 目标识别 利用检测和跟踪在距离、多普勒和角度这两个维度中的任意一个进行精确的目标定位后&#xff0c;将检测到的目标分类到所需的类别中。与检测类似&#xff0c;提出了多种框架来同时使用图像和点云进行目标分类。使用图像进行目标分类的最常见方法是从检测到的目标特征…

基于JSP技术的社区疫情防控管理信息系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;JSPJavaBeans 工具&#xff1a;MyEclipse、Tomcat、Navicat 系统展示 首页 用户注册与登录界…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:大型机械智能预警系统

三一重工股份有限公司&#xff0c;是由三一集团创建于1994年&#xff0c;通过打破国人传统的“技术恐惧症”坚持自主创新迅速崛起。2011年7月&#xff0c;三一重工以215.84亿美元的市值荣登英国《金融时报》全球市值500强&#xff0c;是迄今唯一上榜的中国机械企业。2012年1月&…

C++面向对象程序设计 - 文件操作与文件流

在实际应用中&#xff0c;常以磁盘文件作为对象&#xff0c;即能从磁盘文件读取数据&#xff0c;也能将数据输出到磁盘文件&#xff0c;磁盘是计算机的外部存储器&#xff0c;能够长期保留信息&#xff0c;能读能写&#xff0c;可以刷新重写等等。 在C中&#xff0c;文件操作通…

windows安装conda

1 Conda简介 Conda 是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装多个版本的软件包及其依赖关系&#xff0c;并在它们之间轻松切换。Conda 是为 Python 程序创建的&#xff0c;适用于 Linux&#xff0c;OS X 和Windows&#xff0c;也可以打包和分发其他软…

【stm32】stm32f407 ch340下载

一、接线 1、ch340 Vcc短接3v3 5v---------5v GND-----GND TX ------RX RX --------TX 2、stm32F407 如上图&#xff0c;我们需要进入isp下载模式&#xff0c;接线图如下 二、下载 使用FlyMcu选择你要下载的程序文件中的.hex文件&#xff0c; 然后配置图如下&#xff1…

vue开发网站--对文章详情页的接口内容进行处理

一、需求 接口返回的数据中既包含文字也包含图片&#xff0c;并且需要对图片进行处理&#xff08;设置最大宽度为100%并拼接域名&#xff09; 可以按照以下步骤进行操作&#xff1a; 二、代码 <template><div class"details"><div class"infos…

finereport 9.0 Tomcat 集群-来自帆软

Tomcat服务器集群 目录: 1. 描述3. 配置过程4. 结果测试 1. 描述 在单一的服务器上执行WEB应用程序有一些问题&#xff0c;当网站成功建成并开始接受大量请求时&#xff0c;单一服务器无法满足需要处理的负荷量。 另外一个常见的问题是会产生单点故障&#xff0c;如果该服务器坏…