APP下载

聊天机器人系统研究进展

2018-12-13王浩畅

计算机应用与软件 2018年12期
关键词:评测聊天语音

王浩畅 李 斌

(东北石油大学计算机与信息技术学院 黑龙江 大庆 163318)

0 引 言

随着社会信息化进程的日益加快,人们希望能够用自然语言与计算机进行交流,聊天机器人的市场因此产生。聊天机器人通过学习自然语言来与人类进行对话,属于问答系统的范畴。它不仅能回答用户所提的问题,还能人性化地与用户交流,同时提醒或者安排用户完成一些任务。

20世纪90年代以前的聊天机器人,与用户的交谈仅仅基于谈话技巧和程序技巧,在它们的对话库中存放着很多句型和模板[1],但缺乏语义分析能力,且几乎没有知识库,因此根本无法真正理解用户所提出问题,对话质量差强人意。同时由于应用场景的缺失,聊天机器人在过去的十几年间并未得到太多的关注。

随着技术的不断创新和市场需求的持续增大,人工智能正成为数据、科技进入人类生活的重要桥梁。近年来,包括自然语言处理、深度学习、语音识别和模式识别等在内的人工智能技术稳步前进,推动了聊天机器人系统的高度发展,人机交互的方式也发生了很大的变化。目前,很多商业公司纷纷投入到聊天机器人的研发中,陆续推出了相关产品,比如苹果的Siri、谷歌的Google Now、微软的Cortana与小冰、百度的“度秘”、亚马逊的智能语音助手Alexa、Facebook的语音助手M、以及韩国风靡全球的SimSimi等。研究聊天机器人的相关技术,尤其是对话理解问题,对促进人机交互方式的发展有重要意义[2]。

1 国内外研究现状

1.1 国外研究现状

国外在聊天机器人领域的研究起步比较早,也比较成熟,一些知名的大学和科研机构都对智能人机对话系统进行了深入的研究和系统开发。

聊天机器人的研究开始于1950年,英国知名数学家图灵在《Mind》上发表了一篇经典论文——《计算机器与智能》[3-4]。在文中,图灵第一次提出“机器智能”的概念,并提出判断计算机是否具备智能的实验方法——“图灵测试”[5]。“图灵测试”是问答系统的蓝图,也是人工智能的终极目标。

1966年,麻省理工学院的计算机科学家Joseph Weizenbaum开发出了最早也是最著名的聊天机器人系统——Eliza[6]。该系统的基本原理是在数据库中查找与用户问句中相应的关键词,然后使关键词与相应的模式进行匹配,最后输出与之匹配的答案。Eliza主要应用于医疗领域,通过这个系统可以引导精神病人与系统进行交互,从而获取治疗需要的信息,能对精神病人进行辅助治疗[7]。从此,Eliza系统开启了智能聊天机器人的时代。

1990年,美国科学家兼慈善家Hugh G.Loebner设立了一年一度的人工智能比赛——Loebner Prize(勒布纳奖),目的在于奖励最擅长模仿人类真实对话场景的机器人;Chatterbox Challenge是2001年开始的一年一度的挑战,旨在测试聊天机器人在对话中模拟真人的能力,根据对一系列的问题和整个对话的反应程度来判断该能力。

在这样一些竞赛的推动下,众多科学家和学者纷纷投身到聊天机器人系统研究中,这在推广图灵测试的同时,也推动了人工智能的发展,是聊天机器人的研究的一个黄金期。1995年,Richard S.Wallace博士开发了一个基于经验的人工智能聊天机器人——ALICE。它以人工智能标记语言AIML(Artificial Intelligence Markup Language)作为知识描述语言,凭借其良好的设计和逼真的效果,在2000年、2001年和2004年三度获得著名的勒布纳奖,并且在2004年获得了Chatterbox Challenge比赛的冠军,曾一度被认为是最聪明的聊天机器人。目前,该系统经过改进后已经能够完全支持中文语言,并且在各种中文聊天系统中取得了较好的成绩。

1998年,Wendell Cowart用Java script和PERL语言编写的Talk-Bot作为一个在线聊天系统被发布,在2001年、2002年和2006年三次获得了Chatterbox Challenge比赛的冠军[8]。

由Bruce Wilcox开发的ChatScript在2010年、2011年和2014年三次获得了勒布纳奖,促进了聊天机器人领域的快速发展。由于ChatScript改进了脚本引擎,使其比AIML更具维护性及可读性,并从AIML时代基于无状态的对话,进入基于状态、拥有上下文情景及记忆的对话,带来了更高的交互性;同时引入Ontology,让聊天机器人拥有更丰富的知识[9]。

