自然语言处理-第十二期-Chatbot聊天机器人开篇

背景

自然语言处理-第十二期-Chatbot聊天机器人开篇

这周末本来打算继续研究NLP的,但是碰到了一个 Chatbot(聊天机器人)的模型。真的很有意思。想想自己能做一个类似微软小冰一样的妹子就很兴奋。

本来想展示下自己与机器模型的聊天记录。但是这个周末模型折腾了很久,而且我的电脑也实在跑不动那么大的数据库。所以后续给大家带来。本篇旨在阐述自己的思考及该模型的一些概况。

Chatbot

相信大家对微软小冰都有印象,能够聊天能够扯淡。虽然其黑化成种族主义,但是体验过的同学都会有感觉,她与以前的机器人不同。或者我们能给到小冰“能扯淡”、“个性化”等等标签。但是它与传统的chatbot不同在哪里呢?

另外有必要说明的是,目前有两种chatbot:一种带任务的如Siri,一种不带任务瞎扯淡就行的 如小冰。 我们所有提到的chatbot都是小冰类型的。

传统的Chatbot

说是传统机器人,其实现在大部分的应用上面都是这种。这种机器人其实就是一个简单的Mapping过程,在设计时穷举或者建立一个问题库。 大家接触最多的应该是 淘宝的-旺旺机器人。这种其实就是识别关键字自动回复或者就是简单回复。

感觉传统的chatbot比较死板就对了


神经网络Chatbot

从下图可以看出来小冰与传统机器人至少在以下几个方面不同:

  • 其可以应对开放性的问题,并且能够给出答复;
  • 其答复的字数不限定;
  • 感觉该chatbot是有一定个性,即语言倾向的;
  • 从某种程度上,其回复的是人类的语言;
自然语言处理-第十二期-Chatbot聊天机器人开篇

模型

下图,可以很形象或者很简单的说明,chatbot的机制。下图可以理解为一个聊天的过程,也可以看作一个训练的过程。

自然语言处理-第十二期-Chatbot聊天机器人开篇

那么实现以上过程的模型有哪些不同呢:

首先,与以前遇到的神经网络模型不同,前期网络模型多用于概率判断或者图像识别。该模型输入值为 一个文本,输出值为一个文本;

其次,如果大家已经熟悉了Word Embedding 的过程(请参考NLP系列第四期),那么可以知道每个词就是一个向量。那么换个角度,上面的问题是,输入一系列带顺序的向量,输出一系列带顺序的向量;

然后,输出的文本,字数不限定;


Chatbot实现以上点,所用的模型是Seq2Seq模型。从下图至少可以看出,该模型采用了两个 循环神经网络来处理文本输入和输出。对于Seq2Seq模型,就不在开篇中过多介绍,会在后续带来

自然语言处理-第十二期-Chatbot聊天机器人开篇

下期预告

本期插了个队,Chatbot模型可以带来开放性的语言处理和问答处理。是一个很有意思的模型。希望下一期能整好模型,给大家带来我与chatbot的对话。


分享到:


相關文章: