注意力机制详解——让模型学会「关注重点」
人类在看东西时,不会平等地处理每个像素。你会自然地把目光聚焦在关键信息上——看照片时你会先看人脸,读文章时你会重点看关键词。
注意力机制就是让AI学会这种能力:自动找到并聚焦最重要的信息。
它是Transformer的核心,也是GPT、BERT等大模型的灵魂。
1Q、K、V:注意力三剑客
注意力机制的三个核心概念:
Q (Query)
「我想找什么」
K (Key)
「我能提供什么」
计算匹配度
注意力权重
V (Value)
「我的内容」
加权求和
最终输出
2自注意力:序列内部的交互
自注意力是Transformer的核心。序列中的每个元素都生成自己的Q、K、V,然后与其他所有元素进行注意力计算。
词1
的Q会与词1、词2、词3...的K计算
词2
的Q也会与所有词的K计算
结果:注意力矩阵
每个词都会得到一个包含整个序列上下文的表示
类比理解:就像开会讨论一个问题。每个人都会发言(Q),也会听其他人发言(K),最后根据所有人的发言(V)形成一个综合理解。
3多头注意力:从多个角度看问题
单个注意力头可能只能捕捉一种关系。多头注意力用多个注意力头,从不同的角度同时处理信息。
头1
关注不同关系
头2
关注不同关系
头3
关注不同关系
头4
关注不同关系
拼接 + 线性变换
融合多头信息
📚 例子
句子:「小明在公园里和小红玩。」
头1可能关注「小明」和「小红」(主语关系),头2可能关注「公园」(地点关系),头3可能关注「玩」(动作关系)。
4位置编码:保持序列顺序
Transformer抛弃了RNN的循环结构,但这样就丢失了位置信息(因为自注意力对词序不敏感)。位置编码就是给每个词加上位置信息。
给每个位置一个固定的编码
词1的编码 + 词1的内容,词2的编码 + 词2的内容...
编码词之间的相对距离
「词2」比「词1」晚一个位置,「词3」比「词1」晚两个位置
🎓 一句话总结
- ①Q/K/V = 查询/键/值,计算注意力权重,加权求和得到输出
- ②自注意力 = 序列中每个元素与其他所有元素交互,捕获长距离依赖
- ③多头注意力 = 多个注意力头从不同角度同时处理信息
- ④位置编码 = 保持序列顺序信息,因为自注意力对词序不敏感
→下篇预告
第28篇:BERT vs GPT——预训练模型的两个流派
BERT和GPT都基于Transformer,但走向了不同的方向。BERT用编码器理解文本,GPT用解码器生成文本。它们分别代表了NLP的「理解」和「生成」两大流派。下一篇,我们来对比这两个重量级模型。
✏️ 手绘图解 · AI Catch 出品
第 27 篇 / 深度学习架构篇