作者:闲鱼技术——有攸
一、背景:
卡耐基在《人性的弱点》一书中说:“世界上唯一能影响他人的方法,就是谈论他所要的,而且还要告诉他,如何才能得到他所要的”。由此可见,良好的沟通交流可以很大程度上拉近双方的关系,进而影响对方。闲鱼消息是买家了解二手物品信息不可或缺的一环,我们有理由推断良好的聊天能够对成交产生正向影响。推断需要数据来佐证,通过对以往聊天成交数据的关联分析,我们得到了如下结论:
- 卖家比买家聊的越多,成交概率越大
- 相比经营者,个人卖家互动转化率偏低
我们推测个人卖家转化率偏低的一个原因是不会好好聊天,通过抽样case发现部分卖家回复内容高冷、生硬、情绪化,进而导致双方尴尬,聊天戛然而止。所以我们探索的方向就是如何引导卖家与买家好好聊天,通过算法意图识别,以聊天小助手的形式给卖家提供友好的建议性话术,让沟通交流不再僵硬。
二、从议价开始
1.为什么是议价
买卖聊天主要对话场景有开场问询、价格问题、邮费问题、商品信息等,其中会话中聊到价格的占比30%~40%,而且会话中谈及价格时,往往也是交易较后的阶段,如果买卖双方在价格问题上沟通顺利,预计可以有效促成交易。所以我们考虑先从议价场景切入,最小闭环上线,观察数据佐证猜想后,再逐步上线其他对话场景策略。
2.方案设计
为了不影响消息主链路,识别流程必须走异步mq消费流程,同时为了减少算法识别的压力,对消息进行了消息类型、发送者、关键字过滤、会话疲劳度控制等规则的初筛。此外,我们还联动了商品的价格力数据,价格力数据可以提供商品的同类同款卖出价以及推荐价,通过算法综合择优,可以给出商品建议价,再根据买家出价情况,走不同的产品逻辑组合成不同场景下的同意/拒绝文案选项。这样无论买家出价是否合理,卖家是否接受,给卖家提供友善的议价话术选择,让买卖双方还有继续聊下去的机会,就还有成交的希望。如果买家出价不合理,也会给买家下发议价不合理的卡片,给出同类商品的参考价,拉平买家的价格预期。
3.产品效果
卖家侧:
买家侧:
三、继续探索
1.宝贝还在吗?
相信这几乎是每个闲鱼卖家都司空见惯的聊天开场白,但很多卖家见多了反而不愿意回复这类没有营养的问题,内心os:"不在还挂着干啥???"。我们本着让买卖双方的聊天有一个愉快的开始的目的,考虑从2个方面优化这个场景的问题:
- 为买家提供更多样更有价值的开场白问题
- 为卖家提供打招呼消息的快捷回复
2.基于类目的加权随机开场白
不同类目的商品聊天中买家关注的问题点不同,我们基于离线数据分析,回捞了一批不同类目买家最关心的问题列表,把这些问题首先按类目分类,其次按关注点(二手属性)分类,再加上触发规则条件、权重分,形成一套开场白问题库,可由产品运营自助添加修改。
流程图:
如上图所示,当会话创建时,先根据类目读取问题库得到对应的问题列表,再根据这个商品本身的一些属性标,如是否包邮,是否全新,按规则筛选出符合条件的问题列表,再根据权重分对满足条件的问题进行加权随机,最终得到某个二手属性的问题项。为了保证问题内容的多样性,每个二手属性的问题项也会有不同文案但相同语义的表达,最后再次随机一个具体问题表达,即可下发建议卡片。
3.意图识别流程框架
前面已经实现了议价意图的算法识别,这次又要新增一种打招呼的识别,是否要重新开发整个流程呢?显然不需要,前期议价为了快速迭代上线看效果,没有抽象设计成一种通用的意图识别流程,这次新增第二种意图识别,有必要还债重新设计了,任何优秀系统的设计都是不断迭代重构产生,绝不会是一蹴而就的,项目初期在需求不明确的情况下如果考虑的过多,往往会导致过度设计,后面如果需求变动,又要返工。故重新抽象设计一套通用的意图识别流程框架。
流程设计:
类图:
如上图所示,每种意图需要实现IntentProcessor接口,实现自己的过滤和处理逻辑,不同意图有不同的初筛逻辑和扩展参数,filterAndCompleteContext这个方法是用来过滤和补充意图识别扩展参数到流程上下文中的,如果满足初筛条件,就添加该意图类型到可能的意图列表中,由算法识别最终结果,如果一条消息存在多种意图,由算法根据优先级规则选出最相关的意图。得到意图识别结果后,调用对应的IntentProcessor的process方法,完成具体的业务逻辑处理,如在议价场景是根据价格规则,组装不同文案下发建议卡片。
4.产品效果
开场白:
打招呼:
四、从问答中取栗
1.为什么总是问我同一个问题?
我们观察数据发现,聊天中商品问询场景覆盖率35%~40%,因为闲鱼商品交易独特的二手属性,卖家可能会面临同一个商品同一个问题会被多个买家多次问到,从而重复回答的情况,卖家有苦说不出,只能内心os"为什么总是问我同一个问题?"。为了优化卖家体验,提高卖家回复效率,我们决定识别聊天中的问答对,然后在问答对消息后面插入引导tip,卖家侧可以选择将问答对补充到商品详情中,如果问答对中含有商品结构化二手属性信息(比如成色、有无拆修、品牌等),也会识别并引导卖家补充商品的结构化属性。
2.通用消息扩展属性变更
我们上面说的意图识别流程框架马上就用了起来,这时候只需要新增一种意图识别处理器(IntentProcessor),实现该场景的过滤和处理逻辑,就可以轻松实现整个功能。但新的问题来了,上面的议价、打招呼场景中我们给卖家侧的引导都是一种建议类卡片,这种卡片是一条新消息,与其他的消息一起混排,而且与触发源消息关联性不强,即使有延迟导致卡片插入到偏后的位置,影响也不是很大。但是问答这种场景,下发的是一条引导tip,这个tip是与答案所属的消息强关联的,引导tip必须紧跟答案消息后面,如果对不上,就会非常影响体验。
闲鱼的消息列表是按照发送时间排序的,如果按以往新消息的形式插入,无法严格保证下发时机紧跟在某条消息后面,如果人为的修改消息的发送时间,会破坏消息发送时间这个字段的语义。我们从另一个角度思考,这条tip一定是紧跟在某条消息后面,如影随形,不离不弃,那么为什么不合二为一呢?把这条tip看成是这条消息的一个扩展属性,所以我们决定引入一种通用变更消息扩展属性的能力,通过事件下发给客户端,再由客户端根据约定的协议解析并展示,如下图所示
由业务发起对某条消息的扩展属性变更,可选设置存储服务端消息库,更新会话视图,比如问答场景的tip,是有时效性的,只需要透传给客户端,服务端完全不需要存储。该方案也为以后消息的个性化变更及展示提供了可能。
3.产品效果
五、总结与展望
至此,我们的聊天小助手沉淀出了一套通用的意图识别流程框架,实现了议价、打招呼、问答三种意图识别,引导广大个人卖家跟买家好好聊天,帮助卖家快捷补充更详细的商品信息。聊天小助手上线后,功能使用率较高,实验桶相比对照桶,回复率相对提升4%,在议价场景中,下发卡片的实验桶相比对照桶成交转化率相对提升4%,从数据来看,确实也证明了我们之前的推断,引导买卖聊天,对促成交易有正向作用,为接下来该项目的继续演进提供了可能。
我相信友好亲切的沟通交流可以温暖人心,拉近关系,现实世界是如此,通过网络沟通也同样是如此。未来我们会持续迭代优化聊天小助手,横向挖掘更多的意图识别场景,比如包邮、发货地等,同时在聊天中涉及最多的商品信息识别场景深耕,帮助卖家更好的完善补充商品信息。总之,未来聊天小助手会有更丰富实用的技能树,让她更聪明,更懂你。