当前位置: 首页 > 科技观察

我如何通过机器学习节省HR时间

时间:2023-03-19 11:04:15 科技观察

介绍假设简历数据库中有10,000份名为“软件工程师”的简历。搜索“Android工程师”的HR只看标题为“Android工程师”的简历将错过912个可能的匹配项;如果HR愿意花时间把每一个“软件工程师”从头到尾看完,如果她把真正从事Android研发的简历筛选掉,那么她还要再看9088份无效的软件工程师简历。假设阅读一份简历需要15秒,那么这项工作将花费她38个小时。1、低辨识度的简历——隐藏的招聘雷区搜索和阅读简历占据了大部分招聘时间。HR在搜索或阅读简历时,需要根据简历名称或职位内容判断简历类别。简历类别的“区分度”越高,HR越容易通过搜索定位到对应的简历,也越容易识别简历与空缺职位的契合度。比如HR招聘“Android工程师”时,他们非常喜欢职位名称中带有“Android工程师”的简历,因为这样很容易被搜索和识别。这部分简历可以定义为高度差异化的简历。但令人头疼的是,很多求职者的简历并没有考虑到招聘人员的经验。例如,一位软件工程师在他的简历中提到了多项编程技能,并将他的简历命名为“软件工程师”,这使得系统很难定位到这份简历。这意味着:由于JD的写法和应聘者写简历的自然差异,搜索时会漏掉大量有匹配简历的简历,而很多简历中的职位内容(比如recruiter)都包含这些关键词实际上不是真实的。无关紧要。2、大量低辨识度的简历增加筛选难度。我们从简历数据库中抽取了1,479,818份互联网行业中包含“工程师”的简历数据,并按简历名称进行了统计。从高到低排序后,截取Top15显示如下:<图1-高频职位统计数据>从统计数据可以看出,类别区分度低的简历占比较大总体简历数据。例如,互联网行业包含大量“软件工程师”、“高级软件工程师”、“软件研发工程师”、“研发工程师”的简历,占样本总数的25.7%,但这些简历不能轻松判断候选人的技术方向。其实Java工程师、PHP工程师、后端开发工程师等都可以称为软件工程师。以“软件工程师”为职称的简历很多,具体类别需要根据职位或职位描述进一步判断。例如,在搜索简历时,如果输入“Python工程师”,可能简历名称中包含Python的简历较少,导致搜索结果偏少。但是,如果可以通过模型判断简历名称是软件工程的特定角色,增强简历的区分度,那么就可以在软件工程师的简历中筛选出属于Python工程师的简历,进一步提高简历的辨别力。搜索的丰富性。三、通过机器学习方法提高角色识别的准确率1.建立合理的职位理解,增强简历的辨别力,可以理解为“如何更准确地理解职位,包括表达职位的不同方式,以及技能与职位模型相关”——这可以根据专业词汇来完成。比如我们定义一个简单的词汇——“软件工程师”作为一级类别,其下属的二级技能类别分为Java、C++、PHP、.NET、Python、Delphi、Perl等。这个词汇定义了明确的工作/技能关系,当词汇在“阅读”标题为“软件工程师”的简历时,实际上是在阅读上述技能。品宝的知识图谱更为复杂,除了技能分支之外,还包括行业、公司等多个维度。<图2-摘自品宝工作技能知识图谱>2.如何进行高效的角色分类和识别计算?深度学习方法最近在文本处理领域开始流行,但需要注意的是它们的训练和测试过程非常缓慢。至于工程应用,门槛还是挺高的。在对技术方案进行了一系列的研究和对比之后,我们尝试对比分析了三种机器学习文本分类算法:TextGrocery、fastText和NaiveBayes。TextGrocery—是一款基于LibShortText和结巴分词的短文本分类工具。它基于线性核SVM分类器,使用二元分割(Bigram),不去除停用词,不进行词性过滤。支持中英文语料库,让文本分类更简单。把事情简单化。fastText——FAIR(FacebookAI)开发的快速文本分类器,提供简单高效的文本分类和表示学习方法,来自Word2Vec作者Mikolov的论文《Bag of Tricks for Efficient Text Classification》fastText适用于大数据+高效的训练速度,可以训练模型“使用标准多核CPU在10分钟内处理超过10亿个单词。”与深度模型相比,fastText可以将训练时间从几天缩短到几秒钟。FastText的性能明显优于流行的word2vec工具,也优于其他最先进的词法表示。<图3-fastText分类器模型图><图4-fastText模型架构>朴素贝叶斯——从贝叶斯定理扩展而来的概率模型,根据每个特征的概率来判断一个对象属于某一类别的概率。该方法假设所有特征需要相互独立,即任何特征的值与其他特征的值无关。在自然语言处理领域,处理后的数据可以看作是文本文档中的标记数据,这些数据可以作为训练数据集,用机器学习算法进行训练。在训练样本时,构造一个可以表征文本的特征向量(词汇表),并根据这个特征向量对训练集进行表征,计算每个类别出现的频率作为该类别的先验概率,每个特征在每个类别条件下的属性的条件概率,在分类时,根据贝叶斯公式计算待分类句子在每个类别中的后验概率,取最大值作为其分类。<图5-朴素贝叶斯模型架构>4.一个简单的分类识别实验为了更好地分析不同技术手段对增强简历辨别力的效果,我们进行了一个简单的对比实验来展示算法如何对低辨识度的简历进行展示,例如“软件工程师”按特定的技能方向分类。1、实验数据集的准备:根据职称选取680731份属于二级类别的工程师简历数据,随机抽取80%数据作为训练数据,其余20%作为测试数据.<图6-实验数据集分布>2.实验性能:通过实验,我们发现通过机器学习的方法,可以快速识别出低区分度的简历并准确分类,可以大大减少人工搜索和阅读的时间。<图7-各类别预测准确率分布>与上述模型结果相比,fastText模型是基于基于词袋的英语文本分类方法,组成英语句子的词是间隔的;而中文文本是连续的,所以对于中文文本,需要进行分词和标点符号转换成模型需要的数据格式,但是分类效果一般,尤其是在类别之间的区分不是很大的时候。另外调参对模型结果影响较大,但该模型的优点是训练时间很短。因此,fastText模型更适合类别区分度和分类效率更高的应用场景,比如自动将一条新闻分类为财经、军事、社会、娱乐等板块。TextGrocery模型是专门为短文本设计的分类模型。直接输入文本,不需要做特征向量化预处理,不去停用词,不做词性过滤,API接口优雅。但是,模型的准确性和模型的训练时间在其中起作用。在预测模型中不太突出。朴素贝叶斯是一种传统的文本分类模型。特征向量化的预处理比较繁琐,训练时间也比较长。但是,当分类类别在多个文本之间的区分度不高时,分类效果优于其他两种算法。这个实验的结果表明,我们在实施产品时不应该过分追求“时髦”的技术。对于一个特定的企业来说,帮助企业取得更好成绩的技术就是最好的技术。品宝低辨识度简历角色识别算法吸收并结合了上述各种算法的特点,在面对不同的场景条件时,结合使用,可以达到更好的分类效果。识别准确率高于75%。以“软件工程师”为例,输入拼宝软件工程师的职位描述,预测可能的角色。效果如下:<图8-拼宝角色识别效果示例>对于其他行业辨别力低的简历,也可以训练相应的模型。如果单个行业预测类别不是太详细,可以将多个行业数据混合在一起训练模型进行预测。根据本实验的样本数据,假设简历数据库中有10000份名为“软件工程师”的简历。搜索“Android工程师”的HR只查看简历标题为“Android工程师”的简历,将错过912个可能的匹配项——所有职位名称为“软件工程师”;如果一个HR愿意花时间把每一份“软件工程师”的简历从头到尾看完,筛选出真正从事Android研发的简历,那她还要再看9088个无效软件工程师简历。假设阅读一份简历需要15秒,而这份工作需要她38小时。除了简历检索的应用,角色识别在其他方面也有广泛的应用空间。例如薪资预测,以职位描述为特征变量预测角色,有助于提高薪资预测的准确率。又如简历解析,将简历详情页的每一块作为文本,预测每一块所属的信息类型(如工作经历、教育经历等),然后使用对应的解析程序解析出块,这将大大改善简历详情页面。页面解析效率。我们始终相信科技可以提高工作效率,这也是我们三年来一直致力于简历分析与匹配的原因。我们相信,借助机器学习技术,HR招聘将变得更加省时高效。参考文献:[1]超快的fastText[EB/OL]。超快的fastText,2017-04-10/2017-04-24.[2]用于快速文本表示和分类的库。[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系列(二)_文本分类与朴素贝叶斯(上)[EB/OL].NLP系列(二)_文本分类与朴素贝叶斯(上)-龙鑫辰-博客频道-CSDN.NET,2017-04-10/2017-04-24.[6]从朴素贝叶斯到N-gram语言模型[EB/OL]。NLP系列(5)_从朴素贝叶斯到N-gram语言模型-龙鑫辰-博客频道-CSDN.NET,2017-04-10/2017-04-24.[7]BagofTricksforEfficientTextClassification[EB/OL].高效文本分类技巧包,2017-04-10/2017-04-24。