sponsored links

对话AI--问答系统,阅读理解综述第一部分概述

1概要

何为对智能话系统?既要能够模仿人类的对话交流,又要能够对历史问题以及现在问题做出精确、直接、简洁的回复。

这篇文章主要以阅读理解为内容(其他关于QA等问题可以参考文献[1]),将从以下几个方面对对话AI进行阐述:

  1. 对于对话AI的神经网络方法的理解
  2. 传统方法与现代NN方法的联系和比较
  3. 对于目前训练对话系统的最好的一些方法

1.1对话是什么样的任务呢?

首先看一个例子:
对话AI--问答系统,阅读理解综述第一部分概述

这个例子展示了一个对话系统应该解决以下几个问题:

  1. QA——对于一个query,需要系统能够做出精确直接的回复,当然这个过程是需要积累大量的常识、知识库,比如营销市场的数据集等。
  2. task completion——需要完成特定的任务,比如:预定机票、对营销做出决策以及会议安排等等。
  3. social chat——能够和用户正常、无缝地进行交流。

这样的话,我们其实可以通过集成多个单任务的对话系统(每一个只解决一个特定的任务)来解决上述问题。这些对话系统主要分为两个类别:

  • 以任务为导向的,像Amazon Alexa, Apple Siri, Google Home, and Microsoft Cortana,它们只能解决一些相对简单的任务,导航、订餐、预报天气等。
  • 聊天机器人,一个简单的例子就是微软小冰

建立这样的系统仍然是一个挑战,下图显示了两种对话系统的建立,一个是传统的方法,一个是完全以数据驱动的方法:
对话AI--问答系统,阅读理解综述第一部分概述

top——包括四个部分:

  • Natural language understanding,识别用户的意图,抽取用户的信息,可以使用CNN,DBNs,RNN等
  • state tracker,记录到目前为止,捕获到对话中所有重要信息的状态。常用的state结构是slot filling或semantic frame。单领域的,基于深度学习的belief tracking。基于RNN,多领域的tracking模型。以及提出了neural belief tracker(NBT)来检测slot-value pairs。
  • dialogue policy,基于当前的信息产生下一个action,可以使用监督学习和强化学习。也可以使用了深度强化学习,得到很好的表现。
  • Natural Language Generation,根据action产生对用户的response,基于LSTM的神经网络模型或者基于Seq2Seq方法。
    这里的NLU是用统计模型来处理。可靠的对话系统仍使用人工特征和规则来表示状态和策略、检测意图等,使得实际使用中的对话系统成本很高,而且可移植性较差。

bottom——数据驱动的方法:

  • 根据神经网络,直接端到端的进行训练

大部分的基于任务的对话系统,都是以模块化的方式,因为任务确定,模块确定,我只需要对这些模块定义好,就像工厂的流水线任务一样,每个部分只需要完成特定的功能即可。而聊天机器人是一个统一的系统,它是以情感为导向,目的就是能够和人正常聊天而不是完成某些任务,因此往往是以神经网络为训练模型,用大量人与人之间的对话作为训练语料。

最近提出如何将真实世界的知识以及图片和聊天机器人结合使得对话更加丰满和真实,参考文献[2],[3].

1.2一种统一的视角

上面举得例子可以看成为一系列的决策问题,是一种层级结构,top-level选择需要完成的哪一个特定的子任务,比如预定车票还是闲聊。low-level则是根据我选定的任务去选择相应的action,进而完成子任务。

这样的层级的决策过程可以看成是基于马尔可夫决策过程(MDPs)的数学模型[5]具体可以看参考文献。统一的分层MDPs已经应用于一些大规模开放域对话系统的发展。包括赢得2017年亚马逊Alexa奖的社交聊天机器人Sounding Board,以及微软小冰等等。这些系统都使用分层对话管理方式:top-level管理整个会话过程的,low-level处理不同类型子任务。

近几年,强化学习RL在对话系统上也提供一套机器学习的框架,但是通过RL让对话机器人和真实用户聊天的代价太大。因此实际中会有不同的机器学习方法的结合,比如在应用RL之前通过模仿还有监督学习等方法去获得一个good聊天机器人,这篇文章[1]接下来会介绍不同的ML方法。

1.3Nlp向神经方法的过渡

对话AI--问答系统,阅读理解综述第一部分概述

传统的NLP的处理过程如上图。NLP与大部分数据处理任务不同之处在于NLP需要理解的是不同层级的语言知识,包括音韵学,形态学,语法,语义和话语。这些小任务可以通过mapping、generalize等方法对自然语言进行消歧,从而形成可理解、精确、典型的特征,比如词性标注、上下文无关文法以及一阶逻辑谓词演算等等。随着数据驱动的统计方法的提出,这些方法可以作为特征工程中的重要特征的表达,用于机器学习模型。
神经网络的方法不依赖于人的手工特征,它学习一个特定的空间,这个空间知识被连续低维向量隐式表达,如下图,一般分为三个步骤:
对话AI--问答系统,阅读理解综述第一部分概述

  • 编码:将输入编码成一个低维向量表示(语义表达),方便神经网进行处理
  • 推理:根据输入和系统的状态产生response
  • 解码:将得到的response解码成输出的句子

这些都能够通过BP算法以及梯度下降进行学习,减少了特征工程,使得人们更加专注于神经网的结构到最终的应用架构。

介绍到这里就结束了,下一次我会总结这篇论文的第三章,关于MRC阅读理解。

[1]Neural Approaches to Conversational AI
[2]Ghazvininejad, M., Brockett, C., Chang, M.-W., Dolan, B., Gao, J., Yih, W.-t., and Galley, M.
(2018). A knowledge-grounded neural conversation model. In AAAI.
[3]Mostafazadeh, N., Brockett, C., Dolan, B., Galley, M., Gao, J., Spithourakis, G., and Vanderwende,
L. (2017). Image-grounded conversations: Multimodal context for natural question and response
generation. In IJCNLP.
[5]Sutton, R. S., Precup, D., and Singh, S. P. (1999b). Between MDPs and semi-MDPs: A framework
for temporal abstraction in reinforcement learning. Artificial Intelligence, 112(1–2):181–211. An
earlier version appeared as Technical Report 98-74, Department of Computer Science, University
of Massachusetts, Amherst, MA 01003. April, 1998.

Tags: