实战:Transformer 深度学习模型核心数学原理与全架构推导报告
自 Vaswani 等人在 2017 年提出 Transformer 架构以来,它已成为现代大语言模型(LLM)与生成式人工智能的绝对基石。理解 Transformer 不仅需要宏观理解其模块,更需要透彻掌握其底层的严密数学公式。
本实战报告系统地推导了 Transformer 架构的核心数学机理,包含前向传播机制、数值稳定性因子推导、残差与归一化设计、以及完整的自注意力机制反向传播(Backward Pass)梯度流推导。
一、 缩放点积自注意力机制 (Scaled Dot-Product Attention)
自注意力机制的物理意义是计算序列中任意两个 Token 之间的相关性权重。输入包含三个矩阵:查询矩阵 $\mathbf{Q}$、键矩阵 $\mathbf{K}$、值矩阵 $\mathbf{V}$。
1. 核心前向传播公式
自注意力输出矩阵 $\mathbf{O}$ 表达式如下(此处我们将 LaTeX 公式和源代码分栏展示,以便于学习):
$\mathrm{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \mathrm{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V}$
其中,$\mathbf{Q} \in \mathbb{R}^{n \times d_k}$,$\mathbf{K} \in \mathbb{R}^{n \times d_k}$,$\mathbf{V} \in \mathbb{R}^{n \times d_v}$。$n$ 为序列长度,$d_k$ 与 $d_v$ 为特征维度。
为了深入分析,我们定义未归一化的相似度得分矩阵(Attention Logits)为 $\mathbf{S}$:
$\mathbf{S} = \frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}} \quad \Rightarrow \quad S_{ij} = \frac{1}{\sqrt{d_k}} \sum_{m=1}^{d_k} Q_{im} K_{jm}$
对 $\mathbf{S}$ 进行逐行 Softmax 归一化,得到注意力权重概率矩阵 $\mathbf{A}$:
$A_{ij} = \frac{\exp(S_{ij})}{\sum_{p=1}^{n} \exp(S_{ip})}$
最终的输出矩阵 $\mathbf{O} \in \mathbb{R}^{n \times d_v}$ 为值矩阵的加权求和:
$\mathbf{O} = \mathbf{A}\mathbf{V} \quad \Rightarrow \quad O_{ij} = \sum_{q=1}^{n} A_{iq} V_{qj}$
2. 数值稳定性:为什么除以 $\sqrt{d_k}$?
若不进行缩放(即没有 $\sqrt{d_k}$),当维度 $d_k$ 非常大时,点积结果容易产生过大的方差,导致 Softmax 概率分布高度集中,梯度几近消失。下面是该缩放因子的严格数学证明:
证明: 假设查询向量 $\mathbf{q} \in \mathbb{R}^{d_k}$ 与键向量 $\mathbf{k} \in \mathbb{R}^{d_k}$ 的各分量均为独立同分布的随机变量,均值为 $0$,方差为 $1$:
$\mathbb{E}[q_i] = \mathbb{E}[k_i] = 0, \quad \mathrm{Var}(q_i) = \mathrm{Var}(k_i) = 1 \quad (\forall i = 1, \dots, d_k)$
其未缩放点积 $q \cdot k = \sum_{i=1}^{d_k} q_i k_i$。由于各分量独立:
$\mathbb{E}[q_i k_i] = \mathbb{E}[q_i] \mathbb{E}[k_i] = 0$
$\mathrm{Var}(q_i k_i) = \mathbb{E}[(q_i k_i)^2] - (\mathbb{E}[q_i k_i])^2 = \mathbb{E}[q_i^2] \mathbb{E}[k_i^2] - 0 = (\mathrm{Var}(q_i) + \mathbb{E}[q_i]^2)(\mathrm{Var}(k_i) + \mathbb{E}[k_i]^2) = 1 \cdot 1 = 1$
由于各分量和相互独立,根据方差的可加性:
$\mathbb{E}[q \cdot k] = \sum_{i=1}^{d_k} \mathbb{E}[q_i k_i] = 0$
$\mathrm{Var}(q \cdot k) = \sum_{i=1}^{d_k} \mathrm{Var}(q_i k_i) = d_k$
为了让点积后的均值保持为 $0$,且方差稳定在单位方差 $1$,我们必须对点积乘上 $\frac{1}{\sqrt{d_k}}$ 进行标准尺度化缩放:
$\mathrm{Var}\left(\frac{q \cdot k}{\sqrt{d_k}}\right) = \frac{1}{d_k} \mathrm{Var}(q \cdot k) = \frac{d_k}{d_k} = 1$
由此证得缩放因子为 $\sqrt{d_k}$ 的严密数学必然性。 $\text{Q.E.D.}$
二、 多头注意力投影机制 (Multi-Head Attention)
多头注意力机制允许模型在不同的表示子空间中共同关注来自不同位置的信息(此处我们将 LaTeX 公式和源代码分栏展示,以便于学习):
$\begin{aligned}
\mathrm{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) &= \mathrm{Concat}(\mathrm{head}_1, \dots, \mathrm{head}_h)\mathbf{W}^O \\
\text{where } \mathrm{head}_i &= \mathrm{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V)
\end{aligned}$
其各线性权重投影矩阵的维度约束如下:
- $\mathbf{W}i^Q \in \mathbb{R}^{d{\text{model}} \times d_k}$
- $\mathbf{W}i^K \in \mathbb{R}^{d{\text{model}} \times d_k}$
- $\mathbf{W}i^V \in \mathbb{R}^{d{\text{model}} \times d_v}$
- $\mathbf{W}^O \in \mathbb{R}^{h d_v \times d_{\text{model}}}$
三、 残差与层归一化层 (Add & LayerNorm)
在大深度神经网络中,LayerNorm 对于稳定前向激活幅度及阻断反向梯度消散至关重要。
1. 层统计量计算
对多头注意力层输出的特征向量 $\mathbf{x} \in \mathbb{R}^d$,LayerNorm 在单个样本的特征维度(而不是 Batch 维度)计算均值 $\mu$ 和方差 $\sigma^2$:
$\mu = \frac{1}{d} \sum_{j=1}^{d} x_j, \quad \sigma^2 = \frac{1}{d} \sum_{j=1}^{d} (x_j - \mu)^2$
2. 分布标准化与仿射映射
利用计算出的统计量进行零均值单位方差缩放,并乘上可学习通道缩放系数 $\gamma$ 与偏移 $\beta$:
$\hat{x}_j = \frac{x_j - \mu}{\sqrt{\sigma^2 + \epsilon}}$
$y_j = \gamma_j \hat{x}_j + \beta_j$
其中 $\epsilon$ 是用于防止除以 0 的极小浮点数。
四、 前馈传播神经网络 (Feed-Forward Network, FFN)
每个注意力层后都紧跟一个逐位置(Position-wise)全连接前馈层。其公式由两层线性变换及一个 ReLU 激活(或 GELU)组成:
$\mathrm{FFN}(\mathbf{x}) = \max(0, \mathbf{x}\mathbf{W}_1 + \mathbf{b}_1)\mathbf{W}_2 + \mathbf{b}_2$
其维度关系为:
- $\mathbf{W}1 \in \mathbb{R}^{d{\text{model}} \times d_{\text{ff}}}$
- $\mathbf{W}2 \in \mathbb{R}^{d{\text{ff}} \times d_{\text{model}}}$
通常设 $d_{\text{ff}} = 4 d_{\text{model}}$。
五、 正弦位置编码 (Positional Encoding)
由于注意力运算抛弃了序列的位置顺序信息(等价于词袋模型),必须人为加入位置特征编码 $PE$。Transformer 设计了正余弦频率位置表达:
$ \begin{aligned} PE_{(pos, 2i)} &= \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \ PE_{(pos, 2i+1)} &= \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \end{aligned} $
这使得模型能通过固定线性变换容易地学习关注相对位置:
$\sin(A + B) = \sin A \cos B + \cos A \sin B$
六、 核心挑战:自注意力层反向传播梯度推导 (Backward Pass)
为说明反向传播的具体实现,我们对缩放点积自注意力进行完整的微分求偏导推导。
设损失函数关于自注意力输出矩阵 $\mathbf{O}$ 的上游传入梯度为 $\frac{\partial \mathcal{L}}{\partial \mathbf{O}} \in \mathbb{R}^{n \times d_v}$。
1. 关于值矩阵 $\mathbf{V}$ 的梯度
由于 $O_{ij} = \sum_{q=1}^{n} A_{iq} V_{qj}$,对每个元素求偏导:
$\frac{\partial \mathcal{L}}{\partial V_{kj}} = \sum_{i=1}^{n} \sum_{p=1}^{d_v} \frac{\partial \mathcal{L}}{\partial O_{ip}} \frac{\partial O_{ip}}{\partial V_{kj}} = \sum_{i=1}^{n} \frac{\partial \mathcal{L}}{\partial O_{ij}} A_{ik}$
写成优雅的矩阵相乘形式:
$\frac{\partial \mathcal{L}}{\partial \mathbf{V}} = \mathbf{A}^T \frac{\partial \mathcal{L}}{\partial \mathbf{O}}$
2. 关于注意力权重概率矩阵 $\mathbf{A}$ 的梯度
由于 $O_{ij} = \sum_{q=1}^{n} A_{iq} V_{qj}$,对 $A_{ik}$ 求导:
$\frac{\partial \mathcal{L}}{\partial A_{ik}} = \sum_{j=1}^{d_v} \frac{\partial \mathcal{L}}{\partial O_{ij}} V_{kj}$
写成矩阵形式:
$\frac{\partial \mathcal{L}}{\partial \mathbf{A}} = \frac{\partial \mathcal{L}}{\partial \mathbf{O}} \mathbf{V}^T$
3. 关于 Softmax 输入相似度矩阵 $\mathbf{S}$ 的梯度
Softmax 在行上是相互关联归一化的。利用 Softmax 的经典微分特性:
$\frac{\partial A_{ij}}{\partial S_{ik}} = A_{ij}(\delta_{jk} - A_{ik}) \quad (\text{其中 } \delta_{jk} \text{ 为克罗内克 } \delta \text{ 函数})$
结合多元链式法则,推导关于 $S_{ik}$ 的偏导数:
$\frac{\partial \mathcal{L}}{\partial S_{ik}} = \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} \frac{\partial A_{ij}}{\partial S_{ik}} = \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} A_{ij} (\delta_{jk} - A_{ik}) = \frac{\partial \mathcal{L}}{\partial A_{ik}} A_{ik} - A_{ik} \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} A_{ij}$
通过 Hadamard 乘积($\odot$)和逐行求和($\mathrm{rowsums}$)将该微分操作优雅地矩阵化表达:
$\frac{\partial \mathcal{L}}{\partial \mathbf{S}} = \mathbf{A} \odot \left( \frac{\partial \mathcal{L}}{\partial \mathbf{A}} - \mathrm{rowsums}\left(\frac{\partial \mathcal{L}}{\partial \mathbf{A}} \odot \mathbf{A}\right) \mathbf{1}^T \right)$
其中 $\mathbf{1} \in \mathbb{R}^n$ 为全 1 的列向量。
4. 关于查询矩阵 $\mathbf{Q}$ 与键矩阵 $\mathbf{K}$ 的梯度
由于 $\mathbf{S} = \frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}$,我们可得到关于矩阵的微分:
$\mathrm{d}\mathbf{S} = \frac{1}{\sqrt{d_k}} \left( (\mathrm{d}\mathbf{Q})\mathbf{K}^T + \mathbf{Q}(\mathrm{d}\mathbf{K})^T \right)$
根据偏微分性质直接转换得到梯度表达式:
$\frac{\partial \mathcal{L}}{\partial \mathbf{Q}} = \frac{1}{\sqrt{d_k}} \frac{\partial \mathcal{L}}{\partial \mathbf{S}} \mathbf{K}$
$\frac{\partial \mathcal{L}}{\partial \mathbf{K}} = \frac{1}{\sqrt{d_k}} \left( \frac{\partial \mathcal{L}}{\partial \mathbf{S}} \right)^T \mathbf{Q}$
到此,我们完整推导出了 Transformer 最具挑战性的注意力模块前向与反向梯度的全部闭合公式。
七、 常见问题与避坑指南(FAQ)
- 问题:在编辑框里写多行矩阵或多行等式(如
aligned或matrix)时,公式折叠成了一行,没有实现换行?- 解决方法:在 LaTeX 中,分行是通过两个反斜杠
\\实现的。但在网页 Markdown 编辑框中输入时,有时需要确保在\\后面没有多余的空格,并在\begin{aligned}与\end{aligned}前后留出完整的空行。
- 解决方法:在 LaTeX 中,分行是通过两个反斜杠
- 问题:如何处理公式中的英文单词(比如
softmax或Attention)?直接输入会变成奇怪的斜体和紧凑间距。- 解决方法:在 LaTeX 数学模式中,连续的英文字母会被视作多个变量的相乘,从而以斜体和极窄间距排版。对于这类特定的数学算子或函数名,请使用
\mathrm{softmax}或\text{Attention},这样能使英文字体保持正常的立书正体,且间距排版正确。
- 解决方法:在 LaTeX 数学模式中,连续的英文字母会被视作多个变量的相乘,从而以斜体和极窄间距排版。对于这类特定的数学算子或函数名,请使用
- 问题:写下标或上标时,比如
W_1正常,但W_attention却只有首字母a下沉,后面字母都在基线上?- 解决方法:这是初学者最常见的问题。在 LaTeX 中,上下标符号(
_或^)默认只作用于紧随其后的单个字符。如果有多于一个字符,必须用花括号{}整体包裹起来,例如:W_{attention}或d_{k}。
- 解决方法:这是初学者最常见的问题。在 LaTeX 中,上下标符号(
Practice: Mathematical Foundations and Complete Architecture Derivation of Transformer Models
Since Vaswani et al. introduced the Transformer in 2017, the architecture has served as the absolute mathematical foundation for Large Language Models (LLMs) and Generative AI.
To truly master the Transformer, one must grasp the rigorous mathematical machinery powering its forward activations and backward pass gradients. This laboratory report presents a systematic, step-by-step mathematical derivation of the Transformer architecture, ranging from numerical stability analysis to complete backward gradient flows.
1. Scaled Dot-Product Attention
The Self-Attention layer computes semantic correlations across sequence tokens. It accepts three main inputs: Query $\mathbf{Q}$, Key $\mathbf{K}$, and Value $\mathbf{V}$.
A. Core Forward Formulations
The attention output matrix $\mathbf{O}$ is formulated as (split column view of LaTeX code and math representation):
$\mathrm{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \mathrm{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V}$
Where $\mathbf{Q} \in \mathbb{R}^{n \times d_k}$, $\mathbf{K} \in \mathbb{R}^{n \times d_k}$, and $\mathbf{V} \in \mathbb{R}^{n \times d_v}$. $n$ represents the sequence token length, and $d_k, d_v$ are feature projection dimensions.
To break this down, we define the raw similarity logits as $\mathbf{S}$:
$\mathbf{S} = \frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}} \quad \Rightarrow \quad S_{ij} = \frac{1}{\sqrt{d_k}} \sum_{m=1}^{d_k} Q_{im} K_{jm}$
Applying a row-wise Softmax normalization yields the attention weight probability matrix $\mathbf{A}$:
$A_{ij} = \frac{\exp(S_{ij})}{\sum_{p=1}^{n} \exp(S_{ip})}$
The final representation $\mathbf{O} \in \mathbb{R}^{n \times d_v}$ is the weighted summation of values:
$\mathbf{O} = \mathbf{A}\mathbf{V} \quad \Rightarrow \quad O_{ij} = \sum_{q=1}^{n} A_{iq} V_{qj}$
B. Numerical Stability: Why divide by $\sqrt{d_k}$?
Without the scaling factor $\sqrt{d_k}$, extreme feature dimensions push dot-product outputs to high-magnitude regions, causing the Softmax function's gradient to saturate and disappear.
Proof: Assume query vector components $\mathbf{q} \in \mathbb{R}^{d_k}$ and key vector components $\mathbf{k} \in \mathbb{R}^{d_k}$ are independent, identically distributed (i.i.d.) random variables with mean $0$ and unit variance $1$:
$\mathbb{E}[q_i] = \mathbb{E}[k_i] = 0, \quad \mathrm{Var}(q_i) = \mathrm{Var}(k_i) = 1 \quad (\forall i = 1, \dots, d_k)$
Let the unscaled dot product be $q \cdot k = \sum_{i=1}^{d_k} q_i k_i$. Due to independent components:
$\mathbb{E}[q_i k_i] = \mathbb{E}[q_i] \mathbb{E}[k_i] = 0$
$\mathrm{Var}(q_i k_i) = \mathbb{E}[(q_i k_i)^2] - (\mathbb{E}[q_i k_i])^2 = \mathbb{E}[q_i^2] \mathbb{E}[k_i^2] - 0 = (\mathrm{Var}(q_i) + \mathbb{E}[q_i]^2)(\mathrm{Var}(k_i) + \mathbb{E}[k_i]^2) = 1 \cdot 1 = 1$
Since the summations are mutually independent, variance additive properties apply:
$\mathbb{E}[q \cdot k] = \sum_{i=1}^{d_k} \mathbb{E}[q_i k_i] = 0$
$\mathrm{Var}(q \cdot k) = \sum_{i=1}^{d_k} \mathrm{Var}(q_i k_i) = d_k$
To scale the dot product back to a stable distribution with mean $0$ and unit variance $1$, we divide by $\sqrt{d_k}$:
$\mathrm{Var}\left(\frac{q \cdot k}{\sqrt{d_k}}\right) = \frac{1}{d_k} \mathrm{Var}(q \cdot k) = \frac{d_k}{d_k} = 1$
This proves why the scaling parameter $\sqrt{d_k}$ is mathematically necessary. $\text{Q.E.D.}$
2. Multi-Head Attention Mechanism
Multi-Head Attention projects representation tokens into multiple subspaces, allowing parallelized representation pathways (split column view):
$\begin{aligned}
\mathrm{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) &= \mathrm{Concat}(\mathrm{head}_1, \dots, \mathrm{head}_h)\mathbf{W}^O \\
\text{where } \mathrm{head}_i &= \mathrm{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V)
\end{aligned}$
Dimensional constraints:
- $\mathbf{W}i^Q \in \mathbb{R}^{d{\text{model}} \times d_k}$
- $\mathbf{W}i^K \in \mathbb{R}^{d{\text{model}} \times d_k}$
- $\mathbf{W}i^V \in \mathbb{R}^{d{\text{model}} \times d_v}$
- $\mathbf{W}^O \in \mathbb{R}^{h d_v \times d_{\text{model}}}$
3. Residuals & Layer Normalization (LayerNorm)
LayerNorm normalizes activation flows across the hidden dimension of each token independently, stabilizing forward paths.
A. Layer Statistics
For layer representation output $\mathbf{x} \in \mathbb{R}^d$, we calculate internal mean $\mu$ and variance $\sigma^2$:
$\mu = \frac{1}{d} \sum_{j=1}^{d} x_j, \quad \sigma^2 = \frac{1}{d} \sum_{j=1}^{d} (x_j - \mu)^2$
B. Normalization and Scale-Shift Mapping
Using computed statistics, we scale and shift via learnable scalar weights $\gamma$ and bias $\beta$:
$\hat{x}_j = \frac{x_j - \mu}{\sqrt{\sigma^2 + \epsilon}}$
$y_j = \gamma_j \hat{x}_j + \beta_j$
Where $\epsilon$ is a tiny floating-point value to prevent division by zero.
4. Feed-Forward Network (FFN)
Each attention layer is followed by a Position-wise Feed-Forward network, containing two linear projections and a ReLU (or GELU) activation:
$\mathrm{FFN}(\mathbf{x}) = \max(0, \mathbf{x}\mathbf{W}_1 + \mathbf{b}_1)\mathbf{W}_2 + \mathbf{b}_2$
Where $\mathbf{W}1 \in \mathbb{R}^{d{\text{model}} \times d_{\text{ff}}}$ and $\mathbf{W}2 \in \mathbb{R}^{d{\text{ff}} \times d_{\text{model}}}$.
5. Sine-Cosine Positional Encodings
Since Attention matrices are permutation-invariant, positional features must be added to input embeddings:
$ \begin{aligned} PE_{(pos, 2i)} &= \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \ PE_{(pos, 2i+1)} &= \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \end{aligned} $
6. Attention Layer Backward Pass Gradient Derivation
To detail the backpropagation flow, we calculate complete derivatives for the Scaled Dot-Product Attention module.
Let the incoming upstream loss gradient relative to the attention output $\mathbf{O}$ be $\frac{\partial \mathcal{L}}{\partial \mathbf{O}} \in \mathbb{R}^{n \times d_v}$.
A. Gradient with respect to Value Matrix $\mathbf{V}$
Since $O_{ij} = \sum_{q=1}^{n} A_{iq} V_{qj}$, we take partial derivatives:
$\frac{\partial \mathcal{L}}{\partial V_{kj}} = \sum_{i=1}^{n} \sum_{p=1}^{d_v} \frac{\partial \mathcal{L}}{\partial O_{ip}} \frac{\partial O_{ip}}{\partial V_{kj}} = \sum_{i=1}^{n} \frac{\partial \mathcal{L}}{\partial O_{ij}} A_{ik}$
Expressed as a clean matrix product:
$\frac{\partial \mathcal{L}}{\partial \mathbf{V}} = \mathbf{A}^T \frac{\partial \mathcal{L}}{\partial \mathbf{O}}$
B. Gradient with respect to Attention Matrix $\mathbf{A}$
Differentiating with respect to $A_{ik}$:
$\frac{\partial \mathcal{L}}{\partial A_{ik}} = \sum_{j=1}^{d_v} \frac{\partial \mathcal{L}}{\partial O_{ij}} V_{kj}$
Represented in matrix form:
$\frac{\partial \mathcal{L}}{\partial \mathbf{A}} = \frac{\partial \mathcal{L}}{\partial \mathbf{O}} \mathbf{V}^T$
C. Gradient with respect to Logits Matrix $\mathbf{S}$
Softmax maps lines dependently. Using classic Softmax derivatives:
$\frac{\partial A_{ij}}{\partial S_{ik}} = A_{ij}(\delta_{jk} - A_{ik}) \quad (\text{where } \delta_{jk} \text{ is Kronecker delta})$
Applying multivariate chain rule:
$\frac{\partial \mathcal{L}}{\partial S_{ik}} = \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} \frac{\partial A_{ij}}{\partial S_{ik}} = \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} A_{ij} (\delta_{jk} - A_{ik}) = \frac{\partial \mathcal{L}}{\partial A_{ik}} A_{ik} - A_{ik} \sum_{j=1}^{n} \frac{\partial \mathcal{L}}{\partial A_{ij}} A_{ij}$
Vectorizing using Hadamard products ($\odot$) and row-wise summation operators ($\mathrm{rowsums}$):
$\frac{\partial \mathcal{L}}{\partial \mathbf{S}} = \mathbf{A} \odot \left( \frac{\partial \mathcal{L}}{\partial \mathbf{A}} - \mathrm{rowsums}\left(\frac{\partial \mathcal{L}}{\partial \mathbf{A}} \odot \mathbf{A}\right) \mathbf{1}^T \right)$
Where $\mathbf{1} \in \mathbb{R}^n$ is an all-ones column vector.
D. Gradients with respect to Query $\mathbf{Q}$ and Key $\mathbf{K}$
Differentiating $\mathbf{S} = \frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}$:
$\mathrm{d}\mathbf{S} = \frac{1}{\sqrt{d_k}} \left( (\mathrm{d}\mathbf{Q})\mathbf{K}^T + \mathbf{Q}(\mathrm{d}\mathbf{K})^T \right)$
Converting to gradients:
$\frac{\partial \mathcal{L}}{\partial \mathbf{Q}} = \frac{1}{\sqrt{d_k}} \frac{\partial \mathcal{L}}{\partial \mathbf{S}} \mathbf{K}$
$\frac{\partial \mathcal{L}}{\partial \mathbf{K}} = \frac{1}{\sqrt{d_k}} \left( \frac{\partial \mathcal{L}}{\partial \mathbf{S}} \right)^T \mathbf{Q}$
We have derived all forward and backward equations representing self-attention loops inside the Transformer block.
7. Common Problems and Pitfalls (FAQ)
- Why does my multi-line equation or matrix fail to break lines, collapsing everything into a single row?
- Solution: In LaTeX, line breaks are achieved using double backslashes
\\. In a Markdown text editor, ensure there are no trailing whitespace characters or spaces immediately following the\\command. Also, make sure to leave an empty line before and after the math blocks for optimal rendering.
- Solution: In LaTeX, line breaks are achieved using double backslashes
- How do I write standard words (like "softmax" or "Attention") inside an equation without them rendering in ugly squished italics?
- Solution: By default, LaTeX treats sequential letters as a product of individual variables, rendering them in tight italics. To display words properly, use the roman font operator
\mathrm{softmax}or the text utility\text{Attention}to restore normal font weights and natural spacings.
- Solution: By default, LaTeX treats sequential letters as a product of individual variables, rendering them in tight italics. To display words properly, use the roman font operator
- Why does my subscript look wrong? For example,
W_attentiononly lowers the 'a', leaving the other letters on the main line.- Solution: The subscript (
_) and superscript (^) operators in LaTeX only apply to the single character directly following them. For multiple characters, you must wrap them in curly braces{}, such asW_{attention}ord_{k}.
- Solution: The subscript (