国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Lambda架構(gòu)的醫(yī)學(xué)圖書(shū)推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)*

2019-04-25 06:16:54邱煜炎吳福生
關(guān)鍵詞:離線日志架構(gòu)

邱煜炎 吳福生

(蚌埠醫(yī)學(xué)院圖文信息中心 蚌埠233000)

1 引言

大數(shù)據(jù)環(huán)境下醫(yī)學(xué)文獻(xiàn)數(shù)字化迅速推進(jìn),文獻(xiàn)總量急劇增長(zhǎng)[1]。為滿足讀者對(duì)文獻(xiàn)高效查找、精準(zhǔn)推薦和快速響應(yīng)的需求,專(zhuān)業(yè)化推薦系統(tǒng)應(yīng)運(yùn)而生。推薦系統(tǒng)[2]幫助用戶評(píng)估其所有未看過(guò)的產(chǎn)品,通過(guò)分析用戶的基本信息、興趣愛(ài)好和歷史行為主動(dòng)推薦符合喜好的項(xiàng)目。目前推薦系統(tǒng)已在電子商務(wù)、電影、音樂(lè)網(wǎng)站領(lǐng)域取得顯著成績(jī)。

2 相關(guān)研究情況

傳統(tǒng)單機(jī)環(huán)境下的推薦系統(tǒng)無(wú)法滿足大數(shù)據(jù)規(guī)模資源的存儲(chǔ)與計(jì)算需求,Hadoop平臺(tái)能夠處理海量數(shù)據(jù)。對(duì)于推薦內(nèi)容的計(jì)算,大量的學(xué)者將推薦系統(tǒng)和Hadoop進(jìn)行集成,肖強(qiáng)[3]等改進(jìn)傳統(tǒng)的協(xié)同過(guò)濾算法,使之適應(yīng)Hadoop平臺(tái)上的分布式計(jì)算;李文海[4]等基于MapReduce模型實(shí)現(xiàn)關(guān)聯(lián)規(guī)則算法,構(gòu)建分布式電子商務(wù)系統(tǒng);奉國(guó)和[5]等采用Hadoop平臺(tái)以及Mahout引擎技術(shù)改進(jìn)協(xié)同過(guò)濾算法,提高推薦系統(tǒng)的準(zhǔn)確率。Hadoop平臺(tái)解決海量數(shù)據(jù)計(jì)算的問(wèn)題,但其還存在諸多缺陷,最主要的是MapReduce[6]計(jì)算模型延遲過(guò)高,無(wú)法滿足實(shí)時(shí)、快速計(jì)算的需求,因而只適用于離線批處理的應(yīng)用場(chǎng)景。Spark[7]在設(shè)計(jì)上充分吸收借鑒MapReduce的精髓并加以改進(jìn),同時(shí)采用先進(jìn)的DAG執(zhí)行引擎,以支持循環(huán)數(shù)據(jù)流與內(nèi)存計(jì)算,因此在性能上比MapReduce有大幅度提升,從而迅速獲得學(xué)術(shù)界的廣泛關(guān)注。何勝[8]等提出一種以文獻(xiàn)“混合關(guān)聯(lián)”為主要內(nèi)容的圖書(shū)館文獻(xiàn)推薦方案及實(shí)現(xiàn)算法,基于Spark技術(shù)開(kāi)展實(shí)證研究,優(yōu)化圖書(shū)館文獻(xiàn)推薦效果和提高統(tǒng)計(jì)計(jì)算性能。Lambda[9]架構(gòu)由Storm項(xiàng)目發(fā)起人Nathan Marz提出,集成Hadoop、Kafka、Storm、Spark、HBase、Redias等各類(lèi)大數(shù)據(jù)[10]組件,提供混合平臺(tái)。Lambda架構(gòu),見(jiàn)圖1。其具有高容錯(cuò)、低延時(shí)和可擴(kuò)展的特點(diǎn)。本研究利用Lambda架構(gòu)技術(shù)特點(diǎn),融合歷史數(shù)據(jù)離線計(jì)算、分布式日志采集等技術(shù)構(gòu)建推薦數(shù)據(jù)及時(shí)反饋的醫(yī)學(xué)圖書(shū)推薦系統(tǒng)。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)具有高可靠性和穩(wěn)定性,能夠滿足大數(shù)據(jù)下低成本、快速響應(yīng)和精準(zhǔn)推薦的需求。

