【强化学习笔记】关于一篇对话系统文献综述的读后感

本文由@ray 出品,转载请注明出处。  
文章链接: http://www.cnblogs.com/wolfray/p/7887652.html


  

上周导师安排了一个任务——读一下这篇文章

出处:A Survey on Dialogue Systems: Recent Advances and New Frontiers 
文章地址: https://arxiv.org/abs/1711.01731v1 
作者: Hongshen Chen, Xiaorui Liu, Dawei Yin, Jiliang Tang

笔者之前都是搞图像处理啊、单片机啊、软件开发啊这些的,没有接触过自然语言处理,对话系统这些。

通过阅读这篇文章,笔者对对话系统有了初步的了解,并产生了一些想法。

首先放出读了这篇文章后的思维导图: 
这里写图片描述

一、概述

这篇文章主要概述了对话系统,尤其是对话系统在深度学习方面的进展;还讨论了可能的研究方向

二、分类

对话系统根据其应用可以分为面向任务型和非面向任务型。

2.1 面向任务型

2.1.1 目的

面向任务型对话系统的目的是帮助用户完成某些任务,比如说查找产品、预定住宿等。

2.1.2 方法

面向任务型的方法可以分为三种:

①流水线

流水线方法中包含4个模块:

  • 自然语言理解(NLU):又可分为语义槽、意图检测和槽填充三个部分。

  • 对话状态跟随器(Dialogue State Tracking):确保对话系统健壮性的核心组成部分。它会在每一次对话中估计用户的目标。传统方法是用手工定制规则,新方法引入了信念追踪的深度学习。

  • 对话策略学习(Policy learning):以从状态跟随器获得的状态表示作为条件,策略学习将产生下个可用的系统动作。

  • 自然语言生成(NLG):将抽象的对话动作转化为浅层的自然语言表达

流水线方法的缺点有两个:

  • 分数分配问题,最终用户的反馈很难回传到上游模块
  • 处理相互依赖(模块间)

②深度学习

③端到端(end-end):一个模块,可以与结构化的外部数据进行交互

2.1.3 特点

面向任务型的特点是通常需要在外部知识库上进行查询。

2.2 非面向任务型

2.2.1 目的

非面向任务型的目的是在与人类交互过程中,提供合理的反应和娱乐;其主要专注于在开放域与人交谈。

2.2.2 方法

非面向任务型的方法主要有两个:

①生成方法:神经生成模型,可在对话过程中产生适当的回复。

序列到序列(seq2seq)模型是神经生成模型的基础。

目前神经生成模型的热门研究课题大概有如下几个:

  • 对话上下文
  • 回复多样性
  • 主题和个性
  • 外部知识库
  • 交互式对话学习
  • 评价

②检索方法:从数据库中选择当前对话的回复。这有可以分为单轮回复匹配、多轮回复匹配和混合方法。

三、结论

目前对话系统的发展特点有如下两个:

  • 深度学习变成了对话系统的基础技术,应用于传统面向任务的对话系统的不同模块

  • 充分利用大数据,结合端到端的训练和强化学习。

四、一些思考

    1. 语义槽(Semantic Slots)是什么?

      答:

      语义槽类似于元数据,描述数据的数据。

      语义槽允许用户去详细描述说法的变量值部分。

      在下面的说法案例中{到达城市}和{旅行日期}就是语义槽: 
      我想去{到达城市} 
      预定一次{出发日期}的行程; 
      计划一个到{到达城市}的假期;

    2. 引言中提到大多对话系统,仍然使用人工特征或人工编写的规则来处理状态和动作空间表示、意图检测和槽填充。这里的人工特征和人工编写的规则是指的什么?

    3. 微软小娜和苹果siri是什么型的系统?

    4. 真的存在一个评价标准来评价回复的质量吗?

原文地址:https://www.cnblogs.com/wolfray/p/7887652.html