李 川 張少茹
(1.西安航空學院計算機學院 西安 710077)(2.西安交通大學醫(yī)學部 西安 710061)
旅游旅行度假一直是很多人向往的生活模式,隨著國民經(jīng)濟、教育的發(fā)展,旅游旅行度假體驗生活已經(jīng)成為國民日常生活中的一個重要環(huán)節(jié),更多的人希望通過旅游放松心情、體驗生活。但旅游作為一種產(chǎn)業(yè),很多地方為了追求利益,過度商業(yè)化,導致旅游偏離了本質(zhì),景點的自然、生態(tài)、人文因素失真,交通、食宿等保障措施落后,諸如游客滯留、天價飯、宰客、環(huán)境衛(wèi)生差、強制消費等現(xiàn)象頻繁出現(xiàn),這些問題導致景點和游客之間出現(xiàn)巨大鴻溝,游客擔心被宰、服務差,景點被五花八門的宣傳、評論導致無法將真實情況呈現(xiàn)給游客[1]。這使得人們選擇旅游景點時受到很大的影響,難以抉擇。
隨著網(wǎng)絡的普及,微博、朋友圈、個人空間等形式給網(wǎng)民提供了一個廣闊的自媒體平臺,很多游客在去過一個景點以后,會對景點發(fā)表的評價評論、旅游攻略等信息,這類信息成為很多用戶了解景點情況的重要信息來源,大多數(shù)評論都能客觀準確地反映景點真實情況,但網(wǎng)絡中的評論參差不齊,也有少部分評論會帶有一定的主觀意識,甚至存在網(wǎng)絡水軍,這對用戶獲取有用信息帶了一定的干擾。而網(wǎng)絡中的旅游評價信息量龐大,用戶往往只瀏覽很少一部分,這些不準確的評論很可能對用戶帶來錯誤導向。用戶從大量信息中獲取準確有用的信息是極其困難的,一般可以采用信息技術(shù)方法從大量信息中提取有用信息。游客評價內(nèi)容,代表了游客真實的內(nèi)心體會,這類信息屬于非結(jié)構(gòu)化信息,一般需要采用數(shù)據(jù)挖掘技術(shù)獲取有效數(shù)據(jù)[2]。
一般推薦系統(tǒng)是針對商品推薦的,其基本思想是在用戶和商品之間建立聯(lián)系,根據(jù)用戶的歷史購買記錄,再根據(jù)用戶與商品的聯(lián)系,將用戶可能感興趣的商品推薦給用戶。商品推薦系統(tǒng)的的組成如表1所示。
表1 商品推薦系統(tǒng)組成
個性化推薦算法主要可以分為Collaborative Filtering Recommendations(協(xié)同過濾,CF)和Content-based Recommendations(基于內(nèi)容,CB)的推薦算法。CF 是當前廣泛使用的推薦算法,但是往往真正使用時一般都不會只有CF,CB 也會經(jīng)常用到,即常用的是CF+CB的混合推薦算法[3]。
CF 是一種廣泛應用的推薦系統(tǒng),算法的過程分為3步:
1)根據(jù)用戶特征計算用戶間的關(guān)聯(lián)度;
2)根據(jù)用戶關(guān)聯(lián)度高的其他用戶的偏好預測該用戶的偏好;
3)根據(jù)預測出來的偏好對用戶進行合理推薦。
協(xié)同過濾的推薦依據(jù)主要是根據(jù)用戶間的關(guān)聯(lián)度和用戶對item 的評價,該算法能有效地挖掘item 的潛在需求者。但協(xié)同過濾推薦算法存在期初評價數(shù)據(jù)量少,矩陣稀疏等問題,導致推薦結(jié)果不合理等情況[4~6]。
基于內(nèi)容的推薦算法應用較早,常用于信息檢索及信息過濾[7]。根據(jù)用戶已選item 內(nèi)容計算用戶間的關(guān)聯(lián)度,然后進行推薦。CB 記錄item 信息,通過分析已選item 內(nèi)容,記錄用戶信息。CB 根據(jù)用戶信息與item信息的相似度,向用戶推薦相似度較高的item,它不受期初評價稀疏性問題的影響,發(fā)現(xiàn)隱藏信息。CB的過程如圖1所示。
圖1 CB的過程
整個過程可以分為3步:
1)Item Representation:從item 信息中對每個item 進行內(nèi)容分析,抽取一些特征將item 結(jié)構(gòu)化處理,生成結(jié)構(gòu)化的項目庫;
2)Profile Learning:從用戶資源信息中對每個用戶進行偏好分析,將一個用戶的偏好結(jié)構(gòu)化處理,生成用戶偏好庫;
3)Recommendation Generation:根據(jù)用戶偏好與item信息特征計算相似度,為用戶推薦相關(guān)性高的item[8]。
綜上所述,協(xié)同過濾推薦算法適用于用戶、item 及用戶選擇item 數(shù)量都龐大的情況,諸如網(wǎng)絡購物推薦系統(tǒng),而旅游并非日常剛需,相對而言歷史數(shù)據(jù)有限,且用戶偏好類型比較單一,因此采用基于內(nèi)容的推薦算法更加合適。本文提出一種基于用戶特定特征及內(nèi)容的旅游景點推薦模型,根據(jù)景點評價數(shù)據(jù)及用戶歷史數(shù)據(jù)預測用戶偏好。
旅游景點作為推薦系統(tǒng)中的item,需要提取一些屬性,一般item的屬性可以分為結(jié)構(gòu)化和非結(jié)構(gòu)化屬性,結(jié)構(gòu)化屬性,即可以被計算機直接表示、存儲的數(shù)據(jù),比如門票、星級等,推薦系統(tǒng)可以直接使用;而非結(jié)構(gòu)化數(shù)據(jù),首先需要結(jié)構(gòu)化處理,才能在推薦系統(tǒng)中使用,例如景點評價、旅游攻略等信息,這些信息是本文所述推薦算法的主要數(shù)據(jù)來源,如何將其結(jié)構(gòu)化是本文的重點研究內(nèi)容之一,本文采用VSM 進行旅游評價信息結(jié)構(gòu)化處理[9]。VSM(Vector Space Model),即向量空間模型,是一種向量運算,可以將文本內(nèi)容處理為向量空間,并且通過向量空間分解計算文本相似度[10]。
旅游評價文本集合為P→(p1,p2,p3,p4,…pi,…pn),因本算法主要針對中文文本,需要對每篇評價文本pi 進行分詞,中文分詞可采用jieba 工具[11],其基本過程如圖2 所示,分詞得到分詞集合,即詞典W→(w1,w2,…wk…wl)。
圖2 jieba分詞過程
定理1:TF-IDF(term frequency-inverse document frequency),即詞頻-逆文檔頻率,是一種衡量一個詞對于一篇文章的重要程度的統(tǒng)計算法,其計算公式如下:
其中TF(wj,pi)表示pi評論中wj詞出現(xiàn)次數(shù),n 表示評論數(shù),nj表示出現(xiàn)wj詞的評論數(shù)。采用定理1 計算wji可能會出現(xiàn)偏差,一般需要歸一化處理[13]。
定理2:評論pi中詞wj的權(quán)重歸一化計算公式如下:
一般的偏好分析是通過用戶過去對一些item的喜好情況,計算出一個模型,根據(jù)此模型來預測一個新的item 用戶是否喜歡。由于旅游項目類型數(shù)量有限,因此在傳統(tǒng)偏好分析方法的基礎是增加用戶選擇偏好的指標,這樣可以避免一些新用戶數(shù)據(jù)稀缺,無法計算偏好模型的問題。本文采用Rocchio算法計算用戶偏好[14]。
定理3:用戶偏好的Rocchio計算方法:
根據(jù)Profile Learning 的結(jié)果,利用余弦相似度(Cosine similarity)計算各個item 的相似度[15],余弦相似度計算方法如下。
定理4:Cosine similarity計算兩個向量相關(guān)性
Cosine similarity 是把ωu作為n-維坐標系中的一個向量,與item 的向量間夾角的余弦值即代表了相似度,兩個向量余弦值越大,即夾角越小代表兩個向量越相似,反之相似度越小。
根據(jù)定理4 循環(huán)計算所有item 的Cosine similarity,將Cosine similarity 結(jié)果最高的Top-K 個item推薦給用戶。
為了獲取實驗測試評論數(shù)據(jù)集,采用網(wǎng)絡爬蟲提取,經(jīng)過去重降噪處理后,最終獲得20000 條景點評論數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)如表2 所示。從數(shù)據(jù)集中隨機抽取15000條數(shù)據(jù)進行實驗訓練,其余5000條數(shù)據(jù)用于測試,分別對協(xié)同過濾推薦算法、基于內(nèi)容的推薦算法進行了實驗。實驗首先采用jieba 進行中文分詞,再根據(jù)觀點元素類別屬性權(quán)重表進行觀點分析、選取觀點特征。在提取用戶特征值時,可以根據(jù)數(shù)據(jù)集提取,也可以加入用戶選定的特定特征。最后利用Cosine similarity 計算用戶與評論之間的相關(guān)性,并將相關(guān)度最高的Top-K個item 推薦給用戶。
表2 實驗數(shù)據(jù)結(jié)構(gòu)
協(xié)同過濾推薦算法與基于用戶特定內(nèi)容的推薦算法的實驗結(jié)果在精度P、召回率R 及綜合評價指標F對比如圖3所示。
圖3 實驗結(jié)果PRF值對比
從圖4 實驗結(jié)果PRF 值對比可以看出,在景點評論的觀點分析時,基于用戶特定內(nèi)容的推薦算法在P值、R值及F值等方面都有提升。
再將兩種方法按照PR 及ROC 進行多次實驗,結(jié)果如圖4、圖5所示。
圖4 兩種方法PR對比
從圖4、圖5實驗結(jié)果可以看出,在根據(jù)評論進行景點推薦時,基于用戶特定及內(nèi)容的景點推薦算法在PR曲線、ROC曲線效果較好。
圖5 兩種方法ROC對比
本文通過對協(xié)同過濾推薦算法及基于內(nèi)容的推薦算法進行了分析,針對用戶選擇旅游景點的特征,提出一種基于用戶特定內(nèi)容的熱門景點推薦模型,根據(jù)用戶選擇的特定特征,通過自建的旅游景點評論數(shù)據(jù)集提取評價觀點集和用戶特征,結(jié)合用戶選擇的特定特征生成用戶特征集合,避免了新用戶特征稀疏的問題,再根據(jù)評論觀點和用戶特征計算Cosine similarity,將相似度高的item 推薦給用戶。通過實驗結(jié)果表明,基于用戶特定特征及內(nèi)容的景點推薦模型研究方法較常見的協(xié)同過濾方法在準確率、召回率方面有所提升,PR及ROC曲線效果良好,同時,基于內(nèi)容的推薦算法在用戶獨立性(User Independence)、可解釋性(Transparency)、新的item 易推薦(New Item Problem)等方面都有較大優(yōu)勢。本研究的局限在于基于內(nèi)容的推薦算法無法挖掘用戶的潛在興趣。