RNN的更多应用

Many to one

RNN不仅可以输入一个序列,输出一个序列,也可以输入一个序列,输出一个向量,通常是取输出序列的最后一个向量,这样的结构称为Many to one。

常用这种结构的任务有:

  • 情感分析,讲一句话作为序列输出网络,输出只取最后一个,更具输出判断这句话的态度是积极的还是消极的
  • 关键字提取,用最后一个输出表示这句话的关键字

Many to Many(shorter)

输入输出都是序列,但输出的序列比输入的序列短。常用于语音识别,因为一段话用语音表示肯定比这段话更长。

语音识别中需要使用CTC算法解决重复问题,CTC算法可阅读:带你看懂CTC算法 - 知乎 (zhihu.com)

Seq2seq

输入为一个序列输出为一个不定长序列,常用于机器翻译,将一句中文翻译成英文,那么这句英文的长度有可能比中文短。

该模型还常用于聊天机器人和问答系统,比如:

8CGK2.png

模型将前面的输入作为下一次的输入,这样就能输出任意长的序列。

除此之外还可以引入注意力机制强化模型效果,注意力机制可参考: 注意力机制到底是什么? - 知乎 (zhihu.com)

CNN+RNN

通过预训练的CNN提取图片特征,接着通过RNN将特征变为文字描述。