RASA介绍

引言

 自然语言是人类表达情感、观念的主要工具和人类思维的重要载体,而最常见的自然语言应用场景则是对话。人们希望通过自然语言控制机器,甚至实现机器与人类的对话与交流。使用自然语言作为输入输出的媒介,会使用户获得更自然友好的人机交互体验,从而为人类生活提供便捷服务。近年来,人工智能技术蓬勃发展,实现基于自然语言的对话系统逐渐成为了人工智能领域的热门研究之一,受到了工业界和学术界的高度重视和广泛关注。如果说自然语言处理是人工智能皇冠上的明珠,那么对话系统就是其中最闪亮的明珠之一。

 随着自然语言处理的发展,对话机器人技术也不断更新。现在越来越多的场景需要对话机器人,有纯文本对话的各类助手,如医院导诊的助手,购物网站的智能导购,智能销售客服,证券领域智能投顾等等,也有语音对话机器人,如智能语音外呼系统,智能语音客服系统等。对话机器人因为不同功能场景,不同的应用领域有着各种各样的分类,虽然背后的技术支撑都是自然语言处理,但在具体工程实践中又有一定差别。

 对话机器人应用逐渐普及,相关理论和技术不断更新。很多知名企业先后研发并推出了自己的对话系统,如百度开源的基于检索式机器人的框架AnyQ;Google开源的基于生成式对话系统DeepQA;Facebook开源的Blender系统,它具有个性人物聊天的功能,可以知识问答,是有史以来最大的开放域(Open-Domain)聊天机器人;还有Uber开源的Plato系统,也具有比较完整的功能。但要从框架完整性,可扩展性,易用性等各方面来说,Rasa当仁不让是目前最全面的系统之一。

 Rasa成立于2016年,为对话AI提供了基础设施层,包括构建上下文助手所需的工具。公司企业端以开源的形式免费提供核心平台和免费工具集Rasa X,也提供商业版,包括企业级对上下文助手大规模开发的支持。Rasa致力于通过更好的研究、对开源软件的投资、优秀的开发人员工具和培训,以及灵活的本地部署或云部署,支持开发人员创建健壮的、任务关键型机器人程序。据统计,全球前十大银行中有六家、全球前十大电信公司中有五家、前十大保险公司中有五家都在使用Rasa的产品。著名客户包括德国电信公司和奥多比系统公司(Adobe Systems Inc .)、巴耶希汽车公司(Bayerische Motoren Werke AG)、空中客车公司(Airbus SE)、英国通用电气公司(ENGIE SA)、美国HCA医疗保健公司(HCA health Inc .)、奥兰治公司(Orange SA)和中国的阿里巴巴等。

 本文先介绍对话机器人的发展历史,通过与传统对话机器人进行比较,突出Rasa框架的优势。接着详细介绍了Rasa的组织架构及核心部分。


传统对话机器人

      早期的对话机器人架构主要基于模版和规则,如AIML。

      规则的描述主要基于正则表达式和类似正则表达式的模版。将用户的问题匹配到这样的模版上,可以取得预定义好的答案好结果。AIML本身有比较强大的描述能力,可通过规则从用户问题中获取重要信息,随机选择备选答案,甚至运行相应的脚本通过外部API获取数据集等。事实上,像AliceBot这样基于AIML的对话机器人,拥有4万多个不同的类别数据,是一个海量的规则数据库。

      使用规则的好处是准确率高,但缺点明显:用户的句式千变万化,规则只能覆盖比较少的部分。仅仅像简单的询问天气或者时间,用户就可以有几百种不同的询问方式。随着时间推移,规则会越写越多,难以维护,还常常互相矛盾,改动一个业务逻辑就会牵一发而动全身。此外,对话机器人需要维护一个庞大的问题数据库,对用户的问题通过计算句子之间的相似度来寻找数据库中已有的最相近的问题,从而给出相应的答案。


AIML

  AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,最初来源于一个名为"A.L.I.C.E."的聊天机器人。AIML通过定义的规则模板进行问答匹配,来实现聊天机器人自动问答的功能。

  下面展示了一个最基本的例子,仅包含最主要的