我是如何用机器学习技术帮助HR省时间的

作者: 方园 2017-05-02 20:56:36

引言

假设简历库中有 10000 份名为 “软件工程师” 的简历。 一位 HR 在搜索 “Android 工程师” 时仅关注名称为 “Android 工程师” 的简历,她将遗漏 912 份有可能匹配的简历;如果这位 HR 愿意花时间从头到尾通读每一份 “软件工程师” 的简历,将其中真正从事 Android 研发的简历筛选出来,那么她需要多阅读 9088 份无效的软件工程师简历。假设阅览一份简历需要 15 秒,这项工作将占据她 38 小时。

一、低区分度的简历——隐藏的招聘雷区

搜索和阅读简历占据了招聘的大部分时间。在 HR 搜索或阅读简历时,需要根据简历名称或工作内容对简历类别进行判断,简历类别的 “区分度” 越高,HR 越容易通过搜索定位到对应的简历,也越容易甄别出简历与空缺岗位的匹配度。

例如,HR 在招聘一名 “Android 工程师” 时,非常喜欢那些在职位名称为 “Android 工程师” 的简历,因为可以很方便地搜索和识别。这部分简历可以定义为高区分度简历。

可令人头疼的是,许多候选人的简历并未照顾到招聘者的使用体验。例如一名软件工程师在他的简历中提到了多项编程技能,并将简历名称定为 “软件工程师”,给系统搜索定位到这份简历造成了极大的难度。这就意味着:由于 JD 的编写方式与候选人编写简历方式的天然差异,大量履历匹配的简历在搜索时被遗漏,许多工作内容里包含这些关键字的简历(比如招聘专员)实际却又毫不相关。

二、大量的低区分度简历增加了甄别难度

我们从简历库中抽样了 1479818 份互联网行业中包含 “工程师” 的简历数据,按简历名称进行统计,从高到低排序后截取 Top15 展示如下:

我是如何用机器学习技术帮助HR省时间的
<图 1 - 高频职位名称统计数据>

由统计数据可以看出,类别区分度低的简历在整体简历数据中占比较大。例如互联网行业中包含大量 “软件工程师”、“高级软件工程师”、“软件研发工程师”、“研发工程师” 简历,占抽样总数的 25.7%,但这部分简历却无法轻易判断候选人对应的技术方向。

实际上,Java 工程师、PHP 工程师、后端开发工程师等均可称为软件工程师。有众多 Title 为 “软件工程师” 的简历,需要根据职位或工作描述进一步判断具体类别。

例如对简历进行搜索时,输入 “Python 工程师”,简历名称中含 Python 的简历可能较少,导致搜索结果数量丰富度不高。但如果通过模型可以判断简历名称为软件工程的具体角色,增强简历的区分度,则可在软件工程师的简历中筛选属于 Python 工程师的简历,进一步提高搜索的丰富度。

三、通过机器学习方法提高角色识别的准确度

1、建立合理的职位理解

增强简历的区分度,可以理解为 “如何更准确地理解职位,包括职位的不同表达方式,以及与该职位相关的技能模型”——这件事可以基于一张专业词表完成。

例如我们定义一个简单的词表——“软件工程师” 为一级类别,其下属二级技能类别分为 Java、C++、PHP、.NET、Python、Delphi、Perl 等。这张词表定义了明确的职位 / 技能关系,当词表在 “阅读” 一份名为 “软件工程师” 的简历时,它实际阅读的是上述技能。

聘宝的知识图谱更为复杂,除技能分支外,还包含行业、公司等众多维度。

我是如何用机器学习技术帮助HR省时间的
<图 2 - 聘宝的职位技能知识图谱节选>

2、如何进行高效的角色分类识别计算

深度学习方法近期在文本处理领域大受欢迎,但需要注意的是它们的训练以及测试过程十分缓慢,以至于工程应用时门槛颇高。

在进行了一系列的技术方案调研与比较后,我们尝试对比分析了三种机器学习的文本分类算法: TextGrocery,fastText,Naive Bayes。

TextGrocery—是一个基于 LibShortText 和结巴分词的短文本分类工具,基于线性核 SVM 分类器,使用二元分词(Bigram),不去停顿词,不做词性过滤同时支持中文和英文语料,让文本分类变得简单。

fastText—由 FAIR(Facebook AI)开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,出自 Word2Vec 作者 Mikolov 的论文《Bag of Tricks for Efficient Text Classification》

