張勇豪,鄭佳宜,劉 莉
(廣東白云學院大數據與計算機學院,廣州 510450)
在數字化變革的時代,各平臺加速AI、大數據、云計算等技術布局,網絡招聘相比傳統的線下招聘更方便快捷,更受企業和求職者的青睞。根據艾瑞咨詢2022 年發布的中國網絡招聘市場發展研究報告可知,2022 年高校畢業生達1076 萬人,青年群體結構性就業矛盾更加突出,供需脫節、人崗不適、“慢就業”現象時有發生[1],且企業數量的不斷新增給用戶造成了信息資源過載的問題,人們需要采用更主動、更精準,同時也更加有效的方法從海量數據中找到自身所需要的有效數據[2],而推薦系統則是實現個性化職業推薦的一個重要途徑。在此背景下,本文提出一種基于協同過濾算法的求職推薦系統,該系統通過分析用戶的操作行為,可以更好地理解用戶的求職傾向,進而構建其個人偏好模型,形成用戶標簽體系,為求職者特別是高校畢業生提高人崗匹配的準確性。
目前最受歡迎的推薦算法是協同過濾算法,核心是只需用戶的評分歷史,與被推薦的內容無關[3]。目前,推薦算法分為兩類:基于項目評分的協同過濾算法和基于用戶評分的協同過濾算法[4]。協同過濾算法的思想就是根據用戶之間具有的相同興趣或相同的歷史行為,通過分析用戶群的興趣傾向或者歷史行為信息,利用鄰域方法給予信息相當程度的回應并記錄下,采用Jaccard 系數預測當前用戶可能感興趣的東西或可能產生的行為,從而進行智能推薦。
余弦相似度是度量相關性方法之一,該方法通過對兩個矢量的夾角余弦進行數值分析,進而評估兩個矢量之間的相似度。如果弦值接近1,而夾角趨于0°,則表示兩個矢量的相似性愈大;余弦值愈接近0,夾角愈趨向90°,說明兩個矢量愈不相像。余弦相似度的計算式(1)如下:
Jaccard 系數是用來對有限樣本組的相似性和差異性進行比較的,而Jaccard 系數所對應的指數稱為Jaccard 距離,用以描述不同的集合間的相似性。在很多實際應用中,由于評估的數據集稀疏度過高,因此在計算項目之間的余弦相似度會產生誤差。而將Jaccard 系數運用于推薦系統,并建立相關的評估與分析方法,可以彌補余弦相似度僅考慮用戶評分而忽視其他數據的不足之處,尤其適用于稀疏度較高的數據集。Jaccard 系數值越大,樣本相似度越高。Jaccard系數計算式(2)如下:
根據市場調研進行用戶需求分析,將基于協同過濾算法求職推薦系統分為后臺管理和用戶端。
(1)后臺管理:主要包括系統管理、系統監控、首頁內容發布管理、崗位推薦信息管理、用戶行為數據管理、用戶信息管理、簡歷管理、崗位管理八個模塊。管理員能夠對首頁信息、崗位信息、用戶數據進行管理,其功能模塊設計如圖1所示。

圖1 基于協同過濾算法的求職推薦系統后臺管理
(2)用戶端:主要包括用戶登錄、個性化崗位推薦、在線簡歷生成、簡歷投遞、崗位查找、職友圈、個人中心七個模塊。用戶可以通過登錄注冊編輯個人信息,生成在線簡歷進行簡歷投遞,查找崗位信息和招聘詳情;通過協同過濾模型推薦的Top-N崗位列表生成個性化崗位推薦;通過職友圈瀏覽其他求職者發布的求職經驗和心得,其功能模塊設計如圖2所示。

圖2 基于協同過濾算法的求職推薦系統用戶端
由于企業崗位數量巨大,造成用戶的關系矩陣較于稀疏,因此在協同過濾算法的基礎上,采用Jaccard 系數解決數據的稀疏性。首先,利用目標用戶對崗位的興趣偏好構建數據模型,計算出具有相同興趣的用戶作為領域用戶,并向其推薦得分最高的Top-N項目。算法流程如圖3所示。

圖3 協同過濾推薦模型流程
系統架構的設計是系統實現過程中一個非常重要的環節。本系統架構采用常見的MVC 三層架構模型,分別為視圖層、業務層、數據訪問(持久)層,三層架構實現了更好地降低各層之間的耦合,上層對下層的調用,是采用接口的形式,從而實現了軟件開發中低耦合的基本要求,其系統架構如圖4所示。

圖4 系統架構
視圖層為用戶提供數據顯示和輸入功能,用戶可以通過鼠標、鍵盤和系統進行交互,系統整體上采用B/S結構。
業務層作為系統的核心部分,起到了承上啟下的作用,業務層通過從視圖層接受到的HTTP 請求,根據不同的請求地址調用不同的Handle 來實現不同的業務功能,并通過持久層對數據庫進行操作,數據庫返回的數據經業務層處理后返回到視圖層,視圖層渲染后展示出來。本系統業務層采用Java常用Web框架Spring Boot 和Mybatis框架進行實現。
持久層可將系統實體類與數據庫表進行一一映射,從而可以幫我們快速實現對數據庫的增刪改查操作。
本文系統測試是在一臺Window10 64位操作系統、內存8 GB、CPU 為i5 6500 3.2 GHz 的電腦上進行。本文數據集來自某數據挖掘比賽的數據集,該數據集包含1907 個用戶、1762 個項目數、307624條評分數,見表1。實驗中將數據集分成了訓練集和測試集,并且在4∶1 的比率下進行了實驗。

表1 系統測試的數據集信息
推薦系統的評測指標很多,常用的有平均誤差(MAE)、準確率(Precision)和召回率(Recall)[5],本文實驗使用MAE 作為測試指標。MAE 用于度量兩個連續變量之間的差異,即用戶對項目的實際評分和預測評分之間的平均絕對誤差[6]。計算式(3)如下:
其中:yi為該用戶對推薦崗位的實際評分;為該用戶對推薦崗位的預測評分。MAE值越小,表示推薦質量越好。
為驗證本系統的推薦效果,實驗計算近鄰數量同推薦數量的推薦MAE值。從數據集中隨機選取500個用戶的評分數代入系統模型中進行多次推薦,參考文獻[7],選取近鄰數k的范圍為[10, 70],推薦數N= 5、10 進行試驗,結果如圖5所示。

圖5 近鄰數量同推薦數量的推薦MAE值
由圖5 可知,k值較小反而MAE的值較大,系統模型的準確率降低也就是系統推薦效率較低。在k值為[10,40]時,MAE的值隨k的增加而顯著減小,說明系統推薦效率明顯增強。在k值為[40,70]時,推薦數N= 10的推薦效果比推薦數N= 5的推薦效果好。實驗證明,為達到系統推薦效率最優,應使k>40,N= 10。
基于協同過濾算法的求職推薦系統能夠根據職業偏好、興趣偏好、歷史行為數據等特征,為其提供準確的職位推薦,解決大量的崗位信息給求職者造成信息資源過載的問題。同時縮短了企業招聘周期,降低時間成本。但目前求職推薦系統數據集樣本有限且面向的主要用戶是求職者,后續將繼續增加數據量和完善企業招聘方的功能模塊,使求職推薦系統更好為用戶服務。