基于本文回答
0
评论

Transformer中有哪三种不同的Attention应用场景(Encoder中、Decoder中、Encoder-Decoder之间)

知识点图片

在Transformer模型中,注意力机制(Attention Mechanism)是其核心灵魂。具体来说,Transformer使用的是多头注意力(Multi-Head Attention),它通过计算查询(Query, Q)、键(Key, K)和值(Value, V)之间的映射关系来提取特征。

根据 Q、K、V 的来源以及是否使用掩码(Mask),Transformer将Attention巧妙地应用在了三个不同的场景中:


1. 编码器中的自注意力(Encoder Self-Attention)

  • 位置: 位于 Encoder 的每一层中(第一个子层)。
  • Q、K、V 的来源: 同源。Q、K、V 均来自 Encoder 前一层的输出(对于第一层则是输入序列的词嵌入加上位置编码)。即 Q=K=VQ = K = V
  • 掩码(Masking): 不使用因果掩码(只使用 Padding Mask 忽略填充位)。
  • 作用与意义:
    • 它允许输入序列中的每一个词去关注序列中的所有其他词(双向上下文)。
    • 目的: 帮助模型理解输入序列中词与词之间的语法关系、语义依赖(例如指代消解)。即使两个词在句子中相隔很远,自注意力也能直接捕捉到它们的联系,从而提取出极其丰富的全局特征表示。

2. 解码器中的掩码自注意力(Decoder Masked Self-Attention)

  • 位置: 位于 Decoder 的每一层中(第一个子层)。
  • Q、K、V 的来源: 同源。Q、K、V 均来自 Decoder 前一层的输出(对于第一层则是目标序列的词嵌入加上位置编码)。即 Q=K=VQ = K = V
  • 掩码(Masking): 必须使用因果掩码(Causal Mask / Subsequent Mask)
  • 作用与意义:
    • 在生成文本时,模型是自回归的(Auto-regressive),即必须从左到右一个词一个词地生成。
    • 目的: 掩码机制确保了在预测位置 ii 的输出时,模型只能看到位置 ii 及其之前的词,不能“偷看”位置 ii 之后的词(未来的信息)。它用于捕捉已生成序列内部的依赖关系。

3. 编码器-解码器之间的交叉注意力(Encoder-Decoder Cross-Attention)

  • 位置: 位于 Decoder 的每一层中(第二个子层,紧跟在掩码自注意力之后)。
  • Q、K、V 的来源: 异源
    • Q(Query): 来自 Decoder 中上一个子层(掩码自注意力层)的输出。代表解码器当前正在生成的内容的“需求”。
    • K(Key)和 V(Value): 来自 Encoder 最后一层的输出。代表对输入序列进行全面编码后的丰富信息。
  • 掩码(Masking): 不使用因果掩码(只使用 Padding Mask)。
  • 作用与意义:
    • 这是连接输入(Source)和输出(Target)的桥梁。
    • 目的: 允许 Decoder 在生成每一个目标词时,去动态地关注(Attend to)输入序列中最相关的部分。这非常类似于人类在翻译句子时,每写下一个词,眼睛就会去扫视原文中对应的词汇。

总结对比表

为了更直观地理解,可以用下表总结这三种场景的区别:

Attention 场景 中文名称 Q 的来源 K 和 V 的来源 是否屏蔽未来信息 (Causal Mask) 核心功能
Encoder 中 自注意力 (Self-Attention) 上一层 Encoder 输出 上一层 Encoder 输出 (可看全局) 理解输入序列的全局上下文和内部依赖。
Decoder 中 掩码自注意力 (Masked Self-Attention) 上一层 Decoder 输出 上一层 Decoder 输出 (只能看过去) 理解已生成序列的上下文,防止信息穿越。
Encoder-Decoder 之间 交叉注意力 (Cross-Attention) Decoder 当前层 Encoder 最终输出 (可看全局输入) 在生成当前词时,寻找输入序列中的相关信息(对齐)。
右滑查看面试常问