不知不觉Transformer已经逐步渗透到了各个领域,就其本身也产生了相当多的变体,如上图。博主前一篇类似博文更新了 Transformer变体(Star-Transformer,Transformer-XL),本篇文章想整理一下这两篇很重要的Transformer变体,分别是Sparse Transformer and Switch Transformer。
Explicit Sparse Transformer: : Concentrated Attention Through Explicit Selection
标准Transformer的复杂度为O(n^2),但是否序列内的所有元素都有必要被关注到,是否有方法可以简化这个机制?所以本文的“Sparse”重点就体现在只有少量的token参与attention分布的计算,以提升注意力机制的集中度。即本来一个词只和少量的词有关,但是标准自注意力却会给所有的词都分配权重然后聚合,一种很自然的想法就是通过显式选择,只让模型关注少数几个元素就行。
模型图如上图,最左边是标准计算注意力的路线,中间的是Sparse的实现,可以看到区别就在于中间多了一个手工选择的Sparsification,最右则是它的执行示意图。简单来说就是在算softmax分数之前先进行top-k选择出少数的重要元素即可。具体来说先算内积: P = Q K T d P=\frac{QK^T}{\sqrt{d}} P=