学习笔记:《如何打造你自己的聊天机器人》系列课程1/2讲

以下笔记整理自《如何打造你自己的聊天机器人》系列课程之

  1. 第一讲《聊天机器人的前世今生》
  2. 第二讲《聊天机器人的关键技术》

一、聊天机器人的发展

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
  • Customer Service客户服务类机器人
    • sell
      • Jingdong
      • Ali
    • booking
      • restaurant
      • hotel

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

对话系统4大模块

2. 开放领域的闲聊机器人

a)特点

  • Chit-chat闲聊

  • Open Domain开放域

  • Conversational Agent(or chatbot)

  • 大量数据,可以用任意数据,电影台词、微博评论;但数据噪音比较大

  • 端对端的方法,纯数据驱动,数据质量直接导致训练结果的好坏;很难评估。

b)两类闲聊机器人

  • Retrieval-based基于检索式

    • 从已有语库中匹配最相关的、最相似的
image
  • @微软小冰:多轮中考虑历史信息的匹配
多轮中考虑历史信息的匹配
  • 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

推荐阅读更多精彩内容