电销客,对话机器人功能分类和不同的应用领域
现在越来越多的场景需要对话机器人。有各种纯文本对话的助手,比如医院咨询的助手,购物网站的智能导购,智能客服,证券领域的智能投资等。还有语音对话机器人,比如智能语音外呼机器人,智能语音客服系统。电销客对话机器人分为不同的功能场景和不同的应用领域。虽然背后的技术支持都是NLP,但是在具体的工程实践中还是有一些区别的。
对话机器人的回答内容是有限领域的有限场景,用户会被对话机器人引导回答有限领域的问题。例如,智能语音外呼机器人就是一个典型的有限领域问答系统。当对话机器人呼叫用户时,它已经有了非常明确的目的。用户按照对话机器人的想法完成问答。一旦用户挑战对话机器人,对话机器人可以用安全的话回复或结束对话。医院咨询也属于有限领域的问答系统,只限于医疗领域,但其知识服务范围比外呼机器人大。限于一个域,但场景没有智能外呼机器人封闭。
对话机器人不局限于服务区域,用户可以和对话机器人聊任何事情。例如,微软萧冰、图灵对话机器人等。属于这一类。这种对话机器人拥有非常广泛的语音资源,所以语音大多是由NLG生成的。
对话机器人通过搜索知识库来回答问题。对话机器人可以回答知识库中的任何问题,比如IBM的沃斯顿。这类对话机器人介于开放域和有限域之间,对话机器人能回答的问题取决于知识库。
简称KBQA系统。问答的来源来自一个知识库,可以是图数据库、RDF三元组或Mysql等结构化存储。问题的答案基于知识库推理。比如医院问诊系统,后台是医生和专科医生的知识库,用户的问题是病名。问答系统根据病名从知识库中搜索匹配的医生并给出答案。
在NLP领域称为阅读理解任务,如小队阅读理解问答,常见的脸书DrQA,CoQA等算法。假设给定一个文档,从文档中手工抽取问答对,建立问答知识库,会是一个非常复杂的工作,但是如果有阅读理解系统,可以根据用户的提问,从文档中自动检索并返回答案。举个最简单的例子,在一个保险对话机器人中,给定一份保险单,对话机器人可以回答一些保险条款的问题。
系统保存了大量的问答群,当用户的问题在给定的问答集中时,就会返回答案。它被称为检索对话机器人。这类问答库非常庞大,多采用分级检索,与搜索引擎合作。百度的Simnet等搜索算法。
答案来自一本手册模板。根据用户的提问,通过一系列算法找到相应的答案模板,返回给用户。这些问答多为专业领域的系统,如金融投资系统、医院咨询系统等,有严格的语义要求,所以答案都是手工编写的。
答案是由NLG技术生成的,这些系统大多是聊天系统,比如微软萧冰。这类系统由于答题技巧多样,特别适合自动生成,但专业水平不高。
根据任务类型分类
对话机器人问答
对于多问多答的体系来说,一轮轮的谈话并没有特定的关系。用户问一个问题,得到一个答案,就结束了。基于FAQ的系统、KBQA系统等。大多属于这一类。
任务对话机器人
本身没有目的,聊天多是兴趣爱好,比如图灵对话机器人,微软萧冰。
基于的对话机器人实现技术
对话机器人实现技术有很多种,但从整个应用系统架构来看可以分为端到端模式和流水线模式。端到端模式从用户输入到系统输入整体训练,希望训练出一个从用户端自然语言输入到机器端自然语言输出的整体映射关系。具有灵活性强、扩展性高的特点,降低了设计过程中的人力成本,打破了传统模块之间的隔离,不存在偏倚误差。而中间模型太大,端到端模型对数据量和质量要求高,训练难度大。此外,对于槽填充,端到端模型是困难的。目前很少有大型问答系统有这种方式,还在探索中。
管道模式,从输入-NLU-DST-DPL-NLG-输出,一个对话像管道一样从输入经过系统,最后得到答案输出给用户。Pipeline非常灵活,可解释,并且易于登陆。每个模块可以用不同的技术替换,模块之间可以通过参数传递共享上一轮的结果。但其缺点是不够灵活,各模块相对独立,难以联合优化,模块间的误差会层层积累。即便如此,考虑到流水线模式的优点和端到端的缺点,目前生产中的大部分系统大多采用这种模式,包括我们下面要重点介绍的RASA系统。