1.各种Attention
最近在重读Transformer论文的过程中,结合其他看过的资料,对各种Attention概念有进一步的了解。回顾最初刚接触时候的迷糊,觉得有必要写一篇文章记录一下对各种attention新的理解。
2.论文中的Transformer架构图
先上经典的Transformer架构图镇楼
上面这张图是论文中经典的transformer整体架构。除了这张整体架构图,还有如下两张图
上面这些图里各种attention,scaled dot-product attention, multi-head attention, self attention, masked multi-head attention 等等,一堆相关名词与概念,很容易就把人给闹晕了。下面我们来分析一下这些attention的区别。
3.Scaled Dot-Product Attention
Scaled Dot-Product Attention,直接翻译的话就是缩放点积注意力。
即对应论文中上面这个公式。
输入包括维度dk,查询值Q(query),键值K(key),维度为dk的值V(value)。根据上面的公式,可以得到注意力分数。
4.self-attention
self-attention,指的是通过Scaled Dot-Product Attention的计算方式,计算注意力分数,最终对向量实现加权求和操作,得到输入序列中的每个位置加权向量表示。
在自注意力(Self-Attention)机制中,“Self”这个词的理解关键在于它描述了注意力的来源和应用是在同一组数据内部。在自注意力机制中,每个元素(例如,句子中的一个词或者序列中的一个项)的表示是由序列内部的其他元素通过注意力权重来加权平均得到的。这种注意力计算是序列内部元素之间的相互关系,而不是像传统的注意力机制那样,通常是在不同序列之间进行,比如在机器翻译中源语言序列和目标语言序列之间的关系。
Self在自注意力中强调的是模型在处理序列时,每个元素的上下文表示是由序列内部的元素共同决定的,而不是依赖于外部的元素或者序列。