装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

情感分析算法在阿里小蜜的应用实践

  • 2020-06-03
  • 本文字数:16849 字

    阅读完需:约 55 分钟

情感分析算法在阿里小蜜的应用实践

导读: 人机对话一直是自然语言处理领域内的重要研究方向之一,近年来随着人机交互技术的进步,对话系统正逐渐走向实际应用。其中,智能客服系统受到了很多企业尤其是中大型企业的广泛关注。智能客服系统旨在解决传统客服模式需要大量人力的状况,在节约人力的同时,使得人工客服在针对特别问题或者特别用户时能够提供更高质量的服务,从而实现 ‘智能客服+人工客服’ 在服务效率和服务质量两个维度上的整体提升。近年来,许多中大型公司都已经构建了自己的智能客服体系,例如富士通的 FRAP[1]、京东的 JIMI[2]和阿里巴巴的 AliMe[3]等。


智能客服系统的构建需要依托于行业数据背景,并基于海量知识处理和自然语言理解等相关技术。初代智能客服系统主要面对业务内容,针对高频的业务问题进行回复解决,此过程依赖于业务专家对高频业务问题答案的准确整理,主要的技术点在于精准的用户问题和知识点之间的文本匹配能力。随着技术的发展和对用户实际需求更加准确的捕捉,智能客服系统的定义和能力涵盖范围也发生了明显的变化。新型的智能客服系统将服务范围定义为泛业务场景,除了解决处理核心的高频业务问题,智能导购能力、障碍预测能力、智能语聊能力、生活助理功能以及生活娱乐交互等方面的需求也同样被重视和涵盖。


在服务范围被定义得更加广泛的同时,新型的智能客服系统在类人能力程度上也被提出了更高的要求。其中,情感能力做为类人能力的重要体现,已经在智能客服系统的各个维度的场景中被实际应用,并且对系统类人能力的提升起到了至关重要的作用。


本文以阿里巴巴的智能客服平台产品:阿里小蜜为对象,介绍其在基于情感分析能力上的算法模型原理,并围绕智能客服系统中人机结合的服务形式,从六个维度总结和介绍了情感分析技术在智能客服系统中的应用场景,包括用户情感检测、用户情感安抚、情感生成式语聊、客服服务质检、会话满意度预估和智能人工入口。


01 智能客服系统中情感分析技术架构


(a)



(b)


图 1:智能客服系统中的情感分析技术架构


图 1(a)给出了经典的人机结合的智能客服模式,用户能够通过对话的方式,接受来自机器人或者人工客服的服务,并且在接受机器人服务的过程中,能够利用指令的方式或者机器人自动识别的方式跳转到人工客服。在上述的完整客服模式中,情感分析技术已经被实际应用在多个维度的能力之上:


  • 针对用户的每一句对话,我们会实时分析用户在对话中带有的情感类别,例如“着急”、“失望”和“气愤”等;

  • 在机器人为用户服务的过程中,针对用户带有情感的对话,机器人会有针对性的情感安抚能力;

  • 针对用户对话中所包含的情感,利用生成式模型自动生成与用户情感相对应情感的语聊回复内容;

  • 针对人工客服的服务过程,利用情感分析技术能够实现自动的客服服务质量检测,帮助及时发现客服服务的质量问题,加以提醒和纠正;

  • 在用户结束一整通与机器人的会话之后,会预估用户对整体会话的满意度;

  • 在机器人服务的过程中,会根据用户的状态变化判断是否开启智能人工入口。


图 1(b)中给出了上述各个情感分析技术模块在智能客服系统中的关联关系。用户情感检测技术作为所有模块的基础,在不同的应用场景中都起到了重要的基础作用。而会话满意度预估模块则作为智能人工入口开启的重要指标,对人工入口是否开启的决策结果提供重要依据。


在接下来的章节中,我们会针对上述情感分析能力在不同场景中的应用,分别进行介绍。内容包括:用户情感检测、用户情感安抚、情感生成式语聊、客服服务质检、会话满意度预估和智能人工入口。另外,文中所述应用中的模型,均是在装有两张 NVIDIA Tesla M40 GPUs 的服务器环境中训练,而线上服务在运行时则是在 16 核的 Intel x86_64 cores 服务器环境中。


02 用户情感检测

1. 用户情感检测模型介绍


用户情感检测是很多情感相关应用的基础和核心。在本文中,我们提出一种集成词语义特征、多元词组语义特征和句子级语义特征的情感分类模型,用于识别智能客服系统用户对话中包含的“着急”、“气愤”和“感谢”等情感。关于不同层次语义特征的抽取技术,相关工作中已经多有提及[4-6],我们将不同层次的语义特征结合到一起,能够有效提升最终的情绪识别效果。图 2 给出了该情感分类模型的架构图,图中从左到右依次给出了句子级语义特征、多元词组语义特征和词语义特征的抽取方式。



图 2:智能客服系统中的用户情感检测模型


模型的输入包括客户对话内容的词嵌入表示和情绪类别的特征表示。在给定了词嵌入特征维度 M 之后,情绪类别的特征表示维度也会设置成与之一致。词嵌入信息由预训练得到,而情绪类别的特征表示为随机初始化得到。在模型训练的过程中,词嵌入信息会进行微调,而情绪类别的特征表示会进行充分训练。下面将分别介绍三类不同层次语义特征的抽取方式。


2. 句子级语义特征抽取


Shen 等人[4]提出 Simple Word-Embedding based Models (SWEM) 模型,该模型将简单的池化策略应用于词嵌入向量,实现句子级别的语义特征抽取,并且基于此类特征进行训练得到的分类模型和文本匹配模型能够得到与经典的卷积神经网络类模型和循环神经网络类模型几乎持平的实验效果。



图 3:SWEM 模型中池化策略和特征整合方式


