王先森日记第23篇:聊天机器人的终极目标——怎样才能更像人
近年来,聊天机器人的发展非常迅猛。从2010年起,大量的产品和平台开始逐渐进入人们的视野。尤其是最近几年,随着大数据的积累、计算能力的提升以及人工智能技术,尤其是深度学习技术的发展,聊天机器人的技术愈发成熟。同时,伴随着智能家居、智能客服的应用逐渐普及,聊天机器人同时迎来了一个从实验室研究到产品落地的井喷期。
一、聊天机器人的分类
一般来讲,目前的聊天机器人从功能和技术的角度,可以分为两类。
一类是以 Siri、Amazon Echo、微软小娜等为代表,偏向于工具性的服务型机器人。
另一类则是以微软小冰为代表的娱乐型机器人。
第一类聊天机器人,以完成任务或回答事实性问题为导向,譬如在 Siri 上可以提问“今天的天气如何?”,在 小爱同学 上可以下达“小爱同学,关下灯”等指令。
第二类则以闲聊或者“调戏”为导向,并不需要给出某一个事实性问题的解答,只要交谈自如、博君一笑即可。
以上两类聊天机器人不仅是应用场景不同,其背后的技术也不尽相同。
二、两类聊天机器人背后的技术
1. 工具性的服务型聊天机器人
第一类聊天机器人背后所依赖的技术是传统的问答系统技术,即 Question Answering(QA)。QA 技术是自然语言处理中非常受重视的一个研究方向,通常的处理流程是对于输入的问题首先做句法分析,从而理解问题或者指令的结构和意图。
比如如果用户问的问题是某人出生在哪儿,那么机器人需要先对这句话进行解析,进而了解所要回答的应当是一个地点,并且这个地点应当满足某人出生于此的条件。
当我们能够准确地了解到用户提问的意图并能根据机器可以理解的方式重新组织之后,就需要寻找答案。
为了实现这一目的,聊天机器人的背后一定存在一个庞大的数据库(也就是知识库),这个数据库中存储着所有的指令对应的行为或者问题对应的答案,当系统在数据库中搜索到了自己要做什么或者回答什么的时候,就可以将答案反馈给用户,或者直接实现用户的指令。
当然,如果数据库的规模实在有限,有一个兜底的方法就是基于信息检索来返回答案,即将用户的输入提取出关键词然后求助于搜索引擎返回相关的内容再返回给用户,由于互联网无所不包,因此结果一般也尚可接受。
归纳来说,这一类系统其背后有两个核心部件:
其一是问题和指令的解析,也就是系统需要正确理解用户的意图,如果问题和指令都分析错了,后面也就白下功夫了。
其二则是数据库(知识库)的构建,一般来说如果是指令数据库则可以相对做得比较好,系统的难点只是匹配指令罢了,这一点目前的技术已经相当成熟。但是相对困难的则是问答系统的数据库(知识库)的构建,一个涵盖大量信息并且质量较高的知识库的构建是相当困难的。
从知识库所涵盖内容的角度我们可以将知识库大致分为两类。
一类是通用型知识库,目前比较流行的譬如:维基百科、DBpedia 等等,这些公开的通用型知识库是回答很多事实型问题的有力工具,但是这一类的知识库所蕴含的知识依然有限,因此很多计算机科学家致力于信息抽取技术的研究,希望通过计算机自动地抽取整个互联网上的“知识”进而丰富自己的知识库,从而回答更多的问题,但是这一类技术目前的进展并不乐观,无论是准确率还是召回率都不是很高。
另一类是领域知识库,也就是针对某个领域做信息抽取,进而丰富某个特定领域的知识。这种技术相对更为成熟,最经典的例子就要属 IBM 的 Watson 机器人了。Watson 由 IBM 研究院在2011年推出参加了 Jeopardy(美国知识竞赛节目)并取得冠军。之后 IBM 成立医疗事业部,并与 MD 安德森癌症中心等知名医疗机构合作推出面向特定病种的辅助诊断医疗系统。如今 Watson 在医疗、法律等领域依旧被寄予厚望。
2. 娱乐型聊天机器人
第二类机器人则在技术上与第一类服务型机器人有比较大的不同,这一类机器人更多地伴随着深度学习的发展而发展,更准确地说,主要基于循环神经网络技术。在收集了高质量的海量对话数据之后,通过深度学习来训练一个语言模型,进而“读懂”聊天内容。
Facebook 的 DeepText 文本理解引擎正是基于这样的想法而实现的。
这一类机器人一般可以胜任闲聊娱乐,但是在处理任务和回答问题上就不是很能令人满意了,而类似的,前一类机器人能够较好地完成服务,但是如果用户开始闲聊,那么机器人可能就无法给出比较好的回应。
三、两种不同的重要价值
总的来说,服务型的机器人比较实用。虽然有时候看上去笨笨的,但是一般此类聊天机器人背后都有其应用场景在支撑,比如 Amazon Echo 背后的智能家居,Siri 的个人助手,小 i 机器人的智能客服,IBM Watson 的精准医疗等等,随着在垂直领域的不断深耕,可以不断提升数据库进而提升用户的满意度。
而娱乐型机器人也具有其重要价值,比如建立人、机之间的信任,让机器能够更好地为用户画像等等。
当然,目前的技术还不能将两者很好地融合在一起,因此在聊天机器人的领域,依然需要场景化的设计。
比如,如果想聊天,那么它的目的就是和人尽可能多地聊下去,消耗人的时间,它的难点就在于理解人的情绪状态和反馈。同时机器人该如何主导话题、让机器人也具有各种各样的性格也是待研究的任务。而服务型机器人则相对严肃,要以快速结束聊天为目标进而提升用户的满意度,因此要尽量控制场景以减少语言带来的歧义。
四、实现一个真正的聊天机器人
那么怎样才能融合二者,实现一个真正的聊天机器人呢?从目前的情况来看,要设计一个更“像人”的聊天机器人,至少还有以下几个问题需要突破。
1. 系统层面的数据融合
机器需要对对话情境有更全面的感知,包括时间、空间、上下文、与上下文相关的背景知识、对话对象的个性、情绪等等。
在这一方面,机器学习方面的技术并不构成瓶颈,难点在于如何系统地引入这些语言之外的信息。
一个比较有意思的例子是,最近有一个叫 Polygram 的 APP,它可以在人们用聊天软件聊天时,利用人工智能技术捕捉人的面部表情,并将其实时转化为 emoji 表情。
Polygram 可以将人的面部表情实时转化为表情包
在苹果发布会上,我们也看到 iPhone X 推出了类似的功能,其 Animoji 动态表情可以配合 3D 扫描人脸表情,通过我们录下自己的音频以及面部动作来定制自己的动态表情。
而基于类似的技术,我们就可以在训练聊天模型时加入表情信息,这样我们的机器就可以在学习对话的同时兼顾用户的心情。
这种做法的问题在于我们如何系统地引入更多类似的信息,比如周围的声音、环境,用户今天遇到的事等等,这些都是机器人更好地聊天时需要考虑的因素。而如何系统地收集、管理并使用这些信息,依然还是一个需要学术界研究的问题。
2. 机器推理
包括如何根据获得的对话情境推理出用户的真正意图,包括常识及言下之意等等。
举个非常简单的例子:
“小明去上学”,作为人类来说,马上就知道小明一定是个学生,可是如何让机器了解“去上学的人是学生”这个常识呢?
如果是让机器去学习,但是我们的推理中需要大量类似的常识,又该如何寻找数据、如何标注、如何学习呢?如果是让机器去推理,我们又如何习得推理所用的常识呢?
更困难的是,常识往往并不会显式地出现在文本数据中,正如没有一段互联网上的文章会告诉我们“去上学的人是学生”一样。这些都是需要解决的问题。
3. 扩大机器学习的范围
目前的技术依赖于有限的训练文本,如何能够让机器始终学习、存储所学的知识,并针对不同的场景自动提取不同的知识,也是聊天机器人进一步提升的关键问题。
综上所述,聊天机器人虽然已经达到了一个令人可喜的程度,但是要想进一步提升,依然需要学术界、工业界的同仁们不断努力。
本篇文章转载自张义。