路丹,陳占芳
(長春理工大學計算機科學技術學院,長春130000)
民宿是對閑置住宅的充分利用,它結合了當地的農林牧漁等各種自然生態環境,為游客提供了不同于酒店和賓館的生態、文化體驗。它通過對鄉村資源充分利用,促進了當地經濟的發展。
以民宿作為住宿場所是一種新型的旅游形式,雖然目前民宿旅游產業不斷發展,但是民宿仍然存在以下主要問題:(1)民宿數量的增長。如今的民宿數量眾多,民宿的環境和體驗卻參差不齊,游客經常無法分辨民宿的服務質量,導致游客的體驗不佳。(2)民宿種類多樣化。隨著經濟文化的不斷發展,大量民宿經營者不斷涌入民宿旅游業,民宿的裝修風格和住宅類型也在不斷增多。民宿種類的多樣化也給游客帶來了搜索和選擇上的不便。
以上問題導致目前很多民宿推薦系統不能根據游客群體的旅游喜好來提供個性化的民宿選擇服務。隨著人們對民宿的接受程度的提高,具有智能分析技術的民宿推薦系統是未來民宿系統的發展趨勢之一。由于民宿自身的建設特點,每位需要住宿的游客都有選擇民宿的潛在可能性,協同過濾技術可以輔助游客快速的發現符合自身的民宿,根據自身興趣自主的選擇民宿的種類和類型。因此,本文將協同過濾技術應用于民宿系統中,游客可以通過個性化民宿推薦系統選擇品味相符的民宿,系統的管理者通過對游客對民宿的評價等歷史數據來完善該系統的內容,使系統的用戶手動搜索民宿變為系統主動為用戶推薦民宿,從而提高游客的民宿體驗。
隨著網絡時代的到來,如電子商務、網絡購物等不斷發展,網絡持續輸出大量的數據,這就為用戶對數據的選擇帶來了困難,用戶無法在短時間內選擇符合自己需求的數據。而此時個性化推薦技術應運而生,并隨著科學技術的進步逐漸深入到人們的日常生活當中。有效地解決了大數據帶來的影響。個性化推薦是通過對用戶的靜態數據和動態數據進行分析處理后,描繪用戶畫像,以此得出符合用戶特征的信息,幫助用戶快速發現有用信息,向用戶提供個性化的信息服務和決策支持,以解決信息量大的問題。目前個性化推薦技術可以分為基于內容的過濾推薦技術、基于關聯規則的過濾推薦技術和基于協同過濾的推薦技術。
由于人們喜歡的東西具有相對的穩定性,所以基于內容的協同過濾在推薦時便利用了這種相對的穩定性,它根據用戶過去喜歡的項目,通過對項目的特征分析,比較項目之間的相似性,為用戶推薦和他過去喜歡的項目相似的項目。
不同項目之間有潛在的關聯性,而基于關聯規則的系統過濾推薦技術的推薦思想便是通過對項目的分析,得出項目之間的潛在關聯規則,以此提高推薦的質量。
協同過濾推薦技術是推薦系統最常用的推薦方法,它主要通過考慮用戶與用戶之間或者項目和項目之間相似度,來向用戶推薦項目。具有以下的優勢:一是推薦對象的范圍比較廣,對推薦對象無特殊要求,能夠過濾難以進行機器自動基于內容分析的信息。如藝術品、音樂等。二是能夠基于一些復雜的,難以表達的概念(信息質量、品位)進行過濾。因此協同過濾推薦技術被廣泛應用在電商網站中。
目前對協同過濾技術的研究已經取得了階段性的成果,但仍然存在以下問題:
(1)稀疏性問題(Sparsity):在一個的推薦系統中,在通常情況下一個用戶只是對符合自己興趣的項目評分,而大部分項目仍然沒有被評價過。在所有的項目中,被用戶評分的項目占總體項目的比重非常小,導致用戶—項目評分矩陣中的數據存在稀疏性的問題,嚴重影響了系統的推薦質量。
(2)冷啟動問題(Cold Start):冷啟動問題是協同過濾推薦系統的瓶頸,制約著推薦系統的推薦效率。系統運行初期,用戶量和項目量都較少,此時系統只能利用用戶的注冊信息,一般無法獲取用戶額外信息,如用戶的興趣愛好等個性化的信息。系統中也不存在用戶對項目的評分數據,因此一般的推薦方法無法對新用戶進行準確的推薦。而只有為新用戶進行有效推薦,才能更好地為系統保留客戶和挖掘潛在客戶。
(3)擴展性問題(Scalability):隨著系統用戶的不斷增多和系統中項目數量的劇增,導致系統的規模不斷擴大,無論從算法上還是從硬件上都無法適應。擴展性問題成為制約系統推薦效率的重要因素。
協同過濾技術從算法上可以分為基于用戶的協同過濾算法和基于項目的協同過濾算法。
本文在民宿推薦系統的設計中結合了協同過濾推薦算法,為目標游客進行個性化的民宿推薦,在最短的時間內高效率的幫助用戶找到需要的民宿。系統中使用了一種基于協同過濾的民宿推薦算法,算法的具體流程如下:
(1)根據數據庫中的民宿的信息,構建民宿的特征向量,即民宿模型。
(2)根據用戶的登錄/注冊等基本信息,判斷當前用戶是否是新用戶,若系統中有用戶的歷史預定或評論打分記錄,則不是新用戶,否則為新用戶。
(3)對于新用戶,采用熱門排行榜進行推薦,即新用戶沒有對任何民宿產生過評價或打分的行為,在不確定的情況下,其他人的行為便具有最大的參考價值。我們通過計算民宿的打分得出分數排行榜,選擇熱門的民宿推薦給目標游客。
(4)對于老用戶,系統采用基于項目的協同過濾算法為其進行推薦。
本文通過對民宿信息的分析,構建民宿畫像,設計了系統的框架圖,如圖1所示。

