侯寶鎖
(浙江旅游職業(yè)學(xué)院 后勤服務(wù)處,杭州 311231)
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,旅游產(chǎn)品不斷豐富,且在互聯(lián)網(wǎng)這一時(shí)代背景下,將線下旅游產(chǎn)品發(fā)展為線上和線下相結(jié)合的旅游產(chǎn)品,相較之前單純的線下旅游產(chǎn)品,具有產(chǎn)品豐富、服務(wù)廣泛、溝通高效等優(yōu)點(diǎn)[1]。然而,豐富的旅游產(chǎn)品和活動(dòng),卻也讓用戶無(wú)從選擇,為此,研究旅游景區(qū)推薦系統(tǒng)可以為用戶提供更加人性化的旅游服務(wù)[2]。
目前,旅游市場(chǎng)研究出了途牛旅游網(wǎng)、基于情境感知的推薦系統(tǒng)、Web和移動(dòng)端、混合推薦算法等旅游推薦技術(shù),為用戶制定個(gè)性化旅游產(chǎn)品并推薦[3]。文獻(xiàn)[4]通過(guò)爬蟲(chóng)軟件和Jieba分詞獲取用戶在線評(píng)論信息,并對(duì)其感情強(qiáng)度進(jìn)行評(píng)價(jià)賦權(quán),使用Topsis排序?yàn)橛脩敉扑]旅游景點(diǎn)。文獻(xiàn)[5]將分段用戶群與時(shí)間相結(jié)合,建立旅游景點(diǎn)推薦模型,為用戶個(gè)性化推薦旅游景點(diǎn)。文獻(xiàn)[6]采用Spark框架設(shè)計(jì)加權(quán)矩陣分解算法,實(shí)現(xiàn)個(gè)性化景點(diǎn)推薦系統(tǒng)設(shè)計(jì)。文獻(xiàn)[7]用混合推薦算法,緩解系統(tǒng)處理用戶數(shù)據(jù)稀疏問(wèn)題,提高系統(tǒng)推薦質(zhì)量。文獻(xiàn)[8]將融合項(xiàng)目和用戶隱式反饋相結(jié)合,實(shí)現(xiàn)個(gè)性化推薦系統(tǒng)設(shè)計(jì)。
上述旅游推薦算法生成景區(qū)推薦列表速度慢且推薦景區(qū)范圍小,難以滿足用戶個(gè)性化需求,本研究利用關(guān)聯(lián)規(guī)則改進(jìn)Apriori算法,在分析用戶行為的基礎(chǔ)上設(shè)計(jì)旅游景區(qū)推薦系統(tǒng)。
在目前設(shè)計(jì)的景區(qū)推薦系統(tǒng)硬件基礎(chǔ)上,采用典型的B/S架構(gòu)將景區(qū)推薦系統(tǒng)架構(gòu)分為應(yīng)用、業(yè)務(wù)邏輯和數(shù)據(jù)3層,所設(shè)計(jì)的系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)在系統(tǒng)的業(yè)務(wù)邏輯層采用Web服務(wù)器接收用戶的推薦請(qǐng)求,并完成相應(yīng)的推薦邏輯處理,然后以HTML的形式,將處理后的數(shù)據(jù)返回到用戶界面,以供用戶瀏覽景區(qū)推薦數(shù)據(jù),完成用戶推薦請(qǐng)求;數(shù)據(jù)層將兩個(gè)數(shù)據(jù)庫(kù)服務(wù)器相結(jié)合,并與Mysql數(shù)據(jù)存儲(chǔ)板塊相連接,以增加數(shù)據(jù)的處理和存儲(chǔ)能力。業(yè)務(wù)邏輯層軟件方面,將其分為數(shù)據(jù)計(jì)算和景區(qū)推薦兩部分,采用Apriori改進(jìn)算法分析用戶行為,得到用戶行為分析結(jié)果,根據(jù)分析結(jié)果,計(jì)算旅游景區(qū)詞頻,通過(guò)推薦模型為用戶推薦旅游景區(qū)。此外,在Web服務(wù)器和用戶網(wǎng)絡(luò)之間增加了一個(gè)防火墻,用于過(guò)濾惡意IP地址請(qǐng)求[9]。
此次設(shè)計(jì)系統(tǒng)設(shè)計(jì)的數(shù)據(jù)層,將數(shù)據(jù)庫(kù)處理器分為3部分,一個(gè)數(shù)據(jù)庫(kù)用于處理、提取存儲(chǔ)數(shù)據(jù);另一個(gè)數(shù)據(jù)庫(kù)用于用戶緩存提取的數(shù)據(jù)庫(kù)數(shù)據(jù),以此降低Web服務(wù)器訪問(wèn)數(shù)據(jù)存儲(chǔ)層頻率,提高系統(tǒng)推薦景區(qū)速度。在已有的數(shù)據(jù)庫(kù)中選擇Myaql軟件作為此次設(shè)計(jì)系統(tǒng)的數(shù)據(jù)庫(kù),其中存儲(chǔ)了百科、景點(diǎn)文本和poi等數(shù)據(jù),以此支持系統(tǒng)詞頻計(jì)算。
應(yīng)用層主要為系統(tǒng)提供訪問(wèn)接口,用戶可以采用電腦、PC、手機(jī)、ipad等智能終端訪問(wèn)系統(tǒng),選擇系統(tǒng)應(yīng)用層不同模塊瀏覽系統(tǒng)內(nèi)容,獲取自身需求的景區(qū)推薦信息[10]。
系統(tǒng)管理終端中包含系統(tǒng)維護(hù)、管理、檢修等系統(tǒng)控制功能,如系統(tǒng)推薦、查詢等規(guī)則更新、調(diào)整、用戶信息增添、刪除等功能。
由于旅游景區(qū)的環(huán)境、天氣、開(kāi)放程度等都存在諸多不確定性,且用戶在選擇旅游景區(qū)時(shí),會(huì)受到天氣、時(shí)間、同伴等因素影響而發(fā)生變化。因此,系統(tǒng)需要根據(jù)用戶對(duì)相關(guān)旅游數(shù)據(jù)的瀏覽時(shí)長(zhǎng)、關(guān)鍵詞篩選、標(biāo)簽等數(shù)據(jù)定義用戶行為。但是,在定義過(guò)程中會(huì)受數(shù)據(jù)時(shí)間界限影響,一旦定義的用戶行為超過(guò)規(guī)定時(shí)間,其原本定義的用戶行為將不能作為推薦旅游景區(qū)行為標(biāo)識(shí)。
基于此,從系統(tǒng)應(yīng)用層中抽取的注冊(cè)信息和表現(xiàn)、情境和虛擬行為、交易記錄等用戶行為進(jìn)行分組,整理用戶行為標(biāo)簽,根據(jù)標(biāo)簽的多少、頁(yè)面瀏覽時(shí)長(zhǎng)、標(biāo)簽時(shí)間生成等分組排序。其具體過(guò)程如下:
步驟1:將分組后的用戶行為文件記為文本文件e,其標(biāo)準(zhǔn)配置文件類(lèi)型為fconf;
步驟2:根據(jù)fconf初始化文本文件e;
步驟3:按照文件大小排列,存儲(chǔ)一個(gè)用戶行為關(guān)聯(lián)操作組q;
步驟4:循環(huán)步驟3,當(dāng)?shù)竭_(dá)“!”時(shí)即結(jié)束文件存儲(chǔ)循環(huán),其中,“!”表示文本文件e循環(huán)結(jié)束符;
步驟5:讀取文件e中的一行信息,判斷信息中標(biāo)識(shí)符u的定義。若u表示用戶標(biāo)識(shí)符,按照先后順序?qū)中的元素存儲(chǔ)到r中,同時(shí)清空q中的元素;若標(biāo)識(shí)符u表示景區(qū)項(xiàng)目,按照先后順序?qū)中的元素存儲(chǔ)到r中;若標(biāo)識(shí)符u表示用戶行為,重置用戶“篩選條件”,清空q中的元素;
步驟6:循環(huán)步驟5,對(duì)比標(biāo)識(shí)符u中的元素與關(guān)聯(lián)操作組q中的元素;
步驟7:判斷關(guān)聯(lián)操作組q中的元素是否包含標(biāo)識(shí)符u中的元素,若包含標(biāo)識(shí)符u中的元素,標(biāo)注關(guān)聯(lián)操作組q中的行為類(lèi)型;若不包含標(biāo)識(shí)符u中的元素,將該元素添加在關(guān)聯(lián)操作組q的列隊(duì)末尾;
步驟8:輸出用戶行為序列。
根據(jù)上述8個(gè)步驟生成的用戶行為序列,以用戶為單位建立用戶行為模板g,記錄用戶行為序列和旅游景區(qū)之間的關(guān)聯(lián),形成用戶行為特征文件。為此,將用戶行為作為原始數(shù)據(jù)序列根據(jù)用戶行為種類(lèi)V,構(gòu)建V維用戶行為特征文件O,則有:
O={(h1,s1),…,(hv,sv),…,(hV,sV)}
(1)
式(1)中,hi表示用戶行為模板g中第v個(gè)用戶行為;sv表示行為模板中出現(xiàn)hi的次數(shù)[11]。依據(jù)式(1)所示的用戶行為特征文件,采用關(guān)聯(lián)規(guī)則方法改進(jìn)Apriori算法為用戶行為賦權(quán),建立用戶行為分析模型,生成推薦旅游景區(qū)集合,為用戶推薦心儀的旅游景區(qū)。
1.3.1 用戶行為賦權(quán)
根據(jù)式(1)所示的用戶行為特征文件,賦予用戶行為重要程度權(quán)重,將定性問(wèn)題轉(zhuǎn)化為定量問(wèn)題?;诖?,將用戶行為劃分為水平、垂直和復(fù)合3個(gè)層次,利用關(guān)聯(lián)規(guī)則算法計(jì)算用戶行為關(guān)聯(lián)加權(quán)。
將系統(tǒng)中存儲(chǔ)的用戶注冊(cè)信息和表現(xiàn)記為用戶行為關(guān)聯(lián)水平加權(quán),假設(shè)旅游服務(wù)產(chǎn)品項(xiàng)目特征集合為B={b1,…,bi,…,bk},其中,k表示旅游服務(wù)產(chǎn)品項(xiàng)目數(shù)量,bi表示第i個(gè)旅游服務(wù)產(chǎn)品項(xiàng)目。為bi賦權(quán),將其權(quán)值記為wi,則wi具有0≤wi≤1,i=1,2,…,k性質(zhì),則有:
w1=ω(B)z1(B)=max{w1,…,wi,…,wk}z1(B) ,
(2)
式(2)中,w1表示用戶行為關(guān)聯(lián)水平加權(quán)支持度;ω(B)表示B的加權(quán)值;z1(B)表示B的支持度;{w1,…,wi,…,wk}表示B中每一項(xiàng)的權(quán)值[12]。
將用戶的情境、虛擬行為等記為用戶行為多源關(guān)聯(lián)垂直加權(quán),假設(shè)用戶相關(guān)事物記錄集合為A={a1,…,aj,…,al},其中,aj表示第j條用戶相關(guān)事物記錄,l表示用戶相關(guān)事物記錄數(shù)量,為aj賦權(quán),將其權(quán)值記為wj,其具有0≤wj≤1,j=1,2,…,l性質(zhì),則有:
(3)
式(3)中,w2表示用戶行為多元關(guān)聯(lián)垂直加權(quán)支持度;∑wj(a′)表示用戶相關(guān)事物記錄中與a′行為相關(guān)的權(quán)值和,其中,a′代表情境、虛擬個(gè)體和虛擬行為關(guān)聯(lián)等行為中的任意一種;∑wj(A)表示用戶相關(guān)事物記錄的加權(quán)值[13]。
將B和A相結(jié)合產(chǎn)生的用戶交易記錄行為記為復(fù)合關(guān)聯(lián)加權(quán),即在水平權(quán)值wi的基礎(chǔ)上,還具有垂直權(quán)值wj,且同時(shí)具有兩個(gè)權(quán)值的性質(zhì),則有:
(4)
式(4)中,z(A,B)表示A,B的支持度;z1(wi)表示wi的支持度;z1(wj)表示wj的支持度[14]。綜合上述3個(gè)公式為用戶行為關(guān)聯(lián)賦予的權(quán)值,建立用戶行為分析模型。
1.3.2 建立用戶行為分析模型
假設(shè)系統(tǒng)應(yīng)用層存在n個(gè)界面訪問(wèn)事務(wù)和m個(gè)指標(biāo),用戶在瀏覽系統(tǒng)應(yīng)用層時(shí),可以生成初始行為矩陣ψn*m。與此同時(shí),將上述3個(gè)公式計(jì)算得到的用戶行為權(quán)值按照降序順序排列,若B中的第i項(xiàng)bi出現(xiàn)在A中的第j項(xiàng)aj中,則ψn*m=1,反之,ψn*m=0。
采用改進(jìn)后的Apriori算法,計(jì)算用戶行為項(xiàng)目最低支持?jǐn)?shù)zmin(A,B):
(5)
邏輯運(yùn)算A和B,即A^B=ψ2,其中,^表示邏輯運(yùn)算符號(hào),ψ2表示^運(yùn)算生成的新矩陣。比較ψ1的最低支持?jǐn)?shù)和ψ2的最低支持?jǐn)?shù),生成加權(quán)頻繁2推薦景區(qū)項(xiàng)集。連續(xù)運(yùn)算A^B,得到候選l推薦景區(qū)項(xiàng)集的支持?jǐn)?shù),并將其與zmin(A,B)對(duì)比,得到加權(quán)頻繁l項(xiàng)集。此時(shí),生成的加權(quán)頻繁l項(xiàng)集,即根據(jù)用戶行為向用戶推薦的旅游景區(qū)集合。
選擇基于Spark的推薦系統(tǒng)[6]和基于深度學(xué)習(xí)的推薦系統(tǒng)[7]作為此次實(shí)驗(yàn)對(duì)比系統(tǒng),采用8核2.40 GHz的CPU、128 GB的內(nèi)存、12 TB的硬盤(pán)、千兆網(wǎng)卡、Centos6.0版本的操作系統(tǒng)等硬件搭建3個(gè)配置一樣的推薦系統(tǒng),通過(guò)RMSE、準(zhǔn)確率、召回率、覆蓋率4個(gè)指標(biāo),以及系統(tǒng)推薦離線計(jì)算和在線計(jì)算耗時(shí)測(cè)試,驗(yàn)證此次設(shè)計(jì)基于Apriori改進(jìn)算法及行為分析的旅游景區(qū)推薦系統(tǒng)的運(yùn)行性能。
此次實(shí)驗(yàn)將系統(tǒng)性能測(cè)試分為計(jì)算速度和指標(biāo)評(píng)測(cè)兩部分,在此次實(shí)驗(yàn)準(zhǔn)備的系統(tǒng)推薦測(cè)試數(shù)據(jù)集中,對(duì)比測(cè)試3組系統(tǒng)運(yùn)行性能。此次實(shí)驗(yàn)準(zhǔn)備的系統(tǒng)推薦測(cè)試數(shù)據(jù)集中,包含了用戶、旅游景區(qū)、用戶評(píng)分3類(lèi)信息,其數(shù)量分別為10 000、3 000和2 000 000。所選擇的數(shù)據(jù)集中,每位用戶都至少瀏覽過(guò)10個(gè)旅游景區(qū)。
2.1.1 速度計(jì)算設(shè)計(jì)
推薦系統(tǒng)計(jì)算速度快慢體現(xiàn)在用戶在某個(gè)具體頁(yè)面停留時(shí)長(zhǎng),直接影響用戶體驗(yàn)效果,其停留時(shí)間越長(zhǎng)用戶體驗(yàn)效果越差?;诖?,根據(jù)系統(tǒng)推薦引擎,將系統(tǒng)推薦引擎運(yùn)行前后時(shí)間差作為系統(tǒng)推薦速度測(cè)試指標(biāo),其計(jì)算公式如式(6)所示:
Δt=t2-t1
(6)
式(6)中,Δt表示系統(tǒng)推薦引擎運(yùn)行前后時(shí)間差;t2表示系統(tǒng)引擎計(jì)算前系統(tǒng)運(yùn)行時(shí)間;t1表示系統(tǒng)引擎計(jì)算后運(yùn)行時(shí)間。如式(6)所示的系統(tǒng)推薦速度計(jì)算公式,Δt值越小,用戶體驗(yàn)效果越優(yōu),系統(tǒng)推薦性能越好。
2.1.2 指標(biāo)評(píng)測(cè)設(shè)計(jì)
將此次實(shí)驗(yàn)選擇的數(shù)據(jù)集中2 000 000的用戶評(píng)分信息按照6∶4的比例,分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集兩部分。在測(cè)試系統(tǒng)推薦性能時(shí),需要對(duì)系統(tǒng)性能進(jìn)行全方面評(píng)測(cè),為此,選擇RMSE、準(zhǔn)確率、召回率、覆蓋率4個(gè)指標(biāo)判斷系統(tǒng)推薦性能,其計(jì)算公式如下:
(7)
如式(7)所示,準(zhǔn)確率、召回率和覆蓋率指標(biāo)值越高,系統(tǒng)推薦的旅游景區(qū)范圍越廣,越符合用戶需求。RMSE評(píng)價(jià)指標(biāo)用于度量系統(tǒng)對(duì)用戶行為賦權(quán)結(jié)果,其值越小,用戶行為誤差越小。上述4個(gè)指標(biāo)計(jì)算數(shù)據(jù),其用戶信息和產(chǎn)品信息均從此次實(shí)驗(yàn)選擇的數(shù)據(jù)集中獲取。
2.2.1 系統(tǒng)推薦速度計(jì)算結(jié)果
根據(jù)式(7)所示的計(jì)算公式,計(jì)算3組系統(tǒng)推薦旅游景區(qū)在線和離線計(jì)算時(shí)間,其計(jì)算結(jié)果如圖2所示。從圖2可以看出,系統(tǒng)離線計(jì)算速度明顯較在線計(jì)算速度快。其中,設(shè)計(jì)系統(tǒng)較基于Spark的推薦系統(tǒng)和基于深度學(xué)習(xí)的推薦系統(tǒng)離線計(jì)算速度分別快0.42 s、1.8 s,3組系統(tǒng)離線計(jì)算速度相差較?。辉诰€計(jì)算速度分別快46.9 s、114.16 s,3組系統(tǒng)在線計(jì)算速度相差極大。由此可見(jiàn),此設(shè)計(jì)系統(tǒng)具有較快的推薦速度,用戶所需等待時(shí)間短。
圖2 系統(tǒng)推薦旅游景區(qū)在線和離線計(jì)算時(shí)間
2.2.2 系統(tǒng)評(píng)測(cè)指標(biāo)測(cè)試結(jié)果
根據(jù)式(7)所示的計(jì)算公式,計(jì)算3組系統(tǒng)推薦旅游景區(qū)評(píng)測(cè)指標(biāo),其計(jì)算結(jié)果如圖3所示。
圖3 系統(tǒng)推薦旅游景區(qū)評(píng)測(cè)指標(biāo)計(jì)算結(jié)果
從圖3中可以看出,此次設(shè)計(jì)系統(tǒng)的RMSE指標(biāo)相較基于Spark的推薦系統(tǒng)和基于深度學(xué)習(xí)的推薦系統(tǒng)分別小0.07和0.1,準(zhǔn)確率、召回率和覆蓋率分別高0.133 8和0.216 2、0.099 2和0.138 5、0.457 7和0.323 5。由此可見(jiàn),此次設(shè)計(jì)系統(tǒng)4個(gè)指標(biāo)值均處于最優(yōu)值。
綜合上述兩組實(shí)驗(yàn)結(jié)果可知,本設(shè)計(jì)系統(tǒng)生成旅游景區(qū)推薦列表速度快,且推薦范圍相對(duì)較廣,更加符合用戶需求。
系統(tǒng)采用Apriori改進(jìn)算法賦予用戶行為特征權(quán)重,以此確定用戶對(duì)旅游景區(qū)的需求,從而生成滿足用戶需求的旅游景區(qū)推薦列表;經(jīng)驗(yàn)證,系統(tǒng)提高了旅游景區(qū)推薦速度、范圍和正確率。但是系統(tǒng)并未考慮推薦資源調(diào)配方法,處理用戶行為數(shù)據(jù)方面稍顯不足。因此,在今后的研究中,還需深入研究推薦資源調(diào)配方法,進(jìn)一步提高系統(tǒng)對(duì)用戶行為數(shù)據(jù)處理能力。