查看原文
其他

【源头活水】Synthesizer-其实我们还不够了解Self-Attention

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

来源:知乎—DengBoCong
地址:https://zhuanlan.zhihu.com/p/380602965

https://arxiv.org/pdf/2005.00743.pdf

nlp-paper:https://github.com/DengBoCong/nlp-paper

nlp-dialogue:https://github.com/DengBoCong/nlp-dialogue

text-similarity:https://github.com/DengBoCong/text-similarity

说明:阅读原文时进行相关思想、结构、优缺点,内容进行提炼和记录,原文和相关引用会标明出处,引用之处如有侵权,烦请告知删除。

Transformer自从被提出,就火到现在,它的关键在于 query-key-value 的点积注意力,token与token之间被完全连接,能够对远距离的依赖关系进行建模。Transformer在到处都是黑箱的深度学习领域,可以说一个解释性比较强的模型之一了。而作为Transformer核心的组件,Self-Attention被许多人反复研究来研究去,随处可见的资料貌似已经把它解释的很好的,但事实真的这样么?本文对自注意力机制做了一些探索,里边的结果也许会颠覆我们对自注意力的认知。

01

前情提要
首先我们要明白点积的几何意义,两个向量越相似,他们的点积越大,Self-Attention结构就是利用Q,K,V计算点积,Self-Attention就是计算一个向量(可以理解为一个词)与其它向量的点积,即相似性。下面给出其公式:

注意了,完整的Self-Attention中,是对同一个通过不同的投影矩阵得到,即:

点积自注意力提供了强大的建模能力,其基本作用是确定单个 token 相对于序列中所有其他 token 的相对重要性。key、query、value 暗示自注意力模拟一个基于内容的检索过程,过程的核心是 pairwise 的交互。该文对整个过程进行了反思,通过探究如下几个问题:
点自注意力机制是否真的那么重要?
真的需要点注意力机制么?
通过pairwise点积来获得注意力权重是否必要?

02

模型细节
本篇论文本质上是讨论在Transformer结构下,替换自注意力机制的相关研究,如下图所示:
为了方便后面理解,这里我统一一下注意力权重计算的形式:

其中,  就是在  的sequence length维度上进行归一化后,计算出的注意力权重,所以本质上来看,自注意力就是通过一下一个  的矩阵  和一个的  ,将原本是  的输入矩阵  ,通过  的计算得到一个的矩阵的过程。有了上面的理解定义之后,我们来看看Synthesizer Model的几种形式。
Dense Synthesizer:本质上我们需要输入  的  来得到一个  的注意力权重矩阵,所以,如果不使用token-token,一种很平常的方式就是通过Dense来进行维度的变换。论文在实践中稍微将操作做得更复杂了一点,即:

值得一提的是,在这一步操作中,sequence中的每个token互相之间都是独立计算的。
Random Synthesizer:既然上面我们是为了得到一个  的  ,使用了一个比较直观的方式即Dense进行计算,那么为什么我们不能使用一个近乎淳朴的方式,即直接初始化一个随机的  矩阵  呢?Random Synthesizer就是这种方式:

上面的  就是Random的意思,  是随机初始化得到的,可以选择随训练更新或不更新。据原论文描述,固定形式的Attention首次出现在论文《Fixed Encoder Self-Attention Patterns in Transformer-Based Machine Translation》,不同点是那里的Attention矩阵是由一个函数算出来的,而Google这篇论文则是完全随机初始化的。从形式上看,Random实际上就相当于可分离卷积(Depthwise Separable Convolution)运算。
Factorized Models:Dense只需要  的参数量,Random需要  的参数量,节省了原本  和  做投影的参数量。但当sequence的长度比较长时,还是参数会很多,所以这里通过低秩分解来降低参数量。对于Dense和Random都有对应的低秩分解的形式,分别称为Factorized Dense和Factorized Random。Factorized Dense通过Dense的方式,生成两个  的矩阵  ,其中  ;然后将  重复  次、然后将  重复  次,得到对应的  矩阵,最后将它们逐位相乘,合成一个  的矩阵:

至于Factorized Random就很好理解了,本来是一整个  的矩阵  ,现在变成两个  的矩阵  

Mixture of Synthesizers:到目前为止,连同标准的自注意力,我们有5种不同的生成矩阵  的方案,它们也可以混合起来,即:

其中,  是不同形式的自注意力矩阵,而是可学习参数。
如下是对于上面讲到的方法和原方法的复杂度对比如下图:


03

实验
机器翻译
摘要对话
预训练+微调


04

总结
提出了Synthetic Attention,无需点注意力或基于内容的注意力。
提出了Synthesizer,集成了Synthetic Attention的新模型。
随机对齐的可学习矩阵一样表现良好。在一些任务重token-token依赖并不是必须的

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存