学习笔记_体系 📅 2026/8/14 1:38:46 注意力模块attention中如何通过qk,v获取上下文信息为什么不用点积除以根号d的意义softmax的作用1.Q 决定“我想找什么”K 决定“我有什么可以被找到”V 决定“找到以后把什么信息拿回来”。例如小明把书放在桌子上因为它很旧。想获取“它”的信息指什么需要从小明、书、桌子、旧去查找这时候“它是q,小明、书、桌子、旧各自产生k,Q(它) × K(书)Q(它) × K(桌子)Q(它) × K(小明)最后为什么还要×V因为K 是用来“匹配”的V 才是真正要拿走的信息拿走的是信息的具体内容它最后得到信息书是物体书籍至于上下文信息如何获取不是 Attention 天然知道前后而是因为 Encoder 的 Self-Attention 在计算QKᵀ时没有把其他位置屏蔽掉。整个句子↓我 喜欢 吃 苹果↓ ↓ ↓ ↓Q/K/V Q/K/V Q/K/V Q/K/V↓Q(吃)↓和所有 K 都计算↓┌────────────┼────────────┐↓ ↓ ↓K(我) K(喜欢) K(苹果)↓ ↓ ↓前文 前文 后文↓Attention↓“吃”的新表示点积计算是相似度q,k,v计算是token的信息匹配2.d 越大点积的数值就容易越大但是数值变大不是说明它更相关只是维度变高数值变大如果不除以根号dk假设 Q 和 4 个 K 的相似度[2, 1, 0, -1]Softmax 大概是[0.64, 0.24, 0.09, 0.03]还比较平滑。但是如果点积变大[20, 10, 0, -10]Softmax[≈1.00, ≈0, ≈0, ≈0]基本变成只关注第一个 token。默认方差0~1维度越大QKᵀ 的数值波动越大除以后把尺度拉回来。QKᵀ 是很多维度的点积维度越高数值越容易变大除以 √dₖ 是为了把数值尺度控制住避免 Softmax 饱和。3.Softmax 有点像一个注意力分配器QKᵀ 得到的是相关性分数例如QKᵀ苹果 5香蕉 2桌子 1小明 -1表明苹果比香蕉更相关只是分数但是需要的是从这些token中获取多少信息Softmax 把它转换成苹果 0.93香蕉 0.05桌子 0.02小明 0.00表明我93%的信息从苹果这里拿5%从香蕉拿2%从桌子拿。这些数字有两个重要性质① 全部 ≥ 0 ② 加起来 1所以它们可以直接理解成注意力分配比例。Softmax实际上把“相关性”变成了“权重”而且还突出差异。Attention0.93V苹果0.05V香蕉0.02V桌子