这部分描述了工业中对话系统的前景,包括面向任务的系统(个人助理)、QA系统和闲聊型机器人。
6.1QA系统
包括谷歌,微软和百度在内的搜索引擎公司已将多轮QA功能纳入其搜索引擎,以使用户体验更具对话性,这对移动设备尤其具有吸引力。由于这些系统内部(例如Google和百度)的公开知之甚少,本节介绍了一些示例商业QA系统,其架构少部分在公共资源中描述,包括Bing QA,Satori QA和客户支持代理商。
6.1.1 Bing QA
Bing QA是Web级文本-QA代理的一个示例。它是Microsoft Bing Web搜索引擎的扩展。 Bing QA不是返回十个蓝色链接,而是通过使用MRC模型读取Bing Web搜索引擎检索到的段落来生成用户查询的直接答案,如图6.1所示。
Bing QA正在处理的Web QA任务比第3章中描述的大多数学术MRC任务更具挑战性。例如,Web QA和SQuAD的不同之处在于:如图6.1所示(左)。考虑到“迪士尼在哪一年购买lucasfilms?”这一问题,通过快速的主要排名从Web Index中检索出一组候选文档。然后在Document Ranking module中,使用基于随机森林的复杂文档排名器(Wu等人,2010)来为这些文档分配相关性分数。排名靠前的相关文档以SERP形式呈现,其标题由Query-Focused Captioning模块生成,如图6.1(右)所示。 Passage Chunking模块将顶级文档分成一组候选段落,这些段落通过Passage Ranking模块根据另一个段落等级的随机森林进一步排名(Wu et al。,2010)。最后,MRC模块从排名靠前的段落中确定答案范围“2012”。
将Bing QA变成了会话QA代理需要集成额外组件,如对话管理器,这是一项非常重要的持续工程工作,Bing QA已经可以使用对话查询理解(CQU)模块处理对话查询(例如,后续问题)(Ren et al。, 2018A)。如图6.2中的示例所示,CQU通过两个步骤将会话查询重新形成为搜索引擎友好查询:(1)确定查询是否依赖于同一搜索会话中的上下文(即,先前的查询和答案),( 2)如果是,则重写该查询以包括必要的上下文,例如,在Q2中将“its”替换为“California”,并在图6.2中的Q5中添加“Stanford”。
6.1.2 Satori QA
Satori QA是KB-QA代理的一个例子, Satori是微软的知识图谱,由Freebase播种,现在比Freebase大几个数量级。 Satori QA是一种混合系统,它使用神经方法和符号方法。
它生成对事实问题的答案。
与Web QA类似,Satori QA需要处理有关可伸缩性,噪声文本,速度等问题。提高系统稳健性和运行效率的一种常用设计策略是将复杂问题分解为一系列简单问题,这些问题通过Web级KB-QA系统更容易回答,并通过重新组合答案序列来计算最终答案,如图6.3所示(Talmor和Berant,2018)。
给定用户对问题的描述,例如“不能更新我的帐户的个人信息”,代理需要推荐预编译的解决方案或要求人工代理提供帮助。对话通常由多个轮次组成,因为代理要求用户在浏览知识库以找到解决方案时澄清问题。这些代理通常将文本和语音作为输入。
6.2 任务导向的对话系统(虚拟助理)
如今,商业面向任务的对话系统通常存在于智能电话,智能扬声器和个人计算机中。他们可以为用户执行一系列任务或服务,有时也称为虚拟助理或智能个人助理。一些示例服务提供天气信息,设置警报和呼叫中心支持。在美国,最广泛使用的系统包括Apple的Siri,Google Assistant,Amazon Alexa和Microsoft Cortana等。用户可以通过语音,文本或图像自然地与他们进行交互。要使用语音激活虚拟助理,可能会使用唤醒词,例如“OK Google”。
Microsoft的任务完成平台(TCP)(Crook等,2016)是一个用于创建多域对话系统的平台。如图6.4所示,TCP包含语言理解,状态跟踪和策略。TCP的一个有用特性是任务配置语言TaskForm,它允许将各个任务的定义与平台的总体对话策略分离。 TCP用于为Cortana个人助理支持的多轮对话提供动力。
微软的另一个工具是LUIS,一种基于云的API服务,用于自然语言理解。
它提供了一套预先构建的域和意图,以及非专家使用机器学习通过提供培训示例获得NLU模型的便捷界面。一旦开发人员创建并发布了LUIS应用程序,该应用程序就可以被客户端对话系统用作NLU黑盒模块:客户端向应用程序发送文本话语,这将以JSON格式返回语言理解结果,如图所示图6.5。
虽然LUIS专注于语言理解,但Azure Bot Service允许开发人员在一个地方构建,测试,部署和管理对话系统。它可以利用一系列智能服务,包括LUIS,图像字幕,语音到文本功能等。
DialogFlow是Google用于在网站、移动设备和物联网设备上创建对话系统的开发套件.与上述工具类似,它提供了促进对话系统各种模块开发的机制,包括语言理解和多次转载信息。此外,它可以将对话系统部署为用户可以通过Google智能助理调用的操作。
Chatbots
几十年来一直有公开可用的会话系统(Weizenbaum,1966; Colby,1975)。然而,今天聊天机器人系统的这些前身在很大程度上依赖于手工制作的规则,与第5章讨论的数据驱动的会话AI系统几乎没有共同之处。相比之下,今天的公共可用和商业聊天机器人系统通常是统计方法的组合。和手工制作的组件,其中统计方法为会话系统提供稳健性(例如,通过意图分类器),而基于规则的组件通常仍在实践中使用,例如,处理常见的闲聊查询(例如,“告诉我一个笑话”) 。
此类系统的示例包括个人助理,如亚马逊的Alexa,Google智能助理,Facebook M和微软的Cortana,除个人助理技能外,还能够处理闲聊用户输入。其他商业系统,如小冰, Replika,