陳 亮
(大連東軟信息學(xué)院, 遼寧 大連 116023)
據(jù)教育部公布的最新數(shù)據(jù)顯示,2022年高校應(yīng)屆畢業(yè)生人數(shù)再創(chuàng)新高,突破1 000萬人,整體社會的就業(yè)壓力依然巨大[1]。對于求職者來說,招聘網(wǎng)站是其獲取求職信息的主要方式,目前市面上已有許多類型的招聘網(wǎng)站,這些網(wǎng)站會定期發(fā)布一些企業(yè)的招聘需求,但是這些招聘信息的數(shù)據(jù)量龐大,求職者想要在海量的招聘信息中找到適合自身需求的崗位十分困難,這些網(wǎng)站存在的一個普遍問題是只為企業(yè)發(fā)布招聘信息和求職者搜索招聘信息提供了一個平臺,但是并不能給求職者提供高效、系統(tǒng)性的專業(yè)建議和指導(dǎo),求職者在這些平臺上也無法快速、準(zhǔn)確的地獲取自己需要的企業(yè)招聘信息?;诖?本文設(shè)計實現(xiàn)了一個基于協(xié)同過濾算法的智能崗位分析系統(tǒng),旨在利用大數(shù)據(jù)和人工智能技術(shù)對海量的招聘信息數(shù)據(jù)進行智能分析和處理,不僅可以讓求職者更加直觀地了解目前的就業(yè)行情與需求,也可以讓求職者更快速和便捷地獲取適合自己的崗位需求信息。
智能崗位分析系統(tǒng)整體數(shù)據(jù)架構(gòu)包括數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)分析和數(shù)據(jù)可視化展示等部分。數(shù)據(jù)源主要來自主流招聘網(wǎng)站上公開的招聘信息,采集技術(shù)采用Python爬蟲框架Scrapy,原始數(shù)據(jù)存儲在Hadoop平臺分布式文件系統(tǒng)HDFS上,通過Hive進行數(shù)據(jù)查詢和處理,得到的數(shù)據(jù)結(jié)果通過Sqoop導(dǎo)入MySQL數(shù)據(jù)庫,通過機器學(xué)習(xí)領(lǐng)域的協(xié)同過濾算法進行智能化分析,最后通過可視化技術(shù)對結(jié)果數(shù)據(jù)進行展示。系統(tǒng)數(shù)據(jù)架構(gòu)圖如圖1所示。
圖1 系統(tǒng)數(shù)據(jù)架構(gòu)圖Fig.1 System data architecture diagram
本系統(tǒng)主要包括兩個角色,分別為管理員和普通用戶。滿足用戶基本業(yè)務(wù)需求的用例是高層用例,這些用例包括用戶基本操作和管理員基本操作。高層用例圖如圖2所示。
圖2 高層用例圖Fig.2 High-level use case diagram
數(shù)據(jù)采集部分采用Python爬蟲框架技術(shù)Scrapy,獲取主流招聘網(wǎng)站的招聘信息,作為整個系統(tǒng)的原始數(shù)據(jù)源。Scrapy是開源快速的網(wǎng)絡(luò)爬蟲框架,可以從網(wǎng)站獲取網(wǎng)頁數(shù)據(jù)信息,并從頁面中得到用戶想要的數(shù)據(jù),它的核心是Scrapy engine爬蟲引擎,通過Scheduler調(diào)度模塊模擬發(fā)送HTTP請求、Downloader下載器模塊接收并生成頁面響應(yīng),Spider爬蟲程序模塊迭代提取網(wǎng)頁中的數(shù)據(jù)內(nèi)容,Item Pipeline數(shù)據(jù)管道模塊對獲得的數(shù)據(jù)進行持久化的存儲[2]。Scrapy爬蟲框架如圖3所示。
圖3 Scrapy爬蟲框架Fig.3 Scrapy crawler frame
平臺環(huán)境搭建采用虛擬化技術(shù)虛擬出三臺Linux服務(wù)器構(gòu)成集群,主機名分別設(shè)為shixun01、shixun02、shixun03。集群配置shixun01 CPU核心數(shù)為4,磁盤空間為50 GB,內(nèi)存大小為8 GB;shixun02 CPU核心數(shù)為2,磁盤空間為50 GB,內(nèi)存大小為4 GB;shixun03 CPU核心數(shù)為2,磁盤空間為50 GB,內(nèi)存大小為4 GB[3]。在搭建好的數(shù)據(jù)平臺上安裝Hadoop、MySQL、Hive、Sqoop等軟件工具。數(shù)據(jù)平臺如圖4所示。
圖4 數(shù)據(jù)平臺Fig.4 Data platform
數(shù)據(jù)倉庫使用Hive技術(shù)進行建設(shè)。整體數(shù)據(jù)倉庫架構(gòu)分為原始數(shù)據(jù)層、基礎(chǔ)數(shù)據(jù)層、明細數(shù)據(jù)層、聚合數(shù)據(jù)層和應(yīng)用數(shù)據(jù)層。原始數(shù)據(jù)層接收采集的原始數(shù)據(jù),基礎(chǔ)數(shù)據(jù)層存儲經(jīng)過清洗后的原始數(shù)據(jù),明細數(shù)據(jù)層根據(jù)業(yè)務(wù)場景將基礎(chǔ)數(shù)據(jù)進行細化分類,聚合數(shù)據(jù)層根據(jù)業(yè)務(wù)主題和需求提前聚合相關(guān)統(tǒng)計數(shù)據(jù),應(yīng)用數(shù)據(jù)層根據(jù)需求存儲用于產(chǎn)出可視化圖表的應(yīng)用結(jié)果數(shù)據(jù)。數(shù)據(jù)倉庫架構(gòu)圖如圖5所示。
圖5 數(shù)據(jù)倉庫架構(gòu)Fig.5 Data warehouse architecture
預(yù)測問題一直是機器學(xué)習(xí)領(lǐng)域中最重要的問題。很多算法包括回歸算法、決策樹算法等都是用來解決預(yù)測的常用算法。本系統(tǒng)預(yù)測算法采用經(jīng)典的協(xié)同過濾算法,首先依據(jù)用戶屬性特征,找到具體相似興趣的用戶,其次根據(jù)用戶評價矩陣以及對產(chǎn)品的評價結(jié)果構(gòu)建協(xié)同過濾算法,進而預(yù)測其他未評分的項目或者用戶,最后根據(jù)預(yù)測出的結(jié)果對用戶進行推薦。
該算法的基本操作步驟如下:①利用已經(jīng)擁有的用戶行為歷史數(shù)據(jù),構(gòu)造用戶項目評分矩陣;②通過相似度計算公式計算用戶之間的相似度,將相似度較高的用戶當(dāng)作目標(biāo)用戶的近鄰集;③在進行評分預(yù)測后,按照TOP-N原則為用戶進行推薦[4]。
2.5.1 構(gòu)建用戶項目評分矩陣
構(gòu)建用戶項目評分矩陣Rmn,矩陣行中有m個用戶,用U表示,U={U1,U2,…,Um},矩陣列中有n個項目,用I表示,I={i1,i2,…,in},Rij表示用戶i對項目j的實際評分,若用戶i對項目j未評分,則Rij為0,用戶項目評分矩陣公式如下:
(1)
2.5.2 用戶評分相似度計算
用戶評分的相似度計算以用戶項目評分矩陣為基礎(chǔ),用評分矩陣中的每一行的評分向量表示用戶的實際興趣。所以,計算用戶評分的相似度實質(zhì)上就是計算用戶評分向量之間的距離[5]。傳統(tǒng)的協(xié)同過濾算法中最常用的計算相似度的方法是皮爾遜相似度計算方法,其計算公式如下:
(2)
在獲取用戶a和其他全部用戶的相似度后,將相似度排名最高的前h個用戶作為該用戶的近鄰集,應(yīng)用評分預(yù)測公式得出最終的預(yù)測評分。評分預(yù)測公式如下[6]:
(3)
本系統(tǒng)可以實現(xiàn)智能化求職者薪資預(yù)測功能,根據(jù)用戶輸入的條件和用戶的瀏覽記錄信息等數(shù)據(jù),運用傳統(tǒng)的協(xié)同過濾算法和皮爾遜相似度計算方法,計算出用戶評分向量之間的距離,應(yīng)用評分預(yù)測公式得出最終的預(yù)測評分,測算出匹配求職者條件和能力的薪資范圍,并響應(yīng)到前端模塊。推薦流程圖如圖6所示。
圖6 推薦流程圖Fig.6 Flow chart of recommendation
可視化展示部分前端采用Axure RP工具,它是一種用來進行原型設(shè)計的專業(yè)工具,可以快速地創(chuàng)建網(wǎng)站原型和應(yīng)用軟件原型,同時可以定義需求和規(guī)格,生成網(wǎng)站和應(yīng)用軟件規(guī)格說明文檔[7]。網(wǎng)站內(nèi)的分析圖采用第三方可視化工具Sugar BI,Sugar BI基于百度Echarts,能提供豐富的圖表組件,開箱即用、零代碼操作、不需要SQL,降低開發(fā)成本的同時,還能提高業(yè)務(wù)對數(shù)據(jù)的使用效率[8]。Sugar BI支持多種方式對接數(shù)據(jù)源,如直連數(shù)據(jù)庫、上傳Excel/CSV文件、API接口、靜態(tài)JSON錄入等[9]。
用戶進入系統(tǒng)首頁,可以進行注冊和登錄,首頁顯示可視化展示系統(tǒng)、智能招聘系統(tǒng)和需求分析系統(tǒng)等功能入口。系統(tǒng)首頁如圖7所示。
圖7 系統(tǒng)首頁Fig.7 System homepage
點擊進入數(shù)據(jù)概況界面,界面顯示的信息包含公司全稱、公司簡稱、公司規(guī)模、融資階段、區(qū)域、職位名稱、工作經(jīng)驗、學(xué)歷要求、薪資、職位福利、經(jīng)營范圍、職位類型。界面上方包含查詢功能和搜索功能,用戶能更清晰、直觀地找到適合的職位。數(shù)據(jù)概況界面如圖8所示。
圖8 數(shù)據(jù)概況界面Fig.8 Data overview interface
為了能讓用戶更好地分析自己的能力和找到合適的崗位需求信息,系統(tǒng)通過文字云圖、柱狀圖、餅狀圖、漏斗圖、矩形數(shù)形圖等形式分別對企業(yè)發(fā)布的薪資情況、企業(yè)情況、公司規(guī)模分布、學(xué)歷和工作經(jīng)驗分布等進行了詳細的可視化展示。企業(yè)發(fā)布的薪資概況界面如圖9所示。
圖9 薪資概況界面Fig.9 Salary overview interface
企業(yè)概況界面如圖10所示。
圖10 企業(yè)概況界面Fig.10 Enterprise overview interface
目前,系統(tǒng)的智能化模塊已完成用戶薪資預(yù)測功能,用戶輸入相關(guān)信息后,系統(tǒng)就能根據(jù)算法模型預(yù)測其最低薪資標(biāo)準(zhǔn),并在前端進行展示。薪資預(yù)測功能如圖11所示。
圖11 薪資預(yù)測功能Fig.11 Salary forecasting function
用戶評分矩陣對于協(xié)同過濾算法來說,是十分重要的概念,主要作用是計算項目間或用戶間的相似度,用戶評分矩陣的稀疏程度對預(yù)測結(jié)果有明顯的影響。如果用戶評分矩陣特別稀疏,整體的預(yù)測和推薦的質(zhì)量會大幅下降,所以如何解決用戶評分矩陣的稀疏性,是提高協(xié)同過濾算法預(yù)測和推薦質(zhì)量的核心。
皮爾遜相似度的計算方法在計算的過程中不會使用缺失數(shù)據(jù),所以本文使用皮爾遜相似度計算時不用考慮數(shù)據(jù)稀缺的問題,而是需要著重考慮共同評分項數(shù)目不同的問題,可以使用預(yù)測數(shù)據(jù)填充的方法解決未知評分的問題,具體方法如圖12所示[10]。
圖12 改進的算法過程Fig.12 Improved algorithm process
本系統(tǒng)圍繞招聘系統(tǒng)無法聚焦和智能分析的問題,設(shè)計了一個集招聘信息可視化展示和智能分析于一體的系統(tǒng)。該系統(tǒng)包括數(shù)據(jù)采集、數(shù)據(jù)清洗、平臺搭建、數(shù)據(jù)倉庫建設(shè)、智能分析以及可視化展示等部分;系統(tǒng)通過Python爬蟲技術(shù)獲取主流招聘網(wǎng)站的數(shù)據(jù)作為原始數(shù)據(jù)源,通過虛擬化技術(shù)和Linux操作系統(tǒng)搭建Hadoop大數(shù)據(jù)平臺,通過Hive技術(shù)進行數(shù)據(jù)倉庫建設(shè)和數(shù)據(jù)處理,將得到的結(jié)果數(shù)據(jù)通過Sqoop導(dǎo)入MySQL數(shù)據(jù)庫,通過協(xié)同過濾算法進行智能分析,通過Axure RP和Sugar BI對結(jié)果數(shù)據(jù)進行可視化展示,可視化展示可以幫助用戶清晰直觀地看到供需關(guān)系,用戶點擊智能招聘系統(tǒng),可以按照其所在城市、掌握的技術(shù)、工作年限等條件,快速找到符合自己需求的招聘信息,為廣大求職者提供了一個方便、準(zhǔn)確、快捷的智能崗位分析平臺。
目前,系統(tǒng)智能化部分采用的協(xié)同過濾算法是經(jīng)典傳統(tǒng)的算法,雖然在解決未知評分的問題上做了相應(yīng)優(yōu)化,但是預(yù)測評分和精度方面還有待提升,后續(xù)會嘗試采用更多的協(xié)同過濾改進算法進行持續(xù)迭代,提高算法的精度。同時,會開發(fā)更多的智能化功能,不斷滿足求職者對招聘信息數(shù)據(jù)分析方面的需求。