新世纪的到来为智能聊天系统创造了更大的发展空间,尤其是深度学习算法的出现,为聊天机器人的研究带来了蓬勃生机[10]。目前,研究聊天机器人的热度持续上涨,各大厂商也纷纷加入到研制聊天机器人的行列,如苹果语音助手Siri、韩国的小黄鸡、IBM沃森系统、谷歌的Google Now、微软的Cortana、亚马逊的Alexa等。

1.2 国内研究现状

相比之下,国内在聊天机器人领域的研究起步较晚,面临着两大难题:一是中文在信息处理方面的特殊性,往往无法将国外一些成熟技术和研究成果直接利用到中文对话系统中;二是缺乏相应的自然语言处理的相关基础资源,如语料库、知识库以及相应的评价机制等[1]。

近年来,随着聊天机器人技术的飞速发展,国内的聊天机器人研究事业有了很大的进展。2014年,微软小冰一时成为热门话题,小冰在与用户的对答中积累了大量的语料基础,同时,微软凭借在大数据、自然语义分析、机器学习和深度神经网络方面的技术积累[11],大大提升了小冰的对话学习能力。继小冰之后,国内其他厂商紧随其后,各具特色的聊天机器人应运而生,如公子小白、百度度秘、Holoera等。按照时间的先后顺序将聊天机器人所属的应用场景分类,以及主要功能或核心技术等总结如图1所示。

图1 聊天机器人

2 聊天机器人的分类

聊天机器人种类繁多,且广泛地应用于各个领域。在功能上,可以将聊天机器人划分为以闲聊为主的开放领域和以任务为主的特定领域;而在技术实现上又可以划分为检索式和生成式;本文主要从应用场景上对聊天机器人进行分类,从该方面可以将其划分为娱乐、在线客服、教育、个人助理和智能问答。

娱乐聊天机器人的主要功能是同用户进行开放主题的对话。代表性的系统有微软“小冰”、微信“小微”、“小黄鸡”等。此类应用不仅能够与用户进行闲聊,实现情感抚慰和精神陪伴等;还能满足日常生活需求,如新闻播报和天气预报等。

在线客服聊天机器人的主要功能是针对用户提出的有关产品或服务的相关问题进行回答。代表性的系统有小i机器人、京东的JIMI客服机器人等。一般而言,客服机器人具备一定的拒识能力,即当知道自己不能回答用户的问题时,就会提供某种机制将用户转向人工客服。

教育场景下的聊天机器人主要功能包括帮助用户学习新语种;辅助用户在特定年龄阶段对某种知识的学习;指导用户对某项专业技能的学习等。代表性的系统有科大讯飞公司的开心熊宝和微软亚洲研究院开发的微软小英。

个人助理类聊天机器人的主要功能侧重于实现个人事务,如信息查询及代办其他事件等功能,目的是更便捷地辅助用户的日常事务处理。代表性的系统有苹果Siri、百度度秘、微软Cortana和 Google Now等。

智能问答类的聊天机器人主要功能是理解并回答用户提出的问题,这些问题比较侧重于事实性问题或者是需要计算和逻辑推理型的问题。代表性的系统有IBM Watson、Wolfram Alpha等。

3 聊天机器人系统框架

图2显示了一个通用的聊天机器人系统框架,其中包含五个主要的功能模块。基本的流程为:用户通过文字形式或语音形式输入之后进行预处理,转化成文本形式进行自然语言理解,然后再通过语义表示和上下文进入对话管理,接着对当前对话模型进行答案提取,最后将生成的回复文本进行合成输出给用户。

图2 聊天机器人系统框架

3.1 输入预处理

输入预处理模块主要负责对用户输入的问句进行前期的处理,如果是文字输入,就直接交给自然语言理解模块进行处理;如果是语音输入,就需要先将语音转换成文字形式。语音输入涉及到语音识别技术,语音识别技术主要包括特征提取技术、模式匹配准则以及模型训练技术3个方面[12]。

3.2 自然语言理解

自然语言理解模块主要负责从完整的语句中提取出需要的信息,并且理解用户输入问句的语义,产生一个特定的语义表达式。聊天机器人系统中的自然语言理解功能包括用户意图识别、用户情感识别、指代消解、省略恢复、回复确认及拒识判断等技术[13]。并且语法分析、语义分析、关键词提取、相似度计算等自然语言处理技术也是必不可缺的。

