夯实基础
🗒️Transformer和Informer
00 分钟
2024-3-21
2024-4-3
type
status
date
slug
summary
tags
category
icon
password
🐽
介绍两者的网络架构和原理

Transformer

网络结构

notion image
整体为Seq2seq架构:
1、编码器:【Embedding】+【位置编码】+【多头自注意力+残差+归一化】+【位置前馈网络+残差+归一化】
2、解码器:【Embedding】+【位置编码】+【掩码多头自注意力+残差+归一化】+【多头条件注意力+残差+归一化】+【位置前馈网络+残差+归一化】+【全连接层】+【Softmax】
 
 

位置前馈网络

位置前馈网络就是一个全连接前馈网络,每个位置的词都单独经过这个完全相同的前馈神经网络。其由两个线性变换组成,即两个全连接层组成,第一个全连接层的激活函数为ReLU激活函数。可以表示为:
 

位置编码

与循环神经网络不同的是,注意力机制因为并行计算,放弃了顺序操作,为了表示序列中词的顺序信息,需要在输入中添加位置编码,来注入绝对的或相对的位置信息。
位置编码一般使用正弦和余弦函数:
是位置
是维度
是总维度
这样编码的好处是任意一个位置的信息都可以被线性表示,允许模型学习输入序列中的位置信息。具体数学原理请查看引用文章。详解自注意力机制中的位置编码(第一部分) - 知乎 (zhihu.com)
 

掩码(Mask)

有一些生成的Attention张量中的值计算有可能已知了未来信息而得到的,未来信息被看到是因为训练时会把整个输出结果都一次性进行Embedding,但是理论上解码器的的输出却不是一次就能产生最终结果的,而是一次次通过上一次结果综合得出的,因此,未来的信息可能被提前利用。所以,Attention中需要使用掩码张量掩盖未来信息。
即在Decoder输出第1个out时,只能获取第1个信息
输出第2个out时,只能获取第1、2个信息。
输出第3个out时,只能获取第1、2、3个信息。
训练时,由于是并行训练,需要提前对不同位置的信息进行遮蔽; 而预测时,由于是串行输出,每次输出时并不会涵盖未来信息。
 
掩码发生的位置在decoder的第一个多头注意力机制中,对的结果(softmax之前)进行遮蔽。
notion image
得到后,与矩阵V相乘,得到输出Z,此时每一个只包含i之前的信息。
notion image
 

Informer

网络结构

Informer模型是一种用于长序列时间序列预测的Transformer模型,它与传统Transformer模型相比,具备以下几个独特的特点:
  1. ProbSparse自注意力机制:Informer引入了ProbSparse自注意力机制,该机制筛选出最重要的query,降低计算复杂度。
  1. 自注意力蒸馏:通过减少级联层的输入,自注意力蒸馏技术可以有效处理极长的输入序列,提高了模型处理长序列的能力。(蓝色部分)
  1. 生成式解码器:Informer采用生成式解码器,可以一次性预测整个长时间序列,而不是逐步进行预测。这种方式大大提高了长序列预测的推理速度。(紫色部分)
notion image
 

LSTM测试效果

notion image
LSTM模型的预测效果随着时间变长,性能迅速变差,MSE迅速上升。

ProbSparse

思路:设计一种自适应的方法,只选择重要的query,降低Q的维度,减少Attention计算量。
对Attention map进行统计,发现它是服从一个Long-Tail分布的。
notion image
对每一个q进行分布的观察,可以将query状态区分为Active状态和Lazy状态。
notion image
步骤:
1、使用概率分布方法来进行状态区分,p为注意力概率分布,q为均匀分布(接近lazy分布)。
2、利用KL散度,对p和q分布的距离进行度量,来判断当前query的active强度。
3、通过Active强度来选择top U个query作为有效query。
仅解读思路,实现过程存在大量公式推理和推导,不详细进行解读。
 

自注意力蒸馏

notion image
通过两种方式完成蒸馏,步骤如下:
1、自注意力结果经过conv1d和maxpool1d层,进行数据蒸馏,生成特征矩阵1。
2、用初始序列的一半建立replicas,经过相似的中间操作,生成特征矩阵2。
3、两矩阵拼接得到最终矩阵。
 

生成式编码器

在decoder的中,使用的拼接的方式进行输入,部分用掩码遮蔽,一次性输出+长度的最终结果。
示意图如下:
notion image
 
 

📎 参考文章

 

评论
  • Twikoo