©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
写在开头
深度学习这个箱子,远比我们想象的要黑。
据说物理学家费曼说过一句话[来源] [1]:“谁要是说他懂得量子力学,那他就是真的不懂量子力学。”我现在越来越觉得,这句话中的“量子力学”也可以替换为“深度学习”。尽管深度学习已经在越来越多的领域证明了其有效性,但我们对它的解释性依然相当无力。
当然,这几年来已经有不少工作致力于打开深度学习这个黑箱,但是很无奈,这些工作基本都是“马后炮”式的,也就是在已有的实验结果基础上提出一些勉强能说服自己的解释,无法做到自上而下的构建和理解模型的原理,更不用说提出一些前瞻性的预测。
本文关注的是自注意力机制。直观上来看,自注意力机制算是解释性比较强的模型之一了,它通过自己与自己的 Attention 来自动捕捉了 token 与 token 之间的关联,事实上在 Attention is All You Need [2] 那篇论文中,就给出了如下的看上去挺合理的可视化效果:
▲《Attention is All You Need》一文中对 Attention 的可视化例子
但自注意力机制真的是这样生效的吗?这种“token对token”的注意力是必须的吗?前不久 Google 的新论文 Synthesizer: Rethinking Self-Attention in Transformer Models 对自注意力机制做了一些“异想天开”的探索,里边的结果也许会颠覆我们对自注意力的认知。
论文标题:Synthesizer: Rethinking Self-Attention in Transformer Models
论文链接:https://arxiv.org/abs/2005.00743
自注意力
自注意力模型的流行,始于 2017 年 Google 发表的 Attention is All You Need [2] 一文,关于它的科普读者还可以参考笔者旧作《Attention is All You Need》浅读(简介+代码)。它的基础是 Scaled-Dot Attention,定义如下:
其中 ,softmax 则是在 m 的那一维进行归一化。而自注意力,则是对于同一个 ,通过不同的投影矩阵
得到
然后再做 Attention,即:
至于 Multi-Head Attention,则不过是 Attention 运算在不同的参数下重复多次然后将多个输出拼接起来,属于比较朴素的增强。而关于它的进一步推广,则可以参考《突破瓶颈,打造更强大的 Transformer》[3]。
天马行空
本质上来看,自注意力就是通过一个 的矩阵 和 的矩阵 ,将原本是 的矩阵 ,变成了