劉雙雙
(1.江西農(nóng)業(yè)大學(xué)南昌商學(xué)院計算機(jī)系,南昌330029;2.江西工業(yè)職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,南昌330029)
隨著計算機(jī)網(wǎng)絡(luò)的快速發(fā)展及大數(shù)據(jù)時代的到來,互聯(lián)網(wǎng)上的招聘信息量呈爆炸式增長,一方面給畢業(yè)生帶來了極大的便利,他們獲取的信息資源越來越豐富,另一方面也給畢業(yè)生帶來困惑:面對海量的招聘信息,畢業(yè)生需要花費(fèi)更多的精力和時間去搜尋滿意的職位信息,“信息超載”(Information Overload)現(xiàn)象越來越嚴(yán)重,從而導(dǎo)致了“雙難”(就業(yè)難,招人難)現(xiàn)象。為了有效解決“雙難”問題,推薦系統(tǒng)(Recommender System)[1]能根據(jù)用戶的特征,快速幫助畢業(yè)生在廣袤的崗位信息海洋中針對性地尋找到滿意的崗位信息,提供個性化服務(wù)。目前推薦系統(tǒng)所采用的推薦技術(shù)主要包括基于內(nèi)容的推薦(Content-Based Recommendation)、協(xié)同過濾(Collaborative Filtering)、關(guān)聯(lián)規(guī)則(Association Rules)、信息檢索(Information Retrieval)和混合推薦(Hybrid Approach)。協(xié)同過濾推薦系統(tǒng)是現(xiàn)有推薦系統(tǒng)中最流行、最行之有效的一種推薦系統(tǒng)。目前協(xié)同過濾推薦一般分為三類:基于項目的協(xié)同推薦、基于用戶的協(xié)同推薦和基于模型的協(xié)同推薦[2]。本研究采用的是基于用戶的協(xié)同過濾推薦算法。
基于用戶的協(xié)同過濾推薦算法是協(xié)同過濾推薦中最基本的算法,該算法由Resnick 等人于1994 年提出,其原理是根據(jù)目標(biāo)用戶的興趣特征,先找到與目標(biāo)用戶興趣相似較高的其他用戶群,然后把那些用戶群感興趣的并且目標(biāo)用戶沒有被推薦過的產(chǎn)品推薦給目標(biāo)用戶。其流程圖如圖1 所示。
圖1 基于用戶協(xié)同過濾推薦流程圖
基于用戶協(xié)同過濾推薦技術(shù)主要分以下三個階段[3]:第一、用戶偏好表示(Representation):鄰居用戶形成(Neighborhood Formation)、推薦生成(Recommendation Generation)。
(1)偏好信息的收集:在表示用戶偏好之前,先要收集用戶的偏好信息,基于用戶的協(xié)同過濾推薦一般先采用顯式跟蹤和隱式跟蹤這兩種方式對目標(biāo)用戶的興趣愛好進(jìn)行收集[4]。顯式跟蹤是讓畢業(yè)生主動向系統(tǒng)提供自己的興趣愛好,系統(tǒng)先以表單的形式展示崗位信息,并對每個崗位信息提供五個單選項(1 表示很不喜歡,2 表示不喜歡,3 表示喜歡,4 比較喜歡,5 表示很喜歡)讓畢業(yè)生進(jìn)行選擇,實現(xiàn)五分制評分。隱式跟蹤是指通過對畢業(yè)生的崗位瀏覽歷史記錄等進(jìn)行分析得到畢業(yè)生對崗位的偏好信息。本研究綜合采用顯式跟蹤和隱式跟蹤兩種方式進(jìn)行對學(xué)生的崗位愛好信息進(jìn)行收集。本研究中的畢業(yè)生崗位偏好信息的收集來源于我校就業(yè)推薦系統(tǒng),數(shù)據(jù)為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è)生聯(lián)系方式,graduateEmail 畢業(yè)生郵箱,graduateSpe 畢業(yè)專業(yè),graduateSch 畢業(yè)學(xué)校,graduateTime 畢業(yè)時間這十項信息;browseRec 畢業(yè)生瀏覽記錄表有g(shù)raduateId 畢業(yè)生編號,jobId 崗位編號這兩項信息。
(2)偏好信息的表示:無論是通過顯式跟蹤還是隱式跟蹤的方式收集的崗位偏好信息,本研究都采用用戶-崗位評分矩陣R(如表1 用戶-崗位評分矩陣R 所示)表示畢業(yè)生的崗位偏好信息。
表1 用戶-崗位評分矩陣R
R 是一個m×n 階矩陣,其中m 表示畢業(yè)生的數(shù)目,n 表示崗位的數(shù)目。Rij代表的含義如下:
最近鄰選擇是基于用戶的協(xié)同過濾中最核心的步驟,通常做法是先求出用戶間崗位偏好相似性系數(shù)數(shù)據(jù)表,并按崗位偏好相似度sim(ua,ui)從大到小的順序排列。然后選擇相似度較高的用戶組成ua的最近鄰集合。
(1)求用戶相似性:依據(jù)用戶-崗位評分矩陣R 計算目標(biāo)用戶與其他用戶的相似性。求用戶相似性目前主要有均方差相似性(Mean Squared Differences)、余弦相似性(Cosine Similarity)和Pearson 相關(guān)系數(shù)(Pearson Correlation Coefficient)這三種方法,本研究采用余弦相似性方法求解用戶間的相似度,具體公式如(1)所示:
公式中的u、v 分別表示兩個用戶,i 表示崗位,Rui用戶u 對崗位i 的評分,用戶相似性通過向量間的余弦夾角來度量,夾角越小則相似性越髙。將用戶-崗位評分矩陣的數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù),通過余弦相似度算法編程執(zhí)行后,得到一組以崗位代碼為主鍵關(guān)聯(lián)得出用戶間崗位偏好相似性系數(shù)的數(shù)據(jù)表,如表2 鄰居崗位相似性表(Similarity)所示。
(2)確定最近鄰數(shù)量形成鄰居用戶:確定最近鄰數(shù)量的方法有兩種—是事先設(shè)定一個相似性參考值,取與目標(biāo)用戶相似性大于該參考值的用戶作為最近鄰集合。二是直接選取相似性最大的前k 個用戶作為最近鄰集合;本研究采用第二中方法確定最近鄰數(shù)量,選擇相似性較高的用戶組成ua的最近鄰集合Un={u1,u2,u3,…,uk}形成ua的鄰居用戶。
表2 鄰居崗位相似性表(Similarity)
將ua的鄰居用戶瀏覽過的而用戶ua未瀏覽過的崗位信息推薦給ua。具體實現(xiàn)代碼如下:
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è)推薦系統(tǒng)中應(yīng)用協(xié)同過濾推薦技術(shù),根據(jù)畢業(yè)生的興趣愛好、專業(yè)方向等實現(xiàn)了畢業(yè)生的個性化精準(zhǔn)就業(yè)和企業(yè)精準(zhǔn)招聘。但隨著就業(yè)推薦系統(tǒng)中用戶和項目數(shù)量龐大,項目類別的增加,用戶-項目評分矩陣將成為高維矩陣,計算復(fù)雜度會越來越高,將會嚴(yán)重影響推薦的實時性;當(dāng)就業(yè)推薦系統(tǒng)中項目類別的內(nèi)容完全不同時,使用協(xié)同過濾算法搜尋出的最近鄰用戶會不夠合理,將嚴(yán)重影響推薦質(zhì)量。協(xié)同過濾中的稀疏問題和多內(nèi)容問題有待于進(jìn)一步研究。