NLP之智能对话系统
一、智能对话系统概述
1.1 什么是智能对话系统
所谓智能对话系统,简单来说就是使用各种先进的机器学习、深度学习、强化学习、迁移学习等智能算法,使得机器理解人类语言,并与人类进行有效的沟通,进而根据对人类语言中的意图进行理解并执行特定任务或作出回答的系统。
1.2 智能对话系统的研究意义和价值
智能对话系统作为人工智能领域的核心技术,即将成为新的和谐人机交互方式,具有重大的研究意义和应用价值。它能够将人们从重复的劳动中解救出来,比如智能客服可以取代人工工作中高度重复的标准化客户咨询。
1.3 智能对话系统分类
按照对话轮数可以将智能对话系统分为:单轮对话与多轮对话。
按照对话的目的性可以分为:任务导向型(task-oriented)对话系统和非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)。
1.4 对话系统的几个发展方向
深度学习已成为对话系统的一项基本技术。研究人员将神经网络应用于传统任务导向型对话系统的不同组成部分,包括自然语言理解、自然语言生成、对话状态跟踪。近年来,端到端的框架不仅在非面向任务的聊天对话系统中流行,而且在面向任务的对话系统中逐步流行起来。
深度学习能够利用大量的数据,从而模糊了任务导向型对话系统和非任务导向型对话系统之间的界限。值得注意的是,目前的端到端模型仍然远非完美。尽管取得了上述成就,但这些问题仍然具有挑战性。接下来,我们将讨论一些可能的研究方向。
①快速适应
虽然端到端模型越来越引起研究者的重视,我们仍然需要在实际工程中依靠传统的管道(pipeline)方法,特别是在一些新的领域,特定领域对话数据的收集和对话系统的构建是比较困难的。未来的趋势是对话模型有能力从与人的交互中主动去学习。
②深度理解
现阶段基于神经网络的对话系统极大地依赖于大量标注好的数据,结构化的知识库以及对话语料数据。在某种意义上产生的回复仍然缺乏多样性,有时并没有太多的意义,因此对话系统必须能够更加有效地深度理解语言和真实世界。
③隐私保护
目前广泛应用的对话系统服务于越来越多的人。很有必要注意到的事实是我们使用的是同一个对话助手。通过互动、理解和推理的学习能力,对话助手可以无意中隐蔽地存储一些较为敏感的信息。因此,在构建更好的对话机制时,保护用户的隐私是非常重要的。
二、智能对话系统的单轮对话与多轮对话
2.1 单轮对话
2.1.1 什么是单轮对话
单轮对话与传统的问答系统相类似,是智能对话系统的初级应用。一般表现为一问一答的形式,用户提出问题或前发出请求,系统识别用户意图,做出回答或执行特定操作。
单轮对话也强调自然语言理解,但一般不涉及上下文、指代、省略或隐藏信息,相对来说实现难度更低,产品的应用也更加成熟可靠。
2.1.2 单轮对话的应用场景
图1 单轮对话单轮对话主要应用在目标明确且会话行程短的浅服务类项目中,如电商平台客服机器人提供的产品介绍、订单信息查询、退换货流程介绍等内容。
单轮对话的本质在于取代人工工作中高度重复的标准化客户咨询,可以理解为一个高效率的自助服务帮助文档或知识库,能够帮助用户快速获取信息、提升咨询效率。
2.2 多轮对话
2.2.1 什么是多轮对话及其应用场景
多轮对话一般是任务驱动的多轮对话,用户是带着明确的目的的,如订餐,订票,叫车,寻找音乐、电影或某种商品等比较复杂的需求来,而这中间有很多限制条件,用户并不能一次将任务所需的关键信息一次性说完,说清楚,因此就要分多轮进行QA问答一方面,用户在对话过程中,可以不断修正和完善自己的需求;另一方方面,当用户在陈述需求不够具体和明确时,机器人可以通过询问,澄清和确认来帮助用户寻找满意的结果,并且在任务的驱动下与用户完成日常的交互,以此不断完善对于用户需求的满足。
因此,任务驱动的多轮对话不是一个简单的自然语言理解加信息检索的过程,而是一个决策过程,需要机器在对话过程中不断根据当前的状态决策下一步应该采取的最优动作(如:提供结果,询问特定限制条件,澄清或确认需求,等等)从而最有效的辅助用户完成信息或服务获取的任务。
2.2.2 任务驱动的多轮对话系统
图2 任务驱动的多轮对话系统示意图
三、任务导向型(task-oriented)对话系统和非任务导向型(non-task-oriented)对话系统
3.1 非任务导向型(non-task-oriented)对话系统
所谓非任务导向型对话系统,就是说这一类的对话是没有明确的目的性的对话。图1中的对话就是非任务导向型对话(聊天机器人)。
非任务导向的对话系统与人类交互,提供合理的回复和娱乐消遣功能,通常情况下主要集中在开放的领域与人交谈。虽然非任务导向的系统似乎在进行聊天,但是它在许多实际应用程序中都发挥了作用。
一般来说,对于非任务导向型对话系统,目前用的主要是两种方法:
① 生成方法,例如序列到序列模型(seq2seq),在对话过程中产生合适的回复,生成型聊天机器人目前是研究界的一个热点,和检索型聊天机器人不同的是,它可以生成一种全新的回复,因此相对更为灵活,但它也有自身的缺点,比如有时候会出现语法错误,或者生成一些没有意义的回复。
② 基于检索的方法,从事先定义好的索引中进行搜索,学习从当前对话中选择回复。检索型方法的缺点在于它过于依赖数据质量,如果选用的数据质量欠佳,那就很有可能前功尽弃。
3.2 任务导向型(task-oriented)对话系统
面向任务的对话系统是对话系统的一个重要分支。任务导向型对话系统旨在通过分析对话内容提取用户任务,并且帮助用户完成实际具体的任务,例如帮助用户找寻商品,预订酒店餐厅等。
这里介绍任务导向型对话系统的两种实现方法:管道方法和端到端方法。
3.2.1 管道方法
图3 任务导向型对话系统的典型结构任务导向型对话系统的典型结构如图4所示,它包括四个关键组成部分:
1)自然语言理解(Natural Language Understanding,NLU):它将用户输入解析为预定义的语义槽。
如果有一个话语,自然语言理解将其映射为语义槽。插槽是根据不同的场景预先定义的。
图4 自然语言表示示例
上图展示了一个自然语言表示的示例,其中“New York”是指定为slot值的位置,并且分别指定了域和意图。典型的,有两种类型的表示。一个是话语层次类别,如用户的意图和话语类别。另一个是字级信息提取,如命名实体识别和槽填充。对话意图检测是为了检测用户的意图。它将话语划分为一个预先定义的意图。
2)对话状态跟踪(Dialogue State Tracking,DST)
概括的说,对话状态跟踪就是根据多轮的对话来确定用户当前的目标(user goal)到底是什么的过程,它是确保对话系统健壮性的核心组件。它在对话的每一轮次对用户的目标进行预估,管理每个回合的输入和对话历史,输出当前对话状态。这种典型的状态结构通常称为槽填充或语义框架。传统的方法已经在大多数商业实现中得到了广泛的应用,通常采用手工规则来选择最有可能的输出结果。然而,这些基于规则的系统容易出现频繁的错误,因为最可能的结果并不总是理想的。
因此,最近深度学习采用的方法是使用一个滑动窗口输出任意数量的可能值的概率分布序列。虽然它在一个领域受过训练,但它可以很容易地转移到新的领域。此处运用较多的模型是,multi-domain RNN dialog state tracking models和Neural Belief Tracker (NBT) 。
3)对话策略学习(Dialogue policy learning)
根据状态跟踪器的状态表示,策略学习是生成下一个可用的系统操作。无论是监督学习还是强化学习都可以用来优化政策学习。监督学习是针对规则产生的行为进行的,在在线购物场景中,如果对话状态是“推荐”,那么触发“推荐”操作,系统将从产品数据库中检索产品。强化学习方法的引入可以对对话策略进行进一步的训练,以引导系统制定最终的策略。在实际实验中,强化学习方法的效果超过了基于规则和监督的方法。
4)自然语言生成(Natural Language Generation,NLG)。 根据对话策略选择操作进行映射并生成相关的回复。
3.2.2 端到端方法
因为基于管道方法的对话系统中有许多特定领域的手工制作,所以它们很难适用于新的领域。近年来,随着端到端神经生成模型的发展,为面向任务的对话系统构建了端到端的可训练框架。与传统的管道模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。
图5 一种基于网络的端到端可训练任务导向型对话系统
上图的模型是一种基于网络的端到端可训练任务导向型对话系统,将对话系统的学习作为学习从对话历史到系统回复的映射问题,并应用encoder-decoder模型来训练。然而,该系统是在监督的方式下进行训练——不仅需要大量的训练数据,而且由于缺乏对训练数据对话控制的进一步探索,它也可能无法找到一个好的策略。
图6 一种端到端强化学习的方法
随着强化学习研究的不断深入,上图的模型首先提出了一种端到端强化学习的方法,在对话管理中联合训练对话状态跟踪和对话策略学习,从而更有力地对系统的动作进行优化。
四、小结
目前,深度学习已成为对话系统的一项基本技术。研究人员将神经网络应用于传统任务导向型对话系统的不同组成部分,包括自然语言理解、自然语言生成、对话状态跟踪。近年来,端到端的框架不仅在非面向任务的聊天对话系统中流行,在面向任务的对话系统中也逐步流行起来,但是仍远非完美。
参考文献