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

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

一、智能对话系统导论

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

Original: https://blog.csdn.net/weixin_44225602/article/details/122612908
Author: BlackStar_L
Title: 从智能对话系统导论,到如何设计第一个对话机器人

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/544451/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球