交叉注意力层的实质作用:连接编码器和解码器
交叉注意力层的实质作用
在Transformer架构里,交叉注意力层主要作用是连接编码器和解码器,让解码器能够利用编码器输出的上下文信息 。具体来说:
- 聚焦相关信息:以机器翻译任务为例,在将源语言句子翻译成目标语言时,交叉注意力能使解码器生成的每个词,都聚焦于源语言序列里最相关的部分。比如把 “I love you” 翻译成中文 “我爱你” 时,解码器在生成 “我” 这个词的时候,通过交叉注意力关注到源语言句子里的 “I” ,从而让翻译更准确合理。
- 弥补自注意力局限:自注意力能对解码器输入的内部依赖关系进行建模,但无法直接感知编码器的输出信息。而交叉注意力弥补了这个不足,使解码器能获取编码器对源序列处理后的信息,更好地指导输出生成。
交叉的部分
交叉注意力中,“交叉” 体现在查询(Query)、键(Key)和值(Value)的来源不同 。自注意力机制里,查询、键和值都来自同一个序列;而交叉注意力机制中,查询来自一个序列(通常是解码器的输入 ),键和值来自另一个序列(一般是编码器的输出 )。举例来讲,在文本生成任务中