全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
872 0
2020-11-05
ChatBots API的比较分析
人工智能正在兴起!这并不是在遥远的将来对人类创造者的机器叛乱,而是在信息技术中使用基于机器的预测和决策的一种日益增长的现代趋势。AI炒作无处不在:无人驾驶汽车,智能图像处理(例如 Prisma)和通信领域的使用,例如会话AI(又名聊天机器人)。
聊天机器人行业正在快速发展,但是技术还很年轻。对话型机器人曾经很空缺,就像老式的基于文本的游戏“我闻到了乌鸦”一样,但现在它们已经发展成为一种顶级商务工具。聊天机器人提供了一种新型的简单友好的界面,用于浏览信息和接收服务。IT专家和包括Google,Microsoft和Facebook在内的行业巨头都同意,这项技术将在未来发挥巨大作用。
要享受对话式人工智能工具(或聊天机器人,如果您精通的话)的奇妙之处,必须掌握基础知识并了解典型的堆栈。在本文中,我们将讨论您可以使用的各种乐器,它们之间的相似之处和不同之处,以及它们的起伏。
但是,在我们开始探索它们之前,让我们深入了解聊天机器人及其拓扑。
为什么,在何时何地使用聊天机器人?
各种各样的聊天机器人可以完成从广告到团队建设等众多业务任务,通常共享核心的共同特征。
个人助理机器人
业务事项需要专业的组织协助,但并非我们所有人都能负担起秘书来处理基本任务。幸运的是,聊天机器人现在可以为您提供帮助。他们可能被编程为跟踪我们的工作时间表并提醒我们任何即将发生的事件。这种类型的机器人非常有用,因为它的基础非常简单,并使用快速通信平台-消息传递系统作为其接口。
客户支持机器人
聊天机器人可能承担着更艰巨的任务-代表公司与实际客户进行互动。客户支持工作流甚至对于人员来说都是可预测的,并且脚本化,因此易于在聊天机器人中实现。典型的漫游器行为算法是接受用户的查询,解析该查询以获取信息,在数据库中找到类似的情况,并使用预先构建的答案进行响应。
团队协作机器人
由于多种原因,如今使用机器人支持一组开发人员非常受欢迎。它驻留在开发环境中,因此始终受到对软件质量要求更高的软件工程师的严格关注。但是,该机器人可以解决非常严格的任务,因此不需要复杂的商业机器人。他们通常代表一些简单的记分员,监视开发服务器并报告提交信息的有情聊天机器人,简单的调度程序等。
出版商/新闻机器人
机器人的发布者类型每天都在吸引越来越多的兴趣。许多盛大的新闻来源(华尔街日报, 纽约时报),以及技术出口(TechCrunch的, MIT技术评论)通过像Facebook Messenger的主要平台在简短的文本信息的方便的形式共享内容。该机器人的原理非常简单:它从用户那里收集订阅信息,安排相关新闻的发送,并处理其他用户请求(例如,取消订阅,更改订阅主题,浏览)。
娱乐机器人
娱乐机器人仍然很少见,并且具有特殊的目的:以对话式工作流程管理事件/电影/剧院门票的预订。一些机器人还可以通过Messenger来提供娱乐网站的完整沉浸式体验。例如,Fandango Facebook Bot允许用户观看新的电影预告片,阅读评论并查找附近的电影院。舒适!
旅行机器人
机器人的另一个流行且快速增长的用例是旅行协助。在这种情况下,面向客户的聊天机器人会努力帮助人们进行有时会费力的选择最佳运输方式的工作,并将繁琐的表单填写工作流程转换为Messenger应用中的随意聊天。旅行聊天机器人不仅能够检索和确认预订信息,还可以通知诸如登机开始和登机之类的时间,更新航班状态并收集客户的宝贵反馈。
聊天机器人作为新的用户界面:机器人的现代视野
好吧,最终,聊天机器人是一个程序,旨在通过文本方式(聊天平台)处理通过常规对话与人类用户的通信。它等待用户说出一些内容并按照程序进行回答。这构成了聊天机器人的基本要素,其表面具有简单的算法:接受并解释输入,对输出提供相关的响应。
但是,聊天机器人要比现在复杂得多,因为它们现在具有上下文的功能,无论是本地的(在一次对话中持续存在)还是全局的(在许多对话中都持续存在,延伸到语言上下文之外),例如处理您的披萨订购机器人当前订单,位置,时区等)。前者通常保存在cookie或会话等临时内存中,而后者则存储在数据库中或通过API在聚会服务内部访问。
在介绍了上下文的概念之后,我们还引入了一些Web应用程序术语(cookie,会话,数据库),从而提示了聊天机器人现在的相似之处。聊天机器人与网络应用程序共享许多特征,这些应用程序在线提供页面(它们同样接受请求并对其进行响应,它们使用数据库等许多标准工具)。因此从某种意义上讲,聊天机器人是Web应用程序。
因此,聊天机器人已成为一种与现有信息和服务的新型接口。该界面紧凑,易于访问且非常简单。它还可以将您的服务从其住所(您的网站)扩展到更多平台,从而使用户访问该服务不受广告和营销的影响(以下机制:用户在Messenger聊天中看到广告,将链接导航到广告的网站,订购产品;现在的机制:用户在Messenger聊天中看到广告,直接在对话中订购产品)。
聊天机器人如何理解任务?
从表面上看,聊天机器人的内部工作看起来很简单,但实际上却并非如此。
机器人必须首先了解用户的讲话。这里有几个选项:用户输入的模式匹配以及使用自然语言处理(NLP)进行的意图分类。前者使用起来相当简单明了,但是很难通过灵活的输入来大规模地维护。后者在解释输入时依赖于机器学习,并且难以实现(至少在没有已经应用该技术的平台的帮助下)。需要一组示例来对可能的意图进行分类,并从一系列可能性中确定特定输入的目的。
幸运的是,有些平台实现了这种逻辑,您不必担心它的每个方面,可以使用它们的服务。但是,您需要熟悉主要的NLP类别及其本质:
实体 是人类话语(语言或书面形式)中自然语言单词组合到传达其清晰含义的标准短语的特定映射。这些很像提取的变量,例如,圣诞节指定的DateTime表示2017-12-25。
相反,意图是将用户的消息映射到相应的bot操作(预测工作流)的常规特征。例如,短语“今天天气如何?” 将通过其整个措词而不是某些特定部分映射到“ weather_inquery”意图。
动作 是机器人能够作为对相应意图的响应而落实的步骤。这些通常是常规功能,可以从调用者处获取带有详细信息(上下文)的可选参数。
上下文 因平台而异,并且没有严格的形式或拓扑。它们最通常表示为键/值映射。他们跟踪实体的当前含义,并区分短语的含义/意图。
漫游器类型:开放域/封闭域,基于生成/检索
好吧,我们知道聊天机器人构成了一种Web界面,但是要记住,它是人工智能的应用,这很重要,这意味着它是自然的分类法。
介绍了机器人语言理解的方法之后,让我们看一下机器人的类型及其目的和响应。
首先,我们可以根据操作范围(无论是天气机器人还是披萨机器人还是仅是一般的对话专家)来区分会话AI的类型,以及计算响应方式的方式。用户从输入中获取信息(它将检索预定义的响应还是将生成与输入相对应的响应)。
关于基于检索的响应方式,区分静态响应和动态响应非常重要。前者是最简单的,很像模板填充,其中每个输入都有对应的答案。后者是一种知识库,它返回具有相关性评分的可能响应的列表。
使用封闭域聊天机器人,您将努力解决有限的沟通问题-预订酒店/餐厅/航班,订购披萨,买鞋等。因此,很明显,输入的内容是有限的,我们并没有希望用户使用披萨订购机器人来谈论政治,心理学或哲学。
尽管开放域机器人主要专注于与用户本身的对话,但它并不试图理解用户所说内容的每个方面,它不检索实体和意图,也不需要跟踪上下文。它仅旨在模仿现实生活中的对话。其主要目的是招待或回答常见的FAQ式问题。
如何构建聊天机器人
一旦了解了基础知识,就该构建了。但是,在需要确定要使用哪种平台或工具之前,必须先进行决定。
如果您想快速入门,但尚未准备好编写代码,建议您从不编程的聊天机器人构建器开始。它们是针对非技术用户的,非常易于理解和使用。您无需深入研究许多技术细节,而可以使用纯概念(不过有一些学习曲线)。它们是构建简单机器人的理想选择,不适合复杂的商业用途。这里主要的缺点是它们根本没有或几乎没有NLP功能(因此不适用于复杂的机器人)。一些值得关注的平台包括:Chatfuel,ManyChat,Octane AI和Massively AI。
为了进行更认真的开发,我们希望消除机器人框架和AI服务的歧义。
框架 以打包和方便的方式构成了聊天机器人工作流通用功能的抽象。chatbot框架与任何其他软件框架(例如Web应用程序框架)非常相似,它们为我们提供了工具和实用程序。它们通常是为某种编程语言实现的。此外,某些Bot框架还具有托管和交互式开发环境,以促进更大范围内创建Bot。
AI服务 是独立的,由云托管的平台,通常公开用于交互式创建聊天机器人逻辑的GUI,具有基于机器学习的NLP功能,并支持通过RESTful API进行通信。
另一个新兴的选择是将聊天机器人和交互式语音响应(IVR)系统直接集成到Web Service构建工具包或框架中。Aspect和他们的用于构建Web服务的客户体验平台(CXP)解决方案在这一领域取得了最新进展。他们使创建数据支持的站点变得容易,并为它们提供了文本和语音漫游器界面。有关此方法的更多信息,请参见 此处。
著名的Bot框架:Botkit,Microsoft Bot框架,Rasa NLU
如前所述,框架是某些编程语言的库。我们将研究三个主要框架:Botkit for node.js,带有Bot Builder SDK for .NET的Microsoft Bot Framework(也可用于node.js,但我们将重点关注.NET,尤其是C#)和Rasa NLU适用于Python。
Botkit
让我们从Botkit开始。它旨在帮助忙碌的人们快速轻松地构建适合其需求的机器人,而不必深入研究引擎盖下滚动的齿轮。它提供了用于发送和接收消息的统一接口。最初旨在用于Slack,现在具有扩展功能以支持与各种消息传递平台的连接。该框架具有以简洁明了的方式组织的直观工作流,它有充分的文档记录,并提供了许多实时聊天机器人示例供您探索,因此,开始和使用它确实非常容易。
需要特别注意的是,该框架没有NLP功能,但是可以通过中间件连接现有的或定制的NLP服务来解决该框架。
该库由支持不同平台的核心功能和连接器组成。核心功能以事件侦听器的形式实现,例如.on_message_receive,.hears等。连接器的实现方式取决于它所服务的平台。
用Botkit开始构建非常容易。首先,您需要安装Botkit,可以通过npm安装来完成:`npm install --save botkit`。然后,创建一个文件并将您的代码放在此处(可以在此处找到基本控制台机器人的示例),然后使用node.js:`node my_bot.js`来运行它。
Microsoft Bot框架
微软愿意跟上新兴趋势,为世界带来了聊天机器人构建的新视野。Microsoft Bot Framework是全面且易于使用的Building SDK,它由两个主要组件组成:Framework本身-Bot Connector SDK,负责bot逻辑和LUIS.ai的集成和基础,LUIS.ai对应于自然语言理解,机器人具有类似人的感觉。
尽管LUIS.ai是作为组件提供的,但如果没有框架,框架本身也可以使用,并且其本身确实给人留下了深刻的印象。这些工具功能强大,并且集成的可能性几乎是无限的(Messenger,Skype等)。开发环境具有用于交互和简单测试的出色工具。您还可以向公众发布自己构建的聊天机器人,进行审查,如果通过,它将进入Bot目录(https://bots.botframework.com/)-微软的一枚硬币-易于共享机器人。
拉萨NLU
Rasa NLU不是为构建聊天机器人而明确指定的框架,但是,Rasa NLU是促进其后端的解决方案之一。Botkit和Microsoft Bot连接到Messenger时,Rasa NLU类似于NLP服务,在本地提供处理能力。此外,Rasa具有Python接口,可将实体提取器直接集成到用Python编写的应用程序中。它也可以作为服务在其他框架中运行,从而公开REST API端点。
请参阅下表,简要比较这些工具的优缺点。
杰出的AI服务:Wit.ai,api.ai,LUIS.ai,IBM Watson
如前所述,人工智能服务是满足NLP需求的云托管解决方案,并构建可以预测复杂对话流的智能机器人。它们为基于机器学习的语言实体理解提供了用于构建预测模型和训练模型的UI。
让我们看看这个圈子中的顶级球员。
威特
根据其网站,Wit.ai是一个平台,使开发人员可以轻松构建可以与之交谈或发短信的应用程序。它最近被Facebook收购,并成为构建Facebook Bot API的基础。
通过使用您选择的语言实现的可注册机器人行为,Wit.ai可以轻松地从内部逻辑中抽象出机器人行为。
在wit.ai中定义行为的关键概念是所谓的“故事”。通过一个例子,它们代表了可能对话的基本框架。“故事”是一组相关的意图,而意图本身是用户定义的特征类型的实体,该实体没有定义整个流程。
NLP的机器学习模型是通过示例训练的,这确实很棒。只需显示wit.ai即可预期,当用户发送类似请求时,它将做出相应响应。
Wit.ai具有了解语言实体的强大机制。另一个重要功能是为实体分配角色,这在服务器端处理方面有很大帮助。
关于与服务器端的交互,wit.ai实现了“ Bot send”命令并为自定义的bot动作(例如对API的调用)提供了webhooks集成。
蜜蜂
Api.ai是又一个平台,使您能够构建具有NLP支持的机器人。
与wit.ai不同,它在很大程度上依赖于预测的意图。实际上,api.ai的两个主要概念是意图和上下文(wit.ai也具有上下文,但是在不同的范围内使用)。该意图进行连接,以将用户的请求与相应的动作链接起来。用字符串值表示的上下文区分请求与意图之间的微小差异。
api.ai的基本工作流程与wit.ai不同。当api.ai收到用户的请求时,它首先将其与意图进行匹配(如果没有意图匹配,则意味着默认意图是隐含的),然后调用相应的操作。通过列出意图匹配必须存在的上下文(匹配可以产生或删除上下文)来限制意图匹配,从而创建工作流(如具有不同状态的应用程序)。
就像wit.ai一样,api.ai也提供了意图提取的可能性。此外,它开箱即用地实现了插槽填充系统(插槽填充系统是一种向用户请求信息,并通过关联已获取的实体列表并请求丢失的实体来将其提取为实体的方法)。
服务器端逻辑也通过webhooks完成,并且api.ai基本上是在调用服务来获取响应。这里要注意的重要一点是,服务器端代码可以修改上下文,从而影响预测流程。
Microsoft语言了解智能服务
LUIS可能被称为AI服务游戏的新来者,因为它是在Microsoft Build 2016活动中引入世界的。
像其竞争对手一样,LUIS提供了一个实体识别和培训系统,该系统具有实体层次结构,用于细分其含义(例如wit.ai中的角色)。
LUIS依赖于预期要采取的措施,并使用与api.ai相同的逻辑。
培训部分也采用UI的形式,并提供了灵活的培训方式。用户请求日志方便地允许解释并更正解释以进一步训练模型。
LUIS还具有动作执行支持功能,可收集执行动作链所需的意图和上下文。它仍处于测试阶段,仅允许简单测试。另一个Beta版本功能(也需要适当的出席)是对话支持,该对话支持旨在帮助组织相关请求并以简洁??的形式将机器人和用户的问题分组。
沃森
IBM Watson是一种认知云服务,可支持自然语言处理,语音识别,情感分析,对话等多种操作。您可能会(也可能不会)记得IBM Watson是一个认知型超级计算机系统,该系统击败了Jeopardy中的那个人。好吧,您认为它们之间存在某种联系是正确的,因为它们确实存在-IBM将超级计算机的功能带入了云中,从而创建了一个广泛的平台来帮助完成无数任务。
不过,这样做的缺点是,大量功能可能令人困惑,您可能会花费大量时间来确定要使用的功能。甚至在那之后,您很可能也将不得不投入大量资源来使用该技术。
它也很昂贵(每个API调用大约2美分),因此不是很好的初学者工具。如果将IBM Watson用于公司的用例得到广泛且有限的定义,则最好将其作为工作解决方案。
下表提供了有关这些工具的关键信息的摘要。
结论
聊天机器人正在与其他现有技术集成,并且正在朝着更加面向用户的方向发展。对它们的本质,功能和操作的深刻理解有助于构建高效的机器人,从而提高产品的营销,广告和整体消费者体验。
聊天机器人创建的平台多种多样,既令人吃惊,又令人生畏,但是每种平台都是针对不同的用例开发的,并且在机器人开发中扮演着特殊的角色。随着深度学习技术的发展,我们希望会话式AI在不久的将来能够利用它们,从而为通过图灵测试做出巨大的飞跃。
1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群