自注意力机制的数学公式
时间: 2024-07-21 15:00:42 浏览: 197
自注意力机制(Self-Attention Mechanism)是Transformer模型的核心组成部分之一,它主要用于处理序列数据中的依赖性问题。在Transformer中,每个位置的输入向量会与其他所有位置交互并计算加权和,生成新的表示。其核心思想在于计算当前位置与所有其他位置之间的相关度。
数学上,给定一个输入序列 \( \mathbf{X} = [\mathbf{x}_1, \mathbf{x}_2, ..., \mathbf{x}_n] \),其中每个元素是三维张量(\( d_{model} \)维的查询、键和值),自注意力可以分为三个步骤:
1. **查询(Q)**、**键(K)** 和 **值(V)** 计算:
- 查询向量由线性变换得到:\(\mathbf{Q}_{i} = \mathbf{W}_Q \mathbf{x}_i\)
- 键向量同样经过线性变换:\(\mathbf{K}_{j} = \mathbf{W}_K \mathbf{x}_j\)
- 值向量也经过线性变换:\(\mathbf{V}_{j} = \mathbf{W}_V \mathbf{x}_j\)
2. **注意力得分(Attention Scores)**:
- 通常采用点积相乘的方式计算注意力分数,即:\(\mathbf{A}_{ij} = \frac{\mathbf{Q}_{i} \cdot \mathbf{K}_{j}^T}{\sqrt{d_k}}\),其中 \(\sqrt{d_k}\) 是为了归一化。
3. **注意力权重(Attention Weights)**:
- 使用softmax函数将注意力得分转换为概率分布,表示查询位置 \( i \) 对应所有键的位置 \( j \) 的关注程度:\(\alpha_{ij} = \text{softmax}(\mathbf{A}_{ij}) = \frac{\exp(\mathbf{A}_{ij})}{\sum_j \exp(\mathbf{A}_{ij})}\)
4. **上下文向量(Context Vector)**:
- 最后,根据注意力权重对值向量求加权和,形成当前位置的上下文表示:\(\mathbf{Z}_{i} = \sum_j \alpha_{ij} \mathbf{V}_{j}\)
整体公式可以写为:
\[
\mathbf{Z} = \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q} \mathbf{K}^{T}}{\sqrt{d_k}}\right) \mathbf{V}
\]
其中,\( \mathbf{Z} \) 是输出的新序列,而 \(\mathbf{W}_Q\), \(\mathbf{W}_K\), \(\mathbf{W}_V\) 分别是不同参数矩阵。
阅读全文