自注意力(Self-Attention)是一种将同一序列内部不同位置相互关联的注意力机制,其查询、键、值均来自同一个输入序列。与交叉注意力(Cross-Attention)不同——后者查询来自一个序列、键和值来自另一个序列——自注意力用于在单一序列内部建立全局依赖。
自注意力的计算分为四步:
由于所有位置可以同时进行上述计算,任意两个位置之间的信息传递只需一次注意力操作即可完成,最大路径长度为常数。这使得模型能够高效捕捉长距离依赖,也是 Transformer 相较循环结构的关键优势之一。