王大阜,鄧志文,賈志勇,安計(jì)勇
(中國(guó)礦業(yè)大學(xué) a.圖書館;b.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116)
隨著高校圖書館的館藏紙本文獻(xiàn)、期刊數(shù)據(jù)庫(kù)、特色數(shù)據(jù)庫(kù)等多樣、異構(gòu)資源的持續(xù)建設(shè)發(fā)展,資源的規(guī)模、體量呈現(xiàn)爆炸性增長(zhǎng)態(tài)勢(shì),豐富的資源為讀者學(xué)習(xí)、科研、生活提供了極大輔助作用的同時(shí)也暴露出“信息過載”的問題,讀者從海量資源中找到與其興趣匹配的、高質(zhì)量的資源變得十分困難.以O(shè)PAC系統(tǒng)為例,讀者通過書名、主題、關(guān)鍵詞等條件進(jìn)行檢索,并從中選擇感興趣的圖書.這種主動(dòng)式服務(wù)的前提條件是讀者有明確的檢索需求,然而更多時(shí)候,讀者并沒有明確的需求,或是缺乏良好的檢索技能,從而更傾向于被動(dòng)式的個(gè)性化服務(wù),希望系統(tǒng)“智慧地”向讀者推薦、呈現(xiàn)有可能感興趣的優(yōu)質(zhì)資源,如此,圖書館的閱讀推廣工作更見成效,同時(shí)提升了讀者的服務(wù)體驗(yàn).以讀者為中心,為讀者提供智慧服務(wù),是智慧圖書館建設(shè)的根本宗旨,個(gè)性化推薦系統(tǒng)作為典型的智慧服務(wù)應(yīng)用之一,已成為圖書館領(lǐng)域近年來的研究熱點(diǎn),然而真正實(shí)施技術(shù)研發(fā)并成功落地的案例并不多,多數(shù)還是采用傳統(tǒng)的“熱門圖書”或 “閱讀清單”這種無差異化的、寬泛的閱讀推薦模式[1].事實(shí)上,推薦系統(tǒng)的理念、算法用于精準(zhǔn)營(yíng)銷、個(gè)性推薦、廣告投放等場(chǎng)景,在電子商務(wù)(Amazon、京東、淘寶等)、影音網(wǎng)站(愛奇藝、網(wǎng)易云音樂)、社交網(wǎng)站(微博、豆瓣、今日頭條等)領(lǐng)域均有廣泛的應(yīng)用.
“用戶畫像”(Persona)最早由交互之父Alan Cooper于1998年提出,他表示用戶畫像是“基于用戶真實(shí)數(shù)據(jù)的虛擬代表”[2].用戶畫像是在用戶真實(shí)數(shù)據(jù)的基礎(chǔ)上,用來勾勒用戶特征,描述用戶興趣、需求的重要技術(shù)手段,能夠全面細(xì)致地刻畫用戶的信息全貌,從而為向用戶實(shí)施精準(zhǔn)營(yíng)銷、個(gè)性化推薦服務(wù)奠定基礎(chǔ).換言之,用戶畫像的核心工作是為用戶“打標(biāo)簽”.標(biāo)簽具有3個(gè)主要特征:(1)語(yǔ)義化,讓人快速理解每個(gè)標(biāo)簽的含義;(2)短文本,每個(gè)標(biāo)簽通常只表示一種含義;(3)動(dòng)態(tài)性,用戶的興趣偏好隨時(shí)間推移、情境改變而變化,用戶畫像模型也隨之需要?jiǎng)討B(tài)修正和調(diào)整.
用戶畫像在圖書館學(xué)界已經(jīng)受到廣泛關(guān)注,汪強(qiáng)兵等[3]通過利用在移動(dòng)端的用戶手勢(shì)行為數(shù)據(jù)與關(guān)鍵詞權(quán)重,挖掘用戶閱讀興趣,由此構(gòu)建用戶興趣畫像.韓梅花等[4]根據(jù)抑郁情感詞典分析微博文本,計(jì)算抑郁情感指數(shù),獲取用戶畫像,進(jìn)而推送閱讀治療資源.王順箐[5]以讀者需求為核心,在數(shù)據(jù)采集基礎(chǔ)上構(gòu)建用戶畫像,構(gòu)建智慧閱讀推薦系統(tǒng),提高閱讀推廣的成功率.胡媛等[6]基于讀者用戶畫像,構(gòu)建圖書館知識(shí)發(fā)現(xiàn)服務(wù)模型,實(shí)現(xiàn)圖書館的個(gè)性化、精準(zhǔn)化知識(shí)服務(wù),提升讀者服務(wù)體驗(yàn).劉海鷗等[7]構(gòu)建融合情境、內(nèi)容偏好、互動(dòng)、會(huì)話等多維標(biāo)簽的用戶畫像模型,并以此為基礎(chǔ)提出情境化推薦方法,為讀者精準(zhǔn)推薦個(gè)性化知識(shí)服務(wù).以上研究表明推薦系統(tǒng)引入用戶畫像從理論和技術(shù)角度來說都是可行的.
推薦系統(tǒng)的經(jīng)典算法有兩種:協(xié)同過濾(Collaborative Filtering,CF)算法和基于內(nèi)容(Content Based,CB)的推薦算法,其中CF算法又分為基于用戶的協(xié)同過濾(UserCF)算法、基于物品的協(xié)同過濾(ItemCF)算法,CF算法原理是推薦與用戶有相似興趣的鄰居用戶喜歡的其他Top-N物品或是推薦與用戶喜歡的物品相似的其他Top-N物品.CF算法能夠向用戶推薦豐富的長(zhǎng)尾物品,激發(fā)用戶潛在的興趣.與此同時(shí),容易面臨數(shù)據(jù)稀疏的問題,該問題對(duì)高校圖書館而言格外突出.高校圖書館的館藏紙本書副本少,讀者想借的書可能被他人借閱,造成不同讀者之間借閱同一本書的共現(xiàn)數(shù)據(jù)稀疏,此外讀者不太熱衷于對(duì)圖書的評(píng)分、評(píng)論,造成評(píng)分?jǐn)?shù)據(jù)也同樣稀疏.CB算法原理是構(gòu)造物品特征,推薦與用戶喜歡的物品特征相似的其他Top-N物品,物品特征的表現(xiàn)方式可以是結(jié)構(gòu)化的屬性或非結(jié)構(gòu)化的標(biāo)簽、關(guān)鍵詞.CB算法更適用于這種非結(jié)構(gòu)化的新聞、文獻(xiàn)等文本資源推薦,通過中文分詞、TF/IDF算法、LDA模型等自然語(yǔ)言處理技術(shù)挖掘讀者的興趣關(guān)鍵詞及權(quán)重,構(gòu)造讀者興趣空間向量模型.推薦系統(tǒng)的冷啟動(dòng)問題在推薦領(lǐng)域中普遍存在,包括用戶冷啟動(dòng)、物品冷啟動(dòng)兩個(gè)層面,起因是新用戶或新物品沒有相關(guān)歷史行為數(shù)據(jù),造成無法為新用戶推薦物品或?qū)⑿挛锲吠扑]給用戶.綜上所述,任何一種推薦算法都有各自優(yōu)缺點(diǎn)及適用場(chǎng)景,表1做了全面的歸納總結(jié).
表1 不同推薦算法的特點(diǎn)及適用場(chǎng)景
圖書館學(xué)界關(guān)于推薦系統(tǒng)的研究有:常有學(xué)等[1]基于Spark大數(shù)據(jù)計(jì)算技術(shù)實(shí)現(xiàn)高效率、高準(zhǔn)確度的圖書推薦,提高用戶體驗(yàn).鄧志文等[8]通過社交網(wǎng)提取用戶候選興趣標(biāo)簽,結(jié)合用戶-物品、物品-標(biāo)簽關(guān)系模型,運(yùn)用樸素貝葉斯算法為用戶推送信息.尹婷婷等[9]在深度學(xué)習(xí)視角下提出了以讀者用戶興趣值為基礎(chǔ)的圖書館館藏資源推薦模型,分別從數(shù)據(jù)關(guān)聯(lián)、情景分析和協(xié)同過濾技術(shù)方面進(jìn)行探討,為資源精準(zhǔn)推薦提供參考.王仲鈺等[10]采用協(xié)同過濾算法、關(guān)聯(lián)算法,從用戶相似性和書籍關(guān)聯(lián)性兩個(gè)角度探索圖書推薦服務(wù)策略.王連喜[11]通過挖掘用戶的興趣特征及隱含的需求模式,研究UserCF,CB和基于標(biāo)簽多種推薦方法,實(shí)現(xiàn)用戶與圖書相互關(guān)聯(lián)的個(gè)性化圖書推薦服務(wù).以上學(xué)者均將推薦算法成功應(yīng)用于圖書推薦服務(wù),但都是基于有評(píng)分?jǐn)?shù)據(jù)的公開數(shù)據(jù)集或用戶打的標(biāo)簽數(shù)據(jù)進(jìn)行建模,沒有考慮圖書館評(píng)分、標(biāo)簽稀疏的現(xiàn)實(shí)情況.李澎林等[12]提出基于讀者興趣度與類型因子算法,建立讀者興趣度模型,解決了評(píng)分及借閱關(guān)系稀疏的問題,有很大的借鑒意義,但是選取的讀者興趣特征粒度較粗,且沒有考慮讀者下載行為因素.筆者結(jié)合中國(guó)礦業(yè)大學(xué)實(shí)際情況,當(dāng)前在校師生人數(shù)(約7萬(wàn))遠(yuǎn)少于圖書種類數(shù)(約67萬(wàn)),如果采用ItemCF算法,(67萬(wàn))2的物品高維矩陣在內(nèi)存空間、計(jì)算復(fù)雜度上過高,因此更適合用UserCF算法.此外,為解決推薦系統(tǒng)中的冷啟動(dòng)問題,筆者綜合采用了CB算法、屬性相似度算法.
標(biāo)簽按照產(chǎn)生和計(jì)算方式不同可分為屬性標(biāo)簽、統(tǒng)計(jì)標(biāo)簽、算法標(biāo)簽3種類型,屬性標(biāo)簽是對(duì)實(shí)體基本性質(zhì)的刻畫,如性別、年齡、專業(yè);統(tǒng)計(jì)標(biāo)簽是特定場(chǎng)景下,維度和度量的組合,如某個(gè)讀者月均借閱、下載圖書的頻次;算法標(biāo)簽是不能直接獲取的,需要通過數(shù)據(jù)挖掘或計(jì)算推理得到,如讀者對(duì)不同圖書類別的偏好程度或感興趣的主題.
本文從用戶、圖書兩個(gè)層面建立標(biāo)簽,并構(gòu)建畫像,數(shù)據(jù)來源于圖書館OPAC系統(tǒng)以及豆瓣讀書的評(píng)分?jǐn)?shù)據(jù).用戶標(biāo)簽從用戶屬性標(biāo)簽、用戶行為、用戶興趣3個(gè)維度構(gòu)建.1)用戶屬性標(biāo)簽,是對(duì)用戶屬性的描述.包括性別、年齡、專業(yè)、身份類型(本科生、碩士生、博士生、教師)、是否為新讀者等基本屬性.2)用戶行為標(biāo)簽,是對(duì)用戶活躍程度的描述.包括讀者學(xué)年內(nèi)月均紙質(zhì)書借閱頻次、電子書下載頻次、續(xù)借頻次及活躍度,其中活躍度是對(duì)前3種頻次數(shù)值Sum求和,根據(jù)閾值判定結(jié)果,如當(dāng)Sum≥10時(shí)為高,當(dāng)5≤Sum<10時(shí)為中,當(dāng)Sum<5時(shí)為低.3)用戶興趣標(biāo)簽,是對(duì)用戶圖書類別偏好的描述.豆瓣網(wǎng)站在用戶注冊(cè)賬號(hào)時(shí),會(huì)讓用戶選擇關(guān)于電影、書籍的風(fēng)格喜好,以此作為用戶的興趣標(biāo)簽.圖書館OPAC系統(tǒng)沒有類似功能,可以從用戶學(xué)年內(nèi)紙本書借閱、電子書下載的歷史行為數(shù)據(jù)中分析挖掘.圖書標(biāo)簽從圖書屬性、圖書類型兩個(gè)維度構(gòu)建.1)屬性標(biāo)簽.包括圖書ID、書名、ISBN號(hào)、作者、是否為新書(近3個(gè)月上架圖書)等.2)圖書類型標(biāo)簽,對(duì)應(yīng)圖書的中圖法二級(jí)分類號(hào).用戶、圖書標(biāo)簽體系見表2和表3,圖1是某讀者的用戶畫像示例.
表2 用戶標(biāo)簽維度表
表3 圖書標(biāo)簽維度表
不同身份類型的讀者由于學(xué)歷背景、認(rèn)知能力有所區(qū)別,他們感興趣的書籍是有差異性的,如本科生傾向與課程相關(guān)的參考工具書,研究生傾向與某個(gè)研究主題相關(guān)的學(xué)術(shù)性書籍,教師傾向與有關(guān)學(xué)科前沿的書籍.基于此,本文首先將讀者按以上3種身份類型進(jìn)行劃分,其次再結(jié)合混合推薦算法進(jìn)行圖書推薦.
3.2.1特征構(gòu)造與K近鄰搜尋
《中圖法》目前出版第五版,中圖書分類號(hào)是一種樹狀結(jié)構(gòu),其中大類22種,往下逐層擴(kuò)展,分類號(hào)格式上由字母、數(shù)字、小數(shù)點(diǎn)等構(gòu)成,如TP391屬于第五級(jí)分類,對(duì)應(yīng)分類名信息處理,TP391.1屬于TP391的子類,對(duì)應(yīng)分類名文字信息處理.為解決讀者之間借閱共現(xiàn)數(shù)據(jù)稀疏的問題,本文使用讀者學(xué)年內(nèi)對(duì)不同分類紙質(zhì)圖書的借閱(含續(xù)借)頻次及電子書的下載頻次之和作為讀者的興趣向量特征,分類層級(jí)選取的粒度太粗體現(xiàn)不出讀者喜好圖書的類別,太細(xì)導(dǎo)致維度過大,計(jì)算耗時(shí)長(zhǎng),權(quán)衡考慮,本文選取粒度為二級(jí)層級(jí),總計(jì)222種小類.
假定讀者的興趣特征向量U=(u1,u2,…,un),首先利用離差標(biāo)準(zhǔn)化(Min-Max)方法對(duì)特征做歸一化處理,接著采用余弦相似公式計(jì)算讀者之間的相似度,
不同讀者間相似度矩陣如表4所示.最后從中可以搜尋與讀者相似度最大的K個(gè)近鄰讀者集合,用Uk表示,
表4 不同讀者間相似度矩陣(3個(gè)讀者為例)
3.2.2興趣度計(jì)算
UserCF算法需要結(jié)合鄰居用戶對(duì)某物品的評(píng)分,預(yù)測(cè)用戶對(duì)該物品的評(píng)分.該評(píng)分作為用戶的顯式反饋(點(diǎn)贊、喜歡/不喜歡或打分),反映了用戶對(duì)某物品的興趣度.用戶-物品評(píng)分矩陣R=U×I,行向量表示某用戶的評(píng)分集合,列向量表示某物品的被評(píng)分集合.然而,高校圖書館缺乏甚至沒有讀者對(duì)圖書的評(píng)分?jǐn)?shù)據(jù),借鑒文獻(xiàn)[12]的方法,使用借閱持續(xù)時(shí)間、續(xù)借次數(shù),并增加電子書下載頻次、豆瓣讀書欄目評(píng)分作為興趣度提取的因子,通過多個(gè)因子綜合獲取讀者對(duì)圖書的興趣度.
3.2.2.1借閱時(shí)長(zhǎng)與續(xù)借
讀者對(duì)某本圖書借閱時(shí)間越長(zhǎng)表明對(duì)該該圖書越感興趣,某本圖書的借閱時(shí)長(zhǎng)百分比為:
式中,Ta(u,i)表示讀者u歸還圖書i的時(shí)間,Tb(u,i)表示讀者借閱圖書i的時(shí)間,Tc為圖書館規(guī)定的超期有效期.此外,當(dāng)讀者對(duì)圖書非常喜歡時(shí),會(huì)對(duì)圖書進(jìn)行續(xù)借,限制續(xù)借1次,此時(shí)p=5.最后將p映射成1~5興趣度值,公式如下:
3.2.2.2電子書下載
當(dāng)前,高校圖書館的資源建設(shè)部門對(duì)紙本圖書的采購(gòu)副本量逐漸減少,轉(zhuǎn)化為以電子書為主導(dǎo)資源.以中國(guó)礦業(yè)大學(xué)圖書館為例,目前全館館藏書籍60余萬(wàn)種,230萬(wàn)余冊(cè),基本實(shí)現(xiàn)全覆蓋數(shù)字化.新采購(gòu)的圖書編目后不久,對(duì)紙本圖書掃描加工成電子書,同時(shí)將電子書嵌入到OPAC系統(tǒng)中,方便讀者下載閱讀.由于讀者試讀電子書后,興趣度很高才會(huì)產(chǎn)生下載行為,所以該因素分值設(shè)置相對(duì)較高.興趣度公式如下:
3.2.2.3豆瓣評(píng)分
以上借閱時(shí)長(zhǎng)、電子書下載存在不確定因素,譬如讀者借閱了某本書,可能忙于學(xué)業(yè),沒時(shí)間還書,造成有效的借閱時(shí)間有偏差,電子書下載可能出現(xiàn)試讀時(shí)滿意,待整本書閱讀后卻不滿意的情況.鑒于此,本文引入豆瓣評(píng)分,豆瓣網(wǎng)中讀書欄目中關(guān)于圖書的星級(jí)評(píng)分、評(píng)論是來自興趣相投的網(wǎng)友們真實(shí)反饋,較為公正、準(zhǔn)確,最終根據(jù)算法計(jì)算得出綜合評(píng)分(1~10分),本文將評(píng)分除以2,作為圖書的評(píng)分pref3(u,i).豆瓣網(wǎng)每本圖書的書目、評(píng)分信息通過編寫python爬蟲腳本采集.
最終讀者u對(duì)圖書i的綜合平均興趣度值pref(u,i)=[pref1(u,i)+pref2(u,i)+pref3(u,i)]/3.
接著使用UserCF算法計(jì)算用戶u對(duì)圖書i的興趣度pref(u,i),公式如下:
3.2.2.4時(shí)間衰減因子
讀者的學(xué)習(xí)、研究興趣具有時(shí)間效應(yīng),會(huì)隨著時(shí)間上下文的推移而有所變化,如計(jì)算機(jī)專業(yè)的本科生借閱《機(jī)器學(xué)習(xí)》入門書,該學(xué)生進(jìn)入研究生階段時(shí),可能會(huì)借閱《機(jī)器學(xué)習(xí)》進(jìn)階書.本文在計(jì)算兩個(gè)用戶相似度時(shí),增加“時(shí)間衰減函數(shù)”.∝為時(shí)間衰減因子,tui,tvi分別為用戶u和v借閱圖書i的時(shí)間.
最終用戶u對(duì)圖書i的興趣度為
用戶冷啟動(dòng)解決如何為新讀者推薦合適圖書的問題,新讀者類型包括:新入學(xué)的學(xué)生、新入職的教師以及尚未借閱過圖書的讀者;物品冷啟動(dòng)解決如何為新書找到受眾讀者的問題,圖書館每年花費(fèi)大量資金購(gòu)置新書,致力于第一時(shí)間向讀者推薦新書,從而提高圖書資源利用率.
3.3.1用戶冷啟動(dòng)
用戶冷啟動(dòng)可以根據(jù)用戶性別、年齡、年級(jí)、職稱、學(xué)院/單位自然屬性計(jì)算用戶與用戶的相似度,將相似度高的用戶借閱圖書推薦給目標(biāo)用戶.具體方法是:首先提取所有讀者相關(guān)屬性,作為讀者的向量特征,其中性別離散型屬性使用0、1表示,年齡連續(xù)型屬性采用Min-Max方法歸一成[0,1]數(shù)值,年級(jí)、職稱、學(xué)院等離散型屬性可用One-Hot編碼表示.接著找出與新讀者相似度高的K個(gè)近鄰老讀者集合.當(dāng)為新讀者推薦舊書時(shí),采用UserCF算法中計(jì)算興趣度的公式,預(yù)測(cè)新讀者對(duì)舊書的興趣度,評(píng)選TOP-N舊書推薦給讀者.當(dāng)為新讀者推薦新書時(shí),獲取為老讀者推薦的新書集合,進(jìn)行去重處理后向新讀者進(jìn)行TOP-N推薦.
3.3.2物品冷啟動(dòng)
1)舊書推薦算法流程:
步驟1 根據(jù)讀者登錄OPAC系統(tǒng)的ID號(hào),即學(xué)工號(hào),識(shí)別讀者的身份類別;
步驟2 判斷讀者是否是新讀者,即是否曾經(jīng)借閱、下載過圖書,如果是老讀者,按照步驟3至步驟5順序執(zhí)行,如果是新用戶,按照步驟6、7順序執(zhí)行;
步驟3 提取與讀者身份類型相同群體的讀者-圖書類型興趣向量,計(jì)算讀者之間相似度,獲取相似度較高的近鄰老讀者集合;
步驟4 提取讀者-圖書興趣度矩陣,根據(jù)近鄰讀者對(duì)所借閱書籍的隱式興趣度,預(yù)測(cè)目標(biāo)讀者對(duì)這些圖書的興趣度,并進(jìn)行興趣度排序;
步驟5 過濾預(yù)測(cè)興趣度低及目標(biāo)讀者已借閱過的圖書,并向目標(biāo)讀者推薦TOP-N圖書列表;
步驟6 提取新讀者性別、年齡、年級(jí)(學(xué)生)、職稱(教師)、學(xué)院特征屬性,并與老讀者進(jìn)行相似度計(jì)算;
步驟7 獲取與新讀者特征向量距離相近的近鄰老讀者集合,按照步驟4、5順序執(zhí)行.
2)新書推薦算法流程:
步驟1 判斷讀者是否是新用戶,如果是老讀者,按照步驟2至步驟3順序執(zhí)行,如果是新讀者,按照步驟4至步驟6順序執(zhí)行;
步驟2 提取目標(biāo)讀者的興趣特征向量,提取新書的特征向量,計(jì)算兩者之間相似度,并進(jìn)行相似度排序;
步驟3 過濾相似度低且目標(biāo)讀者已借閱過的圖書,并向目標(biāo)讀者推薦TOP-N圖書列表;
步驟4 提取新讀者相關(guān)特征屬性,并與老讀者進(jìn)行相似度計(jì)算;
步驟5 獲取與新讀者特征向量距離相近的近鄰老讀者集合,獲取老讀者新書推薦集合;
步驟6 對(duì)新書推薦集合進(jìn)行去重處理,并向目標(biāo)讀者推薦TOP-N圖書列表.
具體如圖2所示.
推薦系統(tǒng)體系架構(gòu)如圖3所示,分為數(shù)據(jù)層、處理層、邏輯層、表現(xiàn)層.為避免推薦系統(tǒng)數(shù)據(jù)量龐大造成性能瓶頸,本文設(shè)計(jì)的推薦系統(tǒng)體系架構(gòu)在Hadoop分布式環(huán)境下進(jìn)行部署實(shí)現(xiàn),Hadoop版本選擇Cloudera公司的集成化的發(fā)行版本CDH5.Hadoop是目前流行的針對(duì)大規(guī)模數(shù)據(jù)分析的開源分布式系統(tǒng)基礎(chǔ)架構(gòu),由提供分布式文件存儲(chǔ)(HDFS)和并行計(jì)算框架MapReduce組成,能夠以高可靠、高性能、高擴(kuò)展性的優(yōu)勢(shì)處理海量數(shù)據(jù).
1)數(shù)據(jù)層的元數(shù)據(jù)來源于OPAC系統(tǒng)(讀者、圖書、借閱數(shù)據(jù))、電子書平臺(tái)(下載數(shù)據(jù))、豆瓣讀書評(píng)分?jǐn)?shù)據(jù)3個(gè)方面,其中豆瓣評(píng)分是通過爬蟲技術(shù)采集并輸出至SQL Server數(shù)據(jù)庫(kù).ETL(抽取、轉(zhuǎn)換、裝載)是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)關(guān)鍵步驟,實(shí)現(xiàn)數(shù)據(jù)源到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的遷移,并在遷移過程數(shù)據(jù)完成了必要的數(shù)據(jù)清洗.具體做法是:通過Sqoop數(shù)據(jù)導(dǎo)入/導(dǎo)出工具將各種數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入到Hive數(shù)據(jù)倉(cāng)庫(kù),再通過HQL語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)清洗.數(shù)據(jù)清理主要從以下幾個(gè)方面著手:①格式不規(guī)范的數(shù)據(jù),如單詞存在空格、數(shù)值數(shù)據(jù)中有字母或者輸成全角數(shù)字字符、日期格式不正確,可以通過HSQL語(yǔ)句修正.②缺失值填充,如讀者性別、專業(yè)、學(xué)院等信息缺失等,通過編寫特定的語(yǔ)句從抽取的數(shù)據(jù)中過濾出這些數(shù)據(jù),然后人工補(bǔ)全再寫入數(shù)據(jù)庫(kù).③噪聲數(shù)據(jù),指源業(yè)務(wù)系統(tǒng)沒有嚴(yán)格的數(shù)據(jù)校驗(yàn)造成的數(shù)據(jù)錄入錯(cuò)誤,比如日期越界、年齡巨高等.這些噪聲數(shù)據(jù)可通過正態(tài)分布檢測(cè)、基于模型檢測(cè)方式檢測(cè)出異常,并在數(shù)據(jù)源中進(jìn)行修正再抽取[9].
2)處理層負(fù)責(zé)建立用戶、圖書畫像模型,畫像數(shù)據(jù)存儲(chǔ)于面向列的、適合大數(shù)據(jù)實(shí)時(shí)查詢的HBase分布式數(shù)據(jù)庫(kù).讀者借閱、下載數(shù)據(jù)以及圖書數(shù)據(jù)會(huì)動(dòng)態(tài)更新,用戶畫像、圖書畫像也會(huì)相應(yīng)產(chǎn)生變化,因此設(shè)定計(jì)時(shí)器,每隔24小時(shí)更新畫像.
3)邏輯層是整個(gè)體系架構(gòu)的核心,綜合了UserCF,CB和屬性相似度算法,形成多元化推薦引擎,實(shí)現(xiàn)為新讀者與老讀者分別推薦新圖書與舊圖書.推薦引擎基于Mahout實(shí)現(xiàn),Mahout是Hadoop生態(tài)圈的一個(gè)開源項(xiàng)目,提供分類、聚類、推薦引擎等機(jī)器學(xué)習(xí)算法,與MapReduce開發(fā)相比,非常簡(jiǎn)單便捷[13].
4)表現(xiàn)層調(diào)用邏輯層的API,為讀者提供可視化界面,向其展示推薦的新圖書、舊圖書.可視化推薦基于Diango框架實(shí)現(xiàn),Diango是基于Python語(yǔ)言開發(fā)的、采用MVC模式的 Web應(yīng)用框架,通過Python程序調(diào)用Mahout的接口返回圖書推薦列表,接著根據(jù)列表中的圖書ID,讀取Hbase數(shù)據(jù)庫(kù)中的圖書信息,并向讀者展示推薦結(jié)果.
在本文的實(shí)驗(yàn)中,提取2018-2019學(xué)年師生讀者的紙本書借閱數(shù)據(jù)以及電子書下載數(shù)據(jù),其中讀者73 978人,圖書671 095種,借閱數(shù)據(jù)量268 145條,下載數(shù)據(jù)量38 212條.在建立用戶畫像模型和推薦系統(tǒng)模型后,利用讀者數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,選取30名讀者做TOP-10圖書推薦,并對(duì)推薦結(jié)果做問卷評(píng)估,最后針對(duì)不同的K值,使用精確率(Precision,P)和平均絕對(duì)誤差(MAE)評(píng)估推薦結(jié)果的準(zhǔn)確度.精確率和平均絕對(duì)誤差定義、計(jì)算公式如下:
精確率,表示正確預(yù)測(cè)(TP)用戶喜歡的圖書在所有預(yù)測(cè)(TP+FP)用戶喜歡的圖書中所占比例,
平均絕對(duì)誤差,表示預(yù)測(cè)評(píng)分值和真實(shí)評(píng)分值之間的差值取絕對(duì)值再求和之后的平均值,
實(shí)驗(yàn)結(jié)果如表5所示,結(jié)果表明,當(dāng)K≤20時(shí),精確率逐漸提升,平均絕對(duì)誤差逐漸降低;當(dāng)K>20時(shí),精確率逐漸降低,平均絕對(duì)誤差逐漸平穩(wěn).因此K=20時(shí),精確率和平均絕對(duì)誤差是最優(yōu)化的.
表5 圖書推薦準(zhǔn)確度評(píng)價(jià)指標(biāo)值
用戶畫像作為大數(shù)據(jù)時(shí)代的產(chǎn)物,在電子商務(wù)領(lǐng)域已經(jīng)成功應(yīng)用于精準(zhǔn)營(yíng)銷、廣告投放,本文將用戶畫像應(yīng)用于圖書推薦服務(wù),通過對(duì)讀者的基本特征、行為、興趣進(jìn)行精準(zhǔn)刻畫,洞悉掌握讀者的用戶特征及需求.在此基礎(chǔ)上,采用混合推薦算法,實(shí)現(xiàn)向讀者進(jìn)行個(gè)性化、精準(zhǔn)化的圖書推薦.未來將從以下3個(gè)方面進(jìn)行探索、優(yōu)化:1)高校圖書館擁有龐大豐富的資源,如論文數(shù)據(jù)庫(kù)、學(xué)術(shù)視頻庫(kù)、特色資源庫(kù)等,研究如何將各種資源融合,形成圖書館本地化的知識(shí)發(fā)現(xiàn)系統(tǒng),并為讀者推薦多樣化的資源;2)高校學(xué)者作為推動(dòng)學(xué)校學(xué)科發(fā)展的中堅(jiān)力量,更希望獲取與研究主題相匹配的、高品質(zhì)的圖書,而不追求推薦效果的多樣化,可以將研究主題作為學(xué)者的興趣特征,通過聚類算法,構(gòu)建不同學(xué)科學(xué)者的群體用戶畫像[2],從而為其推薦適配的優(yōu)質(zhì)圖書資源;3)針對(duì)高活躍度學(xué)者用戶,通過學(xué)科館員介入,對(duì)圖書推薦資源進(jìn)行人工干預(yù)提取,通過郵箱主動(dòng)推送,鞏固并維持用戶活躍度;針對(duì)活躍度為中或低的學(xué)者用戶,通過關(guān)聯(lián)推薦算法拓展圖書推薦資源,激發(fā)并提高用戶活躍度.
河南師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年3期