欢迎光临本站 永乐国际电子商务产业园管理有限公司 网址: www.duoxuandai.com

电子商务动态

电商场景下“智能导购机器人”的原理与设计步

文字:[大][中][小]2020-06-15 11:35    浏览次数:    

  电商行业中,导购扮演着非常重要的角色——既触达客户解答产品疑惑,又能够通过沟通推广销售产品。那么在电商场景中,我们就可以利用智能导购,通过多轮会话的方式来完成导购流程

  我们在逛商店时候,有时候不知道买哪一款商品,需要找导购人员咨询。如果遇到一个好的导购人员,就犹如贴心小闺蜜那么给人信任感,让人如沐春风,放心地买买买。但如果运气不好,碰上一名态度恶劣,带着有色眼镜的导购人员,也足够我们一整天的好心情。

  这种情况在线上购物时候也时不时发生,比如遇到一个回复贼慢,答非所问的导购客服,也特别让人抓狂,干脆走人。某位刘姓天王就说过:“今时今日哩种服务态度係唔得噶”。

  当然,如果是一个导购机器人,服务态度自不用说,它可以让每一位顾客享受到公平而温暖的服务,也不会受情绪的影响,不用等待,快速解决顾客的疑虑。

  现在线下的导购机器人有“豹小秘”、“小船”这类比较知名的网红,他们可以帮忙迎宾、商品推荐、咨询问答、商品到工行、产品移动广告等;同样的,线上也有导购机器人,如有赞商城导购bot、优衣库线上导购员“小优”,淘宝的店小蜜,可以帮助顾客挑选商品,解答购买的疑惑。

  而我们要聊的场景,其实是基于线上的电商导购chatbot,如何通过多轮会话的方式来完成导购流程。这类场景比如在一个护肤品的线上店铺里面,买家不确定哪款护肤品适合自己,就会找导购客服咨询。那在开始之前,我们先来捋一捋电商行业的导购场景。

  不同行业的导购场景,由于品类不同,买家会咨询的问题不尽相同。比如买家想购买一双鞋,会考虑是不是合脚,是休闲的还是运动的;而购买一台洗衣机,就会考虑全自动还是半自动,滚筒还是波轮。

  当然也包括像七爷这样的直男,如果想买一款护肤品或者化妆品送给女孩子,简直是噩梦,四处打听,生怕买错了。

  而在线上店铺中,客服小姐姐就充当了这个角色。针对买家的咨询,客服会通过询问更加详细的肌肤问题来做推荐,以下为模拟对话(分别针对以上三种情景):

  我们网购衣服的时候,一般都知道买啥衣服,心里已经有了候选了,要求客服帮忙推荐的少之又少。那最担心的,主要是尺码问题。

  也正因为解答难度高,服装行业的客服小姐姐每天需要消耗大量时间,并且时常因为回复不及时,流失了客户,且在大促期间尤为显著。另外,如果买家购买的尺寸不合适,会造成严重的退货率,从而影响店铺的信誉。

  电器行业的导购也不常见,顾客很少会找客服推荐,往往已经有了心仪的商品。但买家不问,不代表客服就不能推荐。

  家电行业的客单价普遍比较高,买家也经常要货比三家,犹豫再三。这时候如何抓住买家核心需求,推荐其最满意的商品,则是客服提升业绩的关键。

  同时,家电行业对商品功能的要求比较高,买家买空调、洗衣机等大家电会要求尺寸,买吸尘器、风扇这些小家电会看功能。如果导购过程中没有和买家确认关键信息,可能会导致买家买到商品发现不合适而申请退货,这个结果是双方都不愿意看到的。

  那在什么场景下做主动导购的问题,后面会讨论。这会儿主要讨论具体推荐场景是怎么样的。家电的品类繁多,每种电器都有自己的特性,买家的关注点也千差万别。但每个品类有自己的关键属性,比如空调的匹数,冰箱的容量等。

  对于电商行业来说,成单永远是第一位的事儿。而售前导购客服的业务水平参差不齐,有金牌客服的高绩效表现,也有新手或者临时工的0成单现象。用金牌客服的有效套,机器人将其用在智能导购流程中,是可以有效提升店铺率的。

  其次,前面讲了,售前客服的工资就是跟业绩挂钩。所以,如何通过有效的沟通来引导客户下单,成为了售前客服业务能力强弱的重要衡量标准。

  但某些导购问题的解答工作过于繁琐而重复,比如服装行业的尺码推荐环节。这时候,如果机器人能够把尺码推荐的工作承担下来,是可以帮助客服提升工作效率的。

  站在店铺角度考虑,智能导购机器人能够帮助客服提升效率,带来业绩的提升;而站在买家的角度,导购可以帮助了解产品的真实情况,确认是否与预期匹配。

  如果没有导购,很可能顾客买回去才知道不匹配,然后需要申请退换货。在电商行业,比如某宝,退换货比例会影响店铺的评分,从而影响店铺流量的引入;其次,退换货也增加了店铺售后的工作量,所谓”您轻轻一键退货,我重重一锤心肝啊!“

  最后,一次精准导购,能够抓住顾客的核心需求,让其整个购买过程都能放心,这在无形之中是可以提高用户满意度,甚至增加买家收藏店铺,长期光顾的可能性。

  那我们说完场景的东西,接下来就是设计chatbot,用机器人的方式来帮助客服做导购。而设计一个智能导购的chatbot,实际上是设计一个多轮会话的任务型对话系统,即通过多次交互的上下文来理解买家购买意图,并完成推荐商品得任务。

  七爷我一直相信一句话:工欲善其事必先利其器。想要设计出一个惊艳实用的导购bot,就必须先理解什么是多轮会话,并且用好这个东东。所以这一章,我们先来聊聊任务型对话系统的AI模型是怎么样的。

  就如同订餐、查天气这些任务,用户的单轮问答往往无法提供满足任务完成需要的信息,因此多轮对话是必须的,bot通过主动询问缺失信息等策略来进行信息填充。

  先放一张业内通用的任务型bot的对话流程图(已经烂大街的一张图)。其中ASR和TTS属于语音的范畴,咱这次聊天主要以bot的语义交互为主,这块就pass吧。

  该模块的输入是用户的query,并为DM输出是结构化的语义表达,主要目的是让DM能够理解用户的意思。

  为了达到以上效果,NLU需要做三个事情:【识别领域domain】→【识别意图】→【槽位填充】。

  【意图识别】(SUC,Spoken Utterance Classification),是一个典型的分类问题,即划分用户咨询的是下不下雨还是订火车票

  【槽位填充】即意图所带的参数。换言之,在某个任务中,bot需要确认的相关信息(确认方式有:反问、历史记录、其他API等)。

  举个简单的例子,订火车票时,需要确认用户的出发地、目的地、乘车时间,最后帮用户购买完成,这里确认的各个信息,就是所谓的【槽位】。槽位填充可以为序列标注问题,可以 用基于BI-LSTM等模型进行填充。

  这个问题从技术角度来说,领域可以约束知识范围,提高后续意图识别和槽位填充的搜索效率。而考虑该技术问题,主要因为在真实的业务中,一个多轮会话系统需要同时处理N多任务,比如导购会有护肤品导购,服装导购,电器导购等。这里需要PM与算法同学一起做定义呢。

  该模块的衡量指标比较明确,我们可以看分类的准确率是否达标,以及检验槽位填充效果,一般用F1-score来做检验。

  而对于PM来说,也需要与算法同学携手(原谅我抱紧算法大大大腿的强烈意愿),围绕该模块所需要达到的效果而努力,相关评价的指标,主要有分类的准确率、槽位填充的F1-score。

  现在,我们以前面咨询护肤品粉底液的场景为例,机器人需要反问买家关于肤色、妆效的信息,整个对话设计如下:

  按照“前人”的定义,DM控制着人机对话的过程(发展方向),根据对话历史(上下文信息),决定此刻系统对人的反应。

  可见,DM算是一个多轮会话核心的军事战略,每个任务的都由其决策,来决定下一步的。

  接下来我们先介绍两个模块(DST和DPL)的定义,然后用一个对话举例,大概就能明白这是个神马玩意儿了。

  每个模块都属于对话管理系统的一部分,自然都有输入和输出。DST模块的输出是当前对话状态,可以理解为槽位填充情况,以告诉后面的“人”现在扯到哪里了。输入就很多了,包括:

  该模块可以利用深度学习来实现,比如基于基于RNN和LSTM的序列模型。当然,模型的效果无法的情况下,利用规则也是可以work的,并且人为把控性更强。

  DPL是接DST的输出(对话状态)作为输入,当知道了当前对话到哪里了,就得想法子回复用户,这时候就靠DPL中预设的对话策略,选择响应系统动作作为输出。

  这里的系统动作一般有问询、确认和回复三种。问询的目的是了解必要槽位确实的信息;确实是为了解决容错性问题,填槽之前向用户再次确认;回答则是最终恢复,意味着任务和有限状态自动机工作的结束。

  当然,DM在工作中也会有很多异常情况处理,比如用户主动切换场景、对话时存在多槽位值、用户表达否定、NLU识别错误、槽位依赖、API填槽等情况。

  这些情况不只是算法的工作,产品也需要根据实际业务情况来决定处理方式。本节只讲述任务型会话模型的原理,关于如何结合业务和算法设计对话产品,将在下一节展开。

  NLG负责把上述DM的输出【系统动作】为自然语言,以回复用户。这里的回复话术一般有话术、引导用户、询问、定义确认、结束语等。

  同时,目前基于生成模型的NLG尚未十分成熟,而基于业务(如电商)的任务型会话需要严谨的回复,避免出错影响用户满意度,所以广泛采用的还是传统基于模板、树或其他规则的方式,如下表则是根据规则定义NLG的示例。

  好啦,一顿吹水猛如虎,多轮会话理解不再苦。当然,产品经理除了知道模型原理外,要做的事情还有很多。接下来,我们就来聊聊智能导购的对话机器人要如何设计了。

  我们在第二模块算是梳理了美妆客服的实际业务场景,包括用户类型,对话内容等,但这只是开始,接下来,AI产品需要用chatbot的解决方案,帮助客服提效增收。

  做产品这个行当,始终要记得,自己做的玩意儿是给谁用的。而做TOB的,更应该了解自己的客户,并结合其业务场景去定义自己的产品。

  (1)大头客户,每年要耗掉大量人力成本在客服团队,如美的电商每年就要招聘几百名客服去做售前咨询。他们希望能利用智能机器人减少自己的人工成本,而且往往这类客户都倾向于私有化部署,价格贼贵,因此愿意投入专项人力去配合。

  这种情况下,如果设计一个导购机器人能够在不影响绩效的情况下帮助减少大量人力投入,那无论需要前期冷启动的数据收集,还是后续迭代所需要的数据标注训练,客户都愿意安排人员与供应商的数据团队一起整合,即使需要几个月的时间的时间。

  现在电商市场上也可以看到,几个平台(天猫、京东、拼多多等)的大商家在自己的团队专门设定了【机器人训练师】的岗位,就是专门为了机器人,为店铺客服提升效率。

  (2)但另一类是小型客户,他们希望机器人也能够帮他们减少人工成本,最好还能创收,但是不能太贵。(此时让我想到一个场景。。。)

  但还有另一个问题,他们很可能也没有专项训练师,来一个机器人。如果让客服主管或者运营人员来做这个事,那就真的很异想天开了,毕竟电商的忙碌可不是996那么简单。

  好了,讲完这两类客户的基本情况之后,假如给大头客户设计一个多轮会话的导购机器人,可以由甲方人员配合乙方训练师,先初始化配上意图、词槽、推荐商品,再利用数据标注的方式进行会话迭代,最终训练好一个符合甲方的导购bot。而产品经理只需要将训练师的流程平台化,让其快速地配置以及可以高效地迭代即可。

  当然,如果希望最终效果明显,这期间需要双方投入N天的人力来做。当然,多轮会话平台的设计其实大部分机器人友商都已经有成熟的方案,比如各种botframework,这次就不讲了。

  而的流程在大部分电商商家那里是不适用的(说到底,穷~)今天要讲的,是如何为这一类不适用“的电商商家(上述)设计适用的导购机器人。换个说法,产品经理要解决的问题,就是如何让客户更高效机器人,并达到客服提效增收的效果。

  首先我们要整理清楚,创建一个导购bot需要做哪些事情:整理意图 → 设计词槽 → 设置商品推荐 → 迭代模型。其中,设置商品推荐这个环节,一定是店铺根据实际情况设置,也就不可避免需要客户自己。

  小明:什么?意图是什么?导购问题是什么?我平时哪知道买家咨询什么啊?我是谁?我在哪里?我要干什么?

  小红:怎么不合适?哦,对了,还有问包邮的,说不定也可以!反正只要能赚到钱,啥情况都可以做营销!

  为了让运营交付同学不至于到处叫“爸爸”,让客户更舒服愉悦地从0到1构建导购bot,产品经理有责任来解决这件事!这么光荣的任务,就是由面向对象的类组件实现!

  七爷之前读计算机专业的时候,自从学了面向对象语言,写程序就贼舒服。这其中很重要的一个点,在于引入了【类】的概念。

  类的定义是:一组具有相同属性和行为的对象的抽象。在写程序时候,需要这些属性就继承这个类。而很多时候,为了更方便写程序,我们会继承类之后,进一步封装成可直接使用的组件,比如登录的通用程序组件。(不必懵逼,请伟大表情出场!)

  大家小时候玩过的四驱赛车(没玩过?不管!七爷玩过就好!),在一开始只是各种零件的设计图(类),比如轮胎设计图、车盖设计图等等;接着根据每个部件的设计图,厂商制造了各种各样的零配件(组件):轮胎、车改、马达等等;最后选择合适的配件,就可以组装成最威风的“音速战神”了!

  那我们是不是可以利用这个思,将导购bot组件化,客户只需要选择配件,组装起来就可以了?!!

  七同学有了这个想法之后,也跟算法大大沟通过,在模型构建之前的数据集合构建,无论什么方式都没问题,一句话:越快冷启动越好。所以接下来要思考的是,电商按照什么标准来抽象出导购bot的组件?最明显的是按照行业划分:服装、鞋业、家电、食品。。。但以行业特征来抽象存在两个问题:

  有些商家比如家电的华帝、方太旗舰店只卖厨房电器,没有空调、洗衣机这类商品,如果抽象出家电行业的空调导购组件,对于华帝、方太、老板电器来说,是不适用的。

  如果一个店铺售卖多个行业的商品,比如某大型鞋类品牌旗舰店,既卖鞋子又卖箱包还卖衣服,按照行业划分应该属于服装、鞋类及箱包。如果要为该店铺提供导购bot,需要同时选择三个行业的组件,从信息架构来看,会显得数据异常杂乱;从系统架构来看,开发同学也需要处理更多异常情况;而站在客户角度,就像是摆了一堆互不相关的货品,让客户自个儿去捞,那还不如不要给~

  后面七爷看着每天的交互记录,再做了不同行业的客户调研,决定用品类来做标准。也就是说,关于空调、热水器、鞋子、衣服、包包各种品类,我都抽象出可随时调用的组件。这样,不管你卖的是单厨房电器,还是多个行业的东西,只需要找品类即可。

  在具体设计过程中,我们会先定义好不同品类的导购意图,比如推荐护肤品的意图【SKIN_CARE】,可以有各类问法:

  关于如何确定不同品类的导购场景,就需要通过这个行业大量数据聚类分析,以及产品做业务的调研,具体实施过程会很痛苦,但做出来了就会很舒服了。所以做B端产品,头部玩家很重要,产品经理也很重要!

  设计好导购意图组件之后,我们还需要关注客户选择的问题,毕竟不是所有品类都需要做导购。所以,我们可以利用店铺数据分析,推荐店铺咨询最多的导购问题,客户甚至无需思考,“机械般”照着系统推荐配置就可以了。

  同理,在配置词槽时候,与botframework的预置词典一样,以组件形式提供导购词典:当选择了【SKIN_CARE】意图之后,系统自动推荐相关词槽,客户被安排得明明白白,正所谓“索然无味,丝毫没有挑战性”。

  当然,如果客户认为推荐的意图不喜欢,强烈要他觉得的才是最好的,也提供了自定义意图,让他做配置bot的小天才!

  最后,当导购bot冷启动完成之后,客户需要日常做数据标注,不断优化模型,这块工作量同样不可避免,但可利用更高效的标注模块来完成。这块的功能设计其实已经烂大街了,就不在这里阐述了。

  好了,从提效角度做的产品设计已经完成,但不要忘记设计一个导购bot的核心意义,是为客服提效增收,也给买家尚佳的用户体验。

  被动触发的话,要考虑买家咨询最多的导购场景,这里用到上述提到的推荐意图即可解决,不再赘述。(虽然已经赘述了好多。。。)

  主动触发这块,timing是最重要的因素。回到客服工作场景中,他们在跟买家咨询过程中,也会在不同timing进行导购push,提升咨询。七爷总结了一下客服会做push的timing,这里列举几个主要的节点:

  当然,有些timing并不适合做导购,比如买家下单未付款或者取消订单,说明买家已经有意向商品,无须再做商品导购。

  最后,七爷抽丝剥茧,左思右想,决定了在买家进店的timing推荐导购,只要进来咨询的买家,都会第一时间看到,这样能覆盖全部咨询买家,不会遗漏。只有触达率上去了,量才有。

  特别地,在客服下班之后,当夜间机器人无法识别咨询消息,买家得不到答案,又长时间没有人工介入,那么购买的意向则会大大降低。利用进店的问题卡片(上图),机器人直接引导买家进行导购,减少上述识别失败的可能性,并且也可以提升夜间无人的率。

  当买家与机器人聊天时,有可能会问天问地,所以我们需要确定哪些买家意图能够进入导购场景,也就是模块三中聊到的domain和intent。

  关于如何设计词槽,其实有个矛盾点:就是机器人要的信息太多,用户会反感;要得少了,关键问题没确定好,就容易让用户下错单导致退货,影响退货率。

  所以我们会根据每个品类,推荐最关键的信息词槽,一般两到三轮的交互是最合适的。如果商家有特定信息,可配置自定义词槽。举个洗衣机的例子:

  bot:亲,根据您对洗衣机的购买需求:6.5公斤容量+全自动模式,为您推荐我们最受欢迎的洗衣机哦x

  有时候bot在交互时,DM(对话管理)需要按照买家不同反馈采取不同的行为。说个简单的例子,很多家长会去网店给小学阶段的孩子购买读物,机器人会根据不同年龄段给出不同的读物推荐。

  在功能设计,如果涉及该类场景,可以考虑利用动态策略,即【槽位依赖】方式,解决本轮槽位值填充影响下一轮策略的问题,具体策略可以是直接给出回复或者进行下一轮不同的槽位填充,亦或者进入其他导购意图。采用哪种策略,需要按照实际业务场景需求,确定产品的能力范围。

  基于前面说到的轮次过多问题继续讨论,很多买家可能在之前交互中已经交代过槽位信息,若机器人再问同样的问题,会显得很**(咦,骂人果然不好)。

  所以一个有记忆的机器人,就显得贼弥足可贵。要做到这一点,简单的方式,在配置slot时,可以让客户选择是否采用其他导购意图的相同slot,以达到“记忆”的目的。

  当然,我们还可以利用商家的会员信息,直接调用api填充词槽。不过由于商家的开发资源有限,考虑ROI的问题,很少会为了多轮会话导购去做api接口。这种方式属于说起来好听,实际没啥用武之地的功能,但在不同群体、不同场景下,这种方式还是有一定价值的。

  当机器人进入导购意图时,此时买家可能会突然cue到其他问题。这时候bot的不只是一个意图了,则时候买家如果又回到了上一个意图(如例子中的护肤品导购意图),bot也需要能够接上,否则用户体验极其讨厌。

  基于业务来考虑技术角度,相当于有一个堆栈所有被激活的意图。如果是新的意图,则入栈;如果是老的意图,只要被触发就随时继续交互。某个意图交互完成了,就出栈。最终实现多意图交叉的目的。

  当然,基于bot的完整性,以及拥有足够的资源协调,我们还可以处理一些异常情况,bot的智能。

  这种情况往往不可控,万一前面模块提供一个乱七八糟的输入给到DM,DM也无可奈何。此时除了优化ASR和NLU的模型外,可设置为非必要填充slot,这样在导购意图交互时,如果该slot的填充出现问题,就直接跳过,进入下一个slot填充action或者给出推荐,交互的流畅性。

  很明显,我们经常在后台看到买家在做槽位填充时,不直接给答案,而是否定了其中的部分选项,这时候是采取其他选项作为slot值。

  再者,当bot给出了推荐商品,买家表达“换一个”“不要这个”的时候,bot可以提供第二个备选商品;当然,bot也可以兜底回复,然后由人工做其他推送。毕竟对客服来说,这时候bot已经帮忙收集了大部分信息,客服只需要结合买家信息做推荐,效率上也提升了不少。

  当买家已经走到导购意图的最后,收到bot的推荐商品,这个过程主要为了提升率,可以有两个策略:

  我们产品会推荐店铺热门的商品,商家也倾向于此种方式,一方面是由于买家对热卖商品有更高购买意愿,另一方面热门商品占店铺业绩的大头,对于店铺销售的贡献值更大。

  同时,由于电商的sku经常需要更新,所以若商品已经下架或者有同类型的热门商品上架,系统最好有相应预警机制,提醒商家进行及时更新。

  话术的设置其实属于运营范围,但为啥要拎出来讲呢?从数据反馈中可以看出,买家对于收到不同话术的体验是不同的,往往功能设计得再好,话术不行,页会让买家放弃下单。这里简单列举话术设置的三点小,也是我们运营同学在跟客户交付时的部分策略,早已历经N个买家的风霜,屹立不倒。

  亲,根据您对洗衣机的购买需求:6.5公斤容量+全自动模式,为您推荐我们最受欢迎的洗衣机哦x

  亲爱的【某某买家】,根据您对洗衣机的购买需求:6.5公斤容量+全自动模式,【某某客服】千挑万选,为您推荐我们最受欢迎的洗衣机哦x

  亲爱的【某某买家】,根据您对洗衣机的购买需求:6.5公斤容量+全自动模式,【某某客服】千挑万选,为您推荐我们最受欢迎的洗衣机哦x。

  综上所述,我们已经完成一个导购bot的冷启动工作。接着就是上线并且做迭代,关于多轮会话的迭代,最重要的就是:数据!数据!数据!

  意图和slot值都需要语料完善,但一般采用系统推荐的则不需要商家做数据。整一套语料标注体系在市面上已经挺成熟,几乎每个做AI的公司都有自己的系统,在此我就不哔哔了。

  我们在做日志时候,会用漏斗图的形式,记录多少买家进入导购意图,多少买家走完了交互流程,以针对性确定整条径的优化点。比如进入导购的买家特别少,可以分析是该意图本身触发少,或者是语料标注不够;同样很多买家可能走了一轮slot就退出了,可以分析是否是轮数的问题,从而减少设计轮数。

  那最后也会对每个意图的数据做分析,除了语料、伦茨等影响的因素之外,话术及商品推荐的择优同样非常关键,所以若商家有些商品推荐高,有些商品推荐低,我们会把高对应话术等内容作为优化,推送给商家,从而更有效地提高导购地。

  人人都是产品经理(是以产品经理、运营为核心的学习、交流、分享平台,集、培训、社群为一体,全方位服务产品人和运营人,成立9年举办在线+期,线+场,产品经理大会、运营大会20+场,覆盖北上广深杭成都等15个城市,在行业有较高的影响力和知名度。平台聚集了众多BAT美团京东滴滴360小米网易等知名互联网公司产品总监和运营总监,他们在这里与你一起成长。


返回上一步
打印此页
[向上]