注意力机制的两种常用形式
注意力机制是现代自然语言处理模型(如Transformer)的核心组件。最常用的两种注意力机制是加性注意力(Additive Attention)和点积注意力(Dot-product Attention)。下面详细解释并举例说明这两种注意力机制的工作原理和区别。
1. 加性注意力(Additive Attention)
加性注意力通过一个前馈神经网络(feed-forward network)计算查询(query)和键(key)之间的相似度,具体步骤如下:
-
输入:查询 Q Q Q和键 K K K。
-
计算相似度:通过一个前馈神经网络计算相似度:
e i j = v ⊤ tanh ( W q Q i + W k K j ) e_{ij} = \text{v}^\top \tanh(\text{W}_q Q_i + \text{W}_k K_j) eij=v⊤tanh(WqQi+WkKj)
其中, W q \text{W}_q Wq和 W k \text{W}_k Wk是可学习的权重矩阵, v \text{v} v是一个可学习的向量。 -
计算注意力权重:将相似度通过softmax函数进行归一化:
α i j = exp ( e i j ) ∑ k exp ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k} \exp(e_{ik})} αij=∑kexp(eik)exp(eij) -
加权求和:利用注意力权重对值(value) V V V进行加权求和,得到输出:
Attention ( Q , K , V ) = ∑ j α i j V j \text{Attention}(Q, K, V) = \sum_{j} \alpha_{ij} V_j Attention(Q,K,V)=j∑αijVj
2. 点积注意力(Dot-product Attention)
点积注意力通过计算查询 Q Q Q和键 K K K的点积来衡量相似度,并加上一个缩放因子,具体步骤如下:
-
输入:查询 Q Q Q和键 K K K。
-
计算相似度:通过计算点积并除以缩放因子 d k \sqrt{d_k} dk:
e i j = Q i ⋅ K j ⊤ d k e_{ij} = \frac{Q_i \cdot K_j^\top}{\sqrt{d_k}} eij=dkQi⋅Kj⊤
其中, d k d_k dk是键的维度。 -
计算注意力权重:将相似度通过softmax函数进行归一化:
α i j = exp ( e