【NLP-ChatBot】能干活的聊天机器人-对话系统概述

我们之前介绍过,按照应用场景的不同,聊天机器人可以分为问答系统,对话系统以及闲聊机器人三类。今天我们就来详细讲一讲其中的对话系统。

作者&编辑 | 小Dream哥

1 什么是对话系统

通常来讲,对话系统会面向某一个任务,具备处理一些业务的能力。对话系统首先能够理解人类给出的信息,将其表示为一个内部状态,然后根据策略和对话状态选择一些动作,最后把动作转化为自然语言的表达形式。

例如,一个可以完成订票任务的对话系统,可以根据系统目前的所掌握的信息(目标城市),向用户询问还需要了解的信息(票的数目),来完成用户订票的需求。

640?wx_fmt=jpeg

如上图所示,对话系统一般由语音识别(ASR),自然语言理解(NLU),对话管理(DM),自然语言生成(NLG),语音合成(TTS)5个部分构成。各部分的功能如下:

1)语音识别(ASR)将原始的语音信号转换成文本信息;

2)自然语言理解(NLU)将识别出来的文本信息转换为机器可以理解的语义表示;

3)对话管理(DM)基于对话的状态判断系统应该采取什么动作,这里的动作可以理解为机器需要表达什么意思;

4)自然语言生成(NLG)将系统动作转变成自然语言文本;

5)语音合成(TTS)将自然语言文本变成语音输出给用户。

第一和第五部分不是必需的,我们后面会着重介绍二三部分,即NLU和DM部分。

2 自然语言理解NLU

自然语言理解(NLU)的目标是将文本信息转换为可被机器处理的语义表示

因为同样的意思有很多种不同的表达方式,对机器而言,理解一句话里每个词的确切含义并不重要,重要的是理解这句话表达的意思,也就是意图识别。

NLU还有一个重要的任务就是槽位提取,例如,接受订外卖的机器人,需要提取用户所订的餐馆的名字和所订食物的名称。

举个例子,当用户说“我想订一份肯德基的外卖”。对话系统接受到这个输入之后,先进行意图识别,识别到用户的意图是定餐;然后再进行实体识别,识别到餐厅名字肯德基。因此,“我想订一份肯德基的外卖”可以转化为对话系统能处理的语义表示:{"intent":"订餐","entity":"肯德基"}

意图识别的本质其实就是一种文本匹配,主要由两种实现方法:语义匹配和文本分类。关于语义匹配和文本分类,笔者之前都有文章介绍,感兴趣的读者可以出门左转,再看一下:

槽位提取的本质其实就是命名实体识别,笔者曾经写过专门的系列文章介绍过,感兴趣的读者可以再看看:

3  对话管理DM

因为对话系统常常涉及多轮对话,因此需要对目前的对话状态进行管理,以决定系统下一步的动作和给用户的回应。本质上,对话管理实际上就是一个决策过程,系统在对话过程中不断根据当前状态决定下一步应该采取的最优动作(如:提供结果,询问特定限制条件,澄清或确认需求等),从而最有效的辅助用户完成信息或服务获取的任务。

DM的输入就是用户输入的语义表达(或者说是用户行为,是 NLU 的输出)和当前对话状态,输出就是下一步的系统行为和更新的对话状态。这是一个循环往复不断流转直至完成任务的过程。

对话管理是对话系统中最独特的部分,是个很庞大的工程,涉及的知识又多又杂,在这里挑重点做一个引导性的介绍。

总的来说,对话管理模块主要由以下功能:

1.对话状态维护

主要负责维护和更新对话状态,假设t时刻的对话状态为s_t,它依赖于前一时刻的状态 s_t-1,和前一时刻系统行为a_t-1,以及当前时刻对应的用户行为a_t ,即s_t= f(s_t-1,a_t-1, a_t)。

2.生成系统决策

根据当前的系统对话状态s_t,决定系统下一步的行为dialog act(da),即da_t =g(s_t)。

3.作为接口与后端/任务模型进行交互

4.生成有效的用户答复

对话管理的研究非常的多,其具体的实现方式,总结起来,大致分为三种:

1)基于规则的对话管理

总的来说,基于规则的对话管理就是把对话管理建模为有限状态机(Finite State Machine),把对话看做是在有限状态内跳转的过程,每个状态都有对应的动作和回复,如果能从开始节点顺利的流转到终止节点,任务就完成了。

640?wx_fmt=png

DM每次有新的输入时,对话状态都根据输入进行跳转。跳转到下一个状态后,都会有对应的动作被执行。上图中展示了一个控制物体前后左右移动或停止的对话系统中的基于FSM的DM,大家可以清晰的看到各种状态的定义和状态间的跳转逻辑。基于FSM的DM,优点是简单易用,缺点是状态的定义以及每个状态下对应的动作都要靠人工设计,因此不适合复杂的场景

这个方法有以下的特点:

1.人为定义对话流程

2.完全由系统主导,系统问,用户答

3.答非所问的情况直接忽略

