大家好,我最近发布了职级对标新一版的天梯图 网站链接 https://duibiao.info,这个天梯图使用了量化模型来建构各个公司的职级对标图。现在迫不及待的想跟大家分享一下我是怎么用网站里的薪酬数据生成这个图的:
在解答如何使用已有的薪酬数据生成天梯图之前,我们先说明一下我们理想中的天梯图是怎么定义的:
天梯图是公司职级从低到高,根据每个职级的薪酬,工作经验等数据,确定每个职级在一维映射中的范围。
说起来似乎有点抽象,但其实就是确定每个职级在天梯图中的高度。然后把每个公司的职级从上到下一个一个接起来就好了。
那么问题来了,我们怎么确定各个公司每一个职级的高度呢?以前我们是自己在网上看大家的讨论,得到一个感性的认识来画出每个职级。现在我们有每个职级的薪酬数据,那我们就可以通过模型把职级映射到天梯图上。如果我们通过机器学习的方法来完成这个模型.
则我们的输入是薪酬,模型是某一种机器学习的模型,输出就是一维映射的数值。并且这个数值可以代表职级高低。大概是这样:
好,我们现在有了方向,我们细化一下步骤:
第一步:我们利用用户匿名提交的薪酬数据作为训练数据集的来源: 我们设计一个基于神经网络的分类模型,并将其中某一层向量维度设计为(?, 1),其中 1 这个一位的向量的数值就可以当成是这个职级的高度。那从输入开始的第一层至这一层,我们称为 encoder 。我们用此模型去对匿名用户的薪酬数据进行分类预测,以期能准确预测用户的职级。我们以此为模型训练的基本逻辑。
根据这个思路,我们建立了一个 4 层的神经网络来训练我们的模型,神经网络的输入是薪酬,工龄,司龄,学位,输出是一个浮点数,代表这个薪酬在薪酬表中的位置:
其中第 0 到第 8 层,就是 encoder , 而最后一层是这个薪酬数据在从 junior 到 senior 各个职级的可能性(最后一层仅用于训练,薪酬有人工标注的职级)。
第二步:当训练完成后,取模型的 encoder 部分,取某一个公司、某一类工作的所有数据输入至 encoder ,则能获得一维数值映射的点阵图。下图的横轴为 encoder 的 output ,数值越低的数据点往往意味着职级较低,而数值越高的数据点则意味着职级较高。由此,我们的模型可以把不同的职级的数据尽可能的区分开。
最后一步,为了得到最终的天梯图,只需按照职级将每个数据放入 encoder ,并得到 output 。然后进行统计归类,得到职级与职级间 encoder output 的边界。如阿里巴巴有 P5 到 P9 五个职级,我们把 encoder output 按照其职级分为五组之后得到五个 boxplot 。职级之间的边界,可以理解为相邻两个 boxplot 的中间点。
可以看出,这个图离阿里的职级图其实就很接近了,我们只需要把它”垒“起来即可。
最终将以上方法推而广之,即可获得每个公司的动态天梯图。考虑到所有的薪酬数据都采用同一个 encoder 进行预处理,那么所有的公司职级天梯本质上是共用了同一套坐标轴(参考系)。
这就是我们画出职级对标天梯图的基本步骤。特别感谢团队中的孙嘉隽同学。是由他从头到尾把算法跑通并工程实现了整个项目。
如果大家感兴趣,请添加我们的微信群,欢迎大家来交流。
1
Y29tL2gwd2Fy 2022-03-06 04:41:14 +08:00 via Android 1
活着就不错了
只想下班去码头搞点薯条 |
2
vHypnos 2022-03-06 07:44:38 +08:00 via iPhone
是不是没用过 http://levels.fyi
|
3
rayhy 2022-03-06 12:27:10 +08:00 via Android
现在大厂不是薪资倒挂蛮严重吗?靠薪资对标感觉会有问题?
|
4
guangyaomiao OP @vHypnos levels.fyi 做的不错。我还在追赶他们的脚步
|