3.3 对话管理

对话管理模块是整个系统的核心,主要功能是协调聊天机器人的各个部分,提供人机交互的对话策略,帮助用户高效自然地完成任务,并维护和更新整个对话的状态[14]。其中涉及到对话行为识别、对话状态跟踪、动作选择、对话信息记录、策略优化以及对话奖励等关键技术。对话管理模块首先要识别出用户输入问题的形式是属于封闭式还是开放式。封闭式是指有明确的服务目标和服务对象,仅处理特定领域中的问题,给对话的主题进行了限制。开放式则没有一个清晰的目标和对象,对话涉及的主题很广,所需要的知识量也是巨大的。接着进行知识匹配,最后得到可以表示或者指向答案的模型。对话管理模块管理着对话的上下文和后端的知识库,以及对于生成最终的对话答案产生了直接的影响[15],在整个系统中是非常重要的。

3.4 答案生成

答案生成模块主要负责根据当前对话的模型进行答案的提取。答案生成通常根据对话管理部分产生的文本信息,自动生成面向用户的自然语言反馈[13],整个答案生成的过程包括了内容选择、文本规划、语句合成、指代表达生成、表层实现等阶段。目前,聊天机器人的对话生成技术主要包括检索式和生成式两种。检索式是指在对话库中以搜索匹配的方式找到适合用户输入语句的最佳答案予以回复。生成式是指采用一定的技术手段(如深度学习技术)自动生成新的回复内容。

3.5 输出处理

输出处理模块主要负责了解用户是以何种形式进行提问。提问时采用的是文字,就直接将文字输出给用户;提问时采用的是语音,就先将语音转化成文字。

4 聊天机器人的构建方法

对于聊天机器人的技术而言,常见的几种主流技术构建方法有:基于人工模板的聊天机器人、基于检索的聊天机器人和基于深度学习的聊天机器人。

4.1 基于人工模板的聊天机器人

该方法是根据用户输入的句子,在模板库中找到匹配的问句模板,然后按照对应的应答模板生成答案,返回给用户,如ALICE、ChatScript等。ALICE[16]采用AIML[17]语言来描述知识库,AIML语言采用XML语法来存储数据[18],图3所示为AIML规则实例。这种方法的优点是精确,缺点是需要大量的人力,并且缺乏灵活性,可扩展性差。

图3 AIML规则

4.2 基于检索的聊天机器人

基于检索技术的聊天机器人根据用户输入的句子,在对话库中以搜索匹配的方式进行匹配,从中找到最合适的应答内容,将答案提取出来返回给用户,其工作流程图如图4所示。这种方法对对话库的要求很高,并且需要足够大,但是它的优点是回答质量高,表达比较自然。

图4 基于检索的聊天系统工作流程

4.3 基于深度学习的聊天机器人

基于深度学习的聊天机器人根据用户输入的句子,利用模型逐词或逐字生成答案,然后将答案回复给用户。其中多数技术采用了Encoder-Decoder[19-21]模型,即编码-解码模型,其框架技术原理如图5所示。Encoder就是对输入序列进行编码,通过一系列非线性变换转化成一个带有语义固定长度的向量;Decoder就是根据之前生成的固定向量再转化成输出序列。实现聊天系统的时候,Encoder和Decoder都不是固定的,可选择的模型有RNN[22]、LSTM[23]、GRU[24]等,可以自由组合。这种方法思路简单,可扩展,能够更好地理解上下文,但是模型很难训练,回复时经常存在一些语法错误。

图5 Encoder-Decoder框架

目前,在构建系统时都是将多种方法融合。根据三种构建方法的不同,将聊天机器人构建方法进行对比,如表1所示。

表1 三种构建方法的比较

5 聊天机器人技术评测及评测指标

5.1 聊天机器人技术评测

技术评测在聊天机器人(人机对话)领域非常重要,不仅对人工智能的技术进步起到了巨大的推动作用,还能够促进整个科学研究领域的发展。近年来,出现了一些专门针对人机对话技术的评测,如NIPS、DSTC、SMP2017-ECDT等。

神经信息处理系统大会NIPS(Advances in Neural Information Processing Systems)是由连接学派(connectionist)神经网络的学者于1987年在加拿大创办,是一个关于机器学习和神经计算领域的顶级会议,该会议于每年12月由NIPS基金会主办。2017年NIPS在美国西岸加州南部城市长滩市举办,竞赛主要有5项,包括人机问答、学习跑步、会话智能挑战等。