fastText 适合大型数据 + 高效的训练速度,能够训练模型 “在使用标准多核 CPU 的情况下 10 分钟内处理超过 10 亿个词汇”,与深度模型对比,fastText 能将训练时间由数天缩短到几秒钟。FastText 的性能要比时下流行的 word2vec 工具明显好上不少,也比其他目前最先进的词态词汇表征要好。

我是如何用机器学习技术帮助HR省时间的
<图 3-fastText 分类器模型示意图>

我是如何用机器学习技术帮助HR省时间的
<图 4-fastText 模型架构>

Naive Bayes——由贝叶斯定理延伸而来的概率模型,它根据每个特征的概率确定一个对象属于某一类别的概率。该方法假设所有特征需要相互独立,即任一特征的值和其他特征的值没有关联关系。

在自然语言处理领域,处理的的数据可以看做是在文本文档中标注数据,这些数据可以作为训练数据集来使用机器学习算法进行训练。

在训练样本时,构建可以表征文本的特征向量 (词汇表),并根据这个特征向量将训练集表征出来,计算各个类别的频率作为该类的先验概率,和在每个类别条件下各个特征属性的条件概率,分类时,根据贝叶斯公式计算待分类句子在每一类别的后验概率,取最大值作为其分类。

我是如何用机器学习技术帮助HR省时间的
<图 5-Naïve Bayes 模型架构>

四、一个简单的分类识别实验

为更好地分析不同技术手段在增强简历区分度上的效果,我们进行了一项简单的比较实验,来展现算法是如何把低区分度的简历如 “软件工程师” 进行具体的技能方向分类的。

1、实验数据集的准备:

选取 680731 份根据职位名称判断属于二级类别的工程师简历数据,随机抽样取 80% 的数据做训练数据,剩余 20% 份作测试数据。

我是如何用机器学习技术帮助HR省时间的

<图 6 - 实验数据集的分布>

2、实验效果表现:

通过实验我们发现,通过机器学习方法,我们能够快速识别低区分度简历并进行准确的分类,从而能够极大的降低人工搜索与阅读的时间。

我是如何用机器学习技术帮助HR省时间的

<图 7 - 各个类别预测准确率的分布>

对比上面模型结果, fastText 模型基于词袋的针对英文的文本分类方法,组成英文句子的单词是有间隔的;而中文文本是连续的,因此对中文文本,则需分词去标点转化为模型所需要的数据格式,但分类效果一般,尤其是类别间区分度不是很大的情况下。另外参数调优对模型结果影响较大,但模型优势在于训练时间很短。所以 fastText 模型更适合做类别区分度更大且讲究分类效率的应用场景,比如将一则新闻自动划归到财经、军事、社会、娱乐等板块。

TextGrocery 模型是专门针对短文本的分类模型,直接输入文本,无需做特征向量化的预处理,不去停顿词,不做词性过滤,优雅的 API 接口,但模型准确率和模型训练时间在此角色预测模型中不是太突出。

Naive Bayes 为传统的文本分类模型,特征向量化的预处理相对繁琐、训练时间较长,但在分类类别多文本区分度不大的情况下,分类效果相比其他两种算法更为优秀。这个实验结果侧面说明,在产品实现时勿过度追求 “时髦” 的技术。对某一项特定业务来说,有助于业务实现更优效果的技术就是最好的技术。

聘宝在面对低区分度简历时的角色识别算法,吸收结合了上述各类算法的特点,面对不同场景条件时搭配应用,实现了更优的分类效果,在 TMT 行业主要职位类型上的识别准确率高于 75%。

以 “软件工程师” 为例子,在聘宝中输入属于软件工程师的职位描述,预测出可能的角色,效果如下图:

我是如何用机器学习技术帮助HR省时间的

<图 8 - 聘宝角色识别效果示例>

对于其他行业低区分度的简历,同样可以训练出对应的模型。如果单个行业预测类别不用过细的话,可以将众多行业数据混合一起训练模型进行预测。

基于该实验的样本数据,假设简历库中有 1 万份名为 “软件工程师” 的简历。 一位 HR 在搜索 “Android 工程师” 时仅关注简历名称为 “Android 工程师” 的简历,她将遗漏 912 份有可能匹配的简历——这些简历均被冠以 “软件工程师” 的职位名称;如果这位 HR 愿意花时间从头到尾通读每一份 “软件工程师” 的简历,将其中真正从事 Android 研发工作的简历筛选出来,那么她需要多阅读 9088 份无效的软件工程师简历,假设阅览一份简历需要 15 秒,这项工作将占据她 38 小时。

角色识别除了在简历检索方面的应用,在其他方面也有广泛的应用空间。 如薪资预测, 根据工作描述预测角色作为特征变量,将有助于提高预测薪资的准确性。

