石 洋
(湖南工程職業(yè)技術學院 生態(tài)文旅學院,湖南 長沙 410151)
隨著酒店業(yè)的發(fā)展和信息技術的應用,如何借助信息技術提高酒店服務水平,成為當前信息化背景下應思考的重點。其中,面向海量的用戶和酒店,如何找到用戶更感興趣的酒店,是當前酒店推薦系統需要解決的難題。針對該問題,丁丁[1]提出依托大數據分析模型實現用戶相同偏好或相似偏好對酒店需求的預測;李書昊等[2]通過提取酒店用戶評論,提出采用線下酒店評估方法構建酒店推薦模型。以上都是基于當前協同推薦算法的研究。錢春琳等[3]、楊博等[4]認為協同推薦需要解決數據稀疏性問題,進而提高推薦的準確率。劉巖[5]則提出,先用機器算法對特征進行提取,然后再采用協同推薦算法進行推薦。基于以上思路,本研究首先提取用戶和酒店特征,同時利用余弦相似度計算公式減少數據的稀疏性,以提高推薦精度。
協同過濾推薦是在現有用戶特征中,利用相似度計算公式計算用戶間的相似度,找到興趣愛好相近的用戶,最終產生推薦結果[6]。根據協同過濾目的的不同,協同過濾推薦可分為基于項目的推薦、基于用戶的推薦和基于模型的推薦[7]。本研究是通過提取酒店用戶的特征,然后針對特征給用戶進行推薦,所以采用基于用戶的協同過濾。先計算用戶特征的相似度,將相似度接近的用戶歸為一個集合,然后用項目評分預測用戶對目標項目的評分,最終生成目標項目top-N列表。具體步驟如下:
(1)獲取用戶對項目的評分值,然后用向量R表示“用戶+項目+用戶對項目的評分”建立用戶偏好矩陣:
(1)
式中:N表示用戶數量;n表示項目數量。某用戶u對項目i的評分用Rui表示,取值為1~5的整數。
(2)
(3)從集合U中選出與目標用戶相似度接近的近鄰構成集合。由于集合U的數量對推薦結果和推薦質量影響較大,故參考文獻[5]和文獻[6],將集合U的數量設定為[20,50]。
(4)選擇最近鄰用戶評價過的且目標用戶沒有評價過的項目,根據用戶對項目的評分,預測目標對該項目的評分產生合適的項目集并推薦給目標用戶。u對i的評分預測計算方法如式(3)所示:
(3)
(4)
本推薦模型的基本思路如下:基于酒店特征和用戶特征構建酒店推薦候選集,根據基于用戶的協同推薦算法產生推薦結果,得到top-N推薦列表供酒店用戶選擇。
用戶特征矩陣構建是推薦的基礎,也是關鍵。用戶特征包括性別、年齡、知識等多種特征,為更好地提取這些特征,在構建用戶模型前對用戶相關信息文本的語義特征進行提取,選取具有代表性的詞作為用戶特征。具體采用詞頻(term frequency,TF)與逆文本頻率指數(inverse document frequency,IDF)結合的方法實現用戶相關文本信息語義特征的提取。設V=(t1w1,t2w2,…,tiwi)表示每個文本文檔,其中的ti表示詞條項,wi為對應權值。若第i個詞在某個文本中出現的頻率高、在其他文本中的頻率低,則說明第i個詞區(qū)別能力良好;詞條t在文檔中出現的頻率越低,逆向文件頻率越高,則認為t具有良好的類別區(qū)分能力。具體計算公式如下:
(5)
式中:tc表示權重;tfi表示第i個詞在訓練集文本N中的詞頻;ni表示沒有出現第i個詞的文本數量。
提取語義特征后,結合用戶信息構建用戶偏好矩陣U(f):
U(f)=(U1,U2,…,Uj),
(6)
式中:Uj表示用戶u對第j個特征的偏好。
另外,為解決數據中存在的稀疏性問題,更好地挖掘用戶間的相關性,采用余弦相似度計算用戶間的相似度,具體計算公式如下:
(7)
基于以上的相似計算,用戶u可用n個相似用戶和用戶間的相似度表示。
酒店特征通常包括房價、房間設備、酒店星級、酒店設施等。參考王婧虹等[6]對酒店特征的分析,本研究提取了k個酒店特征,具體特征及賦值見表1。
表1 酒店特征及賦值
在以上提取的基礎上,構建酒店特征矩陣H(f):
H(f)=(H11,H12,…,H1j,…,H2j,…,Hij),
(8)
式中:Hij表示酒店i的第j個特征。
同樣,為減少數據的稀疏性,采用余弦相似度計算公式計算酒店的相似度,從而得到相似酒店的相似度:
(9)
在構建酒店特征矩陣和用戶特征矩陣后,利用協同推薦算法計算用戶u對酒店i的期望評分pr(u,i),并根據期望評分篩選出符合用戶特征的前N家酒店作為推薦列。pr(u,i)的計算如下:
pr(u,i)=r(v,j)×sim_u(u,v)×sim_h(i,j),
(10)
式中:r(v,j)表示用戶v對酒店j的評分;sim_u(u,v)表示用戶u與v之間的相似度;sim_h(i,j)表示酒店i和j之間的相似度。
通過以上步驟,得到基于用戶特征的酒店推薦模型(圖1)。在圖1的整體推薦框架中,基于源數據信息,通過tf-idf獲取文本特征,然后基于用戶特征和酒店特征,利用協同推薦算法實現酒店推薦。
圖1 基于用戶特征的酒店推薦模型
為驗證以上方案的可行性,以酒店管理營運博弈沙盤為仿真平臺[8]進行實驗,實驗數據均來自該平臺爬取的用戶數據和酒店數據。對爬取的數據進行預處理,最終獲取用戶數據11 823條、酒店數據958條、訂單數據14 847條。
本研究選用常用的推薦算法評價指標——準確率P[9]、召回率R[10]、F1值[11],計算方法見式(11)至式(13):
(11)
(12)
(13)
以上3個指標取值為[0,1],值越大,表示酒店推薦效果越好。
結合構建的推薦模型對用戶進行酒店推薦,得到如表2所示的推薦結果。表2中,n表示用戶u存在相似用戶的個數。由表2可知:當n≤6時,隨著其取值的增大,準確率、召回率、F1值均逐漸升高;當n>6時,隨著n的取值繼續(xù)增大,準確率、召回率、F1值沒有明顯提升。由此說明,基于用戶特征的酒店推薦模型在相似用戶少于6個時,推薦效果良好。
表2 不同n值時模型推薦效果
為驗證本研究構建模型推薦效果的優(yōu)越性,取用戶n=6,與傳統推薦算法進行對比,得到如表3所示的結果。由表3可知,本算法的召回率、F1值均高于對比算法,雖然準確率略低于基于特征參數匹配的推薦算法,但其擴展性和推薦效果更好,故本算法的推薦效果總體上優(yōu)于對比算法。
表3 不同推薦算法的推薦結果
本研究提出了基于用戶特征的酒店推薦模型,可根據用戶特征為用戶推薦類似酒店。相較于傳統的基于特征參數匹配和基于協同過濾的推薦算法,本算法的召回率和F1值更高,擴展性和推薦效果更優(yōu)。