大家的AI
机器学习AI论文
加载中…

学习

🏅我的成就

Ch.01

Transformer 1:自注意力与并行化

Transformer 的核心是 自注意力(Self-Attention)。它不再像 RNN 那样按顺序逐个处理 token,而是让句子中的所有 token 同时相互参考,从而汇聚重要信息。本章将用初学者友好的方式讲解自注意力:从 Query / Key / Value、缩放点积注意力,到多头的数学意义,并把这些内容与翻译、摘要、搜索以及医疗文本分析等真实应用串联起来学习。

轻松理解公式

Q=XWQQ=XW_QQ=XWQ​, K=XWKK=XW_KK=XWK​, V=XWVV=XW_VV=XWV​ 中,XXX 是输入嵌入,WQ/WK/WVW_Q/W_K/W_VWQ​/WK​/WV​ 是可学习的变换矩阵。这个步骤把同一句话拆成“像提问的表示”“像匹配的表示”“像内容的表示”。S=QKTS=QK^TS=QKT 是 token 之间的相关性分数矩阵。分数越大,两者关系越强。但当维度变大时数值可能过大,所以用 dk\sqrt{d_k}dk​​ 进行稳定化处理。A=softmax(S/dk)A=\mathrm{softmax}(S/\sqrt{d_k})A=softmax(S/dk​​) 是一个概率权重矩阵:每一行的和为 1。也就是说,它用比例表示一个 token 应该参考其他 token 的程度。O=AVO=AVO=AV 是用权重 AAA 去混合 Value 得到的最终上下文表示。关键点是它不是简单平均,而是基于重要性的加权平均。
自注意力是一种操作:每个 token 关注所有 token,并重建上下文。

概念结构:Q/K/V → 分数 → 归一化 → 加权求和

输入 tokenIlovedeeplearningtoken 关系(self-attention)Transformer Encoder BlockMulti-Head AttentionAdd & NormFeed Forward上下文向量输出上下文向量是token 所看到信息的摘要
弱引用中等引用强引用

Transformer 1:一眼看懂自注意力

概念说明
自注意力会让句子里的每个单词(token)同时关注所有其他单词,并为理解当前 token 决定“该参考哪些词、参考多少”的权重。比如在“去了银行”里判断“银行”到底是金融机构还是河岸时,自注意力的作用就是把周围词的整体信息一起纳入判断。
直观理解
把它想象成会议:当有人发言时,所有参与者都同时举手投票——“我的发言在当前语境里有多重要”。发言者会根据这些投票结果放大重要意见、压缩不重要意见,最终得到判断。自注意力也用同样的思路工作:用权重来决定哪些信息更关键。
数学说明
把输入嵌入矩阵记为 XXX,并变换得到 Q=XWQQ=XW_QQ=XWQ​, K=XWKK=XW_KK=XWK​, V=XWVV=XW_VV=XWV​。其中 WQ,WK,WVW_Q, W_K, W_VWQ​,WK​,WV​ 是可学习的权重矩阵。注意力分数由 QKTQK^TQKT 计算,并为了维度校正除以 dk\sqrt{d_k}dk​​,再经过 softmax 得到概率权重 A=softmax(QKT/dk)A=\mathrm{softmax}(QK^T/\sqrt{d_k})A=softmax(QKT/dk​​)。最终输出是 AVAVAV。各符号含义如下:dkd_kdk​ 是 Key 向量维度,AAA 是表示“该参考哪些 token、参考多少”的比例权重矩阵。
实际机器学习应用示例
在垃圾邮件分类中,往往需要看句子整体模式,而不是只看某一个词。自注意力可以同时捕捉“免费”和“点击”这种词之间的关系,从而更准确地判断是否为垃圾邮件。在医疗诊断文本分类中,它能同时建模症状、检查结果以及否定表达(如“不是”)之间的交互,从而降低误诊风险。

为什么重要

概念说明
自注意力之所以重要,是因为它能很好地捕捉长距离依赖(long-range dependency)。即使句子前面的词决定了后面的含义,信息也能有效地传递到远处。
直观理解
RNN 像接力赛一样把“棒子”一步步传下去,因此中间可能会逐渐丢失信息。而自注意力更像群聊:所有参与者能同时看到所有消息,所以远处的信息也能立刻被参考。
数学说明
RNN 的信息传递路径长度与 token 距离 nnn 成正比;但自注意力在同一层里直接连接所有 token,因此路径长度约为 1。路径越短,梯度传播越稳定,也就更不容易丢掉关键依赖。
实际机器学习应用示例
在处理长上下文的任务中,自注意力通常贡献很大:例如法律文档摘要、客服咨询日志分类、诈骗交易检测与解释生成等。

如何使用

