本文转自头条号 企业网D1Net
聊天机器人为人们带来一种智慧的感觉,但实现真正的智能还有很长的路要走。
欢迎来到智能聊天机器人的世界:智能伴侣和会话代理将让人们的生活更加智慧。一篇人工智能行业的研究论文甚至指出,到2020年,人类与机器人的交流甚至比其配偶交流还要多。所以,人们需要为接受这种新生活做好准备。
第一个人形机器人Sofia得到行业媒体的广泛关注,并使用类似人类的对话进行采访。Sofia与人类相比如何?事实超出了人们的想像。Sofia聊天机器人只提供了理解对话的假象,但是当记者提出比较复杂的问题时,开始意识到Sofia只能回答一组固定的问题。
那么到现在为止,人们需要对聊天机器人有更加清晰的认识。
企业是否应该投资具有这些限制因素的聊天机器人?每种聊天机器人技术都有其缺陷,但需要了解现在可以构建的内容、需要避免的内容,以及如何突破这些限制。
许多企业尝试使用行业领先的聊天机器人供应商和云计算技术来构建复杂的聊天机器人,并进行了大量投资,却遇到了一些障碍。如果企业是根据计划的内容实施项目并开始构建的话,很快就会认识到这些限制。然而,大多数供应商都声称构建聊天机器人很容易,但实际上,在构建真正的会话代理时,所有这些技术都不尽如人意。
通过聊天机器人的当前实现,人们采用的可能是第一代人工智能聊天机器人,它们通过编写脚本来回答针对性的问题。这里所说的“脚本化”是指聊天机器人经过训练,能够理解一般词汇、实体、隐喻、同义词等。聊天机器人使用一组固定的数据流来理解场景。对于特定于领域的用例,需要进行额外的训练,并且需要对特定领域术语和单词之间的关系进行训练。例如,如果企业正在建立一个购物顾问聊天机器人,“黑白相间的连衣裙”意味着“黑白”作为颜色和服装的类别。人们可能会期望颜色“黑白”是相当通用的,应该很容易被人工智能系统识别出来,但事实并非如此,将在本文中介绍这一点。
本文的目的是帮助人们就如何使用现有的聊天机器人实现设计人工智能聊天机器人和解决方案做出明智的决定。
什么是聊天机器人?
聊天机器人是机器人与人类进行对话的软件程序。这种对话可以通过文本方法、语音,甚至通过识别人类表达来实现。
聊天机器人的互动范围从简单的答案到诸如“外部温度是多少”等问题,以及需要进行一系列对话以获得结果的复杂用例,例如使用聊天机器人预订假期旅行或提供财务建议。
用于构建聊天机器人的技术是什么?
聊天机器人并不是一个新概念。早期的技术使用来自用户的一组固定输入来驱动对话或扫描输入消息,以从数据库中查找关键字和查找信息/响应。这些都是基于规则和关键字驱动的,而无需机器人理解输入消息的场景和含义。基于输入,将提供预定义的编程响应。
随着人工智能的出现,聊天机器人使用自然语言处理等技术来理解输入消息中的语言和意图,并采取纠正措施。当人工智能系统试图理解人类语言,而以多种方式问相同的问题时,人工智能系统能够理解总体意图。一旦确定了意图,就可以从输入中提取感兴趣的主题。
例如,“找到从美国到英国的最便宜的航班”,其意思类似于“找到从美国到英国的价格最低机票”。其意图是最便宜或价格最低的航班,而位置是从美国到英国的航班。
人工智能开源软件包或人工智能的自然语言处理(NLP)云服务可以用来开发聊天机器人,人们将其称之为“聊天机器人实现”,以备将来参考。在本文中,将详细讨论聊天机器人的实现。
开发人工智能聊天机器人应该记住什么?
当人工智能系统很好地理解域时,聊天机器人工作得很好。
由于人工智能聊天机器人依赖于自然学习处理(NLP)来理解输入消息的语义,除非在域上训练自然学习处理(NLP)解析器,否则识别感兴趣的意图和主题的准确性将是非常低或不可接受的。
以购物聊天机器人为例,它根据最新的流行趋势为用户提供购买建议。
考虑以下来自用户的3个查询。
查询1-“展示黑白颜色的流行趋势,适用于中等规模的圣诞派对的礼服。”
查询2-“展示白色3英寸高跟鞋。”
查询3-“找一件2000美元以下的黑白花卉连衣裙。”
在这里,聊天机器人需要了解以下内容:
任何聊天机器人实现都不会理解域。开发者需要在自定义域上训练聊天机器人以识别场景和语言。
例如,现有的自然学习处理(NLP)解析器不会将“AND”识别为品牌。那么来看看一些领先的CloudAINLP服务如何识别这句话,“找一件2000美元以下的黑白花卉连衣裙。”
这是WatsonNLP实现的快照
WatsonNLP的概念
来自WatsonNLP的部分结果
正如人们所看到的,WatsonNLP将“白色花卉连衣裙”视为关键词,将“黑色”视为概念。理想情况下,它应该将“黑白”识别为一个概念,因为正在寻找这些颜色的组合。
这件衣服也可以是一个概念,因为它非常通用。花卉可以是其服装的关键字。以正确的方式识别所有事实很重要,因为根据事实,可以将其转换为搜索查询,以从数据存储(或从相应的搜索索引)获取所需的详细信息。
例如,上述内容应分解为:
颜色=“黑与白”
类别=“连衣裙”
性别=“女性”
价格<2000美元
图案=“floral”或类别中的关键字=“floral”
(颜色、类别、性别、价格、图案是人们要搜索的所有列或索引)
WatsonNLP解析器不会将“AND”识别为一种品牌,而将“AND”识别为“和”这个连词,这并不奇怪,因为它没有接受此输入的训练。
那么来看看GoogleNLP如何对这句话进行分类。以下是GoogleNLP的快照。
来自GoogleNLP的实体分类
GoogleNLP部分展示结果
从上图中可以看出,GoogleNLP将实体识别为“服装”,但不识别“黑白”的颜色。对于品牌标记的部分,它就像WatsonNLP识别“AND”一样,认为它是一个连词而不是品牌。
以上情况适用于任何可用的自然学习处理(NLP)实现,它无法理解句子的正确场景。其用例非常简单。即使在这些示例中训练自然学习处理(NLP)实现,它也会失败,因为开发者需要为这些条件插入特定的自然学习处理(NLP)规则以获得所需的结果。随着需要推断的复杂性和场景的增加,进行训练也无济于事,因为开发者永远无法为此类条件提出通用模型。如果只依赖目前的自然学习处理(NLP)实现的话,这将成为开发聊天机器人的最大限制。
根据行业专家在构建复杂的购物个性化顾问方面的经验,所有现成的人工智能自然学习处理(NLP)实施都不符合要求。这三个短语中有一个简单的场景:“黑白连衣裙”,“黑色连衣裙”和“蓝色牛仔裤和白色衬衫”。在所有3个例子中,“AND”这个词的使用有一个不同的意思。在第一种情况下,它表示颜色“黑白”的组合,在第二种情况下,“AND”代表品牌,而在第三种情况下,AND是两种查询的连接(也就是“和”)。即使有必要的训练,任何可用的解决方案都无法实现推广模型。这些只是需要强调的众多例子中的一小部分。想象一下处理医学文献时的复杂性。在这个案例中,最终构建了针对所有此类场景的特定于域的自然学习处理(NLP)实现。
一般来说,在设计聊天机器人解决方案时,从一个封闭的域开始,以及聊天机器人需要回答什么样的问题。不要从一开始就构建通用聊天机器人,因为很难获得所需的准确性。其次,如果开发者使用的是云计算供应商或第三方实现,请确保其用例可以通过默认实现,或者需要构建组件来解决它。
构建聊天机器人的典型用例是什么?
在当今的数字时代,客户正在寻找即时信息和快速解决所有问题的方法。
聊天机器人提供了一种有效的方式,可以直接与终端客户保持联系,并提供信息——无论是通过消息聊天应用程序,还是通过Alexa或GoogleHome等支持语音的服务。
下面列出了一些典型的用例:
了解客户并通过各种渠道直接与客户互动的能力,如零售品牌直接与最终客户联系。
提高客户参与度、互动性,并提供快速解决方案。
通过全天候向客户提供相关信息来扩展客户服务运营。
更好地了解客户及其偏好,以提供超个性化服务,如个人助理。
提供以自然直观的方式与智能家居等互联设备进行交互的能力。
提供专家指导,如提供投资建议的财务助理的聊天机器人。
构建人工智能聊天机器人的高级步骤是什么?
以下是构建人工智能聊天机器人的高级步骤:
定义构建聊天机器人的业务用例和最终目标。
定义对话接口
确定问题的现有来源(如果有),例如网站常见问题解答、呼叫中心日志等。
创建将要询问的问题的表示。
创造不同的问题来训练聊天机器人理解语言并能很好地概括。
确定答案来源-是程序化响应还是来自内部知识来源和文档(如解决设备相关问题的可用技术手册)
在此步骤中,开发者将决定如何实现聊天机器人。有两种方法:使用可用的框架(如TensorFlow、NLP实施的NLP实现)和自定义组件或使用现有的平台服务(如GoogleNLP、AmazonLex或AzureBot服务)构建开发者自己的聊天机器人实例。
在这两种方法中,开发者都需要训练聊天机器人实例以识别问题意图、域和语言。现有平台服务通过提供使创建聊天机器人更容易的必需实用程序简化了此过程。
在此步骤中,开发者将决定如何通过所需通道向最终用户公开聊天机器人。该频道可以是网络、移动或语音设备。
聊天实例通常会公开API(提出问题并获得响应),这可以通过渠道实施来调用。开发者还可以通过FacebookMessenger等第三方服务或AmazonAlexa等语音服务发布开发者的聊天机器人实施。
聊天机器人发布之后,开发者通常会存储所有用户交互,以帮助其更好地分析用户行为及其偏好。反过来,用户和行为数据将用于提供更个性化的服务。如何使用此新用户信息取决于开发者的用例。例如,如果旅行聊天机器人推荐新的假期旅行,它可以根据其上次的旅行互动建议选项。开发者需要构建一个推荐系统,该系统会查看过去用户交互的历史记录并建议选项。
另一个重点是定期捕获用户的反馈,以了解聊天机器人是否提供了正确的信息。捕获的反馈将用于改进聊天机器人实施,这可以导致使用新信息训练聊天机器人实施。例如,开发者的聊天机器人可能未接受过识别某些实体和概念的培训,因此,其答案可能不合适。开发者需要根据反馈计划构建和发布增量模型。
如何将聊天机器人与第三方服务集成?
作为聊天机器人技术实施的一部分,聊天机器人实例通常会公开API(提出问题并获得响应),这可以通过渠道实施来调用。
频道可以是网络、移动或语音设备。如果开发者已经有一个移动应用程序,可以将其作为移动应用程序的一部分嵌入。
开发者还可以通过第三方聊天启用的服务(如Facebook消息传递应用程序)或通过支持语音的服务(如AmazonAlexa)作为技能发布其聊天机器人实例。
所有这些启用聊天的服务都提供了一个框架来插入开发者的实例。该框架提供了用于拦截聊天消息的代码拦截器。开发者需要扩展其框架并插入自己的实例。例如,如果用户在FacebookMessenger上询问问题,则问题将通过预定义的代码拦截器传递给开发者的聊天实例。将处理该消息并将响应发回,这将被发送回用户。
同样,如果开发者需要通过Alexa使聊天机器人可用,需要使用Alexa技能套件界面将其包装为Alexa技能。用户在Alexa中启用开发者的技能后,其技能将截获任何语音消息,可以根据聊天机器人提供所需的实施和响应。
如何使用聊天机器人平台构建聊天机器人?
聊天机器人平台为开发者提供了一组设计、开发和部署聊天机器人的服务。它们为开发者提供了框架和指导实用程序来构建聊天机器人。
AWS、Azure、IBM、GoogleCloud等云计算提供商为开发者提供了一组服务,可以帮助其生成对话,使用自然语言处理(NLP)技术了解对话语言,创建代码拦截器以采取必要的操作,并通过API提供解决方案。
每个提供商采用的基本方法是相同的。它们允许开发者:
提出一系列问题和多种方式,可以提出相同的问题。
定义问题的意图。例如,对于“查找从美国到英国的最便宜航班”的问题,意图是找到最低的机票价格。
找出要从意图中提取的感兴趣的实体。聊天机器人提供商需要了解这些实体。在上面的示例中,实体是国家/地区列表:英国,美国等。这些实体可以是通用的,由云计算提供商自动识别,或者云计算提供商提供可以提供或培训这些实体的机制(包括同义词、隐喻等)。
使用提取的实体执行意图所需的操作。例如,在上面的示例中,调用提供英国和美国作为“从”和“到”位置的航班API服务。
提供响应。
上述技术适用于简单到中等复杂的流程,例如常见问题解答,针对客户查询的复杂问题和答案,固定的步骤(预订出租车)等。任何需要复杂处理查询的东西,例如购物顾问示例,需要使用自然语言处理(NLP)和其他技术定制开发。
微软公司提供了一个问题和解答服务,可让开发者通过问题和解答创建机器人。
聊天机器人不是真实的吗?
当前一代聊天机器人可以被认为是通过自然语言处理(NLP)和固定会话流等技术驱动的智能对话系统。
聊天机器人不了解任何域名。开发者需要训练聊天机器人以了解域名。此外,根据域的复杂性,将逐步训练和添加子域。例如,帮助客户预订出租车的聊天机器人是一个固定域名的示例,而帮助医生进行癌症治疗的聊天机器人将逐步接受各种类型的癌症培训。
现在看看围绕人工智能聊天机器人的一些营销噱头:
掌握并了解所有聊天机器人——这些聊天机器人正在销售,用户可以在其中摄取数百万份文档,如医学文献,并可以提出问题,这些问题可以提供疾病诊断等专家协助。除非经过适当的训练,否则这类系统永远不会提供所需的准确性。适当是指训练这些系统可能需要数年时间。这些系统的根本问题在于它们仍然无法理解域的完整语言和复杂性。用户通常最终会使用自定义域名和无限语言规则,从长远来看,这绝对不够智能。这种系统的预测通常不准确。
自我学习聊天机器人。人们以前是否听过这个术语?这又是一个误解,据说聊天机器人可以自己学习。开发者必须训练聊天机器人需要学习的东西。通常,用户可以通过与聊天机器人应用程序的交互来捕获用户行为详细信息。这将包括捕获用户分析信息,例如通过显式或隐式方式以某种方式捕获信息。显式信息可以是产品的用户评级,隐含的可以是用户花在查看响应上的时间。
一旦很好地了解用户并获得了他们的数据,就会对开发者要向用户推荐的内容产生推荐问题。因此,开发者最终会构建推荐算法来推荐一些东西。例如,对于金融科技应用程序,这意味着根据他定期查看的股票或其投资组合推荐类似股票。
不同的域和用例需要不同的推荐算法,并且需要作为聊天机器人的一部分进行开发。然而,学习是封闭的。例如,如果开发者有一个可以帮助用户预订餐厅的聊天机器人,它可以推荐类似的餐馆,但它不能推荐住宿的地方,因为它只知道用户喜欢的口味。有人可以建立一个推荐系统,跟踪用户食宿问题,然后尝试提出一个提供推荐的相关性,正如系统现在所知,“用户吃XYZ很可能是冒险的。所以,推荐一个徒步旅行的地方。再次,在这种情况下,建议是根据用户知道的和想要推荐的内容。不知道是否存在任何此类假设,只能通过可以推断出的数据和反馈。关键是,所有这些假设、数据和反馈都需要设计和开发,并说聊天机器人自己学习是非常误导的。”
通用的、可生成聊天机器人能够从头学习新概念,并提供人类响应的聊天机器人。当它从开放领域学习时,聊天机器人的行为将类似于著名的MicrosoftTay聊天机器人,而它在发布日被迫中止发布,因为它开始从推文中学习不需要的细节,并开始发布煽动性和令人反感的推文。其生成的聊天机器人根据单词的概率制定响应,并创建一个语法正确的句子,而不理解其真正的意义。
正如以前提到的,第一个重点应该是正确地使用特定于域的聊天机器人,并且使用当前的技术,但远远没有实现愿景。
聊天机器人会让人工坐席过时吗?
为了回答这个问题,需要了解聊天机器人目前提供的功能。
当前的聊天机器人实例现可以很好地处理与用户、重复任务和客户服务任务的某些初始方面的固定对话框。只要有一组固定的流程和流程可以实现自动化,聊天机器人就可以用来为任何查询提供全天候支持。如果使用人类专业知识来回答基本的问题集,并且答案很容易获得,那么它最终将被替换。
但在现实生活中,大多数对话通常不遵循固定的流程范式。但是,如果会话从基本问题转移到需要进一步分析的问题,或者会话主题发生变化,那么用户需要一个复杂的聊天机器人实例来处理各种会话流,识别场景切换,识别用户的聊天机器人可能没有的意图,注意并创建查询以从其知识源中查找该信息。用户现在正在从一组固定的流程转移到需要由聊天机器人解释的更动态的流程。构建这样复杂的聊天机器人实例需要使用机器学习技术和自定义解决方案进行复杂的特定领域。而现有的聊天机器人服务无法构建这样的聊天机器人实例。
即使拥有世界上所有数据,使用当前技术和研究时的无限处理和计算能力,开发者也永远无法建立一个可以与该领域的专家竞争的系统。从现在开始,即使是5年的时间,也不可能开发出如此高水平的智能聊天机器人。
例如,聊天机器人或助手可以帮助医生准确而一致地推荐癌症治疗吗?答案是否定的。
聊天机器人提供的信息可以帮助医生从提供的答案中获取线索,这可能是对或错。用户永远不能证明这一点。聊天机器人总是可以帮助专家完成一些工作。最终,这些系统基于一些概率抛出了大量答案。其答案仅限于用户输入系统的内容,无法动态推断新知识或将人类专家等信息关联起来得出任何结论。
虽然有研究试图确定使用深层神经网络进行会话流的能力,但离构建真正的会话接口(能够理解语言和领域的本质)还很远。此外,所提供的答案必须是可解释的,并且,除非用户有一种方法来回溯为什么提供了一个特定的答案,否则这种深层次的神经系统不能用于需要可审计性和可解释性的用例。
聊天机器人给人们带来一种智慧的感觉,但达到真正的智能还有很长的路要走。
人工智能能否对问题产生动态响应?
开发者可以使用深度学习来构建聊天机器人。各种深度学习架构可用于解决特定的各种用例。例如,对于计算机视觉(即图像识别),用户将使用卷积神经网络技术作为起点。对于语言翻译或文本生成,可以使用循环神经网络等。
为了理解聊天对话,用户将从一个循环神经网络的变体开始。将构建序列到序列模型。简单来说,序列到序列模型由两个组件组成,第一个组件(编码器)试图通过其隐藏层理解输入句子的场景,第二个组件(解码器)接收来自编码器的输出并生成响应。
上述技术要求开发者拥有大量的训练数据,其中包含问题和答案。该技术在封闭域中工作,但由于响应本质上是动态的,因此将其直接放到最终用户可能会有点风险。其次,当开发者想要解释输入句子以提取信息并自己制定响应时,这些技术不起作用,例如以前讨论过的购物顾问查询用例。
在开放式域名的情况下,聊天机器人的行为类似于之前给出的MicrosoftTay聊天机器人示例。
对于循环神经网络(RNN),响应/答案取决于其先前的状态(或更早的状态)。因此,对于需要提供场景的深层会话用例,循环神经网络(RNN)不起作用。用户需要在循环神经网络(RNN)上使用名为长期短期记忆网络(LSTM)的变体。该领域正在进行大量研究。
总结
当前的聊天机器人是一种弱形式的人工智能,它提供了理解输入消息/问题意图的能力。为了让聊天机器人系统了解其意图,需要对其进行相应领域的培训。用户可以用多种方式问同一个问题,聊天机器人实例仍然可以推断出其意图。
对于对话框,当前的技术提供了定义固定会话流的功能,因此交互是封闭和有限的。
聊天机器人可以很好地管理生产力和客户服务任务的某些方面。但是,随着域的复杂性增加,当前的技术不足,即使经过足够的训练,用户也无法达到所需的准确度。用户需要依赖其他机器语言技术和解决方案(如规则、推理和自定义域元数据)的组合来提供解决方案。这些成为一次性解决方案,难以概括。在某些情况下,即使是一次性解决方案也会非常复杂,比如建立一个顾问来准确一致地推荐癌症治疗方法。
虽然有关于使用深度神经网络的研究,但仍然远远没有建立一个能够理解语言和领域本质的真正的会话聊天机器人。此外,所提供的答案需要解释,除非有办法回溯为什么提供特定答案,否则这种深度神经系统不能用于需要可审计性和可解释性的用例。