劉冬鄰
(四川外國語大學(xué) 重慶市 400031)
如今,從科研項目的前期籌劃到項目申報、項目過程管理、科研協(xié)作、項目結(jié)題管理等科研流程都是基于互聯(lián)網(wǎng)+信息系統(tǒng)的管理和運作模式[1]??蒲谢顒訜o時不在快速的產(chǎn)生海量數(shù)據(jù)。大數(shù)據(jù)、云計算、機器學(xué)習(xí)為獲取科研資源提供了便利,營造了便捷、高效的科研交流環(huán)境[2]。
高??蒲杏脩粼谡麄€科研過程中,查閱科研文獻獲取數(shù)據(jù)的時間超過整個過程的一半以上,個性化資源需求復(fù)雜多樣,但大多數(shù)老師獲取所需科研資源的能力不足[3]。目前建設(shè)的各類高??蒲泄芾硐到y(tǒng)和資源服務(wù)平臺功能簡單且單一,只能接受用戶關(guān)鍵字信息查詢檢索,用戶個性化的科研資源需求得不到滿足[4-5]。本文即以某外語高校為例,研究高校科研資源個性化服務(wù)需求,探討個性化科研資源服務(wù)系統(tǒng)的架構(gòu)設(shè)計和實現(xiàn)。
個性化高??蒲蟹?wù)系統(tǒng)的主要功能就是基于科研用戶對科研數(shù)據(jù)的獲取需求,采用大數(shù)據(jù)、用戶畫像、機器學(xué)習(xí)、數(shù)據(jù)挖掘等技術(shù)從分布于學(xué)校各單位的相關(guān)科研數(shù)據(jù)庫中抽取滿足需求的數(shù)據(jù);對數(shù)據(jù)進行預(yù)處理以保證數(shù)據(jù)的正確性、一致性和有效性;分析并將數(shù)據(jù)整合進系統(tǒng)業(yè)務(wù)數(shù)據(jù)庫中;在這些科研大數(shù)據(jù)支撐的基礎(chǔ)上,通過架構(gòu)的系統(tǒng)融合推薦引擎,分析科研用戶對各種科研資源的興趣度,為高??蒲杏脩籼峁﹤€性化的科研數(shù)據(jù)服務(wù)。
通過對學(xué)校師生進行問卷調(diào)研,總結(jié)出高??蒲匈Y源個性化服務(wù)的主要應(yīng)用場景為:沒有注冊過或注冊過但本次不登錄的用戶,進入系統(tǒng)后瀏覽科研資源項目;沒有或只有較少系統(tǒng)使用記錄的注冊用戶登錄系統(tǒng);有較多系統(tǒng)使用記錄的注冊用戶登錄并使用系統(tǒng)。在這些場景下,系統(tǒng)將基于不同的個性化推薦策略,采用不同的算法和模型實現(xiàn)個性化推薦引擎,滿足用戶的個性化科研資源服務(wù)需求。
本文是基于以MapReduce、HDFS、HBase、Hive 為核心的Hadoop 技術(shù)框架和傳統(tǒng)的三層推薦系統(tǒng)架構(gòu),進行個性化高??蒲蟹?wù)系統(tǒng)架構(gòu)設(shè)計[6-7]。
由于推薦策略的復(fù)雜性,如果要在一個系統(tǒng)中把各種用戶特征(用戶屬性:性別、專業(yè)、學(xué)歷、職稱、研究方向等,用戶行為特征:瀏覽、點贊、下載等。)、資源項目特征(比如著作屬性:包括作者、出版社、項目來源等)和環(huán)境因素等都綜合考慮,系統(tǒng)將變得龐大而復(fù)雜[8]。因此,本系統(tǒng)被設(shè)計為由多個推薦引擎組成,每類推薦引擎負(fù)責(zé)一類特征和一種任務(wù),通過整合多個推薦引擎的召回結(jié)果,按照一定權(quán)重或優(yōu)先級合并、過濾、排序然后呈現(xiàn)給用戶。多引擎融合系統(tǒng)架構(gòu)如圖1。
圖1:多引擎融合系統(tǒng)架構(gòu)
系統(tǒng)主要使用到用戶數(shù)據(jù),資源數(shù)據(jù),情景數(shù)據(jù)。用戶信息是個性化推薦的主要依據(jù),高??蒲杏脩魯?shù)據(jù)可以分為基本信息數(shù)據(jù)和行為數(shù)據(jù)兩大類?;拘畔⒅饕ㄓ脩舻幕緦傩院拖嚓P(guān)特征信息;行為數(shù)據(jù)是指用戶在使用系統(tǒng)時產(chǎn)生的使用日志數(shù)據(jù),是獲取用戶興趣進行智能推薦的重要數(shù)據(jù)源。情境數(shù)據(jù)是與服務(wù)應(yīng)用場景相關(guān)的數(shù)據(jù)。資源大數(shù)據(jù)是高??蒲泄芾硐到y(tǒng)中的各類科研成果,比如:著作、論文、項目課題、專利等數(shù)據(jù)。
依據(jù)個性化服務(wù)系統(tǒng)的系統(tǒng)架構(gòu)和功能需求,設(shè)計用戶數(shù)據(jù)模型、科研資源數(shù)據(jù)模型、用戶行為數(shù)據(jù)模型以及用于表示各種數(shù)據(jù)之間關(guān)系的關(guān)系數(shù)據(jù)模型。將分布在不同信息系統(tǒng)中的科研資源數(shù)據(jù)、科研用戶數(shù)據(jù)、情境數(shù)據(jù)和用戶行為數(shù)據(jù)從各個業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫中抽取、融合、同步到個性化推薦系統(tǒng)的MySQL 數(shù)據(jù)庫中,并在用戶基本信息數(shù)據(jù),用戶行為數(shù)據(jù),資源數(shù)據(jù)和情景數(shù)據(jù)之間建立聯(lián)系。選取系統(tǒng)需要字段,進行One-Hot 編碼,建立科研用戶基本信息表(見表1),各種科研成果信息表,如科研論文信息表(見表2)、用戶行為信息表(見表3);相關(guān)信息編碼表如語種、用戶標(biāo)簽編碼信息表等。
推薦算法是個性化服務(wù)系統(tǒng)的核心,基于設(shè)計的高校科研大數(shù)據(jù)個性化服務(wù)系統(tǒng)的架構(gòu)和系統(tǒng)的功能模塊,在實現(xiàn)系統(tǒng)業(yè)務(wù)流程中,需要使用項目熱度推薦算法、采用TF-IDF 獲得項目特征向量從而進行基于內(nèi)容相似度的推薦算法、基于UserCF 的推薦算法來構(gòu)建系統(tǒng)的各類推薦引擎。
系統(tǒng)在剛上線或者用戶剛開始使用時,系統(tǒng)是無法向用戶提供個性化服務(wù)的。無論是基于用戶行為的個性化,還是基于內(nèi)容相似度的個性化,都是建立在有大量用戶行為的基礎(chǔ)上。此時采用更加聚合的“熱度算法”,就是把大家喜歡的內(nèi)容優(yōu)先推薦給用戶。雖無法做到基于興趣和習(xí)慣為每一個用戶進行精準(zhǔn)的推薦,但能將本專業(yè)用戶當(dāng)前關(guān)注的熱點資源推薦給用戶,同時解決了系統(tǒng)和用戶冷啟動問題[9]。
考慮科研項目熱度隨著時間衰減的趨勢是呈指數(shù)增長的,本文采用結(jié)合牛頓冷卻定律改進后的項目熱度計算方法。
基于內(nèi)容推薦是基于項目和用戶相關(guān)信息以及用戶對項目的操作行為,構(gòu)建推薦算法模型,為用戶提供推薦服務(wù)??梢詫⒏鞣N科研資源項目,映射到某個向量空間,有了資源的向量化表示,就可以通過余弦相似度計算兩個項目之間的相似程度,然后將與用戶曾經(jīng)操作過的項目相似的項目推薦給用戶
本系統(tǒng)的推薦對象是非結(jié)構(gòu)化的科研資源和成果文檔,無法將其直接映射到向量空間。我們主要根據(jù)包含項目核心信息的項目文檔標(biāo)題進行個性化推薦,利用TF-IDF 方法,從資源項目標(biāo)題中獲取關(guān)鍵詞,構(gòu)建資源關(guān)鍵詞向量。TFj,Di表示詞條j 在文檔Di中的出現(xiàn)頻率,IDFj表示詞條j 在文檔集合中的區(qū)分能力,最終詞條j在文檔Di中的TF-IDFj,Di值可以根據(jù)公式(1)計算得到[10]。
根據(jù)得到的每個詞條的TF-IDF 值,就可以構(gòu)建每個項目的詞向量,進而使用該向量計算項目間的余弦相似度。
基于UserCF 推薦就是基于用戶的歷史行為數(shù)據(jù),計算兩個科研用戶的興趣相似度,找到和目標(biāo)用戶興趣相似的用戶集合,進而找到集合中的用戶喜歡且目標(biāo)用戶沒有使用過的資源推薦給用戶[11]。該算法的核心是要構(gòu)建高??蒲杏脩艉涂蒲匈Y源項目的關(guān)系矩陣。首先根據(jù)用戶是否點擊瀏覽或下載科研資源文檔,構(gòu)建用戶向量,向量的維度就是項目的個數(shù),向量維度項的取值為1 表示用戶打開瀏覽或下載過資源項目,取值為0 表示用戶沒有進行相關(guān)操作即用戶對該資源不感興趣,根據(jù)建立的用戶向量建立用戶和項目關(guān)系矩陣。知名專家、教授的資源項目會成為大家都關(guān)注的熱門,但不意味著這些用戶興趣就相同,因此本文采用了對熱門項目進行懲罰的興趣相似度公式(2):
其中,N(e)、N(f)分別表示用戶e 和用戶f 瀏覽或下載過的科研資源集合。
表 1:科研用戶基本信息表
表 2:論文成果信息表
表 3:用戶行為信息表
根據(jù)用戶興趣度模型公式(3),把和目標(biāo)用戶相近的用戶喜歡的科研資源項目匯總起來,去掉用戶已經(jīng)瀏覽或下載過的項目,將剩下的項目排序后便可推薦給目標(biāo)用戶。
其中,n 是和用戶e 相似的用戶總數(shù),sime,f是用戶u 和用戶f的相似度,Rf,i是用戶f 對項目i 的評分,Pe,i為預(yù)估用戶e 對項目i的評分。
當(dāng)未注冊用戶和首次登錄的注冊用戶使用系統(tǒng)時,系統(tǒng)面臨用戶“冷啟動”問題,本文采用熱度推薦策略,將各學(xué)科當(dāng)前熱度值較高的資源項目推薦給這類用戶,主要實現(xiàn)代碼如下:
該模塊使用Python 的jieba 庫作為分詞工具,對資源文檔標(biāo)題分詞然后做去除停用詞處理,通過計算單詞的TF-IDF 值,構(gòu)造標(biāo)題關(guān)鍵詞向量,主要實現(xiàn)代碼如下:
該模塊采用通過懲罰熱門項目和建立項目用戶倒查表優(yōu)化算法計算復(fù)雜度的方式,進行優(yōu)化的User-CF過濾算法,計算用戶相似度,構(gòu)建用戶相似矩陣,計算目標(biāo)用戶對項目的興趣度,主要代碼如下:
基于當(dāng)今科研管理和服務(wù)平臺功能單一,不能將用戶感興趣的資源主動推薦給用戶的現(xiàn)狀。分析了高??蒲匈Y源個性化服務(wù)涉及的數(shù)據(jù)源,從各相關(guān)數(shù)據(jù)庫抽取所需數(shù)據(jù);經(jīng)過數(shù)據(jù)預(yù)處理再融合進MySQL 數(shù)據(jù)庫引擎;選擇并優(yōu)化了所需推薦算法;設(shè)計并實現(xiàn)了多引擎融合推薦系統(tǒng)架構(gòu)。系統(tǒng)實現(xiàn)了基于多種推薦策略的科研資源推薦,提高了資源利用率。
本研究還可為科研大數(shù)據(jù)的實時抽取、整合設(shè)計科學(xué)高效的數(shù)據(jù)倉庫;基于組件和服務(wù)的思想為其它應(yīng)用設(shè)計API 接口。