智能家居科技|谷歌大改Transformer注意力,自己挖坑自己填

机器之心报道
机器之心编辑部
考虑到Transformer对于机器学习最近一段时间的影响 , 这样一个研究就显得异常引人注目了 。
Transformer有着巨大的内存和算力需求 , 因为它构造了一个注意力矩阵 , 需求与输入呈平方关系 。 谷歌大脑KrzysztofChoromanski等人最近提出的Performer模型因为随机正正交特性为注意力矩阵构建了一个无偏的估计量 , 可以获得线性增长的资源需求量 。 这一方法超越了注意力机制 , 甚至可以说为下一代深度学习架构打开了思路 。
智能家居科技|谷歌大改Transformer注意力,自己挖坑自己填
文章图片
自面世以来 , Transformer模型已经在多个领域取得了SOTA结果 , 包括自然语言处理、图像处理甚至是音乐处理 。 众所周知 , Transformer架构的核心是注意力模块 , 它计算输入序列中所有位置对的相似度得分 。 然而 , 随着输入序列长度的增加 , 注意力机制本身的问题也越来越突出 , 因为它需要二次方的计算时间来产生所有的相似度得分 , 用来存储这些得分的内存大小也是如此 。
针对那些需要长距离注意力的应用 , 部分研究者已经提出了一些速度快、空间利用率高的方法 , 其中比较普遍的方法是稀疏注意力 。
智能家居科技|谷歌大改Transformer注意力,自己挖坑自己填
文章图片
标准的稀疏化技术 。
然而 , 稀疏注意力方法也有一些局限 。 首先 , 它们需要高效的稀疏矩阵乘法运算 , 但这并不是所有加速器都能做到的;其次 , 它们通常不能为自己的表示能力提供严格的理论保证;再者 , 它们主要针对Transformer模型和生成预训练进行优化;最后 , 它们通常会堆更多的注意力层来补偿稀疏表示 , 这使其很难与其他预训练好的模型一起使用 , 需要重新训练 , 消耗大量能源 。
此外 , 稀疏注意力机制通常不足以解决常规注意力方法应用时所面临的所有问题 , 如指针网络 。 还有一些运算是无法稀疏化的 , 比如常用的softmax运算 。
为了解决这些问题 , 来自谷歌、剑桥大学、DeepMind、阿兰·图灵研究所的研究者提出了一种新的Transformer架构——Performer 。 它的注意力机制能够线性扩展 , 因此能够在处理长序列的同时缩短训练时间 。 这点在ImageNet64等图像数据集和PG-19文本数据集等序列的处理过程中都非常有用 。
智能家居科技|谷歌大改Transformer注意力,自己挖坑自己填
文章图片
论文链接:https://arxiv.org/pdf/2009.14794.pdf
Performer使用一个高效的(线性)广义注意力框架(generalizedattentionframework) , 允许基于不同相似性度量(核)的一类广泛的注意力机制 。 该框架通过谷歌的新算法FAVOR+(FastAttentionViaPositiveOrthogonalRandomFeatures)来实现 , 后者能够提供注意力机制的可扩展低方差、无偏估计 , 这可以通过随机特征图分解(常规softmax-attention)来表达 。 该方法在保持线性空间和时间复杂度的同时准确率也很有保证 , 也可以应用到独立的softmax运算 。 此外 , 该方法还可以和可逆层等其他技术进行互操作 。
研究者表示 , 他们相信该研究为注意力、Transformer架构和核方法提供了一种新的思维方式 。
代码地址:https://github.com/google-research/google-research/tree/master/performer
论文公布之后 , Youtube知名深度学习频道YannicKilcher对该文章进行了解读 。
00:00/00:00倍速
广义的注意力机制
在以往的注意力机制中 , 分别对应矩阵行与列的query和key输入相乘 , 通过softmax计算形成一个注意力矩阵 , 以存储相似度系数 。 值得注意的是 , 这种方法不能将query-key生成结果传递给非线性softmax计算之后再将其分解为原始的query和key 。 然而 , 将注意力矩阵分解为原始query和key的随机非线性函数的乘积是可以的 , 即所谓的随机特征(randomfeature) , 这样就可以更加高效地对相似度信息进行编码 。