本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。
大家在使用很多APP的时候,一定对于智能机器人客服系统都有所了解。客服机器人就像真人客服一样,可以与人进行简单的对话,并针对人们的需求给出相应的回答。虽然大部分时间得到的答案并不怎么靠谱吧,但是总的还是比较节省人工的。
近期火热的聊天机器人ChatGPT本质上也是一个客服机器人,只不过它背后依据的算法更精细,预训练的数据量也更大。
下面我们就一起来看看客服机器人背后的技术:对话推荐系统。
一、对话推荐系统概述
用户使用对话推荐系统的过程,本质上是一个经过多轮信息互动,最终协助用户进行决策的过程。
对话推荐系统(Conversational Recommendation System,CRS)通过丰富的交互行为,打破了静态推荐系统中系统与用户之间信息不对称的壁垒,允许推荐系统在与用户的交互对话中,动态捕捉用户偏好。一方向通过探索用户当前的兴趣偏好,引导用户发现自己新的兴趣点。另一方面,在交互过程中,实时接受用户的反馈,更新推荐模型的策略,实现动态学习与更新。这是一种以推荐为目标导向的对话系统,通过与用户的在线对话达到捕捉用户兴趣从而推荐用户所需要的答案或者商品的目的。
一般的对话系统通常分为两类:任务导向型和非任务导向型。后者即是人们通常所说的聊天机器人。而任务导向的对话系统旨在帮助用户完成具体的任务,例如帮助用户找寻所需要的商品、预订酒店餐厅等。面向推荐任务的任务导向型对话系统,通常可以看作是以自然语言文字、语音为交互形式的对话推荐系统。在推荐任务中,具有较高的商业价值。
二、对话推荐任务的特点
从对话推荐系统的应用上来看,具有两个典型的特点:多轮交互和目标导向。
1、多轮交互
传统的系统中,例如在淘宝搜索商品的时候,用户寻找具有特定属性的商品时,会通过主动搜索来进行。例如,可以搜索“春季的男士外套”,在这个场景中,用户自己构造查询,推荐效果不仅依赖于搜索引擎,更多是依赖用户自己的专业知识来构造合适的查询关键词。这种传统的推荐系统需要用户根据自己的先验知识输入可能的属性选项,才能准确定位到合适的商品。但是在很多场景中,用户并不具有这样的先验知识。这种情况下,用户期望系统能够主动向用户介绍他们可能喜欢的潜在物品。
而对话推荐系统中的多轮交互特点可以弥补传统推荐系统中用户主动搜索的不足。在系统与用户的实时互动中,可以通过主动向用户提问的方式,向用户展示用户未知的物品属性空间,并利用用户的反馈信息,直接了解用户对某些属性的需求和态度,构建用户兴趣画像,从而做出正确的推荐。
2、目标导向
对话推荐系统要实现的目标任务是给用户推荐用户感兴趣的商品,因此以实现成功推荐为最终目标,进行获取用户偏好信息的交互,CRS与传统推荐系统有同样的“推荐”目标,但是二者在系统的运作与实现上完全不同。传统的推荐系统可以看作是系统单方面向用户输出推荐物品。而CRS则注重实用的实时反馈,不断主动试探用户兴趣点,并更新后续的推荐策略。
三、对话推荐系统的基本功能模块
一个标准的对话推荐系统由三个功能模块组成:用户意图理解模块、对话策略模块和推荐模块。
1、用户意图理解模块
用户意图理解模块是与用户直接交换信息的模块,其输入早年主要是对话文本,而随着技术的发展,多模态数据和用户行为数据也越来越成为对话推荐系统主要的输入数据来源。
2、对话策略模块
对于推荐系统而言,能够基于的正反馈数据是非常少的,这就造成了系统与用户之间的信息并不匹配,而一次失败的探索将浪费用户的时间,伤害用户的偏好,进行造成用户的流失。因此,追求探索和收益的平衡是对话推荐系统中的一个关键问题。对话策略模块的主要任务就是解决这一问题。
在多轮交互过程中,这一问题表现为系统在交互过程中需要确定当前是否要继续询问用户,还是基于已经获取到的信息来实现推荐商品,从而增加用户选择商品的概率。这是一个典型的博弈问题。过多的询问可能造成用户的厌恶,而过少的询问又会造成用户偏好信息的缺失。因此,好的对话策略需要智能地平衡对话轮次与推荐准确率两个指标。
3、推荐模块
推荐模块是对话推荐系统中实现推荐功能的模块,根据已经捕捉到的用户信息,推荐用户当前最感兴趣的目标物品。在大部分的CRS中,推荐模块都采用简单的推荐模型,例如矩阵分解,这是因为简单的推荐模型已经能够满足对话推荐系统的推荐需求,使用过于复杂的推荐模型,反而会使系统整体复杂度上升,使对话推荐系统的训练变得困难。