外呼机器人 7 大难题,看网易云商如何攻破?
对话系统
常见的对话系统按类型区分,一般可分为三大类:闲聊型、问答型和任务型。
闲聊型对话是在开放域内与用户谈天说地,目的是让对话一直进行下去;
问答型对话是基于封闭域的知识库进行一问一答,目的是回答用户的提问;
任务型对话的目标则是完成某一特定任务,期间机器人会引导对话的有效进行,既要回答问题也需要主动提问,在实际应用场景特别是 ToB 场景中应用广泛。
任务型对话系统
任务型对话按实现方式不同,可分为 pipline 和 end-to-end 两种。
pipline 方式由于其可解释性强,易于落地,是目前工业界主流的实现方式,但因为各部分独立,因此也存在难以联合优化、错误步步累加的问题;
end-to-end 方式则是学术界比较热门的研究方向,期望建立用户输入到机器人输出的整体映射关系。由于这种方式对数据要求很高,目前是学术领域较为火热的主题之一,在工业界很少成功落地。
下图为 pipline 式任务型对话系统,系统分为 4 个模块,语义理解(NLU)、对话状态跟踪(DST)、对话策略(DP)和话术生成(NLG),各模块相互独立,各司其职。为方便说明,这里将结合具体示例进行阐述。
示例:假设现在用户的车挡住了公共交通,需要用户挪车,那么在对话过程中我们需要收集两个信息:“是否用户的车”以及“是否同意挪车”。需要收集的信息称之为槽位(slot),系统的任务就是完成槽位信息的收集。
整个对话过程可能是这样:
在对话过程中,整个系统的运作流程如下:
上述示例中,每个模块负责的功能可概括为:
语义理解:从用户输入的文本中根据语义识别抽取出所表达的意图和槽位信息。
对话状态跟踪:根据抽取的意图、槽位信息、之前的对话状态、之前采取的策略,更新当前对话状态,对话状态是对整个会话的累积语义表示。
对话策略:根据当前对话状态确定下一步系统策略。
话术生成:将系统策略转换成自然语言文本输出。
外呼机器人
外呼机器人属于任务型对话系统,由于需要直接与用户进行语音交流,因此除了上述 4 个模块,还需要加入语音转写(ASR)和语音合成(TTS)模块,整个系统流程如下:
语音转写:将用户的语音输入转换为文本,用于后续的语义识别。
语音合成:将机器人输出的文本转换为语音播放给用户。
外呼机器人实现
通常外呼机器人在实现时会引入人工配置,降低纯算法系统存在的可控性问题。目前市面上主流的外呼机器人都是将对话策略和话术生成模块配置化,由人工配置对话状态与机器人话术的映射关系,从而提升系统的可控性。在交互上,为了保证配置过程易理解,一般采用流程图的形式进行映射关系的配置,而非直接配置对话状态空间与机器人话术的映射。为了应对用户提问的情况,还会额外配置知识库来回答问题,回答后再跳转回流程图或进行挂断等操作。
实际外呼场景可能会复杂很多,因此一般还会将流程图分割为多个场景,每个场景负责一个任务,不同场景之间支持跳转,以降低配置复杂度和后期维护成本。
上述示例在云商外呼机器人中配置后最终将呈现成以下流程图形式:
外呼机器人的技术难点
外呼机器人由于系统复杂流程长,各个环节均有可能出现错误,并层层累加最终导致答非所问。总结云商外呼机器人在实现过程中遇到的难点,主要包括以下几个方面:
方言问题:虽然普通话普及率在逐年提高,方言依旧是外呼机器人经常会遇到的问题。目前虽然能针对不同方言版本训练不同 ASR 引擎,但由于方言种类过多,并且在接通前无法得知用户说的是哪种方言,因此这一问题并未完全解决;
转写错误:由于信道质量、说话音量、专有名词等问题,ASR 模块经常会出现转写错误的情况,并导致后续语义识别出错;另外用户说话经常会很简短,在缺少上下文情景时进行转写,也容易造成相似读音的转写错误。
打断问题:用户经常会在播放话术的过程中进行打断提问,因此需要支持录音打断功能,而打断时机则是另一个难点,由于噪声的存在,经常会出现莫名其妙的打断情况;
语气词:用户在口头表达时经常会带有嗯啊等语气词,在进行语义识别时容易和用户正常说嗯啊相混淆,识别为肯定意图,进而导致对话出错;
断句问题:用户在口头表达时,有时会因为思考或组织语言而出现停顿,此时 ASR 转写将出现断句,如果只利用前半句话进行语义识别,则会出现语义丢失识别错误的情况;
未识别问题:由于方言、转写错误、噪声、表达不连贯等问题的存在,又或者知识库、意图配置缺失,用户意图可能会出现无法识别的情况,此时为了保证流程的正常进行,一般会预先设置应对规则进行兜底,一旦进入兜底环节,则很有可能出现答非所问;
话术设计:话术设计是一门学问,话术冗长、重复都很容易导致用户直接挂机,如何设计话术来提升用户好感和意向度值得深入研究。
外呼机器人优化
针对上文描述的问题,结合网易云商在客服领域的经验积累,我们从以下方面进行了优化:
ASR 纠错:纠错模块作为 ASR 模块的补充,用于纠正 ASR 转写过程中出现的错误。SoftMasked Bert 基于 Bert 模型进行改进,通过设计 detection 和 correction 子网络分别进行错别字检测和纠正,具备良好的纠错性能。基于此,我们通过垂直领域数据的预训练,并结合机器人问题构建上下文训练 SoftMasked Bert 模型,最终有效缓解了 ASR 转写存在的上下文依赖问题,并降低了在专有名词、近音字等场景下的错字率。
语义校验:噪声、背景音在 ASR 转写后,经常会呈现无意义或与问题不相关的特性。基于此,通过网易云商在客服领域的长期数据积累,针对不同领域训练语言模型和问答匹配模型,对噪声和背景音进行识别过滤,最终提升了整体打断效果,降低了未识别问题的出现概率。另外,断句错误的情况下如果出现语义不完整,也可以通过语言模型进行识别过滤,提升识别准确率。
意图精准识别:精准的意图识别是提升外呼机器人通话体验和问题解决率的关键。这里我们采用相似度匹配和意图分类相结合的方式,一方面保证了意图配置的灵活性,支持实时修改意图;另一方面在训练分类模型时通过引入上下文进行整体语义识别,既保证了意图识别的准确性,也缓解了因为断句导致的识别错误。
知识库优化:知识库创建初期往往存在内容缺失问题,对此我们构建了一套知识库自动优化流程,通过对线上未识别数据进行聚类,自动提取出常见问题加入到知识库中,并通过相似问生成进行问法扩展,人工只需在最后进行确认,不仅降低了知识库人工维护成本,也缓解了由于配置缺失导致的未识别问题。
话术优化:话术优化依赖于话术诊断。我们基于线上数据,通过统计每个节点的用户比例,找出流失较为严重的节点进行针对性的优化。优化方向考虑是否简单易懂、是否符合表达习惯、是否具有指引性等,指引性强的话术可以引导用户的回答方式,缓解语气词造成的识别错误。另外,我们尝试结合用户群体特征进行话术优化,并最终提升了用户的整体满意度。
总结
近年来,外呼机器人在防疫、反诈、物流等场景开始应用落地。它能按照标准流程执行特定任务,自动化程度高,可代替人工承担很多重复性工作,为企业节省大量人力,在生活和工作中的应用深度和广度正逐步得到提升。
相比文本机器人,外呼机器人基于语音这种信息承载方式,在噪声、打断、语气词等方面存在不少新挑战。针对这些挑战,我们结合网易云商在 AI 方面的长期技术积累,从 ASR 纠错、语义校验、意图识别等方面进行优化,反复打磨,最终实现整体通话体验的提升,性能指标达到业内领先水平,多家客户使用后均反馈表现超出预期。未来我们将持续聚焦智能语音交互,拓展应用场景,为更多客户创造价值。
版权声明: 本文为 InfoQ 作者【网易智企】的原创文章。
原文链接:【http://xie.infoq.cn/article/882567e7f01ef13890ff0fbe2】。文章转载请联系作者。
评论