NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

58 同城对话机器人应用实践:本地生活服务场景中的商家智能助手

  • 2020-07-23
  • 本文字数:5174 字

    阅读完需:约 17 分钟

58同城对话机器人应用实践:本地生活服务场景中的商家智能助手

对话机器人是过去几年国内外互联网巨头最青睐的方向之一,很多公司都对此做出了明确布局。深度学习在机器视觉获得巨大成功后,在 NLP 和对话机器人方向也被研究界寄予厚望。


伴随着工业界和研究界的关注,对话机器人稳步向前发展,越来越多的企业在把对话机器人应用到产品中。那么,目前业界如何构建这些对话机器人?主要使用什么技术?深度学习和 NLP 在这过程中起到了什么作用?如何让对话机器人成为人工智能,而不是“人工智障”?


本期InfoQ公开课的直播间,我们邀请到了 58 同城 AI Lab 智能问答部负责人、算法高级架构师韩伟与我们分享上述话题。本次分享以《58 同城对话机器人应用实践——本地生活服务场景中的商家智能助手》为主题,重点介绍在本地服务(黄页)业务场景下,如何利用对话机器人为商家提高效率和收益。

一、业务背景

在正式内容开始之前,首先做一下简单的自我介绍。我叫韩伟,2011 年硕士研究生毕业于中国科学院大学,毕业后先后在阿里巴巴和猎户星空从事 NLP 相关的研发工作,19 年加入 58 同城 AI Lab,目前负责智能问答部相关工作,主要的产品有 58 同城智能客服系统(帮帮)和 58 智能客服商家版(微聊管家)。


今天的分享将从以下几个方面展开:58 的业务背景、58 对话机器人的总体技术架构、核心能力、总结和展望。我们想通过这次分享使大家了解到 58 对话机器人系统中的技术全貌,希望对大家有所启发。



首先介绍 58 同城的业务背景,58 同城是一个生活服务平台,平台连接着大量 B 端商户和 C 端用户,B 端商户在平台发布帖子信息,平台将这些帖子信息分发给 C 端用户供其浏览。在 58 同城 App 或网站上,用户可以通过搜索和推荐的方式获取帖子信息,例如用户可以通过搜索框搜索信息、进入列表页筛选和浏览信息。58 同城提供租房、二手房、找工作、二手车、黄页、二手车等信息,平台上有大量商家和用户,平台的目标是提高双端连接的效率。



让我们先从生活中的一个实际场景开始,让大家直观感受 58 是如何服务我们平常生活的。


我们经常需要保洁打扫服务,首先打开 58 同城 App,选择家政服务大类页,然后选择自己满意的服务商家,这时候我们可以看到“微聊”入口,通过它可以连接起 C 端用户和 B 端商家。

二、58 对话机器人


基于 58 平台大量的商家和用户,我们构建了 58 同城对话机器人。从功能上讲:58 同城对话机器人提供了智能问答、多轮对话、商机挖掘、智能辅助、在线客服等几大核心功能,目前已经落地在帮帮智能客服系统和智能客服商家版中,智能客服商家版已经在 58 集团各个业务线落地,比如:针对本地服务的商家助手,针对房产的经纪人助手,针对招聘的企业助手以及针对车的车商助手。



接下来,我们介绍一下 58 智能客服商家版的整体架构,为了提升 B 端商家和 C 端用户的有效连接,我们打造了智能客服商家版。


在全 AI 模式下,所有的咨询都会优先转接给自动问答机器人,当遇到机器人无法回答的问题时,则根据用户配置转接人工。支持设置开启时间段,应对商家在不同时间段的接待需求。


智能辅助模式-人机协作共同服务:


人工接待中,用户的提问如果命中知识库的问题,机器人向人工坐席推荐答案,由人工参考回复用户。



这里是智能客服商家版的后台界面,2020 年 Q2 季度我们总共公开通了近百万商家,累计服务了近千万的 C 端用户。



智能客服商家版在生活服务品类落地场景是这样的,在生活服务品类中,我们同时有人工坐席和 AI 对话机器人,根据不同的类目和工作时间段,C 端用户会和 AI 对话机器人或者人工坐席进行沟通,人工坐席和 AI 对话机器人的目的都是解决用户的问题,同时获取用户的电话商机。在取得用户的电话商机后,平台会把商机通过商机中心推送给 B 端商家。最终 C 端用户和 B 端商家通过挖掘出的电话商机进行沟通,最终成单。

三、核心能力

QABot


