周家昊 李民
摘? 要: 隨著國民生活水平的提高,旅游業(yè)蓬勃發(fā)展,旅游業(yè)與互聯(lián)網(wǎng)的結(jié)合促進了在線旅游業(yè)的形成,也就是當(dāng)代所說的“智慧旅游”。用戶可以通過互聯(lián)網(wǎng)了解各種各樣的旅游信息,但是,日趨嚴(yán)重的過載旅游數(shù)據(jù)現(xiàn)象讓旅游商們難以準(zhǔn)確的挖掘出符合用戶興趣的個性化旅游信息,推薦出一個智慧的旅游路線更是如同大海撈針,而旅游推薦系統(tǒng)是解決這一問題的關(guān)鍵技術(shù)。本文基于個性化推薦算法的研究,將用戶信息,用戶評論,用戶行為,用戶歷史訂單,用戶未來訂單等多項數(shù)據(jù)作為算法的訓(xùn)練測試集,對功能性需求進行分析,開發(fā)了基于用戶數(shù)據(jù)的推薦系統(tǒng)。
關(guān)鍵詞: 旅游數(shù)據(jù);推薦算法;數(shù)據(jù)挖掘
【Abstract】: With the improvement of the living standards of the people and the booming tourism industry, the combination of tourism and the Internet has promoted the formation of online tourism, which is also known as “smart tourism”. Users can learn a variety of travel information through the Internet. However, the increasingly serious phenomenon of overloaded travel data makes it difficult for travellers to accurately mine personalized travel information that suits their interests. It is more like recommending a smart travel route. A needle in a haystack, and a travel recommendation system is the key technology to solve this problem. Based on the research of personalized recommendation algorithm, this paper uses user data, user comments, user behavior, user history orders, user future orders and other data as the training test set of the algorithm, analyzes the functional requirements, and studies the system summary design.
【Key words】: Travel data; Recommendation algorithm; Data mining
0? 引言
伴隨著旅游產(chǎn)業(yè)收入快速增長,行業(yè)互聯(lián)網(wǎng)化逐漸加深,在線旅游市場也快速增長。據(jù)Analysys監(jiān)測數(shù)據(jù),2008-2017年,中國在線旅游交易規(guī)模逐年遞增,2017年交易規(guī)模達8923.3億元;2018年前三季度中國在線旅游交易規(guī)模為7342.62億元,逼近中國2016年全年在線度假旅游交易規(guī)模。此外,2018年全年中國在線旅游交易規(guī)模將達9900萬億元,萬億規(guī)模指日可待。從2009-2018年在線旅行預(yù)訂用戶規(guī)模變化情況看,用戶規(guī)模逐年遞增,通過線上渠道進行旅游預(yù)訂的用戶數(shù)量越來越多;截至2018年6月,在線旅行預(yù)訂用戶規(guī)模達到3.93億,較2017年末增長1707萬人,增長率為4.50%;約一半的網(wǎng)民會通過在線業(yè)務(wù)進行旅行預(yù)訂。
旅游推薦系統(tǒng)利用數(shù)據(jù)挖掘技術(shù)實現(xiàn)一個模擬用戶與旅行社交流的平臺,通過獲取并分析用戶的旅游需求、偏好等信息,主動為用戶推薦盡可能符合其需求的旅游信息或產(chǎn)品(包括單個旅游產(chǎn)品,如景點、酒店等;旅行包以及旅游線路),為用戶制定各套更加智慧的,符合興趣的旅游方案和產(chǎn)品。
對于旅游路線的推薦技術(shù)研究,在國內(nèi)外已有一些基于旅游資訊,結(jié)合景點信息進行推薦。張晗等[1]人使用MD_Apriori算法對已有數(shù)據(jù)信息進行挖掘,設(shè)計出旅游服務(wù)智能推薦系統(tǒng)。王顯飛等[2]人以會話的形式與用戶進行交互,在不斷的交流中提取出用戶的興趣點,結(jié)合用戶的興趣設(shè)計出基于約束的旅游推薦系統(tǒng)。朱全[3]設(shè)計的利用加權(quán)關(guān)聯(lián)規(guī)則進行數(shù)據(jù)挖掘的智慧旅游推薦系統(tǒng)。呂紅亮等[4]人提出基于PageRank的一種改進算法來提供個性化旅游路線推薦服務(wù),是以用戶,景點,線路三者為頂點,相互關(guān)聯(lián)為邊來表達用戶與物品間的偏好關(guān)系,計算出其頂點相對推薦用戶頂點的相關(guān)度,并對其進行排名,最后將名次靠前的旅游路線推薦給目標(biāo)用戶。國外學(xué)者Krumm[5]于2004年提出利用地理信息系統(tǒng)對旅游信息進行分析和推薦的系統(tǒng)服務(wù),運用最短徑算法向用戶推薦個性化旅游路線。HUANG.Y和Bian.L[6]在2009年,提議使用異構(gòu)在線信息分析來推薦目標(biāo)用戶的旅行路線,該研究主要使用貝葉斯網(wǎng)絡(luò)技術(shù),還涉及旅游和旅游興趣的信息指標(biāo)。Chodhury等[7]人于2010年以Web Albums為數(shù)據(jù)支撐,對Web Albums進行分析,提取相關(guān)信息數(shù)據(jù),系統(tǒng)根據(jù)提取出的信息自動向用戶推薦旅游線路。當(dāng)前的各種研究對旅游路線推薦系統(tǒng)的發(fā)展作出了很大的貢獻,但是依然有一些問題或者某些領(lǐng)域上的困難需要我們?nèi)スタ耍鐚⒂脩魝€人信息作為興趣點的一個參考因素,以及對于新的旅游路線的出現(xiàn)等冷啟動問題。
1? 個性化推薦算法介紹
1.1? 基于內(nèi)容的推薦算法
基于內(nèi)容的推薦根據(jù)用戶過去喜歡的物品,為用戶推薦和這些物品內(nèi)容相似的其它物品。該方法在文本類推薦領(lǐng)域(如新聞、文檔、網(wǎng)頁、書籍等)得到了廣泛應(yīng)用。在本文中通過對用戶歷史訂單評論文本數(shù)據(jù)的提取,對未來訂單的預(yù)測。
1.2? 基于協(xié)同過濾的推薦算法
協(xié)同過濾推薦是構(gòu)建推薦系統(tǒng)最常用的一項技術(shù),它可以直接通過用戶過去的行為(如用戶對訂單的評分)來預(yù)測用戶的偏好,它默認(rèn)用戶未來的興趣愛好是和過去的興趣愛好一致的,這項技術(shù)不需要其他任何領(lǐng)域知識作為參考?,F(xiàn)有的協(xié)同過濾可分為基于模型(Model based)與基于記憶(Memory based)兩種。其中,基于模型的協(xié)同過濾的目標(biāo)就是從可觀測評分?jǐn)?shù)據(jù)中找到一些潛在的影響因子,利用數(shù)據(jù)挖掘與機器學(xué)習(xí)技術(shù)從訓(xùn)練數(shù)據(jù)中找到模式(patterns),利用產(chǎn)生的這些模式去計算用戶對商品的評分。
基于記憶的協(xié)同過濾又可分為基于用戶與基于物品兩種:
第一種是基于用戶(User-based)的協(xié)同過濾是推薦系統(tǒng)中最古老的算法[8]。其主要思想就是找到與目標(biāo)用戶偏好相似的鄰近用戶,并利用其鄰近用戶對目標(biāo)物品的評分來預(yù)測目標(biāo)用戶對目標(biāo)物品的評分。其具體步驟如下:
(3)推薦階段:在預(yù)測目標(biāo)用戶對所有未評分物品的評分后,也可采取Top-K方法,將評分值最高的K個物品推薦給目標(biāo)用戶。
2? 系統(tǒng)需求分析
2.1? 應(yīng)用場景介紹
(1)推薦結(jié)果的展示
前端的頁面將會展示多種基于各種算法下對旅游用戶數(shù)據(jù)的挖掘結(jié)果,這些挖掘結(jié)果將以訂單服務(wù)的形式供用戶瀏覽以及查詢,此類典型的頁面場景即“猜你喜歡”、“您是不是在找”。
(2)業(yè)務(wù)員用戶的后臺管理
業(yè)務(wù)員主要分析每一個用戶的歷史行為數(shù)據(jù)以及個人信息,包括點擊、瀏覽、搜索、評論、交易等,挖掘用戶的興趣偏好數(shù)據(jù),包括偏好列表、物品類別、物品標(biāo)簽等。另外,利用分類和聚類等機器學(xué)習(xí)方法對用戶群體進行細(xì)分,以進行更精準(zhǔn)的推薦,最終得到每個用戶全方位的精準(zhǔn)畫像。使用多種推薦算法,得到待推薦的物品列表,使用機器學(xué)習(xí)的方法進行重新排序,得到最終的推薦物品集合,快速響應(yīng)用戶復(fù)雜行為操作,綜合各種維度的分析挖掘結(jié)果呈現(xiàn)給用戶。
(3)管理員用戶的用戶管理
管理員用戶可以對任務(wù)和權(quán)限進行分配,普通用戶只能進行瀏覽推薦內(nèi)容,而業(yè)務(wù)員可以執(zhí)行算法部分。
2.2? 系統(tǒng)實現(xiàn)目標(biāo)
系統(tǒng)實現(xiàn)的目標(biāo)有:
(1)旅游用戶可以查詢推薦結(jié)果。
(2)系統(tǒng)業(yè)務(wù)員可以執(zhí)行數(shù)據(jù)爬取、協(xié)同過濾、主客觀分析、情感分析等綜合算法模塊,將相關(guān)結(jié)果導(dǎo)入數(shù)據(jù)庫中并查看各階段的執(zhí)行進度。
(3)管理員可以對用戶信息進行編輯、查看、增加以及刪除。
2.3? 系統(tǒng)性能需求
緩解評分矩陣稀疏性問題。雖然目前旅游業(yè)迅猛發(fā)展,產(chǎn)生了很大的在線旅游數(shù)據(jù),但是這些數(shù)據(jù)集中表現(xiàn)為用戶的信息數(shù)據(jù)以及瀏覽數(shù)據(jù),因為某項旅游服務(wù)難以有大量的訂單,或者說用戶在享受完某項特定訂單服務(wù)之后沒有產(chǎn)生評論,也就是文本數(shù)據(jù)的缺失,因此本系統(tǒng)可以引導(dǎo)和收集用戶的文本數(shù)據(jù),并有效的緩解數(shù)據(jù)稀疏所帶來的預(yù)測模型難以建立問題。
改善新的旅游訂單服務(wù)和新的用戶冷啟動問題。在服務(wù)-用戶兩個端都可能出現(xiàn)新的單位,由此產(chǎn)生的歷史數(shù)據(jù)的缺失,本系統(tǒng)會優(yōu)化改善冷啟動問題。
基于興趣的時效性推薦。雖說人的興趣在短期類不會發(fā)生改變,但是“說走就走的旅行”反應(yīng)了用戶在一定時間內(nèi)的未來可能性訂單是緊緊依附的它時下所產(chǎn)生的旅游數(shù)據(jù)的,如果系統(tǒng)的響應(yīng)時間比較長,就會給用戶造成不好的體驗,因此要在短時間內(nèi)抓住用戶的胃口,也就是保證在推薦上的時效性。
3? 系統(tǒng)概要設(shè)計與實現(xiàn)
本論文基于用戶歷史數(shù)據(jù)及用戶評論的推薦系統(tǒng)主要采用MVC模式,結(jié)合Struts和Hibernate框架進行開發(fā)。
MVC是三個單詞首字母縮寫,它們是Model(模型)、View(試圖)和Controller(控制)。這個模式認(rèn)為,程序不論簡單還是復(fù)雜,從結(jié)構(gòu)上看,都可以分為三層。最上面的一層,是直接面向最終用戶的“視圖層”(View)。它是提供給用戶的操作界面,是程序的外殼。最底下的一層是核心的“數(shù)據(jù)層”(Model),也就是程序需要操作的數(shù)據(jù)或信息。中間的一層,就是“控制層”(Controller),它負(fù)責(zé)根據(jù)用戶從“視圖層”輸入的指令,選取“數(shù)據(jù)層”中的數(shù)據(jù),然后對其進行相應(yīng)的操作,產(chǎn)生最終結(jié)果。這三層是緊密聯(lián)系在一起的,但有時相互獨立的,每一層內(nèi)部的比那花不影響其他層。每一層都對外提供接口(Interface),供上一層進行調(diào)用。這樣一來,軟件就可以實現(xiàn)模塊化,修改外觀或者變更數(shù)據(jù)都不用修改其他層,大大方便了維護的和升級。在本基于旅游用戶歷史數(shù)據(jù)及評論的推薦系統(tǒng)中,采用Struts實現(xiàn)View層和Controller層的交互,Hibernate則用于數(shù)據(jù)持久化。使用JSP頁面來制作前臺頁面,后臺系統(tǒng)代碼使用JAVA,使用python腳本來寫算法部分代碼,而數(shù)據(jù)庫使用My SQL進行信息的存儲。另外,服務(wù)器采用tomcat。
3.1? 功能模塊設(shè)計
本論文結(jié)合用戶需求,將基于用戶歷史數(shù)據(jù)和用戶評論的推薦系統(tǒng)劃分為登陸注冊模塊,查詢推薦結(jié)果模塊,算法執(zhí)行模塊,管理用戶模塊等??偪蚣軋D如圖1。
3.2? 算法執(zhí)行模塊的實現(xiàn)
在前面章節(jié)已經(jīng)介紹了基于協(xié)同過濾推薦算法的原理,主要是根據(jù)過往評分記錄計算用戶與用戶之間的相似度和訂單與訂單間的相似度來預(yù)測用戶對商品可能的評分。
基于用戶的協(xié)同過濾相關(guān)代碼如圖2。
4? 結(jié)語
基于用戶旅游數(shù)據(jù)的推薦系統(tǒng)能夠為旅行商開發(fā)一個信息化以及智能化的旅游APP,這是智慧旅游的一個重要體現(xiàn)。本論文研究了基于用戶信息數(shù)據(jù),用戶評論,用戶歷史訂單數(shù)據(jù)等相關(guān)數(shù)據(jù)的挖掘,也運用了情感分析,協(xié)同過濾等多種算法,從設(shè)計實驗的預(yù)期效果來看系統(tǒng)基本上實現(xiàn)了預(yù)期需求,能夠為用戶提供相似度較高的旅游服務(wù),但同時也存在不足。例如對于情感表達不明確的評論數(shù)據(jù)無法進行情感詞的抽取,這對數(shù)據(jù)分析的準(zhǔn)確性有一點折扣??傮w而言,本系統(tǒng)的設(shè)計研究為智慧旅游,從旅行商角度,在給用戶提供更加個性化和人性化的旅游線路獲取了關(guān)鍵思路了關(guān)鍵思路,另一方面,旅游用戶能獲取一種接近理想化的旅游? ?線路。
參考文獻
[1]張晗, 潘正運, 張燕玲. 旅游服務(wù)智能推薦系統(tǒng)的研究與設(shè)計[J]. 微計算機信息, 2006, 22(5-3): 170-171.
[2]王顯飛, 陳梅, 李小天. 基于約束的旅游推薦系統(tǒng)的研究與設(shè)計[J]. 計算機技術(shù)與發(fā)展, 2012, 22(2): 141-145.
[3]朱全. 基于加權(quán)關(guān)聯(lián)規(guī)則挖掘的智慧旅游推薦系統(tǒng)的設(shè)計與實現(xiàn)[D]. 湖北: 武漢科技大學(xué), 2004.
[4]呂紅亮, 王勁林, 鄧峰. 一種個性化旅游推薦算法[J]. 網(wǎng)絡(luò)新媒體技術(shù), 2015. 5, 1(3).
[5]Krumm J Where will they turn: predicting turn propor-tions at intersections. Pers Ubiquit Comput. 2010, (14): 591-599.
[6]Huang Y, Bian L A Bayesian network and analytic hier-archy process based personalized recommendations for tourist attractions over the Internet. Expert Syst Appl. 2009, (36): 933-943.
[7]Chodhury MD, Feldman M, Amer-Yahia S, Golbandi N, Lempel R, Yu C Automatic construction of travel itineraries using social breadcrumbs. In: Proceedings of HT 2010, pp35-44.
[8]項亮. 推薦系統(tǒng)實踐[M]. 北京: 人民郵電出版社, 2012.
[9]Tang J L, Hu X, Liu H. Social recommendation: a review[J]. Social Network Analysis and Mining, 2013, 3(4): 1113-1133.
[10]Jannach D, Zanker M, Felfernig A, et al. Recommender systems: an introduction[M]. Cambridge University Press, 2010.