对话式产品中,常常通过机器人推荐话题来引导用户的行为。进入某个话题,从一个话题过渡到另一个话题,其中如何巧妙地让用户跟着机器人的节奏走,最终既能满足用户的需求又能达到商品推荐的效果呢?
在对话式产品中,产品功能不像传统GUI交互是直接呈现在界面上,对话式交互的功能通常隐藏在的话题里,需要通过机器人引导或推荐将功能触达用户。
另外,为了避免用户在对话时,出现不知所措的情况,同时促进话轮转换、提升对话轮数,推荐和引导也是起着必不可少的作用。
题外话:
有些人可能会好奇“推荐”和“引导”有什么区别?
——在对话式交互中,推荐一般是让用户选择想去的话题或对话路径,引导则是在某个话题内,让用户一步步深入对话。两者也具有相辅相成的关系,比如:引导话术中包含的推荐选项。
对话设计中的话题是什么
话题在词典中的意义是:谈话的题目,谈论的中心。
就像人和人之间的交谈一样,要进行一场持续有效的对话,必定是围绕某个中心主题展开,而双方谈论的主题就是话题。
一次有效的对话也并非只能围绕一个话题,如果某个话题已经结束,而一方还想和另一方继续交流,也会主动开启其他话题。
对话设计也是同样的道理,用户进入对话系统,大部分都是想解决某些问题,获取某些消息等,也不排除有纯闲聊的情况。要想用户和系统构成多轮对话,用户的每个意图目标应当都由话题来承接,否则就会做成一问一答像搜索引擎一样的对话产品。
一个话题通常对应产品里的一个功能领域,也存在多个话题对应一个领域的情况。多个话题之间会有相互串联,以形成“条条大路通罗马”的对话形态。
用户进入某个话题,一般是通过用户主动发问触发,或者机器人采用主动式对话引导用户进入。
当进入某个话题后,如果要按照既定路径深入对话,通常会由机器人发问、用户回答的模式来让系统主导对话进程,直到系统收集到所有必须信息,并根据这些信息执行某些行为。
当机器人反问用户时,会给用户几个快捷回复选项。举个简单的例子:
Chatbot: “请问您是想要哪种颜色的T恤衫?(提供库存有的T恤颜色:红色、黄色、蓝色)”
User: “红色”
Chatbot: “OK,已将红色T恤衫添加至购物车。”
该轮对话中,T恤衫的颜色是根据库存现有颜色预设好的,推荐选项通常比较固定,而且选项还会根据库存变化动态调整。
当然T恤衫的推荐维度不止颜色一种, 还包括:品牌、版型、材质等。
这类推荐选项通常由答案决定——即有什么样的答案就给和答案对应的选项内容(这里指T恤衫库存颜色)。另外,推荐不一定要以选项的形式单独拎出来,也可以融在反问话术里,如“请问您要红、黄、蓝哪种颜色的T恤衫呢?”这种方式适用于选项数在2-3个以内,且内容不长的推荐。
然而,设计上要考虑的还不止是推荐选项上的这些happy path,也要考虑用户可能会说些推荐之外的东西。
还是上个例子,比如:用户说了其他没有的颜色、说了多种颜色、跳转其他话题、返回某些任务节点等等。
如果是单纯的移动端界面,可以通过场景化输入解决,即只提供点击输入。不过若是纯语音设备,就无法预知用户可能会说些什么。在设计过程中,尽量将用户可能出现的回答类型遍历一遍。
虽然回答基本上由话题内容决定,但也可以抽象出一些通用的类型。我总结了以下几种:
愉悦路径(happy path):用户按给定的推荐回答,能够顺利走通主路径。
其他可达路径(相关路径):用户没有按给定的推荐回答,但也能走通路径。
这里出现的情况会比较多,主要分为两类:“同义”回答和“破坏性”回答。
具体场景具体分析,还是举上个例子,用户可能出现的回答有:
a. “同义”回答:
在选项前加各种修饰,如“我妈妈喜欢我穿红色”、“大过年了应该穿红色”
说了两种颜色
说了选项外的颜色
说了颜色所在的顺序,如“第二个shai儿”
……
b.“破坏性”回答:
对某些选项进行否定,系统要能辨认和剔除用户不要的。如“我不喜欢蓝色”
否定所有选项,“这些颜色我都不喜欢”
反问还有其他什么颜色
你帮我选一个
……
话题内的非可达路径:
回复的内容仍在话题内,但已经跳出该场景。可能是返回前面的场景节点,比如:“我再看看其他的T恤衫款式”、“黄色,但是我想换个T恤衫款式”;也可能是跳转其他场景节点,比如:“我还是先买裤子吧”。
对于跳其他节点的对话,在解决完其他节点的任务目标后,需要提醒用户解决之前遗留的问题。
举例说明:
Chatbot: “请问您是想要红、黄、蓝,哪种颜色的T恤衫?”
User: “我还是先挑挑裤子吧。”
Chatbot:“ OK,为您推荐以下几款热门的裤装品牌。”
……(经过几轮对话后)
Chatbot: “OK,M码,黑色Selected休闲裤已为您加入购物车。刚才的T恤衫还要继续选购吗?”
User:“好。”
Chatbot: “CK圆领T恤删,请问要红、黄、蓝哪种颜色?(如果对话设备是带屏幕的,可以显示出该款式不同颜色的T恤衫图片,方便用户选择)”
User: “红色吧,帮我结账。”
偏离或跳出话题:
这里指的跳出话题,和跳其他场景节点意义不同。跳其他场景节点仍然是在话题内,比如“买东西”话题之间的节点跳转。跳出话题指已经不在这个话题内,而是跳转其他话题。比如从买东西跳转到问天气。不过,和跳其他场景节点一样,当用户在其他话题下实现目的后,还是要回过头来反问用户之前尚未解决的问题。(可以将话题理解为领域、垂类。解决的是不同领域之间的跳转、衔接问题)
Chatbot:“请问您是想要红、黄、蓝,哪种颜色的T恤衫?”
User: “对了,周末天气怎么样?万一下雨约不了会,衣服就白买了。”
Chatbot: “周末杭州多云,2至11度。刚才的T恤衫还要继续选购吗?”
User: “好。”
Chatbot: “CK圆领T恤删,请问要红、黄、蓝哪种颜色?”
User: “红色吧。”
长时间未给出答案:
用户可能因为在思考问题,或处理其他事务,而没有立即给机器人答复。如果用户静默的时间较长,系统可以再次追问用户。一般追问1次即可,仍无响应则结束会话。
Chatbot: “请问您是想要红、黄、蓝,哪种颜色的T恤衫?”
User: “Umm……我想想……”
(设置一定时长后再次追问)
Chatbot: “亲~还在吗,你是要什么颜色的T恤衫呢?“
结束会话:
结束会话存在两种情况:主动结束和被动结束。
主动结束即:用户通过语言或行为主动结束和机器人的对话,包括意图已经实现后的结束,以及意图未完成的结束。
被动结束则是:用户长时间未响应,由系统结束对话。
用一张逻辑结构图展示上面6种情况:
不同于用户在遍历某个话题的途中跳转其他话题,这部分主要介绍用户在走完某个话题,完成某个意图后,系统如何给用户推荐。还会提到用户在对话里无任何行为时,系统又该如何推荐。
当用户实现某个意图,对用户而言任务已经完成。如果是在传统界面,用户可能会直接退出应用,而对于对话式交互界面,为了提高功能曝光度,或是对上一个话题的补充、优化,我们还会推荐其他相关话题。推荐的话题可能是在同一领域下的不同话题,也可能是跨领域的话题推荐。
在某种程度上能帮到用户,在用户下次执行该任务时,可以提供极大便利。
Chatbot: “一切准备稳妥,你定的玫瑰即将送出。”
Chatbot: “对了,要是加入我们会员,下次订购还可以享受优惠和“极速达”服务,需要我帮您加入会员吗?”
User: “好的。”
……(后面是一系列关于“加会员”的对话)
用户在实现上个意图后,有可能会涉及到的功能。
如果机器人平台没有提供该功能,用户也会转而去其他有这一功能的应用。这类推荐可在一定程度上提高用户效率,避免用户在应用间跳转,实现完整任务链路。
比如:用户在选完约会的餐厅后,可能会预约打车服务。
Chatbot: “好的,外婆家今晚6点,两人,已提交订餐信息。”
Chatbot: “要帮您预约专车吗?”
User: “好的。”
……(后面是一系列“打车服务”的对话)
如果用户在实现某个意图后,经常执行同一个操作,那么下次可以把后续操作直接推给用户,或自动帮用户完成。
以用户测量血压的场景为例:
User: “我的血压测量结果怎么样?”
Chatbot: “收缩压132,舒张压90,心律92次每分钟。”
Chatbot: “需要将该测量结果发给您的家庭医生吗?”
User:“好的。”
……(系统自动帮用户发送数据)
多数用户感兴趣的话题或是一些热门、热点话题,帮助用户接收更丰富的信息。
User: “巴黎有哪些热门景点?”
Chatbot: “埃菲尔铁塔、卢浮宫、巴黎圣母院、凯旋门等。”
Chatbot:“ 顺便说下,卢浮宫近期有几个展览值得一看,要具体了解下吗?”
User: “好的。”
……(后面是一系列关于展览的介绍)
回答的内容属于推荐话题范围。根据上面介绍的“话题内引导”场景,用户可能会走愉悦路径,也可能走话题内的可达或非可达路径。
主动开启其他新的话题。用户不按推荐的话题走,而是知道自己想了解什么。
长时间未应答。用户对于机器人开启的话题没做任何回应。处理方式同样可以再次追问,若仍无应答则关闭对话。再次开启对话,则默认以系统初始状态处理。(话题内的引导推荐则需要根据任务路径的长短,选择是衔接先前的对话,还是重启对话。)
当然,并不一定每个话题结束后都要推荐其他话题,过多无意义的推荐反而会造成信息过载。而且还会干扰用户,无形中给用户压力,最终导致用户对机器人反感。