大家好!今天分享的内容是关于聊天机器人的那些事儿。说起聊天机器人大家都不陌生,生活中有很多,像智能音响,那种是属于语音类的聊天机器人,我们主要学习文字类的聊天机器人,这个领域,最有代表性的就是微软小冰,相信大家都好奇小冰是怎么做的。
从0开始到进入我们的基于深度学习的聊天机器人。
我们整体的课程内部分主要分为五个部分,非常全面,带领你们进入到聊天机器人这个比较热门的行业:
一、什么是聊天机器人
二、NLP基础和Pytorch基础
三、检索类聊天机器人&生成式聊天机器人
四、基于Pytorch聊天机器人代码实战
五、聊天机器人发展方向
什么是聊天机器人
到底什么才是聊天机器人?Chatbots
如果从定义看呢 聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。诞生于 20世纪80年代,早期比较经典的聊天机器人,有两个,一个呢 ELIZA (1966),另一个呢是PARRY(1972)主要应用于机器翻译。
随着时间的前进 和科技的快速发展,聊天机器人得到了很大的发展,这里面呢,比较著名的机器人Alice艾丽斯。1995年11月23日,艾丽斯Alice诞生了。艾丽斯的名字是由英文“人工语言在线计算机实体”的头一个字母的缩写拼成。科学家华莱士将这个聊天程序安装到网络服务器,然后待在一边观察网民会对它说什么。随着华莱士对艾丽斯的升级与艾丽斯聊天经验的日渐丰富,艾丽斯越来越厉害。2000年、2001年、2004年艾丽斯三夺勒布纳奖。艾丽斯是乔治的强劲对手,曾一度被认为是最聪明的聊天机器人。随着2000年以后 人工智能的行业逐步推进呢,聊天机器人也得到了广泛的应用和推广 ,目前用到的最多的聊天机器人,一般是我们的通讯平台还有电商,教育等领域。
下面看下聊天机器人的行业分布
例如电商购物助手:
聊天机器人的优势是什么呢:
聊天机器人的分类主要可以按照领域分,固定领域和开放领域。
按照模式分,检索模式和生成模式。
按照功能分,问答型,任务型,闲聊型
#NLP基础和pytorch基础
什么是NLP?
Nature Language Processing
人机交互 自然语言处理
我们的课程主要学习NLP的基础知识,包括分词技术,Word2vec,TF-IDF关键核心知识。
分词,NLTK,jieba的原理及使用。主要在使用上。
Word2vec的原理及使用实现方法。
TF-IDF的公式拆解及使用实现方法。
pytorch基础
Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
1.简洁:
PyTorch的设计追求最少的封装,尽量避免重复造轮子。不像 TensorFlow 中充斥着session、graph、operation、name_scope、variable、tensor、layer全新的概念,PyTorch 的设计遵循tensor→variable(autograd)→nn.Module 三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),而且这三个抽象之间联系紧密,可以同时进行修改和操作。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右
2.速度:
PyTorch 的灵活性不以速度为代价,在许多评测中,PyTorch 的速度表现胜过 TensorFlow和Keras 等框架。框架的运行速度和程序员的编码水平有极大关系,但同样的算法,使用PyTorch实现的那个更有可能快过用其他框架实现的。
3.易用:
PyTorch 是所有的框架中面向对象设计的最优雅的一个。PyTorch的面向对象的接口设计来源于Torch,而Torch的接口设计以灵活易用而著称,Keras作者最初就是受Torch的启发才开发了Keras。PyTorch继承了Torch的衣钵,尤其是API的设计和模块的接口都与Torch高度一致。
4.活跃的社区:
PyTorch 提供了完整的文档,循序渐进的指南,作者亲自维护的论坛 供用户交流和求教问题。
举例:
检索类聊天机器人和生成式聊天机器人
所谓检索类机器人,主要应用的领域比较单一,比较固定。一般都是应用在固定领域。像咱们常见的电商,新闻,财经,美食,旅游等app。
我们课程中会讲到的内容主要包括检索类机器人的原理,另外介绍python中重要的一个库chatterbot来实现检索类聊机器人。带领大家从0开始创造出检类聊天机器人。
Chatterbot
Chatterbot作为一个简单的聊天机器人,使用简单,可以对于一些简单的聊天进行训练。系列主要是对Chatterbot的使用作为一个简单的入门的介绍,不对其他介绍。
首先chatterbot作为一个聊天机器人的一个框架,在训练数据集上可以支持多种语言,且不用对句子进行切词等处理。所以对于任何的问题答案的类型的训练数据可以直接带入方法直接进行训练。
生成类聊天机器人
生成式模型(难) 不依赖预定义好的回复库,生成新的语料答复。典型的依赖于机器翻译技术,但是并不是真正的从一门语言翻译到另外一门语言。我们是从一个输入翻译到一个输出(回复)。
Encoder 和 Decoder 都只展示了一层的普通 LSTMCell。从上面的结构中,我们可以看到,整个模型结构还是非常简单的。 EncoderCell 最后一个时刻的状态就是中间语义向量 C,它将作为 DecoderCell 的初始状态。然后在 DecoderCell 中,每个时刻的输出将会作为下一个时刻的输入。以此类推,直到 DecoderCell 某个时刻预测输出特殊符号 结束。
基于Pytorch聊天机器人代码实战
从0开始,介绍项目的目标和任务。主要完成一个闲聊机器人和一个电商检索类的聊天机器人。使用Seq2Seq+attention的主流模型。具体实现两个任务,第一闲聊机器人,第二检索类电商助手聊天机器人
闲聊机器人(比较有趣)具体如下
电商检索类(服务助手)
聊天机器人发展方向
目前主流的模型还是Seq2Seq+Attention
一个 Sequence to Sequence,或者叫 seq2seq 网络,又或者叫 编码-解码网络,包含了两个RNN(GRU)部分:编码器和解码器。编码器网络将输入序列转化为单个向量,解码器读取这个向量,将其转化为序列输出。
注意力机制有多种模型:Attention,Multi-head attention,Self-attention
随着时间和技术的发展,聊天机器人和深度学习结合越来越多,GAN对抗生成网络和强化学习也被应用到聊天机器人,其中SEGAN就是比较有代表性的。
总结
第一、从0开始了解聊天机器人的行业知识,原理,NLP基础知识。
第二、理解聊天机器人的分类和并掌握聊天机器人的主流技术和模型。
第三、掌握pytorch基础,从而从0开始完成一个闲聊聊天机器人,一个检索类机器人。
第四、进军聊天机器人行业。
热门评论
还没看够,没了?
还没看够,没了?
?