<audio id="audio" title="39 应用场景 | 心有灵犀一点通：对话系统" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/56/d3/56624d16e4a087b0ef99dc6ea3ee1ed3.mp3"></audio>

去年，人工智能领域的后起之秀Facebook着实火了一把。根据2017年6月17日美国《大西洋月刊》的报道，Facebook人工智能实验室设计的两个聊天机器人在谈判的训练中，发展出了一种全新的、只有它们自己能够理解的语言。

这一爆炸性的消息一时间引得各路媒体蜂拥而至，煞有介事地讨论着人工智能如何颠覆人类对语言的理解，进而联想到人工智能会不会进化为热映新片《异形：契约》中戴维的角色，人类的命运仿佛又被推上了风口浪尖。

可事实真的像媒体描述的那样耸人听闻吗？如果在网上搜索这些内容，你会发现那就像两个孩子之间的咿呀学语，根本没有任何语义可言——也确实是人类无法理解的语言。于是，本来是一次模型训练的失误，愣是被唯恐天下不乱的媒体解读为世界末日的启示录，让人哭笑不得。

言归正传，**人工智能的一个基本挑战就是赋予机器使用自然语言与人交流的能力**。虽然这一目标在科幻电影中早已实现，但在现实生活中依然任重而道远。

所有对话系统的祖师爷是诞生于1966年的Eliza，它由麻省理工学院的人工智能专家约瑟夫·魏岑鲍姆设计。有些出人意料的是，她扮演的角色是心理咨询师，并在这个角色上获得了相当程度的认可。Eliza根据人工设计的脚本与人类交流，她并不理解对话内容，只是通过模式匹配搜索合适的回复。

设计者魏岑鲍姆将Eliza的基本技术问题总结为以下五个：**重要词语的识别，最小语境范围的判定，恰当的转化选择，适当回复的生成和结束对话的能力**。这个提纲为前赴后继的对话系统研究者们指明了研究方向。

如果说Eliza代表了对话系统的1.0版对话机器人，那么以Siri、Cortana和Google Now为代表的语音助手就代表了对话系统的2.0版，也就是**智能个人助理**。它们的作用是提供各种被动性和主动性的帮助，以辅助用户在多个垂直领域完成任务。

还是以Siri为例。Siri的系统运行环境被称为“活跃本体”。在这里，执行系统调用所有系统数据、词典、模型和程序，对用户输入进行解析，从而理解用户意图并调用外部服务。解析的过程由执行系统完成，它包含语言解释器、会话流控制器和任务控制器三个部分。语言解释器对文本形式的用户输入进行解析，会话流控制器根据语言解释器的解析结果生成会话，协同任务控制器确定Siri的输出。

随着社交网络的发展，作为对话系统3.0版的**社交聊天机器人**正在走向成熟，它们可以满足用户对于沟通、情感及社会归属感的感性需求。这一领域的一个大玩家是互联网的新晋巨头Facebook。自2015年起，Facebook开展了大量针对对话系统的研究。而在2017年的**国际学习表征会议**（International Conference on Learning Representations）上，Facebook也系统地展示了在对话系统上的研究成果。

Facebook的一个研究方向是通过端到端方式自行训练对话系统的可能性。诸如语音助手之类的传统对话系统都是目标导向的，即对话的目的是在有限的轮次内解决某些问题。为达到这一目的，语音助手采用的是空位填充的方式，每个空位代表着对话涉及内容的一个特征量。

对于餐厅预订的对话系统来说，其空位就会包括餐厅位置、价格区间、菜式类型等内容。但这样的对话系统不仅需要大量的人为训练，而且只适用于特定问题，难以推广到其他应用场景之下。不同任务定义的特征量是不同的，餐厅预订的对话系统显然不能实现推荐电影的功能。

相比之下，**基于神经网络的端到端对话系统不需要人为介入，而是从对话本身中进行学习**。所有元素都是从过往的对话过程中训练产生的，这就无需对对话的内容做出任何先验假设。这种方式由于无需人为干预，训练出来的对话系统也具备更强的通用性。

**端到端对话系统采用的模型是记忆网络**。相对于普通神经网络，记忆网络的优势在于能够实现长期记忆，对话中的每一句话都被存储到记忆模块中，保证了信息不在压缩的过程中被丢失。正因为如此，记忆网络能够实现基于过往对话内容的学习，通过迭代读取已有对话的内容并结合短期的上下文语义来决定输出。

