【关于 对话系统】那些你不知道的事
共 1971字,需浏览 4分钟
·
2021-03-13 16:21
作者:杨夕
项目地址:https://github.com/km1994/nlp_paper_study
面筋地址:https://github.com/km1994/nlp_paper_study
个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。
目录
一、对话系统 介绍篇
1.1 对话系统有哪几种?
1.2 这几种对话系统的区别?
区别:是否有明确的目标和任务
面向开放域的对话系统
特点:有户一般具有不确定的目的性
如何衡量质量:以用户的主观体验为主
任务型对话系统
特点:具有目前的目的性
如何衡量质量:以任务的完成情况来衡量对话质量
二、多轮对话系统 介绍篇
2.1 为什么要用 多轮对话系统?
对于一项特定任务,需要多个不同的必要信息(eg:订餐任务:用户地址,用户电话等),单论请求无法提供用户满足条件的充足信息。
2.2 常见的多轮对话系统解决方案是说明?
三、任务型对话系统 介绍篇
3.1 什么是任务型对话系统?
介绍:完成用户所指定的一项特定任务(天气、订餐等)
3.2 任务型对话系统的流程是怎么样?
3.3 任务型对话系统 语言理解(SLU)篇
3.3.1 什么是 语言理解(SLU)?
将用户输入的自然语言映射为机器可读的结构化语义表述,即用户的意图信息和对应的槽位值信息。
3.3.2 语言理解(SLU)的输入输出是什么?
输入:用户当前的对话信息 Xn
输出:解析 语句Xn 后所得到的用户动作信息 Un (意图,槽位);
3.3.3 语言理解(SLU)所使用的技术是什么?
意图识别->意图信息
介绍:将用户输入的自然语言会谈划分为不同用户意图;
举例:
query: 定云海肴中关村店
意图 :预订
命名实体识别->槽位信息
query: 定云海肴中关村店
举例:
槽位:(restaurant_name,云海肴)、(subbranch,中关村店)
介绍:意图所带的参数,一个意图可以携带若干个相应槽位
目标:在已知特定领域或意图的语义框架下,从输入语句中抽取处该语义框架中余弦定义好的语义槽的值
3.4 任务型对话系统 DST(对话状态跟踪)篇
3.4.1 什么是 DST(对话状态跟踪)?
根据旧状态、最新的系统动作和用户动作,更新对话状态,以获得新的对话状态。
3.4.2 DST(对话状态跟踪)的输入输出是什么?
输入:以旧状态、最新的系统动作和当前用户动作 (意图识别,槽位值) ;
输出:DST 模块判定得到的当前对话状态
3.4.3 DST(对话状态跟踪)存在问题和解决方法?
存在问题:由于 语音识别不准确 或 自然语言 本身存在 歧义问题,导致 NLU 的识别结果 往往 和真实结果间存在误差,所以 NLU 的 输出 是带概率的,及每一种可能的结果由一个相应的置信程度;
DST 在判断当前对话存在两种选择:
第一种选择所对应的处理方法:1-Best
介绍:DST 判断当前对话时会综合考虑所有槽位的置信程度,每一个槽位的N-best 结构都要考虑和维护,且最终还需要维护一个槽位组合在一起的整体置信程度,作为最终的对话状态判断依据;
第二种选择所对应的处理方法:N-Best
介绍:DSt 判断当前对话状态时只考虑置信程度最高的情况,维护对话状态的表示时,只需要等同于槽位数量的空间;
3.4.4 DST(对话状态跟踪)实现方式是什么?
基于CRF的系列跟踪模型
基于 RNN 或 LSTM 的序列跟踪模型
3.5 任务型对话系统 DPO(对话策略学习)篇
3.5.1 DPO(对话策略学习)是什么?
根据当前的对话状态,对话策略决定下一步执行什么系统动作
3.5.2 DPO(对话策略学习)的输入输出是什么?
输入:DST 模块输出的当前对话状态;
输出:通过预设的对话策略,选择系统动作作为输出;
3.5.3 DPO(对话策略学习)的实现方法是什么?
实现方式:增强学习,针对 DST 模块输出的当前对话状态 ,作为序列决策过程进行优化;
3.6 任务型对话系统 NLG(自然语言生成)篇
3.6.1 NLG(自然语言生成)是什么?
工作原理:负责将对话策略模块选择的系统动作转化到自然语言,最终反馈给用户
3.6.2 NLG(自然语言生成)的输入输出是什么?
输入:DPO 模块输出的当前系统动作;
输出:系统对用户输入 Xn 的回复;
3.6.3 NLG(自然语言生成)的实现方式?
基于模板:麻烦请提供一下{phone}和{name}
基于语法规则
生成式模型方法