自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq

自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq

  • 一、什么是Encoder-Decoder?
  • 二、什么是Seq2Seq?
  • 三、Encoder-Decoder 有哪些应用?
    • 3.1、文本 - 文本
    • 3.2、音频 - 文本
    • 3.3、图片 - 文本
  • 四、Encoder-Decoder 的缺陷
  • 五、Attention 解决信息丢失问题
  • 参考

一、什么是Encoder-Decoder?

Encoder-Decoder模型主要是NLP领域里的概念。它并不是特指某种具体的算法,而是一类算法的统称。

Encoder-Decoder算是一个通用的框架,在这个框架下可以使用不同的算法来解决不同的任务。

Encoder-Decoder这个框架很好的诠释了机器学习的核心思路:
将现实问题转化为数学问题,通过求解数学问题,从而解决现实问题。

Encoder又称作编码器。它的作用就是:将现实问题转化为数学问题。
自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第1张图片
Decoder又称作解码器,它的作用是:求解数学问题,并转化为现实世界的解决方案。
自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第2张图片
把两个环节连接起来,用通用的图来表达则是下面的样子:
自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第3张图片
关于 Encoder-Decoder,有两点需要说明:

  1. 不论输入和输出的长度是什么,中间的向量c长度都是固定的。但这也是它的缺陷,后文会继续说明。
  2. 根据不同的任务可以选择不同的编码器和解码器,可以是一个RNN,但通常是其变种LSTM或者GRU。

只要是符合上面的框架,都可以统称为Encoder-Decoder模型。

谈到Encoder-Decoder模型就经常提到一个名字Seq2Seq。



二、什么是Seq2Seq?

Seq2Seq(是Sequence-to-sequenc的缩写),就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于:输入序列和输出序列的长度是可变的。如下图:

自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第4张图片
如上图:输入了6个汉字,输出了3个英文字母。输入和输出的长度不同。

Seq2Seq的由来:
Seq2Seq框架提出来之前,深度神经网络在图分类等问题上取得了非常好的效果。在其擅长解决的问题中,输入和输出通常都可以表示为固定长度的向量,如果长度稍有变化,会使用补零等操作。

然而许多重要的问题,例如机器翻译、语音识别、自动对话等,表示成序列后,其长度事先并不知道。因此如何突破先前深度神经网络的局限,使其可以适应这些场景,成为了13年以来的研究热点,Seq2Seq框架应运而生。

Seq2Seq和Encoder-Decoder的关系:
Seq2Seq不特指具体方法,满足输入序列、输出序列的目的,都可以统称为Seq2Seq模型。(强调目的)

而Seq2Seq使用的具体方法基本都属于Encoder-Decoder模型的范畴。(强调方法)

seq2Seq是具体的模型,encoder-decoder是模型设计“范式”



三、Encoder-Decoder 有哪些应用?

  1. 文本 - 文本:机器翻译,对话机器人,文章摘要,代码补全
  2. 音频 - 文本:语音识别
  3. 图片 - 文本:图像描述生成

3.1、文本 - 文本

文本到文本(文字到文字)是最典型的应用,其输入序列和输出序列的长度可能会有较大的差异。

Google发表的用Seq2Seq做机器翻译的论文《Sequence to Sequence Learning with Netural Networks》

自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第5张图片


3.2、音频 - 文本

语音识别也有很强的序列特征,比较适合Encoder-Decoder模型。

Google发表的使用Seq2Seq做语音识别的论文《A Comparison of Sequence-to-sequence Models for Speech Recognition》

自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第6张图片


3.3、图片 - 文本

通俗的讲就是看图说话,机器提取图片特征,然后用文字表达出来。这个应用是计算机视觉和NLP的结合。

图像描述生成的相关论文:Sequence to Sequence - Video to Text

自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第7张图片


四、Encoder-Decoder 的缺陷

前面提到:Encoder(编码器) 和(解码器)之间只有一个向量c来传递信息,且c的长度固定。

我们类比为 压缩和解压 的过程:

将一张800X800像素的图片压缩成100KB,看上去还比较清晰。再将一张3000X3000像素的图片也压缩到100KB,那么看上去就相对比较模糊了。
自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第8张图片
Encoder-Decoder 就是类似的问题:当输入信息太长时,会丢失掉一些信息。


五、Attention 解决信息丢失问题

Attention机制就是为了解决:信息过长,信息丢失 的问题。

Attention模型的特点是Encoder不再将整个输入序列编码为固定长度的中间向量C,而是编码成一个向量的序列。引入了 Attention 的 Encoder-Decoder模型如下:
自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq_第9张图片
这样,在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。而且这种方法在翻译任务中取得了非常不错的成果。



参考

Encoder-Decoder结构
seq2seq模型 和 encoder-decoder模型有什么异同?(zhihu)
Encoder-Decoder 和 Seq2Seq
《Sequence to Sequence Learning with Netural Networks》
《A Comparison of Sequence-to-sequence Models for Speech Recognition》
Sequence to Sequence - Video to Text

你可能感兴趣的:(自然语言处理与文本检索,自然语言处理,人工智能,深度学习,attention)