“大数据”这个词,是现在谈及客户中心发展一定会被提到的,包括业务上的应用和运营管理上的应用。正好最近在说客户中心人力资源管理的话题,那就说说我对这个话题中关于大数据应用的思考。之所以只是思考,是因为我还没有像思考中描述的那样实践过。

500531985_wx.jpg

  一、客户中心人员管理中的业务场景

  作为客户中心的团队管理老手,看过一份简历经过一次面试,一定会很有感觉地说合适还是不合适。在阅人无数之后,他们有了一些基本的判断逻辑,基于学历、专业、年龄、性别、工作经历,以及通过交流隐隐约约展示出来的性格。可是,当需要把丰富经验传递给其他人时,把这些感觉像规则一样描述出来,却非常的困难,通常是“如果…那么…,还要看…,有时候…”,会补充很多特别的说明。

  作为客户中心的团队管理老手,看了一些员工的指标表现,也会很有感觉地说这个人有没有问题,有没有离职倾向。指标看多了,在加上业内也有数据化管理专家,所以实际应用也挺好。可是,有没有遇到这样的情况,对着Excel表看指标,发现异常数据是某些特殊情况导致的,所以要把数据拆了又拆,分成很细的类来看,然后发现真的是异常或者其实不是异常。这个过程会比较长,于是都期望有一个能维度细分、汇总能随心所欲拖动的智能报表。

  其实,这背后都隐含着一个同样的问题:平时我们很擅长于用各种图表、集中离散趋势指标,来看单一维度的数据,但是一旦维度变多了,怎么去衡量就变得复杂了。比如,如果把年龄、学历、性别放在一起,综合后维度变成什么了?谁也说不上来,只能分开一条一条、一步一步地说。

  这个问题衍生出来的问题是,涉及那么多的维度,每次判断都是经过那么复杂的一条一条、一步一步地执行下来的吗?当员工甲教了员工乙这样的判断经验之后,乙在自己判断的时候,也和甲的判断过程一样吗?不知道。

  大数据的应用,可能可以改善一下这个问题。因为大数据分析就是应用在这些多维数据甚至是高维数据的场合,通过分类、聚类、离群的方法,得到多维属性综合表现出来的相似或不相似。对于大数据的作用,我还是喜欢用“改善”,不太可能真的是“解决”。

  二、简单介绍一下大数据方法相关的概念。

  属性。指一个数据字段,表示数据对象的一个特征。在一般情况下,属性、维度、特征、变量这些词,都可以表示同一个意思。特别的,在数据分类中表示数据对象所属分类的属性,也称为类标。比如在员工信息数据中,姓名、工号、年龄、性别、司龄、班组、技能等字段都是属性,或者维度。考核是否合格字段(是/否),也是一个维度。当数据分析希望预测某一个员工考核是否合格时,这个维度也称为类标。

  数据集。这个用不多解释,就是一条条的数据。比如1000个员工的信息,就是一个数据集。用来训练模型的称为训练集,用来检验模型准确率的称为检验集。通常训练集和检验集独立。

  相似性。通俗的理解,就是两个数据像不像,能不能归为同一类。单维度数据的相似,就是相等或者数值接近;多维度的相似,通常用距离、密度、概率等来衡量。为简化表述,下面都用距离来说。举个例子,观察A、B、C员工的10个属性,其中A、B员工有9个属性相同,A、C员工有7个相同,则可以说A、B离得近,A、C离得远。

  数据分类。指将数据按预先定义好的类标进行分类。数据分类包括两个阶段,第一步是学习阶段,构建分类模型,第二步是分类阶段,使用分类模型进行类标预测。分类的特征是把数据分成哪几类是已知的,也称为有监督学习。需要提醒的是,用构建的分类模型将训练集重新分类后,产生的新类标可能和数据的原始类标不一致。这就是大数据分类模型的准确率导致的,不可避免。比如通过历史员工属性和表现,预测某个新员工的表现。

  数据聚类。指将数据对象划分成若干个内部对象相似的子集,每个子集通常称为簇。与分类方法不同的是,数据没有事先已知的类标,也称为无监督学习。一个数据集会被分成几类也是未知的,有可能两个,有可能二十个,所以聚类可能会发现事先未知的群组。比如一共1000个员工,就想看看他们能分成几个簇,但不预设簇类型。

  离群点检测。指发现行为表现很不同于其他数据的过程,也就是发现异常点。离群点检测和数据聚类高度相关。和现在常见的单维度数据离散分析不同,大数据的离群点检测是综合了多个维度之后的结果。比如,在考虑了员工班次、司龄、业务条线、通话时长、小休率、话后整理等多方面因素后,发现数据可以被分成了几个簇,但某些特别的数据远离这些簇,就是离群点(异常)。

  三、大数据在人力资源管理上几个可能的应用机会

  1、先看看在招聘阶段用大数据分析方法的机会。

  招聘的目的是为了找到合适的潜在员工,将员工分为合适、不合适两类,如果再分细一点,可能有优秀、良好、合格之类的划分。对照前面所讲的大数据方法,可以判断这是一个数据分类方法。

  具体怎么数据分类,分下面三个步骤:

  1)我们手上要有一个数据训练集,每一个员工就是一个数据对象。数据中包含了员工的各种属性,还要有这些员工入职后的表现分类——暂且假设为“合适”和“不合适”两类。至于要包含那些属性,我认为取决于两个因素:属性值是否能获取到,属性和表现分类有没有关系。表现分类,就是已知的类标,是人为标注的。

  在这个过程中,属性的选择非常重要。可以多选一些相关的,因为不用先担心为什么(因果关系),大数据出的是相关关系。但是也不是越多越好,有些属性之间本就有相关性,多取也无益。属性太多最直接的影响是收集困难、训练算法时间长,更糟糕的是可能会影响模型准确率(比如简单贝叶斯方法有效的前提是属性间相互独立)。

  2)选择一种分类方法,比如决策树、统计学方法(比如贝叶斯)、神经网络(比如后向传播分类),训练出一个模型。每一种方法在实际执行的时候,就需要技术专家了。

  具体方法有好多,某一方法里面还有不同的算法,挺复杂的。因为没有实践过,所以现在我也不知道哪个更好。检验模型好不好,除了看训练集中被错误分类的数量,更重要的是另准备一个检验集来检验。

  由于通常我们掌握的数据集,是经过筛选(面试)之后的样本,是“合格”的数量远大于“不合格”的数量,这称为“不平衡划分”。所以在选择算法时,要选择不受“不平衡划分”影响的算法。要改善“不平衡划分”问题,可以复制一些类标为“不适合”的样本,让它们过抽样,同时也可以减少“适合”的样本,让它们欠抽样。如果保存了面试未录用人员的数据,可以加到训练数据集中,不过你要清楚这些人“合适/不合适”的分类是人为判断的结果,不一定是事实。

  3)把需要预测的员工属性,代入到模型中,就可以得出预测分类结果。如果最后训练的模型准确率在可接受范围内,就实现用大数据的方法筛选简历了。

  如果用聚类的方法,大数据的意义可能还在于发现:被层层筛选放弃的简历,和被选中并表现合格的简历,这两者在属性上是否真的很显著地分成了两个簇。

  2、再看看在离职预测方面的机会,就是预测某个员工会不会离职。

  离职预测也是用数据分类的方法,所有的员工都已经有了在职/离职的分类。用大数据分类的方法,就是先训练一个将员工分成两类的模型,在判断某个员工是和在职的员工更相似,还是和离职的员工更相似。

  既然也是分类方法,所以过程类似:找一个训练数据集,包括了员工属性和类标(离职/不离职);选择分类方法训练模型;把需要预测的员工代入模型得到结果。

  与招聘筛选合适人员相比,离职预测所能使用的属性更多,好处是更有可能得到一个好的模型,坏处是可能需要做更多的尝试。使用那些哪些属性,需要团队管理专家来筛选,技术专家做不了这个活。大概想想哪些可用的呢?比如性别、年龄、婚姻状况、生育状况、司龄、最近几次的考核、有无投诉、收入、上班交通远近、籍贯、同组是否有离职,等等,脑洞大开地去想。说不定头发长短也有关系,因为可以牵强的理解为某种生活态度或性格。大数据嘛,谁知道哪个好用呢,本来就是个挖掘探索的过程。

  在数据分类方法上,尽量选择模型容易解释的。决策树或类似方法可能会产生一棵树,其中有意想不到的结果,从模型中提取规则也相对简单一些。多层神经网络算法(两层就够了吧)的隐藏层是黑箱,很难解释,但初始的拓扑图已经代表了专家的某些经验假设,有其专业性也有局限性。

  离职预测的应用,应该不仅仅止于预测员工是否离职,更大的意义在于:找出那些可修改的属性值,经修改后员工就更倾向于不离职了。这也是数据分类方法建议选择容易解释的原因。比如分类发现某一类员工有了投诉而且又被训了一通,是更倾向于离职,那主管在这样的员工被投诉之后,所用管理方法可能就要注意一下了。例子也许不太恰当,思路是这个思路。

  3,简单说说离群点分析在寻找员工表现异常方面的机会。

  在文章开始的时候,提到平时我们寻找异常点的困难:要么需要花时间将数据分成很多细类展示,同时割裂了多个维度;要么发现找到的异常和其他属性结合起来一起看的时候,不是异常。那么大数据离群点分析的方法,就是可以实现将多维度的属性放在一起看,直接得出一个综合考虑了各种维度之后的结果。

  离群点检测的方法也很多,基本上和分类、聚类方法的思路类似,从距离、密度、概率去衡量某个数据点是不是离群的。用便于理解的表述就是,如果某点距离其他点的距离超过了某个阀值,或者某个点周围既定半径内的密度明显小于其他点,就可以认为该点是离群的。

  相对来说,离群点检测应用起来的可能性比较大。因为员工表现相关的数据量大,更匹配大数据的特点。也因为日常也在做离群点检测,只不过维度单一。用大数据方法可能只是把原来要通过多个步骤完成的事情,只要一步就完成了。另外,模型的有效性和稳定性也会比较好,因为其背后隐含着一套组合的复杂的但明确的“如果…那么正常/异常”规则,只不过一般分开来判断。

  4,如果继续探索,也许还能发现大数据的其他机会。比如在将员工分组时,通过聚类的方法尽量识别出相似的员工,将他们分在一起,再分配一个合适的班组长。比如对于不同的员工在效率上会寄予不同的期望目标(把通话时长离散化成几个区间,就可以用数据分类方法了),用和他同类的员工表现去衡量,应该落在哪个区间段(类)。

  四、关于大数据在人力资源管理方面的应用,说一些提醒事项:

  1,关于数据收集。没数据都是空谈,所以数据收集机制非常重要,不一定马上能用,但是如果不开始收集肯定以后也用不了。现在很多大数据做得风生水起的公司,都经历了一段数据收集期,也许刚开始收集时根本不知道有什么用。这也是现在收集数据成“疯”的原因。

  2,关于数据量。大数据能训练出准确模型的前提之一是要有大量的数据。我不能很确切地判断用1000个招聘员工的数据训练结果怎么样,但是可以确定如果只有100个数据的话,效果不会好。所以规模小的客户中心,就不要拿自己的数据去搞大数据了。如果一定要用大数据,可以借用专门提供这类服务的团队所掌握的模型,把自己的数据作为“检验集”,先评估一下该外部模型的可信度。

  3,关于数据清洗。在训练模型之前,通常是需要对数据进行清洗的,数据清洗也有很多方法,要展开也是一堆内容。常见的有拼接数据(增加属性)、简化数据(比如抽样)、修补数据(比如补上缺失值)、规范数据(比如把连续数值分段离散化)。还要解决噪声问题,虽然和选择的算法也有关系,有些算法对噪声非常过敏,有些算法不太过敏。但总的来说还是优先想办法去噪声。

  4,关于属性选择。选择属性多一些固然有好的一面,但是要注意属性值的获取是否可行、准确。很难获得,或者即使获得也没办法保证准确性的属性,不如弃用。如果业务专家认为非常非常有必要,那就先在数据收集上花功夫,避免“垃圾进垃圾出”而白忙活。另外,高维数据的分析会面临更多的难题。

  5,关于算法选择。没有证据证明某个算法一定比另一个算法好,既意味着是个尝试的过程,也意味着不要对换算法抱太大希望。

  6,关于业务专家。业务专家对获得良好的算法模型帮助非常的大,比如上文中提到的一些预设阀值的确定。在平时提到最多的多层神经网络算法中,虽然中间的隐藏层像个黑盒子不可解释,但初始化的网络拓扑图、连接权重、学习率,都需要预设,影响到执行的效率和结果的好坏。

  7,关于解释难题。因为大数据分析没有预先设定的可解释规则,所以由相关性得到的算法(规则),有时候是很难解释的。只要不是明显背离事实和常识,准确就好了,解释可能是次要的。

  现在传统的方法,已经给我们提供了一些很好的途径,去筛选员工、预判是否离职、发现表现异常。大数据的方法,只是提供了一个可能,将这方面的工作更进一步。由于受太多因素的影响,某些时候还不一定有更好的结果。所以,在没有实践之前,只能说是一个思考。

  我是不提倡杀鸡用牛刀的,也不提倡为了创新而创新;只是如果现有方法工具已经无法很好地完成你确定要做的事情,那升级一下工具是一个可以考虑的选择。所以,现在的你,有没有找到应用点、有没有准备好、是不是值得去使用大数据方法了?

  本文刊载于《客户世界》2018年3月刊;作者吴海峰为职业顾问。