3 系統(tǒng)架構(gòu)設(shè)計(jì)

3.1 架構(gòu)

大數(shù)據(jù)環(huán)境下圖書(shū)館網(wǎng)站存在大量的讀者隱式行為(如點(diǎn)擊、搜索、瀏覽記錄等),不同服務(wù)的應(yīng)用接口對(duì)應(yīng)不同服務(wù)器,因此系統(tǒng)日志文件分散存放在各個(gè)服務(wù)器上。傳統(tǒng)Hadoop平臺(tái)無(wú)法有效匯總隱式行為日志并做到及時(shí)響應(yīng)。本研究基于Lambda架構(gòu)充分收集讀者隱式行為數(shù)據(jù),結(jié)合顯式數(shù)據(jù)(如讀者借閱、預(yù)約記錄)構(gòu)建混合模型矩陣以解決數(shù)據(jù)稀疏問(wèn)題,離線計(jì)算采用ALS推薦算法,在傳統(tǒng)離線推薦模型基礎(chǔ)上實(shí)時(shí)分析用戶行為,以反饋?zhàn)钸m合當(dāng)前用戶的推薦列表?;贚ambda架構(gòu)的醫(yī)學(xué)圖書(shū)推薦系統(tǒng)架構(gòu),見(jiàn)圖2。

圖1 Lambda架構(gòu)

圖2 基于Lambda架構(gòu)的醫(yī)學(xué)專(zhuān)業(yè)文獻(xiàn)推薦系統(tǒng)架構(gòu)

3.2 模塊

Lambda架構(gòu)分為3大模塊:數(shù)據(jù)采集、數(shù)據(jù)處理和推薦展示。數(shù)據(jù)采集包括兩部分:關(guān)系型數(shù)據(jù)庫(kù)和日志采集系統(tǒng)。關(guān)系型數(shù)據(jù)庫(kù)通過(guò)圖書(shū)館管理軟件記錄讀者和書(shū)目的基本信息以及讀者借閱記錄信息。日志采集系統(tǒng)利用Flume,通過(guò)Kafka集群的消息分發(fā)中間件實(shí)現(xiàn)日志數(shù)據(jù)的統(tǒng)一下發(fā)。數(shù)據(jù)處理模塊分為離線處理和在線處理兩部分。推薦展示模塊將所有用戶推薦列表寫(xiě)入Redis緩存系統(tǒng)中,緩解圖書(shū)館網(wǎng)站系統(tǒng)壓力。在離線處理前,將關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)通過(guò)Sqoop工具加載到HBase數(shù)據(jù)庫(kù)中進(jìn)行離線推薦模型訓(xùn)練。本設(shè)計(jì)首先利用用戶基本信息,如專(zhuān)業(yè)系部和書(shū)目信息,還用Spark計(jì)算模型進(jìn)行主題提取,構(gòu)建基于內(nèi)容的用戶與書(shū)目相似度矩陣,融合Spark Mlib機(jī)器學(xué)習(xí)庫(kù)提供的ALS算法庫(kù)[11],建立基于文獻(xiàn)資源內(nèi)容過(guò)濾及相似用戶協(xié)同過(guò)濾的離線推薦模型。

4 關(guān)鍵技術(shù)

4.1 分布式數(shù)據(jù)收集