圖1 系統框架圖
該民宿推薦系統的框架包括三個層次,第一層是用戶訪問層,第二層是個性化推薦引擎層,第三層是知識存儲層,用戶通過用戶訪問層如登錄/注冊、瀏覽/評價/反饋等操作向系統發送請求,系統通過對用戶靜態數據(用戶的基本信息,如性別、年齡、職業、住址、消費等級和消費周期等信息)和動態數據(用戶的興趣愛好、歷史訪問記錄和行為類型等信息)進行分析和處理
后,構建出用戶的用戶畫像,個性化推薦引擎將具體的推薦算法和用戶畫像及其他推薦算法相結合,向用戶推薦民宿,同時用戶可以通過對系統中的民宿進行預覽、評價、打分等操作來影響推薦的結果。而后臺則可以通過對用戶歷史數據的分析來優化系統。知識存儲層存放系統所需要的各種表信息等基礎數據以及系統分析處理后有利于推薦質量的數據,如民宿畫像、用戶畫像、用戶訪問日志等數據。
在整個民宿推薦系統中,民宿和用戶是兩大目標主題,為實現對目標游客的個性化推薦,本系統主要包括的功能模塊如圖2所示:

圖2 系統功能結構圖
(1)用戶端。用戶端包括登錄/注冊、查看推薦、預定民宿、瀏覽評分和用戶評價。用戶通過登錄/注冊進入系統中,用戶進入系統后,系統可以捕獲用戶的特征信息,并存入信息庫中。查看推薦是用戶進入系統后查看系統有針對性的為目標用戶推薦的民宿。預定民宿可以預定指定的民宿。用戶可以通過瀏覽評分模塊對民宿進行瀏覽和評分。用戶評價是用戶對民宿進行的文字評價。
(2)后臺管理。后臺管理也即系統管理,包括訪問日志、熱門排行榜和分類檢索。熱門排行榜是系統根據用戶對民宿的預定以及評分自動計算出熱門的民宿,推薦給目標用戶。用戶通過分類檢索,選擇自己感興趣的民宿類型。訪問日志是記錄用戶的民宿瀏覽記錄,以此得出用戶的個性化信息,并存入系統后臺的用戶興趣庫中。
根據民宿推薦系統具體業務邏輯需求,分析數據庫的表結構包括:用戶基本信息表(users)、民宿基本信息表(hotels)、打分信息表(rank)、民宿近似度表(hotel?Similar)、用戶近似度表(userSimilar),表與表之間的關系如圖3所示:

圖3 數據庫表設計
用戶的靜態數據,如用戶的性別、職業、聯系電話、年齡、婚姻狀況、消費周期和消費等級等存放在用戶基本信息表中;民宿信息表中的字段主要包括民宿類型、民宿圖片、民宿描述、民宿地址、民宿城市、民宿所含項目等;用戶的評分信息,如民宿編號、用戶編號、評分時間和分值存放在打分信息表中;民宿相似表和用戶相似度表是通過協同過濾推薦算法計算得到的信息,是個性化推薦的直接來源。
為解決民宿系統中不斷增多和用戶量和劇增的民宿數量,本文設計并實現了基于協同過濾的個性化民宿推薦系統。將協同過濾推薦算法和用戶畫像相結合,通過個性化推薦提高整個系統中民宿的利用率。實驗表明該系統運行具有穩定性,對于將協同過濾推薦算法應用到民宿系統中具有參考意義。