4.建模简单,能清晰明了的把交互匹配到模型

5.难以扩展,很容易变得复杂

6.适用于简单任务,对简单信息获取很友好,难以处理

   复杂的问题

7.缺少灵活性,表达能力有限,输入受限,对话结构和

   流转路径受限

2)基于统计的对话管理

前面提到的方法是需要人工来制定规则和状态,然而人很难预测所有可能的场景,这种方法也并不能重用,换个任务就需要从头再来。这种情况下,强化学习的优势就凸显出来了,RL-Based DM能够对系统理解用户输入的不确定性进行建模,让算法来自己学习最好的行为序列。

简单来说,它将对话表示成一个部分可见的马尔可夫决策过程。所谓部分可见,是因为DM的输入是存在不确定性的,例如NLU的结果可能是错误的。因此,对话状态不再是特定的马尔可夫链中特定的状态,而是针对所有状态的概率分布。在每个状态下,系统执行某个动作都会有对应的回报(reward)。基于此,在每个对话状态下,选择下一步动作的策略即为选择期望回报最大的那个动作。

这个方法有以下的特点:

1)只需定义马尔可夫决策过程中的状态和动作,状态间的转移关系可以通过学习得到;

2)使用强化学习可以在线学习出最优的动作选择策略。

3)仍然需要人工定义状态,因此在不同的领域下该方法的通用性不强。

3)基于数据的对话管理

最后一种DM方法是基于神经网络的。它的基本思路是直接使用神经网络去学习动作选择的策略,即将NLU的输出等其他特征都作为神经网络的输入,将动作选择作为神经网络的输出,其中一个例子是rasa框架。

这样做的好处是,对话状态直接被神经网络的隐向量所表征,不再需要人工去显式的定义对话状态。当然这种方法的问题是需要大量的数据去训练神经网络,其实际的效果也还有待大规模应用的验证。

总结

对话系统的搭建是一个具有挑战的工作。由于用户对系统的期待高,对错误的容忍度很低。而自然语言的表达方式非常灵活多变,这对NLU的准确度和DM的灵活度都提出了非常大的挑战。

我们在知识星球实现了一个完整的对话系统,感兴趣的同学可以扫描下面的二维码了解。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"

下期预告:聊天机器人-生成式机器人介绍

知识星球推荐

640?wx_fmt=png

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?

转载文章请后台联系

侵权必究

640?wx_fmt=gif
640?wx_fmt=png
640?wx_fmt=png

往期精选

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72311.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NLP】自己搭一个多轮对话聊天机器人(附实现源码)

【NLP】自己搭一个多轮对话聊天机器人(附实现源码) 01 项目框架02 模型2.1 粗排2.1.1BM252.1.1 Bool检索 2.2 精排意图识别 03 API交互04 微信前端 本文的内容如下 本篇介绍一个检索类型的 多轮问答系统/聊天机器人,通过API异步通信&#xf…

手把手教你写一个中文聊天机器人

本文来自作者 赵英俊(Enjoy) 在 GitChat 上分享 「手把手教你写一个中文聊天机器人」,「阅读原文」查看交流实录。 「文末高能」 编辑 | 哈比 一、前言 发布这篇 Chat 的初衷是想和各位一起分享一下动手来做聊天机器人的乐趣,因此…

NLP聊天机器人的搭建(chatbot)(一)

最近在学习研发QA系统,本人单纯想记录一下。项目源码和思路主要参考知乎专栏: PyTorch搭建聊天机器人(一)词表与数据加载器 - 知乎 PyTorch搭建聊天机器人(二)定义seq2seq网络前向逻辑 - 知乎 PyTorch搭…

全国大学生英语竞赛培训:听力、词汇语法、完形填空、阅读理解、翻译、改错、IQ题、大小作文、语法等部分快速得分、备战策略和获奖技巧讲解!

目 录 大学生英语竞赛培训——介绍、学习网址 PPT课件、视频——下载 【2020-04-05】P1 如何准备大学生英语竞赛才能拿奖?2:27:54【竞赛简介vs赛前准备】 【2020-04-11】P2 如何快速搞定大英赛大小作文?2:06:18【大小作文,快速表达~】 …

【情态动词练习题】 May 与 might

1. May 1.Sarah may be ill 2.We may not go out. 3.It may not rain. 4.We may buy a car. 5.Joe may not be at home 6.Anna may need help. 注:情态动词一定要加上动词原型 7.The baby may be hungry. 8.I may not change my job. 9.She may be married. 10.He…

初中七年级上计算机试题答案,人教版初中英语七年级英语上册期中模拟试题检测(含答案)...

原标题:人教版初中英语七年级英语上册期中模拟试题检测(含答案) 七年级英语期中测试题 1、 单项选择(10分) ( ) 1. 下列单词中含有相同元音因素的是_____. A that; these B thank; that C this; those ( ) 2. --________, Gina! --Good morning, Bob! A Good aftern…

初中七年级下英语期中备考单选题(外教出题并附助教经典解析)

