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

简介:

引言

假设简历库中有 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].http://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.




====================================分割线================================

本文作者:AI研习社
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 算法
探索机器学习中的自然语言处理技术
【2月更文挑战第16天】 在数字化和智能化的浪潮中,自然语言处理(NLP)技术已成为连接人类与机器沟通的重要桥梁。本文深入探讨了机器学习在自然语言处理中的应用,包括最新的模型架构、算法优化技巧及实际场景中的挑战和解决方案。通过逻辑严密的分析,我们将揭示如何有效利用机器学习提升NLP系统的性能,同时对未来发展趋势进行预测。
136 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习中的自然语言处理技术
【2月更文挑战第31天】 随着人工智能的飞速发展,自然语言处理(NLP)技术在机器学习领域扮演着越来越重要的角色。本文旨在深入探讨NLP的关键技术,包括语言模型、词嵌入和深度学习方法,并分析这些技术如何相互协作,以实现更高效的文本分析和理解。通过案例研究和最新研究成果的介绍,我们展示了NLP在实际应用中的强大潜力,以及它如何推动人机交互和信息检索系统的革新。
145 0
|
2月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
60 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
82 1
|
8天前
|
机器学习/深度学习 算法
构建高效机器学习模型的五大关键技术
【5月更文挑战第3天】 在数据驱动的时代,机器学习已经成为挖掘信息、预测未来和优化决策的关键工具。本文将深入探讨构建高效机器学习模型的五大关键技术:特征工程、模型选择、超参数调优、集成学习和模型评估。这些技术不仅能够提高模型的性能,还能确保模型的泛化能力和可解释性。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在图像识别中的应用与挑战探索机器学习中的自然语言处理技术
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的关键技术、应用实例以及面临的主要挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术以及迁移学习的策略,并通过具体案例分析其在医疗影像、自动驾驶和面部识别等领域的应用成效。同时,我们也将指出当前模型泛化能力不足、对抗性攻击以及算力资源需求等挑战,并提出潜在的解决方向。 【4月更文挑战第30天】 在人工智能领域,自然语言处理(NLP)是赋予机器理解和响应人类语言能力的关键技术。本文将深入探讨NLP的发展历程、核心技术及其在不同领域的应用案例。我们将从
|
10天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】机器学习中的模型融合技术
【4月更文挑战第30天】模型融合,即集成学习,通过结合多个模型提升预测性能。常见方法包括:Bagging(如Random Forest)、Boosting(如AdaBoost、XGBoost)和Stacking。Python中可使用`scikit-learn`实现,例如BaggingClassifier示例。模型融合是机器学习中的强大工具,能提高整体性能并适应复杂问题。
|
10天前
|
机器学习/深度学习 算法 Python
【Python机器学习专栏】机器学习中的超参数调优技术
【4月更文挑战第30天】本文探讨了机器学习中超参数调优的重要性,介绍了网格搜索、随机搜索、贝叶斯优化和AutoML等调优方法,并提供了Python中使用`scikit-learn`进行网格搜索的示例。超参数的选择直接影响模型学习和泛化能力,而调优技术能帮助找到最佳组合,提升模型性能。随着AutoML的发展,自动化调参将成为更高效的选择。
|
10天前
|
机器学习/深度学习 算法 算法框架/工具
【Python机器学习专栏】深度学习中的正则化与优化技术
【4月更文挑战第30天】本文探讨了深度学习中的正则化和优化技术,以提升模型的泛化能力和训练效率。正则化包括L1和L2正则化以及Dropout,防止过拟合。优化技术涵盖梯度下降法、动量法和Adam优化器,加速模型收敛。Python示例展示了如何在Keras中应用这些技术,如L2正则化、Dropout及Adam优化器。
|
10天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】数据标准化与归一化技术
【4月更文挑战第30天】在机器学习中,数据预处理的两大关键步骤是标准化和归一化,旨在调整数据范围以优化算法性能。标准化将数据缩放到特定区间,如[-1, 1]或[0, 1],适合基于距离的算法,如KNN、SVM。归一化则将数据线性变换到[0, 1],保持相对关系。Python中可使用`sklearn.preprocessing`的`MinMaxScaler`和`StandardScaler`实现这两种操作。选择哪种方法取决于数据分布和算法需求。预处理能提升模型理解和性能,增强预测准确性和可靠性。

热门文章

最新文章