语音机器人中应用端到端模型控制对话跳转
29:56
36:(视频回放)
导读
语音机器人即利用语音识别、语义理解和语音合成技术赋予机器多轮对话交互能力,使机器能模拟真人与用户对话,它可以代替或辅助人工来完成一些例程化工作,被广泛应用于产品营销、服务通知、用户调查等多种场景。本文将首先介绍58语音机器人的总体架构,然后介绍基于规则、文本匹配的对话跳转策略,最后介绍一种基于端到端模型的对话跳转策略,并比较不同方法的线上实际效果。
嘉宾介绍:宋玉美,58同城AI Lab算法高级工程师,2019年7月硕士毕业于大连理工大学,毕业后加入58,目前主要负责智能语音分析平台、智能语音机器人项目中的算法研发工作。
58同城是中国最大的生活信息服务平台,公司主营业务包括:招聘、汽车、房产、本地服务(黄页)等。如下图所示,平台连接着海量C端用户和B端商家,B端商家可以在上面发布房源、车源、职位、生活黄页等各类信息,平台将这些帖子分发给C端用户浏览,帮助不同业务下的B端商家获取目标用户。在其中,电话沟通是信息连接的重要渠道之一,例如招聘业务模块,需要大量的业务人员进行求职信息确认、面试预约、面试回访等重复耗时的沟通工作,再例如,58平台上的B端商家来自于房产中介、二手车商等客户,各业务线的销售团队会向大量客户进行会员套餐售卖等重复性的营销推广。为了更好的服务B端商家和C端用户,我们开发了语音机器人来进行电话语音沟通,减少业务人员的工作量、提高销售人员工作效率。
语音机器人即利用语音识别、语义理解和语音合成技术赋予机器多轮对话交互能力,使机器能模拟真人与用户对话,它可以代替或辅助人工来完成一些例程化工作,被广泛应用于产品营销、服务通知、用户调查等多种场景。语音机器人目前我们上层应用最主要有两类:
1)基于sip线路的电话语音交互:具有自动外呼、按键交互、转人工、多轮对话、顺振、一键转接等功能,目前相关的业务应用场景有:销售场景、满意度回访场景、通知类场景、信息验真等。
2)基于网络音频的音视频交互,主要是指智能化视频面试,使用语音机器人模拟招聘者与求职者进行多轮对话,达到对求职者进行自动化面试的目的,目前已经应用在58同城招聘业务线,产品名称叫神奇面试间。
本文分享的主要是基于sip线路的多轮语音交互,通过对话策略来实时判断用户意图然后对用户回复进行响应,实现多轮语音交互。后面给大家做进一步的详细介绍。
语音机器人的架构:
应用层:主要支持语音外呼、智能接电助手、神奇面试间。
接入层:接入的主要功能有机器外呼、呼入、转接人工、来电顺振
逻辑层:整个语音机器人的核心控制层,相当于人的大脑,保证整个对话流程完整进行。
编辑运营层:目前主要用于数据标注,标注数据用于模型迭代与线上效果评估。
基础服务层:主要包括SIP电话资源、网络音频资源和语音识别、语音合成两个部分。SIP 电话资源即实现拨打电话的资源,网络音频资源即基于双方约定的UDP通信端口、使用RTP包进行通信。语音识别当前采用的是我们AI Lab自研的语音识别引擎,语音合成采用的是第三方接口,目前也在陆续接入自研的语音合成。
智能语音机器人交互流程如上图所示,在多轮对话时,针对当前用户回复的录音,先进行语音断句(VAD)、语音识别(ASR)得到用户回复文本,然后会针对录音或者文本进行一些语义理解,例如声音类型识别、单句意图识别、槽位识别,然后对话管理器根据识别到的意图进行策略响应,最后将响应的语音输出给用户。这里与对话相关的主要有三大模块:业务创建的话术、语义理解、对话管理器。以下分别简单介绍下。
1)话术
整个语音机器人是通过业务定制化的话术来驱动我们整个通话流转的,业务方可以进行创建话术、编辑话术节点,上图是销售场景的一个简化话术。话术本质上是一个有向图的方式表示,每个节点(比如确认行业节点)在不同的条件下流转到他的后续的节点,例如肯定回复跳转到肯定节点,否定回复跳转到否定节点。话术节点分为四类:主线流程节点、通用流程节点、关键词问答节点和标准问题节点,以下分别介绍各类节点的作用及特点。
主线流程节点:从通话开始到结束,业务方在描述这个业务的目的是做什么的,这个流程会分成几步。比如上图的简化版的黄页密歇根话术,业务目的是确认用户行业并清洗出有合作意向的商机,那么确认行业、再次确认行业、询问用户是否有在平台上接业务的需求,这几个就属于主流程;
通用流程节点:比如用户在通话中说在忙,那么会有一个在忙的流程,用户骂人,会有一个挂断的流程,这种是各个场景都通用的,不依赖某个具体业务场景;
关键词问答节点和标准问题节点:关键词问答其实也算是标准问题,这两个都是在通话过程中回复用户询问的一些问题,但是关键词问答可能跟业务更强相关一点,并且关键词问答一般回复完用户问题后会抛出一个问题,用户回答后继续走后续流程;但标准问题没有后续流程,回答完用户提问后,会跳转到原来的问题,也就是有一个拉回策略进行拉回。
2)语义理解
语义理解主要会对以下信息进行识别,单句意图识别、槽位识别、声音类型识别。
单句意图识别:用户的意图可能会有很多种,我们将意图整体划分为了十九类意图,并建立了标签、意图及说明的识别表。采用分类模型对用户的意图进行识别。
槽位识别:采用实体识别进行槽位识别,提取对话文本中的词槽。
声音类型识别:基于VGGish的声音类别分类,将用户回复语音分为听不清和听得清两类。
3)对话管理器
对话管理器中有多个不同优先级的策略,针对用户当前的回复,依次经过各策略,直到命中某一策略或者机器拒识。后面我们会具体分析其中的基于规则、基于意图、基于相似度的匹配策略。
4)评价指标
建立机器人评价指标:响应准确率,在用户回复维度上,针对用户的每一次回复,评价机器动作响应的准确率。之前都是对单个模型进行评测,例如对听不清、相似度匹配、槽位等分别进行评测,缺少一个反应模型+策略整个链路效果的综合评测,因此建立机器响应准确率的评价指标。这里机器响应指经过听不清策略、真实意图策略、槽位跳转策略、通用单句意图策略、关键词问答、主线流程策略等策略方式,机器最终给出的响应动作。如果某一个模型迭代,也可以直接反应对该场景的机器响应产生的真实影响。
下面先来介绍我们传统语音机器人的话术跳转策略:基于规则、意图识别、文本匹配等策略实现的语音交互,然后介绍一种基于端到端模型的对话跳转策略,并介绍在黄页销售场景中的应用。
1)基于规则的话术跳转
如下图所示,每个节点可以配置分支跳转正则,关键词问答节点还可以配置命中该节点的正则。如果用户回复命中相应的正则,则直接进行跳转。
2)基于意图识别的话术跳转
话术节点的肯否定分支会配置相应的跳转语料,这些语料通过单句意图分类模型进行意图分类,如下图所示,肯定/否定分支配置的语料分属各个意图。当用户回复后,语义理解阶段会识别出用户单句意图,如果属于通用意图,根据通用意图策略直接命中通用流程节点进行跳转;如果是非通用意图,且该意图唯一存在在肯定分支或者否定分支的语料意图中,则直接进行相应分支的跳转。
3)基于文本匹配的话术跳转
基于文本匹配的节点跳转在多个策略中应用,例如在标准问题匹配策略和关键词问答匹配策略中,用户回复会与标准问题或关键词问答配置的命中语料进行文本匹配;例如在分支匹配时,如果用户意图在肯定分支和否定分支的语料意图中同时存在,则通过与相应意图的配置语料进行文本匹配来决定如何跳转。
上述基于规则、文本匹配、意图识别话术跳转策略的优点:
1)策略在各场景通用,新增场景/话术只需要配置相应语料即可。支持冷启动
上述基于规则、文本匹配、意图识别话术跳转策略的缺点:
1)正则/规则无法配置完备
2)直接根据意图跳转粒度太粗,语料配置不充足时容易跳转错误
3)长句相似度匹配难
“不需要啊,我们这人手不够忙不过来。”,“不需要啊,我们忙不过来不需要啊。”,两个句子相似度仅0.64
4)通过配置的方法,难以把整个对话流配置完备,可能还会存在冲突
例如关键词问答节点命中语料配置存在缺陷;
5)规则化的对话引擎导致无法从数据中学习
基于策略链的对话管理,本质上仍是一个规则化的对话引擎,即使积累再多的数据,也没有办法具备学习能力
因此,提出端到端的话术跳转策略。
考虑到传统策略的缺点,提出基于端到端的话术跳转策略,端到端策略融合了传统策略的规则匹配模块、槽位匹配模块以及基于意图和文本匹配的标准问题、关键词问答、主线流程模块,可以根据当前机器节点及用户回复,直接输出下一个机器节点。
1)基于端到端话术跳转策略的流程图
端到端话术跳转策略
2)端到端模型训练
端到端策略抽象出来即是一个分类任务,具体地,机器与用户的每一轮对话,可以将机器文本与用户回复文本作为分类模型的输入,模型直接输出下一个机器节点,机器回复相应节点的文本后,进入到第二轮对话,用户进行第二轮回复,第二轮的机器文本与用户回复作为分类模型的输入,模型直接输出机器节点,此过程持续到机器输出结束节点。如下图所示。
端到端策略中,节点的跳转整体依然依赖于话术图设计的跳转,并沿用了节点的属性(标准问题、关键词问答等)及特性,例如命中“标准问题” 节点,会先进行标准问题回复,再走“拉回”策略,拉回到主线流程。
端到端分类模型这里采用的是TextCNN,模型的输入是机器文本与用户回复的拼接文本,模型的输出标签是机器人的节点,节点可以是该场景中任意一个节点,包括当前节点本身。
我们也尝试了LSTM和Transformer模型,整体响应准确率均比TextCNN模型低,在存在ASR错误、用户意图比较明确的文本中,TextCNN提取周边局部信息的效果更好一些。后续积累一定量数据后,将去尝试更多算法。
3)数据增强
为什么要数据增强:线上部分跳转出现的频率很低,这一部分的训练语料也很稀少,例如,询问价格,大部分用户都在机器询问是否要推广的时候问价格,在其他节点问价格的较少,但线上也会出现先问一些其他问题然后再问价格的情况,那这一部分语料就严重缺失。因此我们这里进行了一些数据增强。
①标签为关键词问答的,机器问题随机替换。例如命中价格解答关键词问答节点的语料,可以对机器问题进行随机替换。
机器问题1+用户回复:
我是五八同城网的,最近平台有优惠活动,您有考虑过在上面接业务吗?多少钱啊?
机器问题2 +用户回复:
我们会把你的服务信息展现在网络上;客户在五八上看到你的服务会主动联系你;给您安排个专业的顾问详细介绍一下好吗?多少钱啊?
②通过规则生成一些行业相关的语料。
③人工收集的语料。
④自动化收集语料
基于机器与用户的对话数据,对用户问句进行聚类挖掘后,在完善机器人节点的同时,也生成了大量的训练数据。
4)模型在不同话术间的可迁移性
在同一个场景中我们经常会创建多版话术进行对比实验,例如在进行产品营销后用户否定回复,不同版本的话术,可能走向挽留节点,也可能走向否定结束节点。针对这种情况,只需要训练一个融合所有节点的模型,模型的输出与各话术再进行一个映射,就可以实现话术之间的迁移。
5)端到端策略与传统策略线上效果对比
下图是两个策略线上响应准确率效果对比,端到端在整体响应准确率上绝对提升3.38%(不排除ASR错误)
传统策略中,随着用户回复的长度变长,响应准确率逐渐降低,当句子长度大于5时,响应准确率骤降。端到端策略对长句的响应效果更好,在长句上,响应准确率绝对提升14.98%
相比传统策略,端到端策略跳转准确率更高,尤其在长句上;话术节点跳转无约束,且不需要复杂的配置,同时对话引擎可以根据历史标注数据进行持续学习。
6)语音机器人未来方向
①端到端策略融合通用意图模块
②多意图的识别与跳转
③基于历史状态进行话术跳转
④端到端尝试Next Sentence Prediction (NSP)算法
⑤利用历史对话数据,类似真实意图,实现一个对话模拟器,可以快速发现当前系统策略的漏洞,后续可尝试基于强化学习进行话术跳转
黄页的销售团队会对商家进行一些会员营销活动,销售人员会通过拨打电话、电话沟通后和用户加微信聊天、线下外访等方式持续跟进用户。在传统工作模式下,一个销售人员需要全程负责从拿到商机到成单整个链路上的所有工作。2020年,黄页业务线对直销模式下销售人员工作流程进行了改革,打造了密歇根工作模式,在各城市中将原始一个销售团队拆分成商机组、销售组两个工作组。商机组人员主要负责探需,拨打商机电话以筛选出有可能购买58会员的用户,若用户有一定意向则这类商机被称作有效转出商机,转出的意思是指这些商机会被转给销售组工作人员,之后该商机就由销售人员持续跟进,如电话联系、微信沟通、外访,直至成单。若读者希望了解更多关于黄页销售业务背景、客户管理系统(CRM)、CRM商机智能分配等内容请参看58技术公众号之前的文章:《AI + CRM 提高企业的 “绩” 和 “效”》,詹坤林,《CRM商机智能分配系统中的多目标排序算法》,孙启明,这里不再赘述。
商机组的销售人员只会参与整条成单链路上的第一个环节,通过拨打一通电话来判断商机是否可转出,工作比较标准化,可以应用人机语音对话技术打造销售智能外呼助手,将商机交由机器人自动外呼,以形成更多的转出商机。以下是机器人外呼的流程及对话示例。
在密歇根场景中,端到端也能够解决一些传统策略无法解决的问题,例如,用户回复“我现在开车呢”,该回复存在歧义,需要根据机器人的问题来判断当前回复是真的在忙还是用户职位就是开车。传统策略不能根据语境进行判断,但端到端策略能够根据具体机器问题来进行不同的跳转。
在密歇根场景,端到端策略的响应准确率也明显优于传统策略。针对业务场景也建立了业务评价指标:拨打合规转出率,即拨打的商机电话中真正合规转出的比例(转出商机:有潜在购买意向的商机,转出商机有标准的规范)。拨打合规转出率的计算如下:
拨打合规转出率
=合规转出商机数/拨打商机数
= (转出商机数/拨打商机数)*(合规转出商机数/转出商机数)
=拨打转出率 * 转出商机人工质检合规率
相比传统策略,端到端策略在拨打合规转出率上相对提升12.95%。
本文围绕多轮语音对话技术在58同城的落地场景,首先介绍了传统的基于规则、意图识别、文本匹配的话术跳转策略,并分析传统策略的局限性,然后介绍一种基于端到端的话术跳转策略及其在实际场景中的应用效果。
3人半年打造语音识别引擎——58同城语音识别自研之路 AI + CRM 提高企业的 "绩" 和 "效" 过往,不负韶华,未来,惟有奋斗——AI Lab三年总结和未来规划 58同城AI算法大赛开放报名,欢迎参赛 CRM商机智能分配系统中的多目标排序算法 人物| 詹坤林:AI技术助力CRM系统智能化
58同城AI Lab简介
欢迎关注部门微信公众号:58AILab