1. My sister bought a present _______ her best friends birthday. A. for B. of C. about D. to 选出正确的介词,完成句子。问题: 我妹妹买了一份礼物给她最好的朋友庆祝生日。 答案:A 解析:在这个句子中,“fo…

ChatGPT 爆火 小扎、马斯克纷纷迎战ChatGPT

ChatGPT爆火,直接改变了整个硅谷大厂的格局。近日,马斯克、小扎也纷纷下场,正式对ChatGPT宣战!据The Information报道,马斯克最近几周与一直在于AI研究人员接洽,希望组建一个新的研究实验室,以开…

百度「文心一言」阿里「通义千问」腾讯的AI将会叫什么呢

阿里于昨天2023.4.7下午上线通义千问,与ChatGPT类似,同样是基于语言模型训练的人工智能聊天平台。通义千问的核心功能分为四个大类:撰写短文、职场助理、电影脚本和写封邮件。 通义千问通义千问https://tongyi.aliyun.com/ 首页如下&#xf…

ChatGPT Chat Assist: 职场智能利器,提升工作效率

在当今快节奏的职场生活中,高效率是每位职场人士追求的目标。而现代科技的进步,尤其是人工智能的快速发展,为我们带来了前所未有的便利。ChatGPT作为一款智能核心,推出了Chat Assist插件,成为职场中的得力助手&#xf…

ChatGPT通过图灵测试,图灵测试要重写

近日《Nature》在一篇文章中称,ChatGPT 已经攻破了图灵测试,是时候要启用其他新的方法来评估人工智能技术了。 图灵测试(Turing Test)是著名计算机科学家阿兰图灵在1950年提出的一个测试,用于判断机器是否能展现出与人类智能相当的能力。其测试方法是: 让…

亚马逊云科技X创业邦:专访图灵量子创始人金贤敏

假设你现在正准备去相亲,走进了一家坐满人的咖啡厅。你拿着Ta的照片,一个个地审视着每一个人,看谁对得上号,结果找了半个小时也没找到和照片相似的那个人。这时候,相亲对象给你打来了电话,告诉你Ta正坐在靠窗的角落里,你的目光顺着ta的指引,一下子就找到了Ta。 验证一个问题的答…

马斯克与马云对谈:一场科技乐观主义者的尬聊

硅谷Live / 实地探访 / 热点探秘 / 深度探讨 即使同为技术信徒,话不投机也在所难免。 本文由极客公园原创,阅读更多内容请关注极客公园微信公众号(ID:GeekPark) 在昨天开幕的 2019 世界人工智能大会上,阿里…

马斯克:我抽大麻、藐视SEC,但我是个好CEO

原文:CBS《60分钟》编译:新浪科技 樵夫 导语:特斯拉CEO马斯克(Elon Musk)被人称为天才,人们都认为他非常具有远见卓识。 但是今年,相比于他的卓越才华,人们似乎更加关注他的行为&…

马云对话马斯克:福报变成了一周工作12小时?

燃财经(ID:rancaijing)整理 作者 | 刘景丰 编辑 | 魏佳 8月29日,2019世界人工智能大会(WAIC)在上海举行。开幕式后,美国卡内基梅隆大学计算机学院院长汤姆米切尔(Tom Mitchell)、腾讯…

Vicuna:斯坦福开源一个性能相当于90%ChatGPT的聊天机器人

自从Meta公司发布LLaMA以来,围绕它微调和开发的模型越来越多,这得益于它的性能和效果,2023年3月份发布的草泥马(Alpaca)是由Meta的LLaMA 7B微调而来的全新模型,仅用了52k数据,性能约等于GPT-3.5…

3万多人学习,对ChatGPT最接地气的解读 | 万维钢 × 刘江直播精选

7 月 25 日晚 8 点,科学作家、知识传播大神万维钢老师做客“图灵八点半”栏目,与图灵联合创始人刘江总编共同解读 ChatGPT,围绕 ChatGPT 的基本原理(以及当今世界“最硬核的大脑” Stephen Wolfram 的作品《这就是ChatGPT》&#…

chatgpt赋能python:Python电影:了解Python编程语言的最佳电影

Python电影:了解Python编程语言的最佳电影 Python编程语言在IT行业中广为人知。它常被用于数据分析、人工智能、Web开发等领域。但是你知道吗?Python还成为了一种电影的主题。在这篇文章中,我们将介绍一些关于Python的最佳电影,并…

Spark综合练习——电影评分数据分析

文章目录 引言ChatGPT生成测试数据:今天给大家带来一个Spark综合练习案例--电影评分补充: 采用DSL编程的详尽注释版总结 引言 大家好,我是ChinaManor,直译过来就是中国码农的意思,俺希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,一个平凡而不平庸的人。 …

女儿米菲儿的照片

2011年3月26日,我们的宝贝女儿出生啦。 女儿非常乖而且聪明,出生第三天我就抓拍到一种微笑表情的照片。 小米菲儿出生第三天的照片: 小米菲儿出生第九天的照片: