比如你看一句话:“我今天去超市买了苹果和香蕉”。当你理解这句话时,大脑不会逐字扫描,而是会 “关注” 关键信息:
- 看到 “买了” 时,会自动关联后面的 “苹果” 和 “香蕉”(它们是动作的对象);
- 看到 “超市” 时,会联想到 “买东西” 的场景。
注意力机制的核心就是:让模型像人一样,在处理信息时自动聚焦到关键部分。
假设我们要翻译句子:“The cat sat on the mat”(猫坐在垫子上)。
传统方法(如 RNN)会逐个处理单词,但自注意力机制会让每个单词 “看到” 整个句子,然后判断自己和其他单词的关系:
- 每个单词生成三个 “使者”:
- Query(查询):我要找和我相关的词;
- Key(钥匙):我的身份标识;
- Value(价值):我携带的信息(比如词义)。
- 计算 “相关性”:每个单词的 Query 会和其他所有单词的 Key 对比,算出一个 “相似度分数”(比如 “cat” 和 “mat” 的分数会很高,因为猫常坐在垫子上)。
- 加权求和:用相似度分数给其他单词的 Value “加权”,分数越高,贡献越大。最终每个单词的输出,都是融合了全句关键信息的结果。
类比场景:比如班级里选班长,每个同学(单词)会给其他人(Key)打分(Query 对比),分数高的同学(如学习好、人缘好的)意见(Value)会被重点参考,最终综合所有人的意见得出结果。
Transformer 是完全基于注意力机制的模型,它的核心结构包括:
- 编码器(Encoder)和解码器(Decoder):
- 编码器:处理输入序列(如英文句子),用自注意力让每个单词关联全句信息;
- 解码器:生成输出序列(如中文翻译),除了自注意力,还会用编码器 - 解码器注意力(Decoder 关注 Encoder 的输出,知道 “该翻译什么”)。
- 多头注意力(Multi-Head Attention):
不是只用一组 Query/Key/Value,而是同时用多组(如 8 头),每组关注不同的关系:
- 有的头关注语法关系(如 “cat” 是主语);
- 有的头关注语义关系(如 “cat” 和 “animal” 的关联);
最后把多组结果合并,让模型能从多个角度理解句子。
- 位置编码(Position Embedding):
自注意力本身不考虑单词顺序(比如 “猫吃老鼠” 和 “老鼠吃猫”),所以需要额外告诉模型每个单词的位置,比如用不同的向量表示 “第一个词”“第二个词” 等。
这篇 2017 年的论文(Google 出品)提出了 Transformer 架构,核心观点是:
- 抛弃循环神经网络(RNN/LSTM):
RNN 只能逐个处理单词(比如翻译完 “the” 才能处理 “cat”),无法并行计算;而 Transformer 用注意力机制让所有单词同时 “互动”,计算效率大幅提升(比如可以用 GPU 并行计算所有单词的注意力分数)。
- 注意力机制足够强大:
以前的模型需要 RNN、CNN 等结构辅助,但 Transformer 仅用注意力就能捕捉长距离依赖(比如句子开头和结尾的词关联),且效果更好。
- 开启大模型时代的钥匙:
后续的 BERT、GPT 等爆款模型都是基于 Transformer 架构,因为它支持海量数据训练和并行计算,为大模型的发展奠定了基础。
“让模型知道‘该看哪里’,用关键信息解决问题,就像人做事会抓重点一样。”
Transformer 则是把这种 “抓重点” 的能力系统化,通过自注意力、多头分工和位置编码,让机器能像人类一样理解语言的全局关系,同时跑得更快。
如果还是模糊,可以想象:Transformer 像一个团队,每个单词都是一个会 “读心” 的成员,既能知道自己在句子里的位置,又能和其他成员快速沟通,最后一起交出最优的翻译或理解结果。