对话状态跟踪挑战DSTC(Dialog State Tracking Challenge)是从2013年开始进行的系列研究挑战任务,每年一次,到2017年已经组织了五次。该评测是一种任务驱动多轮对话评测标准,其重点在于改善跟踪对话系统的技术水平。状态跟踪是指在对话过程中准确估计用户的目标,该挑战为对话状态跟踪提供了第一个通用的测试平台和评估标准。

全国社会媒体处理大会SMP(National Conference of Social Media Processing)从2012年开始,每年举行一次,现已成为社会媒体处理的重要学术活动。第六届SMP于2017年9月在北京召开,此次会议首次组织举办了中文人机对话技术评测(The Evaluation of Chinese Human-Computer Dialogue Technology,SMP2017-ECDT),此次评测主要为了促进中文人机对话系统相关研究的发展,为人机对话技术相关的学术研究人员和产业界从业人员提供一个良好的沟通平台。表2列出了近5年评测任务及评测指标。

5.2 聊天机器人系统评测指标

聊天机器人系统的评测指标[30-34]采用国际上通用的平均排序倒数MRR(Mean Reciprocal Rank)、信赖加权评分CWS(Confidence Weighted Score)、准确率P(Precision)、召回率R(Recall)和F-Measure(F)几个评测指标。

(1)

如果标准答案存在于系统给出的排序结果中的多个位置,以排序最高的位置计算;如果标准答案不在系统给出的排序结果中,得0分。式(1)中的M表示标准答案在系统给出的排序结果中的位置,N表示测试集中的提问个数。

表2 人机对话技术评测

续表2

(2)

式中:C表示前i个提问中被正确回答的提问数,N表示测试集中的提问个数。

(3)

(4)

(5)

6 结 语

目前,聊天机器人的研究仍存在许多不足,这些不足为我们指出了未来的发展趋势。

(1) 理解提问者的问题及语言。目前有些聊天机器人忽略了最基础的语言理解能力。当用户所提问题较短时,系统不能有效的理解问题[35]。谷歌和Facebook就对这一问题进行了深入的研究,他们使用深度神经网络来推进聊天机器人的自然语言处理能力,希望通过分析海量数据来学会理解语言,并以自然的方式回应人类语言。

(2) 学习能力。学习应当是一个优化的过程,聊天机器人应该要建立自己的道德标准体系,识别哪些是应该学习的。除此之外,还要有主动学习的能力。现在聊天机器人开放式学习的能力依旧是有限的,仍需要人类教会它们如何获取及处理数据,这背后需要一个庞大的团队。如果可以通过互联网自行搜索信息,并进行自动学习和获取知识,就能减少大量的人力,这也是走向人工智能的重要一步。

(3) 推理判断能力。聊天机器人如果没有推理判断能力,就无法分辨出自己的回答是否正确、合理。因此需要建立自己的评价体系,对所有回答进行判断,并找出最优答案。目前已有一些研究人员和机构将深度学习和知识图谱技术应用到聊天机器人中,使得聊天机器人具有一定的推理能力,且对话更加流畅自然。

(4) 记忆能力。目前的聊天机器人只是回答一些简单的问题,几乎没有记忆能力。在一段对话中,人们经常有所省略,用一个或几个字来代指上文中所说的某一件事,对于这种情况,聊天机器人基本上无法根据上下文来回答。这就需要它们通过深度学习,按照语义的逻辑关系正确代入指代对象[36]。

(5) 语音识别技术。即使聊天机器人已拥有先进的语音识别技术,但口音的差异仍是一大难题。由于语言的差异及各种口音的存在,聊天机器人必须学习适应语种转换和音调变化。目前,Alexa、Siri、Cortana等个人助理正试图利用现有数据补充语音功能,以增强语音识别技术,并改善对复杂语音模式的理解,使用数据挖掘和神经网络来分析和模仿人类语言。

一个好的聊天机器人不仅需要用到各种信息处理技术,还要考虑各种知识的融合,而现在的人工智能技术也正朝着这个方向发展。目前的聊天机器人虽然离我们理想的目标还有一段距离,功能不够全面,产业和技术发展仍存在着很多局限性,但是随着研究的不断深入,聊天机器人的智能化水平将不断提高,聊天机器人也在逐步走向成熟。如今,聊天机器人技术正处于蓬勃发展的时期,相信在不久的将来聊天机器人会取得一次次重大的突破。

猜你喜欢

评测聊天语音
热力站设备评测分析
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
我就是不想跟你聊天了
敞开门聊天
MI评测产品排行榜