如果您需要帮助,请点击这里

机器人框架Bot Framework简介

boy

北美泰哥

2018-12-13 1721
感情男声
  • 感情男声
  • 感情女声
  • 标准男声
  • 标准女声
倍速1.0X
  • 倍速0.5X
  • 倍速1.0X
  • 倍速1.5X

免责声明:文章内容和观点仅代表作者本人观点,供读者思想碰撞与技术交流参考,不作为华为公司产品与技术的官方依据。如需了解华为公司产品与技术详情,请访问产品与技术介绍页面或咨询华为公司人员。

一、前言

以对话机器人(ChatBot)和智能音箱为代表的各类智能机器人一年来层出不穷。抛开表象,抽象来看,实际上这是一次通讯革命的开始。以智能机器人技术取代传统的信息交流和信息搜索手段是大势所趋。智能机器人开拓的是一套新的人机乃至机机交互方式。在海量数据时代,多媒体时代,物联网时代,大有用武之地。智能机器人的应用还处于方兴未艾阶段,大家的想象力还有限,主要集中在智能音箱,智能家居,智能客服,智能购物,智能运营,智能运维等方向。即便如此,这几个领域已经是万亿美金规模。按微软公司推算,仅在智能客服领域,如果按节省人力的十分之一分成,每个大企业项目都是上亿美金。

机器人框架(Bot Framework)是一个人工智能领域新出现的概念。它本身不是一种新技术,也和算法等关系不大,可以看作一种人工智能工程平台,主要用于智能机器人开发,类似于.NET Framework,Android SDK等。通过这套框架,可以整合各类模块化人智能力,将交互式人智系统开发效率提升百倍以上。他还将大大降低入门门槛,使千百万中小企业可以自主开发,达到广泛开放人智能力的目的,从而刺激更多的创新和资源消耗。另外,通过对接不同的交流通讯模块,可以达到开发一套主系统,在多场景多用途复用的效果。

根据目前趋势判断,智能机器人将成为信息和指令交流集散的主要枢纽。不论是互联网上,服务器端,还是手机,车载,IoT,边缘设备端,都将取代传统的简单App。一旦数以千万计的Bot流行起来,带来的流量和资源使用量不论是云上还是线下都是十分巨大的。Bot Framework正是Bot开发和分销的关键环节,是生成Bot的必经之路。

智能机器人技术的兴起,必然伴随着生态的兴起,包括开发者社区,分销渠道等等。而机器人框架是建立智能机器人生态的奠基石。机器人框架内部包含了默认图形界面,默认信息流逻辑,默认通讯模块,默认人智平台,默认发布平台等。掌握了机器人框架,就掌握了软件开发平台和生态平台的制高点。可以类比苹果手机商店或是安卓商店。

目前机器人框架还属于初始状态。除了几家大公司正在围绕自己的产品和生态构建壁垒,还没有见到成熟的开源的实现。谨以此文对机器人框架做一介绍,希望能起到抛砖引玉作用,供读者参考。

二、机器人和机器人框架

机器人(Bot)原来是Robot的缩写,现在已经成为IT领域的通用词汇,可以理解为自动化的小程序。

Bot主要用于自动处理一些特定场景下的小任务,取代人力,尤其是大量重复性劳动,往往效率和准确率远超人类。数个Bot的排列组合可以构成更强的Bot,完成更复杂的任务。随着大家对Bot的理解越来越深入,以及人工智能边缘计算等新技术的引入,Bot的应用场景显露出即将井喷的态势,大有全面取代传统手机App和Web App的架势。据统计,仅2017年至今,市场上已经出现了上千家公司和上万种Bot。据Juniper Research分析,在银行和医疗健康领域运用对话机器人,和传统呼叫中心对比,每次查询可以省时4分钟以上,预计2022年银行系统因为使用对话机器人平均每次交流省钱$0.7,整体每年节省支出八十亿美金。综合来说,这是个千亿乃至万亿美金的市场。当前,所有主要IT公司都在Bot这块有所布局,企图在整个产业链上占据一席之地。

