Attention

15
0
0
2023-02-10

Attention

注意力机制的本质思想

注意力机制模拟了人类视觉系统的工作方式,即能够在大量的信息中聚焦于某些重要的部分,而忽略其他不重要的部分。在机器学习领域,这意味着模型能够在处理输入数据时,根据当前的任务需求,更加关注某些关键的信息。

注意力机制的作用

  • 解决长距离依赖问题:与LSTM相比,注意力机制能够更好地处理长序列中的依赖关系,因为它可以在不同时间步长之间建立直接的连接,而无需通过时间步长之间的序列传递信息。

  • 并行计算能力:注意力机制允许模型并行处理序列中的所有元素,这大大提高了计算效率。

注意力机制的工作步骤

  1. 四种计算相似度方法

    1. 点乘(Dot-Product)

    在Transformer模型中,点乘是最常用的方法来计算Query和Key之间的相似度。具体步骤如下:

    • 给定一个Query向量Q和一个Key向量K_i(i代表第i个Key)。

    • 计算Q和K_i的点乘,即Q · K_i = Q^T K_i。

    • 点乘的结果是一个标量,它表示Query和第i个Key的相似度。

    2. 权重(Weighted Dot-Product)

    这种方法在点乘的基础上增加了一个权重矩阵来增强模型的灵活性:

    • 给定一个权重矩阵W和一个Key向量K_i。

    • 首先使用权重矩阵W对Key向量K_i进行线性变换,得到W K_i。

    • 然后计算变换后的Key向量与Query向量的点乘,即Q^T (W K_i)。

    3. 拼接权重(Concatenation with Weight)

    这种方法通过拼接Query和Key,然后使用一个权重矩阵来计算它们的相似度:

    • 给定一个Query向量Q和一个Key向量K_i。

    • 将Q和K_i拼接成一个更长的向量[Q; K_i]。

    • 使用权重矩阵W对这个拼接后的向量进行线性变换,即W^T [Q; K_i]。

    • 变换后的结果是一个标量,表示Query和第i个Key的相似度。

    4. 感知器(Perceptron)

    这种方法使用一个类似于小型神经网络的感知器来计算Query和Key之间的复杂关系:

    • 给定一个Query向量Q和一个Key向量K_i,以及两个权重矩阵W和U,和一个偏置向量V。

    • 首先分别对Q和K_i进行线性变换,得到W Q和U K_i。

    • 然后将这两个变换后的向量相加,并通过一个双曲正切函数(tanh)进行非线性变换,即tanh(W Q + U K_i)。

    • 最后,将这个结果与偏置向量V进行点乘,即V^T tanh(W Q + U K_i)。

    • 最终的结果是一个标量,表示Query和第i个Key的相似度。

  2. Softmax归一化

    • 计算出的相似度通过Softmax函数进行归一化,得到每个Value的权重系数α_i。

    • 除以√d_k是为了在维度d_k较大时,防止相似度分数过大导致Softmax函数的梯度消失问题。

  3. 加权求和

    • 最后,根据计算出的权重系数α_i,对所有的Value进行加权求和,得到最终的Attention向量。

通过这三个步骤,注意力机制能够有效地从大量的Value中筛选出与当前Query最相关的信息,并据此生成一个综合的表示。这种机制在自然语言处理、图像识别等领域都取得了显著的成功,尤其是在Transformer模型中,注意力机制已经成为处理序列数据的核心组件。