Seq2Seq--Attention

本文探讨了Seq2Seq模型的原理,包括其encoder-decoder结构如何处理序列数据。通过对比有无Attention机制的差异,阐述了Attention如何解决长序列信息丢失的问题,提升模型在机器翻译等NLP任务上的表现。
部署运行你感兴趣的模型镜像

seq2seq模型由encoder-decoder结构组成,encoder将输入序列转化成一个固定长度的语义向量,该语义向量包含了输入的序列的信息,decoder再根据编码器生成的固定长度的向量转化输出序列,通常encoder及decoder均采用RNN结构如LSTM或GRU等,但是RNN机制实际中存在梯度消失的问题,对于较长的句子,我们很难寄希望于将输入的序列转化为定长的向量而保存所有的有效信息。Decoder 在解码时就无法获得输入序列足够多的信息,因此导致解码的精确度不够准确

seq2seq模型架构(无注意力机制)
在这里插入图片描述
RNN中的隐藏层的输出 ht 由 t 时刻的输入和 t-1 时间步隐层的输出决定ht=f(ht-1,xht)

编码器获得各个时刻的隐藏层状态后,把这些隐藏层的状态进行汇总,生成语义编码向量 C,q 表示某种非线性神经网络 C = q ({h1, · · · , hTx }),

在 解码阶段,需要根据给定的语义向量 C 和之前已经生成的输出序列 y1,y2,⋯,yt-1 来预测下一个输出的词 yt
在这里插入图片描述
由于 Decoder 是 RNN ,所以当前状态的输出只与上一状态和当前的输入相关
在这里插入图片描述
st 表示 Decoder 中 RNN 神经元的隐藏层状态,yt 表示前一时刻的输出,C 代表的是编码后的语义向量,而 g(⋅) 则是一个非线性的多层神经网络,最终输出 yt 的概率。

引入Attention机制

Attention机制是2014年google mind团队在论文《Recurrent Models of Visual Attention》提出,他们在RNN模型上使用了attention机制来进行图像分类。之后,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用attention机制在机器翻译任务上将翻译和对齐同时进行,接着attention机制被广泛应用在基于RNN/CNN等神经网络模型的各种NLP任务中。2017年,google机器翻译团队发表的《Attention is all you need》中大量使用了自注意力(self-attention)机制来学习文本表示

为了解决编码器输入长序列转化为定长语义编码向量导致信息丢失的现象,论文《Neural Machine Translation by Jointly Learning to Align and Translate》中提出使用Attention机制,以机器翻译的方法,作者在 RNN Encoder-Decoder的网络架构上引入了Attention机制同时进行翻译和对齐,并且Encoder使用了双向的RNN。

没有注意力机制的Encoder-Decoder,Encoder将输入的序列转化为固定长度的向量C,C作为每一时间步Decoder的输入,解码器解码出的序列对于输入中的所有的词是同权的,例如Encoder输入的英文句子是:我爱中国,目标的翻译结果是:I am china,。在未考虑注意力机制的模型当中,模型认为 这个词的翻译受到 我,爱,中国这三个词的影响是一样的。

加入注意力机制的Encoder-Decoder,模型则是要从输入序列中学习到每一个元素的重要程度, Encoder 将输入的序列元素进行编码时,得到的不在是一个固定的语义编码 C ,而是存在多个语义编码(如下图中的C1,C2,C3),且不同的语义编码由不同的序列元素以不同的权重参数组合而成,当Decoder需要翻译或预测下一个词的时候,模型将根据语义编码C中获取encoder每一隐藏层输出序列的重要程度,选择性地关注输入序列比较重要那一部分

在这里插入图片描述
定义条件概率
在这里插入图片描述
si等于前一时间步Decoder端隐状态si-1,前一时间步已经预测的输出yi-1,以及当前时间步的语义编码向量Ci,f是LSTM或GRU
在这里插入图片描述
编码器的语义语义向量C是编码器所有隐藏层的输出加权求和
在这里插入图片描述
权重aij是编码器的在j时间步隐状态hj与解码器i-1时刻RNN隐状态si-1拼接再进行归一化得到
在这里插入图片描述
而eij等于
在这里插入图片描述

Self-Attention

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

seq2seq-attention是指在seq2seq模型中引入了注意力机制(Attention)。在传统的seq2seq模型中,编码器将输入序列转化为一个固定长度的向量,然后解码器将这个向量解码成输出序列。而在seq2seq-attention模型中,解码器在每个时间步都会根据输入序列的不同部分给予不同的注意力权重,从而更加关注与当前时间步相关的输入信息。这样可以提高模型对输入序列的理解能力,进而提升预测的准确性。引入注意力机制后,seq2seq-attention模型在翻译、文本摘要和问答等任务上有着更好的表现。\[1\]\[2\] #### 引用[.reference_title] - *1* [NLP自然语言处理之RNN--LSTM--GRU--seq2seq--attention--self attetion](https://blog.youkuaiyun.com/weixin_41097516/article/details/103174768)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [自注意力机制(Self-Attention):从Seq2Seq模型到一般RNN模型](https://blog.youkuaiyun.com/qq_24178985/article/details/118683144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值