笔记(总结)-注意力机制(Attention)简述

本文介绍了注意力机制在解决Sequence-to-Sequence模型中的问题,特别是针对Encoder-Decoder架构中的长度依赖问题。通过引入Attention,Decoder在生成不同输出时能根据需要选择相关输入序列的部分信息,提高了模型的表达能力。Attention机制的核心是计算每个输入序列位置的权重,并通过加权求和得到上下文向量。这一思想为模型提供了更灵活的关注机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要针对注意力(Attention)机制进行简要描述。Attention是为了解决Sequence-to-Sequence中的一些问题而提出的,本身的逻辑十分简洁。Attention的产生过程反映了解决问题的一种最直接的思路,正如Resnet中提出“残差”的概念一样,简单直接的就能解决问题,而且思路没有绕任何弯子。这在科研工作中是十分难得的。下面结合机器翻译问题来回顾下这整个过程。


Seq2seq

先回顾下Sequence-to-Sequence,这是RNN-Based模型架构中错开的many to many的一种应用,主要是为了将一个序列转换为另一个序列,即下图中第四种:
这里写图片描述

这种架构也叫Encoder-Decoder模型。具体来说,Encoder部分为红色block及对应的绿色block,Decoder部分为蓝色block及对应的绿色block。Seq2sep主要想解决的是输入输出序列不等长的问题,它通过Encoder将输入序列编码成一个固定的向量cc,然后将 c 作为Decoder的初始隐状态输入,解码为输出序列。即:

但这样的架构是有问题的。主要有两点:

  1. Encoder将所有输入序列编码成一个统一的语义特征cc,再将其运用到Decoder中。这就要求 c 必须能很好地概括输入序列,然而RNN模型是有长度依赖的,当序列过长时难以概括所有信息。
  2. 不同的Decoder输出使用的是同样的cc,但实际中并非如此。以机器翻译为例,翻译目标词的第一个词往往和源语言中第一个词有较大的关联,而不太关心其它位置的词。Decoder中不同的输出需要的是不同的输入特征,且不一定需要编码了整个输入序列的 c

因此,最理想的情况是,在解码输出不同的词时,能够从输入序列中自动选择相关联的词,并且提高这部分词在建模时的特征权重。这样就得出了Attention Model的动机。


Attention Mechanism

由上文Seq2seq的缺陷可以知道,要解决第一个问题,即Decoder使用的是统一的cc,需要在不同的时刻输入不同的 c i ;要解决第二个问题,即Decoder不同时刻的输出关注输入序列的不同部分,需要ci

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值