自然语言处理: 第四章Seq2Seq
理论基础
开始之前,首先提出一个问题,电脑是怎么识别人类的命令的,首先人们通过输入代码(编码) ,带入输入给计算机然后再经过处理(解码)得到最终的命令。所以可以看到这其实是一个编码 + 解码的过程。可以看到首先我们将初始的信息通过编码,得到涵盖全局的信息的特征然后再经过解码器去解码从而最终得到需要得到的信息,所以借鉴于Seq2Seq模型就借鉴于这个结构出现了。
Seq2Seq 是2014年由Llya 大神在 Sequence to Sequence Learning with Neural Networks 一文中提出的,其由几个重要的优势:
- 实现了端到端的学习(神经网络)
- 处理可变长度序列,Seq2Seq可以接受可变长度的序列的输入也可以生成可变长度的输出序列
- 信息的压缩和抽象表示,编码器将上下文的信息整合到一个向量里,然后解码器通过这个向量输出序列
- 可扩展性,很容易与其他神经网络做结合,可以处理很多复杂的问题和常见
适合处理的问题, 一些生成的问题:
- 机器翻译
- 文本摘要
- 对话系统
- 问答系统
- 语音识别
- 语音合成
不适合的问题:
-
序列标注,命名实体识别,关系抽取,词性标注
-
文本分类
-
文本相似性
局限性: -
无法储存长序列的信息,缺少局部的信息
-
lstm训练效率比较低下
代码实现
待更新