Customer Satisfaction Estimation in Contact Center Calls Based on a Hierarchical Multi-Task Model
Atsushi Ando , Ryo Masumura, Hosana Kamiyama, Satoshi Kobashikawa, Yushi Aono, and Tomoki Toda
关于文章
IEEE/ACM TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, VOL. 28, 2020 TABLE
应用场景和Idea
本篇文章的场景为电话客服中心,任务是根据电话通话内容估计顾客满意度。在传统的客户满意度预测任务中,主要要两种方法:turn-level和call-level,turn-level是基于每一个客户说话的片段来估计的,往往将各个片段孤立开来,但是call-level是基于整个电话的过程,不仅包括了顾客的片段,也包括了接电话以及背景渠道等,是一种基于全局特征的估计。作者想用多任务学习的方法,同时考虑两个层面的信息,把turn-level的预测结果应用到call-level,然后同时优化两个任务参数。
这样用多任务结构的好处在于,既有粗粒度的整体分布信息,可以体现整个长序列的分布,也包含了细粒度的局部信息,帮助提升估计精度,在时间刻度上的对齐和相互作用可以学到call-level和turn-level之间的关系。
两个任务都是three-class分类任务:positive(satisfied, happy and excited), neutral(inarticulate positive/negative state- ments and neutral emotion), negative(dissatisfied, disappointed, frustrated and angry)
这三种满意度的对象是产品或者客服人员。
假设
call-level和turn-level的CS标签都是可获取的。
Task1: call-level customer satisfaction estimation
因为是基于整个通话内容进行估计,所以需要对整个序列进行分析和特征提取,在turn-level的估计结果也可以作为附加信息帮助call-level的任务。
Task2: turn-level customer satisfaction estimation
目标是基于turn本身、相邻turns以及backchannels(反馈)估计每一个单独的turn的情绪。
两种情况:
Online: 基于当前片段和之前的片段估计;Batch:基于整个序列的所有片段估计。Online应用范围更广,比如实时监控,但同时也更难训练,因为从agent和customer得到信息更少。
模型结构、损失函数
首先需要提取上下文信息特征,两个任务都是用LSTM-RNNs提取特征,turn-level的估计值直接用于call-level的任务,与此同时,两个任务是同时进行优化的,这样可以得到两种层次之间的关系。使用多任务结构的好处在于可以减少模型的参数,同时两种层次的任务同时进行可以实现互补和相互提升。
首先将turn-level的特征序列输入到LSTM网络,这个LSTM是双向的,得到的hiden state是基于全局信息,得到turn-level的hiden state表示,然后根据hiden state对每一个turn进行估计,得到N个后验概率;下一层是一个batch的LSTM,每一个time step也要将上一级网络得到的后验概率和当前以及过去的turn-level feature作为输入,得到一个call-level的hidden state,再做softmax得到分类概率。
损失函数(1):
L ( θ ( t ) , θ ( c ) ) = α L t ( θ ( t ) ) + ( 1 −