摘要
对话技术平台(Dialog Technology Platform,DTP)是哈尔滨工业大学社会计算与信息检索研究中心(HIT-SCIR)专为第三方开发者打造的中文对话机器人搭建平台,现已整合并推出了自定义闲聊对话机器人功能。与已有的任务型对话机器人功能相比,开发者可以轻松定制属于自己的个性化聊天机器人,大大降低了开发对话机器人的技术门槛。
一、前言
随着人工智能的浪潮兴起,人们希望机器能像人一样思考,与人类对话,并成为人类的帮手,智能对话机器人便成了目前热门的研究课题。当前的对话机器人主要分为两大类:一类是任务型对话机器人,该类系统主要帮助用户完成任务型的指令,例如:查询天气、订车票机票等。就像《流浪地球》里的MOSS那样,能够完成各种指令;另一类则是闲聊机器人,这类机器人通常不会有明确的目标,关注点在于生成流畅、合理并且自然的回复。
然而对于缺乏NLP方面技术和数据积累的普通开发者来说,搭建对话系统是一项很困难的工作。因此,我们于2018年推出了对话技术平台(DTP),供开发者创建自己的基于自然语言交互的任务型对话系统。DTP搭载了哈工大社会计算与信息检索研究中心(HIT-SCIR)多年积累的自然语言处理(NLP)和人工智能(AI)技术,专为开发者打造的中文对话机器人搭建平台。开发者可以通过DTP轻松赋予自身产品智能对话交互的能力,在很大程度上提高了开发效率。
最近,在DTP现有架构下,结合我中心的闲聊机器人笨笨,为DTP增加了自定义闲聊功能,开发者可以使用此功能搭建个性化定制的闲聊型对话机器人。只需通过简单地设定机器人属性和添加自定义的聊天语料,就可以拥有一个能够进行个性化回复的闲聊机器人。
二、DTP闲聊机器人的整体架构
DTP闲聊机器人主要是由个性化定制模块和兜底回复模块组成,整体架构如下图所示:
图1 整体架构图
在闲聊机器人中,整体采用pipeline的框架,用户的输入(query)首先发送到属性回复模块判断是否为询问机器人属性,如果不是再交给FAQ(常问问题)匹配模块处理,如果该query也不在用户提供的常问集中时,DTP闲聊机器人会通过网络接口交给笨笨进行兜底回复。
2.1 个性化定制模块
个性化定制模块主要由属性回复模块和FAQ问答匹配模块组成。个性化定制模块对接收到的query优先进行机器人属性的匹配,对提取到的属性使用模板生成回复。对于不涉及机器人属性的问题,则进入FAQ匹配模块进行解析。下面分别介绍两个模块的结构。
2.1.1 属性回复模块
属性回复模块用于回答闲聊机器人的属性。例如:用户预先定义机器人的属性“年龄”的值为“18” 。当用户提问到诸如“你今年多大了?”、“你的年龄是多少?”等问题时,机器人会优先使用属性“年龄”的值“18”来生成相应的回复。其他属性也是如此。我们可以通过如图2所示进行机器人属性的设置。
图2 属性回复模块示意图
2.1.2 FAQ匹配模块
FAQ匹配模块是DTP闲聊机器人的核心,机器人的定制化功能绝大部分都是由FAQ匹配模块实现的。开发者可以通过添加自定义的FAQ语料来控制机器人的回复内容。用户上传FAQ语料界面如图3所示。FAQ匹配模块的任务就是从用户自定义的语料中检索出与query最相关的问题,如果没有匹配到则交由下一步的“笨笨“进行兜底回复。
图3 用户上传FAQ语料示例
在DTP闲聊机器人的复杂应用场景中,用户上传FAQ语料的规模和涉及的领域都难以确定。基于字面匹配相似度的匹配方法速度较快,但是回复质量不高;基于语义相似度的匹配模型回复效果好,但是在大规模语料上计算成本较高。最终,我们使用了字面与语义匹配结合的方式:先建立离线的候选集索引,在线服务收到请求字段后,初步召回一批候选回复,然后使用语义相似度对候选列表做重排序并返回最相关的结果或进行拒识判断。
为了提高开发者的用户体验,我们还增加了回答引导功能。即对于用户的query,与语料库中相似度最高的一个问题的相似度也达不到直接作为回复的条件,但又高于最低的阈值时,该模块会用语料库中最相关的问题和回答对来作为回答引导。如下图:在语料库中与query最相关的是问题“遮阳伞和太阳镜应该带哪个”,尽管两个问题并不完全一致,但query中的“防晒”与“遮阳伞和太阳镜”有一定的语义关系,这时回答引导功能会发挥作用。这使得用户上传的语料能得到更为充分的利用。
图4 引导回复功能图
另外,在开发者与机器人进行测试与交互时,如果对回复不满意,可以点击“编辑当前轮”按钮,在弹出的窗口中对当前问题的回复进行编辑并添加到语料中。
图5 编辑当前轮
2.2 兜底回复模块
兜底回复是闲聊机器人的备选回复,当开发者输入的属性和上传的FAQ语料都无法覆盖请求语句时,DTP就会将请求发送给闲聊机器人“笨笨”处理,进行兜底回复。
“笨笨”是由我中心自主研发的一款聊天机器人,2016年6月6日正式对外发布,搭载于微信公众号平台之上,同时具备实体形态。笨笨”具有四种主要功能,即聊天、知识问答、指令执行以及新闻推荐。
图6 “笨笨”聊天机器人公众号二维码及效果展示示例
三、DTP闲聊机器人的特点
3.1 精准的语义匹配
闲聊机器人回复的质量很大程度上取决于对上传语料的匹配精确度,这里的匹配指的不仅是对词语、句式结构相似程度的匹配,更多情况下是对文本语义相似程度的匹配。DTP闲聊机器人模块采用在大规模语料上预训练的BERT模型,抽取文本特征的能力更强,从而保证了语义匹配的精准。
3.2 宽松的语料要求
通常情况下,训练一个聊天机器人需要大量的标注语料数据,而相比于任务型对话机器人,闲聊型机器人需要处理开放域的问题,所以构建难度更大,需要的语料也更为复杂,对于个人开发者而言是一道极高的门槛。DTP闲聊机器人通过接入闲聊机器人“笨笨”进行兜底回复,能够处理开发者上传预料所覆盖不到的问题,从而提供丰富的回复,而不是单调的回复“我不明白”。
3.3 便捷的UI操作
DTP的开发者界面简洁明了,易于上手,极大地提升开发者的使用体验。开发者上传语料后即可以随时进行编辑修改。同时,在对聊天机器人的测试过程中,也可以对不满意的问题回复进行即时的编辑,并一键添加到机器人语料库中。
四、总结
随着人工智能技术的发展,全球智能聊天机器人市场呈指数级增长,医疗、零售、金融、娱乐、出行、电商等各个领域的需求都在逐年递增,越来越多的企业正在将聊天机器人服务整合到自己的产品中,以降低人力资源成本。与此同时,智能聊天机器人的市场容量也非常大,覆盖的行业面非常广,可以说,语义交互无处不在,它渗透到了各个领域中。然而,开发对话系统的技术往往只被自然语言处理领域的专家们掌握,普通开发者对这些技术的了解少之又少。通过DTP,开发者可以快速、灵活的按自身业务需求定制对话系统,满足智能助手、智能家居、智能客服、机器人等各类产品和场景需求。
DTP闲聊机器人现已整合进入DTP中,官方网址是:http://dtp-cloud.cn,点击下方阅读原文即可访问,欢迎大家使用,如有任何问题或者建议也可以反馈至我们的邮箱car@ir.hit.edu.cn。我们希望通过DTP将人工智能技术和自然语言处理技术带给广大的开发者,从而最大化这些技术的价值,帮助大家开发出更加优秀的产品。