什么是自注意力机制?
自注意力机制(Self-Attention),也称为"缩放点积注意力"(Scaled Dot-Product Attention),是 Transformer 架构的核心计算单元。它让模型在处理序列中的某一位置时,能够同时"关注"序列中的所有其他位置,计算它们之间的相关性分数,并基于这些分数加权聚合信息。
自注意力的工作原理
Query、Key、Value:输入序列中的每个 token 被映射为三个向量——Query(查询向量)、Key(键向量)和 Value(值向量)。
注意力分数:每个位置的 Query 与所有位置的 Key 计算点积相似度,得到注意力分数矩阵。分数越高表示两个位置的相关性越强。分数除以 d_k 的平方根进行缩放,防止 softmax 梯度消失。
Softmax 归一化:对注意力分数应用 softmax,得到归一化的注意力权重。
加权求和:使用注意力权重对 Value 向量进行加权求和,得到每个位置的输出。
自注意力的优势
与 RNN 不同,自注意力可以并行计算整个序列(不依赖前一步结果)。自注意力还让数据能直接建立序列中任意两个位置之间的直接连接,有效解决了 RNN 在长距离依赖处理上的不足。