从智能对话系统导论,到如何设计第一个对话机器人

一、智能对话系统导论

1、生活中的 Conversational AI

  1. 一些软件APP中,FAQ问答型,例如淘宝客服:
    在这里插入图片描述
  2. 与一些硬件结合,语音+对话,如服务型机器人:
    在这里插入图片描述
  3. 车载系统,对话机器人:
    在这里插入图片描述
  4. 手机助手,以及推销电话,或者客服服务引导对话:
    在这里插入图片描述
  5. 游戏npc对话场景中,从固定的对话脚本到鲜活的自由对话:
    在这里插入图片描述
  6. 智能音箱,集成了对话机器人,播音乐,操纵智能家居,订机票打车等等一些任务:
    在这里插入图片描述

2、一种新的人机交互方式

对话机器人,已经不仅仅是进行某种简单的对话,而是像人一样的一种新的人机交互的方式:
在这里插入图片描述

3、一些关于 Conversational AI 的数据

来自国外的调查数据:

  1. 63%的客户考虑使用在线对话机器人去沟通业务或品牌
    在这里插入图片描述
  2. 80%的业务场景计划使用对话机器人
    在这里插入图片描述
  3. 50%的企业会在聊天机器人的创新上花费比传统手机app开发更多精力
    在这里插入图片描述
  4. 对话机器人每年会为商业成本节省80亿美元
    在这里插入图片描述

4、对话机器人行业产业链及产业图谱

在这里插入图片描述

5、课程主要部分

主要分为三大部分:

  1. 文本摘要
  2. 对话理解
  3. 对话机器人

1和2比较单一,解决方案的实现在学业界都大同小异。
而3是一个比较综合性的项目,可以结合包括1和2的任何NLP技术。


二、Conversational AI 概览

1、什么是Conversational AI?

AI的思想最初来源于图灵,他尝试使用各种技术如声音、文本、姿势和接触等方法让与人类与计算机程序进行交互。

而图灵测试则是指,将机器与人混在一起进行交互,观察人类是否能发现交流者中存在机器,若人类不能发现,说明机器的交流与人类非常近似,则通过了图灵测试。
在这里插入图片描述

2、对话机器人行业相关领域发展历程示意图

在这里插入图片描述

3、对话机器人的优势

及时回复、带来更多收益、减少成本、最大化职员技能、更好的理解顾客、开辟新渠道、增加忠诚度、7*24h在线、建立差异化
在这里插入图片描述

4、对话机器人在学术界的种类

  • Task-oriented: 任务动作过程型导向机器人,帮忙打个电话
  • Chitchat:无目的型,闲聊
  • QA:问与答,结果为导向
    在这里插入图片描述
    一些专有名词,便于看paper:
    Conversational AI 包含所有明指或暗指的对话交流
    Dialogue system 专门指对话
    Bot = Agent = 做的机器人

Task-oriented/Task-completed Bot
QA(Question Answering) bot
Chitchat/Social Chat/Chatbot

Open-domain chatbot - 开放领域机器人,什么都做,不区分领域
Domain chatbot - 特定领域场景下的机器人

在这里插入图片描述

5、对话机器人在工业界的种类

在学术界,三种机器人类型分得很清晰;而在工业界,则没有分得这么开,基本是混合型多功能的。

在这里插入图片描述
在这里插入图片描述

三、Chatbot(Chichat)

1、什么是Chatbot - 闲聊型机器人

在这里插入图片描述
在这里插入图片描述

2、一般方法

Sequence-to-Sequence

用户的对话
输入模型进行编码
针对该话生成结果
输出模型并且解码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、QABot

1、什么是Question-Answering(QA) Bot

在这里插入图片描述
在这里插入图片描述

2、QABot 的实现方法

2.1、阅读理解 - MRC

本质上是一个MRC,一个阅读理解方面的对话机器人。
在这里插入图片描述
将用户说的话从产品文档里面扫描一遍,发现有一段话是来描述该问题的,然后截取出来,给用户一个反馈。

结合MRC做一个QA的任务。

相关paper (colab)


2.2、语义匹配

语言表达方式的多样性,但含义的确定性,将相似问题全部都转化为标准问题。
在这里插入图片描述
在这里插入图片描述

2.3、文本搜索

Text-QA: Text Retrieval

类似于搜索引擎,用户输入一段话,然后网站返回一堆文章。
这里是用户输入一个问题,然后去文档库里寻找与用户问题最相关的文档,返回给用户,如果回答太长,则可以进行文本摘要,将文章中最核心的部分抽取出来。
在这里插入图片描述

AnyQ (github)


2.4、知识图谱

