劉雙雙
(1.江西農業(yè)大學南昌商學院計算機系,南昌330029;2.江西工業(yè)職業(yè)技術學院電子信息工程學院,南昌330029)
隨著計算機網絡的快速發(fā)展及大數據時代的到來,互聯網上的招聘信息量呈爆炸式增長,一方面給畢業(yè)生帶來了極大的便利,他們獲取的信息資源越來越豐富,另一方面也給畢業(yè)生帶來困惑:面對海量的招聘信息,畢業(yè)生需要花費更多的精力和時間去搜尋滿意的職位信息,“信息超載”(Information Overload)現象越來越嚴重,從而導致了“雙難”(就業(yè)難,招人難)現象。為了有效解決“雙難”問題,推薦系統(Recommender System)[1]能根據用戶的特征,快速幫助畢業(yè)生在廣袤的崗位信息海洋中針對性地尋找到滿意的崗位信息,提供個性化服務。目前推薦系統所采用的推薦技術主要包括基于內容的推薦(Content-Based Recommendation)、協同過濾(Collaborative Filtering)、關聯規(guī)則(Association Rules)、信息檢索(Information Retrieval)和混合推薦(Hybrid Approach)。協同過濾推薦系統是現有推薦系統中最流行、最行之有效的一種推薦系統。目前協同過濾推薦一般分為三類:基于項目的協同推薦、基于用戶的協同推薦和基于模型的協同推薦[2]。本研究采用的是基于用戶的協同過濾推薦算法。
基于用戶的協同過濾推薦算法是協同過濾推薦中最基本的算法,該算法由Resnick 等人于1994 年提出,其原理是根據目標用戶的興趣特征,先找到與目標用戶興趣相似較高的其他用戶群,然后把那些用戶群感興趣的并且目標用戶沒有被推薦過的產品推薦給目標用戶。其流程圖如圖1 所示。

圖1 基于用戶協同過濾推薦流程圖
基于用戶協同過濾推薦技術主要分以下三個階段[3]:第一、用戶偏好表示(Representation):鄰居用戶形成(Neighborhood Formation)、推薦生成(Recommendation Generation)。
(1)偏好信息的收集:在表示用戶偏好之前,先要收集用戶的偏好信息,基于用戶的協同過濾推薦一般先采用顯式跟蹤和隱式跟蹤這兩種方式對目標用戶的興趣愛好進行收集[4]。顯式跟蹤是讓畢業(yè)生主動向系統提供自己的興趣愛好,系統先以表單的形式展示崗位信息,并對每個崗位信息提供五個單選項(1 表示很不喜歡,2 表示不喜歡,3 表示喜歡,4 比較喜歡,5 表示很喜歡)讓畢業(yè)生進行選擇,實現五分制評分。隱式跟蹤是指通過對畢業(yè)生的崗位瀏覽歷史記錄等進行分析得到畢業(yè)生對崗位的偏好信息。本研究綜合采用顯式跟蹤和隱式跟蹤兩種方式進行對學生的崗位愛好信息進行收集。本研究中的畢業(yè)生崗位偏好信息的收集來源于我校就業(yè)推薦系統,數據為2016 年1 月至2018年12 月時間段的所有記錄,包括jobxx 崗位基本信息表、graduatesxx 畢業(yè)生基本信息表和browseRec 畢業(yè)生瀏覽記錄表。其中崗位信息表包括jobId 崗位編號,jobName 崗位名稱,jobCon 崗位條件,jobDes 崗位描述,CoName 公司或單位名稱,jobAdd 工作地點,jobSal 月薪名稱這四項信息;graduatesxx 畢業(yè)生基本信息表包括graduateId 畢業(yè)生編號,graduateName 畢業(yè)生姓名,graduateSex 畢業(yè)生性別,graduateBir 畢業(yè)生出生日期,graduateAdd 畢業(yè)生家庭住址,graduateTel 畢業(yè)生聯系方式,graduateEmail 畢業(yè)生郵箱,graduateSpe 畢業(yè)專業(yè),graduateSch 畢業(yè)學校,graduateTime 畢業(yè)時間這十項信息;browseRec 畢業(yè)生瀏覽記錄表有graduateId 畢業(yè)生編號,jobId 崗位編號這兩項信息。
(2)偏好信息的表示:無論是通過顯式跟蹤還是隱式跟蹤的方式收集的崗位偏好信息,本研究都采用用戶-崗位評分矩陣R(如表1 用戶-崗位評分矩陣R 所示)表示畢業(yè)生的崗位偏好信息。

表1 用戶-崗位評分矩陣R
R 是一個m×n 階矩陣,其中m 表示畢業(yè)生的數目,n 表示崗位的數目。Rij代表的含義如下:

最近鄰選擇是基于用戶的協同過濾中最核心的步驟,通常做法是先求出用戶間崗位偏好相似性系數數據表,并按崗位偏好相似度sim(ua,ui)從大到小的順序排列。然后選擇相似度較高的用戶組成ua的最近鄰集合。
(1)求用戶相似性:依據用戶-崗位評分矩陣R 計算目標用戶與其他用戶的相似性。求用戶相似性目前主要有均方差相似性(Mean Squared Differences)、余弦相似性(Cosine Similarity)和Pearson 相關系數(Pearson Correlation Coefficient)這三種方法,本研究采用余弦相似性方法求解用戶間的相似度,具體公式如(1)所示:

公式中的u、v 分別表示兩個用戶,i 表示崗位,Rui用戶u 對崗位i 的評分,用戶相似性通過向量間的余弦夾角來度量,夾角越小則相似性越髙。將用戶-崗位評分矩陣的數據作為基礎數據,通過余弦相似度算法編程執(zhí)行后,得到一組以崗位代碼為主鍵關聯得出用戶間崗位偏好相似性系數的數據表,如表2 鄰居崗位相似性表(Similarity)所示。
(2)確定最近鄰數量形成鄰居用戶:確定最近鄰數量的方法有兩種—是事先設定一個相似性參考值,取與目標用戶相似性大于該參考值的用戶作為最近鄰集合。二是直接選取相似性最大的前k 個用戶作為最近鄰集合;本研究采用第二中方法確定最近鄰數量,選擇相似性較高的用戶組成ua的最近鄰集合Un={u1,u2,u3,…,uk}形成ua的鄰居用戶。

表2 鄰居崗位相似性表(Similarity)
將ua的鄰居用戶瀏覽過的而用戶ua未瀏覽過的崗位信息推薦給ua。具體實現代碼如下:
Select distinct jobId from browseRec as a where jobId not in
(Select distinct jobId from browseRec as a where graduateId=ua的id 號)
and graduateId in(鄰居用戶列表)
在畢業(yè)生就業(yè)推薦系統中應用協同過濾推薦技術,根據畢業(yè)生的興趣愛好、專業(yè)方向等實現了畢業(yè)生的個性化精準就業(yè)和企業(yè)精準招聘。但隨著就業(yè)推薦系統中用戶和項目數量龐大,項目類別的增加,用戶-項目評分矩陣將成為高維矩陣,計算復雜度會越來越高,將會嚴重影響推薦的實時性;當就業(yè)推薦系統中項目類別的內容完全不同時,使用協同過濾算法搜尋出的最近鄰用戶會不夠合理,將嚴重影響推薦質量。協同過濾中的稀疏問題和多內容問題有待于進一步研究。