聊天机器人,是一种通过自然语言模拟人类进行对话的程序。通常运行在特定的软件平台上,如PC平台或者移动终端设备平台,而类人的硬件机械体则不是必需的承载设备。
聊天机器人的研究源于图灵(Alan M. Turing)在1950年《Mind》上发表的文章《Computing Machinery and Intelligence》,文章开篇提出了“机器能思考吗?”(“Can machines think?”)的设问,并且通过让机器参与一个模仿游戏(Imitation Game)来验证“机器”能否“思考”,进而提出了经典的图灵测试(Turing Test)。图灵测试被认为是人工智能的终极目标,图灵本人因此也被称作“人工智能之父”。
最早的聊天机器人ELIZA[1]诞生于1966年,由麻省理工学院(MIT)的约瑟夫·魏泽鲍姆(Joseph Weizenbaum)开发,用于在临床治疗中模仿心理医生。值得注意的是尽管ELIZA的实现技术仅为关键词匹配及人工编写的回复规则,但魏泽鲍姆本人对ELIZA的表现感到吃惊,随后撰写了《Computer Power and Human Reason》这本书,表达他对人工智能的特殊情感。
1988年,加州大学伯克利分校(UC Berkeley)的罗伯特·威林斯基(Robert Wilensky)等人开发了名为UC(UNIX Consultant)[2]的聊天机器人系统。顾名思义,UC是一款帮助用户学习怎样使用UNIX操作系统的聊天机器人。它具备了分析用户的语言、确定用户操作的目标、给出解决用户需求的规划、决定需要与用户沟通的内容、以英语生成最终的对话内容以及根据用户对UNIX系统的熟悉程度进行建模的功能。如果说ELIZA开启了智能聊天机器人时代的话,那么UC则进一步推动了聊天机器人的智能化程度。
为了将图灵测试付诸实践,美国科学家兼慈善家休·勒布纳(Hugh G. Loebner)于1990年设立了人工智能年度比赛——勒布纳奖(Loebner Prize)[3](包括10万美金的奖金和一块印有勒布纳与图灵头像的金牌)。勒布纳奖的设立旨在奖励首个与人类回复无差别的计算机程序,即聊天机器人系统,并以此推动图灵测试及人工智能的发展。
在勒布纳奖的推动下,聊天机器人的研究迎来了一个高潮,这里面较为代表性的聊天机器人系统是ALICE(Artificial Linguistic Internet Computer Entity)[4]。受到ELIZA聊天机器人的启发,理查德·华勒斯(Richard S. Wallace)博士在1995年开发了ALICE系统。ALICE曾经在2000年、2001年和2004年三次问鼎勒布纳奖,并于1998年开始开源,目前全世界有超过500个开发者为ALICE项目贡献代码。值得注意的是,随着ALICE一同发布的AIML(Artificial Intelligence Markup Language)目前被广泛应用在移动端虚拟助手的开发中。尽管ALICE采用的是启发式模板匹配的对话策略,但是它仍然被认为是同类型聊天机器人中性能最好的系统之一。此外,还有用于查询英国电话黄页的YAP[5]、用于外语学习伴侣的CSIEC[6]、用于哈佛大学数学教学的Sofia[7]等,在这里暂不展开介绍。
近年来,基于聊天机器人系统的应用层出不穷。从应用场景的角度来看,可以分为在线客服、娱乐、教育、个人助理和智能问答五个种类。
在线客服聊天机器人系统的主要功能是同用户进行基本沟通并自动回复用户有关产品或服务的问题,以实现降低企业客服运营成本、提升用户体验的目的。其应用场景通常为网站首页和手机终端。代表性的商用系统有小I机器人、京东的JIMI客服机器人等。用户可以通过与JIMI聊天了解商品的具体信息以及反馈购物中存在的问题等。值得称赞的是,JIMI具备一定的拒识能力,即能够知道自己不能回答用户的哪些问题以及何时应该转向人工客服。
娱乐场景下聊天机器人系统的主要功能是同用户进行开放主题的对话,从而实现对用户的精神陪伴、情感慰藉和心理疏导等作用。其应用场景通常为社交媒体、儿童玩具等。代表性的系统如微软“小冰”、微信“小微”、“小黄鸡”、“爱情玩偶”等。其中微软“小冰”和微信“小微”除了能够与用户进行开放主题的聊天之外,还能提供特定主题的服务,如天气预报和生活常识等。
应用于教育场景下的聊天机器人系统根据教育的内容不同包括构建交互式的语言使用环境,帮助用户学习某种语言;在学习某项专业技能中,指导用户逐步深入地学习并掌握该技能;在用户的特定年龄阶段,帮助用户进行某种知识的辅助学习等。其应用场景通常为具备人机交互功能的学习、培训类软件以及智能玩具等。这里以科大讯飞公司的开心熊宝(具备移动终端应用软件和实体型玩具两种形态)智能玩具为例,“熊宝”可以通过语音对话的形式辅助儿童学习唐诗、宋词以及回答简单的常识性问题等。
个人助理类应用主要通过语音或文字与聊天机器人系统进行交互,实现个人事务的查询及代办功能,如天气查询、空气质量查询、定位、短信收发、日程提醒、智能搜索等,从而更便捷地辅助用户的日常事务处理。其应用场景通常为便携式移动终端设备。代表性的商业系统有Apple Siri、Google Now、微软Cortana、出门问问等。其中,Apple Siri的出现引领了移动终端个人事务助理应用的商业化发展潮流。,Apple Siri随着IOS 5一同发布,具备聊天和指令执行功能,可以视为移动终端应用的总入口,然而受到语音识别能力、系统本身自然语言理解能力的不足以及用户使用语音和UI操作两种形式进行人机交互时的习惯差异等限制,Siri没能真正担负起个人事务助理的重任。
智能问答类的聊天机器人主要功能包括回答用户以自然语言形式提出的事实型问题和需要计算和逻辑推理型的问题,以达到直接满足用户的信息需求及辅助用户进行决策的目的。其应用场景通常作为问答服务整合到聊天机器人系统中。典型的智能问答系统除了IBM Watson之外,还有Wolfram Alpha和Magi,后两者都是基于结构化知识库的问答系统,且分别仅支持英文和中文的问答。
聊天机器人系统的组成结构及关键技术
通常来说,聊天机器人的系统框架如下图所示,包含五个主要的功能模块。语音识别模块负责接收用户的语音输入并将其转换成文字形式交由自然语言理解模块进行处理。自然语言理解模块在理解了用户输入的语义之后将特定的语义表达式输入到对话管理模块中。对话管理模块负责协调各个模块的调用及维护当前对话状态,选择特定的回复方式并交由自然语言生成模块进行处理。自然语言生成模块生成回复文本输入给语音合成模块将文字转换成语音输出给用户。这里我们仅以文本输入形式为例介绍聊天机器人系统,语音识别和语音合成相关技术则不做展开介绍。
聊天机器人系统框架图
自然语言理解
自然语言理解的目的是为聊天任务生成一种语义表示形式[8]。通常来说,聊天机器人系统中的自然语言理解功能包括用户意图识别、用户情感识别、指代消解、省略恢复、回复确认及拒识判断等技术。
1)用户意图识别:用户意图又包括显式意图和隐式意图,显示的意图通常对应一个明确的需求,如用户输入“我想预定一个标准间”,明确表明了想要预定房间的意图,而隐式意图则较难判断,如用户输入“我的手机用了三年了”,有可能想要换一个手机或者显示其手机性能和质量良好。
2)用户情感识别:用户情感同样也包含显式和隐式两种,如用户输入“我今天非常高兴”,明确表明了喜悦的情感,而“今天考试刚刚及格”,则不太容易判断用户的情感。
3)指代消解和省略恢复:在对话过程中,由于人们之间具备聊天主题背景一致性的前提,用户通常使用代词来指代上文中的某个实体或事件,或者干脆省略一部分句子成分。但对于聊天机器人系统来说只有明确了代词指代的成分以及句子中省略的成分,才能正确理解用户的输入,给出合乎上下文语义的回复。因此需要进行代词的消解和省略的恢复。
4)回复确认:用户意图有时会带有一定的模糊性,这时就需要系统具有主动询问的功能,进而对模糊的意图进行确认,即回复确认。
5)拒识判断:聊天机器人系统应当具备一定的拒识能力,主动拒绝识别超出自身回复范围之外或者涉及敏感话题的用户输入。
当然,词法分析、句法分析以及语义分析等基本的自然语言处理技术对于聊天机器人系统中的自然语言理解功能也起到了至关重要的作用。
对话管理
对话管理功能主要协调聊天机器人的各个部分,并维护对话的结构和状态[9]。对话管理功能中涉及到的关键技术主要有对话行为识别、对话状态识别、对话策略学习及对话奖励等。
1)对话行为识别:对话行为是指预先定义或者动态生成的对话意图的抽象表示形式。分为封闭式和开放式两种,所谓封闭式对话行为,即将对话意图映射到预先定义好的对话行为类别体系。常见于特定领域或特定任务的对话系统,如票务预订、酒店预订等,例如:“我想预订一个标准间”,这句话被识别为 Reservation(Standard_room) 的对话行为。相对的,开放式对话行为则没有预先定义好的对话行为类别体系,对话行为动态生成。常见于开放域对话系统,如聊天机器人。例如:“今天心情真好啊”,这句话的对话行为可以通过隐式的主题、N元组、相似句子簇、连续向量等形式表达。
2)对话状态识别:对话状态与对话的时序及对话行为相关联,在t时刻的对话行为序列即为t时刻的对话状态。因此,对话状态的转移就由前一时刻的对话状态与当前时刻的对话行为决定。
3)对话策略学习:通常是通过离线的方式,从人-人对话数据中学习对话的行为、状态、流行度等信息,从而作为指导人-机对话的策略。这里流行度通常是指特定模式在语料库中的频度。
4)对话奖励:对话奖励是对话系统的中间级评价机制,但会影响对话系统的整体评价。常见的对话奖励有槽填充效率和回复流行度等。
自然语言生成
自然语言生成通常根据对话管理部分产生的非语言信息,自动生成面向用户的自然语言反馈[10]。近年来,在聊天机器人系统上的对话生成主要涉及检索式和生成式两类技术。
1)检索式对话生成技术:检索式的代表性技术[11]是在已有的人人对话语料库中通过排序学习技术和深度匹配技术找到适合当前输入的最佳回复。这种方法的局限是仅能以固定的语言模式进行回复,无法实现词语的多样性组合。
2)生成式对话生成技术:生成式的代表性技术[12,13]则是从已有的人人对话中学习语言的组合模式,是通过一种类似机器翻译中常用的“编码-解码”的过程去逐字或逐词地生成一个回复,这种回复有可能是从未在语料库中出现的、由聊天机器人自己“创造”出来的句子。
聊天机器人研究存在的挑战
当前,聊天机器人的研究存在的挑战包括:对话上下文建模、对话过程中的知识表示、对话策略学习、聊天机器人智能程度的评价等。
1)对话上下文建模:聊天是一个有特定背景的连续交互过程,在这一过程中经常出现上下文省略和指代的情况。一句话的意义有时要结合对话上下文或者相关的背景才能确定,而现有的自然语言理解主要基于上下文无关假设,因此对话上下文的建模成为聊天机器人系统的主要挑战之一。
2)对话过程中的知识表示:知识表示一直就是人工智能领域的重要课题,也是聊天机器人提供信息服务的基础。聊天机器人相关的领域任务可能有复杂的组成,牵涉很多的因素,只有了解这些因素的关系和相关的含义,才能与用户做到真正意义上的交流。
3)对话策略学习:对话策略涉及很多方面,其中最主要的是对话的主导方式。对话主导方式可以分为用户主导、系统主导和混合主导三种方式。在当前的对话管理研究中,系统应答的目标是自然、友好、积极,在不会发生问题的情况下,让用户尽可能自主,实现对话的混合主导。
4)聊天机器人智能程度的评价:目前聊天机器人智能程度的评价也是一项挑战。虽然可以采用一些通用的客观评价标准,如回答正确率、任务完成率、对话回合数、对话时间、系统平均响应时间、错误信息率等,对聊天机器人进行评价,评价的基本单元是单轮对话。但是,由于人机对话过程是一个连续的过程,而对不同聊天机器人系统的连续对话的评价仅能保证首句输入的一致性,当对话展开后,不同系统的回复不尽相同,因此不能简单地将连续对话切分成单轮对话去评价,于是设计合理的人工主观评价也许能够成为客观评价标准之外,对聊天机器人系统智能程度评价的重要指标。
聊天机器人在研究上的展望
随着聊天机器人研究的广泛开展,未来的研究将着眼于以下三方面:
1)端到端:得益于深度学习技术的发展,已有学者开始着手研究端对端的对话系统[14],即利用统一的模型代替序列化地执行自然语言理解、对话管理和自然语言生成的步骤,从用户的原始输入直接生成系统回复。
2)从特定域到开放域:随着大数据时代的到来,一方面,使得开放域的聊天机器人系统得以获取丰富的对话数据用于训练,另一方面,在大数据上可以自动聚类或抽取对话行为等信息,避免繁杂的人工定义。
3)更加关注“情商”:如果说传统的聊天机器人关注的是“智商”,即聊天机器人的信息和知识获取能力的话,那么今后的聊天机器人研究则更加注重“情商”,即聊天机器人的个性化情感抚慰、心理疏导和精神陪护等能力。
相信在不久的将来,一个能够让人们与之无所不谈的高“情商”聊天机器人将走入我们的日常生活,成为我们的朋友、同事甚至是家人。
本文作者:张伟男
来源:51CTO