邱煜炎
摘? ?要:本文利用用戶在線行為數(shù)據(jù),構(gòu)建了針對機(jī)構(gòu)知識庫的個性化推薦系統(tǒng)。具體方法為:基于大數(shù)據(jù)Lambda架構(gòu),實(shí)現(xiàn)系統(tǒng)對用戶隱式和顯式行為的數(shù)據(jù)采集、匯總、融合、計(jì)算功能,構(gòu)建基于本體的加權(quán)向量用戶興趣離線計(jì)算模型;同時針對用戶對機(jī)構(gòu)知識庫行為的反饋,進(jìn)行實(shí)時推薦。最后得出結(jié)論:利用大數(shù)據(jù)思維和技術(shù),構(gòu)建多維度用戶行為模型,對機(jī)構(gòu)知識庫的個性化推薦有一定實(shí)用價(jià)值。
關(guān)鍵詞:機(jī)構(gòu)知識庫;推薦系統(tǒng);大數(shù)據(jù)
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2019)07-0066-04
機(jī)構(gòu)知識庫(Institutional Repository)又稱機(jī)構(gòu)庫、機(jī)構(gòu)倉儲、機(jī)構(gòu)典藏等,是指大學(xué)或研究機(jī)構(gòu)通過網(wǎng)絡(luò)來收集、保存、管理、檢索和利用其知識資源的數(shù)據(jù)庫群。[1]隨著開放存取運(yùn)動的發(fā)展,機(jī)構(gòu)知識庫已經(jīng)成為促進(jìn)科技信息共享、提升機(jī)構(gòu)知識管理和利用的重要力量,已經(jīng)被全球?qū)W術(shù)界廣泛接受并形成普遍共識。[2]
在國內(nèi),大型的機(jī)構(gòu)知識庫由于知識規(guī)模量大、分類詳細(xì)、檢索便捷,因此普及率較高[3];而對于單位自建的機(jī)構(gòu)知識庫,如果不能精確地推送用戶感興趣的信息,將很難建立穩(wěn)定的用戶群體。因此,為用戶提供個性化精準(zhǔn)實(shí)時的知識推送服務(wù)是提升機(jī)構(gòu)知識庫利用率的有效方法。
針對機(jī)構(gòu)知識庫的個性化推薦研究,國內(nèi)學(xué)者主要集中在系統(tǒng)設(shè)計(jì)和算法模型兩方面。曹畋[4]針對中小型機(jī)構(gòu)知識庫的特點(diǎn),提出一種綜合性的智能推薦系統(tǒng),通過分析用戶行為數(shù)據(jù)對用戶可能的偏好或有價(jià)值信息進(jìn)行預(yù)測推薦。姜凱曦[5]利用占機(jī)構(gòu)知識資源較大比重的隱性知識,針對用戶隱性偏好構(gòu)建基于社會網(wǎng)絡(luò)模型的專家推薦系統(tǒng)。卞藝杰等[6]針對機(jī)構(gòu)知識庫資源推薦準(zhǔn)確率低的問題,提出基于機(jī)構(gòu)知識庫用戶模型隱性信息和顯性信息的興趣權(quán)重計(jì)算公式,提出了個性化推薦的總體架構(gòu)。
綜上所述,國內(nèi)學(xué)者對于機(jī)構(gòu)知識庫推薦領(lǐng)域的研究都以用戶興趣建模作為首要切入點(diǎn)。但是,無論是模型還是算法,數(shù)據(jù)的規(guī)模決定了推薦質(zhì)量的好壞。因此,筆者在前人研究的基礎(chǔ)上,結(jié)合大數(shù)據(jù)數(shù)據(jù)量大、多維度、實(shí)時性高的特點(diǎn),遵循機(jī)構(gòu)知識庫開源軟件DSpace的開發(fā)原則,引入基于Lambda架構(gòu)的大數(shù)據(jù)平臺。利用大數(shù)據(jù)Hadoop[7]生態(tài)組件對用戶的行為數(shù)據(jù)進(jìn)行采集、匯總、清洗,并融合DSpace業(yè)務(wù)數(shù)據(jù),在統(tǒng)一數(shù)據(jù)源的基礎(chǔ)上,采用本體加權(quán)向量模型,對用戶興趣模型進(jìn)行離線訓(xùn)練。此外,在離線推薦的基礎(chǔ)上,利用大數(shù)據(jù)實(shí)時流技術(shù)對用戶的機(jī)構(gòu)知識庫在線日志數(shù)據(jù)做實(shí)時過濾,獲取用戶當(dāng)前所需資源信息,融合離線推薦和實(shí)時推薦結(jié)果,實(shí)現(xiàn)對用戶隱式行為進(jìn)行實(shí)時推薦反饋的功能。
1.設(shè)計(jì)思路
用戶在機(jī)構(gòu)數(shù)據(jù)庫使用過程中,會產(chǎn)生大量顯式和隱式行為數(shù)據(jù)。其中顯式行為數(shù)據(jù)包括用戶所屬的專業(yè)領(lǐng)域、輸入的興趣項(xiàng)以及搜索記錄、用戶對資源評價(jià)等;隱式行為數(shù)據(jù)分為點(diǎn)擊記錄、瀏覽記錄以及頁面駐留時間等。機(jī)構(gòu)知識庫開源軟件DSpace無法獲取用戶隱式行為日志,并做到有效分析,因此無法滿足系統(tǒng)實(shí)時推薦的需求。本文的設(shè)計(jì)思想是通過對用戶顯式和隱式行為進(jìn)行綜合分析,建立用戶興趣模型庫,將資源文本特征模型與用戶興趣模型進(jìn)行匹配,從機(jī)構(gòu)知識庫中查找出與用戶模型相匹配的資源。同時,在傳統(tǒng)離線推薦的基礎(chǔ)上,實(shí)時分析用戶在線行為,并融合離線推薦模型,及時反饋針對用戶當(dāng)前行為的實(shí)時推薦列表。
2.系統(tǒng)架構(gòu)
傳統(tǒng)單機(jī)環(huán)境下的推薦系統(tǒng)無法滿足大數(shù)據(jù)規(guī)模資源的存儲與計(jì)算需求,Hadoop平臺作為大數(shù)據(jù)技術(shù)的事實(shí)標(biāo)準(zhǔn)能夠處理海量數(shù)據(jù)。Lambda[8]架構(gòu)由Storm項(xiàng)目發(fā)起人Nathan Marz提出,集成了Hadoop、Kafka、Storm、Spark、HBase、Redis等各類大數(shù)據(jù)組件,提供了一個結(jié)合實(shí)時數(shù)據(jù)和Hadoop預(yù)先計(jì)算的數(shù)據(jù)環(huán)境混合平臺,具有高容錯、低延時和可擴(kuò)展的特點(diǎn),見圖1。
本文采納了Lambda架構(gòu)的技術(shù)特點(diǎn),設(shè)計(jì)了融合歷史數(shù)據(jù)離線計(jì)算、分布式日志采集、推薦數(shù)據(jù)及時反饋的機(jī)構(gòu)知識庫推薦系統(tǒng),見圖2。
3.系統(tǒng)模塊
基于Lambda架構(gòu)的機(jī)構(gòu)知識庫實(shí)時推薦系統(tǒng)主要分為三大模塊:數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊和實(shí)時推薦模塊。
數(shù)據(jù)采集來自兩部分?jǐn)?shù)據(jù):關(guān)系型數(shù)據(jù)庫PostgreSQL和日志采集工具Flume。機(jī)構(gòu)知識庫軟件DSpace的用戶服務(wù)接口包括瀏覽、檢索、定制、訂閱、RSS,并將用戶顯式行為數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫PostgreSQL中。此外利用分布式日志收集工具Flume,實(shí)現(xiàn)對用戶點(diǎn)擊、瀏覽、頁面有駐留時間的日志進(jìn)行收集。系統(tǒng)植入在應(yīng)用網(wǎng)關(guān)處的日志監(jiān)控可以實(shí)時監(jiān)測日志文件的變化,并根據(jù)偏移量,讀取最新日志信息,然后將日志輸出到 Redis 中緩存起來。
數(shù)據(jù)處理分為離線和在線計(jì)算兩部分。離線計(jì)算采用Spark[9]平臺構(gòu)建用戶興趣模型,其主要思路是將用戶行為數(shù)據(jù)對應(yīng)的項(xiàng)目所匹配的本體關(guān)鍵詞進(jìn)行提取,根據(jù)不同的行為權(quán)重構(gòu)建用戶關(guān)鍵詞向量矩陣,以此將最重要的TopN向量作為該用戶興趣模型。在進(jìn)行離線計(jì)算前,需要將數(shù)據(jù)進(jìn)行匯總,關(guān)系型數(shù)據(jù)庫PostgreSQL的數(shù)據(jù)可以通過Sqoop工具加載到分布式數(shù)據(jù)庫HBase中。而日志緩存數(shù)據(jù)庫Redis利用消息分發(fā)工具Kafka接入實(shí)時處理框架Spark Steaming進(jìn)行日志過濾,抽取出用戶點(diǎn)擊行為、用戶瀏覽行為和頁面駐留時間數(shù)據(jù),寫入HBase數(shù)據(jù)庫中。
系統(tǒng)實(shí)時推薦主要對用戶行為進(jìn)行及時響應(yīng)處理。本文針對用戶的每次訪問,可以通過Spark Streaming實(shí)時過濾日志信息,抽出所需要的信息,獲得與該項(xiàng)目相似的前N位資源列表,并與用戶興趣模型進(jìn)行混合處理,進(jìn)行重新排序,使得機(jī)構(gòu)知識庫可以感知用戶實(shí)時行為,提高知識服務(wù)質(zhì)量。
1.用戶興趣模型設(shè)計(jì)
對于用戶興趣模型的表示,文獻(xiàn)[10]提出了基于本體的加權(quán)向量表示方法,是指將本體引入向量空間模型中,向量空間的每個詞都來自于本體。因此,本文提出基于本體加權(quán)向量模型的用戶興趣模型PM(Personal Model),將用戶偏好表示為一個二元組特征向量PM={(c1,w1),(c2,w2)...(cn,wn)}。
對于(ci,wi,bi),i∈[1,n],n為興趣總量,Ci表示用戶的某一興趣項(xiàng),即本體中的概念或?qū)嵗Q;Wi是用戶興趣的權(quán)重值,值域?yàn)閇0,1],數(shù)值越高,興趣值越大。用戶興趣模型初始化值全為0。
2.用戶興趣項(xiàng)權(quán)重值設(shè)定
用戶對機(jī)構(gòu)知識庫行為數(shù)據(jù)反映出用戶的興趣偏好程度,合理的行為量化指標(biāo),決定了推薦模型的質(zhì)量。用戶行為分為顯式行為和隱式行為兩部分,根據(jù)前人研究[6]發(fā)現(xiàn),顯式行為反映了用戶的主觀興趣表達(dá),是用戶的長期興趣偏好。而隱式行為反映的是即時興趣表達(dá),具有臨時性、隨意性的特點(diǎn)。因此,顯式行為偏好權(quán)重要高于隱式行為權(quán)重。
(1)在DSpace平臺中,用戶選擇若干初始設(shè)定的本體關(guān)鍵詞作為興趣項(xiàng)Ci,說明對這些領(lǐng)域非常感興趣,對應(yīng)的權(quán)重Wi值為1。
(2)當(dāng)系統(tǒng)獲取到用戶的搜索關(guān)鍵詞與本體關(guān)鍵詞Ci匹配時,說明用戶對這一領(lǐng)域表示出了一定興趣,由于搜索具有臨時性、隨意性特點(diǎn),因此權(quán)重Wi應(yīng)低于用戶自己設(shè)定的興趣項(xiàng),記為0.6。
(3)在用戶主動上傳知識資源的過程中,通過已提交的關(guān)鍵詞與本體關(guān)鍵詞匹配,說明用戶對這一領(lǐng)域表示出極大的興趣,對應(yīng)的權(quán)重Wi值為0.8。
此外,機(jī)構(gòu)知識庫資源可以由若干本體概念來描述,本文以本體概念的前三位關(guān)鍵詞作為資源的主要描述,每個資源對應(yīng)關(guān)鍵詞的首尾位置賦予不同的權(quán)重Pj(j∈[1,2,3]),分別是1.0,0.8,0.6。用戶對資源興趣度記作Sk(k∈[1,m],m為資源的個數(shù)),因此,用戶通過興趣度反饋獲取用戶興趣項(xiàng)權(quán)重值Wi=Sk*Pj。
(4)用戶對資源的顯式行為表現(xiàn)在對資源的評價(jià)反饋上,評價(jià)標(biāo)準(zhǔn)分為不關(guān)注、不太關(guān)注、比較關(guān)注和很關(guān)注四個層次,對應(yīng)用戶對資源的興趣度Si值為0(不關(guān)注)、0.3(不太關(guān)注)、0.6(比較關(guān)注)、1.0(很關(guān)注)。
(5)通過Lambda平臺的Flume日志采集軟件,可以獲取用戶對資源的隱式行為數(shù)據(jù),主要表現(xiàn)在對資源的點(diǎn)擊次數(shù)(記為f)和頁面駐留時間(記為t)上,由于點(diǎn)擊行為具有一定偶然性,只有當(dāng)駐留頁面時間超過一定閾值t1時,才能反映出用戶對該資源表示出一定的興趣。而且在一段時間t2內(nèi),用戶如果對某一資源點(diǎn)擊次數(shù)增加,說明用戶對此資源表示出極大的興趣。綜上,得公式如下:
矩陣UiIj表示第i個用戶對第j個資源的興趣程度,對UI矩陣按行進(jìn)行排序,即可生成用戶離線推薦模型。離線模型訓(xùn)練完畢后,將每個用戶的推薦列表寫入Redis緩存系統(tǒng),優(yōu)化平臺性能。平臺根據(jù)用戶實(shí)時點(diǎn)擊行為,取得資源ID,利用離線推薦模型取得與之相似的前5個資源。最后在Redis緩存系統(tǒng)中找到對應(yīng)用戶ID的推薦列表,刪除原有的最后5個資源,將剛剛計(jì)算的5個資源放入Redis推薦列表隊(duì)首中。
通過上述離線推薦和實(shí)時推薦的融合,完成基于Lambda架構(gòu)的機(jī)構(gòu)知識庫實(shí)時推薦模型,達(dá)到及時響應(yīng)、實(shí)時反饋的目的。
1.數(shù)據(jù)來源
本文以蚌埠醫(yī)學(xué)院口腔醫(yī)學(xué)機(jī)構(gòu)知識庫作為實(shí)驗(yàn)數(shù)據(jù),該資源包含文獻(xiàn)602篇、視頻資源22部、圖片資源85張;用戶數(shù)391人,其中包括本科生327人、研究生23人、專業(yè)教師13人、附屬醫(yī)院口腔專業(yè)醫(yī)生28人。
2.實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)環(huán)境如下:6臺Linux服務(wù)器,版本為CentOS6.5;每臺服務(wù)器配置8核CPU、16GB內(nèi)存和1TB硬盤。其中3臺服務(wù)器用來搭建Lambda平臺,1臺服務(wù)器用來進(jìn)行數(shù)據(jù)采集,1臺服務(wù)器用于數(shù)據(jù)緩存,1臺服務(wù)器用來進(jìn)行前端展示。軟件配置如表1所示。
3.實(shí)驗(yàn)說明
為了驗(yàn)證用戶興趣度模型以及推薦系統(tǒng)的有效性,筆者邀請10位不同角色的用戶進(jìn)行測評。利用推薦系統(tǒng)結(jié)合用戶在線行為,為用戶推薦20項(xiàng)資源,并對推薦結(jié)果進(jìn)行打分。采用信息檢索領(lǐng)域廣泛使用的查準(zhǔn)率(precision)來評價(jià)實(shí)驗(yàn)效果。結(jié)果如表2所示。
結(jié)果顯示,10位用戶對推薦質(zhì)量的總體評價(jià)不高,均值為39% 。而隨著用戶對機(jī)構(gòu)知識庫使用頻率的上升,推薦質(zhì)量呈一定的上升趨勢。
本文設(shè)計(jì)和實(shí)現(xiàn)了大數(shù)據(jù)環(huán)境下基于Lambda架構(gòu)的機(jī)構(gòu)知識庫在線推薦系統(tǒng),提出了基于用戶行為的評分模型,并將隱式行為添加到評分模型中,優(yōu)化模型結(jié)構(gòu)。實(shí)驗(yàn)證明,隨著用戶對機(jī)構(gòu)知識庫使用頻率的上升,推薦系統(tǒng)效果提升明顯。鑒于Lambda架構(gòu)獲取的數(shù)據(jù)具有數(shù)據(jù)量大、實(shí)時性高、多樣性等優(yōu)勢,下一步工作將引入對資源描述的特征提取算法,而不僅僅依賴于用戶設(shè)置的關(guān)鍵詞作為本體特征進(jìn)行提取,設(shè)計(jì)多模型的數(shù)據(jù)處理方式,進(jìn)一步提升推薦效果。
[1]張恒娟,邱亞娜.基于Dspace的中醫(yī)藥機(jī)構(gòu)知識庫構(gòu)建研究[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2010(1):19-21.
[2]中國機(jī)構(gòu)知識庫推進(jìn)工作組.2018年第六屆中國機(jī)構(gòu)知識庫學(xué)術(shù)研討會報(bào)告[R].2018.5.
[3]張雅琪,盛小平.國內(nèi)外機(jī)構(gòu)知識庫評價(jià)研究進(jìn)展與評述[J].圖書情報(bào)工作,2015,59(9):127-135.
[4]曹畋.探究適合中小型機(jī)構(gòu)知識庫的智能推薦系統(tǒng)[J].農(nóng)業(yè)圖書情報(bào)學(xué)刊,2016,28(3):5-9.
[5]姜凱曦.IR中基于社會網(wǎng)絡(luò)模型的專家推薦系統(tǒng)構(gòu)建分析[J].電子測試,2013(19):139-140.
[6]卞藝杰等.機(jī)構(gòu)知識庫個性化推薦的用戶模型研究[J].情報(bào)理論與實(shí)踐,2013,36(12):78-82.
[7]林子雨.大數(shù)據(jù)技術(shù)原理與應(yīng)用[M].北京:人民郵電出版社,2017:286.
[8]佚名.技術(shù)文檔[EB/OL].https://en.wikipedia.org/wiki/Lambda_architecture,2018.
[9]Matei Zaharia, M.C.M.J., Spark: Cluster Computing with Working Sets, in Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing,2010.
[10]蔣秀林,謝強(qiáng),丁秋林.基于領(lǐng)域本體的用戶模型的研究[J].計(jì)算機(jī)應(yīng)用研究,2012,29(2):606-608.
[11]Peter,H., Machine Learning in Action[M].北京:人民郵電出版社,2013.
(編輯:王曉明)