项目背景
闲鱼是一个闲置共享交易社区,为了增加交易乐趣,闲鱼在产品设计中有意识的通过买卖双方的互动交流推动商品的成交。无论是商品下单需要先聊一聊,还是鱼塘话题等通过群组互动分享交流商品,都是这一设计思路的体现。
但是,目前闲鱼的买卖双方的互动还存在以下问题,影响交易成交和体验:
卖家未及时回复影响交易达成
买家通常对于卖家回复效率都会较为敏感。而闲鱼卖家大多不是专业卖家,无法保证长期在线与买家互动,导致买家收到回复时间过长,往往会丧失进一步互动的意愿。经统计,闲鱼买家第一次收到卖家回复平均时间超过6小时,而如果首次收到回复在1小时以内,成交率相比整体提高75%以上。
相同问题卖家回复质量参差不齐
卖家由于受自身因素影响,针对同一问题,答案也有不同:有时会进行耐心回答,有时回答非常敷衍,这个过程中可能错过真正有购买意向的买家。
卖家重复回答常见性问题
通过买卖家交互信息分析,交互中40%+的内容涉及商品信息的询问,而这类信息大多是可以从商品信息提取的。对于在发布时缺少清晰准确描述的商品,卖家常常需要重复对不同买家进行解释说明。
卖家在讨价还价过程中体验较差
很多卖家写明商品不接受议价,但仍有很多用户会尝试砍价,卖家会觉得很烦且很花时间。且部分卖家在于买家议价时会发生争执,情绪失控,影响体验。
针对以上业务中出现的问题,闲鱼技术团队和达摩院机器智能技术团队合作,在闲鱼用户的私聊场景中引入了自动问答,帮助卖家及时准确的回复,合理议价,提高交互体验、促进交易成交。
技术框架
针对上述的问题,闲鱼引入聊天机器人,希望能够在卖家离线的时候,自动识别买家的意图,帮助卖家代答相关问题(问答模块)。为此,我们首先要帮助用户自动构建知识库,知识库由商品或者交易相关的问答键值对构成。为了构建问答知识库,一方面从用户信息、商品信息(图片/文字)中抽取相关属性,生成相关答案(属性初始化模块);另一方面,从买卖家对话的过程中,卖家的真实答复中抽取并产生对应的答案(用户对话提取模块)。
Figure1闲鱼自动回复整体技术框架
据此,闲鱼聊天机器人模块可以分为三个部分:
属性初始化模块
用户开启自动回复功能之后,会根据用户基本信息抽取并生成一份基于用户的通用问题/答案键值对,例如离线自动回复、是否包邮、发货地址等。此配置可以支持到用户所有没有单独设置自动回复的商品。
用户发布或者编辑商品之后,根据商品属性信息抽取热点问题和答案的key/value键值对,并推荐给用户回复话术,用户确认之后就会存储到配置服务中生效。例如针对买家不同出价的谈判策略,或者使用基于宝贝的回复话术覆盖通用配置中的对应数据。
Figure2属性初始化
问答模块
在卖家不在线时帮助卖家自动回答买家询问问题。该模块对买家的提问进行意图识别,将卖家预设在商品信息库中的答案返回。一方面,减少买家等待回复的时间,提高交互体验;另一方面,节约了卖家回复时间,提升了效率。
用户问答知识提取模块
使用卖家和买家互动中问答补充商品信息库。对于发布时缺少的商品信息,可以通过用户在对话过程中形成的问答对来进行答案抽取和话术生成。此外,用户在聊天中对已有问题产生了新的答案,也会及时通过这一模块进行答案的更新。
Figure3问答和知识抽取
在实际落地时,我们使用question-answer-reply结构存储用户问题/答案键值对,让用户能够使用reply配置个性化回复话术:算法规则命中问答键值对时,闲鱼会使用reply中指定的信息构建消息文本发送给买卖双方,并标识此消息为卖家配置的自动回复。
核心算法
闲鱼自动回复算法平台以AliNLP提供的底层NLP算法能力为基础,构建 2个核心算法:意图识别模块和话术生成模块。
Figure4算法架构
意图识别
意图识别最大的难点在于语言表达的歧义性或多义性,比如用户搜索苹果时,潜在的意图可能是水果,也可能是手机。其次,中文汉字组合千变万化、语言表达形式非常丰富,比如“1500如何”、“再便宜100块我就买了”、“诚心要,128包邮吧”等都表示“砍价”这种意图。因此意图识别和归类应运而生。
经分析,在闲鱼聊天场景下,用户约20%的对话是常见性问题,可以分为四个大类:价格、讨价还价(关注度最高);商品属性(如颜色、规格等);二手市场中的转卖属性(如新旧);交易信息(如包邮)。由于属性间差异较大,我们结合不同分类模型来识别用户的询问意图。
针对不同的属性,我们采取了针对性的方案,构建了24种不同属性的模型,基本覆盖买家的常见性问题,绝大部分属性的准确率都达到90%:
针对准确率要求高、不允许误答的属性,我们采用规则的方法作为前置模块;
针对语义多样的属性,我们采用深度学习的方法尽可能识别用户多样的问法。
Table1意图识别主要方法对比
前置规则 通过关键词匹配来获取查询意图,比如包含“颜色”识别用户在询问颜色属性。当然这会引起许多错误判断,比如“这件红色的衣服是多少钱?”和“这件衣服是红色的吗?”。因此,我们额外引入了句法结构信息,利用依存关系模型解析得到句法信息,将颜色的意图识别准确率从70%提升到84%。在前期基于规则的方法中,我们人工收集并标注了大量数据,为之后的机器学习和深度学习方法训练使用。
依存分类模型 深度学习得益于词的分布式表示(word2vec等)和强大的学习能力(CNN/LSTM/Transformer),能够自动获取到整个句子的语义表示,进而从大规模高质量的训练数据自动学习出其中包含的抽象复杂关系。依存分类模型额外引入词性、句法信息,首先在词表中找出每个词语、词性的向量表示;然后通过注意力机制得到上下文相关的句子表示,注意力模型允许对句子中的重要信息进行额外关注。通过在注意力模型中加入依存核心词信息,对重要句法成分进一步加强,比如“这件衣服是红色的吗”会关注到“衣服”、“是”、“红色”这些关键词,从而得到句法加强的句子表示。通过依存分类模型,属性识别的召回率从44%提升到74%,丰富了多样表达语义的识别。
BERT模型 BERT模型开启了NLP的新时代,通过预训练语言模型,帮助进行超大规模的表征学习,这样训练出来的模型通过微调在处理问答或语言推理任务时,能够结合上下文理解语义,并且实现更精准的文本分类。在基础模型上,我们额外引入对话角色进行训练,整体准确率提升了4个点,预训练模型在其他相关任务上也取得了性能提升。
话术生成
为了帮助用户构建和维护知识库,我们从买卖家聊天过程中收集常见问答对生成答案。整个流程分为三个步骤:
买家询问意图识别:对于买家的询问问题,识别出相应的询问意图卖家回答属性抽取;
通过序列标注方法,将从卖家的回答内容中将属性值内容抽取出去来;
话术生成,根据预先定义好的模版将属性和属性值填入,生成完整的答案。
Figure5话术生成算法流程
在答案生成模块的主要瓶颈在属性抽取的召回率不高,未来我们会结合依存信息、语义信息等语言学特征来提高属性抽取的性能。
应用和效果
场景示例
在对话示例1中,买家试图和卖家进行沟通并砍价,卖家在买家询问12.5小时后才上线回复用户,并且回复内容页比较生硬,该商品最终没有成交。
Figure6对话示例1-未设置聊天机器人
Figure7对话示例2-开启聊天机器人
而在对话示例2中,用户咨询首先出发了聊天机器人的砍价周璇逻辑,及时的和买家进行沟通;并引导买家进行更多的互动和咨询,增加购买意愿。沟通中的话术包含了砍价、包邮问题,提供了宝贝价格信息,管理买家心里预期,促进成交。在具体话术表达上,使用卖家的预设的配置信息,使得交互更加亲切友好。因此,卖家上线后简单沟通后,卖家就迅速下单。
业务影响
经过几个月的上线测试和算法迭代,通过对比用户开启聊天机器人与不开启聊天机器人的宝贝相关数据对比,在业务上我们也得到了较为稳定的结论。
及时响应率提升:2小时内及时响应率提升30%。
聊天轮数变多:成交的买卖家评论聊天轮数提升了接近20%。
卖家回复成本降低:按照每条20s算,帮助卖家节约了数千个小时。
漏斗效率变高:商品的从曝光到互动到成交的各级漏斗均有增长,促进了商品的流通效率,也验证了社区中改进聊天效率能有效地增进各级转化率的提高。
商品动销率提高:开启聊天机器人的商品对比未开启的商品,平均7日动销提升三成。
互动成交转化率提高:同卖家真实回复买家时间点的成交转化比较,开启聊天机器人的转化率大于卖家超过2小时或更久回复时的转化率,平均转化率提高三成。
闲鱼团队是Flutter+Dart FaaS前后端一体化新技术的行业领军者,就是现在!客户端/服务端java/架构/前端/质量工程师通通期待你的加入,base杭州阿里巴巴西溪园区,一起做有创想空间的社区产品、做深度顶级的开源项目,一起拓展技术边界成就极致!
*投喂简历给小闲鱼→guicai.gxy@alibaba-inc.com
更多系列文章、开源项目、关键洞察、深度解读
请认准闲鱼技术