概念说明
在实际开发中,先用分词器把文本切成 token,再把 token 转成向量(嵌入)。之后把自注意力模块(多头 + 前馈网络 + 残差连接 + 正则化)堆叠成多层,构建模型。
直观理解
如果只有一位“专家”来判断,很容易偏科。因此多头注意力会让多个头从不同视角(语法、语义、实体等)分别“投票”,再把结果合并起来。
数学说明
第 hhh 个头的输出为 headh=softmax(QhKhT/dk)Vh\mathrm{head}_h=\mathrm{softmax}(Q_hK_h^T/\sqrt{d_k})V_hheadh​=softmax(Qh​KhT​/dk​​)Vh​。将各头输出拼接(concat),再乘以 WOW_OWO​ 得到最终输出;也就是 MultiHead(X)=Concat(head1,…,headH)WO\mathrm{MultiHead}(X)=\mathrm{Concat}(\mathrm{head}_1,\dots,\mathrm{head}_H)W_OMultiHead(X)=Concat(head1​,…,headH​)WO​。
实际机器学习应用示例
在翻译模型中,一个头可能更擅长主语-动词关系,另一个头更擅长数值/日期一致性。在客户评论情感分析中,自注意力还能捕捉否定词与关键形容词之间的关系,从而提高准确率。

总结

自注意力的结构是:每个 token 会同时参考句子中的所有 token 来理解上下文,因此它是 Transformer 性能的重要基础。它通过 Query、Key、Value 将信息拆开计算相似度,并用 softmax 把重要性像概率一样正则化后进行加权求和,把需要的信息汇聚起来。由于这种机制,远距离的词关系也能一次性被反映出来,所以在长上下文问题上尤其强。多头会降低单一视角带来的局限,并通过融合多个视角提升预测稳定性。最终,理解自注意力就是理解“如何有选择地收集信息”,而这会直接连接到翻译、摘要、分类、搜索以及医疗文本分析等广泛的机器学习任务中。

解题提示

自注意力题目可以先把它想成“谁在参考谁、参考多少”的题来理解就会更简单。计算题通常以“分数求和”“投票(多数组合)统计”“头/Token/维度的乘法”这几类形式出现:只要按题意对用整数设计的值依次相加或相除即可。记住 Q、K、VQ、K、VQ、K、V 分别对应“问题(Query)”“索引/匹配依据(Key)”“内容(Value)”,就不容易在实战里混淆。
关键词解题要点总结
  • 类型核心公式
  • 解题要点 / 例子(关键词 → 正答)A=softmax(QKT/dk)A=\mathrm{softmax}(QK^T/\sqrt{d_k})A=softmax(QKT/dk​​) 中,dkd_kdk​ 是 Key 的维度 → 概念题正答 2
  • 类型核心概念
  • 解题要点 / 例子(关键词 → 正答)Query=问题,Key=匹配依据,Value=要拿来的信息 → 概念题正答 1
  • 类型O/X 判断
  • 解题要点 / 例子(关键词 → 正答)“自注意力会同时看所有 token” → 1
  • 类型投票结果计算
  • 解题要点 / 例子(关键词 → 正答)对 1 的个数求和来做多数判定 → 得到整数结果
  • 类型模型预测集成
  • 解题要点 / 例子(关键词 → 正答)先把各头预测加总,再与阈值比较 → 类别编号
  • 类型模型配置计算
  • 解题要点 / 例子(关键词 → 正答)头数 × 每头维度 = 模型维度 → 整数
  • 类型集成思想
  • 解题要点 / 例子(关键词 → 正答)独立误差的减少与多视角结合 → 原理题正答 1
类型解题要点 / 例子(关键词 → 正答)
核心公式A=softmax(QKT/dk)A=\mathrm{softmax}(QK^T/\sqrt{d_k})A=softmax(QKT/dk​​) 中,dkd_kdk​ 是 Key 的维度 → 概念题正答 2
核心概念Query=问题,Key=匹配依据,Value=要拿来的信息 → 概念题正答 1
O/X 判断“自注意力会同时看所有 token” → 1
投票结果计算对 1 的个数求和来做多数判定 → 得到整数结果
模型预测集成先把各头预测加总,再与阈值比较 → 类别编号
模型配置计算头数 × 每头维度 = 模型维度 → 整数
集成思想独立误差的减少与多视角结合 → 原理题正答 1
例子(投票结果计算)
题目
5 个头投票为 [1, 1, 0, 1, 0]。1 的总数是多少?
简要计算
1+1+0+1+0=31+1+0+1+0=31+1+0+1+0=3
→ 正答
3
例子(模型配置计算)
题目
头数为 8、每个头的维度为 16 时,总的注意力维度是多少?
简要计算
8×16=1288\times16=1288×16=128
→ 正答
128
例子(理解集成原理)
题目
为什么多头比单头更强?最合适的是哪一个?
① 结合多个视角来减少错误
② 参数变成 0
③ 计算量永远为 0
简要计算
原理对比:确认是否是“多视角结合”
→ 正答
1