【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq

本篇文章将会带领大家了解什么是NLP模型当中的encoder-decoder和seq2seq。

一、什么是 Encoder-Decoder ?
【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第1张图片
1、Encoder-Decoder 模型主要是 NLP 领域里的概念。它并不特指某种具体的算法,而是一类算法的统称。Encoder-Decoder 算是一个通用的框架,在这个框架下可以使用不同的算法来解决不同的任务。

Encoder-Decoder 这个框架很好的诠释了机器学习的核心思路:将现实问题转化为数学问题,通过求解数学问题,从而解决现实问题。Encoder 又称作编码器。它的作用就是将现实问题转化为数学问题。
【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第2张图片

Decoder 又称作解码器,他的作用是:求解数学问题,并转化为现实世界的解决方案。

【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第3张图片

把 2 个环节连接起来,用通用的图来表达则是下面的样子:
【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第4张图片

值得注意的是:
1、缺点:不论输入和输出的长度是什么,中间的「向量 c」 长度都是固定的
2、根据不同的任务可以选择不同的编码器和解码器,可以是RNN,或者变体LSTM,GRU

只要是符合上面的框架,都可以统称为 Encoder-Decoder 模型。说到 Encoder-Decoder 模型就经常提到一个名词—— Seq2Seq。

二、什么是Seq2Seq?

Seq2Seq(是 Sequence-to-sequence 的缩写),就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于输入序列和输出序列的长度是可变的。Seq2Seq 属于 Encoder-Decoder 的大范畴。

三、Encoder-Decoder 有哪些应用?

1、文字到文字,如机器翻译,对话机器人,文章摘要,代码补全。
2、音频到文字,如语音识别。
3、图片到文字,图像描述生成。

四、Encoder-Decoder 缺点解决方式

最大的缺点是:当输入信息太长时,会丢失掉一些信息。就好比将一张 800X800 像素的图片压缩成 100KB,看上去还比较清晰。再将一张 3000X3000 像素的图片也压缩到 100KB,看上去就模糊了。
那么如何解决这种信息丢失的问题呢。
Attention 便是最佳利器。

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

Attention 模型的特点是 Eecoder 不再将整个输入序列编码为固定长度的中间向量 C ,而是编码成一个向量的序列。引入了 Attention 的 Encoder-Decoder 模型如下图:

【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第5张图片
这样,在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。而且这种方法在翻译任务中取得了非常不错的成果。

举个简单的例子,假设解码器的输出与编码器的输入、的关系较大,那么编码得到的向量就会更多的保存和的信息,同理得到其它的编码向量。因此,Attention机制的核心就是编码向量的计算,假设我们的编码器和解码器均使用的是循环神经网络,计算过程如图8所示。

【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq_第6张图片

我们以第一个编码向量的计算为例,首先用解码器的初始状态分别和编码器中每个时间步的输出计算相似度,得到输出,再通过一个softmax运算将转换成概率值,最后由公式计算得到编码向量。接下来再利用解码器中神经网络的输出计算编码向量,以此类推,直到解码过程结束。

你可能感兴趣的:(【深度学习 自然语言处理】10分钟读懂 NLP模型框架 Encoder-Decoder 和 Seq2Seq)