©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
看过笔者之前的文章线性Attention的探索:Attention 必须有个 Softmax 吗?和 Performer:用随机投影将 Attention 的复杂度线性化的读者,可能会觉得本文的标题有点不自然,因为是先有线性 Attention 然后才有 Performer 的,它们的关系为“Performer 是线性 Attention 的一种实现,在保证线性复杂度的同时保持了对标准 Attention 的近似”,所以正常来说是“从线性 Attention 到 Performer”才对。
然而,本文并不是打算梳理线性 Attention 的发展史,而是打算反过来思考 Performer 给线性 Attention 所带来的启示,所以是“从 Performer 到线性 Attention”。
激活函数
线性 Attention 的常见形式是:
其中 是值域非负的激活函数。那么如何选取这个激活函数呢?Performer 告诉我们,应该选择指数函数:
首先,我们来看它跟已有的结果有什么不一样。在《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》[1] 给出的选择是:
我们知道 正是 在 x=0 处的一阶泰勒展开,因此 这个选择其实已经相当接近 了。
此外, 这个方案还跟《Efficient Attention: Attention with Linear Complexities》[2] 一文中引入的双重 softmax 来构建线性 Attention 的设计很相似,在那种设计中有 ,相比直接