王海萍
(西安理工大學(xué) 圖書館, 陜西 西安 710054)
隨著大數(shù)據(jù)時代背景下,圖書館館藏所占用的信息量暴漲,其具有總量大、種類多和高價值的特點[1-2]。在海量的數(shù)據(jù)文獻與有限的計算機處理能力中如何找到平衡,研究設(shè)計出可行的文獻檢索服務(wù)方案,具有十分重要的意義。目前,國內(nèi)外關(guān)于圖書館文獻檢索信息化的實踐研究主要體現(xiàn)在3個方面:首先,對于多種文獻來源的收集和分類檢索,大數(shù)據(jù)時代下文獻資源較傳統(tǒng)的圖書資源信息量更為復(fù)雜,如何挖掘并進行有效聚合是研究熱點,例如部分學(xué)者以深度聚合可視化模型為出發(fā)點,建立了基于數(shù)據(jù)資源收集、信息處理、資源整合和可視化的圖書館館藏數(shù)據(jù)系統(tǒng)[3-4];其次,文獻大數(shù)據(jù)的分析方法研究,支持向量機方法、多維檢索排序方法和文獻活躍度方法等均是在這一背景下所提出的數(shù)據(jù)分析法[5-8];最后,圖書館文獻管理系統(tǒng)的性能和用戶友好程度,這一領(lǐng)域的研究成果較多,結(jié)合最新的操作系統(tǒng)界面以及云存儲等方法,Hadoop云平臺、Worldcat數(shù)據(jù)庫和虛擬現(xiàn)實技術(shù)等均有所應(yīng)用[9-11]。以上3種研究方向均在圖書館文獻檢索方面做出了巨大貢獻,但是隨著大數(shù)據(jù)和5G時代的到來更加海量的文獻數(shù)據(jù)對于現(xiàn)有的檢索服務(wù)方案提出了新的挑戰(zhàn)。
目前較為主流的大數(shù)據(jù)分析技術(shù)以內(nèi)存計算為主,其中Spark平臺作為內(nèi)存計算的主要框架,在互聯(lián)網(wǎng)娛樂、游戲和網(wǎng)絡(luò)電商平臺獲得了十分成功的應(yīng)用[12]。Spark框架內(nèi)的彈性分布數(shù)據(jù)機制具有較高的容錯能力,并且具備高效的機器學(xué)習(xí)庫,能夠?qū)A繑?shù)據(jù)以及圖形的節(jié)點進行分析研究。最為重要的是,Spark框架采用分布式集群計算法,對計算機硬件的依賴性小,能夠有效降低硬件成本。因此,本文提出基于Spark框架下的圖書館文獻檢索服務(wù)方案,希望能夠在充分利用有限計算資源的前提下,滿足大數(shù)據(jù)高強度計算檢索服務(wù)。
基于Spark架構(gòu)進行圖書館文獻服務(wù)方案設(shè)計,本文采用3層,分別為文獻服務(wù)平臺設(shè)計、文獻數(shù)據(jù)分析設(shè)計和文獻數(shù)據(jù)聚合設(shè)計。其基本結(jié)構(gòu),如圖1所示。
圖1 Spark架構(gòu)下圖書館文獻系統(tǒng)設(shè)計結(jié)構(gòu)
文獻服務(wù)平臺通過Web形式給用戶提供互聯(lián)網(wǎng)在線服務(wù),采用了Web顯示系統(tǒng)技術(shù)和網(wǎng)絡(luò)可視化技術(shù)。主要實現(xiàn)文獻檢索、文獻推薦和文獻可視化3個功能。例如,用戶在網(wǎng)絡(luò)搜索框輸入想要檢索的目標詞匯,搜索引擎會觸發(fā)實體或?qū)傩詸z索算法,根據(jù)Spark RDD線索尋找出相關(guān)性靠前的資源并自動排序。然后,可視化模塊將排序的文獻內(nèi)容展示在Web網(wǎng)頁上,脈絡(luò)清晰,通熟易懂。
目前的云數(shù)據(jù)模式存儲的數(shù)據(jù)具有價值高、密度低的特征,對于數(shù)據(jù)分析和挖掘能力要求高[13-15]。本文采用Spark框架下的Lib和Graph函數(shù)庫實現(xiàn)對數(shù)據(jù)的挖掘和智能化分析,該分析方式可以智能挖掘用戶偏好,將用戶比較感興趣的文獻排名靠前。
文獻數(shù)據(jù)聚合是數(shù)據(jù)資源整合的基礎(chǔ)功能,是將本體與關(guān)聯(lián)數(shù)據(jù)融合并以一種相互關(guān)系進行規(guī)范化屬于表達來實現(xiàn)[16]。在本文的聚合設(shè)計中,利用Map和Join函數(shù)對元數(shù)據(jù)進行資源整合,將館藏數(shù)據(jù)、互聯(lián)網(wǎng)文獻庫和紙質(zhì)化信息進行合理整合并聯(lián)。
根據(jù)圖書館目前的檢索使用情況,本文研究實現(xiàn)的算法基于讀者使用習(xí)慣,包含用戶-用戶協(xié)同過濾、用戶-圖書書名推薦等混合搜索策略,每個策略分配一定權(quán)重系數(shù),通過優(yōu)化調(diào)整排序方式,最后獲得近似值,在實際使用中根據(jù)用戶的操作習(xí)慣動態(tài)調(diào)整權(quán)重系數(shù)的大小,最終提高了圖書文獻的檢索效率。由于篇幅有限,因此本文僅就用戶-用戶協(xié)同過濾檢索方法的實現(xiàn)原理。
分析圖書館用戶的使用習(xí)慣發(fā)現(xiàn),當用戶a在進行檢索時,一方面可以通過該用戶之前借閱或者瀏覽過的圖書信息來進行推薦;另外,還可以尋找與用戶a具有類似閱讀習(xí)慣的其他用戶的借閱歷史進行推薦。這種基于用戶-用戶推薦的算法能夠快速讓借閱者檢索到自己想要的圖書。這一算法包含的步驟如下:首先,分析計算出與用戶a具有相似閱讀習(xí)慣的用戶列表;其次,將其他用戶借閱過的文獻信息按一定權(quán)重進行排序后推薦給用戶a。具體操作,如式(1)。
(1)
式中,S表示兩個用戶a和b檢索相似度,無量綱常數(shù);Na表示讀者a的檢索列表;Nb表示讀者b的檢索列表。實際運算過程中通過構(gòu)建一個相似度矩陣,根據(jù)用戶a的檢索行為,讀者b的檢索行為以及另外兩個用戶c和d的檢索行為,就可以建立一個4*4的矩陣。本文所研究的圖書館若有n個用戶,那么就會建立一個n階矩陣進行運算,如圖2所示。
圖2 基于用戶-用戶檢索算法的矩陣排列方式
由于在實際檢索過程中,若用戶a和用戶b均借閱過同一本大學(xué)通用的教科書,這種情況下并能體現(xiàn)用戶對這類文獻感興趣,這是由于客觀條件下大學(xué)所有學(xué)生均需要學(xué)習(xí)這本書籍。因此,本文在原有的相似度算法上增加一個懲罰系數(shù),用于排除這類型通用的檢索結(jié)果,改進的相似度計算,如式(2)。
(2)
式中,log(1+1/Ni)表示懲罰系數(shù);Ni表示用戶的檢索習(xí)慣列表。借閱次數(shù)越高代表用戶借閱該文獻的Ni值越高,說明該文獻是教科書類普適性圖書的可能性越高,因此去懲罰系數(shù)越低,在檢索中將其排名靠后。改進后的檢索算法流程,如圖3所示。
圖3 改進的用戶-用戶協(xié)同檢索算法流程圖
針對加入懲罰系數(shù)后的檢索和剔除過程,本文的處理方法,如圖4所示。
圖4 檢索過程中的內(nèi)存信息分類和檢索流程
對于如何準確從用戶所生成的標簽集合中提取出用戶特征,本文通過將用戶的當前瀏覽記錄或者用戶感興趣的記錄進行排名,作為分布式共享內(nèi)存進行Spark GraphX內(nèi)存計算,實現(xiàn)圖、節(jié)點和邊處理的計算優(yōu)化。主要按以下過程進行實現(xiàn),首先生產(chǎn)Graph并形成空圖表,然后將文獻進行聚合轉(zhuǎn)為節(jié)點和邊,并記錄權(quán)重初始值的W值,最后按照節(jié)點的權(quán)重值進行由大到小的排序進而獲取檢索結(jié)果。
為了驗證改進的Spark內(nèi)存計算圖書館檢索服務(wù)效果,本文選取圖書館從2015—2019年共5年的用戶圖書文獻檢索數(shù)據(jù)進行反演和分析。其中圖書館使用用戶約為50 000人;文獻數(shù)據(jù)共計285 000條;文獻借閱記錄約為1 304 000條。對于文獻檢索的標準根據(jù)準確率和召回率來判定,其中準確率計算標準為R1/(R1+R2),R1表示用戶感興趣并推薦的文獻;R2表示用戶不感興趣但是被推薦的文獻,回測過程中計算用戶在不同文獻數(shù)量下的準確率,然后選取50位作者計算器平均值;召回率計算標準為R1/(R1+R3),R3表示用戶感興趣但是沒有推薦的文獻,召回率的回測過程與準確率一致。
將基于內(nèi)存計算方法的圖書館內(nèi)存檢索成果與傳統(tǒng)的內(nèi)存檢索結(jié)果進行對比,如表1所示。
表1 基于內(nèi)存計算方法的文獻檢索準確率與召回率成果對比
兩種不同檢索方式的運行時間,如圖5所示。
圖5 兩種檢索方式的運行時間對比
從表1可以看出:在文獻數(shù)量為50 000份以內(nèi)時,基于內(nèi)存計算的檢索方式與傳統(tǒng)的圖書館文獻檢索系統(tǒng)其檢索準確率和召回率分別為45.9%、31.6%和45.5%、30.5%,說明在文獻數(shù)量較低的情況下,兩種檢索方式的精確程度相差不大,但是,在運行時間上,基于Spark內(nèi)存計算方式的檢索系統(tǒng)僅需要15 s,而傳統(tǒng)檢索需要28 s,效率提升約一倍。當回測文獻數(shù)量超過50 000份之后,Spark內(nèi)存計算框架系統(tǒng)的準確率74.9%-85.6%;召回率49.9%-60.7%;傳統(tǒng)檢索系統(tǒng)的準確率為60.6%-80.1%,召回率45.6%-59.1%,整體上前者較傳統(tǒng)檢索系統(tǒng)在準確率上提升約14.3%,召回率上提升10.5%,同時,在運行時間上,Spark內(nèi)存計算檢索方式僅僅需要35s,較之前縮短時間約30%。
為進一步優(yōu)化目前圖書館在處理海量文獻數(shù)據(jù)檢索的效率和準確率,本文提出基于Spark平臺的內(nèi)存計算方法,對圖書館檢索方式進行了進一步優(yōu)化處理,并將其與傳統(tǒng)的檢索方式進行了對比分析,結(jié)論如下。
(1) 基于內(nèi)存計算框架的文獻檢索系統(tǒng)能夠?qū)⑦\算中間結(jié)果保存在計算機內(nèi)部存儲器中,解決了傳統(tǒng)檢索方式中大數(shù)據(jù)反復(fù)在硬盤和內(nèi)存中的交換導(dǎo)致效率低下問題。但是增長迅速和大數(shù)據(jù)的特征對于系統(tǒng)平臺的應(yīng)急要求較高,國內(nèi)部分高校圖書館資金有限,其代價是需要過多購置昂貴的高性能服務(wù)器等計算機設(shè)備。
(2) 基于優(yōu)化的用戶-用戶協(xié)同過濾算法,加入懲罰系數(shù),可以有效去除用戶在檢索過程中最為熱門的通用教材,在文獻推薦方面準確率進一步提高。
(3) 文獻數(shù)量在50 000份以內(nèi)時,內(nèi)存計算方式運算速度較傳統(tǒng)方式能夠提升一倍,但是檢索準確率和召回率基本一致;當文獻數(shù)量超過50 000份到280 000份時,內(nèi)存計算檢索方法在準確率上提升約14.3%,召回率上提升10.5%,同時在運行時間上較之前縮短約30%。