推薦系統(tǒng)需要將各種數(shù)據(jù)收集到一個(gè)中央化的存儲(chǔ)系統(tǒng)中,有利于進(jìn)行集中式的數(shù)據(jù)處理、統(tǒng)計(jì)分析與數(shù)據(jù)共享。而用戶行為是多樣化的,包括基本屬性數(shù)據(jù)、訪問(wèn)日志、搜索記錄、收藏日志、文獻(xiàn)信息等。其收集難點(diǎn)在于數(shù)據(jù)分散在各個(gè)離散設(shè)備上,保存于各種傳統(tǒng)的存儲(chǔ)設(shè)備與數(shù)據(jù)庫(kù)系統(tǒng)中。針對(duì)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)信息,可以利用Hadoop生態(tài)系統(tǒng)中Sqoop組件,將數(shù)據(jù)導(dǎo)入到分布式數(shù)據(jù)庫(kù)HBase中,實(shí)現(xiàn)傳統(tǒng)數(shù)據(jù)庫(kù)與Hadoop同步。而針對(duì)基于瀏覽器訪問(wèn)的日志數(shù)據(jù),可以借助分布式日志采集框架Flume進(jìn)行數(shù)據(jù)收集。Flume系統(tǒng)植入在應(yīng)用網(wǎng)關(guān)處的日志監(jiān)控可以實(shí)時(shí)監(jiān)控日志文件變化,根據(jù)偏移量,讀取來(lái)自聯(lián)機(jī)公共目錄查詢(xún)系統(tǒng)(Online Public Access Catalogue,OPAC)以及統(tǒng)一資源檢索系統(tǒng)的最新日志信息,然后將日志記錄輸出到HBase數(shù)據(jù)庫(kù)中。

4.2 離線計(jì)算推薦模型

利用讀者行為分析其對(duì)每本圖書(shū)的興趣程度,通過(guò)Lambda平臺(tái)采集數(shù)據(jù),涉及行為包括搜索、點(diǎn)擊、預(yù)約、正常借閱、盲目借閱、續(xù)借、超期借閱。筆者參考相關(guān)文獻(xiàn),結(jié)合醫(yī)學(xué)專(zhuān)業(yè)特點(diǎn),構(gòu)建讀者圖書(shū)興趣模型。針對(duì)讀者各種行為做如下評(píng)分:在關(guān)鍵詞搜索列表中,如果對(duì)某一圖書(shū)項(xiàng)目進(jìn)行點(diǎn)擊則表示讀者對(duì)該圖書(shū)興趣為正分,加1分。如果點(diǎn)擊后并進(jìn)行在線預(yù)約則表示更強(qiáng)的興趣度,加2分。研究發(fā)現(xiàn)[12-13]讀者對(duì)某種圖書(shū)興趣度與借閱時(shí)間有關(guān),見(jiàn)圖3。借閱時(shí)間低于一定閾值(小于3天,α值為2天)則表示讀者對(duì)該圖書(shū)實(shí)質(zhì)上并不感興趣,借閱該圖書(shū)的行為可能屬于盲目借閱,減2分。讀者在一定期限(3~29天,β值為30天)內(nèi)正常借閱,則表示讀者興趣為正分,加2分。讀者續(xù)借某本書(shū)則表示讀者借閱興趣達(dá)到飽和,加2分。期借閱雖然達(dá)到時(shí)間飽和度,但并不代表讀者很感興趣,超期借閱時(shí)間與興趣也成反向趨勢(shì),超期時(shí)間在1個(gè)借閱周期內(nèi)(β值為30天)為短期超期,減1分,此后超期兩個(gè)β值后為長(zhǎng)期超期,減2分。此外整時(shí)間到期歸還的借閱歷史記錄(1個(gè)β天數(shù))可以假設(shè)讀者對(duì)圖書(shū)的興趣成相反方向,減1分。用戶行為評(píng)分影響,見(jiàn)表1。

圖3 讀者興趣度與借閱時(shí)間關(guān)系

表1 用戶行為評(píng)分影響

用戶行為加減分值點(diǎn)擊 +1預(yù)約 +2正常借閱+2續(xù)借 +2盲目借閱-2短期超期-1長(zhǎng)期超期-2到期歸還-1

初始化評(píng)分值為5分,根據(jù)表1,構(gòu)建讀者圖書(shū)評(píng)分矩陣,得到讀者-圖書(shū)-評(píng)分3元組作為離線推薦模型數(shù)據(jù)源,利用Spark Mlib機(jī)器學(xué)習(xí)庫(kù)提供的交替最小二乘ALS[14]推薦算法進(jìn)行建模。交替最小二乘ALS是求解隱語(yǔ)義模型隱因子參數(shù)的優(yōu)化算法,隱語(yǔ)義模型是奇異值分解方法的一種,具有較好的理論基礎(chǔ),優(yōu)化一個(gè)設(shè)定的指標(biāo)建立最優(yōu)模型,其核心思想是通過(guò)隱含特征聯(lián)系用戶興趣和物品,利用降維的方法解決評(píng)分矩陣稀疏的問(wèn)題。對(duì)于R(m×n)的矩陣,ALS旨在找到兩個(gè)低維矩陣X(m×k)和矩陣Y(n×k),來(lái)近似逼近R(m×n),即:

