/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/
author: 张俊林
(想更系统地学习深度学习知识?请参考:深度学习枕边书)
聊天机器人(也可以称为语音助手、聊天助手、对话机器人等)是目前非常热的一个人工智能研发与产品方向。很多大的互联网公司重金投入研发相关技术,并陆续推出了相关产品,比如苹果Siri、微软Cortana与小冰、Google Now、百度的“度秘”、亚马逊的蓝牙音箱Amazon Echo内置的语音助手Alexa、Facebook推出的语音助手M、Siri创始人推出的新型语音助手Viv…….
为何老牌互联网公司和很多创业公司都密集地在聊天机器人领域进行投入?其实根本原因在于大家都将聊天机器人定位为未来各种服务的入口,尤其是移动端APP应用及可穿戴设备场景下提供各种服务的服务入口,这类似于Web端搜索引擎的入口作用。将来很可能通过语音助手绕过目前的很多APP直接提供各种服务,比如查询天气、定航班、订餐、智能家居的设备控制、车载设备的语音控制等等,目前大多采用独立APP形式来提供服务,而将来很多以APP形式存在的应用很可能会消失不见,直接隐身到语音助手背后。作为未来各种应用服务的入口,其市场影响力毫无疑问是巨大的,这是为何这个方向如此火热的根本原因,大家都在为争夺未来服务入口而提前布局与竞争,虽然很多公司并未直接声明这个原因,但其目的是显而易见的。
|聊天机器人的类型
目前市场上有各种类型的机器人,比如有京东JIMI这种客服机器人,儿童教育机器人,小冰这种娱乐聊天机器人,Aexa这种家居控制机器人、车载控制机器人、Viv这种全方位服务类型机器人等等。这是从应用方向角度来对聊天机器人的一种划分。
如果对其应用目的或者技术手段进行抽象,可以有以下两种划分方法。
目标驱动(Goal –Driven)VS 无目标驱动(Non-Goal Driven)聊天机器人
目标驱动的聊天机器人指的是聊天机器人有明确的服务目标或者服务对象,比如客服机器人,儿童教育机器人、类似Viv的提供天气订票订餐等各种服务的服务机器人等;这种目标驱动的聊天机器人也可以被称作特定领域的聊天机器人。
无目标驱动聊天机器人指的是聊天机器人并非为了特定领域服务目的而开发的,比如纯粹聊天或者出于娱乐聊天目的以及计算机游戏中的虚拟人物的聊天机器人都属于此类。这种无明确任务目标的聊天机器人也可以被称作为开放领域的聊天机器人。
检索式 VS 生成式聊天机器人
检索式聊天机器人指的事先存在一个对话库,聊天系统接收到用户输入句子后,通过在对话库中以搜索匹配的方式进行应答内容提取,很明显这种方式对对话库要求很高,需要对话库足够大,能够尽量多地匹配用户问句,否则会经常出现找不到合适回答内容的情形,因为在真实场景下用户说什么都是可能的,但是它的好处是回答质量高,因为对话库中的内容都是真实的对话数据,表达比较自然。
生成式聊天机器人则采取不同的技术思路,在接收到用户输入句子后,采用一定技术手段自动生成一句话作为应答,这个路线的机器人的好处是可能覆盖任意话题的用户问句,但是缺点是生成应答句子质量很可能会存在问题,比如可能存在语句不通顺存在句法错误等看上去比较低级的错误。
本文重点介绍开放领域、生成式的聊天机器人如何通过深度学习技术来构建,很明显这是最难处理的一种情况。
|好的聊天机器人应该具备的特点
一般而言,一个优秀的开放领域聊天机器人应该具备如下特点:
首先,针对用户的回答或者聊天内容,机器人产生的应答句应该和用户的问句语义一致并逻辑正确,如果聊天机器人答非所问或者不知所云,亦或老是回答说“对不起,我不理解您的意思”,对于聊天机器人来说无疑是毁灭性的用户体验。
其次,聊天机器人的回答应该是语法正确的。这个看似是基本要求,但是对于采用生成式对话技术的机器人来说其实要保证这一点是有一定困难的,因为机器人的回答是一个字一个字生成的,如何保证这种生成的若干个字是句法正确的其实并不容易做得那么完美。
再次,聊天机器人的应答应该是有趣的、多样性的而非沉闷无聊的。尽管有些应答看上去语义上没有什么问题,但是目前技术训练出的聊天机器人很容易产生“安全回答”的问题,就是说,不论用户输入什么句子,聊天机器人总是回答“好啊”、“是吗”等诸如此类看上去语义说得过去,但是这给人很无聊的感觉。
还有,聊天机器人应该给人“个性表达一致”的感觉。因为人们和聊天机器人交流,从内心习惯还是将沟通对象想象成一个人,而一个人应该有相对一致的个性特征,如果用户连续问两次“你多大了”,而聊天机器人分别给出不同的岁数,那么会给人交流对象精神分裂的印象,这即是典型的个性表达不一致。而好的聊天机器人应该对外体现出各种基本背景信息以及爱好、语言风格等方面一致的回答。
|几种主流技术思路
随着技术的发展,对于聊天机器人技术而言,常见的几种主流技术包括:基于人工模板的聊天机器人、基于检索的聊天机器人、基于机器翻译技术的聊天机器人、基于深度学习的聊天机器人。
基于人工模板的技术通过人工设定对话场景,并对每个场景写一些针对性的对话模板,模板描述了用户