Self‑Attention(自注意力)通俗 + 原理完整讲解
Self‑Attention自注意力通俗 原理完整讲解一、核心作用自注意力是 Transformer 模型的核心模块目的序列里面每一个 Token单词、文字、向量和序列里全部 Token 计算关联强弱给自己分配不同权重从而捕捉长距离依赖关系。 举例 句子He didnt finish his homework because he was tired传统 RNN 按顺序读取相隔很远的两个 he 很难建立联系 Self‑Attention 可以直接让第二个 he 快速关联前面的 He无视距离远近。二、三个核心向量Q Query 查询、K Key 键、V Value 值输入每一个词的嵌入向量x分别乘 3 组可训练权重矩阵 WQ,WK,WV得到QKVx⋅WQx⋅WKx⋅WVQ当前这个词要去寻找谁K其余单词提供自身信息V真正用来提取特征的值向量。简单大白话Q 拿着问题挨个匹配 K匹配分数决定取用 V 的多少。三、计算步骤标准缩放点积注意力公式步骤 1计算相似度得分某一个 Token 的 Q 和全部 Token 的 K 做内积QKT。 内积结果越大代表两个单词相关性越高。步骤 2Scale 缩放除以dkdk代表 Q、K 向量维度。向量维度很高时内积数值会变得极大经过 Softmax 之后梯度会极小模型很难训练。除以dk把数值压小梯度恢复正常。scoredkQKT步骤 3可选‑Mask 掩码编码器 (Encoder‑BERT)无 mask可以看到整句话全部内容解码器 (Decoder‑GPT)加入上三角 Mask让第i个 token 看不到后面未来的 token防止提前看到后文。步骤 4Softmax 归一化对每一行做 softmax所有分数变成 0‑1 之间的权重一行所有权重总和等于 1ASoftmax(dkQK⊤) 矩阵A就是注意力权重矩阵。Aij代表第i个 token 对第j个 token 的关注程度。步骤 5加权 Value 得到输出注意力权重乘以 V 矩阵把其他单词的信息加权汇总到当前单词OutputA⋅V 之后再过一层线性层和残差连接 LayerNorm。四、多头自注意力 Multi‑Head‑Attention拓展把 Q、K、V 拆分到h个 head 分头计算自注意力将 Q,K,V 均匀切分每个 head 独立算 self‑attention把每个头的结果拼接起来再乘输出矩阵 好处不同头捕捉不一样类型关联语法关系、指代关系、位置关系特征空间多元化表达能力更强。五、数学公式精简版官方公式Attention(Q,K,V)Softmax(dkQK⊤)VMultiHead(Q,K,V)Concat(head1,...,headh)WO六、Self‑Attention 对比 RNN、CNN 优缺点优点全局视野任意位置 token 直接交互轻松捕捉长距离依赖RNN 距离太远信息衰减严重完全并行计算RNN 必须顺序逐个计算Self‑Attention 整段序列一起运算GPU 利用率极高动态分配权重上下文不同关注重点自动变化一词多义天然解决。缺点时间复杂度 O(n2)文本很长时n变大算力消耗爆炸本身不内置位置信息必须额外加入位置编码 Positional Encoding区分词语先后顺序。七、极简生活化例子句子I drank coffeetoken‑IQ 查询和 K (I、drank、coffee) 打分发现和 drank 关联性更高token‑coffee 重点关联 drank 自注意力自动学到coffee 是 drank 的宾语。八、区分概念Self‑AttentionQ、K、V 全部来自同一组输入BERT、GPTCross‑Attention交叉注意力Q 来自解码器K、V 来自编码器用于翻译模型Q 和另一序列做匹配。