早期的Bot应用可以追溯到搜索刚出现时的网络爬虫。目前Bot一个流行应用场景是智能助手。简单的智能助手已经被使用了很多年了,比如说帮助定个酒店,叫个Pizza什么的简单应用。这类主要是以Cortana,Siri,Google Assistant等为代表。最近两年内兴起的对话机器人ChatBot,是比智能助手用途更广泛技术更复杂的一类Bot应用。除此外,随着技术的发展和需求的提高,还有很多种Bot在不断涌现出来。

以Bot为核心的交流比其他人机交互方式有几大优点:自动化,自然拟人化,情感化,从而使交流自然流畅,也避免了人工面对海量信息的乏力和高错误率。Bot人机界面是比其他交互方式更高的一个交流层次,尤其是通过人智技术的引入,使回复结果更准确更及时,避免了冗余信息人工分拣的过程。Bot也已经被用于机器间的信息交互,尤其是在IoT边缘计算包括视频监控等场景,智能Agent已经被普遍使用。在很多场景,Bot起的不仅是替换人力,更是从事人力所不能及的任务以及现场解决问题的任务。比如设备异常现场诊断,通过Agent自动发送现场图片声音以及设备日志,后端知识平台返回诊断结果,Agent根据诊断和自身判断及时采取措施。

一些Bot分类:优化器(The Optimizer)、一招鲜(The One-trick Pony)、主动响应(The Proactive)、社交(The Social)、护盾(The Shield)、闲聊(The Chatty)、超人助理(The Super Bot)

Bot Framework,也被称为 “Cognitive Micro Services”,“Bot Development Framework”,可以理解为一套开发和部署Bot服务的技术框架。便于开发者在此基础上迅速简单的开发智能机器人,并接入各种应用模块,是连接前端各种交流方式和后端各种知识库的桥梁。不只限于文本交互,在新人工智能技术的基础上,还提供了非结构化数据交互,流数据交互,语音交互,影像交互,以及视频交互的能力。可以说是一套未来人机交互平台。基于Bot Framework可以大大简化开发新Bot的工程复杂度。一般来说,一两个星期就可以从无到有上线运行。从这个角度,Bot Framework也可以看作一种新的程序开发平台。开发者不用了解底层API和不同Service之间的关系,甚至不用关心具体用到了那些Service,大大降低了Bot的开发和推广成本。另外,因为Bot Framework综合利用了多种人智技术,可以认为是一种人智技术的集成解决方案,也是目前为止人智技术综合利用最多的解决方案,而且使用者无需具备机器学习方面的专业知识。

Bot Framework将是通过服务来提供的IT产品的核心枢纽和分发渠道,技术上已经比较成熟。下一步将是落实到具体的应用场景和商业实现。

三、企业应用启示

微软公司是当前具有最全的人工智能体系结构的公司,也是第一个提出Bot Framework概念的公司。Bot Framework在微软当前的AI体系中占据重要位置,是三大AI服务之一(其他两个是认知服务和机器学习平台)。微软正在身体力行的将Bot融入所有的产品,推广到客户面。

Bot Framework框架原型最早可以追溯到对话交流平台CaaP(Conversation as a Platform),是陆奇在2014年左右受微信上的微软小冰项目启发在内部提出的,而后首先在Skype场景落地。在2016年3月底的微软开发者大会上,Bot Framework正式对外亮相,成为那次大会的核心亮点。在2017年的5月的开发者大会以及9月的客户大会上,微软展示了大量的基于此技术的应用,显示对人智能力普及的重视以及Bot Framework在开发中的重要性。截止到2017年八月,小冰已经进化到了第五代,已经登录Cortana,新浪微博,腾讯QQ,微信,京东,优酷,米聊等平台。基于小冰技术的微软聊天机器人在国外已经登录了美国,日本,印度和印尼。其他微软的早期尝试还包括Skype Bot Framework等,目前都已经并入了统一的Bot Framework。目前来说,微软内部已经将Bot Framework应用于所有主要产品的Bot开发,包括Skype,Slack,Office365,Dynamics 365,软件开发Bot,搜索Bot,新闻Bot,图像Bot,音乐Bot,字幕Bot,翻译Bot等等。Bot Framework也已经通过SDK形式对外部开放。

