以下笔记整理自《如何打造你自己的聊天机器人》系列课程之
- 第一讲《聊天机器人的前世今生》
- 第二讲《聊天机器人的关键技术》
一、聊天机器人的发展
1. 第一个机器人:ALICE
-
ALICE组织发表:in short for Artificial Linguistic Internet Computer Entity(电脑做成实体化的东西)
-
Program A——>D(D:java语言)——代号变化,荣获20多个奖项
-
does't not have a purpose(不能完成特定任务)
-
amazing derivatives,e.g.A.L.I.C.E.Brain Picture Gallery(用技术做出可视化的东西,一些爱好者自己尝试做的)
2. 16年至今井喷的过程:机器人应用和创业公司都变多
image日本2016年Q4的聊天机器人产业图谱
image二、机器人形态-功能划分及其在企业和教育中的重要性
1. 形态方面
-
人形:有四肢,可是做动作(抓握等)
-
胖胖的非人形机器人:主要是社交机器人social robot(跟人沟通)
2. 功能划分
- Chitchat bots闲聊机器人
- Xiaoice(小冰)、Cortana(英文版小冰),Tay(泰国版小冰),Siri,Allo(Google的聊天机器人助手)
- 小i机器人,Turing
- Facebook Wit.ai()
- Personal Assistant个人助理类机器人
- information inquiry信息查询
- Siri
- 出门问问(谷歌开发者团队)——问路、问天气、附近的吃喝玩乐
- plan management行程/日程管理(Google一直在做,携程/穷游都可以做)
- Allo
- running assistant
- M.A.R.A
- more:http://wit.ai/community
- information inquiry信息查询
- Customer Service客户服务类机器人
- sell
- Jingdong
- Ali
- booking
- restaurant
- hotel
- sell
3. 聊天机器人在企业和教育中的重要性
- 对企业
- 解放劳动力,节约生产成本;
- 提供7*24小时的客服服务,服务时间更长、回复更快更及时;
- 走在AI前端对公司形象有助益。
- 对学术界/教育
- 分词、识别、机器翻译、语义理解都涵盖,提供了丰富的数据和技术资源;
- 真正的人工智能源自于交互,从交互中产生新的东西。
三. 两大类主流聊天机器人对比
1. 任务驱动型聊天机器人
a)特点
-
tsk-oriented完成某个任务,如完成订餐/Q&A
-
Domain-specific特定领域/封闭域
-
Dialog System(不是chatbot)
-
精准的用户需求理解,对数据标注、数据的干净程度要求比较高;京东/中国移动等公司可能有数据
-
模块化的,通过一个个模块处理,一个模块没处理完就会问你,一个模块卡住就没法完成,反馈结果;好处在于评价很容易——是否完成
b)系统模块组成
image-
SLU语言理解模块
- 根据用户的输入,输出两部分内容: user intention and slot-values
- user intention是一个类别category;神经网络可以做分类任务,可以用来得到intention的类别;intent parser意图识别/分析
- slot抽象化的想要表达的东西,e.g.菜系;vlue对应的是slot的具体内容,一个slot下有多种可能的value,e.g.日料、重庆火锅、东北菜、西餐等
- 抽取slot-value的方法是delexization,是一个专门的任务,类似命名实体识别,有很多专门的api可以直接调用
-
DST对话状态追踪模块【最核心最重要的部分】
-
追踪并输出当前对话状态,进行到哪个步骤;
-
状态包含的是整个任务中可能涉及的“知识点”,是各种可能的slot-value组合,状态其实是用小型的知识图谱ontology组成的
-
输出的是基于多个slot的多元概率分布,即当前状态,并把当前状态返回到整个系统中去
image
Belief tacker可能同时维护者多个slot下的多个分布;
- informable slots:用户需要去约束的信息
- requestable slots:用户可以去进一步查询的信息
-
-
DPL对话策略学习/决策模块(对话系统的桥梁类模块,是一个综合模块)
- 根据当前状态决定下一步做什么
-
输入部分有很多;最终输出action,相当于一个压缩的向量
image
-
NLG自然语言生成模块
-
生成/转换成自然语言
-
生成的可能是一个模板,而不是最终的句子,最终传达给用户的句子还需要在slot里面填回value
-
2. 开放领域的闲聊机器人
a)特点
-
Chit-chat闲聊
-
Open Domain开放域
-
Conversational Agent(or chatbot)
-
大量数据,可以用任意数据,电影台词、微博评论;但数据噪音比较大
-
端对端的方法,纯数据驱动,数据质量直接导致训练结果的好坏;很难评估。
b)两类闲聊机器人
-
Retrieval-based基于检索式
- 从已有语库中匹配最相关的、最相似的
- @微软小冰:多轮中考虑历史信息的匹配
-
Generation-based基于生成式的
-
Encoder-decoder编码器解码器模型:输入一句话,经过一堆编码/神经网络(LSTM),压缩成一个向量,再用相似的模型进行编码(LSTM)——最终生成内容
-
基于注意力机制的RNNSearch
- 循环神经网络 RNN
- RNN最优问题 梯度消失问题
- LSTM解决梯度消失问题 LSTM
-
HRED:考虑历史信息——中和考虑当前对话和上下文
-
-
Enocoder-decodrer模型的特点
-
综合性
-
灵活性
-
扩展性
-
-
RNN/LSTM的问题
-
对长句的处理效果依旧不好
-
语法问题
-
模板化问题
-
可能的解决办法:VAE variational autoencoder
-
比VAE更简单的办法——注意力机制Attention Mechanism
-
四. 聊天机器人的知识库和个性化
1. Emotional情感陪伴
- "Her"in the science fiction film
- "smart-aging"老年人:说话更慢、语气更柔和、说成年人觉得很无聊的东西、说有趣的事情
2. Knowledgable聪明/博学
-
通用知识
-
Fact事实类信息
-
Entity命名实体类信息
-
Linguistic knowledge语言信息
-
Knowledge base and knowledge graph可以调用知识库和知识图谱类的信息
-
-
Other Knowledge高级的知识
-
Topic话题类信息
-
History历史信息类——考虑机器人人格前后一致
-
Scenario(e.g.image)
-
News/Articles/Rationales
-
3. Personalized个性化(跟A聊天跟别人不一样,非常了解A的喜好)
-
Transfer Learning迁移学习
-
Lifelong Learning终身学习
-
Lack of Personal Data但很难收集到用户个人信息
附课程PPT:
《聊天机器人的前世今生》
链接:https://pan.baidu.com/s/1Es0d8VMkCyDnsioNhLYNCg
提取码:74ba
《聊天机器人的关键技术》
链接:https://pan.baidu.com/s/11LOTqLHUMyDQV28ihM74qg
提取码:5tqm
网友评论