基于上述,我们提供了满足业务咨询的 QABot 能力,提供商机引导的 TaskBot 和商机催留能力,以及提高人效的商机挖掘和智能辅助能力。



首先,QAbot 解决的是用户的问题咨询场景,实际业务过程中,我们核心要解决的问题是:(1)机器人能回答哪些用户提问;(2)如何回答更多的问题并准确回答



我们先看第一个问题,也就是怎么才能知道用户可能的提问有哪些。我们借助机器与人工挖掘结合的方式,先用 KMeans 等聚类方法获取一些种子问题,再由编辑标注,得到业务线知识库,该知识库包含标准问题和扩展问法。



有了业务线知识库之后,我们可以在这个基础上训练问答模型。该模型输入用户 query,输出对应的标准问题编号。


识别出了用户问题,如何回答也很重要。我们使用结构化的答案库,通过查询帖子结构化数据+文本填充相结合的方式,动态生成答案。



大家可以看到,问答模型的效果对用户体验非常重要。为提升问答模型效果,达到 F1 值大于 0.8 的目标,我们结合线上数据进行了多次模型迭代。



在项目初期,我们使用 FastText 作为基准,快速得到问答模型。选择 FastText 这个浅层神经网络,一方面是考虑网络的训练和预测速度快,可以快速验证数据是否存在异常;另一方面是 NGram 能够快速捕捉关键词特征,在一些关键词比较明显的类别上能取得不错的效果。




DSSM 作为一个文本匹配模型,其优势在于对样本少的类别也有较好的匹配效果。句子的表示方法对 DSSM 模型的效果有显著影响。这里我们先试用了 LSTM 模型对句子进行表示。相对于 NGram 而言,LSTM 更能够提取出句中的长程特征,提升了样本中长句子的识别效果。其次我们也对 LSTM+NGram 特征的结合进行了尝试,使得模型在有效处理长句的同时,也能不遗漏关键词特征。



58 微聊场景下积累了大量的无监督数据,在预训练模型出现后,我们得以进一步挖掘这些数据的潜力。实践中,BERT 模型作为此类半监督模型的代表,在分类任务中取得了良好的效果。BERT 的主要特点是预训练掩码语言模型+微调两个步骤的结合,同时为了配合 Transformer encoder 的使用,使用了位置编码机制。



SPTMs 这个轻量级的预训练模型实现比较早,BERT 在 18 年 10 月底发布,这个模型是 19 年 4 月实现的。这里当时看主要创新点是去掉 BERT 的 NSP 任务,另外替换成 Bi-LSTM 也是做一种尝试(实际也可以用一层的 Transformer),在机器资源有限情况下让预训练变得容易。如果直接用 BERT 去预训练,耗时很久,而 SPTM 的推理耗时较低,可以在 CPU 上直接跑,十几到几十毫秒。



SPTM 将每个单句作为一个样本,句子中不超过 15%的字参与预测;参与预测的字中 80%进行 mask,10%随机替换成词典中一个其他的字,10%不替换。在预训练阶段,SPTM 使用 softmax 值与单字 one-hot 相乘作为损失度量;在微调阶段则计算各类别的交叉熵损失。