微软的Bot解决方案利用了人工智能服务来理解输入,尤其是通过微软的通用语言理解服务LUIS (Language Understanding Intelligent Service)。和微软Bot Framework类似的还有BotKit。

亚马逊提供Amazon Lex平台,2017年4月发布,作为语音和文本对话服务的引擎。亚马逊还没有提供类似Bot Framework的开发平台,需要开发者自己拼装不同后端技术模块,结合不同前端通讯端口。Lex绑定了AWS Lambda无服务架构,Amazon Connect联络中心服务以及其他亚马逊云服务,目前很难扩展到非云或非亚马逊环境。

亚马逊已经将Bot应用于很多应用场景,包括企业生产力,设备控制和物联网。亚马逊将Lex定位为信息和指令交互的中心枢纽。但刚发布半年,客户不多。

四、对话机器人

对话机器人(ChatBot),也叫聊天机器人,是目前最流行的一种Bot。实际上ChatBot并不只限于聊天,还能通过拟人对话,用自然语言的方式承担很多其他的实际任务。

一般来说,应用于ChatBot的有两种主要的对话模型:Retrieval-based 和Generative。

Retrival-based模型,主要依赖于定义好的知识库和答案库,基于输入请求和上下文,通过一定的检索功能,选择最合适的回答。可以是简单的基于规则表达式的精确匹配,也可以是比较复杂的利用机器学习分类(decision-tree,random-forest等)。这类模型不会自己产生新知识,只能被动搜索。好处是,答案更精准,不需要大量数据,容易训练。适合短对话比如一问一答,场景固定。

Generative模型,不依赖于固定答案库。他们基于一定的机器学习技术(比如深度学习),自己生成答案。这类模型适合长对话多轮对话,并适合不固定场景和未知领域,比较难训练而且需要大量数据。

ChatBot对话场景又分为以下两类:开放场景和闭合场景。开放场景中,对话内容比较随意,没有明确的结果目标。比如和智能音箱的对话。当然,也不要期望答案很明确。闭合场景中,对话内容被限定范围而且往往有明确目的,Bot技能比较单一,往往答案比较明确。比如客服,导购等。

ChatBot必备三大要素:

       • 基本I/O网络通信能力

       • 语言或语音等对话交流能力

       • 和用户直接界面

五、机器人框架技术分析

为了支持快速智能机器人开发,尤其是不同场景下的重复开发,有必要将基本构件模块化通用化,通过Bot Framework统一提供能力。

Bot Framework的用途主要是便于开发,链接,测试和部署智能机器人,并利用无服务器(Serverless,Function)等技术,使得系统可以自由扩展(scale-out on-demand)。通过Bot Framework,开发者不用关心底层复杂的通讯逻辑和信息流逻辑,可以极大促进拼装不同模块的速度和效率,降低对单独模块理解的专业化要求。

通过不同模块,Bot Framework可以支持多种对外的交流管道(Channels),包括但不限于:Twitter,Facebook,Skype,Teams,Slack,Email,微信,微博,短信等。其中DirectLine Channel是主要针对On-Premise服务的。Bot Framework在微软来说,是不支持On-Premise环境的。

Bot Framework本身只是基础架构不是系统。需要前端配置语音分析,语言理解,图像分析,视频分析等,后端配置知识图谱,结构化知识库,异常检测,CRM,LBS(位置信息服务),意图识别,多轮对话,推荐等模块,才能形成系统。

Bot Framework是开发平台的统称,具体包含了

       • Bot Builder SDK (用于开发Bot,自带标准人机对话模块)

       • Bot Connector(用于发布Bot,并连接外部通讯模块)

       • Bot Framework Emulator(本地调试模拟器)

       • Bot Directory (已发布的所有Bot服务目录列表,Bot商店的雏形)

       • Developer Portal(供开发者注册发布管理Bot服务)


自然语言理解引擎

自然语言理解引擎(Natural Language Processing, NLP)是对话机器人技术中关键一环。通过人机对话模块导入对话流,NLP理解对话内容,并将对话流引导到相应的处理模块。