其中R(m×n)代表用戶對(duì)商品的評(píng)分矩陣,X(m×k)代表用戶對(duì)隱含特征的偏好矩陣,Y(n×k)表示物品所包含隱含特征的矩陣,T表示矩陣Y的轉(zhuǎn)置。對(duì)于矩陣X、Y的計(jì)算采用最優(yōu)化目標(biāo)損失函數(shù),目標(biāo)損失函數(shù)用均方根誤差(Root Mean Square Error,RMSE)定義,如下所示:

上式中的 λ‖xu‖2+ λ‖yi‖2是用來(lái)防止過(guò)擬合的正則化項(xiàng),通過(guò)交替最小二乘算法優(yōu)化目標(biāo)損失函數(shù),算法如下:初始化隨機(jī)矩陣Q中的元素值;將Q矩陣當(dāng)做已知的,直接用線性代數(shù)方法求得矩陣P;得到矩陣P后,將P當(dāng)做已知參數(shù),再返回求解矩陣Q;上述兩個(gè)過(guò)程交替進(jìn)行,一直到誤差收斂到可以接受為止。研究發(fā)現(xiàn)[15]在不是很稀疏的數(shù)據(jù)集合上,交替最小二乘通常比隨機(jī)梯度下降要更快的得到結(jié)果。設(shè)置ALS迭代次數(shù)以及相關(guān)參數(shù),ALS算法會(huì)對(duì)讀者-圖書(shū)評(píng)分矩陣進(jìn)行分解,利用隱語(yǔ)義進(jìn)行表達(dá),計(jì)算出隱式因子,填補(bǔ)讀者與書(shū)目的預(yù)測(cè)評(píng)分,然后訓(xùn)練離線推薦模型。

4.3 實(shí)時(shí)推薦模型

首先利用Spark Streaming技術(shù)將Kafka集群推送的日志信息過(guò)濾出日志點(diǎn)擊流,從中抽取讀者產(chǎn)生行為對(duì)應(yīng)的圖書(shū)ID和用戶ID。然后根據(jù)離線推薦模型進(jìn)行圖書(shū)相似度排序,與離線模型進(jìn)行混合處理,重排序,使得圖書(shū)館在線網(wǎng)站可以感知到用戶最新行為,提升推薦系統(tǒng)的準(zhǔn)確率。筆者隨機(jī)抽取臨床醫(yī)學(xué)專(zhuān)業(yè)讀者登錄圖書(shū)查詢(xún)系統(tǒng),以“麻醉學(xué)”作為搜索關(guān)鍵詞,顯示結(jié)果界面左邊是OPAC系統(tǒng)根據(jù)檢索詞通過(guò)圖書(shū)管理系統(tǒng)展示的麻醉學(xué)圖書(shū),右邊是實(shí)時(shí)推薦結(jié)果,根據(jù)系統(tǒng)設(shè)定,共計(jì)顯示10條推薦結(jié)果,其中前5條顯示與麻醉學(xué)相似的圖書(shū),如“麻醉意外”,“麻醉并發(fā)癥”;后5條是根據(jù)該讀者歷史行為顯示離線推薦結(jié)果,如“臨床診療學(xué)”,“臨床醫(yī)學(xué)多用辭典”等。

5 實(shí)驗(yàn)分析與結(jié)果

5.1 數(shù)據(jù)來(lái)源

以蚌埠醫(yī)學(xué)院2014年6月-2017年12月之間所有醫(yī)學(xué)類(lèi)(中圖法R類(lèi))圖書(shū)借閱記錄作為實(shí)驗(yàn)數(shù)據(jù),包含圖書(shū)86 022本,讀者12 030人,1 806 212次借閱服務(wù),其中借閱564 399 次、續(xù)借 149 507 次、預(yù)約102 505次。

5.2 實(shí)驗(yàn)環(huán)境

