分享

Transformer架构:自注意力机制包含哪些步骤?

 天承办公室 2023-10-13 发布于河南

自注意力机制将一个词与句子中的所有词联系起来,以便更好地理解这个词。为了计算自注意力值,我们使用了3个矩阵,即查询矩阵、键矩阵和值矩阵。

Transformer架构:自注意力机制包含哪些步骤?

自注意力机制(Self-Attention Mechanism)是 Transformer 架构中的核心组件,它允许模型为输入序列中的每个元素分配不同的权重,从而捕获序列内的长距离依赖关系。

Transformer架构:自注意力机制包含哪些步骤?

以下是自注意力机制的步骤:

1. 计算查询(Query)、键(Key)和值(Value)

对于给定的输入 X,我们使用三个不同的权重矩阵

Transformer架构:自注意力机制包含哪些步骤?

来计算查询、键和值。这些权重矩阵在训练过程中是可学习的参数。

Transformer架构:自注意力机制包含哪些步骤?

2. 计算注意力分数

对于输入序列中的每个词,使用其查询与所有键计算一个点积来得到注意力分数。

Transformer架构:自注意力机制包含哪些步骤?

3. 缩放注意力分数

为了稳定训练和提高泛化能力,将注意力分数除以键向量维度的平方根。假设键的维度为

Transformer架构:自注意力机制包含哪些步骤?

,则缩放因子为

Transformer架构:自注意力机制包含哪些步骤?

Transformer架构:自注意力机制包含哪些步骤?

4. 应用 Softmax 函数

对缩放后的注意力分数应用 Softmax 函数,得到注意力权重。

Transformer架构:自注意力机制包含哪些步骤?

5. 计算加权的值

使用上一步得到的注意力权重对值进行加权求和。

Transformer架构:自注意力机制包含哪些步骤?

现在,将结果与值矩阵V相乘,得到最终的注意力矩阵Z。注意力矩阵Z 就是值向量与分数加权之后求和所得到的结果。

Transformer架构:自注意力机制包含哪些步骤?
Transformer架构:自注意力机制包含哪些步骤?

6. 多头自注意力

在 Transformer 架构中,通常使用多头自注意力,意味着上述过程会并行地在多个不同的投影空间(权重矩阵集)中进行。最后,所有头的输出会被拼接在一起并通过一个线性变换。

为了确保结果准确,我们不能依赖单一的注意力矩阵,而应该计算多个注意力矩阵,并将其结果串联起来。使用多头注意力的逻辑是这样的:使用多个注意力矩阵,而非单一的注意力矩阵,可以提高注意力矩阵的准确性。

可以直接将所有的注意力头(注意力矩阵)串联起来,并将结果乘以一个新的权重矩阵W0,从而得出最终的注意力矩阵:

Transformer架构:自注意力机制包含哪些步骤?

自注意力机制的计算步骤如图所示:

Transformer架构:自注意力机制包含哪些步骤?

这个机制使模型能够根据其内部计算的权重捕获输入序列中不同位置之间的关系,从而在许多任务中都取得了出色的表现。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多