我是如何用机器学习技术帮助 HR 省时间的
引言
假設簡歷庫中有 10000 份名為 “軟件工程師” 的簡歷。 一位 HR 在搜索 “Android 工程師” 時僅關注名稱為 “Android 工程師” 的簡歷,她將遺漏 912 份有可能匹配的簡歷;如果這位 HR 愿意花時間從頭到尾通讀每一份 “軟件工程師” 的簡歷,將其中真正從事 Android 研發的簡歷篩選出來,那么她需要多閱讀 9088 份無效的軟件工程師簡歷。假設閱覽一份簡歷需要 15 秒,這項工作將占據她 38 小時。
一、低區分度的簡歷——隱藏的招聘雷區
搜索和閱讀簡歷占據了招聘的大部分時間。在 HR 搜索或閱讀簡歷時,需要根據簡歷名稱或工作內容對簡歷類別進行判斷,簡歷類別的 “區分度” 越高,HR 越容易通過搜索定位到對應的簡歷,也越容易甄別出簡歷與空缺崗位的匹配度。
例如,HR 在招聘一名 “Android 工程師” 時,非常喜歡那些在職位名稱為 “Android 工程師” 的簡歷,因為可以很方便地搜索和識別。這部分簡歷可以定義為高區分度簡歷。
可令人頭疼的是,許多候選人的簡歷并未照顧到招聘者的使用體驗。例如一名軟件工程師在他的簡歷中提到了多項編程技能,并將簡歷名稱定為 “軟件工程師”,給系統搜索定位到這份簡歷造成了極大的難度。這就意味著:由于 JD 的編寫方式與候選人編寫簡歷方式的天然差異,大量履歷匹配的簡歷在搜索時被遺漏,許多工作內容里包含這些關鍵字的簡歷(比如招聘專員)實際卻又毫不相關。
二、大量的低區分度簡歷增加了甄別難度
我們從簡歷庫中抽樣了 1479818 份互聯網行業中包含 “工程師” 的簡歷數據,按簡歷名稱進行統計,從高到低排序后截取 Top15 展示如下:
<圖 1 - 高頻職位名稱統計數據>
由統計數據可以看出,類別區分度低的簡歷在整體簡歷數據中占比較大。例如互聯網行業中包含大量 “軟件工程師”、“高級軟件工程師”、“軟件研發工程師”、“研發工程師” 簡歷,占抽樣總數的 25.7%,但這部分簡歷卻無法輕易判斷候選人對應的技術方向。
實際上,Java 工程師、PHP 工程師、后端開發工程師等均可稱為軟件工程師。有眾多 Title 為 “軟件工程師” 的簡歷,需要根據職位或工作描述進一步判斷具體類別。
例如對簡歷進行搜索時,輸入 “Python 工程師”,簡歷名稱中含 Python 的簡歷可能較少,導致搜索結果數量豐富度不高。但如果通過模型可以判斷簡歷名稱為軟件工程的具體角色,增強簡歷的區分度,則可在軟件工程師的簡歷中篩選屬于 Python 工程師的簡歷,進一步提高搜索的豐富度。
三、通過機器學習方法提高角色識別的準確度
1、建立合理的職位理解
增強簡歷的區分度,可以理解為 “如何更準確地理解職位,包括職位的不同表達方式,以及與該職位相關的技能模型”——這件事可以基于一張專業詞表完成。
例如我們定義一個簡單的詞表——“軟件工程師” 為一級類別,其下屬二級技能類別分為 Java、C++、PHP、.NET、Python、Delphi、Perl 等。這張詞表定義了明確的職位 / 技能關系,當詞表在 “閱讀” 一份名為 “軟件工程師” 的簡歷時,它實際閱讀的是上述技能。
聘寶的知識圖譜更為復雜,除技能分支外,還包含行業、公司等眾多維度。
<圖 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 工具明顯好上不少,也比其他目前最先進的詞態詞匯表征要好。
<圖 3-fastText 分類器模型示意圖>
<圖 4-fastText 模型架構> -
Naive Bayes——由貝葉斯定理延伸而來的概率模型,它根據每個特征的概率確定一個對象屬于某一類別的概率。該方法假設所有特征需要相互獨立,即任一特征的值和其他特征的值沒有關聯關系。
在自然語言處理領域,處理的的數據可以看做是在文本文檔中標注數據,這些數據可以作為訓練數據集來使用機器學習算法進行訓練。
在訓練樣本時,構建可以表征文本的特征向量 (詞匯表),并根據這個特征向量將訓練集表征出來,計算各個類別的頻率作為該類的先驗概率,和在每個類別條件下各個特征屬性的條件概率,分類時,根據貝葉斯公式計算待分類句子在每一類別的后驗概率,取最大值作為其分類。
<圖 5-Na?ve Bayes 模型架構>
四、一個簡單的分類識別實驗
為更好地分析不同技術手段在增強簡歷區分度上的效果,我們進行了一項簡單的比較實驗,來展現算法是如何把低區分度的簡歷如 “軟件工程師” 進行具體的技能方向分類的。
1、實驗數據集的準備:
選取 680731 份根據職位名稱判斷屬于二級類別的工程師簡歷數據,隨機抽樣取 80% 的數據做訓練數據,剩余 20% 份作測試數據。
<圖 6 - 實驗數據集的分布>
2、實驗效果表現:
通過實驗我們發現,通過機器學習方法,我們能夠快速識別低區分度簡歷并進行準確的分類,從而能夠極大的降低人工搜索與閱讀的時間。
<圖 7 - 各個類別預測準確率的分布>
對比上面模型結果, fastText 模型基于詞袋的針對英文的文本分類方法,組成英文句子的單詞是有間隔的;而中文文本是連續的,因此對中文文本,則需分詞去標點轉化為模型所需要的數據格式,但分類效果一般,尤其是類別間區分度不是很大的情況下。另外參數調優對模型結果影響較大,但模型優勢在于訓練時間很短。所以 fastText 模型更適合做類別區分度更大且講究分類效率的應用場景,比如將一則新聞自動劃歸到財經、軍事、社會、娛樂等板塊。
TextGrocery 模型是專門針對短文本的分類模型,直接輸入文本,無需做特征向量化的預處理,不去停頓詞,不做詞性過濾,優雅的 API 接口,但模型準確率和模型訓練時間在此角色預測模型中不是太突出。
Naive Bayes 為傳統的文本分類模型,特征向量化的預處理相對繁瑣、訓練時間較長,但在分類類別多文本區分度不大的情況下,分類效果相比其他兩種算法更為優秀。這個實驗結果側面說明,在產品實現時勿過度追求 “時髦” 的技術。對某一項特定業務來說,有助于業務實現更優效果的技術就是最好的技術。
聘寶在面對低區分度簡歷時的角色識別算法,吸收結合了上述各類算法的特點,面對不同場景條件時搭配應用,實現了更優的分類效果,在 TMT 行業主要職位類型上的識別準確率高于 75%。
以 “軟件工程師” 為例子,在聘寶中輸入屬于軟件工程師的職位描述,預測出可能的角色,效果如下圖:
<圖 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研習社 本文轉自雷鋒網禁止二次轉載,原文鏈接
總結
以上是生活随笔為你收集整理的我是如何用机器学习技术帮助 HR 省时间的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多平台支持:下一步容器技术热点
- 下一篇: 老男孩教育每日一题-第108天-php-