基于大数据与深度学习的自然语言对话

图灵汇官网

前言

我们在日常生活中经常使用自然语言对话系统,比如苹果公司的Siri。大多数现有的对话系统只能处理单轮对话,帮助用户完成一些简单的任务,如查询天气或股票信息。这类系统的基本技术可分为两类:基于规则的方法和基于数据的方法。你可能好奇自然语言对话系统的工作原理,尤其是如何通过数据驱动的方式来构建这样的系统?

最近,基于数据的自然语言对话技术取得了显著进展。利用深度学习和大数据,可以轻松构建单轮对话系统,并自动生成回复。例如,利用500万条微博数据,系统可以根据用户输入的句子自动生成回复。用户输入“我想买一部三星手机”,系统可能回复“还是支持一下国产的吧”。你或许想知道这种技术是如何实现的,以及能达到怎样的效果?

本文旨在系统解答这些问题。首先指出,自然语言对话将成为人们获取信息的主要方式,信息检索领域的研究范式也将随之改变。随后,我们将定义自然语言对话任务,分类相关技术,并列出主要技术挑战。接着,详细介绍如何构建基于数据的对话系统。最后,深入探讨最新的基于深度学习的对话技术,包括深度学习在自然语言表示学习方面的最新成果。

信息检索领域的范式转移

“科学的发展依赖于间断性、革命性的变化”,这是科学哲学家托马斯·库恩的观点。库恩认为,每个科学领域都有不同的“范式”,这些范式有不同的研究对象、基本概念、解决问题的方法,甚至不同的研究群体。比如,在物理学领域,量子力学与牛顿力学属于不同的范式。库恩称之为“范式转移”。

信息检索是计算机科学的一个分支,研究和开发计算机帮助用户管理和访问信息的技术。回顾信息检索几十年的发展历程,可以看到它经历了两个主要范式:图书馆搜索和互联网搜索。七十年代的研究重点是如何帮助用户在图书馆快速查找文献资料,许多关键技术如向量空间模型得以开发。九十年代的研究重点则转向如何帮助用户在互联网上迅速访问网页,链接分析、排序学习、语义匹配、日志分析等技术也被开发出来。

2011年,苹果公司发布了语音助手Siri,标志着自然语言对话成为信息检索的新手段。如今,移动设备已成为个人计算的主要平台,自然语言对话成为人机交互最自然、最高效的方式。尽管自然语言对话技术已取得一定进展,但仍不够成熟,无法很好地理解用户意图。因此,围绕自然语言对话仍有许多待解决的挑战,这也使其成为信息检索领域新的研究重点。

自然语言对话

自然语言对话可以形式化为一个问题:一个计算机系统(对话系统)与一个用户进行多轮交谈,用户通过自然语言如中文或英文与系统互动,系统帮助用户完成特定任务,特别是访问信息的任务。

自然语言对话是实现人工智能的重要标志,其研究与开发有着悠久的历史。目前,许多自然语言对话系统已被开发出来,在受限条件下可以与用户进行一定程度的对话,帮助用户完成简单的任务。然而,大多数现有系统只支持单轮对话,即便有多轮对话,也只是在单轮对话基础上进行简单的处理。这些技术包括基于规则的方法和基于数据驱动的方法。

例如,早在六十年代就出现了基于规则的著名系统Eliza,能够与用户进行简单的对话。Siri发布后,许多对话产品相继出现,如谷歌Now、微软Cortana等。国内也有许多聊天机器人发布,如微软的小冰,受到了广泛关注。大部分对话系统采用基于规则或基于数据的方法。

尽管自然语言对话技术取得了一些进展,但仍存在很大的发展空间。自然语言对话的应用场景广泛,比如在智能手机上完成订酒店等复杂任务,或实现自动化的呼叫中心。当前,对话系统的核心问题在于如何理解和响应用户语言,以帮助用户完成任务。目前的语音助手还未能达到这一目标。

基于数据的对话系统

大数据时代的到来为自然语言对话研究提供了新的机遇。通过实际场景获取大量对话数据,可以构建数据驱动的自然语言对话系统。例如,记录呼叫中心的话务员与客户的对话,可以用来构建自动化的呼叫中心。