SPTM 经调整后能达到 F1>0.8 的目标,同时其推理耗时也在控制范围内。目前 LSTM+DSSM/SPTM 模型已在 github 开源,大家可以参考我们之前分享的文章《开源|qa_match:一款基于深度学习的层级问答匹配工具》(链接:https://mp.weixin.qq.com/s/2NahwBgAnptiK5pv6vTLNQ)进行详细了解。

TaskBot


TaskBot 是一类帮助用户完成特定任务的聊天机器人。借鉴通用的 Frame 数据结构,我们采用意图+词槽的组合对用户 query 进行知识表示。在 58 场景下,我们将用户提供的特定词槽值称作商机,TaskBot 的目标即是引导用户提供商机。



58 作为提供本地生活服务的头部平台之一,同时服务于 C 端用户与 B 端商家。为提高平台效能,促进增收,我们基于 TaskBot 开发了商机引导功能,由机器人代替人工,引导用户透露商机,目标是转化商机、促成交易。




在 58 服务寻求场景下的会话中,用户需求的复杂性给商机引导带来了诸多挑战(如图中实际的用户对话)。实践中我们发现,20%的用户在问了一轮后就退出会话,而余下的 80%用户中,有 45%在被问到电话时,表示拒绝或不愿透露。



通过学习人工客服的会话,我们发现人工客服回复存在固定的模式,一般人工客服会先回答用户的提问,再根据需要问的信息对用户进行反问。在这个基础上,我们选用了结合一问一答的 QABot 和商机引导多轮 Taskbot 的方案,实现类似人工客服回答模式的商机引导过程,目前已在房产等多个业务线落地。



举个例子,在实际会话中,用户的第一个问题命中某标准问题,此时我们先查询答案库,获取到一问一答(QABot)的答案,同时,我们根据 TaskBot 的触发条件判断,如果触发 TaskBot,则继续回复 TaskBot 的反问。


在触发 TaskBot 后,用户在 TaskBot 的依次引导下,逐步透露商机,此时 QABot 不会命中标准问题,TaskBot 引导用户直到对话结束。



通用的 TaskBot 包含 NLU、DM 与 NLG 模块。我们将 DM 和 NLG 模块集成在统一的对话管理服务中,加上 NLU 模块单独对应一个服务,共两个 SCF 服务。



基准版的对话管理服务,以一个可以从静态配置信息中初始化的状态机作为核心。状态机的每个节点对应于一组槽位的组合,每条边对应于意图与一组槽位的组合。当前的状态存放在 58 存储服务 WRedis 内。用户输入被解析为意图和词槽的组合后,对话管理服务根据状态机状态选择出一个回复策略,这个策略由动作与参数组成。查询得到参数值后,根据动作类型选择合适的回复模板,便得到了最终的回复。



随着 TaskBot 接入业务的增加,业务侧对其灵活性和通用性都提出了更高的要求。这里我们借鉴业界经验,对原有的状态机进行进一步抽象,定义出触发、填槽、函数与回复这 4 种节点类型,每种类型应用特定的配置,使状态机配置大幅简化,复用成本大大降低。



与 Frame 将知识区分为 Procedure 和 Data 相似,TaskBot 区分了标准问题和词槽。标准问题直接复用自 QABot 的结果,用于判断是否需要触发 TaskBot 进入商机引导流程,词槽则对应于具体的商机信息。

智能商机催留


我们分析线上用户数据发现,未提供商机的用户中,48%的用户在 AI 机器人询问电话之后就退出了对话,用户不再与机器人进行沟通,这样这部分用户的商机就流失掉了。



同样我们分析了人工客服的对话记录,发现用户同样存在退出会话的问题,但是人工客服会主动与 C 端用户进行沟通,一般在用户不回复后约 30 秒的时候,人工坐席就开始进行主动会话催留,经统计发现,针对 3 次催留的用户,其中有 80%的用户留了电话商机。



所以,我们构建起基于对话管理器中对话状态+智能主动发问的能力,赋予 AI 对话机器人主动对话的能力,与用户展开主动聊天,智能催促用户留下电话商机。


这个地方,我们使用多轮对话用户的商机状态,结合微聊消息队列的定时器,通过模拟人工坐席的催留节奏和话术,达到智能商机催留的目的。



在本地服务品类,智能商机催留功能上线后,我们的商机转化率绝对提升 14%,效果显著。

商机挖掘


在智能客服商家版中,存在对话机器人和人工坐席,目前支持的人机协作模式有以下三种:


①机器人接待用户,机器人回答不了转人工客服


②机器人和人工客服各自接待一部分用户


③机器人全部接待,无人工客服参与



这张图展示的是人工坐席的后台工作界面,一个人工坐席会同时与多个店铺的多个用户进行在线沟通,所以,提升人工坐席的工作效率是非常重要的。


我们提供了商机自动挖掘的能力,在人工和用户沟通过程中,AI 会自动挖掘 C 端用户的商机并且自动填写到商机管理中,同时针对 C 端用户的问题,我们会提供智能辅助的能力,给人工坐席提示可能的候选答案,供人工坐席采纳以提高回复效率。



我们利用了 IDCNN 提取上下文语义特征能力,以提升远距离建模的能力,CRF 建模状态转义的能力。CRF 层引入序列的转移概率,避免标签偏移,最终计算出 loss 反馈回网络。AI 提供了多种商机的挖掘能力,包括核心商机:电话,地点,时间,业务商机属性。



无论是机器人引导的商机还是人工坐席产生的商机,最终都会流入商机管理系统,商机挖掘后,我们会实时推送给商机中心,商家与用户进行及时的沟通最终促成交易,从而达成了整个服务的闭环。



目前,从商机转化率上,我们对话机器人达到了人工坐席大约 95%的水平,部分类目对话机器人甚至高于人工客服的电话商机转化率。同时,商机挖掘的准确率和召回率也都超过了 90%,提高了坐席的人效。

四、总结展望


未来我们会加速算法创新和业务落地,从强化学习、预训练等技术进行深入研究,提高对话机器人的效果。


58AI Lab 实验室介绍



最后介绍一下我们的 58AI Lab,AI Lab 隶属于 58 同城 TEG 技术工程平台群,旨在推动 AI 技术在 58 生活服务行业的落地,打造 AI 中台能力,以提高前台业务的人效和用户体验。AI Lab 目前负责的产品包括:智能客服、语音机器人、智能写稿、语音分析平台、AI 算法平台、语音识别引擎、智能营销系统等,未来将持续加速创新,拓展 AI 应用。


AILab 大力推进开源社区,目前我们基于开源了 58 智能问答匹配算法开源项目和 58 通用深度学习推理服务开源项目,欢迎大家 star/fork。


欢迎关注 58AILab 公众号



58 同城 AI 算法大赛开放报名啦!关注上面的公众号快快进行报名吧!



我们还在大力招人,后端工程师和算法工程师,欢迎发送简历到我的邮箱hanwei10@58.com


感谢大家的聆听。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-07-23 14:082730

评论

发布
暂无评论
发现更多内容

盲盒风潮过后,中国收藏玩具市场该何去何从?

易观分析

盲盒 潮玩

VuePress 博客之 SEO 优化(一) sitemap 与搜索引擎收录

冴羽

Vue vuepress SEO 博客搭建 sitemap

聊聊 kerberos 的 kinit 命令和 ccache 机制

明哥的IT随笔

数据安全 kerberos

敏捷小游戏的思考-上篇

LigaAI

团队管理 敏捷实践

企业内PAAS建设的经验与教训

Crazy

中间件 PaaS 经验 云原生应用

租房小程序

源字节1号

前端开发 后端开发 租房小程序

如何使用OKR管理团队?

优秀

关于知识库:你需要知道的一切

小炮

2 月月更获奖名单公布!获奖的小伙伴速速领取奖励啦!

InfoQ写作社区官方

2月月更 热门活动

移动域全链路可观测架构和关键技术

阿里巴巴终端技术

架构 App 移动端 体验优化

APICloud平台使用融云模块实现音视频通话实践经验总结分享

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 融云 跨端开发

基于深度学习的时间序列预测

云智慧AIOps社区

好云推荐官丨飞天加速之星怎样选择云服务器ECS?

阿里云弹性计算

阿里云 采购季 好云推荐官

Gitlab-ci 替代 webhook 触发Jenkins job

网易云信

gitlab

你的密钥被我看见了 !逆向获取密钥

H

网络安全 逆向

hexo+github搭建个人博客前期部署工作

静Yu

Hexo

基于WEB快速开发平台的轻量ERP

雯雯写代码

ERP 快速开发平台

被冰封的 Bug:Fishhook Crash 修复纪实

声网

Dev for Dev fishhook

租房小程序

源字节1号

前端开发 后端开发 租房小程序

如何从头到脚彻底解决一个MySQL Bug

华为云开发者联盟

MySQL 数据库 华为云 bug GaussDB(for MySQL)

手把手教程|构建无服务器通用文本识别功能

亚马逊云科技 (Amazon Web Services)

架构

喜讯!openGauss社区入选2021年 “科创中国”榜单

openGauss

如何从头到脚彻底解决一个MySQL Bug?华为云数据库高级专家带你看

华为云数据库小助手

bug GaussDB 华为云数据库 GaussDB(for MySQL)

基于微信小程序的大学社团平台的可研方案

CC同学

安全app之PHP代码审计

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 代码审计

什么是以特性为核心的持续交付|阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 研发效能 研发 DevOps实践指南

向工程腐化开炮 | Java代码治理

阿里巴巴终端技术

Java android JVM 代码治理

云计算及国内主流云厂商概述

穿过生命散发芬芳

3月月更

OceanBase 社区版 运维管控平台 OCP 功能解读

OceanBase 数据库

OCP oceanbase OceanBase 开源 OceanBase 社区版

openGauss社区成立ReleaseManagement SIG

openGauss

杜绝不良信息侵害未成年,皮皮APP发起语音社交行业自律书

联营汇聚

58同城对话机器人应用实践:本地生活服务场景中的商家智能助手_AI&大模型_韩伟_InfoQ精选文章