朱錳鋼,張 馳,張 縣
(1.西安文理學(xué)院 圖書館,西安 710065;2.西北政法大學(xué) 圖書館,西安 710122;3.西安歐亞學(xué)院 圖書館,西安 710065)
圖書館作為知識(shí)的海洋,是為用戶提供圖書借閱和學(xué)術(shù)支持等服務(wù)的重要場(chǎng)所.在傳統(tǒng)圖書館管理模式中,圖書處于被動(dòng)借閱地位,通常由用戶的學(xué)習(xí)需求和興趣偏好所決定,存在圖書資源利用率低、查找困難與拓展性差等弊端.[1]因此,為避免圖書管理員選購(gòu)圖書的盲目性,帶動(dòng)用戶參與圖書館資源建設(shè)的積極性,以及提升圖書館的整體服務(wù)水平,圖書館薦購(gòu)系統(tǒng)越來(lái)越受到業(yè)界的高度關(guān)注[2-3].通過(guò)該系統(tǒng)用戶可以向圖書館推薦購(gòu)買自己所需圖書,從而最大化滿足用戶對(duì)圖書館的個(gè)性化服務(wù)需求,對(duì)促進(jìn)圖書館的集約化和數(shù)字化發(fā)展具有重大意義[4].
當(dāng)前已有很多相關(guān)學(xué)者對(duì)此類系統(tǒng)的設(shè)計(jì)展開一系列研究,例如李澎林等人和張晗等人,分別利用數(shù)據(jù)挖掘與用戶畫像完成系統(tǒng)設(shè)計(jì)[5-6].這兩種系統(tǒng)的薦購(gòu)界面比較友好,能滿足不同用戶的圖書薦購(gòu)需求,但系統(tǒng)面臨的數(shù)據(jù)稀疏性問(wèn)題影響了圖書推薦質(zhì)量,且在面對(duì)超大數(shù)據(jù)集時(shí),系統(tǒng)的存儲(chǔ)容量和計(jì)算能力受硬件限制較大.
云計(jì)算技術(shù)作為一個(gè)新型的計(jì)算機(jī)科學(xué)領(lǐng)域,因具有虛擬化的特性,能夠?qū)⒂?jì)算機(jī)資源邏輯抽象成資源池,實(shí)現(xiàn)信息整合、資源共享和按需服務(wù)等功能,且硬件成本和維護(hù)費(fèi)用較低,能有效擴(kuò)展圖書館的發(fā)展空間和完善圖書館的數(shù)字化服務(wù)功能.因此,本文設(shè)計(jì)基于云計(jì)算技術(shù)的圖書館薦購(gòu)系統(tǒng).
設(shè)計(jì)基于云計(jì)算技術(shù)的圖書館薦購(gòu)系統(tǒng),將云計(jì)算技術(shù)作為核心,使用戶能通過(guò)客戶端和移動(dòng)終端等設(shè)備接入Web云,達(dá)到圖書館信息實(shí)時(shí)雙向傳遞的目的.該系統(tǒng)總體結(jié)構(gòu)用圖1描述.
圖1 圖書館薦購(gòu)系統(tǒng)總體結(jié)構(gòu)
(1)數(shù)據(jù)源層包含大量圖書館累積的數(shù)據(jù),由圖書書名、圖書摘要等圖書數(shù)據(jù),以及檢索記錄、瀏覽數(shù)據(jù)等用戶信息兩部分構(gòu)成,由于這些數(shù)據(jù)以不同的形式存儲(chǔ)于各個(gè)機(jī)器中,因此需要對(duì)其進(jìn)行整合,并將用戶及圖書特征從中提取出來(lái).
(2)云計(jì)算平臺(tái)層包含數(shù)據(jù)預(yù)處理、分布式Hadoop計(jì)算、分布式存儲(chǔ)和管理模塊四部分.依次通過(guò)數(shù)據(jù)預(yù)處理的數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、映射以及集成過(guò)程處理數(shù)據(jù)源層的圖書館數(shù)據(jù),以消除其內(nèi)噪聲;分布式Hadoop計(jì)算是該層的核心,依據(jù)應(yīng)用需求,選用適當(dāng)?shù)姆治稣{(diào)度形式劃分預(yù)處理后圖書館數(shù)據(jù)的計(jì)算串行任務(wù),使其變?yōu)槟軌虿⑿械淖尤蝿?wù),并分配到各個(gè)slave Task Tracker節(jié)點(diǎn)上執(zhí)行;分布式存儲(chǔ)利用分布式文件系統(tǒng)HDFS分塊存儲(chǔ)經(jīng)過(guò)計(jì)算的圖書館數(shù)據(jù),以便于業(yè)務(wù)應(yīng)用層的調(diào)用;管理模塊由資源、備份和安全管理等部分組成,負(fù)責(zé)為該層提供相應(yīng)的管理服務(wù).
(3)業(yè)務(wù)應(yīng)用層主要由圖書薦購(gòu)、云/Web圖書檢索和圖書推薦引擎組等模塊構(gòu)成.依據(jù)云計(jì)算平臺(tái)層存儲(chǔ)的圖書館數(shù)據(jù),圖書薦購(gòu)模塊采用圖書館薦購(gòu)流程,向用戶提供圖書薦購(gòu)服務(wù);通過(guò)云圖書檢索模塊可以查詢電子圖書、高校館藏和公共館藏等云端圖書館藏信息,使用戶詳細(xì)了解所需圖書的獲取途徑;Web圖書檢索模塊內(nèi)嵌Google圖書API和豆瓣等功能,用戶利用該模塊能夠?yàn)g覽圖書封面與目錄等詳情,從而判斷是否薦購(gòu)此圖書;圖書推薦引擎組模塊的推薦引擎,運(yùn)用基于文本語(yǔ)義和用戶偏好的圖書推薦算法,向用戶推薦感興趣的同類型圖書;此外系統(tǒng)評(píng)估模塊可以實(shí)現(xiàn)系統(tǒng)精準(zhǔn)度、多樣性和穩(wěn)定性等方面的評(píng)估,以滿足圖書用戶的個(gè)性化薦購(gòu)需求.
(4)用戶交互層是連接用戶和系統(tǒng)的橋梁,通過(guò)液晶顯示模塊可以將薦購(gòu)等操作界面和查詢及推薦等結(jié)果展示給用戶,系統(tǒng)管理員利用該界面可以查看與設(shè)置圖書推薦引擎組參數(shù),并實(shí)現(xiàn)整個(gè)系統(tǒng)的運(yùn)行管理.
1.2.1 圖書推薦的圖書推薦引擎結(jié)構(gòu)
用于向用戶提供圖書推薦服務(wù)的圖書推薦引擎組模塊中,單個(gè)推薦引擎結(jié)構(gòu)用圖2描述.該模塊由特征向量采集、特征-圖書初始推薦以及推薦處理3個(gè)單元組成.采用提取裝置從用戶行為數(shù)據(jù)庫(kù)中獲取用戶行為特征,并使用轉(zhuǎn)換裝置將其變?yōu)橄鄳?yīng)的特征向量[7-8],其與從用戶屬性數(shù)據(jù)庫(kù)內(nèi)直接獲取的用戶屬性特征共同構(gòu)成特征向量數(shù)據(jù)庫(kù),在此基礎(chǔ)上特征-圖書初始推薦單元,運(yùn)用基于文本語(yǔ)義和用戶偏好的圖書推薦算法獲取圖書初始推薦結(jié)果,利用推薦處理單元的過(guò)濾器對(duì)圖書初始推薦結(jié)果進(jìn)行篩選,同時(shí)排序器依據(jù)用戶反饋機(jī)制收集的用戶反饋信息排列篩選結(jié)果,將其經(jīng)過(guò)推薦解釋單元的數(shù)據(jù)解析后,通過(guò)用戶交互層的液晶顯示模塊可視化展示圖書最終推薦結(jié)果.
圖2 圖書推薦引擎結(jié)構(gòu)圖
1.2.2 圖書館信息展示的液晶顯示模塊結(jié)構(gòu)
系統(tǒng)用戶交互層中,具有圖書館信息展示功能的液晶顯示模塊具體結(jié)構(gòu)用圖3描述.該模塊選用的顯示器型號(hào)為YD-502彩色液晶VRAM型,其容量和點(diǎn)陣數(shù)分別為64k×8、320×240,并且能夠顯示8種顏色,是因?yàn)轱@示器上任意點(diǎn)都包含紅(R)、綠(G)和藍(lán)(B)3種顏色,同時(shí)無(wú)法調(diào)整灰度.DC/DC轉(zhuǎn)換器可生成液晶需要的各類驅(qū)動(dòng)電壓[9];DC/AC逆變器負(fù)責(zé)冷陰極背光燈的控制;液晶驅(qū)動(dòng)電路通過(guò)分時(shí)技術(shù)可以并行完成數(shù)據(jù)的顯示和寫入操作[10],從而達(dá)到實(shí)時(shí)更新畫面的目的.
圖3 液晶顯示模塊結(jié)構(gòu)圖
1.3.1 圖書館薦購(gòu)流程
系統(tǒng)業(yè)務(wù)應(yīng)用層中的圖書薦購(gòu)模塊,通過(guò)圖4所示流程實(shí)現(xiàn)圖書館薦購(gòu).用戶登錄圖書館薦購(gòu)系統(tǒng)后,輸入薦購(gòu)圖書信息,若能夠在云端檢索到該圖書,并且未被薦購(gòu),則通過(guò)Web圖書檢索功能瀏覽該圖書詳情,以快速確認(rèn)是否薦購(gòu)該圖書,確認(rèn)后判斷該圖書所屬分類已薦購(gòu)總金額和圖書館年度已薦購(gòu)總金額等是否超出既定標(biāo)準(zhǔn)[11-12],在未超標(biāo)的情況下即可成功薦購(gòu).如果用戶在云端未能檢索到所需圖書,或者用戶瀏覽圖書詳情后拒絕薦購(gòu),則向用戶推薦感興趣的圖書,例如同類型、同作者等;如果推薦的圖書被拒絕薦購(gòu),則重新推薦;針對(duì)完成薦購(gòu)的圖書不能重復(fù)操作,僅能添加關(guān)注.
圖4 圖書館薦購(gòu)流程圖
1.3.2 基于文本語(yǔ)義和用戶偏好的圖書推薦算法
系統(tǒng)業(yè)務(wù)應(yīng)用層中圖書推薦引擎組模塊,使用文本語(yǔ)義結(jié)合用戶偏好的方法完成圖書推薦.利用TF-IDF算法提取圖書書名、圖書摘要和圖書目錄三種文本信息中的關(guān)鍵詞,以消除文本內(nèi)低信息量詞匯對(duì)圖書推薦結(jié)果的影響[13-14].通過(guò)公式(1)描述TF-IDF算法的形式:
(1)
式中:圖書文檔用d描述,其總數(shù)和其內(nèi)詞匯分別用N、t描述,d內(nèi)t的呈現(xiàn)頻率用ntd描述,圖書文本Di在d內(nèi)出現(xiàn)的總次數(shù)用Nd描述,存在詞匯t的圖書文檔總數(shù)用Dt描述,詞匯t的詞頻和逆文本頻率分別用TF(t,d)、IDF(t)描述.當(dāng)某些詞匯只呈現(xiàn)于單個(gè)圖書文檔中時(shí),詞匯的TF-IDF值等于0,為防止此種情況發(fā)生,將拉普拉斯平滑添加到IDF(t)的分母部分,可得到公式(2)所示的TF-IDF形式:
(2)
通過(guò)上式求出圖書文本Di中每個(gè)詞匯t的TF-IDF值后,各圖書文本的關(guān)鍵詞即為依據(jù)TF-IDF值排列的前n個(gè)詞匯.引入向量空間模型將上述提取的圖書文本關(guān)鍵詞轉(zhuǎn)化為向量形式,進(jìn)而計(jì)算圖書文本相似度.假設(shè)D={D1,D2,…,Dn}表示數(shù)量為n的圖書文本集,提取其關(guān)鍵詞后所得共有的m個(gè)詞匯集合用W={w1,w2,…,wm}描述,則依據(jù)向量空間模型能獲得公式(3)所示的詞匯-文本矩陣Q,用以描述每個(gè)圖書文本數(shù)據(jù):
(3)
式中:圖書文本Di中詞匯t的權(quán)值用矩陣內(nèi)各元素qij描述,其通常為t在Di中的TF-IDF值,該值與t在Di中的重要度具有正比關(guān)系,此時(shí)Q內(nèi)行號(hào)為i的向量qi則代表圖書文本Di,使用公式(4)描述qi的形式:
(4)
式中:j的取值介于[1,m]范圍內(nèi).
通過(guò)公式(5)求解圖書文本向量的余弦值,便能獲得圖書文本Di和Dj之間的語(yǔ)義相似度:
(5)
式中:向量?jī)?nèi)積和范式分別用“·”、‖·‖描述.
設(shè)u代表某個(gè)圖書用戶,其檢索記錄中的圖書編號(hào)列表用Lu={l1,l2,…,lm}描述,該用戶的興趣偏好集合用X={x1,x2,…,x2n}描述,其為用戶最近檢索的2n本圖書.假設(shè)圖書文本庫(kù)全集用B={b1,b2,…,bk}描述,其相應(yīng)的文本向量用P={p1,p2,…,pk}描述,集合X中各圖書相應(yīng)的文本向量用Pu={p1,p2,…,p2n}描述,且滿足Pu?P.通過(guò)公式(5)求出Pu中某圖書Di和全集B中不考慮Lu的圖書之間的文本相似度,獲得與Di相似度最高的圖書sDi,處理完P(guān)u內(nèi)全部圖書后,獲得用戶近鄰集和相應(yīng)的圖書文本相似度集,分別用{sD1,sD2,…,sD2n}、{sim1,sim2,…,sim2n}描述.依據(jù)圖書文本相似度集的降序形式排序用戶近鄰集,用戶u的圖書推薦結(jié)果即為排序靠前的n本圖書.
以某大型圖書館作為實(shí)驗(yàn)對(duì)象,所需數(shù)據(jù)源為其內(nèi)圖書數(shù)據(jù)和用戶信息,該圖書館館藏書籍共計(jì)81 267本,注冊(cè)用戶為8 129人,使用本文系統(tǒng)完成該圖書館的薦購(gòu)服務(wù),以驗(yàn)證所設(shè)計(jì)系統(tǒng)的薦購(gòu)性能.
該系統(tǒng)每日會(huì)獲取到超過(guò)1 800萬(wàn)條的數(shù)據(jù)信息,為保證系統(tǒng)進(jìn)行圖書館薦購(gòu)所需數(shù)據(jù)源的實(shí)時(shí)性,比較不同圖書用戶數(shù)量下,系統(tǒng)每秒產(chǎn)生數(shù)據(jù)量和每秒消費(fèi)數(shù)據(jù)量,具體用圖5描述.分析圖5可以發(fā)現(xiàn),系統(tǒng)每秒產(chǎn)生數(shù)據(jù)量和圖書用戶數(shù)量具有正比關(guān)系,且呈線性增長(zhǎng)趨勢(shì),系統(tǒng)每秒消費(fèi)數(shù)據(jù)量與系統(tǒng)每秒產(chǎn)生數(shù)據(jù)量變化趨勢(shì)一致,但始終保持最高.因此表明,本文系統(tǒng)能夠及時(shí)處理產(chǎn)生的數(shù)據(jù),并且處理能力不受圖書用戶數(shù)量的影響,滿足圖書館薦購(gòu)所需數(shù)據(jù)源的實(shí)時(shí)性需求.
圖5 每秒產(chǎn)生數(shù)據(jù)量和每秒消費(fèi)數(shù)據(jù)量對(duì)比
兩個(gè)圖書用戶A和B的薦購(gòu)圖書名稱分別為《魚翅與花椒》、《Go程序設(shè)計(jì)語(yǔ)言》,兩種圖書的作者編號(hào)分別為F2380以及F3617,在系統(tǒng)云圖書檢索模塊未找到以上圖書的情況下,系統(tǒng)針對(duì)圖書用戶需求產(chǎn)生的前10條推薦結(jié)果用表1描述.分析表1可以看出,兩個(gè)圖書用戶的薦購(gòu)圖書類型分別為美食和編程,使用本文系統(tǒng)產(chǎn)生的前10條推薦結(jié)果類型與圖書用戶薦購(gòu)圖書類型完全相同,且排在靠前位置的均為同一作者所著圖書.因此可得,本文系統(tǒng)針對(duì)不同圖書用戶均具有較理想的圖書推薦性能,符合圖書用戶的個(gè)性化需求.
表1 部分圖書推薦結(jié)果記錄
本文系統(tǒng)的Web圖書檢索模塊,可以為圖書用戶提供薦購(gòu)圖書詳情瀏覽功能,相應(yīng)界面用圖6描述.從圖6可以看出,本文系統(tǒng)的Web圖書檢索模塊支持圖書精確檢索和按類型檢索兩種方式,并且圖書信息十分豐富,包含圖書編號(hào)、作者、封面以及簡(jiǎn)介等詳情,同時(shí)具備薦購(gòu)和添加關(guān)注的功能.因此表明,本文系統(tǒng)的Web圖書檢索模塊,能為用戶確認(rèn)是否薦購(gòu)所瀏覽圖書提供有效參考.
圖6 薦購(gòu)圖書詳情瀏覽界面
統(tǒng)計(jì)分析某日上午8~9時(shí),本文系統(tǒng)獲取的前8條圖書薦購(gòu)記錄,具體用表2描述.分析表2可以看出,當(dāng)圖書處于未薦購(gòu)狀態(tài),且相應(yīng)金額未超標(biāo)時(shí),用戶可以成功薦購(gòu)所需圖書,否則圖書薦購(gòu)失敗,滿足系統(tǒng)設(shè)定的約束條件.因此表明,本文系統(tǒng)具有較優(yōu)異的圖書館薦購(gòu)效果,可以避免圖書重復(fù)薦購(gòu)和薦購(gòu)金額超標(biāo)的情況.
表2 某日上午部分圖書薦購(gòu)記錄
圖書館是收集、整合圖書資源,并為用戶提供借閱和參考服務(wù)的重要機(jī)構(gòu),其持續(xù)擴(kuò)張的海量數(shù)據(jù)信息與云計(jì)算技術(shù)的大量資源集群特點(diǎn)相吻合,因此本文設(shè)計(jì)基于云計(jì)算技術(shù)的圖書館薦購(gòu)系統(tǒng).該系統(tǒng)對(duì)持續(xù)增長(zhǎng)的海量數(shù)據(jù)具有較好的處理能力,能有效保證圖書館薦購(gòu)所需數(shù)據(jù)源的實(shí)時(shí)性,并且針對(duì)不同圖書用戶的推薦效果均較為理想.此外,在為用戶確認(rèn)是否進(jìn)行圖書薦購(gòu)提供可靠依據(jù)的同時(shí),還可以避免圖書重復(fù)薦購(gòu)和薦購(gòu)金額超標(biāo)的情況.