用一个小例子理解 seq2seq 的本质

我们知道序列预测有 one-to-one、many-to-one、many-to-many、one-to-many 几种类型。在前面的文章中,我们做过的任务大多是将一个序列映射为单个输出的问题,比如 NER 是预测单个单词的标签,语言模型是一个一个预测下一个单词的问题。

现在我们要看输出是一个序列的情况,也就是 to-many,这类问题有个挑战是它的输入和输出都是序列,而且序列的长度是不固定的,为了应对这种挑战,于是有了 seq2seq 模型。

什么是 seq2seq 模型

seq2seq 即 Sequence-to-sequence 模型,通常指 Encoder Decoder LSTM 模型,它由两个循环神经网络(可以是 RNN、LSTM、GRU 等)组成:

  • 一个 Encoder 编码器,输入为文本的序列,输出为一个固定维度的“上下文向量”。
  • 一个 Decoder 解码器,输入为这个“上下文向量”,输出为目标序列。

其中 Encoder 可以是双向的循环神经网络,这样的话,有一串 LSTM 是正向地读取输入序列,还有一串是反向地读取输入序列。因为是双向,我们会得到两个隐藏层状态,一个来自正向,一个来自反向,通过双向结构可以对文本的信息有更加全面的掌握。

Encoder 还可以增加层数,例如可以是多层双向 LSTM,每层的输出是下一层的输入。在一些复杂的任务中,为了得到更好的结果就可以用多层结构。

而且任务不同时,Encoder 的结构也可以选择不同的神经网络,比如做自然语言处理任务时用 LSTM࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值