NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

语言模型简单来说就是一串词序列的概率分布

 

生成式聊天机器人中常见的是seq2seq模型

是一个encoder和decoder的结构

 

当前最为著名的Google翻译,就是完全基于Seq2Seq+Attention机制开发出来的

 

 

Seq2Seq模型

         所谓Seq2Seq(Sequence to Sequence), 就是一种能够根据给定的序列,通过特定的方法生成另一个序列的方法。它被提出于2014年。它的输入是一个序列,输出也是一个序列

 

Seq2Seq模型又叫Encoder-Decoder模型,是RNN一个重要的变种

典型的RNN输入和输出序列是等长的,Seq2seq模型的输入输出是不等长的(这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了)

为此,Encoder-Decoder结构先将输入数据编码成一个上下文向量c,拿到c之后,就用另一个RNN网络对其进行解码

 

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

 

Seq2Seq模型

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

这个例子是一个邮件的发送

 

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

翻译的例子

 

Seq2Seq模型的Encoder

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

一堆输入,通过一个编码方式,最终产生了一个语义向量C

 

Seq2seq模型的Decoder

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

Encoder得到的结果C,然后通过解码,得到结果

 

Seq2Seq模型的训练过程

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

 

从输入x1到xT转变成C,最终对于C去做softmax对于ht时刻的隐藏状态,去求一个最大似然的概率分布,去找到最合适的y

也就是由输入预测出最大概率的输出 

 

Seq2Seq模型的不足

①长度限制

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

一般句子长度是10-20左右是最好的

 

②压缩损失信息

NLP自然语言处理(八)—— 生成式聊天机器人(Seq2Seq模型)

在进行编码的时候,往往是最后一个词它占的比重较大,解码的时候也是

就会损失一些信息

 

Seq2Seq模型的改进

①Attention机制

②Beam Search

    集束搜索