史?,?/p>
摘要:目前用戶出行前多是從網(wǎng)上查找旅游信息,由于信息過載且推薦算法在旅游推薦領(lǐng)域應(yīng)用很少,從海量信息中找到心儀的旅游景點(diǎn)并非易事。為了能夠有效解決過載問題并向用戶精準(zhǔn)提供有效信息,設(shè)計(jì)出融合了旅游景點(diǎn)屬性的協(xié)同過濾算法的旅游推薦系統(tǒng)。該文首先為旅游景點(diǎn)建立評(píng)價(jià)指標(biāo)體系,將指標(biāo)數(shù)據(jù)作為景點(diǎn)屬性進(jìn)行相似度計(jì)算并根據(jù)計(jì)算結(jié)果對(duì)旅游景點(diǎn)進(jìn)行相似分類,結(jié)合協(xié)同過濾算法計(jì)算用戶相似性并產(chǎn)生專屬景點(diǎn)推薦列表,為用戶提供個(gè)性化旅游推薦。本系統(tǒng)對(duì)河北省11個(gè)城市的旅游景點(diǎn)進(jìn)行推薦。
關(guān)鍵詞:旅游推薦;景點(diǎn)屬性;協(xié)同過濾;相似度
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)35-0064-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Design and Implementation of Travel Recommendation System Based on Collaborative Filtering Algorithm
SHI Rui-yao
(Hebei University of Engineering, Handan 056004, China)
Abstract: At present, a lot of users before a trip to find travel information from the Internet, due to information overload and recommendation algorithm applied in the field of recommendation are very few, found in the mass information of tourist attractions is not easy to be able to effectively solve the problem of overload and provide useful information to user accurately, design the blend of the tourist attractions tourism recommendation system properties of collaborative filtering algorithm This paper in order to establish the evaluation index system of tourist attractions, the index data as the attributes of the scenic spots in similarity calculation based on the calculation results of similar tourist attractions are classified, combined with the collaborative filtering algorithm to calculate similarity between user and generate exclusive attractions recommended list, to provide users with personalized recommendation system this tourist attraction of 11 cities in Hebei province is recommended.
Key words: tourism recommendation; scenic spot attribute; collaborative filtering; similarity
1 背景
隨著旅游業(yè)的發(fā)展旅游行業(yè)越來越信息化,數(shù)量眾多的旅游景點(diǎn)存在著信息過載現(xiàn)象且日益嚴(yán)重,用戶在網(wǎng)上查找時(shí)很難真正搜索到自己感興趣的旅游景點(diǎn),對(duì)此推薦系統(tǒng)是一種行之有效的解決方法。目前推薦系統(tǒng)已在電影、新聞、音樂、電子商務(wù)等方面應(yīng)用廣泛,但在旅游領(lǐng)域還未廣泛使用:各大旅游網(wǎng)站多是提供信息查詢及訂票服務(wù),鮮有對(duì)于旅游景點(diǎn)的推薦,因此本文將推薦算法應(yīng)用于旅游景點(diǎn)的推薦。
個(gè)性化推薦系統(tǒng)具有商務(wù)智能,依托于挖掘大量數(shù)據(jù)信息,建立模型幫助用戶進(jìn)行決策或者為用戶定制推薦符合其自身喜好的商品。本文選擇的推薦算法是協(xié)同過濾算法,其誕生之初主要用于過濾個(gè)人郵件,目前協(xié)同過濾推薦在電子商務(wù)、電影、音樂等方面應(yīng)用成熟,在旅游領(lǐng)域鮮有使用。國(guó)內(nèi)目前存在的旅游服務(wù)網(wǎng)站大多只是將旅游景點(diǎn)進(jìn)行簡(jiǎn)單的分類,對(duì)景點(diǎn)概要介紹并為用戶開放評(píng)論與評(píng)分功能,這些服務(wù)較為被動(dòng)且不具個(gè)性化,對(duì)于沒有明確目的地的用戶來說服務(wù)不夠有針對(duì)性。矩陣稀疏是它的一大缺點(diǎn),有學(xué)者提出利用景點(diǎn)自身特性為旅游景點(diǎn)添加標(biāo)簽以解決數(shù)據(jù)稀疏的問題[1]。對(duì)于普通用戶來說,協(xié)同過濾的優(yōu)點(diǎn)在于可以共同分享他人經(jīng)驗(yàn),使得搜索結(jié)果信息更加精確,還可以得到新信息。基于以上研究背景,本文設(shè)計(jì)并實(shí)現(xiàn)基于協(xié)同過濾的旅游推薦系統(tǒng),希望可以為現(xiàn)在的旅游信息系統(tǒng)發(fā)展個(gè)性化推薦時(shí)提供一定的借鑒意義[2]。
2 旅游景點(diǎn)推薦系統(tǒng)的相關(guān)介紹
2.1 算法介紹
旅游推薦系統(tǒng)的作用主體為用戶和旅游景點(diǎn),主要研究也是針對(duì)用戶信息和景點(diǎn)信息進(jìn)行計(jì)算。協(xié)同過濾算法的原理和思想是:基于用戶信息從歷史用戶中尋找與其愛好相似、興趣相投的,找到相似用戶集群之后通過分析這些歷史用戶的歷史行為發(fā)掘他們的其他喜好和行為信息,并基于這些信息完成對(duì)目標(biāo)用戶的喜好和行為預(yù)測(cè)給出推薦[3]。由于只考慮用戶評(píng)分有其片面性和局限性,本文考慮在協(xié)同過濾算法中引入景點(diǎn)屬性對(duì)景點(diǎn)進(jìn)行相似度計(jì)算。通過建立旅游景點(diǎn)評(píng)價(jià)指標(biāo)體系作為詳細(xì)描述景點(diǎn)的標(biāo)簽,結(jié)合協(xié)同過濾算法對(duì)矩陣中的空缺值進(jìn)行評(píng)分預(yù)測(cè)從而得到推薦結(jié)果。根據(jù)算法特性本系統(tǒng)使用基于物品的協(xié)同過濾推薦算法[4],基本公式為:
[Puj=j∈N(u)?S(i,K)Wjiruj]
基本原理就是通過分析用戶的歷史行為找到用戶喜歡過的商品集合,計(jì)算相似度確定歷史商品的相似商品,將相似度高的新商品推薦給用戶[5],適用于商品數(shù)比用戶集數(shù)量小很多且數(shù)量不宜發(fā)生變化的情況。
2.2 評(píng)價(jià)指標(biāo)的建立
評(píng)價(jià)指標(biāo)是分析旅游競(jìng)爭(zhēng)力的必不可少的要素,可以詳細(xì)表現(xiàn)出景點(diǎn)的特征,對(duì)于景點(diǎn)相似度計(jì)算結(jié)果有增益效果。由于目前尚未形成統(tǒng)一的指標(biāo)評(píng)價(jià)體系,本文在研究大量文獻(xiàn)的基礎(chǔ)上,分析與篩選整理并選取其中質(zhì)量好、可信度高的,作為本文旅游景點(diǎn)評(píng)價(jià)指標(biāo)體系構(gòu)建的理論依據(jù)。本旅游景點(diǎn)評(píng)價(jià)指標(biāo)體系的確立所使用到的方法有:調(diào)查問卷法、專家法和二次文獻(xiàn)法建立,本評(píng)價(jià)指標(biāo)體系分為三級(jí),如下表1所示。
2.3 確定權(quán)重
本文確定數(shù)據(jù)權(quán)重的方法是AHP層次分析法, 是一種定性和定量相結(jié)合的、系統(tǒng)化、層次化的分析方法[6]。其確定流程為:首先需要構(gòu)建判斷矩陣,構(gòu)建方式為:計(jì)算出各分析項(xiàng)的平均值,接著利用平均值大小相除得到判斷矩陣,平均值越大意味著重要性越高,權(quán)重也會(huì)越高,得出結(jié)果之后計(jì)算CR值(一致性指標(biāo),[CR=CIRI])。大致可將一致性檢驗(yàn)過程分為以下幾個(gè)步驟:第一:先描述上述計(jì)算得到的CI值,公式為:[CI=最大特征根-1n-1];第二:結(jié)合判斷矩陣階數(shù)得到RI值;第三:求出CR值得到一致性檢驗(yàn)結(jié)果。一般情況下CR值越小越好,若小于0.1,則可以得出此矩陣滿足一致性檢驗(yàn);反之需調(diào)整判斷矩陣之后重新檢驗(yàn)。由于旅游景點(diǎn)有13個(gè)屬性值,故本次判斷矩陣為13階且CI值為0.000,針對(duì)RI值查表為1.560,根據(jù)結(jié)果可知得出的權(quán)重具有一致性。結(jié)果如下表2所示。
2.4 景點(diǎn)相似度計(jì)算
確定評(píng)價(jià)指標(biāo)體系每項(xiàng)數(shù)據(jù)權(quán)重之后,從網(wǎng)絡(luò)上爬取相關(guān)數(shù)據(jù)可以構(gòu)建出關(guān)于景點(diǎn)-評(píng)價(jià)指標(biāo)的549×12維矩陣:
[J1J2...J549A1A2...A12B1B2...B12............N1N2...N12]
其中每一行代表一個(gè)景點(diǎn)的數(shù)據(jù),本次數(shù)據(jù)采集到河北省的549條景點(diǎn)數(shù)據(jù),所以本矩陣有549行;每一列分別代表一個(gè)評(píng)價(jià)指標(biāo)。由于旅游景點(diǎn)數(shù)量不容易發(fā)生大的變動(dòng)且遠(yuǎn)遠(yuǎn)小于用戶數(shù)量,本矩陣數(shù)據(jù)密集且變量之間基本存在共有值,故景點(diǎn)相似度選用歐氏距離計(jì)算。其表示在向量空間中某兩點(diǎn)之間的真實(shí)距離,或某點(diǎn)到原點(diǎn)間距離,通過對(duì)個(gè)體在空間中距離的度量來確定個(gè)體間的相似性,公式為:
[dist(X,Y)=i=1n(xi-yi)2]
對(duì)于實(shí)現(xiàn)景點(diǎn)相似度計(jì)算時(shí)選用Python語(yǔ)言,將預(yù)處理過的數(shù)據(jù)寫入上述矩陣中,循環(huán)賦值矩陣中每一行為X、Y,分別兩兩計(jì)算其歐氏距離并選取TOP10作為景點(diǎn)的相似景點(diǎn)。該部分核心代碼如下:
for i in item_similar.index:
_df = item_similar.loc[i].drop([i])
_df_sorted = _df.sort_values(ascending=False)
top10 = list(_df_sorted.index[:10])
topN_items[i] = top10
3 旅游景點(diǎn)推薦系統(tǒng)設(shè)計(jì)構(gòu)建
3.1 總體架構(gòu)設(shè)計(jì)
本系統(tǒng)需要構(gòu)建用戶屬性數(shù)據(jù)庫(kù)表和景點(diǎn)屬性數(shù)據(jù)庫(kù)表,通過對(duì)用戶和景點(diǎn)的屬性信息相似度的計(jì)算確定推薦列表,為用戶提供個(gè)性化推薦。系統(tǒng)架構(gòu)圖如下。
3.2 主要功能
本旅游推薦系統(tǒng)主要針對(duì)目標(biāo)目的地模糊不清或想探尋沒去過的、不一樣的旅游景點(diǎn)的游客,系統(tǒng)分為管理端和用戶端[7],用戶端分為游客登錄模塊、熱門推薦模塊、景點(diǎn)評(píng)分模塊、個(gè)性化推薦模塊。用戶初登錄系統(tǒng)時(shí)會(huì)看到熱門推薦模塊,該模塊結(jié)果選自所有景點(diǎn)中用戶評(píng)分較高的TOP景點(diǎn),由于所有用戶登錄系統(tǒng)后所看到的推薦結(jié)果相同所以不具有個(gè)性化推薦功能。個(gè)性化推薦是通過對(duì)用戶和景點(diǎn)信息進(jìn)行相似度計(jì)算并結(jié)合協(xié)同過濾算法得到的針對(duì)用戶的專屬推薦列表,每個(gè)用戶的推薦結(jié)果都不一樣。管理員負(fù)責(zé)管理用戶和景點(diǎn)的信息,從管理端的登錄入口登錄。系統(tǒng)的功能模塊圖如圖2所示。
3.3 數(shù)據(jù)獲取
通過對(duì)景點(diǎn)數(shù)據(jù)的抓取,將得到的550個(gè)景點(diǎn)分為9個(gè)類別分別為:地文景區(qū)、水域景區(qū)、生物景區(qū)、歷史遺跡景區(qū)、博物館景區(qū)、主題公園景區(qū)、度假區(qū)、建筑物景區(qū)和民族民俗景區(qū)九類。本系統(tǒng)數(shù)據(jù)集主要利用爬蟲[8]技術(shù)從旅游網(wǎng)站上獲取,取得的景點(diǎn)數(shù)據(jù)其實(shí)就是標(biāo)簽數(shù)據(jù),矩陣中的一行[A1A2...A12]就是景點(diǎn)J1的標(biāo)簽。指標(biāo)體系中創(chuàng)新的屬性為酒店餐飲服務(wù),需要爬取景點(diǎn)周邊兩公里范圍內(nèi)的酒店餐館數(shù)量,該部分核心代碼為:
For i in range(len(lat_partion)):
location=str(lat_partion[i])+","+str(lng_partion[i])
3.4 系統(tǒng)實(shí)現(xiàn)
景點(diǎn)評(píng)價(jià)指標(biāo)體系作為景點(diǎn)屬性可以側(cè)面反映出每個(gè)景點(diǎn)的具體標(biāo)簽信息,通過分析指標(biāo)體系數(shù)據(jù)可以獲取景點(diǎn)特征,進(jìn)而計(jì)算景點(diǎn)相似度。將取得的550個(gè)景點(diǎn)數(shù)據(jù)中每個(gè)景點(diǎn)與除自身以外的其他景點(diǎn)分別進(jìn)行相似度計(jì)算,然后取得相似度值最高的TOP10個(gè)景點(diǎn)作為該景點(diǎn)的相似景點(diǎn)。隨機(jī)取得兩個(gè)景點(diǎn)的相似度計(jì)算結(jié)果如圖3所示。
得到景點(diǎn)的相似景點(diǎn)之后,結(jié)合用戶評(píng)分對(duì)用戶-項(xiàng)目評(píng)分矩陣進(jìn)行填充,從而得到每個(gè)用戶的專屬推薦列表,實(shí)現(xiàn)對(duì)于用戶的個(gè)性化推薦。
4 結(jié)束語(yǔ)
好的推薦系統(tǒng)的意義在于不僅能夠預(yù)測(cè)用戶的喜好選擇,更能夠?yàn)槠涮峁耙馔庵病?,拓寬用戶視野,幫助他們發(fā)現(xiàn)自己以前從未接觸過并很感興趣的新事物[9]。本文針對(duì)旅游景點(diǎn)信息建立評(píng)價(jià)指標(biāo)體系,爬取相關(guān)數(shù)據(jù)并將其作為景點(diǎn)屬性對(duì)旅游景點(diǎn)進(jìn)行相似度計(jì)算,再結(jié)合協(xié)同過濾算法得出每個(gè)用戶的旅游景點(diǎn)推薦列表從而對(duì)用戶產(chǎn)生個(gè)性化推薦,實(shí)驗(yàn)結(jié)果表明這種方法可以對(duì)用戶產(chǎn)生有效推薦并幫助用戶發(fā)現(xiàn)新的未知景點(diǎn)。
參考文獻(xiàn):
[1] 李雅美,王昌棟.基于標(biāo)簽的個(gè)性化旅游推薦[J].中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào),2017,47(7):547-555.
[2] 吳軍.基于協(xié)同過濾的個(gè)性化旅游推薦系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2017.
[3] 侯新華,文益民.基于協(xié)同過濾的旅游景點(diǎn)推薦[J].計(jì)算技術(shù)與自動(dòng)化,2012,31(4):116-119.
[4] 程江飛. 面向個(gè)性化推薦系統(tǒng)的協(xié)同過濾算法研究[D].蘇州:蘇州大學(xué),2019.
[5] 高潔. 基于主題特征的情感分類及推薦算法研究[D].天津:天津大學(xué),2016.
[6] 屈正庚.基于AHP旅游景點(diǎn)競(jìng)爭(zhēng)力評(píng)價(jià)體系的研究[J].甘肅科學(xué)學(xué)報(bào),2019,31(2):8-12.
[7] 林琬珍.基于協(xié)同過濾技術(shù)的旅游景點(diǎn)推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):遼寧大學(xué),2016.
[8] 汪欲勝,朱尚斌,侯山,等.基于大數(shù)據(jù)環(huán)境下Python的爬蟲技術(shù)的應(yīng)用[J].信息通信,2020,33(8):189-190.
[9] 項(xiàng)亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012.
【通聯(lián)編輯:謝媛媛】