智能客服对话系统常见构建方式
来源: 时间:2023-01-10
智能客服系统,问题和答案都比较固定,背后常常与知识库挂钩。甚至可以将问答系统理解成是用对话的方式快速检索使用文档中的 frequently asked question (FAQ)。 在问答场景中,用户明确地知道与之对话的不是真人,因此也不会使用复杂的对话结构,主要以单轮对话的形式呈现,用户占主导。
聊天场景指的是像人一样与人交谈,在聊天场景中,对话系统面对的挑战与前二者相比要复杂很多,如自然语言理解能力、记忆能力、知识面,甚至语气、性格等等,但它提供的对话体验也最接近与真人交谈。
意图 (Intent):意图是系统能够识别的最小的用户目的,是系统决策的基本元素之一。只有在识别用户发言背后的含义后,机器人才能决定回复什么。剧本中的每一章节由用户意图的识别和机器人采用的回答构成。从发言的角度出发,意图约等价于发言中的动词。如「下周我要飞去上海」中的「飞」就是意图。
实体/槽值/槽位填充物 (Entity/Slot value/Slot filler):实体和领域息息相关,如票据这样的实体几乎不会出现在点餐机器人系统中;有些实体则比较通用,比如时间、地点、数字等等。和领域相关的实体需要单独定义,通用实体则可以由平台统一支持。
槽位 (Slot):盛放实体/槽值信息的容器为槽位,信息本身为槽位填充物 (slot filler)。想象填写一张表格,表中的每个空就是槽位,填写的内容就是槽位填充物。 槽位和实体的区别是什么? 实体指的是从单句发言中提取到的信息,而槽位存储整个会话过程中提取到的所有信息,前者是后者的数据来源,槽位存储的信息会被用于后续对话系统决策的过程中。
智能客服系统想要其智能,其核心在于对话系统是否敏感。那么对话系统有哪些构建方式呢?
1、基于规则的对话系统
优点:
1)开发速度快、成本低、易集成
2)行为稳定、可解释,安全可控风险小
3)能发送多媒体信息、图片、视频 推理时间短、速度快
缺点:
1)维护成本高,需要人工维护规则和优先级,复杂度高了以后难以管理
2)不具备自然语言理解能力,同义语句无法触类旁通,需要穷举规则
3) 新增语言支持成本高
2、基于语料的对话系统
优点:
1)系统维护成本低,训练完后无需其它维护成本
2)具备自然语言理解能力,能识别同义语句的不同表达
3) 新增语言支持成本低,因为开源社区中已存在不同自然语言预训练好的特征提取工具
缺点:
1) 开发周期长、成本高、需要大量训练数据
2.)训练数据问题可能导致系统行为不稳定,风险不可控,garbage in garbage out 线上模型推理时间长,占用资源多
3)不支持多媒体消息,只能发送文本或文本合成的语音
3、混合型对话系统
将基于规则和基于语料的方案融合。一个典型的例子:使用统计模型做句子中的内容提取,对话行为识别,使用规则生成回答。这种做法既可以保持对内容的语义级别理解,又能够控制回答的风险,避免生成行为的不稳定。
优点:
1) 规则和语料训练的模型可以互补:加入了规则进行约束,相比纯语料模型更可控
2)相比规则模型具有一定的自然语言理解能力,可能可以面对一些规则无法cover的问题
缺点:
1)规则和语料训练的模型冲突的情况可能影响会话。
2)规则和模型的trade-off
在实际生产环境中,用的更多的是“意图型”机器人。这类机器人首先会通过引导语来引导客户说出想要办理的事务。由于客户的说法五花八门,这时,设计者就需要为“意图”罗列各种“说法”。只要用户的“说法”满足了预先定义的规则,就认为客户的说法命中这个“意图”。
举个例子,电话机器人会先说出欢迎词,然后提示客户:“您可以查询天气或者查询航班”。这时客户可能会说“我想查一下长沙的天气”,也可能会说“看一下明天的天气怎么样?”,电话机器人都认为客户的意图是“查天气”。
知道了客户的意图后,就需要用“填槽”技术来收集处理这个“意图”所需要的信息项(称之为“槽位”)。
还是以“查天气”这个意图为例,通常情况下,我们至少需要知道时间和城市,所以就有了“时间”、“城市”二个槽位需要填充。如果用户问话是“我想查一下长沙的天气”,这时“城市”槽位已经填充,但是缺少“时间”信息。这时我们就可以用到填槽中的“反问”技术,询问“您想查询哪一天的天气?”,从而引导客户提供时间信息。
使用“意图”和“填槽”技术,就能够有针对性地收集所需要的信息,以便完成下一步的操作,最终实现查询、咨询、下单等类型的电话机器人服务任务。
聊天场景指的是像人一样与人交谈,在聊天场景中,对话系统面对的挑战与前二者相比要复杂很多,如自然语言理解能力、记忆能力、知识面,甚至语气、性格等等,但它提供的对话体验也最接近与真人交谈。
意图 (Intent):意图是系统能够识别的最小的用户目的,是系统决策的基本元素之一。只有在识别用户发言背后的含义后,机器人才能决定回复什么。剧本中的每一章节由用户意图的识别和机器人采用的回答构成。从发言的角度出发,意图约等价于发言中的动词。如「下周我要飞去上海」中的「飞」就是意图。
实体/槽值/槽位填充物 (Entity/Slot value/Slot filler):实体和领域息息相关,如票据这样的实体几乎不会出现在点餐机器人系统中;有些实体则比较通用,比如时间、地点、数字等等。和领域相关的实体需要单独定义,通用实体则可以由平台统一支持。
槽位 (Slot):盛放实体/槽值信息的容器为槽位,信息本身为槽位填充物 (slot filler)。想象填写一张表格,表中的每个空就是槽位,填写的内容就是槽位填充物。 槽位和实体的区别是什么? 实体指的是从单句发言中提取到的信息,而槽位存储整个会话过程中提取到的所有信息,前者是后者的数据来源,槽位存储的信息会被用于后续对话系统决策的过程中。
智能客服系统想要其智能,其核心在于对话系统是否敏感。那么对话系统有哪些构建方式呢?
1、基于规则的对话系统
优点:
1)开发速度快、成本低、易集成
2)行为稳定、可解释,安全可控风险小
3)能发送多媒体信息、图片、视频 推理时间短、速度快
缺点:
1)维护成本高,需要人工维护规则和优先级,复杂度高了以后难以管理
2)不具备自然语言理解能力,同义语句无法触类旁通,需要穷举规则
3) 新增语言支持成本高
2、基于语料的对话系统
优点:
1)系统维护成本低,训练完后无需其它维护成本
2)具备自然语言理解能力,能识别同义语句的不同表达
3) 新增语言支持成本低,因为开源社区中已存在不同自然语言预训练好的特征提取工具
缺点:
1) 开发周期长、成本高、需要大量训练数据
2.)训练数据问题可能导致系统行为不稳定,风险不可控,garbage in garbage out 线上模型推理时间长,占用资源多
3)不支持多媒体消息,只能发送文本或文本合成的语音
3、混合型对话系统
将基于规则和基于语料的方案融合。一个典型的例子:使用统计模型做句子中的内容提取,对话行为识别,使用规则生成回答。这种做法既可以保持对内容的语义级别理解,又能够控制回答的风险,避免生成行为的不稳定。
优点:
1) 规则和语料训练的模型可以互补:加入了规则进行约束,相比纯语料模型更可控
2)相比规则模型具有一定的自然语言理解能力,可能可以面对一些规则无法cover的问题
缺点:
1)规则和语料训练的模型冲突的情况可能影响会话。
2)规则和模型的trade-off
在实际生产环境中,用的更多的是“意图型”机器人。这类机器人首先会通过引导语来引导客户说出想要办理的事务。由于客户的说法五花八门,这时,设计者就需要为“意图”罗列各种“说法”。只要用户的“说法”满足了预先定义的规则,就认为客户的说法命中这个“意图”。
举个例子,电话机器人会先说出欢迎词,然后提示客户:“您可以查询天气或者查询航班”。这时客户可能会说“我想查一下长沙的天气”,也可能会说“看一下明天的天气怎么样?”,电话机器人都认为客户的意图是“查天气”。
知道了客户的意图后,就需要用“填槽”技术来收集处理这个“意图”所需要的信息项(称之为“槽位”)。
还是以“查天气”这个意图为例,通常情况下,我们至少需要知道时间和城市,所以就有了“时间”、“城市”二个槽位需要填充。如果用户问话是“我想查一下长沙的天气”,这时“城市”槽位已经填充,但是缺少“时间”信息。这时我们就可以用到填槽中的“反问”技术,询问“您想查询哪一天的天气?”,从而引导客户提供时间信息。
使用“意图”和“填槽”技术,就能够有针对性地收集所需要的信息,以便完成下一步的操作,最终实现查询、咨询、下单等类型的电话机器人服务任务。
当然,一个完整的电话机器人,需要用到电话交换、语音识别、语音合成、话术交互等多方面的技术。如果不想专注那么多细节,集成商也可以直接使用中间层产品,例如朗深电话AI中间件等,这些产品都提供了丰富的接口,可以帮助集成商快速将电话机器人集成到自己的业务应用。