在我们的模型中,我们利用 SWEM 模型的特征抽取能力,获取用户问题的句子级别语义特征,并将其用于对用户问题的情感分类模型中。在 SWEM 模型中共包含最大值池化和平均值池化两种策略,另外,针对两种策略得到特征的整合,文中也提到了串联和并联两种方式。对池化和整合方式的描述如图 3 所示。



图 4:SWEM 模型中的最大值池化和平均值池化


具体的,针对 SWEM 模型中的最大值池化和平均值池化,图 4 给出了进一步的图形化解释。


3. 多元词组语义特征抽取


传统的卷积神经网络 (CNN) 模型在很多情况下被用于抽取 n 元词组语义特征[5],其中 n 是一个变量,表示卷积窗口大小。在本文中,我们根据经验将 n 分别设置为 2、3 和 4(如图 5 所示),并且针对每一种窗口大小,我们分别设置 16 个卷积核,以用于从原始的词向量矩阵中抽取丰富的 n 元词组语义信息。



图 5:基于卷积的二元、三元和四元语义特征抽取


CNN 中用到的池化策略,与 2.2 节中方式一致,不再赘述。


4. 词级别语义特征抽取


我们利用 Label-Embedding Attentive Model (LEAM) 模型[6]抽取词级别的语义特征。LEAM 模型同时将词语和类别标签进行同维度语义空间的嵌入式表示,并且基于该表示进行文本分类任务的实现。LEAM 利用类别标签的表示,增加了词语和标签之间的语义交互,以此达到对词级别语义信息更深层次的考虑。图 6(2)中给出了类别标签和词语之间的语义交互的图示,并且给出了 LEAM 模型与传统模型之间的对比。其中,在传统模型中词语义信息和最终的类别标签之间是没有直接的交互关系的。在图 6 中, v 是指用户问题的词嵌入向量矩阵,C 是指所有的类别标签的嵌入向量矩阵,在本文中即是所有的情感类别的嵌入向量矩阵,G 是指由词语和情感类别之间的语义交互得到的 ‘类别-词语’ 相似度矩阵(即图 2 中的 Emotion-word similarity matrix)。对 G 进行池化操作之后,得到的向量 β 即是词级别的 ‘类别-词语’ 注意力向量。之后得到的特征向量 z 相较于传统模型,会帮助实现更准确的情感分类结果。



图 6:LEAM 模型中词语和类别标签之间的语义交互(传统方法和 LEAM 模型的对比)


最后,不同级别的语义特征会在被合并在一起之后,输入到整个模型的最后一层,由逻辑回归模型进行最终的分类训练。


我们通过抽检估计只有大约 5%的用户问题包含情绪信息,因此通过人工标注全部用户问题的方式获取情绪分类数据的方式会非常浪费人力。实验数据的构建,我们采用如下方式:我们首先收集了一版情绪词典,并且根据智能客服系统中的实际情况,对情绪类别以及每个类别中包含的情绪词语进行了适当的删减和扩充;然后我们利用情绪词典抽取出一些包含情绪词的用户问题作为粗训练样本训练情绪分类模型,并利用此模型对用户问题进行分类;针对上述分类结果,我们发布了众包任务,交由众包标注人员对这些分类结果进行检查和修改,基于此构建最终的标准训练数据。在标注过程中,每一条结果会由三个标注人员进行标注,针对两个或者三个标注人员都标注为正确的样本,我们予以保留。最终,我们获取到 865,666 条标准分类样本。


表 1 中给出了我们提出的集成式模型和三个只考虑单个层次特征的对比模型之间的线上真实评测效果对比结果。此外,文献[23]中提出的基于 Attention-based LSTM (A-LSTM)模型的情绪分类方法,也作为本文方法的对比模型。该结果是基于对 38 种情绪类别的识别得到,其证明了特征整合之后的效果是有明显提升的。



表 1:集成模型和三种 baseline 模型的效果对比


03 用户情感安抚

1. 用户情绪安抚整体框架介绍


本文中提出的用户情绪安抚框架包括离线部分和在线部分,每个部分又分别包含三个模块,离线部分,如图 7 所示。离线部分旨在实现对用户情感尽量细致的理解,而在线部分则是将越来越通用的安抚能力串行在一起用以在更大范围内实现对用户的安抚。



图 7:用户情绪安抚整体框架


离线部分


首先需要对用户的情绪进行识别。此处的情绪识别与第 2 章中针对 38 种情绪的识别不同,差别在于,我们选取了需要安抚的用户常见的七种情绪进行更聚焦的识别,它们是害怕、辱骂、失望、委屈、着急、气愤和感谢。


其次,我们对用户问题中包含的主题内容进行识别,此处由专门的业务专家总结了用户常见的 35 种主题表达内容,包括‘抱怨服务质量’和‘反馈物流太慢’等。主题识别模型,我们使用与情绪识别同样的分类模型设计。


知识构建是针对一些用户表达内容更具体的情况,整理其中高频出现的并且需要进行安抚的用户问题。这些具体的用户问题之所以没有合并到上述的主题维度进行统一处理,是因为主题维度的处理还是相对粗粒度一些,我们希望针对这些高频的更聚焦的问题,同样进行更聚焦的安抚回复,实现更好的回复效果。


针对情绪维度、‘情绪+主题’ 维度和高频用户问题维度,业务专家分别整理了不同粒度的安抚回复话术。特别地,在高频用户问题维度,我们将每一个 ‘问题-回复’ 搭配称为一条知识。


在线部分


基于知识的安抚是针对带有具体情绪内容表达的用户进行安抚,在此我们使用了一种文本匹配模型来评价用户问题与我们整理好的知识中的问题的匹配度。如果在我们整理好的知识中存在与当前用户输入问题意思非常相近的问题,则对应的回复直接返回给用户。


基于情绪和主题的情感回复,是指同时考虑用户表达内容中包含的情绪和主题信息,给予用户合适的情感回复。相比于基于知识的安抚,此种方式的回复会更加的泛化一些。


