seq2seq attention

seq2seq attention 模型

seq2seq是NLP(自然语言处理)中非常经典的模型之一,用途很广,可以用于机器翻译,自动摘要,对话系统等。seq2seq全称是sequence to sequence,简单可以理解成“从一个序列映射到另外一序列”,比如翻译系统,就类似于从一个语言序列映射到另外的语言序列。

在讲seq2seq模型前,首先要了解一些NLP中的基本概念以及基础模型:

1. Vocabulary ID:词汇表ID,对每个单词创建唯一ID,通过ID来确定单词。

2. Word Embedding: 词向量是由一组数字组成的向量,它可以将词与向量建立起一一映射关系,如果把向量理解成一个多维空间坐标,那么每个词在多维空间中都有唯一坐标进行表示,那坐标之间的距离可以代表词与词的相似程度,通过这种方式可以将词语通过向量的方式进行表示,将字符串转成数值放入到模型中进行训练。

seq2seq attention_第1张图片

seq2seq attention_第2张图片

3. RNN,LSTM:RNN和LSTM是常见的用于处理序列数据的神经网络,下图是LSTM经典模型框架:h称为隐藏状态,C称为细胞状态。

seq2seq attention_第3张图片

在了解完基础概念后,我们再来看一下seq2seq的基本框架(以翻译举例):

GRU是RNN模型中的一种,全称是Gate Recurrent Unit(门循环单元),它是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。

整个框架分为两部分,左边的部分称之为encoder,右边的部分称之为decoder。

Encoder:将每个词转成Word Embedding后,分别输入到GRU网络中进行学习。

Decoder:将Encoder的输出传入到Docoder中,对第一个词进行预测,预测的结果作为下一个词预测的输入,由于我们是有监督学习,因此通过训练会实现一个encoder 到 decoder 的映射过程。

seq2seq attention_第4张图片

事实上,seq2seq用到的技术以及细节远远比这要复杂,其中包括attention机制,beam search,teacher forcing,接下来就一一进行讲解。

Attention:

在基础框架基础上,引入Attention机制(注意力机制),可以很好的提升整体模型的性能,attention起到的作用就是将decoder中的每个词与encoder中的每个词建立权重关系,比如下图所示,decoder中的“我”与encoder中的每个词都建立的权重关系,其中“I”的权重系数为0.5。跟之前基础 seq2seq 模型的区别,就是给 decoder 多提供了一个输入“c”(context vector)。因为 encoder把很长的句子压缩只成了一个小向量“u”,decoder在解码的过程中没准走到哪一步就把“u”中的信息忘了,所以在decoder 解码序列的每一步中,都再把 encoder 的 outputs 拉过来让它回忆回忆。但是encoder输入序列中每个单词对 decoder 在不同时刻输出单词时的帮助作用不一样,所以就需要提前计算一个 attention score 作为权重分配给每个单词,再将这些单词对应的 encoder output 带权拼接在一起,就变成了此刻 decoder 的另一个输入“c”。

seq2seq attention_第5张图片

后面的详细介绍,请关注原文“seq2seq attention”

你可能感兴趣的:(seq2seq,深度学习,人工智能,自然语言处理)