智能客服对话系统常见构建方式
智能客服系统,问题和答案都比较固定,背后常常与知识库挂钩。甚至可以将问答系统理解成是用对话的方式快速检索使用文档中的 frequently asked question (FAQ)。 在问答场景中,用户明确地知道与之对话的不是真人,因此也不会使用复杂的对话结构,主要以单轮对话的形式呈现,用户占主导。
聊天场景指的是像人一样与人交谈,在聊天场景中,对话系统面对的挑战与前二者相比要复杂很多,如自然语言理解能力、记忆能力、知识面,甚至语气、性格等等,但它提供的对话体验也最接近与真人交谈。
意图 (Intent):意图是系统能够识别的最小的用户目的,是系统决策的基本元素之一。只有在识别用户发言背后的含义后,机器人才能决定回复什么。剧本中的每一章节由用户意图的识别和机器人采用的回答构成。从发言的角度出发,意图约等价于发言中的动词。如「下周我要飞去上海」中的「飞」就是意图。
实体/槽值/槽位填充物 (Entity/Slot value/Slot filler):实体和领域息息相关,如票据这样的实体几乎不会出现在点餐机器人系统中;有些实体则比较通用,比如时间、地点、数字等等。和领域相关的实体需要单独定义,通用实体则可以由平台统一支持。
槽位 (Slot):盛放实体/槽值信息的容器为槽位,信息本身为槽位填充物 (slot filler)。想象填写一张表格,表中的每个空就是槽位,填写的内容就是槽位填充物。 槽位和实体的区别是什么? 实体指的是从单句发言中提取到的信息,而槽位存储整个会话过程中提取到的所有信息,前者是后者的数据来源,槽位存储的信息会被用于后续对话系统决策的过程中。
智能客服系统想要其智能,其核心在于对话系统是否敏感。那么对话系统有哪些构建方式呢?
1、基于规则的对话系统
2、基于语料的对话系统
3、混合型对话系统
在实际生产环境中,用的更多的是“意图型”机器人。这类机器人首先会通过引导语来引导客户说出想要办理的事务。由于客户的说法五花八门,这时,设计者就需要为“意图”罗列各种“说法”。只要用户的“说法”满足了预先定义的规则,就认为客户的说法命中这个“意图”。
举个例子,电话机器人会先说出欢迎词,然后提示客户:“您可以查询天气或者查询航班”。这时客户可能会说“我想查一下长沙的天气”,也可能会说“看一下明天的天气怎么样?”,电话机器人都认为客户的意图是“查天气”。
知道了客户的意图后,就需要用“填槽”技术来收集处理这个“意图”所需要的信息项(称之为“槽位”)。
还是以“查天气”这个意图为例,通常情况下,我们至少需要知道时间和城市,所以就有了“时间”、“城市”二个槽位需要填充。如果用户问话是“我想查一下长沙的天气”,这时“城市”槽位已经填充,但是缺少“时间”信息。这时我们就可以用到填槽中的“反问”技术,询问“您想查询哪一天的天气?”,从而引导客户提供时间信息。
使用“意图”和“填槽”技术,就能够有针对性地收集所需要的信息,以便完成下一步的操作,最终实现查询、咨询、下单等类型的电话机器人服务任务。