day45

1. 为什么要用 Multi-Head Attention(多头注意力)?用一个大头不行吗?

  • 面试官潜台词: 你懂不懂"子空间特征捕捉"?

  • 绝杀点: * 视角互补: 不同的头可以关注序列中不同的依赖关系。比如一个头关注"主谓关系",另一个头关注"代词指代"。

    • 防止过拟合: 类似于集成学习(Ensemble),多头并行计算后拼接,能让模型在多个**表征子空间(Subspaces)**中学习信息,比单一维度的注意力更稳健。

    • 物理意义: 这就像是让 8 个人从 8 个不同的角度看同一段话,最后大家把看到的细节汇总。


2. 为什么 Transformer 偏爱 LayerNorm (LN) 而不是 BatchNorm (BN)?

  • 面试官潜台词: 你知道 NLP 序列数据的特殊性吗?

  • 绝杀点: * 变长序列: NLP 的句子长短不一。BN 是在 Batch 维度做归一化,如果 Batch 里的句子长度差异很大,BN 算的均值和方差就会剧烈抖动,极其不稳定。

    • 词的独立性: LN 是在"单个样本"的所有通道上做归一化。在 Transformer 中,每个 Token 的特征(Embedding)是相对独立的,LN 能保证每个词的表征都在一个合理的范围内,不受 Batch 大小和句子长度的影响。

3. 请用大白话解释 Q, K, V 的数学意义?

  • 面试官潜台词: 你是只会背公式,还是真的懂"寻址"逻辑?

  • 绝杀点: 这是一个**"图书馆检索"**系统:

    • Q (Query): 你的"搜索意图"(我想找什么?)。

    • K (Key): 书架上每本书的"标签/索引"(这组信息是什么?)。

    • V (Value): 书里的"具体内容"(这组信息具体是多少?)。

    • 过程: 用 Q 去和所有的 K 计算相似度(打分),然后根据得分高低,去拿走对应的 V。


4. 为什么计算 Attention Score 时要除以 \\sqrt{d_k}?(Scaled Dot-Product)

  • 面试官潜台词: 你对梯度消失和 Softmax 的数学本质理解吗?

  • 绝杀点: * 防止数值爆炸: 当维度 d_k 很大时,点积 Q \\cdot K\^T 的数值会变得非常大。

    • 保护梯度: 如果数值太大,经过 Softmax 之后,结果会落入"饱和区",导数几乎为 0(梯度消失)。

    • 稳定性: 除以 \\sqrt{d_k} 可以让点积后的分布方差重新变回 1,保证了 Softmax 函数的输出更平滑,让梯度回传更稳定。

Attention(Q, K, V) = Softmax(\\frac{QK\^T}{\\sqrt{d_k}})V


5. Transformer 的 Encoder 和 Decoder 在 Attention 上最大的区别是什么?

  • 面试官潜台词: 你懂"因果屏蔽(Masking)"吗?

  • 绝杀点: * Encoder: 使用的是双向自注意力。每个词都能看到全句所有的词(上帝视角)。

    • Decoder: 使用的是掩码自注意力(Masked Self-Attention) 。由于生成任务是按照时间顺序的,模型不能"偷看"未来的词。所以我们会加一个三角矩阵(Look-ahead Mask),把未来的词强制屏蔽掉,保证生成时的因果性。

@z浙大疏锦行

相关推荐
外收内放4 小时前
面向对象高级(实战案例)
开发语言·python·学习
专业程序开发源5 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
FPGA小迷弟5 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
卷无止境5 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
fanruitian5 小时前
python else用法
开发语言·python
Thinker QAQ6 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
用户8356290780516 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design6 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express
学Linux的语莫8 小时前
python中类的常见写法
开发语言·python·状态模式
垆边人似月.8 小时前
Python中如何使用get函数实现频次查询
服务器·前端·python