基于情绪类别的情感回复,是只考虑用户表达内容中的情绪因素而对用户进行相应的安抚回复。此回复方式是上述两种回复方式的补充和兜底,同时回复的内容也会更加的通用。



图 8:用户情绪安抚示例


图 8 给出了在线情感安抚的三个示例,分别对应上述的三种不同层面的回复机制。子图 8(1)给出了基于情感类别的安抚示例,针对用户的表达,只能识别出用户带有辱骂情绪,并给出针对辱骂情绪比较合适的回复内容。子图 8(2)中给出了基于情感类型和内容主题的安抚示例,用户对我们的服务表达了辱骂情绪,我们也同时回复了针对服务的辱骂比较合适的内容。子图 8(3)给出了基于知识的安抚的示例,用户表达了非常具体的内容以及辱骂的情绪,我们在整理的知识中,选择了最为接近的知识点,并且回复了比较有针对性的安抚内容。


2. 需要安抚的用户情绪检测


此处针对需要安抚的用户情绪检测,模型设计也同样沿用第 2 章中的模型设计方案。不同的是,我们针对用户最常见的七种情感,训练了更有针对性的分类模型,同时此分类模型在这七种情绪的分类结果上也会比之前提到的 38 类的情绪分类模型更为准确。


另外,主题分类的部分,也会利用与情绪分类部分相同的分类模型结构进行训练,对 35 个主题进行检测。


3. 文本匹配模型


针对基于知识的安抚,我们需要利用深度文本匹配技术[12]判定哪条知识与当前用户的问题内容匹配。深度文本匹配技术需要获取丰富的句子间交互信息,而此语义交互过程可以在单个句子的语义特征抽取完成之后[8, 13, 15],也可以在最初阶段就对句子进行交互并针对交互后的信息进行语义特征抽取[7, 13, 14]。在文章[8, 13, 15]中(特指[13]中的 ARC-I 模型),模型均分别抽取两个句子的语义特征,之后将这些特征拼接到一起作为最终逻辑回归方法的输入。在文章[7, 13, 14]中(特指[13]中的 ARC-II 模型),模型均将两个句子在词向量阶段的交互矩阵作为输入,并且从此矩阵中抽取语义特征用于评价句子之间相似性。



图 9:文本匹配模型


我们设计的文本匹配模型综合考虑以上两种语义交互方式,将模型 BCNN[8]和模型 MatchPyramid[7]进行整合,对两种方式抽取的语义特征进行合并处理,提升最终线上模型效果。BCNN 模型首先利用多层卷积和池化分别抽取两个句子单独的语义特征,之后将特征合并到一起。MatchPyramid 模型利用匹配矩阵实现两个句子的语义交互,并基于该匹配矩阵进行多层的卷积和池化,抽取语义特征[12]。整合版模型的框架如图 9 中所示,BCNN 和 MatchPyramid 两个模型的特征抽取过程单独进行,之后在基于逻辑回归的分类阶段,将特征整合到一起作为输入,以此方式整体训练模型。



图 10:基于检索的问答系统流程图


在实际应用过程中,由于知识点数量较大,每次将用户的问题与所有知识点逐一匹配耗时较大,无法满足真实的线上要求。因此,首先采用粗召回的方式选取 N 个候选知识点,再针对这些候选知识点进行基于深度文本匹配模型的语义相似性排序。具体的粗召回方式为:将所有知识点离线写入 Lucene[16]索引文件,当用户输入问题之后,会首先从索引文件中检索在词维度最为相似的 N 个知识点。整个流程如图 10 中所示。


4. 用户情绪安抚系统结果分析


针对情绪分类部分,我们利用第二章中所述方式采集的训练数据。而针对文本匹配部分,我们为了构建足够的训练数据,采用了如下策略:我们从历史对话数据中,随机抽取一万条用户问题,并针对每一条问题从我们的问答对索引文件中抽取检索结果的前 15 条结果,之后,由 8 位标注人员对这些候选问答对结果进行标注,以标识其是否与给定用户问题意思一致。此标注结果出现了严重的分布不均衡情况,因为只有 14.3%的样本被标注为正确。为了平衡数据分布,我们只保留了 20%的负样本。最终,一共 47,625 条样本会用于最终的模型训练。



表 2:需要安抚的情感分类效果对比


表 2 给出了针对需要安抚情感的分类模型效果对比,包括每种情感类别的单独效果以及最终的整体效果。表 3 给出了针对主题的分类模型效果对比。表 4 给出了针对几种负面情感,增加了情绪安抚之后,用户满意度的提升效果。关于用户满意度的定义,在后面的章节中还会有专门介绍。表 5 给出了针对感激这种情感,增加了情绪安抚之后,用户满意度的提升效果。



表 3:主题分类效果对比



表 4:负面情绪安抚对用户满意度的效果对比



表 5:感激情感安抚对用户满意度的效果对比



图 11:智能客服系统中的情绪安抚示例


图 11 中给出了智能客服系统中情绪安抚的示例。左图和右图分别展示的是安抚模型上线前和上线后的情况,针对用户情绪的安抚会使得智能客服系统更加类人化。比如,在人工客服的服务记录中,针对用户的负面情绪,都会在返回用户对应业务类答案的同时,同时对用户的情绪进行相应的安抚。即使是针对非业务的纯语聊内容,也会有相应的情绪安抚。


04 情感生成式语聊

1. 情感生成式语聊简介


与检索式对话[20]不同,生成式语聊利用大量成对的问答数据学习怎样去模拟人类对话,并且针对不同话题均可以生成对应的回复,即使是在用于训练模型的人类对话语料中未出现的内容。因此,基于生成式语聊模型,用户能够和机器人完成任何他感兴趣话题内容的对话。


