导读:本期是全网最全【资源调度】系列推文的第2期(共50期左右)。上期我们在《何为调度?》中,对调度的定义与作用、计划与调度的关系、调度问题的拆解做了详细介绍。从本期开始,我们选择【客服调度】场景作为【资源调度】问题的具象化代表,为大家展开后续一系列推文。本期将为大家详细介绍 【客服调度】的业务背景、问题抽象、技术路径和解决方案等内容。
作者2:向杜兵,某制造业龙头算法专家
大家好!我们是IndustryOR团队,致力于分享业界落地的OR+AI技术。欢迎关注微信公众号/知乎/CSDN【运筹匠心】。
诚邀大家 【加入粉丝群】,群里经常分享硬核内容,且大佬多多,说不定你未来的leader就在其中!【加群方式附在文章结尾】~~
本篇文章共分为5个部分,依次为:
01 业务背景
02 问题抽象
03 技术路径
04 解决方案
05 小结
01 业务背景
当今的企业普遍面临客户服务的挑战,特别是在高度竞争和不断变化的市场环境下。为了提供卓越的客户体验和满意度,有效的客服调度成为关键。随着业务规模的由小到大,客服调度技术也随之由易到难。对于一些超大型toC企业,可以说客服调度技术的成熟与否直接影响了其业务发展,甚至决定企业的生死存亡。
02 问题抽象
1)问题描述
在客服调度场景中,一个客户的需求从产生到满足的业务流程可被拆解为以下4步:
- 请求发起:客户通过电话咨询、工单填报等方式向调度系统发出请求,希望自身的某些需求能被满足。
- 调度决策:调度系统或通过人工、或通过规则、或通过算法为客户请求分配最合适的客服人员。
- 需求履约:客服人员为客户提供服务,直至用户需求被满足。
- 用户反馈:客户对客服的服务进行评价反馈。
由于客户请求随时随地都有可能产生,因此客服调度场景的业务流程就是在时间上连续且并行的重复这个过程。
2)调度本质
我们在《何为调度?》的中已经为【资源调度】问题的本质做出了定义,即:调度问题的本质就是求解供给和需求在时空上的最优匹配,【客服调度】问题也是如此。
-
供给方面:客服调度场景中的供给通常是指提供服务的人,如:接线员、售后专家、家政阿姨、机场地勤等服务人员。客服人员通常具备用户需要的一些职业技能,以便解决客户需求的问题,同时同一行业不同经验的人往往具有不同的技能熟练度。
-
需求方面:客服调度场景中的需求一般指是用户的需求,通常以任务的形式出现,如:接线任务、售后任务、保洁任务、地勤任务等。任务通常具有任务类型、最早/最晚开始(结束)时刻、任务时长等属性,需要具有匹配技能的人去执行。
-
匹配方面:客服调度一般是指人去完成任务,即服务客户。线上场景的业务重点关注人和任务在时间上的最优匹配,如:接线、售后咨询等场景;线上场景的业务需同时关注人和任务在时间和空间上的最优匹配,如:上门保洁、地勤保障等场景。
3)调度目标
最优匹配是定性的概念,需要调度目标的方式定量表示。场景不同,调度目标也有很大不同,我们可以将调度目标归纳为以下5类:
- (系统)成本型指标:周期内(年/月/周/日),最少用工人数、最少资源消耗等;
- (系统)效率型指标:周期内(年/月/周/日),最大工时利用率、最短完工时间、最大服务任务数、最快响应时间、最快服务时间等;
- (客户)体验型指标:周期内(年/月/周/日),最高客户满意度、最少投诉率等;
- (客服)公平型指标:周期内(年/月/周/日),服务时长公平、休息天数公平、早晚班公平、服务任务数公平、服务任务难度公平、薪资水平公平等;
- (系统)安全型指标:周期内(年/月/周/日),最高系统可用率、最低系统故障率等(这一部分属于调度系统稳健性方面的内容,与调度算法关系不大);
小到几乎所有的调度问题,大到整个社会的治理问题,都是紧紧围绕 “如何平衡成本、效率、体验、公平、安全等多目标之间的关系” 而展开的。
4)调度规则
调度需要在一定的业务规则下进行。与调度目标类似,尽管不同场景下的调度规则千差万别,但我们也可以将其归纳为以下4类:
- 数值类规则:周期内(年/月/周/日),在岗时长上下限、服务时长/任务数上下限、休息天数上下限、特种任务服务时长/次数上下限等
- 时间类规则:用餐时间窗、间休时间窗、请假日等
- 空间类规则:任务间地点衔接、人与任务地点匹配、人随任务空间位移相关要求等
- 技能类规则:
- 匹配类规则:人与任务之间的技能匹配,即具备某些技能的人才能服务特定的任务。
- 搭配类规则:人与人之间的技能搭配,即服务某些特定任务需要不同技能的人相互配合。
03 技术路线
实际生产中的客户调度问题通常属于NP-Hard问题,其需求(甚至是供给)一般呈现强随机性特征,其核心的矛盾是:问题的复杂性与调度的实时性之间的矛盾,其落地技术大致需要经历以下迭代过程:
- 业务初期:这个阶段业务刚开始起步试点,业务规模小且复杂程度低,粗放式管理即可满足当时的发展需求,最紧迫的任务是基于人工规则实现业务的自动化运转,在此之上能有些许的OR技术应用即可。
- 业务发展期:随着业务的扩张,业务精细化管理的需求逐渐显露出来,OR相关的技术和人员储备也跟了上来。此时,便是传统OR技术大显身手的时候。但这个时期由于信息化、数字化基建设施尚未建设完成,导致数据积累不足,还无法采用数据驱动的方法解决问题。
- 业务成熟期:随着业务数据的不断积累以及数据治理能力的不断提升,业务被海量的数据精准量化,数据驱动的智能决策技术开始逐步应用,该阶段会融合OR、ML、DL、RL等各类算法技术解决该问题。
因此,我们【客服调度】系列推文的内容也将围绕上图的技术路径展开,力争还原整个技术路径的发展。
04 解决方案
1)方案设计
由于没有真实业务场景,且人手有限,因此整个解决方案不会以还原线上系统为目标,而是紧紧围绕我们最关注的调度算法展开。除了讲解最核心的调度算法外,我们还将讲解调度衍生问题、指标检验系统以及仿真系统等内容,方案图如下:
下面分模块介绍一下各模块及其之间的关系:
- 仿真系统模块:
- 数据仿真模块:主要负责生成历史数据和实时数据,历史数据用于调度算法迭代测试,实时数据用于模拟真实调度场景,为调度仿真提供输入。
- 调度仿真模块:只进行数据仿真,不进行物理世界仿真(成本太高,也没必要)。模拟真实调度场景,调度算法运行在仿真系统中,以便于对比不同版本算法间的效果。
- 调度算法模块
- 静态问题求解算法模块:这是整个调度算法模块中最重要的部分。尽管从整体上看,调度问题是实时的动态问题,但从局部上看(每一个调度决策的时间段内),调度问题是静态的,也就是说求解动态的实时调度问题可以看成是一连串静态调度问题的序列决策过程,上个时间段的调度决策执行结果是下个时间段调度决策的输入,即整个调度决策过程可以看做是 马尔可夫决策过程(Markov Decision Process, MDP) 。因此静态问题求解算法效果好坏对线上实时调度的效果影响很大。该模块的作用主要就是指导实时调度算法设计,使其不断逼近最优调度。
- 实时调度算法模块:该算法是真正在线上发挥作用的算法,其算法形态与静态问题求解算法相同。与静态问题求解算法更偏重于求解质量不同,实时调度算法更关注求解质量与求解效率之间的平衡。
- 指标检验模块:该模块属于调度算法的外围模块,主要用于算法上线前业务指标和技术指标的检验。
- 衍生问题模块:该模块包含的问题主要是调度算法依赖的上游问题,如:需求预测问题、资源规划问题、人员排班问题等。
2)推进节奏
为了便于读者理解,我们对各模块的内容进行的适当的编排,按照由浅入深、由易到难的建设节奏有序推进,详情如下:
05 小结
上篇(何为调度?):我们对调度的定义与作用、计划与调度的关系、调度问题的拆解做了详细介绍,使大家对【资源调度】问题有了一个整体的认识。
本篇(如何解决资源调度问题?):我们选择【客服调度】场景作为【资源调度】问题的具象化代表,为大家详细介绍了该问题的 业务背景、问题抽象、技术路径和解决方案等内容。
下篇(问题领域建模):我们将对【客服调度】进行领域建模,为后续的数据仿真的算法建设奠定基础。敬请期待~~~
06 加群方式
请加管理员微信进群:IndustryOR