对话系统文献综述笔记
2018-01-09 11:37
441 查看
论文原文地址:https://arxiv.org/pdf/1711.01731.pdf
对话系统大致被分成两类:
(1) 任务为导向的对话系统
任务为导向的对话系统是帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式:(1) Pipeline method, (2)End-to-End method。
(2) 非任务导向的对话系统
非任务导向的对话系统是与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类:(1) generative method,(2)retrived-based method。
文章就以上两类对话系统,以及各自的实现方法进行详细综述与讲解。
1.Natrual Language Understanding(NLU)
将用户的输入语句转化为预先设定好的语义槽(semantic slot)
先来个例子:
在任务型对话系统中用户想要查酒店信息,于是说出一个句子:“show restaurant at New York tomorrow.”
理解这个句子需要两个步骤:
(1)首先要判断用户是需要订酒店,而不是订机票,买东西,查快递,那么这属于一个分类问题,即识别用户意图类别
(2)查酒店类别会有与之相对应的预先设定好语义槽(semantic slot),如New York是location的slot value.填充槽值的过程即在句中做词信息的抽取。
以上两步也可分别称作意图识别(intent detection)与槽填充(slot filling):
意图识别:
分类问题,将用户发出的语句分类到预先设定好的意图类别中。
目前深度学习技术在意图识别中成功应用[15;84;112]。[25]使用卷积神经网络来抽取查询语句的向量表征(vector representations)。[29]和[74]也有基于CNN的分类框架的类似应用
槽填充:
序列标注问题,为句子中的每个词打上语义标签。输入是由一组序列的词组成的句子,输出是该组序列的词及词对应的语义类别(slot/concept ID)。
[17]和[15]使用了deep belief networ(DBNs),取得优于CRF baseline的效果;
[51;115;66;113]使用RNN。
2.Dialogue State Tracking
根据对话历史管理每一轮对话的输入,并且输出当前对话的状态。对话状态Ht表示时间t上对话的表征(也叫做slot或semantic frame)。
传统的方式:是使用手工做的规则来选择最可能的结果。但是错误率高。
基于统计的对话系统:会对每轮对话都计算对每个slot的概率分布。文献有robust sets of hand-crafted rules[93],conditional random fields[26;25;63],maximun entropy models[98],web-style-ranking[101]
基于深度学习:[26]介绍了深度学习在信念跟踪上的应用。在一个domain上可迁移到新的domain上;[58]提出了multi-domain RNN dialog state tracking models;[59]提出了neural belief tracker(NBT)来识别slot-value对。
3.Policay learning
根据当前对话状态做出下一步的反应。举个例子,在线上购物的场景中,若上一步识别出来的对话状态是“Recommendation”,那么这一步骤就会给出对应推荐的action,即从数据库中获取商品。
可应用监督学习:首先一个rule-based agent用来做热启动,然后监督学习会在根据rule生成的action上进行[111]。
也可应用端对端端强化学习:[14]
4.Natural language generation(NLG)
将Policy learning给出的反应转换成相应的自然语言形式的回答提供给用户。一个好的回答生成器应具备4个特点:adequacy, fluent,readability and variation[78].
传统的方法[90;79]:使用sentence planning,将输入的语义特征转换成中间形式(比如树状或模版形式),然后再通过surface realization将中间形式转换成最终的回答。
深度学习的方法:[94;95]介绍了NN于LSTM结合的结构,类似于RNNLM;[94]使用前向RNN生成器,以及CNN和backwards RNN的reranker,所有子模型进行联合优化;[95;83]新增一个control celll来gate the dialogue act;[96]将前者在multiple-domain上改进于应用;[123]使用encode-decode LSTM-based,并结合了attention machanism;[20]使用sequence-to-sequence 方法。
[97;7]介绍了基于网络的端到端的可训练的对话系统。将对话系统的问题转换为学习一个映射(从历史对话–>回答)。但是,其需要大量训练数据并且缺少鲁棒性。
[120]第一次展示了end-to-end 强化学习方法,联合训练对话跟踪于策略学习。
[45]训练end-to-end模型as a task completion nueral gialogue system.
任务对话系统需要外部的知识库支持。
早先的做法是:先语义上解析查询语句,并且将其符号化,根据符号化的查询语句从知识库中获取对象[97,103,45]。但这样有两个缺点:获取的结果并没有携带语义解析的不确定性信息;语句解析于dialog policy需要分开训练。
改进的做法是:[21]使用RNN并结合注意力机制;[18]将符号化的查询语句代替为”soft” posterior disttribution;[102]结合RNN于domain-specific knowledge,并且encode为templates。
一、简介
该论文对对话系统进行了综述,并讨论了今后可能的研究方向。对话系统大致被分成两类:
(1) 任务为导向的对话系统
任务为导向的对话系统是帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式:(1) Pipeline method, (2)End-to-End method。
(2) 非任务导向的对话系统
非任务导向的对话系统是与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类:(1) generative method,(2)retrived-based method。
文章就以上两类对话系统,以及各自的实现方法进行详细综述与讲解。
二、任务导向的对话系统
Pipeline method
Pipeline method的步骤可以分为4个,过程如下图所示,详细的描述请继续阅读下文1.Natrual Language Understanding(NLU)
将用户的输入语句转化为预先设定好的语义槽(semantic slot)
先来个例子:
在任务型对话系统中用户想要查酒店信息,于是说出一个句子:“show restaurant at New York tomorrow.”
理解这个句子需要两个步骤:
(1)首先要判断用户是需要订酒店,而不是订机票,买东西,查快递,那么这属于一个分类问题,即识别用户意图类别
(2)查酒店类别会有与之相对应的预先设定好语义槽(semantic slot),如New York是location的slot value.填充槽值的过程即在句中做词信息的抽取。
以上两步也可分别称作意图识别(intent detection)与槽填充(slot filling):
意图识别:
分类问题,将用户发出的语句分类到预先设定好的意图类别中。
目前深度学习技术在意图识别中成功应用[15;84;112]。[25]使用卷积神经网络来抽取查询语句的向量表征(vector representations)。[29]和[74]也有基于CNN的分类框架的类似应用
槽填充:
序列标注问题,为句子中的每个词打上语义标签。输入是由一组序列的词组成的句子,输出是该组序列的词及词对应的语义类别(slot/concept ID)。
[17]和[15]使用了deep belief networ(DBNs),取得优于CRF baseline的效果;
[51;115;66;113]使用RNN。
2.Dialogue State Tracking
根据对话历史管理每一轮对话的输入,并且输出当前对话的状态。对话状态Ht表示时间t上对话的表征(也叫做slot或semantic frame)。
传统的方式:是使用手工做的规则来选择最可能的结果。但是错误率高。
基于统计的对话系统:会对每轮对话都计算对每个slot的概率分布。文献有robust sets of hand-crafted rules[93],conditional random fields[26;25;63],maximun entropy models[98],web-style-ranking[101]
基于深度学习:[26]介绍了深度学习在信念跟踪上的应用。在一个domain上可迁移到新的domain上;[58]提出了multi-domain RNN dialog state tracking models;[59]提出了neural belief tracker(NBT)来识别slot-value对。
3.Policay learning
根据当前对话状态做出下一步的反应。举个例子,在线上购物的场景中,若上一步识别出来的对话状态是“Recommendation”,那么这一步骤就会给出对应推荐的action,即从数据库中获取商品。
可应用监督学习:首先一个rule-based agent用来做热启动,然后监督学习会在根据rule生成的action上进行[111]。
也可应用端对端端强化学习:[14]
4.Natural language generation(NLG)
将Policy learning给出的反应转换成相应的自然语言形式的回答提供给用户。一个好的回答生成器应具备4个特点:adequacy, fluent,readability and variation[78].
传统的方法[90;79]:使用sentence planning,将输入的语义特征转换成中间形式(比如树状或模版形式),然后再通过surface realization将中间形式转换成最终的回答。
深度学习的方法:[94;95]介绍了NN于LSTM结合的结构,类似于RNNLM;[94]使用前向RNN生成器,以及CNN和backwards RNN的reranker,所有子模型进行联合优化;[95;83]新增一个control celll来gate the dialogue act;[96]将前者在multiple-domain上改进于应用;[123]使用encode-decode LSTM-based,并结合了attention machanism;[20]使用sequence-to-sequence 方法。
end-to-end methods
特点:使用单个模型;可于外部的结构数据库进行交互[97;7]介绍了基于网络的端到端的可训练的对话系统。将对话系统的问题转换为学习一个映射(从历史对话–>回答)。但是,其需要大量训练数据并且缺少鲁棒性。
[120]第一次展示了end-to-end 强化学习方法,联合训练对话跟踪于策略学习。
[45]训练end-to-end模型as a task completion nueral gialogue system.
任务对话系统需要外部的知识库支持。
早先的做法是:先语义上解析查询语句,并且将其符号化,根据符号化的查询语句从知识库中获取对象[97,103,45]。但这样有两个缺点:获取的结果并没有携带语义解析的不确定性信息;语句解析于dialog policy需要分开训练。
改进的做法是:[21]使用RNN并结合注意力机制;[18]将符号化的查询语句代替为”soft” posterior disttribution;[102]结合RNN于domain-specific knowledge,并且encode为templates。
相关文章推荐
- 【强化学习笔记】关于一篇对话系统文献综述的读后感
- 基于条件知识库(CKB)的对话问答系统--论文阅读笔记
- Unity 对话系统插件学习笔记
- 新闻发布系统 笔记1 当我们换了电脑 或者文件夹更改了地址 之后 如何打开 原来的网站系统
- 【裸机开发笔记】6410的系统时钟设置(上)---6410时钟控制逻辑框架分
- 【笔记】深入理解计算机系统
- 【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统
- linux查看系统信息软件安装信息命令学习笔记
- android 耳机系统笔记2 --多媒体设备各种状态
- 08_ARM汇编自学笔记指令系统之跳转指令
- Linux——系统开关机指令简单学习笔记
- 分布式系统原理与规范 笔记2
- BI学习笔记之三 - 一个典型的BI系统介绍
- 【支付系统学习笔记】 一支付概述(1支付与交易)
- iOS之地理位置及定位系统 -- 入门笔记
- OAF学习笔记-20-在系统页面制作Tab页(系统中有Tab页,自己增加Tab)
- MyNote笔记系统(五)天气预报篇
- 嵌入式开发之旅-----OK6410开发笔记(2)----Uboot,内核,文件系统编译
- 构建物品系统(课堂笔记)
- 系统架构师学习笔记_第四章(上)