摘要:當(dāng)前隨著每年求職的人數(shù)日益增多及網(wǎng)絡(luò)招聘的普及,投職簡(jiǎn)歷的數(shù)量呈幾何級(jí)數(shù)增長(zhǎng)。企業(yè)的人力資源部門工作量急劇增多,需要從海量的簡(jiǎn)歷中找出企業(yè)所需人才。為解決這一難題,文章設(shè)計(jì)實(shí)現(xiàn)了一款基于語(yǔ)言大模型LLM( Large Language Model) 的人崗匹配系統(tǒng),實(shí)驗(yàn)結(jié)果表明該方法可以顯著減少人力資源部門的工作量,原來(lái)由人工耗費(fèi)幾天才能完成的人崗匹配工作被人工智能所取代,縮減為只需幾分鐘就能完成,大大提高了工作效率。
關(guān)鍵詞:人崗匹配;LLM;人工智能;文心一言;語(yǔ)義搜索
中圖分類號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2025)05-0024-03 開放科學(xué)(資源服務(wù)) 標(biāo)識(shí)碼(OSID) :
0 引言
當(dāng)前,每年畢業(yè)的大學(xué)生人數(shù)逐年遞增,僅2024 年的畢業(yè)生數(shù)量達(dá)到了1 084.6萬(wàn)人,每到招聘季都會(huì)有數(shù)以百萬(wàn)計(jì)的大學(xué)生投遞簡(jiǎn)歷,同時(shí)許多公司也會(huì)公布自己的招聘啟事,招募滿足應(yīng)聘條件的學(xué)生。隨著網(wǎng)絡(luò)的普及,基于網(wǎng)絡(luò)的數(shù)字化招聘逐漸成為主流,數(shù)字化招聘一方面極大地提高了求職人員投遞簡(jiǎn)歷的便捷性,另一方面也讓招聘方的人力資源部門面臨極大挑戰(zhàn)[1]。由于網(wǎng)絡(luò)投遞簡(jiǎn)歷十分便捷,求職者為了增加被錄用的概率,通常會(huì)大量海投,而不管自己是否匹配招聘崗位,求職者簡(jiǎn)歷編寫的質(zhì)量也參差不齊,這就需要企業(yè)人力資源部門的人員投入更多的精力去審核海量的簡(jiǎn)歷,工作量相對(duì)以前有了數(shù)倍的增加,如何快速準(zhǔn)確地從大量求職者中為企業(yè)篩選出合適的人才,是當(dāng)前很多企業(yè)的人力資源部門面臨的一大挑戰(zhàn)[2]。
為解決人工篩選簡(jiǎn)歷耗時(shí)長(zhǎng)、效率低下的問題,本文將人工智能技術(shù)引入人才招聘中。人崗匹配是簡(jiǎn)歷篩選時(shí)的一個(gè)重要環(huán)節(jié),目的是要高效準(zhǔn)確地識(shí)別人才能力是否和工作要求的崗位相匹配。2022年ChatGPT 大語(yǔ)言模型的橫空出世,讓自然語(yǔ)言處理NLP(Natural Language Processing) 技術(shù)實(shí)現(xiàn)質(zhì)的飛躍,隨后國(guó)內(nèi)的百度、字節(jié)跳動(dòng)、華為也都紛紛推出了自己的大語(yǔ)言模型,人工智能已經(jīng)具備了較為成熟的理解人類語(yǔ)言并和人類進(jìn)行交流的能力。本文提出了利用基于人工智能語(yǔ)言大模型技術(shù)對(duì)簡(jiǎn)歷文本的語(yǔ)義進(jìn)行自動(dòng)識(shí)別,概括出用戶畫像,判斷求職者的能力是否滿足崗位要求,并為招聘方推薦最適合招聘崗位的候選人。
1 基于大語(yǔ)言模型LLM(Large Language Model)的人崗匹配系統(tǒng)的構(gòu)建
以往國(guó)內(nèi)外很多專家學(xué)者嘗試用深度學(xué)習(xí)的方法來(lái)解決人崗匹配的問題,但是有一個(gè)不可避免的問題是深度學(xué)習(xí)的模型非常依賴于訓(xùn)練數(shù)據(jù),按照特定的人工標(biāo)注的訓(xùn)練數(shù)據(jù)產(chǎn)生的模型僅在與訓(xùn)練數(shù)據(jù)集相仿的領(lǐng)域中表現(xiàn)出較好的準(zhǔn)確性,而對(duì)于冷門或新型領(lǐng)域,由于缺少標(biāo)注過(guò)的訓(xùn)練數(shù)據(jù)而表現(xiàn)較差[3]。加之求職簡(jiǎn)歷涉及個(gè)人隱私,很難獲得全行業(yè)的求職簡(jiǎn)歷來(lái)進(jìn)行標(biāo)注和訓(xùn)練,使得此類模型不具備良好的通用性,因此影響到了它的實(shí)際應(yīng)用和推廣[4]。本文設(shè)計(jì)的人崗匹配系統(tǒng)要克服這些缺陷,采用近年來(lái)炙手可熱的基于大語(yǔ)言模型LLM的方法,通過(guò)小樣本甚至零樣本學(xué)習(xí)實(shí)現(xiàn)簡(jiǎn)歷文本的實(shí)體抽取,關(guān)鍵詞匹配和語(yǔ)義檢索,即依據(jù)招聘崗位的實(shí)際需求,形成檢索條件,對(duì)簡(jiǎn)歷庫(kù)進(jìn)行遴選,智能化地找出與工作崗位最匹配的n個(gè)候選人簡(jiǎn)歷,屏蔽其他匹配度不高的簡(jiǎn)歷,從而顯著降低人力資源部門的工作量,提高工作效率。
本文設(shè)計(jì)的人崗匹配系統(tǒng)的框架如圖1所示,在這個(gè)系統(tǒng)中選用的大語(yǔ)言模型是百度的文心一言,之所以選擇百度而不是ChatGPT,是因?yàn)槊绹?guó)的OpenAI 公司在2024年7月9日以后就終止了ChatGPT在中國(guó)的API服務(wù)。根據(jù)全球增長(zhǎng)咨詢公司發(fā)布的《2024年中國(guó)大模型能力評(píng)測(cè)》,百度文心一言在國(guó)內(nèi)的15個(gè)大模型中綜合表現(xiàn)位居首位,而且為用戶提供了免費(fèi)調(diào)用文心一言大模型的API接口。因此選用了文心一言來(lái)處理簡(jiǎn)歷和招聘的文本語(yǔ)言語(yǔ)義,并將數(shù)據(jù)實(shí)現(xiàn)結(jié)構(gòu)化。由于不同形式的文本簡(jiǎn)歷會(huì)被處理成結(jié)構(gòu)化的數(shù)據(jù)格式,包括時(shí)間、地理等特定格式的信息,還有像薪酬、工齡這樣的數(shù)值信息以及工作崗位、專業(yè)之類的分類信息,所以選用了Elasticsearch數(shù)據(jù)庫(kù),主要該數(shù)據(jù)庫(kù)支持多樣查詢,支持對(duì)時(shí)間格式的排序,按時(shí)間區(qū)間的統(tǒng)計(jì);對(duì)地理支持位置搜索;對(duì)數(shù)值數(shù)據(jù)支持范圍查詢。對(duì)于文本數(shù)據(jù),需要處理成向量,按照向量距離來(lái)判斷語(yǔ)義的匹配程度,而Milvus 是一款專門用于存儲(chǔ)和檢索向量數(shù)據(jù)的數(shù)據(jù)庫(kù),支持多種先進(jìn)的高性能向量檢索算法,因此選用它作為語(yǔ)義檢索的數(shù)據(jù)庫(kù)。文本的向量化采用的是業(yè)內(nèi)使用廣泛且成熟的BGE(BAAI General Embedding) 編碼。
如圖1所示,所有的簡(jiǎn)歷文檔都會(huì)被預(yù)處理,系統(tǒng)調(diào)用LLM,這里采用的是文心一言的大模型作為語(yǔ)義分析和實(shí)體提取的工具,經(jīng)過(guò)LLM的處理后將非結(jié)構(gòu)化的文檔變成了結(jié)構(gòu)化的特征屬性集合[5]。簡(jiǎn)歷中的內(nèi)容分為兩類,一類是基礎(chǔ)數(shù)據(jù)可以用數(shù)值或分類表示的屬性,例如年齡、期望薪酬、工作年限、城市的郵編、學(xué)歷等可以用數(shù)值來(lái)表示,應(yīng)聘崗位和工作類型可以用分類來(lái)表示。將這些字段和用戶ID組成一個(gè)記錄存入Elasticsearch數(shù)據(jù)庫(kù)。另外還有很多文字描述的內(nèi)容,例如個(gè)人愛好、特長(zhǎng)、曾獲得的獎(jiǎng)項(xiàng)、團(tuán)隊(duì)協(xié)作精神、獨(dú)立科研能力、寫作能力等文本數(shù)據(jù)。設(shè)計(jì)好一個(gè)描述應(yīng)聘者的固定句式,樣例如下:
“ 我今年{age}歲,學(xué)歷是{degree},工作年限是{work_time}年,希望獲得的工作類型如 下:{type},期望薪資范圍為{minimum}~{maximum},我的其他特點(diǎn)如下: {talent}。”
其中age,degree,work_time, type, minimum, maxi?mum這些字段可以用該用戶在Elasticsearch數(shù)據(jù)庫(kù)中的值直接填充,talent填充的是文字描述的個(gè)人愛好、特長(zhǎng)等內(nèi)容。對(duì)一個(gè)特定應(yīng)聘者填充完成該句子后再采用BGE模型編碼成1024維的向量,加上用戶ID 后存入Milvus數(shù)據(jù)庫(kù),可見一個(gè)用戶簡(jiǎn)歷在預(yù)處理后會(huì)用用戶ID做關(guān)聯(lián),分別將基礎(chǔ)數(shù)據(jù)和專用于描述該應(yīng)聘者的詞向量存入Elasticsearch數(shù)據(jù)庫(kù)和Milvus數(shù)據(jù)庫(kù)。
招聘方發(fā)出的招聘啟事是一個(gè)普通文本,包含了對(duì)招聘人員的要求,人力資源的工作人員將招聘啟事上傳給系統(tǒng)后,也可以類似簡(jiǎn)歷那樣處理,調(diào)用大語(yǔ)言模型LLM將非結(jié)構(gòu)化的招聘啟事轉(zhuǎn)化成一個(gè)結(jié)構(gòu)化的屬性集合,根據(jù)這些屬性的取值形成一個(gè)搜索條件發(fā)送給Elasticseaech數(shù)據(jù)庫(kù)進(jìn)行查詢,按照招聘的硬性條件進(jìn)行must的匹配,例如薪資范圍、學(xué)歷要求、年齡要求、工作城市、工作或?qū)嵙?xí)經(jīng)歷等,對(duì)于其他的一些特點(diǎn)可以進(jìn)行should 匹配,例如招聘的工作崗位、工作類型等,因?yàn)檎衅竼挝惶峁┑膷徫缓凸ぷ黝愋秃芏鄷r(shí)候不止一個(gè),因此滿足其一即可。存入Elas?ticsearch數(shù)據(jù)庫(kù)的屬性大多是用具體數(shù)值來(lái)表示的,例如學(xué)歷就可以根據(jù)初中到博士用數(shù)值1~5來(lái)代替,故要求本科以上的搜索條件就是學(xué)歷≥3,對(duì)于招聘啟事中的其他文字描述,例如熟練掌握何種工具、獲得何等獎(jiǎng)項(xiàng)或證書、與人的溝通能力、團(tuán)隊(duì)協(xié)作精神、獨(dú)立工作能力、業(yè)余愛好、認(rèn)同何等的企業(yè)文化等,也采用與簡(jiǎn)歷類似的方式進(jìn)行處理,編寫一個(gè)用于查詢的固定句式:
“招聘程序員,城市029,最低薪資10 000,最高薪資20 000,至少2年工作經(jīng)驗(yàn),熟練掌握C++,python,UML等工具,有協(xié)作精神,有良好的客戶溝通能力,認(rèn)同一榮俱榮、一損俱損的企業(yè)文化。”
然后用BGE編碼把這些文本內(nèi)容轉(zhuǎn)換成1024維的詞向量在Milvus數(shù)據(jù)庫(kù)中進(jìn)行查找。Milvus 是一個(gè)開源的數(shù)據(jù)庫(kù),其主要特點(diǎn)是具有一個(gè)向量相似度搜索引擎,可以為大規(guī)模向量數(shù)據(jù)提供高效的存儲(chǔ)、 索引和檢索功能。Milvus提供的高效方法來(lái)處理和查詢高維向量數(shù)據(jù),正好滿足了本系統(tǒng)中文本相似度匹配的需求。
在Elasticsearch數(shù)據(jù)庫(kù)中進(jìn)行條件搜索的偽碼如圖2所示。
對(duì)于每個(gè)搜索的條目還要給出一個(gè)得分score,可以根據(jù)實(shí)際需求調(diào)整score的取值來(lái)劃定招聘候選人的范圍。score的具體得分由must部分的搜索比對(duì)結(jié)果base score 和should 部分的搜索比對(duì)結(jié)果optionalscore兩部分組成,在must比對(duì)部分不僅有文本的精確匹配得分text_score,還要有各個(gè)數(shù)值字段取值范圍的比對(duì)得分numeric_score,因此must部分的得分計(jì)算公式為:
base_score = 0.6 * text_score + 0.4 * (numeric_score1 + numeric_score2);
should部分的得分optional score的初值為0,每找到一個(gè)完全匹配項(xiàng)就加0.2,部分匹配項(xiàng)就加0.1,搜索完所有optional field 字段后累加的數(shù)值即為optionalscore的結(jié)果。最終的final score得分計(jì)算公式為:
final_score = 0.7 * base_score + 0.3 * optional_score
計(jì)算匹配結(jié)果得分score的偽碼如圖3所示。
召回策略的流程圖如圖4所示。
服務(wù)器后端通過(guò)查詢模塊query會(huì)收到前端發(fā)送的信息,進(jìn)行多次召回。第一次在Elasticsearch數(shù)據(jù)庫(kù)中通過(guò)范圍匹配篩選滿足各項(xiàng)數(shù)值的簡(jiǎn)歷id,例如薪資要求范圍,工作年限范圍等字段采用must方式,即必須全部匹配;對(duì)于工作類型、工作崗位等分類,這里采用should方式,因?yàn)閼?yīng)聘者只要滿足一個(gè)崗位的要求即可。在進(jìn)行Milvus 檢索前,首先將招聘啟事中識(shí)別的實(shí)體字段組合成完整句子,再調(diào)用BGE進(jìn)行詞嵌入后編碼,獲得查詢條件的向量表示,最后調(diào)用Milvus的 search()函數(shù)進(jìn)行語(yǔ)義搜索。兩個(gè)數(shù)據(jù)庫(kù)的搜索結(jié)果分別返回,將Elasticsearch數(shù)據(jù)庫(kù)的匹配分?jǐn)?shù)閾值設(shè)定為1.3、 Milvus 的匹配分?jǐn)?shù)閾值定為0.6。若搜索結(jié)果滿足條件數(shù)量為0,則進(jìn)行第二輪召回。第二輪召回將 Elasticsearch 和Milvus的匹配閾值改小一些,再重復(fù)操作,若得到結(jié)果數(shù)量令人滿意即可終止,輸出查詢結(jié)果。若還是沒有獲得足夠多的簡(jiǎn)歷,則修改閾值進(jìn)行第三輪召回,如此循環(huán),直到找出足夠數(shù)量的搜索結(jié)果。
2 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)的軟硬件配置如表1所示。
從智聯(lián)招聘上收集了200份不同樣式的個(gè)人簡(jiǎn)歷和10份招聘啟事,采用基于LLM的方法進(jìn)行人崗匹配,并將搜索結(jié)果和人工檢索的結(jié)果進(jìn)行匹配,發(fā)現(xiàn)匹配的準(zhǔn)確率在70%左右。對(duì)于人崗匹配的正確程度,有不同的等級(jí)劃分,例如完全匹配、不同程度的部分匹配等,并賦予了不同的權(quán)重。設(shè)完全匹配權(quán)重為w1,不同程度的部分匹配權(quán)重為w2,w3,...,wm 等。完全匹配數(shù)量為n1,部分匹配數(shù)量為n2,n3,...,nm,總樣本數(shù)量為N。則準(zhǔn)確率公式為:
Accurracy = w1*n1 + w2*n2 + ...+wm*nm/N *100%
經(jīng)分析發(fā)現(xiàn),影響準(zhǔn)確率的原因主要是簡(jiǎn)歷的樣式比較多,大語(yǔ)言模型處理的時(shí)候,有些簡(jiǎn)歷不能百分百理解準(zhǔn)確,在預(yù)處理中有信息遺漏;自然語(yǔ)言描述的文本內(nèi)容采用BGE編碼,BGE編碼是基于trans?former網(wǎng)絡(luò)的,由于人員不足,提供的訓(xùn)練數(shù)據(jù)樣本量偏小是造成影響準(zhǔn)確度的一個(gè)主要原因,以后在繼續(xù)擴(kuò)充樣本量持續(xù)改進(jìn)之后,準(zhǔn)確率會(huì)有相應(yīng)提高。
3 結(jié)束語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了基于大語(yǔ)言模型方法的人崗匹配系統(tǒng),雖然當(dāng)前準(zhǔn)確率還不能達(dá)到人工匹配的水準(zhǔn),但以后還可以通過(guò)大量標(biāo)注數(shù)據(jù)來(lái)增強(qiáng)訓(xùn)練,實(shí)現(xiàn)對(duì)模型的改進(jìn)和優(yōu)化,從而不斷提升準(zhǔn)確率和命中率。可以預(yù)見,在人工智能爆發(fā)的時(shí)代,傳統(tǒng)人工翻閱簡(jiǎn)歷匹配工作崗位的方式在不遠(yuǎn)的將來(lái)就會(huì)被新技術(shù)取代,從而大大提高企業(yè)人力資源部門的工作效率。
參考文獻(xiàn):
[1] 賀偉,汪林,吳小玥.人工智能技術(shù)對(duì)人力資源管理研究的影響述評(píng)[J].中國(guó)科學(xué)基金,2024,38(5):831-840.
[2] 陳春鳳,李榮遠(yuǎn).大數(shù)據(jù)和人工智能技術(shù)背景下文科生數(shù)據(jù)思維培養(yǎng)研究[J].電腦知識(shí)與技術(shù),2024,20(18):111-113,120.
[3] 劉瓊雯,林川.面向小樣本的崗位模糊匹配推薦算法[J].電子設(shè)計(jì)工程,2023,31(14):51-56,61.
[4] 張如靜,高圣國(guó).基于前景理論下不確定語(yǔ)言評(píng)價(jià)的人崗雙邊匹配決策研究[J].計(jì)算機(jī)與數(shù)字工程,2024,52(2):492-495.
[5] 代必芳,陳貴平.人工智能問答系統(tǒng)的對(duì)話與改進(jìn)策略研究:以文心一言為例[J].電腦知識(shí)與技術(shù),2024,20(8):14-16,38.
【通聯(lián)編輯:梁書】