一、简介
论文:https://arxiv.org/pdf/1711.01731.pdf
该论文对对话系统进行了综述,并讨论了今后可能的研究方向。
目前的对话系统大致被分成两类:
1 任务导向的对话系统
任务为导向的对话系统是帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式:
1) Pipeline method
通过4个步骤去完成对话任务
2)End-to-End method。
端到端地完成对话任务
2 非任务导向的对话系统
非任务导向的对话系统是与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类:
1) generative method
生成式对话
2)retrived-based method
答案选择式对话
文章就以上两类对话系统,以及各自的实现方法进行详细综述与讲解。
二、任务导向的对话系统
1 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):
意图识别: 是分类问题,将用户发出的语句分类到