又例如简历解析, 将简历详情页的各个区块作为文本,预测各区块所属的信息类型(如工作经验、教育经历等)后再使用对应的解析程序对区块进行解析,将大大提高简历详情页面的解析效率。

我们始终相信技术可以提高工作效率,也正因此我们在简历的分析与匹配工作上持续深耕三年,相信在机器学习技术的帮助下,HR 的招聘工作将变得更加省时高效。

参考文献:

[1] 超快的 fastText[EB/OL]. 超快的 fastText, 2017-04-10/2017-04-24.

[2] Library for fast text representation and classification.[EB/OL].facebookresearch/fastText, 2017-04-10/2017-04-24.

[3] TEXTGROCERY,更好用的文本分类 PYTHON 库 [EB/OL]. 岭南六少 - 一朵在 LAMP 架构下挣扎的云, 2017-04-10/2017-04-24.

[4] LibShortText 简要入门 [EB/OL].https://guoze.me/2014/09/25/libshorttext-introduction/, 2017-04-10/2017-04-24.

[5] NLP 系列 (2)_用 Naive Bayes 进行文本分类 (上)[EB/OL].NLP 系列 (2)_用朴素贝叶斯进行文本分类 (上) - 龙心尘 - 博客频道 - CSDN.NET, 2017-04-10/2017-04-24.

[6] 从 Naive Bayes 到 N-gram 语言模型 [EB/OL]. NLP 系列 (5)_从朴素贝叶斯到 N-gram 语言模型 - 龙心尘 - 博客频道 - CSDN.NET, 2017-04-10/2017-04-24.

[7] Bag of Tricks for Efficient Text Classification[EB/OL]. Bag of Tricks for Efficient Text Classification, 2017-04-10/2017-04-24.

机器学习 HR 简历
上一篇:浅谈深度学习的基本概念和方法 下一篇:2017年机器学习发展十大趋势预测,悲观还是现实?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

机器学习转化为生产力,警惕这4个常见陷阱!

几乎每个人都想在他们的业务中引入机器学习,但是这些人也遇到了一个大问题:让模型可持续发展十分困难,尤其是在云架构的基础上。medium上一位博主也指出了这个问题,并提出了将机器学习模型投入生产的4个常见陷阱。

大数据文摘 ·  18h前
500亿参数,支持103种语言:谷歌推出「全球文字翻译」模型

由于缺乏平行数据,小语种的翻译一直是一大难题。来自谷歌的研究者提出了一种能够翻译 103 种语言的大规模多语言神经机器翻译模型,在数据丰富和匮乏的语种翻译中都实现了显著的性能提升。

机器之心 ·  1天前
机器学习免费跑分神器:集成各大数据集,连接GitHub就能用

搞机器学习的小伙伴们,免不了要在各种数据集上,给AI模型跑分。现在,Papers with Code (那个以论文搜代码的神器) 团队,推出了自动跑分服务,名叫sotabench,以跑遍所有开源模型为己任。

栗子 鱼羊 ·  2天前
大数据为什么不够聪明?机器要如何走向强人工智能

大数据为什么不够聪明?比概率语言更强大的思考工具是什么?科幻电影中的强人工智能到底怎样实现?如何让智能机器像人一样思考?搞清楚因果关系才能拨云见日。

明日情报 ·  2天前
2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?

2019年,机器学习框架之争进入了新阶段:PyTorch与TensorFlow成为最后两大玩家,PyTorch占据学术界领军地位,TensorFlow在工业界力量依然强大,两个框架都在向对方借鉴,但是都不太理想。

大数据文摘 ·  2天前
机器学习帮你预测电池寿命:精确了解电池还能充几次

电池寿命的确定,是移动硬件发展的重要一环,但是由于电池电化学反应的不确定性以及不同的使用环境和习惯,电池寿命变成了一门玄学。不过柏林的三位小伙伴,利用Tensorflow,在原有的预测体系基础上。更近一步,完成了电池的全寿命预测。

靓科技解读 ·  2天前
PyTorch横扫顶会,TensorFlow退守业界:机器学习框架一年变天

机器学习框架的世界,局势变化过于迅猛,稍不注意就会被抢了地盘。一年前,TensorFlow还是各大顶会论文选择的主流框架,如今顶会几乎成了PyTorch的天下。

鱼羊 栗子 ·  2天前
Nature发文:深度学习系统为什么这么好骗?

今天的人工智能系统经常会出现莫名其妙的 bug。最新一期《自然》杂志上的这篇文章向我们介绍了深度学习为什么如此容易出错,以及解决这些问题的研究方向。

机器之心 ·  3天前
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载