深度学习应用--对话机器人--简介

作者:jliang

https://blog.csdn.net/jliang3

深度学习应用--对话机器人--简介

对话机器人按功能分类

  • 单轮会话场景:QA形式,一问一答,标准答案只有一个,相似问句会有很多个。

        

  • 多轮会话场景:基于意图(intents)和实体(entities)识别,预先设置词槽(slots),在多轮对话中通过主动询问来获得填充词槽的实体,然后根据获得的意图+实体组合决定下一步的动作一一回答问题或者执行任务。 

       

       在订酒店的例子中,用户意图为“订酒店”,填充实体为“时间”和“地点”。

  • 闲聊场景:对话通常是开放领域的,可以提出一个关于任何主题的问题,并期待相关的回应。无数的话题和生成合理的反应所需要的知识规模,使得开放领域的聊天机器人实现相当困难。如苹果的Siri和微软的小冰就是闲聊机器人。

传统对话机器人实现方案

在深度学习被广泛应用之前,传统的技术方案很难实现开放领域的闲聊机器人,一般只适用于单轮会话的场景。传统对话机器人的实现方案有:
基于规则:基于规则的对话机器人会使用对话来匹配预定义的规则,如果满足某个规则的条件,则返回该规则对应的回复。需要预定义的规则很多,很难覆盖真实对话中面对的所有情况。但是实现比较简单,不需要了解任何算法也可以实现,只需要一定的工程实现能力即可。
基于搜索引擎:把用户输入的内容作为搜索关键字,把预定义的恢复作为搜索结果,根据文本相似度来搜索结果。使用类似Elasticsearch的搜索服务器可以快速的实现搜索功能。 

主流对话机器人架构

对话机器人主流架构为“NLU(自然语言理解) + DM(对话管理) + NLG(自然语言生成)” ,下面逐步介绍各个模块的具体作用 

  • NLU:负责自然语言处理和理解,主要是对用户的问题在句子级别进行分类,明确意图识别(Intent Classification);同时在词级别找出用户问题中的关键实体,进行实体槽填充(Slot Filling)。依赖于语言表示模型、分词、分类模型等NLP和机器学习技术:

    • 语言表示模型:Bag of Words、Word Embedding(word2Vec以及变种等都属于此类) 
    • 命名实体识别:识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字
    • 意图识别:根据语言特征和实体识别结果判断用户意图,本质上属于分类问题
    • 语言预处理:清洗、整理、去除停用词、分词等
  • DM:负责对话状态维护、数据库查询等,主要分为两大类: 

    • rule-based模式:根据NLU识别出的意图,直接推送预先配置好的应答,可以精确匹配后续动作
    • 基于对话状态的RNN(循环神经网络)模型:理论上会更加灵活,能够根据上下文做出不同反应,但是同时也会导致输出体验不稳定
  • NLG:负责生成交互的自然语言,主要也分为两大类: 

    • 基于模板:预先设计好答案的模板,根据场景填充上具体实体后,将应答推送出去
    • 生成模型:由机器自己拼接语言作为答案输出,结果不可控,容易出现语无伦次

            

对话机器人开发框架

  • Rasa:Rasa是领先的开源机器学习工具包,它允许开发人员扩展机器人,而不仅仅是回答简单的问题。开源Rasa Stack使全球数千名开发人员从初创公司到财富500强可以构建内部会话AI(例如复杂的聊天机器人和语音助理)而无需聘请大型研究团队。网址:https://rasa.com/。
  • wit.ai:是所有框架中最流程的一个,有非常好的二次开放库,duckling.wit.ai是非常好的时间识别库。wit.ai并不开源的,但是二次库很多事开源的,详见github上面的二次开发库。机构/作者:Facebook,网址:https://wit.ai。
  • api.ai:Google收购的一家AI公司,和wit.ai类似。提供了一个AI的框架,可以自己定义模板,参数,多轮对话,很方便的就可以定义一个自己的特定任务的聊天机器人。机构/作者:Google,网址:https://api.ai/。
  • Language Understanding Intelligent Service (LUIS):和wit.ai,api.ai类似,是微软在这方面的一个产品。机构/作者:Microsoft,网址:https://www.luis.ai/。
  • Messenger Platform:和Micros Bot Framework 是同类东西。他可以方便用户配置自己的机器人。例如某用户在网络上卖自己的商品,如果咨询太多的话,需要很多客服人员,它可以方便的配置一个客服机器人。机构/作者:Facebook,网址:https://developers.facebook.com/docs/messenger-platform。
  • viv:准确来说,其不算是一个框架,没有开源,也还没有产品出来。据其作者宣城,其特点是,采用了计算机动态自动编程技术,不用再硬编码了。机构/作者:Siri之父,三星收购,网址:http://viv.ai/。

参考文献

[1] Rasa官网. https://rasa.com/
[2] 十个Chatbot框架介绍. https://blog.csdn.net/xmsheji/article/details/53610656

猜你喜欢

转载自blog.csdn.net/jliang3/article/details/87172700