文本生成相关算法总结

Seq2Seq

  2014年Google Brain团队提出基于深度学习的Seq2Seq模型。如图1所示,该模型在结构上主要分为两部分:编码器Encoder、解码器Decoder。Encoder部分使用某一深度学习神经网络读取输入关键字或句子,将关键字或句子压缩到一个固定的维度;Decoder部分的深度学习网络则读取压缩后的编码,将其解压为目标句子。其中Encoder和Decoder部分的深度学习网络可以由CNN、RNN、LSTM、注意力机制等进行替换、组合。接下来对常见的深度学习算法进行介绍。

CNN

  卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks)。CNN通过卷积核从数据对象中提取特征,间隔地对特征作用池化,得到不同层次的由简单到复杂的特征,常用于图像任务。但通过文本的分布式向量表示,将一句话或一个词用一个实数矩阵或向量表示后,就可以使用CNN在文本任务中进行卷积应用。

RNN

  循环神经网络(Recurrent Neural Network, RNN)是一类用于处理序列数据的神经网络,这里序列不只是局限于时间这一范畴,也可以拓展至文字序列。其特点是隐藏层之间的神经元是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
  相关介绍链接:
https://www.cnblogs.com/wisteria68/p/13488819.html
https://www.cnblogs.com/wisteria68/p/13491170.html

LSTM

  长短期记忆网络(Long Short-Term Memory networks, LSTM)是对循环神经网络的改进。相比于RNN模型LSTM在神经细胞的设计上添加了三个“门”结构,可以让信息有选择性地影响循环神经网络中每个时态的状态。所谓的“门”结构就是一个使用sigmoid神经网络和一个按位做乘法的操作,这两个操作合在一起就是一个“门”结构。为了使循环神经网络更有效地保存长期记忆,“遗忘门”、“输入门”至关重要,它们是LSTM的核心。遗忘门的作用是让循环神经网络“忘记”之前没有用的信息。在“忘记”了部分之前的状态后,它还需要从当前的输入补充最新的记忆。这个过程就是“输入门”完成的。LSTM解决了一般RNN网络存在的长期依赖问题。
  相关介绍链接:
https://www.cnblogs.com/wisteria68/p/13656001.html

注意力机制

  注意力机制是一种高效获取信息的方式。一方面,它使得解码器可在每一步主动查询最相关的信息,暂时忽略不相关的信息;另一方面它大大缩短了信息流动的距离。在本质上可描述为:将查询(query)和键-值对(key-value pairs)映射(mapping)到输出(output);其中,查询、键、值和输出都是向量,输出为值的加权和,分配给每个值的权重则由查询与对应的键进行计算。
  对于不同深度学习算法的优缺点,使用表1进行展示。

  基于注意力机制模型的相关介绍链接:
https://www.cnblogs.com/wisteria68/p/13640422.html
https://www.cnblogs.com/wisteria68/p/13647917.html

总结

  在可并行化设计方面CNN与注意力机制相较于其它深度学习模型易实现;在捕捉上下文及语序信息方面RNN、LSTM具有天然的优势,但对于捕捉长距离的上下文及语序信息时模型较复杂。CNN与注意力机制尽管在结构设计上对上下文语序的捕获不占优势,但也可以通过后续模型结构的改进来实现。

原文地址:https://www.cnblogs.com/wisteria68/p/13596146.html