对于对话生成任务而言,近年来领域内最常用的方式是基于循环神经网络(RNN)的 Seq2Seq 模型。该模型最早被应用于机器翻译任务中,后来被引入到对话生成领域,同样取得了不错的效果。在对话生成任务中,用户问题就是原序列,回复内容就是目标序列。在语聊功能中,情感信息在回复中的体现能够明显的增加对话系统的类人性,提升用户体验,例如微软小冰[24]。本文会研究基于 Seq2Seq 的嵌入情感因素的对话生成模型[21,22]在智能客服系统中的应用。


2. 情感生成式语聊模型



图 12:智能客服系统中的情感生成式语聊模型


图 12 中给出了智能客服系统中的情感生成式语聊的模型图。图中,source RNN 起到了编码器的作用,将源序列 s 映射为一个中间语义向量 C ,而 target RNN 作为解码器,则能够根据语义编码 C 以及我们设定的情绪表示 E 和主题表示 T ,解码得到目标序列 y 。此处的 sy ,分别对应图中由词语序列组成的“今天心情很好”和“好开心呀!”两个句子。


通常,为了使解码器能够保留来自编码器的信息,编码器的最后一个状态将作为初始状态传递给解码器。同时,编码器和解码器往往使用不同的 RNN 网络用以捕获问句和回复句不同的表达模式[9]


虽然基于 Seq2Seq 的对话生成模型取得了不错的效果,但是在实际应用中模型很容易生成安全但是无意义的回复。原因在于该模型中的解码器仅仅接收到编码器最后的一个状态输出 C ,这种机制对处理长期依赖效果不佳,因为解码器的状态记忆随着新词的不断生成会逐渐减弱甚至丢失源序列的信息。缓解这个问题的一个有效方式是引入注意力机制[10]



图 13:生成式语聊中的注意力机制


注意力机制采用回溯策略,将当前解码阶段的每个时间步与编码阶段的上下文联系起来,因为源序列中的每个单词对解码过程中的每个时间步都有影响,但是这个影响程度可能不同,有的词对当前时刻解码的词贡献较大,有的则较小。本文中使用的注意力机制模型框图如图 13 所示。


在引入注意力机制的 Seq2Seq 框架中,最后解码器的输出层根据输入预测出单词的概率。训练过程的目标函数与预测过程中的搜索策略与传统 RNN[11]一致,此处不再赘述。


3. 情感生成式语聊模型结果


情绪生成式语聊模型的训练数据构建采用高频问题采集+众包收集+业务专家校正的方式。首先,我们收集一些开放语聊的公开语料库,以及阿里小蜜历史数据中的语聊类用户问题,将其整理合并。在此基础上,我们将所有的用户问题做文本聚类分析,聚类的方法我们采用文章[19]中的模型。在得到聚类结果之后,针对类内样本比较多的高频类簇,我们从每个类簇中抽取一条最具代表性的样本,该样本的抽取也利用文章[19]中提到的方法。之后,针对这些高频类簇的代表性样本,我们发布众包任务,由众包人员撰写这些样本问题对应的合适答案。其中,每个问题会由多名众包人员给出不同回答,以提升答案的多样化。之后,众包回流数据由专业的业务专家进行检查,剔除或者修改不太合理的回答之后,作为最终的知识数据,保存为知识库,供基于知识匹配模型的语聊问答使用。


另外,这套高频问题回流以及答案标注的流程机制,不光可以用于最初的知识数据构建,也在能力上线之后的定期未解决问题数据的回流和补充过程中同样适用。


最终的训练语料数据量为 3.2 万个问答对。另外,针对用户问题的情绪识别和主题识别,我们仍然利用第 2 章中所述模型结构实现,并且根据经验,设定用户情绪与回复情绪之间的多种对应关系。其中,主题表示和情感表示会在模型训练开始前进行随机初始化,最终的表示结果通过模型训练得到。



表 6:生成式语聊模型的效果对比


模型训练完成之后,在真实的用户问题上进行测试,结果由业务专家进行检查,最终的答案合格率约为 72%。另外,回复文本的平均长度为 8.8 个字,非常符合阿里小蜜语聊场景中对回复长度的需求。表 6 中给出了本文模型 AET(Attention-based emotional & topical Seq2Seq model)与传统 Seq2Seq 模型的效果对比。对比主要集中在内容合格率以及回复长度两个方面。添加了情绪信息之后,回复内容较之传统 seq2seq 模型会更为丰富,而符合用研分析的 ‘5-20 字’ 最佳机器人语聊回复长度的内容占比也会大幅增加,最终使得整体的回复合格率提升明显。



图 14:小蜜空间中的情绪生成式语聊应用实例


图 14 中给出了阿里小蜜情绪生成式语聊模型在小蜜空间中的应用示例。图中两个答案均由情绪生成式模型给出,并且,对于用户辱骂机器人太傻的用户输入,我们的模型可以根据设置的对应合理的话题和情绪,产生不同的答案,丰富了答案的多样性,图中两个答案,则是由 ‘委屈’ 和 ‘抱歉’ 两个情绪产生。


05 客服服务质检

1. 客服服务质量问题定义


本文所说的客服服务质检是针对人工客服在和客户对话的过程中可能出现的存在问题的服务内容进行检测,从而更好地发现客服人员在服务过程中存在的问题并协助客服人员进行改进,达到提高客服服务质量,最终提高客户满意度效果。据作者所知,目前还没有公开实现的针对客服系统中客服服务质量检测的人工智能相关算法模型。


与人机对话不同,人工客服和客户的对话并不是一问一答形式,而是客户和客服分别能够连续输入多句文本。我们的目标是检测每一句客服的话术内容是否包含 ‘消极’ 或者 ‘态度差’ 两种服务质量问题。其中,‘消极’ 是指对客户的问题不采取正面回复,而是只以一些无意义的回复敷衍,或者是针对用户的实际问题只以很简单的内容回复,而给不出真正的解决方案。‘态度差’ 是指虽然客服给予客户应有的解决方案或者回复,但是言语中包含了辱骂、讽刺或者其他类型的言语冲突的情况。