基于Lambda架構(gòu)的醫(yī)學(xué)圖書(shū)推薦系統(tǒng)搭建6臺(tái)Linux服務(wù)器,版本CentOS6.5;每臺(tái)服務(wù)器配置8核CPU,16GB內(nèi)存和1TB硬盤(pán)。其中3臺(tái)服務(wù)器用來(lái)搭建Lambda平臺(tái),另外3臺(tái)服務(wù)器分別用來(lái)進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)緩存以及前端展示。軟件配置,見(jiàn)表2。

表2 Lambda架構(gòu)軟件配置

5.3 結(jié)果

為驗(yàn)證興趣度模型以及推薦系統(tǒng)的有效性,邀請(qǐng)10位不同專(zhuān)業(yè)的讀者進(jìn)行評(píng)價(jià)。利用推薦系統(tǒng)結(jié)合讀者在線行為,為每人推薦20本書(shū),對(duì)推薦結(jié)果進(jìn)行打分。采用信息檢索領(lǐng)域廣泛使用的查準(zhǔn)率來(lái)評(píng)價(jià)實(shí)驗(yàn)效果。評(píng)估結(jié)果,見(jiàn)表3。結(jié)果顯示10位讀者評(píng)價(jià)查準(zhǔn)率差別很大,均值為44.4%。雖然系統(tǒng)初始設(shè)置為每位讀者推薦20本專(zhuān)業(yè)圖書(shū),但由于讀者專(zhuān)業(yè)、借閱量、借閱行為等不同,實(shí)際推薦的數(shù)量也不同。通過(guò)表3可以看出借閱數(shù)量對(duì)推薦效果影響很大。但是隨著讀者借閱圖書(shū)的數(shù)量不斷增加,推薦效果也越來(lái)越好。值得注意的是讀者專(zhuān)業(yè)對(duì)推薦結(jié)果影響較大,如臨床醫(yī)學(xué)本科生對(duì)結(jié)果評(píng)價(jià)明顯高于其他專(zhuān)業(yè),說(shuō)明臨床專(zhuān)業(yè)學(xué)生數(shù)量多,借閱行為數(shù)據(jù)量與推薦準(zhǔn)確度成正相關(guān)關(guān)系。此外研究生由于借閱量相對(duì)本科生大,借閱目的性相對(duì)較強(qiáng),準(zhǔn)確率普遍較高。

表3 推薦系統(tǒng)評(píng)估結(jié)果

6 結(jié)語(yǔ)

本研究設(shè)計(jì)和實(shí)現(xiàn)大數(shù)據(jù)環(huán)境下基于Lambda架構(gòu)的醫(yī)學(xué)圖書(shū)推薦系統(tǒng),提出基于讀者行為的評(píng)分模型,將隱式行為數(shù)據(jù)應(yīng)用到評(píng)分模型中,優(yōu)化模型結(jié)構(gòu)。實(shí)驗(yàn)證明在充分采集用戶行為數(shù)據(jù)后,推薦系統(tǒng)的準(zhǔn)確率和召回率有明顯提升。鑒于Lambda架構(gòu)獲取的數(shù)據(jù)具有數(shù)據(jù)量大、實(shí)時(shí)性強(qiáng)、多樣性的優(yōu)勢(shì),下一步將引入書(shū)本信息及用戶基本信息的特征,設(shè)計(jì)多模型數(shù)據(jù)處理方式,進(jìn)一步提升推薦效果。

猜你喜歡
離線日志架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
一名老黨員的工作日志
異步電機(jī)離線參數(shù)辨識(shí)方法
呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
中成藥(2018年2期)2018-05-09 07:20:09
游學(xué)日志
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
巫溪县| 徐州市| 利津县| 哈密市| 泾川县| 峨山| 博客| 曲周县| 台山市| 南陵县| 元阳县| 保康县| 拜泉县| 新乡县| 六盘水市| 秭归县| 台南县| 迭部县| 滦平县| 澳门| 西林县| 高雄市| 凌海市| 迁安市| 油尖旺区| 都兰县| 石门县| 广灵县| 丰都县| 大连市| 徐水县| 武宁县| 仁寿县| 专栏| 灵璧县| 象州县| 勐海县| 普格县| 当阳市| 呼伦贝尔市| 申扎县|