注意力机制
一;典型的注意力机制(例如在Transformer中使用的)实现过程通常包括以下几个步骤:
1、input的转化
将输入数据转化为一组键(key)、值(value)以及查询(query)向量。对于每一个输入数据,通常通过三个不同的线性变换层分别生成键、值和查询向量。这些向量可以看作是原始输入数据在不同空间的投影。
在注意力机制中,键(key)、值(value)和查询(query)向量的命名源于信息检索和数据库查询的概念如下。
键(Key)向量:
键向量代表了所有可能被查询到的信息的特征或索引。它类似于数据库中的键,用于标识和匹配相关信息。
值(Value)向量:
值向量是与键相关联的实际数据。它是查询到的信息的内容或答案。
查询(Query)向量:
查询向量代表了当前处理的输入数据的特征或意图。它是用来查找相关信息的"查询"。
2、计算注意力权重
对查询向量和键向量进行点积操作,然后除以一个缩放因子(通常是键向量的维度的平方根),以获得注意力分数。接着,对这些分数进行softmax操作,得到归一化的注意力权重。
3、加权求和
使用注意力权重对值向量进行加权求和,得到注意力输出。
4、组合注意力头
在多头注意力机制中,以上步骤会并行执行多次,每次使用不同的参数,得到多个注意力输出,然后将这些输出拼接起来,经过一个线性变换层,得到最终的输出。
对于输入
X
X
X,生成查询
Q
=
X
W
Q
Q =XW_Q
Q=XWQ,键
K
=
X
W
K
K =XW_K
K=XWK和值
V
=
X
W
V
V =XW_V
V=XWV,其中
W
Q
W_Q
WQ,
W
K
W_K
WK,
W
V
W_V
WV是可训练的权重矩阵。
计算注意力权重
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
k
)
V
\text{Attention}(Q,K,V)=\text{softmax} (\frac{{QK}^T}{\sqrt{d_k}})V
Attention(Q,K,V)=softmax(dkQKT)V,其中
d
k
d_k
dk是键向量的维度。
二;注意力机制含义解读
1、注意力机制的基本原理
注意力机制最初是在自然语言处理中的Transformer模型中引入的。它通过计算查询(query)、键(key)和值(value)之间的相似度来分配注意力权重。具体来说:
****Query(查询)**:通常表示当前时间步需要关注的信息。
****Key(键):表示存储在记忆中的信息的特征。
****Value(值)😗*表示存储在记忆中的实际信息,
注意力权重是通过Query和Key之间的相似度计算出来的,然后这些权重应用到Value上,以得到加权后的输出。
2、自适应事件融合中的Query和Key
在自适应事件融合中,趋势和事件预测的融合需要通过注意力机制来完成。具体来说:
**Query:**用来提取当前时间步趋势信息的特征。
**Key:**用来提取所有事件信息的特征。