2. 客服服务质检模型


为了检测一句客户话术的服务质量,我们需要考虑其上下文内容,包括用户问题和客服话术。我们考虑的特征包括文本长度、说话人角色和文本内容。其中,文本长度和说话人角色按照上下文顺序排列,作为单独特征。针对文本内容,除了利用 SWEM 模型对待检测的当前客服话术进行特征抽取(SWEM 模型在章节 2.2 中已经介绍过,不再赘述),我们还对上下文中的每轮话术进行情绪检测,发现用户情绪类别和客服情绪类别作为模型特征,而此处使用的情绪识别模型也如第 2 章中所述一致,亦不再赘述。此外,我们还考虑了两种结构(图 15 中模型 1 和图 16 中模型 2)对基于上下文内容的文本序列语义特征进行抽取。



图 15:客服服务质检模型 1


其中,模型 1 在对当前客服话术及其上下文每句文本进行基于 GRU 或 LSTM 的编码之后,针对编码结果,考虑利用正向和反向 GRU 或者 LSTM 分别对当前待检测客服话术的上文和下文的编码结果进行再次的序列化编码,如此得到的两个序列化编码结果均是以当前话术为尾句,能够更好的体现当前话术的语义信息。模型结构如图 15 所示。



图 16:客服服务质检模型 2(部分展示)


另外,模型 2 将当前客服话术及其上下文的编码结果,再次按照前后顺序进行整体的正向 GRU 或 LSTM 编码作为最终的语义特征。模型结构的部分展示如图 16 所示。模型 1 与模型 2 相比,模型 1 会更加凸显当前待检测话术的语义信息,而模型 2 则更加多得体现整体上下文的序列化语义信息。


3. 客服服务质检实验结果


为了获取客服服务质检的实验数据,我们分两个步骤进行:


  • 我们收集最近被客户投诉的服务会话记录,由业务专家负责从中识别消极或者态度差的服务轮次。最终,1,202 个消极服务和 125 个态度差的服务被人工检测到。这部分数据会被用于训练一个初版质检模型;

  • 利用该初版模型,我们进一步地从大量原始人工客服语料中检测含有质量问题的服务记录,并且之后由业务专家对这些模型检测结果进行审核,判定结果是否准确。这种对模型结果进行审核的方式,要比直接从对话记录里进行人工检测的方式,大大降低了工作量,适合于标注大量语料。最终,综合第二步的人工审核结果和第一步的人工检测结果,我们一共获取到了 33,353 条消极数据以及 12,501 条态度差的数据。此外,通过第二步中的审核结果,判定初版质检模型的识别准确率为 0.43。



表 7:质检模型两种上下文语义抽取方式对比


接下来,我们利用最终版的训练数据进行实验。首先,我们比较两种上下文语义信息抽取模型的效果,表 7 中给出了对比结果,结果显示模型 1 的效果要优于模型 2,可见对于当前待检测话术的语义信息确实需要给予更多的权重,而上下文的语义信息可以起到辅助识别的作用。此外,之前提到的 GRU 或者 LSTM 两种方法在实际的模型训练过程中,效果差别不大,但是 GRU 方法要比 LSTM 方法在速度上更快一些,因此所有的模型实验过程中均使用了 GRU 方法。



表 8:实际系统层面的模型指标评价结果


此外,区别于模型层面的指标分析,我们针对模型在实际的系统层面的指标也进行了相应的分析,包括了质检效率以及召回率两个维度。这两个指标,我们是以模型的结果与之前纯人工质检的结果进行对比得到。如表 8 中所示,不管是质检效率还是质检的召回率都得到了非常大的提升。其中,人工质检的召回率比较低的原因,是因为人工不可能检测所有的客服服务记录。


06 会话满意度预估

1. 会话满意度


目前在智能客服系统的性能评估指标中,有一项最为重要的指标为用户会话满意度。而针对智能客服系统中的用户会话满意度自动预估的工作,据作者所知还没有相关的研究成果。


与其他类型的机器人相似,智能客服机器人也会使用单轮对话的准确率做为衡量机器人性能的指标。然后,在智能客服机器人中,我们同时设定了一种重要的性能评价指标–会话满意度。实际上,平均每天会有大约 1500 到 2000 个会话由真实的用户反馈满意度情况。满意度会被分为三个等级:满意、一般和不满意,我们将标注为满意的会话比例做为最终的会话满意度结果。


由于每天满意度反馈数据量较小,会话满意度结果会有一定幅度震荡,误差会比较大,另外,基于用户反馈的方式无法对全量会话数据进行分析。为了解决此问题,我们使用模型来预测会话满意度,使满意度曲线更加平滑反应整体满意度变化,而且可以使用模型对全量数据进行预测,将不满意度高的会话进行重点分析,从而使系统会话满意度得到提升。


针对智能客服系统中的会话满意度预估场景,我们提出了会话满意度分析模型,可以更好的反应当前用户对智能客服的满意度程度。由于不同用户存在评价标准差异,会存在大量会话内容、会话答案来源、会话情绪信息完全相同的情况下情绪类别不一致的情况。因此我们采用了两种模型训练方式:第一种是训练模型拟合情绪类别(满意、一般、不满意)的分类模型,另一种是训练模型拟合会话情绪分布的回归模型,最后对两种方式效果做了对比。


2. 会话满意度特征选取


会话满意度模型考虑了各种维度信息:语义信息(用户话术)、情绪信息(通过情感检测模型获取)、答案来源信息(回复当前话术的答案来源)。


