序列模型中的注意力机制

注意力机制(attention mechanism)被引入到NLP的Sequence to Sequence模型中,以解决长序列编码信息丢失和解码时上下文区分不明确的问题。在RNN Encoder-Decoder框架下,通过计算加权平均的隐藏状态向量ci,改善了传统模型中固定长度向量c的表现。解码器的当前时刻输出yt依赖于上一时刻的输出yt-1、状态st和加权上下文向量ct,其中权重αij根据输入序列中各部分的相关性动态分配。

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

现在很多研究的NLP问题都可以转换成一个Sequence to Sequence模型来解决,比如说机器翻译,智能问答,语音识别等。
Sequence to Sequence模型由一个encoder和一个decoder组成,encoder完成编码工作,将不同的输入编码成一个定长的向量,decoder则完成解码工作,对编码器的结果进行解码输出,例如在中英文翻译中,首先编码器将中文编码成一个向量表示,接着解码器把该向量解码成一个英文表示 ,完成翻译过程。

但是序列模型会有两个问题,不管输入有多长,它都会把它编码成一个固定长度的向量,若句子比较长,则编码结果会可能会损失较多想信息,这将不利于接下来的解码工作;其次在解码的时候,每个时刻的输出在解码过程中用到的上下文向量是相同的,没有做区分,这也会给解码带来问题。为了解决这样的问题,会给模型加入注意力机制(attention mechanism)。

RNN Encoder-Decoder
这里写图片描述
首先讲一下简单的RNN 编码解码器框架,给定输入x =( x1,x2,...,xT ),编码器会利用RNN将其转换成一个向量c:


ht=f(xt,ht1)
c=q(h1,h2,...,hT)

其中, ht 是t时刻的隐状态,c是由整个序列得到的向量表示。
接下来,解码器通过语言模型生产一个新的序列:

p(y)=t=1Tp(yt|y1,y
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值