构建对话系统的一个重要挑战是计算机理解人类语言的能力。一个可行的方法是采用数据驱动的方式构建对话系统。借鉴搜索技术的成功经验,尽量避免自然语言理解的难题,通过数据驱动解决问题,成为实现人工智能技术实用化的一种有效途径。因此,我们可以将对话系统的主要部分用数据驱动的方式构建,而将轻量级的知识使用、推理和对话管理留给其他方法。

自然语言对话可以分为单轮对话和多轮对话进行研究。单轮对话是基础,也是研究的重点。单轮对话可以基于规则,也可以基于数据。基于数据的方法又可以细分为基于检索的方法和基于生成的方法。

深度学习与语义表示学习

近期,深度学习技术取得了突飞猛进的发展,为语音识别、图像识别和自然语言处理提供了强大的工具。其中,基于深度学习的对话系统受到了广泛关注。深度学习为自然语言处理带来的根本突破是语句的语义表示学习,这也是基于深度学习的对话技术的基础。

在自然语言处理领域,通常使用实数值向量表示单词的语义。其基本假设是单词的语义可以通过与其他单词的共现关系来确定。例如,统计一个单词与其它单词在一个数据集中的共现频率,并将其表示为向量。这些向量可以很好地表示单词的语义相似性,两个单词向量的余弦相似度越大,两个单词的语义就越接近。

最近,自然语言处理与深度学习结合,使得通过深度学习用实数值向量表示语句的语义成为可能。例如,“John loves Mary”和“Mary is loved by John”的语义向量相近,而与“Mary loves John”的语义向量相距较远。

接下来,我们将详细讲解四种深度学习方法:单词嵌入(word embedding)、循环神经网络(RNN)、卷积神经网络(CNN)和递归神经网络(RNN)。这些方法是语句语义学习的强大工具。

基于深度学习的自然语言对话系统

华为诺亚方舟实验室是最早使用深度学习技术开发自然语言对话系统的研究机构之一。他们提出了几种具有代表性的模型,包括基于检索的单轮对话系统和基于生成的对话系统。

基于检索的方式将对话视为搜索问题。系统索引大量对话数据,每一个实例由单轮对话中的一对信息与回复组成。给定一个信息,系统从索引中找出相关信息与回复对,计算输入信息与检索到的回复之间的匹配度,并基于匹配度对回复进行排序,然后返回最相关的回复。关键问题在于如何实现不同的匹配模型。我们提出两个基于深度学习的匹配模型。

第一个匹配模型称为Deep Match CNN,它通过将两句话输入到CNN模型中,得到它们的语义表示,再通过多层神经网络判断两句话语义的匹配程度。

第二个匹配模型称为Deep Match Tree,它基于句法分析结果,判断两句话是否可以形成一轮对话中的信息与回复。通过对两句话进行句法分析,得到两个句法树,再看两个句法树的子树是否满足各种匹配模式。最后将匹配结果输入到多层神经网络,判断两句话的匹配程度。

基于生成的方式将对话视为基于信息产生回复的问题。系统利用大量对话数据构建生成模型,给定一个信息,系统自动生成一个回复。关键问题在于如何实现这个生成模型。我们提出了一个基于深度学习的生成模型,称为Neural Responding Machine(NRM)。

NRM的基本思路是将输入的一句话看作一个单词表示的序列,通过编码器将其转换成一个中间表示的序列,再通过解码器将中间表示转换成一个单词的序列,作为一句话输出。

基于检索的对话系统和基于生成的对话系统各有特色。生成系统比检索系统的准确率更高,但在某些情况下可能会返回语法不通的句子。生成系统在标准数据集上的准确率为76%,而检索系统为70%。然而,检索系统更为安全,不会返回语法不通的句子。

结束语

本文介绍了利用大数据与深度学习构建自然语言对话系统的技术。最近,基于深度学习的对话技术取得了一些令人振奋的进展。尽管我们还不清楚能否完全实现或局部实现自然语言对话,但至少我们看到了许多可以尝试的路径和机会。

本文来源: 图灵汇 文章作者: 龙洋梅