语义信息是用户与智能客服交流过程中所表达的内容信息,它可以从用户话术中较好反应用户当前满意状况。我们在模型中使用的语义信息是指会话中的多轮话术信息,在模型处理过程中,为了保证每次模型能够处理相同轮次的话术,我们实验中只使用会话中最后 4 句用户话术,选择此种方式的原因是通过会话数据分析,用户在会话即将结束时的语义信息与整体会话满意程度更为相关。比如,用户在会话结尾时表达感激之类的话术基本表示满意,而表达批评之类的话术则很可能表示了对服务的不满。


情绪信息一般在用户满意度方面起着非常大的参考作用,当用户出现愤怒、辱骂等极端情绪时,用户反馈不满意的概率会极大。此处的情绪信息与语义信息中的话术一一对应,对选取的几轮话术分别进行情绪识别,获取对应的情绪类别信息。


答案来源信息可以很好的反应用户遇到何种问题,由于不同的答案来源代表着不同业务场景,不同场景问题产生的用户满意度状况差异性比较明显。比如,投诉、维权类会比咨询类更容易导致用户不满意。


3. 会话满意度模型


在本文中,我们提出了结合语义信息特征、情绪信息特征和答案来源信息特征的会话满意度预估模型。模型充分考虑了会话中的语义信息,并且使用了数据压缩的方式将情绪信息和答案来源信息进行了充分表达。模型结构如图 17 所示。



图 17:智能客服系统中的用户会话满意度预估模型


语义特征抽取。语义信息抽取方式使用层次 GRU/LSTM,第一层获取每句话的句子表示(图 17 中 first layer GRU/LSTM 部分),第二层根据第一层句子表示结果获得多轮用户话术的高阶表示(图 17 中 second layer GRU/LSTM 部分),此处充分利用了用户话术的序列信息。除此之外,还将获取最后一句话的 SWEM 句子特征,以增强最后一句话术语义特征的影响。


情绪特征抽取:由于获取的情绪特征是 one-hot 类型,而 one-hot 缺点比较明显,数据稀疏且无法表示情绪间直接关系。此处我们学习一个情绪 embedding,来更好的表达情绪特征。


答案来源特征抽取:初始答案来源特征同样为 one-hot 特征,但由于答案的来源有 50 多种,导致数据非常稀疏,因此需要进行特征压缩,此处同样使用了 embedding 学习方式,来表示答案来源特征。


模型预测层:分别尝试了满意度类别预测和满意度分布预测,前者预测属于分类模型,后者属于回归模型。


4. 会话满意度预估实验结果


我们选择 2019 年 1 月 1 日到 3 月 31 日共 181,828 个经过用户反馈过的会话做为训练数据。154675 个会话做为训练集,27120 个会话做为验证集。在训练完模型之后的真实预测过程中,我们选择 2019 年 4 月 1 日到 2019 年 4 月 10 日共 10 天的数据,每天随机抽取 10 万,共 100 万通实际的会话数据进行满意度预估,并与用户反馈小数据量评估结果做对比。


实验结果如图 18 中所示:



图 18:用户会话满意度预估结果比较


从实验结果来看分类模型满意度预估效果较差,平均比实际用户反馈高了 4 个百分点以上,回归模型可以很好的拟合用户反馈结果,而且减小了小样本结果的震荡,符合预期。如表 9 中所示,回归模型的均值与用户真实反馈的结果的差值仅为 0.007,而方差则比之前减小了三分之一,证明了回归模型的有效性。



表 9:用户会话满意度预估结果比较


07 智能人工入口

1. 智能人工入口问题定义


如本文第 6 章所述,在目前智能客服系统的性能评估指标中,用户会话满意度是其中一项较为重要的指标。该指标会被分为三个等级:满意、一般和不满意。其中不满意的原因又会被划分为: 答案看不懂,系统答非所问,找不到淘宝平台人工客服,答案方法不可行和其他等更细粒度的原因。通过用户反馈和数据分析,我们发现其中因为找不到淘宝平台人工客服而导致的不满意量约占整体的不满意度 30%。另外,如答案看不懂和答案方法不可行等情况,也有希望通过跳转到人工客服的方式,帮用户解决问题,提升用户体验,从而降低用户的会话不满意度。


实际上,消费者在接受机器人服务的过程中,已经能够利用指令的方式跳转到人工客服。除了这个方式外,智能客服系统还内置了智能人工入口产品功能:当系统识别到用户的情绪异常,或者预估会话不满意度较低,或者用户的问题过于复杂(机器人没有解决能力)等情况下,会自动曝光人工入口点击链接。通过这样的方式,以期提升用户体验,提升会话满意度和问题解决率。


在用户转人工的时候,除了需要考虑用户侧的信息,如不满意度和问题复杂性等,我们同时也需要考虑后端人工客服的人力情况,如目前的进线量和排队量等。由于人工客服人力情况一般有限,而长时间的排队等待也有可能造成用户的不满意。实际我们的智能人工入口产品会包含两个模块:用户排序和进线决策。其中第一个模块会预估当前用户转人工的概率(该概率会被用来对用户转人工的重要性进行排序);第二个模块结合用户转人工概率和客服人力情况进行转人工控制。在本文中,我们会重点介绍跟用户情绪和会话满意度相关的用户排序模块。


2. 用户排序模块特征选取


在用户排序模块中,我们选取了两大类的信息作为模型输入:当前会话信息和历史统计信息。


在当前会话信息中,我们会综合考虑用户的会话文本,用户意图,问题对应的知识点,用户等级,答案类型,进线来源以及进线技能组等。如第 6 章所述,用户的会话信息可以较好反应用户当前满意状况,比如,用户在会话过程中出现愤怒、辱骂等相关话术则表达了对服务的不满。跟会话满意度分析模型不一样的是,在智能人工入口产品中,需要根据用户的每次单轮会话情况,实时预估用户当前的转人工可能性。因此对于用户的每一个会话,都需要使用用户当前会话的前 N 个会话(如 N=4)作为模型的输入,而非仅仅使用会话结束前 4 句话。基于类似原因,我们将当前的会话轮次和会话时长也作为模型的输入特征。


