PyTorch学习7--Seq2Seq + Attention

Seq2Seq

在Seq2Seq结构中,编码器Encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由解码器Decoder解码。在解码器Decoder解码的过程中,不断地将前一个时刻 [公式] 的输出作为后一个时刻 [公式] 的输入,循环解码,直到输出停止符为止。

  • Encoder 是一个 GRU
  • Decoder 也是一个 GRU
  • 训练采用cross entropy loss,与语言模型类似
  • 与经典RNN结构不同的是,Seq2Seq结构不再要求输入和输出序列有相同的时间长度!

在这里插入图片描述

注意力机制

简单来说,注意力本质上就是一个经过softmax层输出的向量。早期神经网络中,Encoder会通过RNN将最后一个step的隐藏状态向量c作为输出,Deocder利用向量c进行翻译。这样做有一个缺点,翻译时过分依赖于这个将整个sentence压缩成固定输入的向量。输入的sentence有可能包含上百个单词,这么做不可避免会造成信息的丢失,翻译结果也无法准确了。

Bahdanau Attention

  • Encoder是一个双向RNN
  • Attention Function
    在这里插入图片描述
    LuongAttention
    与BahdanauAttention整体结构类似,LuongAttention对原结构进行了部分调整,如下
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值