趙峰濤
(西安培華學院, 圖書館, 陜西, 西安 710125)
互聯(lián)網(wǎng)時代,圖書無論是在種類上還是在數(shù)量上都呈現(xiàn)激增狀態(tài),高校學生在日常的學習過程中離不開圖書館的書本借閱,而傳統(tǒng)的借閱形式很難在數(shù)百萬冊的圖書中快速準確的找到目標種類,查找類似題材時更是需要耗費大量時間成本。傳統(tǒng)的檢索形式時間成本高、檢索效率低,已經(jīng)完全落后于時代。相較于傳統(tǒng)形式,智能化書目推薦系統(tǒng)可以通過學生偏好、興趣度等數(shù)據(jù)進行統(tǒng)計分析,從而有針對性的為讀者推薦相應書目,既節(jié)省時間又更為準確。
協(xié)同過濾算法主要是假設(shè)具有同樣或類似興趣點的用戶在需求上也存在相似性,通過分析用戶的歷史行為過濾篩選有用信息,利用近鄰技術(shù)獲取不同用戶或不同項目之間的相似性,采用權(quán)重加權(quán)平均分值預測目標偏好,從而進行智能推薦。
近鄰檢索法是利用數(shù)據(jù)的相似性查找目標數(shù)據(jù),當目標數(shù)據(jù)為距離最近的前k個時則稱為k近鄰搜索法。相似性通常采用空間上的數(shù)據(jù)距離來進行表征,距離越近,則認為相似性越高。常用的包括歐氏距離、皮爾森積矩系數(shù)以及余弦相似性等。歐氏距離最直觀,但在受主觀影響大的評分時效果不佳;皮爾森積矩系數(shù)主要是反映線性變量的相關(guān)性;余弦相似度通常用向量之間的夾角來反映相似程度[1]。
高校圖書館中的圖書量遠遠多于學生量,針對這種用戶比項目少的情況,基于用戶的協(xié)同過濾算法更為適合。由于缺少用戶評分的渠道,因此引入借閱持續(xù)時長、借閱總次數(shù)以及續(xù)借次數(shù)作為影響用戶興趣的因子[2]。

(1)
(2) 借閱總次數(shù):被借次數(shù)越多,興趣越大。設(shè)借閱總次數(shù)為t,最大值為max,以最大值為基準劃分為5個級別:

