一種基于混合模型的個性化職位信息推薦系統及實現方法
【技術領域】
[0001] 本文涉及個性化推薦,數據挖掘領域。
【背景技術】
[0002] 隨著大數據的思想落地,推薦系統漸漸受到業界的熱捧,它給互聯網帶來的效益 是無法估量的。不僅僅是電商,各種互聯網行業慢慢的都引入了推薦技術,例如:電影網站、 音樂播放器、社交平臺、職位招聘、餐飲服務等等。對推薦系統而言,推薦結果的好壞嚴重影 響用戶對服務的評價。但是,目前大多數中小型應用中建立的推薦功能由于算法策略選取 和設計的不合理,使推薦結果不準確。
[0003] 冷啟動和評分稀疏的問題一直是推薦方面不可避免的難題,針對這兩個問題,本 文提出一種基于并行式的混合推薦策略,設計了一套完整的職位信息推薦系統。針對系統 采集的職位信息文本利用Lucene分詞器和TF-IDF算法挖掘出文本中的具有主題含義的關 鍵詞。新用戶注冊時系統提供引導頁面采集背景知識。對背景知識采用同樣的方法挖掘關 鍵詞,選擇恰當的相似性計算方法計算匹配新用戶背景的職位進行推薦,這是一種典型的 基于內容的推薦方式。另外系統還提出了一種基于聚類的協同過濾算法,通過填補預測評 分優化用戶-物品評分矩陣降低矩陣的稀疏度,利用FP-Growth關聯挖掘算法發現潛在的 關聯規則,向用戶推薦可能的職位組合,最后,基于歸納統計設計輔助推薦策略,增強系統 粘性。
【發明內容】
[0004] 為了解決以往的求職系統中個性化和智能化不足、以及冷啟動和評分稀疏的問 題,本文發明提出了一種基于混合模型的個性化職位信息推薦系統,采用多種推薦思想策 略和結合職位招聘系統自身的特點設計一套個性化的職位信息推薦系統,采用的技術方案 為:
[0005] -種基于混合模型的個性化職位信息推薦系統,包括表現層,推薦層,信息抽取層 和信息采集層;所述信息采集層與所述信息抽取層之間、所述信息抽取層與所述推薦層之 間、所述推薦層與所述表現層之間均通過共享數據實現銜接;
[0006] 所述信息采集層負責從互聯網招聘網站中抓取特征鏈接,編寫網絡爬蟲程序,基 于Nutch進行二次開發,通過修改Nutch中Crawl類代碼,采用正則表達式對外鏈接進行過 濾得到需要的特征鏈接,并將特征鏈接保存在本地的CrawlDb文件數據庫中;
[0007] 所述信息抽取層負責從特征頁面中解析原始的職位信息,將底層獲取的特征鏈接 上傳至HDFS文件系統;
[0008] 所述推薦層負責整個職位推薦系統的推薦引擎算法,所述算法包括:基于內容的 推薦算法、基于聚類分析的協同過濾算法,基于關聯規則的推薦算法、基于歸納統計的輔助 推薦算法;
[0009] 所述表現層負責向用戶提供交互界面,將推薦層計算出的推薦項目,通過網頁的 形式向求職者展現。
[0010] 進一步地,
[0011] 所述基于混合模型的個性化職位信息推薦系統采用基于JSP+JavaBean+Servlet 的方法構建,靜態頁面使用HTML展現,動態頁面使用JSP展現。
[0012] 本發明還提出了一種基于混合模型的個性化職位信息推薦系統的實現方法,包 括:信息采集層負責編寫網絡爬蟲程序,從互聯網的招聘網站中抓取特征鏈接,然后將特征 鏈接作為信息抽取層的輸入,信息采集層與信息抽取層通過共享爬蟲抓取的特征鏈接數據 進行溝通;信息抽取層采用基于Hadoop的并行抽取技術,從特征鏈接頁面當中解析出職位 信息數據,將職位信息按照指定格式保存在本地數據庫;推薦層根據存儲在數據庫中的用 戶評分信息、用戶點擊行為信息和用戶背景知識采用對應的推薦算法向表現層推送職位。 [0013] 進一步,所述信息采集層的實現步驟包括:
[0014] 步驟1. 1 :分析主流招聘網站的當中職位詳情頁面的鏈接特征,構造相應的正則 表達式;
[0015] 步驟1. 2 :修改Nutch當中Crawl,java類的代碼,重新編譯Nutch,部署Nutch ;
[0016] 步驟1. 3 :執行Nutch腳本文件,進行抓取。
[0017] 進一步,所述信息抽取層的實現步驟包括:
[0018] 步驟2. 1 :搭建Hadoop分布式平臺,將爬蟲模塊產生的特征鏈接文本上傳至HDFS 當中;
[0019] 步驟2. 2 :針對不同的職位詳情頁面的結構編寫對應的MapReduce解析程序,獲取 職位詳情的文本信息存儲在HDFS當中;
[0020] 步驟2. 3 :編寫TF-IDF算法程序獲取文本信息中的關鍵詞作為職位信息的職位關 鍵詞。
[0021] 進一步,所述推薦層中的基于內容的推薦算法的具體實現步驟包括:
[0022] 步驟3. 1 :新用戶根據引導頁面定制偏好,包括專業背景、期望工資、期望工資地 點、專業技能、備注信息,系統保存用戶背景知識;
[0023] 步驟3. 2 :利用Lucene分詞和TF-IDF算法挖掘背景知識的關鍵詞,按照用戶id, 關鍵詞的形式存儲;
[0024] 步驟3. 3 :采用Dice系數度量用戶背景知識內容和職位記錄的相似度,保存相似 度高的前幾項作為新用戶推薦項。
[0025] 進一步,所述推薦層中的基于聚類分析的協同過濾算法的具體實現步驟包括:
[0026] 步驟4. 1 :將評分數據表與職位記錄表連接,構建用戶-職位類別矩陣;
[0027] 步驟4. 2 :利用Mahout提供的K-means聚類算法,將用戶劃分為k類;
[0028] 步驟4. 3 :用預測評分填補用戶_評分矩陣中的缺省值,降低矩陣稀疏度;
[0029] 步驟4. 4 :基于修改過后的評分矩陣利用協同過濾算法計算推薦結果。
[0030] 進一步,所述推薦層中的基于關聯規則的推薦算法的實現步驟包括:
[0031] 步驟5. 1 :系統收集用戶每一次點擊職位行為數據;
[0032] 步驟5. 2 :基于步驟5. 1中的數據采用Mahout中的FP-Growth算法計算出職位之 間的關聯規則,所述關聯規則如下:
[0033] R1: (2, 5, 9) = > (10, 18) R2: (6, 20) = > (13, 1, 25, 30).... Rn
[0034] 其中,Rk(k = 1,2, 3-n)代表一條關聯規則,括號中數值代表職位Id。
[0035] 進一步,所述推薦層中的基于歸納統計的輔助推薦算法的實現步驟包括:
[0036] 步驟6. 1 :將最近一段時間內點擊次數最多的N個職位記錄到數據庫的表格中;
[0037] 步驟6. 2 :將各個行業最近點擊最多的熱門職位記錄到數據庫的表格中;
[0038] 步驟6. 3 :將用戶最近瀏覽的N個職位記錄到數據庫的表格中;
[0039] 步驟6. 4 :采用SQL語句針對步驟6. 1至步驟6. 3中數據庫對應表格的記錄進行 統計。
[0040] 和現有技術相比,本發明的有益效果為:
[0041] (1)本文設計的職位推薦系統采用了混合推薦模型,一定程度上降低了系統冷啟 動和矩陣稀疏性帶來的影響,推薦結果更加全面和精確,可以極大增強系統的粘性和用戶 體驗。
[0042] (2)用戶可以定制自己的職位偏好獲取推薦信息。
[0043] (3)系統能夠學習用戶行為,發現用戶興趣變化。
【附圖說明】
[0044] 圖1為本發明的系統結構示意圖;
[0045] 圖2為本發明的基于聚類分析的協同過濾推薦算法流程圖;
[0046] 圖3為本發明的信息抓取模塊的執行流程圖;
[0047] 圖4為本發明的信息抽取執行流程圖。
【具體實施方式】
[0048] 本發明提出了一種基于混合模型的個性化職位信息推薦系統,解決了以往的求職 系統中個性化和智能化不足的缺陷,采用多種推薦思想策略組合和結合職位招聘系統自身 的特點設計一套個性化的職位信息推薦系統,系統將用戶分為兩類,分別為新用戶和老用 戶,當新用戶注冊系統時,新用戶可以向系統定制自己的求職意向(職位意向,工作地點意 向,薪水意向,行業意向等等)基于這些偏好信息,系統后臺立即能夠從職位數據表當中通 過計算相似度向用戶推薦一些匹配度較高的項目,然后對于老用戶登錄系統由于已經有了 相關背景信息,系統直接從表中獲取推薦項目即可,接下來無論是新用戶還是老用戶都會 在系統中進行查詢職位、點擊職位、職位評分等諸多行為,系統會不斷的記錄這些顯示和隱 式的行為,作為后續推薦模塊當中的數據依據,比如評分數據可以用來構建評分矩陣進而 采用協同過濾算法計算出用戶可能會感興趣的職位、點擊行為數據可以作為關聯規則算法 的輸入進而計算出職位的關聯度,依據關聯度的大小向用戶推薦