Skip to content

Latest commit

 

History

History

dialogue_system_study

【关于 对话系统 】那些你不知道的事

作者:杨夕

项目地址:https://github.com/km1994/nlp_paper_study

个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。

目录

对话系统有哪几种?

  • 类别:
    • 面向开放域的对话系统
      • 支持类型:闲聊
      • 类别:
        • 基于 海量 FAQ 的检索方式
        • 端到端方式
    • 任务型对话系统
      • 目标:通过对话系统能够找到用户完成一项特定任务
      • 类别:
        • 基于规则
        • 基于数据

这几类对话系统的区别是什么?

  • 区别:是否有明确的目标和任务
  • 面向开放域的对话系统
    • 特点:有户一般具有不确定的目的性
    • 如何衡量质量:以用户的主观体验为主
  • 任务型对话系统
    • 特点:具有目前的目的性
    • 如何衡量质量:以任务的完成情况来衡量对话质量

任务型对话系统目标是什么?

  • 目标:完成用户所指定的一项特定任务(天气、订餐等)
  • 机制:需要维护一个用户目标状态的表示,并且依赖于一个决策过程来完成指定任务,保证目标状态沿着能够完成任务的方向前进
  • 工作:
    • 目标状态
    • 状态迁移

对话系统的关键模块是什么?

  • 关键模块
    • 自然语言理解:
      • 介绍:将机器接收到的用户输入的自然语言转化为语义表示
      • 子任务:
        • 领域识别
        • 意图识别
        • 槽位填充
    • 对话管理:
      • 介绍:根据语义表示、对话上下文、用户个性化信息等寻找合适的执行动作;
    • 自然语言生成:
      • 介绍:根据具体动作,生成一句自然语言,作为用户输入的回复

为什么要有多轮对话?

  • 动机:对于一项特定任务,需要多个不同的必要信息(eg:订餐任务:用户地址,用户电话等),单论请求无法提供用户满足条件的充足信息

对话系统如何获取 必要信息?

  • 方式:采用主动询问缺失信息的策略,以填充必要槽位(如下例子)

Q:今天天气怎么样? A:请告诉我查询的地点? Q:上海 A:上海今天多云

解释:由于对 地点槽位 不明确,所以 A 需要 采用 主动询问缺失信息的策略获取槽位信息

面向任务的对话系统任务的形式化符号定义

  • Hx:用户的对话历史语句(Hx=[X1,X2,X3,...,Xn-1])
  • Hy:系统的对话历史语句(Hy=[Y1,Y2,Y3,...,Yn-1])
  • Xn:第n轮的用户对话语句
  • Yn:第n轮的系统对话语句
  • un:第n轮的用户动作
  • sn:第n轮的对话状态
  • an:第n轮的系统动作

按照技术实现划分,对话系统可分为几类?

  • 类别:
    • 模块化的对话系统
      • 介绍:分模块串行处理对话任务,每一个模块负责特定任务,并将结果传递给下一个模块
      • 实现方式:针对任一模块采用基于规则的人工设计方式,或基于数据驱动的模型方式
    • 端到端的对话系统
      • 介绍:由输入直接到输出,忽略中间过程,采用数据驱动模型实现

模块化的对话系统 由哪些 模块,分别做什么?

  • 组成成分:
    • NLU:
      • 介绍:将用户输入的自然语言语句映射为机器可读的结构化语义表述;
        • 结构化语义:
          • 意图识别:
          • 槽值:
    • DST(对话状态跟踪)
      • 目标:跟踪用户需求并判断当前的对话状态
      • 工作原理:以多轮对话历史、当前用户动作为输入,通过总结和推理理解在上下文环境下用户当前输入自然语言的具体含义
    • DPL(对话策略学习)
      • 工作原理:根据当前的对话状态,对话策略决定下一步执行什么系统动作
    • NLG(自然语言生成)
      • 工作原理:负责将对话策略模块选择的系统动作转化到自然语言,最终反馈给用户

模块化的对话系统 NLU 模块介绍?

  • 主要任务:将用户输入的自然语言映射为用户的意图和对应的槽位值
  • 输入:用户对话语句 Xn
  • 输出:解析 Xn 后得到的用户动作 un;
  • 主要技术:
    • 意图识别->意图
    • 槽位填充->槽位

意图识别定义是什么?

  • 介绍:将用户输入的自然语言会谈划分为不同用户意图;
  • 举例:
    • query: 今天天气怎么样?
    • 意图 : 询问天气