like2=1,0 (2) (3) 續(xù)借次數(shù):用戶感興趣才會續(xù)借,否則會及時歸還。將續(xù)借次數(shù)進行映射: (3) 最終用戶對某一圖書的興趣度采用3個分量的平均值,即: like=(like1+like2+like3)/3 (4) 協(xié)同過濾法項目之間的權(quán)值是算法的核心,本研究采用中國圖書館分類號作為權(quán)值進行計算。根據(jù)中圖分類號,每本書都有唯一編號,從左到右通過數(shù)字、字母代表分類,其樹形結(jié)構(gòu)如圖1所示。 圖1 中圖分類樹 根據(jù)分類樹中的位置,兩本書之間的類型因子可以通過式(5)計算: (5) 其中,height為分類樹高度,parent(i,j)為圖書i與j的父節(jié)點所處高度。 由于高校圖書管的圖書數(shù)量龐大,導致學生借閱圖書的關(guān)系矩陣特別稀疏,因此采用嵌入基于項目的協(xié)同過濾法與基于用戶的協(xié)同過濾法混合的形式,首先搜索近鄰用戶,然后通過圖書興趣度以及類型因子構(gòu)建推薦模型,整體流程如圖2所示。 圖2 協(xié)同過濾推薦模型建立流程 設(shè)n代表圖書類型,u(t)代表借閱頻次,則特征向量表示為U=(u(1),u(2),u(3),…,u(n)),將U作為讀者特征進行k近鄰檢索,v代表近鄰用戶,采用余弦定理計算用戶之間的相似度,將與目標距離最近的k個近鄰記作讀者集Uk[3]: (6) 由于借閱關(guān)系矩陣稀疏,在計算用戶相似度時嵌入基于項目的協(xié)同過濾,采用這種混合協(xié)同過濾算法得出的評分彌補矩陣空缺。設(shè)Iu代表目標用戶u的待推薦項目集,Iv代表近鄰用戶v參與評分的項目集,對于Iu~Iv這部分項目,利用已參與評分的項目的加權(quán)平均得到的分數(shù)計算未評分的項目得分,從而計算得出目標用戶對這部分項目的評分。 (7) 高校圖書館不僅是學生借閱圖書的場地,也是各類讀書小組、學術(shù)探討的重要活動場地。因此書目推薦系統(tǒng)的不僅要包括圖書檢索、自助借閱、超時扣費等基礎(chǔ)功能,還要提供圖書推薦、新書推薦、共同興趣好友推薦等輔助功能。利用原有的借閱數(shù)據(jù)庫獲取協(xié)同過濾推薦模型所需源數(shù)據(jù),采用Hadoop分布式框架增加運行效率,作為附加推薦功能的借閱系統(tǒng)為學生提供圖書管理與推薦工作。 由于推薦算法涉及輸入借閱記錄,需要從借閱數(shù)據(jù)庫提取數(shù)據(jù),因此采用與傳統(tǒng)業(yè)務分離的模式設(shè)計系統(tǒng)整體結(jié)構(gòu),主要包括數(shù)據(jù)層、預處理層、計算層、業(yè)務層以及展示層,整體結(jié)構(gòu)如圖3所示。 圖3 系統(tǒng)整體結(jié)構(gòu) 其中,數(shù)據(jù)層主要負責存儲借閱記錄,學生信息、圖書信息等基礎(chǔ)數(shù)據(jù);預處理層主要是剔除噪聲數(shù)據(jù),補充缺失數(shù)據(jù),將數(shù)據(jù)進行規(guī)范化格式轉(zhuǎn)換以利于計算;計算層作為推薦系統(tǒng)的核心模塊,利用MapReduce分布式框架并行運行關(guān)鍵算法,將運算結(jié)果存儲在數(shù)據(jù)層;業(yè)務層主要與數(shù)據(jù)層進行交互,封裝算法邏輯,分別處理借閱與推薦業(yè)務;展示層主要是通過圖形化界面為學生提供推薦書目。 根據(jù)學生的需求以及系統(tǒng)整體架構(gòu),將高校圖書館書目推薦系統(tǒng)劃分為前臺及后臺兩大核心功能,整體功能模塊組成如圖4所示。其中, 圖4 系統(tǒng)功能模塊 (1) 后臺管理:主要包括登錄管理、圖書管理、學生管理、公告管理、超期扣費、參數(shù)設(shè)置6個模塊。登錄管理模塊主要驗證用戶的賬號及密碼,確保權(quán)限;圖書管理模塊主要記錄圖書分類號、作者等基本信息;學生管理模塊負責學生帳號及基本信息管理;公告管理模塊實現(xiàn)管理員發(fā)布各項規(guī)定、時間表等信息;超期扣費模塊實現(xiàn)自主扣費;參數(shù)設(shè)置模塊由管理員進行參數(shù)管理[5]。 (2) 前臺展示:主要包括個性化圖書推薦、相同興趣好友推薦、新書推薦、借閱排行、系統(tǒng)公告、圖書搜索6個模塊。個性化圖書推薦展示根據(jù)協(xié)同過濾模型推薦的topN書目列表;新書推薦主要展示近期新增圖書;借閱排行展示按照借閱次數(shù)排序的列表;系統(tǒng)公告展示相關(guān)公告信息;圖書搜索模塊提供按照書名、作者、出版社等查詢條件的檢索查詢功能。 高校圖書館書目推薦系統(tǒng)中的推薦模型需要利用學生的借閱信息計算借閱持續(xù)時長、借閱總次數(shù)以及續(xù)借次數(shù),權(quán)值計算時涉及使用中圖分類號作為類型因子,因此系統(tǒng)的核心數(shù)據(jù)庫表需包括借閱記錄表、圖書信息表、興趣度記錄表、推薦書目表等。 (1) 借閱記錄表:主要包括學生姓名、學號、性別、學院、操作時間、圖書編號、圖書名稱、作者、isbn編號、操作類型等字段。其中操作類型包括借閱、歸還、續(xù)借三類。按年份進行分區(qū)存儲。 (2) 圖書信息表:主要包括圖書編號、中圖編號類型、圖書大類、類型名稱、圖書名稱、圖書類型、作者、出版社、出版年份、入館日期、位置、isbn編號等字段。其中中圖分類號采用“/”分隔,之前編號代表最小區(qū)分類型。 (3) 推薦好友表:主要包括學號、圖書編號、圖書名稱、興趣度、好友學號等字段。 (4) 推薦書目表:主要包括學號、圖書編號、圖書名稱、興趣度、作者、出版社等字段。 為驗證系統(tǒng)功能,選用國內(nèi)某大學圖書館的1 000名學生的實例借閱數(shù)據(jù)帶入設(shè)計的推薦模型進行實驗測試,設(shè)置服務器配置為8 G內(nèi)存,500 G硬盤,在Eclipse環(huán)境下利用Java語言編程,利用1 000名學生的實際借閱記錄54 w條作為實驗數(shù)據(jù),其中包括18個專業(yè)、22類圖書。統(tǒng)計不同類型圖書的借閱次數(shù)、時長、續(xù)借次數(shù),根據(jù)圖書興趣度模型計算,最終借閱頻次組成22維的圖書興趣數(shù)據(jù)表如表1所示(隨機截取了5位學生的記錄)。 表1 圖書借閱頻次即興趣度數(shù)據(jù)表 對得到的新數(shù)據(jù)表采用k近鄰搜索算法進行同類興趣同學的搜索,計算不同學生的近鄰用戶的余弦相似度,以學生J09240215為例,當k=5時,計算得到近鄰用戶相似度如表2所示。 表2 學生J09240215近鄰用戶相似度 由于借閱矩陣稀疏,采用推薦命中率評判推薦效果較難,因此本研究采用評價絕對誤差MAE衡量協(xié)同過濾推薦算法的實際效果,計算公式為 (8) 為了驗證模型推薦書目的實際效果,計算不同近鄰個數(shù) k與不同推薦個數(shù)N的推薦絕對誤差MAE進行衡量,分別取k為10~80,N為10、15、20,將1 000名學生的借閱記錄代入系統(tǒng)模型,計算MAE值,得到結(jié)果如圖5所示。 圖5 不同k與N的推薦MAE值對比 由上圖可知k值過小則推薦效率降低,k值過大則算法運行負擔加重,當k值取10~50之間逐步增加時,推薦效果有顯著增強,當k值達到60以后,推薦效果不再顯著提升。而且,k值較少時,N的數(shù)量越小推薦效果越好。由此可知,當近鄰個數(shù)太少時,可推薦書目也很少,沒有包含目標用戶喜歡的大部分的書目,此時若推薦數(shù)量過多反而將用戶不喜歡的也加入了進去,反過來講,近鄰個數(shù)多則推薦數(shù)量多為好。因此建議近鄰個數(shù)k值選擇60以上,推薦數(shù)量N選擇20,此時誤差最小,推薦效果最好。 本研究基于圖書興趣度排序構(gòu)建基于類型因子的協(xié)同過濾推薦模型,經(jīng)過實際借閱數(shù)據(jù)證明推薦效果隨著近鄰個數(shù)與推薦數(shù)量的變化有所不同,為高校圖書館的書目推薦提供了有實際意義的信息化方案。但目前模型采用的興趣度分量還比較少,后續(xù)如可以加入圖書標簽、文本摘要等信息則系統(tǒng)功能會更加完善,另外在圖書相似度算法方面還需進一步深入研究。2.2 基于類型因子計算權(quán)重

3 協(xié)同過濾推薦模型
3.1 模型建立流程

3.2 讀者特征提取
3.3 構(gòu)建協(xié)同過濾推薦模型

4 高效圖書館書目推薦系統(tǒng)設(shè)計
4.1 學生需求分析
4.2 系統(tǒng)整體結(jié)構(gòu)

4.3 功能模塊設(shè)計

4.4 核心數(shù)據(jù)庫表
5 系統(tǒng)功能實例驗證
5.1 實例驗證過程


5.2 推薦效果檢驗標準

5.3 推薦書目效果

6 總結(jié)