本文介绍聊天机器人原理及实现傻瓜式聊天机器人。
1 聊天机器人简介
维基百科
聊天机器人(也称为聊天机器,聊天机器人,Bot,IM bot,交互代理或人工对话实体)是通过语音或文本进行对话的计算机程序或人工智能。
百度百科
聊天机器人是一个用来模拟人类对话或聊天的程序。
2 聊天机器人发展
2.1 前人工智能时代的聊天机器人
聊天机器人的起源可追溯到20世纪五六十年代,它的研究源于图灵(Alan M. Turing)1950年在Mind上发表的文章< Computing Machinery and Intelligence >(计算机与智能),文章提出了”机器能思考吗?”的问题,并且通过让机器参与一个模仿游戏(Imitation Game)来验证”机器”能否思考,进而提出了经典的图灵测试(Turing test),图灵测试被认为是人工智能的终极目标,图灵本人因此被称作人工智能之父.
(1) 图灵测试
测试者和被测试者(一个人和一个机器)分开的情况下(彼此不知身份),通过对话,测试机器的智能.若超过30%的测试者不能确定被测试者是人还是机器,则机器被认为具有人类智能.
20世纪的聊天机器人可分为三个时期:
(2) 第一个时期(1966年)
麻省理工学院约瑟夫·魏泽鲍姆(Joseph Weizenbaum)开发的聊天机器人ELIZA用于临床治疗中模仿心理医生,当时的ELIZA基于关键词匹配及人工编写的回复规则完成对话,但是魏泽鲍姆本人对ELIZA的表现感到不可思议,随后撰写(计算机能力与理性)书籍,表达对人工智能的特殊情感.
(3) 第二个时期(1988年)
加州大学伯克利分校(UC Berkeley)罗伯特·韦林斯基(Robert Wilensky)等人开发UC(UNIX Consultant)聊天机器人系统,UC是一款帮助用户学习怎样使用UNIX操作系统的聊天机器人,具备了分析用户语言,确定用户操作的目标,给出解决用户需求的规划,决定需要与用户沟通的内容,以英语生成最终的对话内容及根据用户对UNIX系统的熟悉程度进行建模.
(4) 第三个时期(1995年)
理查德·华勒斯(Richard S.Wallace)博士受到ELIZA聊天机器人的启发,于1995年开发了ALICE(Artifical Liguistic Internet Computer Entity)系统,并于1998年开始开源,目前全世界有超过500个开发者为ALICE项目贡献代码,随ALICE一同发布的AIML(Artifical Intelligence Markup Language)目前被广泛应用在移动端虚拟助手开发中,尽管ALICE采用的是启发式模板匹配的对话策略,但是它仍然认为是同类型聊天机器人中性能最好的系统之一.
2.2 人工智能时代的聊天机器人
进入21世纪,人工智能(Artifical Intelligence)的迅猛发展,聊天机器人也得到长足发展,可分为三种类型即检索式,生成式和知识图谱式.
(1) 检索式
检索式生成对话的聊天机器人通过已有的对话语料库,利用排序学习技术和深度(正则)匹配技术找到适合当前输入的最佳回复.该方法只能以固定的语言模式进行回复,无法实现词语的多样性组合,较死板
,若语料库数据较多,回复速度会变慢.
(2) 生成式
生成式生成对话的聊天机器人,从已有的对话预料中,利用编码-解码技术逐字或逐词生成回复,这种回复可能是语料库中未出现过的词语组合,解决了只能按照固定模板回复的局限,即使语料库较大,也能较快回复,但是,组合的语句可能不通顺,及语意不清等的问题.
(3) 知识图谱式
知识图谱生成对话的聊天机器人,依据常用的语言和简单逻辑通过AIML模板处理,通过知识图谱(可自动生长)的逻辑推理来处理复杂的逻辑,运用深度神经网络将复杂的逻辑用人类语言表达出来.
2.3 聊天机器人代表
Eliza,ALICE,Mitsuku其中ALICE和Mitsuku是Eliza的直接延伸,是在Eliza基础上扩大了模板,并增加了跳转.
(1) Siri
Siri与2011年面世,原本是美国军方的一个研究项目,后来技术成熟,被苹果买走,集成到iPhone中.
(2) Alexa,Google Assistant
Alexa和Google Assistant是一个平台,开放了很多API供开发者二次扩展.
(3) 微软小冰
是一个纯粹的聊天系统,不是作为任务主导的系统,它通过收集大量的用户和聊天数据,并从中学习一些模式,进行模式匹配.
(4) IBM Waston
Waston类似一个搜索引擎,对输入的问题进行类型分析,可精确回复.
3 聊天机器人分类
3.1 应用技术
按照应用技术可分为三类:基于检索匹配模型的聊天机器人,基于生成模型的聊天机器人,基于知识图谱的聊天机器人
3.2 应用场景
按照应用场景可分为五类:在线客服,娱乐,教育,个人助理和智能问答.
(1) 在线客服
在线客服聊天机器人系统的主要功能是和用户进行基本沟通并自动回复用户有关产品或服务的问题,降低企业客服运营成本,提升用户体验.应用场景通常为网站首页和手机终端,代表有小爱机器人,JIMI(JD)客服机器人,JIMI具有一定的拒识能力,即能够知道自己不能回答用户的哪些问题以及何时应转向人工客服.
(2) 娱乐机器人
娱乐机器人主要同用户进行开放主题的对话,从而实现对用户的精神陪伴,情感慰藉和心理疏导等作用,主要针对社交媒体,儿童玩具,代表产品有微软小冰和腾讯的小微,小微除了能够与用户进行开放主题的聊天外,还能提供特定主题的服务,如天气预报和生活常识等.
(3) 教育聊天机器人
教育聊天机器人根据教育内容构建交互的语言使用环境,帮助用户学习某种语言,在学习某项专业课程时,指导用户逐步深入学习并掌握技能,用户的特定年龄阶段,帮助用户进行某种知识的辅助学习等.通常该类聊天机器人具备交互学习功能,培训软件及智能玩具等,代表有科大讯飞开心熊宝系列玩具.
(4) 个人助理聊天机器人
该类聊天机器人主要通过语音或文字与聊天机器人系统进行交互,实现个人事务的查询及代办,如天气查询,空气质量查询,定位,短信收发,日程提醒和智能搜索等,从而更便捷辅助用户的日常事务处理,代表有Apple的Siri,Google Now, Cortana.
(5) 智能问答聊天机器人
智能应答的聊天机器人主要功能包括以自然语言形式提出的事实型问题和需要计算和逻辑推理型的问题,已达到满足用户的信息需求及辅助用户进行决策的目的.代表有IBM watson.
4 聊天机器人关键技术及挑战
4.1 自然语言理解
自然语言理解的目的是为聊天任务生成一种语义表示形式,通常,聊天机器人系统中的自然语言理解功能包括用户意图识别,用户情感识别,指代消解,省略回复,回复确认及拒识判断等技术
(1) 用户意图识别
用户意图包括显式意图和隐式意图,显式的意图通常对应一个明确的需求,如用户输入”我想查询今天的天气”,明确表明了想要查看天气的意图,而隐式意图则较难判断,如”我饿了”,可能想去吃饭,可能想去做饭.
(2) 用户情感识别
用户情感同样有显式和隐式两种,如”我今天很很高兴”表明喜悦,开心,如”我饿了”则不太容易判断用户情感.
(3) 指代消解和省略恢复
对话过程中,由于对话的双方具备聊天主题背景一致的前提,用户通常使用代词来指代上文中的某个事物或某件事情,后干脆省略一部分句子,但对于聊天机器人来说,只有明确代词指代的成分以及句子中省略的成分,才能正确理解用户的输入,给出结合上下文语义的回复,因此需要进行代词的消解和省略的恢复.
(4) 回复确认
用户意图有时会带有一定的模糊性,这时需要系统具有主动询问的功能,进而对模糊的意图进行确认,即回复确认.
(5) 拒识判断
聊天机器人系统应当具备一定的拒识能力,主动拒绝识别超出自身回复范围或涉及敏感话题的用户输入.
4.2 对话管理
对话管理功能主要协调聊天机器人的各个部分,并维护对话的结构和状态,对话管理功能中涉及到的关键技术有对话行为识别,对话状态识别,对话策略学习和对话奖励等.
(1) 对话行为识别
对话行为是指预先定义或者动态生成对话意图的冲抽象表示形式,分为开放式和封闭式两种.其中封闭式对话行为是将对话意图映射到预先定义好的对话行为类别体系,常见的特定领域或特定任务的对话系统,如票务预定,酒店预定等;开放式对话行为没有预先定义好的对话行为类别体系,对话行为动态生成,常见于开放域对话系统,如聊天机器人.
(2) 对话状态识别
对话状态和对话的时序及对话行为相关联,在某一时刻的对话行为序列为该时刻的对话状态,因此对话状态的转移由前一时刻的对话状态与当前时刻的对话行为决定.
(3) 对话策略学习
通过离线的方式,从人-人对话数据中学习对话的行为,状态,流行度等,从而作为指导人-机对话的策略,其中流行度通常指特定模式在语料库中的频度.
(4) 对话奖励
对话系统的中间级评价机制,但会影响对话系统的整体评价,常见的对话奖励有槽填充效率和回复流行度等.
4.3 自然语言生成
自然语言生成通常根据对话管理部分产生的非语言信息,自动生成面向用户的自然语言反馈,21世纪人工智能快速发展,聊天机器人技术也有长足进步,目前的有检索式和生成式两种,上面2.2节.
4.4 聊天机器人的挑战
目前聊天机器人的研究存在的挑战有对话上下文建模,对话过程中的知识表示,对话策略学习,聊天机器人智能程度评价.
(1) 对话上下文建模
对话是一个有特定背景的连续交互过程,在这个过程中经常出现上下文省略和指代的情况,一句话的意义有时需要结合上下文或相关聊天背景才能确定,而现有的自然语言理解主要基于上下文无关的假设,因此对上下文的建模是聊天机器人系统的挑战之一.
(2) 对话过程知识表示
知识表示一直是人工智能领域的重要课题,也是聊天机器人提供信息服务的基础,聊天机器人相关领域任务可能有复杂的组成,涉及面广,只有了解这些因素的关系和相关的含义,才能与做到真正意义上的交流.
(3) 对话策略学习
对话策略主要是对话的主导方式,可分为用户主导,系统主导和混合主导,当前的对话管理研究中,系统应答的目标是自然,友好,积极,在不会发生问题的情况下,让用户尽可能自主,实现对话的混合主导.
(4) 智能程度评价
聊天机器人的智能程度评价也是挑战之一,虽然可以通过通用的客观评价标准,如回答正确率,任务完成率,对话回合数,对话时间,系统平均响应时间,错误信息率等,对聊天机器人进行评价,评价的基本单元是单轮对话,但是,由于机器人的对话是一个连续过程,不同系统的回复不尽相同,因此不能简单地将连续对话切分为单轮对话去评价,设计合理的人工主观评价会提高评价的客观性.
4.5 聊天机器人发展趋势
(1) 端到端
深度学习技术的飞跃发展,Google Brain的科学家端到端的序列化模型生成对话,还有学者在研究使用统一模型生成对话.
(2) 从特定域到开放域
数据即语料数量决定了聊天机器人应变能力,大数据的迅猛发展,为聊天机器人提供了大量可用数据,使得机器人的任务类型逐渐向开放型过度.
(3) 回复带感情色彩
传统聊天机器人的”智商”是关注的焦点,希望机器人能够准确回复,今后的聊天机器人则更加关注回复的”感情色彩”,实现个性化情感抚慰,心理疏导和精神陪护等能力.
基于生成模型的聊天机器人
自然语言处理:基于seq2seq+bucket版(四)
[参考文献]
[1]https://www.cnblogs.com/veitch-623/p/6828608.html?utm_source=itdadao&utm_medium=referral
[2]https://www.cnblogs.com/aylin/p/5572104.html
[3]https://blog.csdn.net/sinat_31068093/article/details/79595042
[4]http://www.sohu.com/a/56113983_129720