槽位值定义是什么?

  • 介绍:意图所带的参数,一个意图可以携带若干个相应槽位
  • 举例:
    • 咨询公交路线
    • 槽位:出发地,目的地,时间等
  • 槽位填充的目的:在已知特定领域或意图的语义框架下,从输入语句中抽取处该语义框架中余弦定义好的语义槽的值
  • 标注法:IOB

能否举个例子说明一下呢?

  • query:今天上海天气怎么样?
  • 用户意图:询问天气
  • 槽位定义:
    • 槽位1:时间
    • 槽位2:地点

怎么将两种方式合并?

  • 合并方式:串行执行
  • 缺点:
    • 误差传递
    • 限定领域后,不同领域需要不同的方法和模型进行处理,各个领域不共享;虽然很多时候槽位一致(eg:火车和飞机)

评价指标是什么?

  • 评价指标
    • 意图识别准确率
    • 槽位填充 F1

DST 是什么?

  • 目标:跟踪用户需求并判断当前的对话状态

DST 的 输入输出是什么?

  • 工作原理:
    • 输入:以多轮对话历史(Hx、Hy)、当前用户动作 un ;
    • 输出: DST 模块判定得到的当前对话状态 sn;

对话状态的表现(DST-State Representation)组成是什么?

  • 对话状态的表现(DST-State Representation)组成:
    • 对话状态的表现(DST-State Representation)组成
    • 本轮对话过程中的用户动作;
    • 对话历史;

DST 存在问题及解决方法?

  • 存在问题:由于 语音识别不准确 或 自然语言 本身存在 歧义问题,导致 NLU 的识别结果 往往 和真实结果间存在误差,所以 NLU 的 输出 是带概率的,及每一种可能的结果由一个相应的置信程度;
  • DST 在判断当前对话存在两种选择:
    • 第一种选择所对应的处理方法:1-Best
      • 介绍:DSt 判断当前对话状态时只考虑置信程度最高的情况,维护对话状态的表示时,只需要等同于槽位数量的空间;
    • 第二种选择所对应的处理方法:N-Best
      • 介绍:DST 判断当前对话时会综合考虑所有槽位的置信程度,每一个槽位的N-best 结构都要考虑和维护,且最终还需要维护一个槽位组合在一起的整体置信程度,作为最终的对话状态判断依据

DST 实现方法是什么?

  • 实现方法:
    • 基于CRF的系列跟踪模型
    • 基于 RNN 或 LSTM 的序列跟踪模型

DPL (对话策略优化)模块是什么?

DPL 的输入输出是什么?

  • 工作原理
    • 输入:DST 模块输出的当前对话状态 sn;
    • 输出:通过预设的对话策略,选择系统动作 an 作为输出;

基于规则的 DPL 方法介绍?

  • 实现方式:通过 人工设计有限状态自动机方法实现;
  • 方案:
    • 方案一:以点表示数据,以边表示操作;
    • 方案二:以边表示数据,以点表示操作;

NLG 模块是什么?

DPL 的输入输出是什么?

  • 工作原理
    • 输入:DPL 模块输出的当前系统动作 an;
    • 输出:系统对用户输入 Xn 的回复 Yn;

文章目录

  1. 【关于 Domain/Intent Classification 】那些你不知道的事
  2. 【关于 槽位填充 (Slot Filling)】那些你不知道的事
  3. 【关于 上下文LU】那些你不知道的事
  4. 【关于 自然语言生成NLG 】那些你不知道的事
  5. 【关于 DSTC 】那些你不知道的事
  6. 【关于 E2E 】那些你不知道的事
    1. 【关于 TC_Bot(End-to-End Task-Completion Neural Dialogue Systems) 】那些你不知道的事
  7. 【关于 rasa 】那些你不知道的事
    1. 【关于 rasa 安装 】那些你不知道的事
    2. 【关于 rasa 基本架构 】那些你不知道的事
    3. 【关于 rasa中文对话系统】那些你不知道的事

优质文章学习

  1. 微软和清华开源ConvLab: 多领域端到端对话系统平台
  2. 认真的聊一聊对话系统(任务型、检索式、生成式对话论文与工具串讲)
  3. 大厂对话系统实践文章链接
  4. 第58届国际计算语言学协会会议(ACL 2020)有哪些值得关注的论文?
  5. 重磅|一文彻底读懂智能对话系统!当前研究综述和未来趋势
  6. 从对话系统到智能问答产品(一):对话系统简介
  7. 计算未来轻沙龙:对话系统研究进展(视频 + PPT分享)
  8. 如何做一个完全端到端的任务型对话系统?

优质代码学习

  1. Dialogue_System