LUIS是微软为Bot Framework打造的语言理解引擎,全称Language Understanding Intelligence Service,简写为LUIS,也是微软云上认知服务的一个组件。最早的项目名字是Oxford。他的核心就是一个语言理解的机器学习解决方案。


意图识别

通过一定的人工智能技术,根据上下文和其他用户信息以及环境信息,判断用户的交流意图,缩小搜索答案的范围。


知识库

知识库或答案库一般存储于SQL或NonSQL数据库,并通过搜索引擎,提供快速响应。

更先进的是通过知识图谱。基于知识图谱的搜索,也被称为第三代搜索。


对话日志

为了分析系统,并提高对话质量,一般来说都会存储一部分对话日志,用于后期模式分析等。针对每个用户存储的对话日志,也可以用于提供个性化交流,更好的贴身服务每个个体。


对话状态存储

一般对话过程可以通过状态机(State Machine)来表示。很多场景下,记住当前对话状态很关键。存储周期可以是一天,一周,一月甚至更长。这不同于客户端的当前对话上下文的短暂存储。具体服务器端是用Cache还是Persistent Storage要根据需求和应用场景决定。


Bot开发流程

另外,几点注意:

       • 先确定一个小的商业流程

       • 避免整体替换一个完整的大的商业流程

       • 和现有的商业流程一起,并行运行

       • 比较效果,不断改进

       • 待到效果好,再替换为Bot流程


开发Bot的一些经验

宏观上需要考虑的:

       • 安全,授权和认证

       • 是辅助性的Bot还是全自动的Bot

       • 那种运行环境,云上,Web内嵌,应用内嵌,移动应用。。。

       • 编程语言

       • 是独立开发还是团队开发

       • Bot运行的日志如何保存和分析监控

       • Offline/On-Premises 环境

       • 版本控制与升级

       • 如何被搜索发现

       • 如何测试

       • 避免过度使用NLP技能。限制每个Bot只完成少数特定工作。

六、Bot应用实例

我们实际已经生活在一个机器人时代。Bot应用实例包括:智能客服、办公生产力软件、零售和导购、保险机器人、智能家居等。其中智能客服是Bot应用最广泛的一个场景。主要针对大型企业的客服中心,每个项目每年可节约十亿美金的人力开销。但定制化程度很高,开模费都要几百万美金。除此之外,互联网上一半以上的流量都来自各种机器人和网络爬虫,互联网也被称作机器人网。所有的即时通讯平台都已经开放了机器人API。


一些Bot和平台举例:

       •Lex,亚马逊的机器人平台。

       • API.AI/DialogFlow,谷歌的Bot服务平台,帮助第三方减少Bot开发时间,提高用户体验。不限于谷歌平台,还可以和亚马逊Alexa以及脸书等打通。

       • Wit.AI,脸书的ChatBot平台。Facebook上每月活跃机器人超过10万个。Facebook Discover Tab可以看作是聊天机器人商店,提供分类搜索功能和定位功能。

       • Watson,IBM的人智开发平台,不专注于Bot开发。

       • Chatfuel,帮助在Facebook上建Bot的公司,客户包括NFL,NBA,媒体什么的。

       • Yige.ai,中文聊天机器人创建平台,建立一年左右。

       • 小i机器人,国内的智能机器人平台,只为大公司定制,不太支持小微企业。

       • 图灵机器人,国内的智能机器人平台,主要是闲聊服务。

       • 微信小程序也可以看作一种机器人平台。微信公众号自动回复也算一种。

       • Wikipedia开放了Bot API,社区已经贡献了上千个Bot,活跃的也有近二百个。

       • Twitter上存在大量机器人账号,大概有30%。

       • 网上的水军大部分是机器人。

       • 网上撸羊毛抢特价品抢火车票的基本也是用的Bot。

       • 各大网站目前都已经应用了一定量的客服机器人,回答客户简单问题。

0/500

请输入评论内容
提交评论

最新评论0

    查看更多评论

      评分成功!

      提交成功!

      评分失败!

      提交失败!

      请先填写评论!