transformer自注意力公式推导
时间: 2024-12-26 15:13:00 浏览: 5
Transformer模型中的自注意力机制(Self-Attention)是一种计算每个输入序列元素与其他所有元素之间关联程度的过程,它是Transformer的核心组成部分。自注意力通过三个关键步骤:Query、Key和Value的计算,以及softmax函数的应用来进行。
假设我们有输入序列 \( Q \), \( K \) (Queries) 和 \( V \) (Values),其中 \( Q \in R^{n_q \times d_k} \), \( K \in R^{n_k \times d_k} \), \( V \in R^{n_v \times d_v} \),\( n_q \), \( n_k \), \( n_v \) 分别是查询、键和值的长度,\( d_k \), \( d_v \) 是维度大小。
1. **计算注意力得分**:
- 对于Q中的每个query和K中的每个key,我们会计算它们之间的相似度,这个过程通常使用点积(内积)进行:
\[ Attention(Q_i, K_j) = softmax(\frac{Q_iK_j^T}{\sqrt{d_k}}) \]
这里\( \sqrt{d_k} \) 是为了归一化,使得分数更平滑。
2. **加权求和**:
得到注意力得分后,会用这些分数组成权重向量,然后对V中的对应value进行加权求和,得到每条query的上下文表示:
\[ Context_i = \sum_{j=1}^{n_k} Attention(Q_i, K_j)V_j \]
3. **最终输出**:
最后的输出就是经过加权求和的context向量,它综合了整个序列的信息。
阅读全文