【Transformer 与注意力机制】03 矩阵乘法的两种视角
把矩阵乘法掰开成两种等价但风格不同的视角——『行 × 列』的点积视角和『列的线性组合』视角,最终落到 QK^T 的形状分析。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 15 篇文章 · 返回首页
把矩阵乘法掰开成两种等价但风格不同的视角——『行 × 列』的点积视角和『列的线性组合』视角,最终落到 QK^T 的形状分析。
这是【Transformer 与注意力机制】系列的第一篇,承担两件事:一是把这套五十多篇文章为谁写、解决什么问题、彼此之间是什么关系交代清楚;二是为完全没基础的读者画出一条从向量、点积、矩阵乘法走到自注意力、再走到大语言模型的爬升路径,让你在投入时间之前先知道终点在哪、路上要经过哪些坎、读完之后你会、还不会做什么事。
从《Attention Is All You Need》出发,把注意力机制、Transformer 架构、训练范式、模型变体、推理工程、可解释性与未来架构串成一条 58 篇的深度博客线。
RNN 三难(长程依赖、梯度稳定、训练并行)的系统分析;attention 如何作为补丁逐步把 RNN 推向极限;Vaswani 2017 抛弃循环的范式革命
很多人第一次读 Vaswani 2017 的公式时,都会卡在那一个 √dk 上。
Softmax 不是一个孤立的归一化函数,而是把任意实数分数变成概率分布的一座桥。本文从'为什么需要它'出发,讲清楚公式、几何、温度、稳定性、与交叉熵的配合,以及它在 Transformer 注意力里扮演的关键角色。
从人类阅读时的眼动出发,把「注意力」拆成视觉生理、翻译对齐、加权平均三件事。讲清楚为什么权重必须满足非负与和为一、为什么 softmax 不是审美选择而是可微优先的工程结果,以及为什么我们要选软选择而不是 argmax。
把 Bahdanau, Cho, Bengio 2014 那篇「Neural Machine Translation by Jointly Learning to Align and Translate」逐项拆开。固定 context vector 的瓶颈、双向 RNN 编码、additive attention 公式 vᵀtanh(W₁s + W₂h)、与 Luong 2015 multiplicative attention 的取舍,以及为什么这是 Q/K/V 的雏形。
信息检索类比 → Bahdanau 到 Q/K/V 的演化 → 为什么要分开 Q/K/V → softmax(QKᵀ/√d_k)V 公式逐项拆解 → 维度走查 → 三 token、d_k=2 的玩具示例手算 → additive vs multiplicative 取舍 → 自注意力时 Q/K/V 同源的特殊性。这是整个系列最重要的一篇。
从 cross-attention 到 self-attention 的退化路径 → 为什么 self-attention 是 O(1) 跳数 → 为什么它对位置完全无知(permutation-equivariant) → 「The cat sat on the mat. It was tired.」中 it→cat 的共指消解 → 为什么需要位置编码 → attention 不等于解释(向第 52 篇预告)。
单头注意力一次只能学一种关系,但语言里同时存在句法、指代、语义、位置等多重模式。Multi-Head Attention 把 d_model 切成 h 份并行做 attention,让模型在不增加参数量的前提下,同一步内同时形成多个独立的注意力分布。本文从直觉、数学、代码、可视化四个层面讲清楚为什么 Transformer 一定要多头。
自回归语言模型的核心约束是:预测 t 时刻只能用 t 之前的信息。Causal Mask 用一个上三角的 -∞ 矩阵让 softmax 之后未来位置的权重恒为零,使得模型在训练时能并行计算所有时间步、推理时严格自回归。本文从 teacher forcing 到 attention sink,把 causal mask 在训练、推理、长上下文中的所有面相讲清楚。
为什么 attention 是 O(n²),O(n²) 到底贵在哪里,5 类降复杂度方案的优劣,FlashAttention 不是 O(n) 这件事,长上下文是怎么把架构师逼疯的。
回到 2017 年 6 月那篇论文:八位作者、Google Brain/Translate 的内部背景、LSTM 时代的工程困境、为什么这篇在当年是「机器翻译的论文」、为什么七年后却被读成了「大模型时代的圣经」。
从「self-attention 是排列等变的」这件几乎被忽视的事实出发,推导出位置编码不是装饰、不是工程小技巧,而是结构性必需。原论文为什么选正弦、那个奇怪的 10000 是怎么来的、PE 与 embedding 是相加还是拼接、可学习位置和 sinusoidal 的本质差别在哪、为什么训练 512 推理 2048 会让模型崩溃——这一篇把这些问题一次讲完,并把读者交到现代位置编码(RoPE、ALiBi)的门口。