经典论文阅读(1)——Informer

经典论文阅读(1)——Informer_第1张图片

当解决长序列时间序列预测问题时,Transformer会存在三个问题:

1)self attention的平方计算:self-attention中的原子点积,导致了每层时间和空间复杂度为O(L^2)

2)长输入时堆叠层的内存瓶颈:J层编码/解码的堆叠使内存使用为O(J \cdot L^2),限制了模型在接收长序列输入时的可扩展性。

3)预测长期输出的速度降低:Transformer的动态解码与RNN一样慢。

本文的贡献如下:

  • 提出了Informer提升长序列时间预测预测问题的预测能力;

  • 提出了ProbSparse self-attention,实现了时间和空间的O(LlogL)的复杂度;

  • 提出了self-attention蒸馏操作,提取J层堆叠层的主要attention分数,并将空间复杂度降低至O((2-\epsilon)LlogL)

  • 提出了生成风格解码器,仅需一步前向操作,同时避免了推理阶段的累积误差。

Informer的模型架构如下:

经典论文阅读(1)——Informer_第2张图片

高效self-attention机制

Transformer中的self-attention分数为A(Q,K,V)=softmax(QK^T/\sqrt d)V,利用概率形式的核平滑器定义第i个查询的注意力:A(q_i,K,V)=\sum_j\frac{k(q_i,k_j)}{\sum_lk(q_i,k_l)}v_j=E_{p(k_j|q_i)[v_j]},其中p(k_j|q_i)=k(q_i,k_j)/\sum_lk(q_i,k_l),且kernel选择了不对称指数内核exp(q_ik_j^T/\sqrt d)

首先对典型自我注意的习得注意模式进行定性评估,发现“稀疏性”self-attention得分形成长尾分布。

query稀疏性度量

定义第i个query的稀疏性度量为M(q_i,K)=ln\sum_{j=1}^{L_k}e^{\frac{q_ik_j^T}{\sqrt d}}-\frac{1}{L_K}\sum_{j=1}^{L_K}\frac{q_ik_j^T}{\sqrt d},若该指标越大,则表示attention概率p分布更多样化,且在长尾self-attention分布的头部有很大几率含有点积对的主要成分。

ProbSparse self-attention

基于上述query稀疏性度量,提出了ProbSparse self-attention,允许每个key仅关注u个主要的query:A(Q,K,V)=softmax(\frac{\overline{Q}K^T}{\sqrt d}),其中\overline{Q}为与q相同大小的稀疏矩阵,仅包含稀疏性度量M(q,K)最高的u个query,设置u=c \cdot ln L_Q

编码器:在内存使用限制下允许处理更长的序列输入

经典论文阅读(1)——Informer_第3张图片

self-attention 蒸馏

利用蒸馏操作,将具有主导特征的优势特征赋予优先级,并在下一层生成一个集中的自注意特征图。从j层到j+1层的蒸馏操作如下:

X_{j+1}^t=MaxPool(ELU(Conv1d([X_j^t]_{AB})))

其中[\cdot]_{AB}为attention block。

解码器:通过一次前向过程生成长序列输出

在长时间预测中,利用生成推理来缓解速度骤降的问题。向解码器输入如下向量:

X_{de}^t=Concat(X_{token}^t,X_O^t)

其中X_{token}^t为起始token,X_O^t为目标序列的占位符。 ProbSparse self-attention通过将masked点积设置为-无穷,应用了Masked multi-head attention。

生成式推理

L_{token}的序列作为起始token,例如,需要预测7天的序列,则将目标序列前面已知的5天序列作为起始token:X_{de}=\{ X_{5d} ,X_O\}

X_O包含目标序列的时间戳。这样,仅通过一次前向过程就可以进行推理。

Loss

选择MSE为loss函数。

你可能感兴趣的:(经典论文,深度学习,机器学习,算法)