陳 丹,王東燦,蔣玉香
(西南交通大學(xué)希望學(xué)院 四川 成都 610400)
大數(shù)據(jù)時代是信息過載的時代,個人旅游決策干擾因素驟然增加。與此同時,推薦系統(tǒng)得到越來越廣泛的應(yīng)用,其應(yīng)用范疇由電子商務(wù)領(lǐng)域延伸到社交網(wǎng)絡(luò)、旅游推薦等領(lǐng)域。在旅游推薦領(lǐng)域,較之搜索引擎,推薦系統(tǒng)具有“私人定制”特點(diǎn),可貼合用戶使用習(xí)慣,滿足不同用戶獨(dú)特旅游需求。協(xié)同過濾是一種智能推薦算法,可以進(jìn)一步提升推薦系統(tǒng)的運(yùn)行精準(zhǔn)度。因此,探究基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)具有非常突出的現(xiàn)實(shí)意義。
傳統(tǒng)協(xié)同過濾算法可以計算用戶(或物品)相似度,推薦相似用戶(或物品)相關(guān)的用戶(或物品),但是存在長尾效應(yīng)(零散差異化需求在需求曲線上形成長長的“尾巴”,促使冷門推薦物累加形成一個較熱門推薦物更大的結(jié)果),導(dǎo)致部分冷門但用戶可能會感興趣的商品難以出現(xiàn)在用戶的推薦列表內(nèi),埋下旅游攻略推薦算法對應(yīng)推薦度偏離實(shí)際的隱患,抑制最終推薦的攻略覆蓋度。基于此,綜合考慮用戶、城市、攻略之間的聯(lián)系,在User-CF-1 算法和Item-CF-1 算法混合協(xié)同過濾算法(以下簡稱Final 算法)內(nèi),分別計算基于旅游用戶的推薦度、基于旅游攻略的推薦度、基于旅游城市推薦的推薦度并平衡3 個推薦度[1]。同時全面研究旅游攻略產(chǎn)品,根據(jù)景區(qū)旅游攻略的數(shù)據(jù)特點(diǎn)以及先推薦城市景區(qū)再推薦旅游攻略的特殊流程,加入城市熱度和攻略熱度等影響旅游攻略推薦的各種參數(shù),并對相關(guān)參數(shù)加以懲罰,以抑制熱度高的城市景區(qū)景點(diǎn)或攻略推薦度,促使冷門的城市景區(qū)景點(diǎn)或攻略能順利展示在推薦列表內(nèi),提高旅游推薦覆蓋度。
算法輸入為User-Item 評分矩陣Final,最近鄰個數(shù)k和前列排名值N,輸出列表內(nèi)前列排名景區(qū)數(shù)據(jù)。
第一步,收集User 評分?jǐn)?shù)據(jù),預(yù)先進(jìn)行清洗過濾、格式轉(zhuǎn)換,建立User-Item 評分矩陣Final,如式(1)所示。
式(1)中,每一個User 為一個m維向量,其中Nnm表示第n個User 對第m個景區(qū)的評分值。在User 為系統(tǒng)已評分游客時,可在式(1)內(nèi)借助User 特征向量Um=(Nm1,Nm2,…,Nmm)與其他游客特征向量,開展相似度運(yùn)算,獲得相似用戶;在User 為未對系統(tǒng)內(nèi)景區(qū)評分游客時,根據(jù)游客信息提取特征對其開展相似度計算,獲得相似游客對景區(qū)評分加權(quán)數(shù)作為新游客評分加入Final 矩陣。
第二步,收集景區(qū)評價指標(biāo)數(shù)據(jù),預(yù)先清洗過濾、格式轉(zhuǎn)換,建立scenic-evaluate 指標(biāo)矩陣Jmn。因景區(qū)數(shù)量較為穩(wěn)定且遠(yuǎn)遠(yuǎn)小于用戶數(shù)量,所獲得的scenic-evaluate 指標(biāo)矩陣數(shù)據(jù)密集,變量之間基本存在共有值,根據(jù)景區(qū)相似度輸出要求,可以Final 矩陣內(nèi)數(shù)據(jù)為依據(jù),推測評價指標(biāo)體系每一項(xiàng)數(shù)據(jù)權(quán)重,構(gòu)建指標(biāo)矩陣如式(2)所示。
式(2)中,每一行代表1 個景區(qū)的數(shù)據(jù),每一列代表已構(gòu)建評價指標(biāo)數(shù)據(jù)。將每一列數(shù)據(jù)、指標(biāo)權(quán)重相乘,可得到scenic-evaluate 指標(biāo)相似度。
表1 普通游客信息表(局部)
選取前20 名作為景區(qū)相似景區(qū),相似景區(qū)列表記錄為I1,可設(shè)定景區(qū)核心代碼如下:
第三步,根據(jù)層次分析思路,確定景區(qū)評價指標(biāo)的權(quán)重。
第四步,根據(jù)評價指標(biāo)權(quán)重,加入scenic-evaluate 指標(biāo)矩陣內(nèi)指標(biāo)類數(shù)據(jù),獲得景區(qū)之間相似度。以景區(qū)a、景區(qū)b為例,將景區(qū)a內(nèi)指標(biāo)數(shù)據(jù)集合Ja(a1,a2,…,an)(n≥1)與b的指標(biāo)集合Jb(b1,b2,…,bn)(n≥1)代入矩陣Jmn,得出景區(qū)a、景區(qū)b的相似度sim(a,b)。
第五步,計算Final 矩陣中每2 個景點(diǎn)的相似度值,根據(jù)結(jié)果排序,選取排名前列的最近毗鄰集合。
第六步,在Final 矩陣中,利用User 對景點(diǎn)的評分,推測游客間相似度,獲得游客最近鄰游客,選取排名前列的鄰居游客。
第七步,根據(jù)排名前列的鄰居游客對游客未評價景區(qū)的評分,以加權(quán)方式,預(yù)先估測游客對未評價景區(qū)的評分。
第八步,判斷預(yù)先估測評價分值中較高的景區(qū)數(shù)量,在景區(qū)數(shù)量少于推薦列表個數(shù)時,利用列表中已有景區(qū)的相似經(jīng)典補(bǔ)充缺失部分[2]。
景區(qū)智能推薦系統(tǒng)的服務(wù)對象為游客,主要參與者為普通游客和系統(tǒng)管理維護(hù)人員[3]。普通游客需要景區(qū)智能推薦系統(tǒng)具有景區(qū)信息瀏覽、未注冊或未登錄熱門景區(qū)推薦、景區(qū)評分查看、景區(qū)攻略發(fā)布與分享、個人名稱與密碼修改、預(yù)訂信息修改等功能。
系統(tǒng)管理維護(hù)人員要求景區(qū)智能推薦系統(tǒng)具有用戶信息管理(含注冊用戶管理、密碼修改)、景區(qū)資訊管理、站內(nèi)新聞管理、旅游攻略信息管理等幾個部分。
“Don’t put me off,Anna.Are you afraid of being chaotic?”(1972:247)
除功能需求外,基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)還需要滿足安全性需求,確保普通游客登錄系統(tǒng)安全以及數(shù)據(jù)存取安全。同時系統(tǒng)應(yīng)當(dāng)可根據(jù)外部需求動態(tài)而擴(kuò)展,允許優(yōu)化維護(hù),適應(yīng)未來發(fā)展需要[4]。
基于協(xié)同過濾算法的系統(tǒng)總體架構(gòu)如圖1 所示。
圖1 基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)總體框架
由圖1 可知,基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)由數(shù)據(jù)應(yīng)用層、數(shù)據(jù)接口層、數(shù)據(jù)存儲層、數(shù)據(jù)采集層幾個層級組成。其中數(shù)據(jù)應(yīng)用層主要是系統(tǒng)操作界面,包括旅游資訊、景區(qū)推薦、旅游小助手、個人中心等。旅游資訊主要根據(jù)普通游客歷史瀏覽喜好推薦網(wǎng)絡(luò)爬蟲采集的旅游新聞、圖片、短視頻信息;景區(qū)推薦主要根據(jù)改進(jìn)Final 算法生成推薦列表,便于用戶查看景區(qū)推薦信息;旅游小助手可將后臺智能生成推薦數(shù)據(jù)推送至APP 端,為用戶推薦景區(qū)周邊與用戶需求相符的內(nèi)容;個人中心主要是用戶個人資料設(shè)置以及歷史訪問足跡查看位置。
數(shù)據(jù)接口層主要為編程開發(fā)訪問服務(wù)器Websocket接口;數(shù)據(jù)存儲層主要為分布式數(shù)據(jù)庫,包括非結(jié)構(gòu)化數(shù)據(jù)庫、MySQL 結(jié)構(gòu)化數(shù)據(jù)庫;數(shù)據(jù)采集層主要為網(wǎng)絡(luò)爬蟲、旅游APP 接口[5]。
在系統(tǒng)數(shù)據(jù)庫設(shè)計時,可以先進(jìn)行數(shù)據(jù)模型的構(gòu)建,如景區(qū)實(shí)體數(shù)據(jù)模型如圖2 所示。
圖2 景區(qū)實(shí)體數(shù)據(jù)模型
由圖2 可知,景區(qū)實(shí)體數(shù)據(jù)模型是景區(qū)智能推薦的重要支撐,有景區(qū)編號、景區(qū)介紹、地址等幾個屬性。在景區(qū)實(shí)體數(shù)據(jù)模型構(gòu)建后,可以從實(shí)體與實(shí)體之間聯(lián)系著手,進(jìn)行數(shù)據(jù)庫表的構(gòu)建,包括普通游客信息表、景區(qū)推薦信息表、景區(qū)攻略信息表、后臺維護(hù)管理人員信息表等。以普通游客信息表為例,局部數(shù)據(jù)庫表信息如表1 所示。
基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)實(shí)現(xiàn)環(huán)境為Windows 10,網(wǎng)絡(luò)站點(diǎn)服務(wù)器為MyEclipse 2022.1.0 +Tomcat 8.5 +JDK 8.5, 數(shù)據(jù)庫管理系統(tǒng)為 SQL Server 2020。
旅游景點(diǎn)推薦界面主要面對普通游客,需提供景區(qū)信息、景區(qū)攻略、景區(qū)線路等搜索、瀏覽、留言、分享服務(wù)。其中景區(qū)信息瀏覽為站內(nèi)瀏覽模式,游客可在系統(tǒng)首頁瀏覽推薦信息。根據(jù)游客歷史瀏覽信息的差異,旅游景點(diǎn)推薦界面顯示景區(qū)信息也具有一定差異。對于部分新注冊登錄游客,因其無歷史瀏覽數(shù)據(jù),僅推薦當(dāng)前熱門旅游景區(qū);對于已注冊登錄一段時間的游客,系統(tǒng)自動記錄其歷史瀏覽數(shù)據(jù),借助協(xié)同過濾技術(shù)為其推薦所需的旅游景區(qū)。局部實(shí)現(xiàn)代碼如下所示:
3.2.2 用戶注冊登錄界面
用戶注冊登錄界面主要面對系統(tǒng)用戶,需要提供系統(tǒng)賬戶注冊、系統(tǒng)登錄以及登錄后用戶個人信息修改、密碼口令修改服務(wù)。在注冊時,系統(tǒng)要求用戶提供有效名稱和密碼口令,并自動驗(yàn)證用戶輸入信息是否與已注冊信息重復(fù),若重復(fù),則提醒用戶重新注冊。在用戶登錄界面,系統(tǒng)要求用戶填寫注冊名及密碼口令,并在后臺驗(yàn)證用戶輸入注冊名、密碼是否有誤,一方有誤即提示重新登錄,當(dāng)且僅當(dāng)注冊名、密碼均正確的情況下,用戶可進(jìn)入景區(qū)旅游推薦系統(tǒng)主界面。進(jìn)入主界面后,用戶可以根據(jù)需要修改個人名稱、簡介、簽名等信息,也可以重新設(shè)置密碼口令。若需重新設(shè)置密碼口令,用戶需利用注冊手機(jī)號重新驗(yàn)證。
3.2.3 后臺信息管理界面
后臺信息管理界面主要面對系統(tǒng)管理維護(hù)人員,是系統(tǒng)前端運(yùn)行的基礎(chǔ),主要包括用戶信息管理、景區(qū)信息管理、景區(qū)攻略管理等。在功能齊全、操作簡單便捷原則指導(dǎo)下,后臺界面可劃分為功能列表、系統(tǒng)名稱、操作界面三個部分。在功能列表部分,后臺操作者可以點(diǎn)擊各個功能列表,根據(jù)需要更新功能;對于系統(tǒng)名稱,權(quán)限內(nèi)的后臺操作者可以進(jìn)行修改;在操作界面,后臺操作者可以在個人權(quán)限范圍內(nèi)進(jìn)行操作。
景區(qū)旅游攻略推薦是系統(tǒng)核心功能,也是測試的主要對象。因攻略是旅行市場的一款產(chǎn)品,由用戶創(chuàng)建,被用戶閱覽,優(yōu)質(zhì)旅游攻略包含標(biāo)題、內(nèi)容、旅游城市、游玩景點(diǎn),平均旅游攻略篇數(shù)過萬,覆蓋多個城市,且多數(shù)城市相互毗鄰?;诖?,系統(tǒng)功能測試選擇覆蓋度指標(biāo),利用游客覆蓋度、城市覆蓋度、旅游攻略覆蓋度幾個二級指標(biāo)進(jìn)行評價,覆蓋度高代表通過基于協(xié)同過濾的景區(qū)智能推薦系統(tǒng)推薦景區(qū)能力強(qiáng),覆蓋度低則表示基于協(xié)同過濾算法的景區(qū)智能推薦系統(tǒng)推薦效果不佳。在系統(tǒng)核心功能測試指標(biāo)及判定依據(jù)明確的情況下,選擇旅游網(wǎng)站真實(shí)用戶,評測的普通游客用戶歷史行為記錄為42 362 條,優(yōu)質(zhì)旅游攻略為11 251 篇,城市為1 525 個,分別計算User-CF-1 算法、Item-CF-1 算法、Final 算法支持下的景區(qū)智能推薦系統(tǒng)游客覆蓋度、城市覆蓋度、旅游功率覆蓋度。得出基于用戶協(xié)同過濾算法的景區(qū)智能推薦系統(tǒng)覆蓋度見表2。
表2 基于用戶協(xié)同過濾算法的景區(qū)智能推薦系統(tǒng)覆蓋度 %
由表2 可知,基于Final 協(xié)同過濾算法的景區(qū)智能推薦系統(tǒng)游客覆蓋度、城市覆蓋度、旅游攻略覆蓋度最高,分別為44.36%、78.36%、49.68%,各項(xiàng)覆蓋度指標(biāo)均高于基于User-CF-1 算法的景區(qū)智能推薦系統(tǒng)覆蓋度、基于Item-CF-1 算法的景區(qū)智能推薦系統(tǒng)覆蓋度,表明改進(jìn)的Final 算法推薦效果較佳,基于Final 算法的景區(qū)智能推薦系統(tǒng)具有較大的推廣應(yīng)用價值。
綜上所述,協(xié)同過濾推薦算法是智能推薦系統(tǒng)的核心算法,利用協(xié)同過濾算法對景區(qū)景點(diǎn)信息進(jìn)行過濾與選取,可以有效解決景區(qū)景點(diǎn)信息泛濫問題,并為游客提供個性化推薦方案。借鑒協(xié)同過濾系統(tǒng)Tapestry 開發(fā)經(jīng)驗(yàn),景區(qū)可以整合傳統(tǒng)User-CF-1 算法和Item-CF-1 算法兩種協(xié)同過濾推薦算法,打造一個極具特色的旅游攻略推薦系統(tǒng),增加推薦攻略的覆蓋度,解決“長尾效應(yīng)”的推薦問題。進(jìn)而在景區(qū)智能推薦系統(tǒng)中,分析游客歷史旅游行為,對景區(qū)景點(diǎn)信息進(jìn)行分類,并為不同游客提供個性化旅游建議,滿足游客個性化游覽需求。