除了考虑用户当前的会话情况,我们也对用户的历史会话情况进行了统计,并将相关的统计信息作为用户排序模型的输入。这部分统计特征包括用户历史转人工进线率和用户历史会话不满意度等。在统计历史数据的时候,我们考虑不同的时间窗口,分别统计了最近 90 天,60 天和 30 天的特征。除了以用户维度进行统计,我们也抽取了知识点(即用户问题命中的知识点)维度的统计信息作为模型的输入,如知识点的平均不满意度。通过数据分析,我们发现不同的知识点其用户满意度情况差异性比较明显。


3. 用户排序模型


在本文中,我们提出了结合当前会话信息特征和历史统计信息特征的用户排序模型。考虑到模型的特征输入既有连续型特征(如历史的统计量)和离散型特征(如类别 ID 特征和文本序列特征),我们基于 DeepFM[17]和 XNN[18],提出了一个层次化 DeepFM 模型,如图 19 和 20 所示。



图 19:智能客服系统中的智能人工入口用户排序模块



图 20:基于 DeepFM 的 DialogueEncoder


本文模型的基础模块是基于 DeepFM 的 DialogueEncoder(如图 20 所示)。该模块对每一单轮会话信息进行编码,得到一个稠密向量。DialogueEncoder 的输入包含当前用户的会话文本,用户意图,答案类型以及其他统计信息等。对于会话文本,可以选用 CNN 或者 RNN,也可以采用简单的平均值池化/最大值池化或者自注意力机制,对句子进行编码得到句子向量。经过实验对比,我们发现自注意力机制效率和效果较好。


基于每轮会话信息的稠密向量,我们使用 SessionEncoder 对会话序列进行编码得到当前会话序列的稠密向量,该向量经过一个逻辑回归模型输出用户不满意的概率。SessionEncoder 同样采用自注意力机制。当前会话序列的稠密向量经过另外一个 SessionEncoder 输出用户转人工的点击概率。我们最终取两个概率的乘积作为用户转人工重要性排序的分数。目前,我们还在探索融合用户问题的有效性(有效性定义为机器人对用户问题无解答能力)以及用户人工端满意度等其他多个指标的综合排序方式。


4. 离线实验效果和线上业务效果


我们抽样了 3 个月的用户满意度反馈数据以及 1 周的用户转人工点击日志数据进行离线对比实验。以逻辑回归作为基线模型(在采用层次化的 DeepFM 模型之前,智能人工入口采用的是逻辑回归模型。),实验对比效果如表 10 和表 11 所示。相比于逻辑回归,层次化 DeepFM 效果有一定的提升,尤其是点击率模型。



表 10:使用会话特征



表 11:使用会话特征和用户历史统计特征


我们对产品功能也进行了线上 ABTest,其中对照组使用逻辑回归模型,实验组使用本文提出的层次化 DeepFM 模型。整体上,不满意度下降 1%,转人工点击率提升 15%。


08 总结与展望

本文总结了目前智能客服系统中情感分析能力的一些实际应用场景以及相应的模型介绍和效果展示。虽然情感分析能力已经渗透到了智能客服系统人机对话过程的各个环节中,但是目前也只能算是一个良好尝试的开始,其在智能客服系统的类人能力构建进程中还需要发挥更大的作用。


未来工作中,我们会根据智能客服系统的业务发展,在多语言的情感分析能力上面做更多的探索,尤其是针对印尼语、越南语等语料比较难收集的小语种上,会利用迁移学习等技术做更好的技术提升。另外,基于情感分析的舆情监控也是目前正在开展并且在持续做提升的应用场景。此外,基于用户的情感分析提升智能客服系统中智能导购体验的工作也在构思中。


致谢


感谢仲直团队、重修团队在智能客服系统情感分析工作中的合作支持和相关思路讨论。感谢弄月、宰梦、海同、唐仇等团队在数据标注和结果评价等过程中给予的大力支持!


今天的分享就到这里,谢谢大家。


参考文献


[1] Okuda T, Shoda S. AI-based Chatbot Service for Financial Industry [J]. Fujitsu Scientific and Technical Journal, 2018, 54(2): 4-8.


[2] Zhu X. Case II (Part A): JIMI’s Growth Path: Artificial Intelligence Has Redefined the Customer Service of JD.com [M]. In Emerging Champions in the Digital Economy. Springer, Singapore, 2019: 91-103.


[3] Li F-L, Qiu M, Chen H, et al. AliMe assist: an intelligent assistant for creating an innovative e-commerce experience [C]. In Proceedings of the ACM on Conference on Information and Knowledge Management, 2017: 2495-2498.


[4] Shen D, Wang G, Wang W, et al. Baseline needs more love: On simple word-embedding-based models and associated pooling mechanisms [C]. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, 2018: 440-450.


[5] Zeng D, Liu K, Chen, Y., et al. (2015). Distant supervision for relation extraction via piecewise convolutional neural networks [C]. In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, 2015: 1753-1762.


[6] Wang G, Li C, Wang W, et al. Joint Embedding of Words and Labels for Text Classification [C]. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, 2018: 2321–2331.


[7] Pang L, Lan Y, Guo J, et al. Text Matching as Image Recognition [C]. In Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence, 2016: 2793-2799.


[8] Yin W, Schütze H, Xiang B, et al. Abcnn: Attention-based convolutional neural network for modeling sentence pairs [J]. Transactions of the Association for Computational Linguistics, 2016(4): 259-272.


[9] Young T, Cambria E, Chaturvedi I, et al. Augmenting end-to-end dialogue systems with commonsense knowledge [C]. In Proceedings of the Thirty-Second AAAI Conference on Artificial Intelligence, 2018: 4970-4977.


[10] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate [C]. In 3rd International Conference on Learning Representations, 2015: .


