论文:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
transformer主要是增强网络的全局信息利用能力。因为普通的卷积网络都是local信息利用,其在全局信息利用上存在不可避免的短板。所以才会有类似non-local attn的存在。 transformer里面的核心就是attn,
一般来说, A ( q i , K , V ) = S o f t m a x ( Q K T d ) V \mathcal{A}(\mathbf{q}_i, \mathbf{K}, \mathbf{V})=Softmax\left(\frac{\mathbf{QK}^T}{\sqrt{d}}\right)\mathbf{V} A(qi,K,V)=Softmax(dQKT)V,其中 Q ∈ R L Q × d \mathbf{Q}\in \mathbb{R}^{L_Q\times d} Q∈RLQ×d, K ∈ R L K × d \mathbf{K}\in \mathbb{R}^{L_K\times d} K∈RLK×d, V ∈ R L V × d \mathbf{V}\in \mathbb{R}^{L_V\times d} V∈RLV×d。而 q i \mathbf{q}_i qi代表的是 Q \mathbf{Q} Q第 i i i列(即第 i i i个quary)。
举个不太恰当的例子: q q q, K K K和 V V V分别代表 quary, key和value。显然,key和value是配对的。一个key对应一个value。假设你是一个爱学习的孩子(希望确实是哈),然后你去图书馆借书看。那么你喜欢看工科的书,那你就是一个quary,你找的关键词就是 key(工科的书),然后找到的书就是这个key对应的value。不同人(quaries)会根据自己喜好,从而索引不同的关键字(key),最终找到对应的书(value)。
关键: 这里的匹配时,对于每个 q i \mathbf{q}_i qi,我们都要和所有的 k i \mathbf{k}_i ki 分别计算相似度,所以复杂度是 O ( L Q L K ) \mathbb{O}(L_QL_K) O(LQLK)。
上面的self-attn其实可以写成:
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 ] \mathcal{A}(\mathbf{q}_i, \mathbf{K}, \mathbf{V})=\sum_{j}\frac{k(\mathbf{q}_i, \mathbf{k}_j) }{\sum_{l}k(\mathbf{q}_i, \mathbf{k}_l) }\mathbf{v}_j=\mathbb{E}_{p(\mathbf{k}_j|\mathbf{q}_i)}\left[\mathbf{v}_j\right] A(qi,K,V)=j∑∑lk(