李晨躍 劉克劍 孟慶瑞
摘要:博物館網(wǎng)站主要展示館內(nèi)藏品,繁多的展品使得用戶在訪問網(wǎng)站時會花費大量時間??梢酝ㄟ^基于Web日志挖掘的技術(shù)分析用戶的訪問行為,判斷其興趣愛好,使用不同的推薦方法主動向用戶推薦其可能感興趣的博物館藏品,以提高用戶訪問體驗。主要使用4種推薦方式,即熱點推薦、類別推薦、相似推薦、猜猜你喜歡。
關(guān)鍵詞:推薦系統(tǒng);日志挖掘;熱點推薦;類別推薦
DOIDOI:10.11907/rjdk.161496
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2016)005-0066-02
0 引言
隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,逐漸從信息匱乏時代步入信息超載時代。消費者不易從大量信息中找到自己感興趣的信息;對于信息生產(chǎn)者,其產(chǎn)品或服務(wù)信息受到廣大用戶的關(guān)注,也是一件非常困難的事情[1]。
推薦系統(tǒng)作為一種信息過濾的重要工具,是當(dāng)前解決信息超載問題的重要方法[1]。推薦系統(tǒng)的任務(wù)就是聯(lián)結(jié)用戶和信息,一方面,幫助用戶發(fā)現(xiàn)有價值的信息;另一方面讓信息展現(xiàn)在對它感興趣的用戶面前,從而實現(xiàn)信息消費者和信息生產(chǎn)者的雙贏。
目前主流的推薦技術(shù)包括以下幾種:基于內(nèi)容的推薦、基于用戶統(tǒng)計信息的推薦、基于協(xié)同過濾的推薦[2]、基于關(guān)聯(lián)規(guī)則的推薦?;谖锲返膮f(xié)同過濾算法是目前應(yīng)用最多的算法,它通過分析用戶的歷史行為來計算物品間的相似度。算法主要分為兩步:①計算物品間的相似度;②根據(jù)用戶歷史行為和物品相似度計算用戶的推薦列表[3]。度量物品之間相似性的方法有多種,其中之一為使用余弦相似度定義物品和物品之間的相似度。
1 系統(tǒng)需求與數(shù)據(jù)庫設(shè)計
用戶通過瀏覽器訪問博物館藏品時,系統(tǒng)基于Web日志挖掘技術(shù)分析用戶訪問行為,判斷其興趣愛好,并主動推薦用戶可能感興趣的藏品,同時通過對用戶訪問行為的分析,在用戶登錄時呈現(xiàn)不同的網(wǎng)頁界面。如:通過分析發(fā)現(xiàn),某用戶對博物館中西藏植物有較大興趣,則當(dāng)該用戶再次訪問網(wǎng)站時,顯示的主要頁面是與西藏植物相關(guān)的內(nèi)容;若用戶從未訪問過網(wǎng)站,將會給予熱點藏品推薦,用戶訪問藏品后,下次再次登錄時,網(wǎng)站將會給予相關(guān)推薦。
1.1 系統(tǒng)模塊
根據(jù)用戶不同,對于沒有登錄的游客,系統(tǒng)只使用熱點藏品推薦功能;對于已登錄游客,如果第一次登錄,使用熱點藏品推薦;如果是已登錄過的會員,系統(tǒng)會調(diào)用所有模塊進行推薦。模塊如圖1所示。
1.2 系統(tǒng)功能模塊
為了增加推薦系統(tǒng)的多樣性,更好服務(wù)于用戶,設(shè)計如下4個推薦功能:熱點藏品推薦、按類別推薦、相似藏品推薦、猜猜你喜歡。
(1)熱點藏品推薦。從數(shù)據(jù)庫中讀取依據(jù)點擊量排名的藏品,選取點擊量前10的藏品推薦給用戶,使用基于內(nèi)容的推薦方法。
(2)按類別推薦。從用戶cookie中讀取用戶瀏覽過的藏品,獲得用戶喜好,從用戶最近瀏覽中選出4種類別,然后按類別從數(shù)據(jù)庫中選取該類別的熱點藏品推薦給用戶,使用基于人口統(tǒng)計的推薦方法。
(3)相似藏品推薦。首先獲取最近瀏覽的前5個藏品,再根據(jù)這5個藏品作相似藏品推薦。從相似度表中讀取與選出藏品相似的藏品,然后根據(jù)相似度排名,選取前4名的藏品作為相似藏品進行推薦,使用基于內(nèi)容的推薦方法。
(4)猜猜你喜歡。用戶點擊一個藏品,藏品的關(guān)鍵詞就會記錄到數(shù)據(jù)庫中,若某藏品也包含該關(guān)鍵詞,則這個關(guān)鍵詞在數(shù)據(jù)庫中的訪問量加1,選出訪問量靠前的關(guān)鍵詞,這些關(guān)鍵詞能代表用戶的興趣愛好。然后從倒排文件中選出包含這些關(guān)鍵詞的所有藏品,對這些藏品包含關(guān)鍵詞的個數(shù)進行排序,選取包含關(guān)鍵詞多的藏品推薦給用戶,使用基于物品協(xié)同過濾的方法。
2 數(shù)據(jù)庫設(shè)計
除最基本的用戶表(User)表和博物館(exhibit)表之外,設(shè)計用戶關(guān)鍵字(UserKeyWord)表;相似度(Similarity)表;關(guān)鍵字權(quán)重(KeyWordWeight)表;關(guān)鍵字字典(KeyWordDictionary)表;倒排文件(InvertedFile)表。數(shù)據(jù)庫關(guān)系表如圖2所示。
3 功能實現(xiàn)
系統(tǒng)數(shù)據(jù)挖掘與推薦時,需要用到自定義函數(shù)以進行數(shù)據(jù)傳遞和分析。首先從用戶的cookie或者數(shù)據(jù)庫中讀取用戶瀏覽信息;然后,根據(jù)不同的推薦類型,選擇不同的函數(shù)對數(shù)據(jù)進行推薦操作;最后,將推薦結(jié)果返還給用戶。詳細步驟如下:
(1)當(dāng)用戶點擊某個藏品時,獲取藏品關(guān)鍵詞,將這些關(guān)鍵字與用戶ID放到一張表中(UserKeyWord),同時記錄關(guān)鍵字的次數(shù)。檢查該藏品的關(guān)鍵詞是否已經(jīng)存在數(shù)據(jù)庫中(表keyWordDictionary)。若關(guān)鍵詞不在數(shù)據(jù)庫中,將該關(guān)鍵詞插入到數(shù)據(jù)庫中,并將該藏品插入到倒排文件中(表InvertedFile);若該關(guān)鍵詞已經(jīng)在數(shù)據(jù)庫中,則直接將該藏品插入到該關(guān)鍵詞倒排文件中,最后計算藏品與其它藏品間的相似度。
(2)計算藏品之間的相似度。首先,從展品表(exhibit)獲取該藏品的所有關(guān)鍵詞,然后從倒排文件中獲取與該藏品有相同關(guān)鍵詞的所有藏品,計算該藏品與有相同關(guān)鍵詞藏品間的相似度。但只與有相同關(guān)鍵詞的藏品進行相似度計算,與沒有相同關(guān)鍵詞的藏品之間的相似度為0,避免與其它所有藏品間計算相似度,從而節(jié)約資源。計算的方法為獲取藏品的所有關(guān)鍵詞權(quán)重(表KeyWordWeight),計算兩藏品關(guān)鍵詞權(quán)重組成的向量余弦夾角[4],將兩藏品間的余弦夾角保存到數(shù)據(jù)庫中(表Similarity),最后根據(jù)相似度選出前4個藏品返還給用戶。計算相似度代碼如下:
(3)為了提高訪問速度,減輕數(shù)據(jù)庫負擔(dān)。當(dāng)用戶點擊藏品時,將該藏品以及點擊時間保存到緩存中,若緩存中藏品量達到極限,從緩存中刪除點擊量少并且保存時間久遠的藏品,以便存儲新的藏品。當(dāng)要用到該藏品相似藏品時直接從緩存中讀取,加快訪問速度,減輕數(shù)據(jù)庫服務(wù)器負擔(dān)。
4 結(jié)語
本文將推薦系統(tǒng)引入博物館網(wǎng)站建設(shè),以提升用戶體驗。系統(tǒng)基于不同推薦算法提供了4種推薦體驗,從多方面考慮用戶需求,盡可能為用戶推薦到滿意的藏品,大大提高用戶體驗。
參考文獻:
[1]許海玲,吳瀟,李曉東,閻保平.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報, 2009, 20(2):350-362.
[2]GOLDBERG D,NICHOLS D,OKI B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the ACM,1992,35(12):61-70.
[3]應(yīng)毅,劉亞軍,陳誠.基于云計算技術(shù)的個性化推薦系統(tǒng)[J].計算機工程與應(yīng)用,2015,51(13):111-117.
[4]王國霞,劉賀平.個性化推薦系統(tǒng)綜述[J].計算機工程與應(yīng)用,2012,48(7):66-76.
(責(zé)任編輯:陳福時)