Facebook对对话系统的期望远非实现预定餐厅这么简单，他们的愿景是实现具备通用人工智能水平的语音助手，既可以自由聊天又能够根据目标实现知识库调用。其研究一方面通过记忆网络的引入避免了大量的人工干预，解决了通用对话的方法论问题；另一方面提出了将一个对话任务分解为若干子任务的方法，简化了技术实现和定量评价的难度，给通用对话研究开辟了一个崭新的方向。

在Facebook看来，对话系统中人为干预的作用是纠正机器所犯的错误，并让机器不会被同一块石头绊倒两次。在大多数研究依然聚焦在对固定数据集中的标签数据进行学习时，**Facebook独辟蹊径，提出了通过与人类对话者的线上互动实现学习的想法**。其研究的对话系统既能根据负反馈对模型进行调整，也能根据正反馈对模型进行加强，这对在通用环境中使用有监督模型训练出的聊天机器人尤其重要。

在与对话伙伴的实时互动中，对机器人对话内容的反馈被纳入深度学习的整体框架中。对话是在问答任务的背景下进行的，机器人必须以简短的故事或一组事实来回答对话伙伴的一系列问题。

在这个过程中，反馈的形式包括两种：一种是在常规的深度学习中使用的明确的数字类型回复，另一种是在人类对话中更加常见的文本式反馈。在处理反馈的过程中，如何以最小的反馈量实现对机器人的高效训练，机器人如何利用不同类型的反馈信号，在实时学习中如何避免收敛性差与不稳定性等都是需要解决的问题。

在论文中，聊天机器人使用的仍然是基于记忆网络的端到端模型，并采用深度学习进行训练。训练的结果表明，在考虑学习算法中不稳定性问题的前提下，线上的实时训练和迭代训练都能够得到较好的效果。在机器人已有初始固定数据集训练基础的前提下，与人类实时或半实时的互动学习能够有效提升机器人的表现，这样的学习过程甚至可以无限地持续下去，这是不是意味着学无止境的道理对人工智能同样适用呢？

**Facebook的研究重新审视了监督在对话系统训练中的作用**。监督的目的不是纠正某个单独语句的错误，而是从策略上动态改善对话表现。与人类对话伙伴实时互动，在某种程度上讲可以说是对机器思维方式的训练。互动的引入突破了暴力搜索的传统方法，让聊天机器人基于推理而非寻找实现对话内容的选取，这也给通用人工智能带来了一丝微弱的曙光。

当人类遇到难以回答的问题时可以选择提问，聊天机器人却只能要么选择猜测，要么调用外部的搜索引擎，这显然达不到良好的学习效果。在互动中，聊天机器人不仅要回答问题，更要提出问题，并从提问中进行学习。智能的聊天机器人应该能够在线上或线下的强化学习中通过提问得到提升。

机器人的提问可以细化为三个场景：当机器人不能理解对话伙伴的表述时，需要进行问题澄清；当机器人在对已有知识库的推理中遇到麻烦时，需要进行知识运用；当机器人的已有知识库不完整时，则需要进行知识获取。

不同场景下机器人提问的方式也不相同：在问题澄清中，机器人会要求同伴确认问题或重新表述问题；在知识运用中，机器人会请求相关的知识或询问问题是否与某个特定的知识有关；在知识获取中，机器人则会直接要求对话同伴给出答案。

相对于特定的提问任务，在提问互动中更重要的是机器人学习在什么时机提问以及提问什么内容。在现实中，机器人的提问消耗的通常是人类的耐心，一个十万个为什么一样的聊天机器人肯定会被迅速弃用。

因此，机器人对何时提问和提问什么要有一定的判断力，而这种判断力可以通过**强化学习**来建模和训练。实验的结果表明，理想的提问策略是机器人首先学习对话任务，再根据基于提问成本的问答策略和自身回答问题的能力来学习改善自己的性能。

今天我结合Facebook公司公开的资料，和你分享了对话系统的发展历程与一些最新进展。其要点如下：

- 早期的对话系统通过模式匹配和智能短语搜索对人类的合适回复；
- 智能个人助理可以帮助用户在多个垂直领域完成任务；
- 社交聊天机器人的作用是满足用户的情感需求；
- 神经网络能够帮助社交聊天机器人实现通用化的学习。

社交聊天机器人的发展也带来了关于道德规范的问题，一些机器人从社交网络上学到的想法需要引起注意与警惕。结合人工智能在无人武器中的规模化应用，对人工智能进行法律约束似乎已经迫在眉睫。那么应该如何看待与应对人工智能带来的伦理问题呢？

欢迎发表你的观点。

<img src="https://static001.geekbang.org/resource/image/9e/62/9e2357643a257b218f8a6c55694f3462.jpg" alt="">


