时间: 2021-07-30 11:13:59 人气: 0 评论: 0
编辑导语:对话机器人(ChatBot)目前已应用在众多领域,但还有一些AI产品经理对其概念没有一个系统化的认知。作者在文中对两类ChatBot进行了详解,与你分享。
对话机器人(ChatBot),以自然语言的方式和用户进行交互,从而完成咨询、客服、助理、娱乐等用户诉求,目前已经应用在很多领域。
本文主要介绍两类应用最广的ChatBot:FAQChatBot和多轮对话ChatBot,包括这两类ChatBot的适用场景和构造模块。
FAQ(Frequently Asked Questions) ChatBot,从英文全称可以看出来,是将一些频繁用到的问题和答案对整理好,形成知识库。
当用户提问时,将用户的问题和知识库的众多问题进行匹配,匹配完成后,将匹配到的知识库问题对应的答案,返回给用户,如下图所示:
为了匹配更精准,在构建知识库时,可以多设置几个扩展问题,如下表所示,在疫情期间,为了快速构建一个FAQ ChatBot,提高问题匹配精准度,可以这样构建知识库:
当我们的目标是快速构建一个基于常用知识的咨询时,就可以用FAQ ChatBot,例如打造一个公司内部的入职咨询、报销指南。
总结一下,FAQ ChatBot 的目的是:将企业的各种知识有效管理起来,采取一问一答的单轮对话方式,为用户提供咨询服务。
该方法的优点是建设快,质量可控、准确率高,其缺点是泛化能力比较弱。随着不断迭代,知识库的更新很大程度依赖于人工,不能自主提升自己的泛化能力。
当面临更加复杂的问题时,例如用户想要完成订餐、订票等任务,需要进行多轮陈述,才能完成用户的诉求。
一方面,用户在对话过程中可以不断修改或完善自己的需求;另一方面,当用户的陈述的需求不够具体或明确的时候,机器也可以通过询问、澄清或确认来帮助用户找到满意的结果。
对于这样的多轮对话,ChatBot架构如下:
下面,我们配合下面这个预订**议室的例子,来理解多轮对话ChatBot架构的各个模块:
NLU的目的是,完成对用户指令的理解。
所以NLU模块的输入是用户指令,输出主要采用DIS的表示结构,D代表Domain(领域), I代表Intent(意图),S代表Slot(槽位)。
(有些情况下没有Domain,直接输出为Intent)
Domain、Intent和Slot都是产品经理根据需求预先定义好的。不同的业务场景**定义不同的DIS。
对于这个预订**议室的例子,可以定义DIS如下:
对话管理DM控制着人机对话的过程,是ChatBot的核心。
在对话过程中,对话机器人系统**不断根据当前的对话状态和用户行为,决定下一步应该采取的最优动作,从而完成整个对话任务。
因此,在这个过程中,DM主要完成以下两个任务:
(1)维护&更新对话状态(dialog state tracking, DST)
根据之前的状态和用户的输入,维护一份最新的对话状态。
(2)产生系统决策(dialog strategy)
根据DST中的对话状态做出系统决策,决定下一步做什么。
如上图,对于当前的**议室预订实例,当用户表达了想预订906**议室,当前的最新对话状态为:
此时,系统做出决策:对话补全。因此,系统继续追问用户:您想预约什么时间段?
用户对此反馈:明天上午9点到11点。
系统根据此时最新的反馈和刚才的对话状态状态,产生新的系统决策,并更新状态。
更新后的状态为:
在这个案例里,DM的输入输出如下图:
在产生系统决策时,DM一般**利用以下两种策略:
(1)意图重入:当从当前的用户行为中分析不出意图时,**将上一轮的意图重入。
例如“我还想定一个下午两点到四点的”,单凭这一句话,无法得出用户的意图,则将上一轮查询的“**议室预订”意图进行重入。
(2)领域重入:当意图重入匹配度较低,则**采用领域重入。
当DM做出和用户交互相关的系统决策时,需要NLG模块配合,生成自然语言,和用户完成交互。
当用户预订**议室成功后,DM模块将预订成功的信息传给NLG模块:
NLG模块则根据预设的模版或其他生成算法,以自然语言方式反馈给用户结果:
总结一下,多轮对话与单轮对话的不同在于,携带前几轮对话的上下文信息,可以完成更复杂的任务,也使得对话过程更加智能。
本文由 @躺平看星星 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议