[11] Zaremba W, Sutskever I, Vinyals O. Recurrent neural network regularization [C]. In 3rd International Conference on Learning Representations, 2015.


[12] 庞亮, 兰艳艳, 徐君,等. 深度文本匹配综述[J]. 计算机学报, 2017, 40(4):985-1003.


[13] Hu B, Lu Z, Li H, et al. Convolutional neural network architectures for matching natural language sentences [C]. In Advances in neural information processing systems, 2014: 2042-2050.


[14] Lu Z, Li H. A deep architecture for matching short texts [C]. In Advances in Neural Information Processing Systems, 2013: 1367-1375.


[15] Qiu X, Huang X. Convolutional neural tensor network architecture for community-based question answering [C]. In Twenty-Fourth International Joint Conference on Artificial Intelligence, 2015: 1305-1311.


[16] McCandless M, Hatcher E, Gospodnetic O. Lucene in action: covers Apache Lucene 3.0 [M]. Manning Publications Co.2010.


[17] Guo H, Tang R, Yey Y, et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction [C]. In 26th International Joint Conference on Artificial Intelligence, 2017: 1725-1731.


[18] Chen C, tensorflow-XNN [EB]. 2018. https://github.com/ChenglongChen/tensorflow-XNN.


[19] Song S, Meng Y, Shi Z, et al. A simple yet effective method for summarizing microblogging users with their representative tweets [C]. In 2017 International Conference on Asian Language Processing, 2017: 310-313.


[20] Yu J, Qiu M, Jiang J, et al. Modelling domain relationships for transfer learning on retrieval-based question answering systems in e-commerce [C]. In Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, 2018: 682-690.


[21] Zhou H, Huang M, Zhang T, et al. Emotional chatting machine: Emotional conversation generation with internal and external memory [C]. In Thirty-Second AAAI Conference on Artificial Intelligence, 2018: 730-738.


[22] Li J, Galley M, Brockett C, et al. A personabased neural conversation model [C]. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics, 2016: 994–1003.


[23] Wang Y, Huang, M, Zhao L. Attention-based LSTM for aspect-level sentiment classification [C]. In Proceedings of the 2016 conference on empirical methods in natural language processing, 2016: 606-615.


[24] Zhou L, Gao J, Li D, et al. The Design and Implementation of XiaoIce, an Empathetic Social Chatbot [R], 2018, arXiv preprint arXiv:1812. 08989.


作者介绍


宋双永


阿里巴巴达摩院算法专家


宋双永(乐羽),阿里巴巴达摩院算法专家,店小蜜问答算法 TL。主要研究方向包括智能问答、情感分析、开放性语聊等,研究成果已发表包括 AAAI、WWW、ISWC、WSDM、TSMC 等会议期刊在内的 30 余篇学术文章,并申请多篇专利。


联系方式:


shuangyong.ssy@alibaba-inc.com


其他作者


王超,阿里花名王栩,资深算法工程师


陈成龙,阿里花名谌龙,算法专家


本文来自 DataFunTalk


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247501029&idx=1&sn=3aacfe3c31ea528d07ddb829b76ed575&chksm=fbd77689cca0ff9f230a78409b00380a455f147de4df19d49401c9a3d3409d81aebf3b261f95&scene=27#wechat_redirect


2020-06-03 10:052492

评论

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

关于链表的一二三事

阿零

学习 链表 数据结构与算法

一次搞明白 Docker 容器资源限制

Java架构师迁哥

架构设计篇之微服务实战笔记(二)

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作 架构师成长笔记

阿里+腾讯+字节+滴滴+美团java面试题及答案(2021版)1353道题全部开源

Java架构追梦

Java 面试 架构师 金三银四

DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图

跳蚤

使用动词的力量

将军-技术演讲力教练

Alibaba面试:Java三面凉凉!输在了:微服务,Redis,JVM

Java架构之路

Java 程序员 架构 面试 编程语言

一个无名之辈与罗永浩的故事

ES_her0

28天写作

架构13周

FreeOcean

数据应用一

raox

山东“互联网+”,组织部智慧党建解决方案

源中瑞-龙先生

三分钟扫盲:进程与线程基础必知

飞天小牛肉

Java 面试 后端 操作系统 2月春节不断更

五分钟扫盲:进程与线程基础必知

架构 线程’

2021全网最全总结美团/阿里/百度等大厂面试真题

比伯

Java 编程 架构 面试 程序人生

955,远程办公,这家公司就在厦门/杭州

夏兮。

远程办公 955 海景 福利好

人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式

刘悦的技术博客

Python 递归 逆向思维 推理 尾递归

全网最详细的负载均衡原理图解

鞋子特大号

Linux 负载均衡 系统开发

1353道,阿里+腾讯+字节+滴滴+美团java面试题及答案(2021版)

Java架构师迁哥

日记 2021年2月21日(周日)

Changing Lin

2月春节不断更

一经推出就惨遭GitHub哄抢!什么SQL优化笔记如此出众?

Java架构之路

Java 程序员 架构 面试 语言

深入了解红黑树

跳蚤

科普篇:交智商税的商品

石云升

28天写作 2月春节不断更 智商税

2021Java面试必备!啃透这份Java10W字面经,你还用担心被面试官“吊打”?

程序员 架构 面试

2021 - iOS金三银四最新面试技能方向分享

iOSer

ios 面试 技术技能树 程序猿 金三银四

区块链+数字版权-区块链存证解决方案

13530558032

智慧平安社区建设解决方案,社区平安建设

13530558032

膜拜!首次公布Java10W字面经,Github访问量破百万

996小迁

Java 编程 程序员 架构 面试

入职没见过P8领导,3月后他带着份769页虚拟机笔记出关了

Java架构之路

Java 程序员 架构 面试 编程语言

情感分析算法在阿里小蜜的应用实践_AI_DataFunTalk_InfoQ精选文章