不同于前面的几种类型的QA,该类型可以进行问题的进一步推理。

  • KB-QA
    • KB(Knowledge Base)
    • KG(Knowledge Graph)

在这里插入图片描述

2.5、单轮与多轮

Single-turn and Multi-turn KB-QA

Single-turn: 一问一答
Multi-turn: 对多个问题和描述进行回答
在这里插入图片描述
在这里插入图片描述

2.6、其他形式

将自然语言转换成SQL
在这里插入图片描述
在这里插入图片描述

3、数据集

3.1、Dataset on KB-QA

paper里比较常见的英文数据集:
SQA (msropendata)
在这里插入图片描述
CSQA (github)
在这里插入图片描述

3.2、Dataset on Machine Reading Comprehension (MRC)

SQuAD (github)
MS MARCO (github)
在这里插入图片描述
The automated QA track
The LiveQA track (trec)
在这里插入图片描述

然而,对于我们来说一般会使用其他的中文数据集。


五、Task-oriented Bot

1、什么是Task-oriented Bot

在回答用户问题时,先弄清楚问题背后的intent (意图)
在这里插入图片描述

2、如何产生/构建intent

  1. Modular. 分模块,很多个模块一同运作去构建成一个对话机器人
  2. End-to-end. 一个模型就把所有对话问题都解决了。

2.1、Modular/Pipeline Approach Architecture

当今比较流行的

  • 用户的对话
  • 自然语言理解 - NLU
  • 对话状态跟踪 - DST
  • 动作生成 - AG/DP
  • 自然语言生成 - NLG
    在这里插入图片描述

2.1、NLU

Modular Approach: Natural Language Understanding

输入用户问题,进入模块寻找intent。
在这里插入图片描述
Terminology in Task-oriented Bot:

  • Intent
  • Slot/Entity 词槽,为了完成intent,需要的条件是什么,例如:Type, Area
    • informable
    • requestable
  • State
  • Action

在做产品之前,需要对于某个问题进行预测,用户可能具有哪些意图,做好意图的分类,可能有成千上万个。
在这里插入图片描述
一个多轮对话的例子:
在收集到重要信息之前,不断地对GET-TICKET进行其他信息的补充
在这里插入图片描述

2.2、DST

Modular Approach: Dialogue State Tracking

在拿到intent和slot后,因为每一个对话都会有意图和词槽,所以过去的信息都存储在Past State里,但是只会筛选出跟当前对话相关的slot,相当于整个对话系统的大脑。
在这里插入图片描述

2.3、AG/DP

Modular Approach: Action Generation (Dialogue Policy)

将存储的State拿出来,寻找机器人可以做的事情Action,选出跟该状态最相关的动作,然后调用搜索引擎或者数据库,去寻找这样的结果。下面例子找到了Type和Name,然而这个结果不能直接返回给用户,会造成体验不佳,后续继续处理。
在这里插入图片描述

2.4、NLG

Modular Approach: Natural Language Generation

将AG的结果送入到NLG,组装成自然语言
在这里插入图片描述

完整流程的例子:
在这里插入图片描述

2.2、End-to-end

在这里插入图片描述

五、回顾与延展

我们可以发现,Task-oriented Bot的架构同样可以用于 QABot 和 Chichat

后期会用这四个模块去解决这三类对话机器人问题,工业界里大部分也选用的这种架构,非常灵活,并且可以满足不同场景的需要


1、back to QABot

在这里插入图片描述

2、back to Chichat

在这里插入图片描述

六、如何设计一个Chatbot?

1、制定目标

1.1、痛点是什么?

在这里插入图片描述
在这里插入图片描述

1.2、如何解决痛点?

在这里插入图片描述
在这里插入图片描述

1.3、是否能够回答这些问题?

在这里插入图片描述


2、定义使用场景

在这里插入图片描述

3、创建虚拟人物性格

在这里插入图片描述
和对应的用户产生共通感,提高使用体验。
在这里插入图片描述

4、从简单口语对话开始

将人类活动的某场景的对话记录下来,当成最原始的数据,放在对话机器人中进行测试。


5、设置边界

防止对话的话题跑偏,紧抓主题进行对话。


6、设计对话路径

对话流程图:
在这里插入图片描述
在这里插入图片描述

7、测试及调整

在这里插入图片描述
在这里插入图片描述

8、长尾路径设计

把最重要的头部实现了,然后尾部慢慢实现。
在这里插入图片描述
在这里插入图片描述

9、持续迭代

发现问题,不断改进和优化。


参考

张春阳老师 - 开课吧 - 自然语言处理与文本检索


更新时间

2022/01/21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值