多头注意力层用到的公式是什么?
时间: 2024-09-23 11:06:25 浏览: 65
使用多头注意力机制实现数字预测
多头注意力(Multi-Head Attention)是一种将注意力机制分解为多个独立头部(heads)的方式。每个头部负责处理输入序列的一部分信息,然后所有头部的输出再被综合。其核心公式可以分为以下几个步骤:
1. **Query、Key 和 Value 的计算**:
对于每组输入(query, key, value),首先会进行线性变换得到Q, K, V(表示查询、键和值):
```
Q = Wq * query
K = Wk * key
V = Wv * value
```
其中Wq, Wk, Wv是权重矩阵,对应不同的头部。
2. **注意力分数(Attention Scores)**:
每个头部计算Query和Key之间的相似度(通常是点积除以键的维度开根号,再加上一个常数项)作为注意力分数:
```
Attention_scores[i] = softmax(Q_i * K_i^T / sqrt(d_k))
```
3. **加权求和(Weighted Sum)**:
将注意力得分应用于Value上,每个头部都有自己的得分,所以对每个头部都做一次求和:
```
Attention_output[i] = Attention_scores[i] * V
```
4. **多头注意力结果拼接**:
最终,将所有头部的结果concatenated(拼接)起来,并通过另一个线性变换(通常用一个单一的权重矩阵)整合成最终的关注向量:
```
Multi_head_attention = Concatenate(Attention_output[1], ..., Attention_output[num_heads]) * Wo
```
Wo是最后一个线性变换的权重矩阵。
阅读全文