本發(fā)明涉及一種酒店推薦系統(tǒng)及方法,特別是涉及一種ota網(wǎng)站中個性化的酒店推薦系統(tǒng)及方法。
背景技術(shù):
目前隨著互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的快速發(fā)展,推薦系統(tǒng)已經(jīng)被越來越多的應(yīng)用到各行各業(yè),尤其是互聯(lián)網(wǎng)行業(yè)中。比較成熟的有亞馬遜網(wǎng)站的個性化商品推薦系統(tǒng)、網(wǎng)易的個性化音樂推薦系統(tǒng)等。而隨著網(wǎng)絡(luò)及移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的消費者也開始選擇通過ota網(wǎng)站(在線旅游網(wǎng)站)及移動端app(應(yīng)用程序)查看酒店信息并訂購酒店,那么在用戶需要訂購酒店時為其推薦符合其偏好的酒店,便成為一項必不可少的要求。
由于酒店產(chǎn)品與其他電商產(chǎn)品相比具有一些特殊性,用于周邊酒店的個性化推薦問題也存在其復(fù)雜性和特殊性,主要表現(xiàn)在以下幾個方面:
第一,傳統(tǒng)的推薦系統(tǒng),通常會根據(jù)用戶特性進行一些交叉推薦(如買漫畫書,推薦該漫畫的周邊等),而ota網(wǎng)站的產(chǎn)品是單一的,不可能進行交叉推薦,只能利用產(chǎn)品細節(jié)推薦更加符合用戶偏好的酒店,如星級、價位、地理位置等。
第二,由于酒店的庫存是有限的,當酒店滿房之后,即使它非常符合客戶的需求,也不能再為用戶推薦該酒店;而傳統(tǒng)的推薦系統(tǒng),很少會受到庫存的影響,即使某件產(chǎn)品脫銷了,也可以讓廠家加快該產(chǎn)品的生產(chǎn)速度和適當延長發(fā)貨時長來解決。
第三,酒店是一種不可移動的產(chǎn)品,當用戶在查詢目標酒店的時候,一般的會考慮該酒店附近的酒店,比如用戶在查詢a城的酒店時,如果推薦系統(tǒng)給其推薦b城市的酒店時,那么這個推薦被采用的概率就極低,所以在推薦酒店時用戶對酒店的位置是有要求的,因此在設(shè)計推薦酒店推薦系統(tǒng)的時候,必須要考慮酒店的位置。
第四,當酒店的狀態(tài)(是否滿房、剩余房間價格比較高)發(fā)生變化時,必須實時進行反饋,對推薦結(jié)果進行調(diào)整,所以酒店的推薦系統(tǒng)必須是實現(xiàn)實時反饋。
基于上述情況可以看出,在其他電商中廣泛采用的推薦算法與系統(tǒng)并不能滿足ota網(wǎng)站進行個性化周邊酒店推薦的目的。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中傳統(tǒng)推薦算法無法處理ota網(wǎng)站中酒店推薦的缺陷,提供一種ota網(wǎng)站中個性化的酒店推薦系統(tǒng)及方法。本發(fā)明不僅考慮了酒店的位置、星級、價格以及用戶的歷史畫像等因素,而且利用了酒店的實時信息、用戶的實時偏好信息等,能夠?qū)崟r個性化的向用戶推薦符合用戶偏好的周邊酒店,通過該算法與系統(tǒng),ota網(wǎng)站可以讓用戶用更短的時間選擇到滿意的酒店。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
本發(fā)明提供了一種ota網(wǎng)站中個性化的酒店推薦系統(tǒng),其特點在于,包括:
數(shù)據(jù)采集模塊,用于根據(jù)用戶在客戶端的操作,獲取用戶信息(ui信息)和目標酒店信息(hi信息);
初選模塊,用于根據(jù)用戶信息和目標酒店信息,從數(shù)據(jù)庫中獲取目標酒店的靜態(tài)維度(如星級、商圈等)、實時維度(如酒店可訂率、酒店最低價等)和目標酒店的周邊酒店備選池(記為h),并獲取周邊酒店備選池的靜態(tài)維度和實時維度;
實時偏好推薦模塊,用于根據(jù)所述初選模塊獲取的各類數(shù)據(jù),利用個性化周邊酒店推薦算法進行處理,得到所述周邊酒店備選池中的每個候選酒店的評分并進行降序排序;
實時信息過濾模塊,用于過濾不可預(yù)訂的候選酒店,將剩余的排名靠前的n個候選酒店推送給用戶,其中n為正整數(shù)。
較佳地,所述酒店推薦系統(tǒng)還包括:
線上模塊,用于在用戶訪問ota網(wǎng)站時,向用戶展示所述n個候選酒店。所述線上模塊在網(wǎng)站及app界面中,當用戶進入酒店詳情頁時,調(diào)用個性化周邊酒店推薦算法,在酒店詳情頁下方展示為根據(jù)用戶個性化推薦的周邊酒店。
較佳地,所述數(shù)據(jù)采集模塊還用于獲取用戶的實時偏好;
所述初選模塊還用于根據(jù)用戶信息獲取用戶畫像信息及用戶的實時偏好信息;
其中所述初選模塊在獲取用戶畫像信息時會考慮到部分新用戶,為其填充粗略的畫像。
所述實時偏好推薦模塊還用于根據(jù)用戶的實時偏好信息修改每個候選酒店的評分。
較佳地,所述不可預(yù)訂的候選酒店包括滿房的、用戶不可定的、臨時的并且已經(jīng)下線的、app前臺因某種原因下線的、無法顯示的、其他業(yè)務(wù)方要求的不可上線的候選酒店。
較佳地,所述個性化周邊酒店推薦算法為邏輯回歸模型算法。
本發(fā)明的目的在于還提供了一種ota網(wǎng)站中個性化的酒店推薦方法,其特點在于,包括以下步驟:
s1、根據(jù)用戶在客戶端的操作,獲取用戶信息和目標酒店信息;
s2、根據(jù)用戶信息和目標酒店信息,從數(shù)據(jù)庫中獲取目標酒店的靜態(tài)維度、實時維度和目標酒店的周邊酒店備選池,并獲取周邊酒店備選池的靜態(tài)維度和實時維度;其中,酒店維度具體包括歷史維度與實時維度,儲存最新的酒店數(shù)據(jù),包括且不限于酒店的星級、價格、經(jīng)緯度、所屬商圈、服務(wù)、品牌等。
s3、根據(jù)所述初選模塊獲取的各類數(shù)據(jù),利用個性化周邊酒店推薦算法進行處理,得到所述周邊酒店備選池中的每個候選酒店的評分并進行降序排序;
s4、過濾不可預(yù)訂的候選酒店,將剩余的排名靠前的n個候選酒店推送給用戶,其中n為正整數(shù)。
其中,周邊備選池酒店不是簡單的來自于對城市中所有酒店遍歷后的結(jié)果,而是根據(jù)歷史訂單,獲取曾訂購過目標酒店(hi)的用戶群u所訂購過酒店集合h1,從h1中選取距離hi符合條件的酒店h2,并計算h1與h2之間的交叉用戶數(shù)(其計算交叉用戶的方法是對傳統(tǒng)協(xié)同過濾算法的改進),如果h2的數(shù)目超過備選池所要的數(shù)目n,則選取交叉用戶最多的前n個酒店,如果h2的數(shù)目小于n,則用符合距離條件的熱銷酒店進行補充。
所述的交叉用戶的計算方法與傳統(tǒng)的協(xié)同過濾方法存在較大的差異。在傳統(tǒng)的基于物品的協(xié)同過濾方法中,往往采用交叉用戶概率的方法對關(guān)聯(lián)物品進行劃分。假設(shè)存在酒店a和b,則根據(jù)公式計算二者交叉用戶在并集用戶中的概率:
較佳地,所述酒店推薦方法還包括:
s5、在用戶訪問ota網(wǎng)站時,向用戶展示所述n個候選酒店。
較佳地,步驟s1中還獲取用戶的實時偏好;
步驟s2中還根據(jù)用戶信息獲取用戶畫像信息及用戶的實時偏好信息;
其中,所述用戶畫像信息包括用戶的歷史訂購信息,所述歷史訂購信息包括但不限于用戶訂購酒店的平均星級、用戶訂單的平均價格、用戶商務(wù)出行次數(shù)、親子出游次數(shù)等。用戶的實時偏好信息包括當前會話中瀏覽的酒店信息、用戶的篩選信息、用戶的查詢信息等。在有用戶實時偏好信息的情況下,可以根據(jù)實時偏好,改變參數(shù)加權(quán)進而調(diào)整候選酒店得分。
步驟s3中還根據(jù)用戶的實時偏好信息修改每個候選酒店的評分。
較佳地,所述不可預(yù)訂的候選酒店包括滿房的、用戶不可定的、臨時的并且已經(jīng)下線的、app前臺因某種原因下線的、無法顯示的、其他業(yè)務(wù)方要求的不可上線的候選酒店。
較佳地,所述個性化周邊酒店推薦算法為邏輯回歸模型算法。
本發(fā)明的積極進步效果在于:本發(fā)明可以提升用戶體驗,由于本發(fā)明所推薦的酒店都是根據(jù)客戶實時偏好和實時酒店信息所推薦的,在為客戶選擇了適合客戶產(chǎn)品的同時,為客戶提前排除了符合條件但卻因為各種原因無法提供服務(wù)的酒店,提升了用戶網(wǎng)上訂酒店的效率,其中準確率由原來的2.8%提升到16.7%,查全率從原來的56%提升到76%。。
附圖說明
圖1為本發(fā)明的較佳實施例的ota網(wǎng)站中個性化的酒店推薦系統(tǒng)的模塊示意圖。
圖2為本發(fā)明的較佳實施例的ota網(wǎng)站中個性化的酒店推薦方法的流程圖。
具體實施方式
下面通過實施例的方式進一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實施例范圍之中。
如圖1所示,本發(fā)明的ota網(wǎng)站中個性化的酒店推薦系統(tǒng)包括數(shù)據(jù)采集模塊1、初選模塊2、實時偏好推薦模塊3、實時信息過濾模塊4以及線上模塊5;
其中,所述數(shù)據(jù)采集模塊1用于根據(jù)用戶在客戶端的操作,獲取用戶信息和目標酒店信息;并且優(yōu)選地,所述數(shù)據(jù)采集模塊1還可以獲取用戶的實時偏好;
所述初選模塊2用于根據(jù)用戶信息和目標酒店信息,從數(shù)據(jù)庫中獲取目標酒店的靜態(tài)維度、實時維度和目標酒店的周邊酒店備選池,并獲取周邊酒店備選池的靜態(tài)維度和實時維度;所述初選模塊2還用于在獲取用戶畫像信息時會考慮到部分新用戶,為其填充粗略的畫像;
所述實時偏好推薦模塊3用于根據(jù)所述初選模塊獲取的各類數(shù)據(jù),利用個性化周邊酒店推薦算法進行處理,得到所述周邊酒店備選池中的每個候選酒店的評分并進行降序排序;所述實時偏好推薦模塊3還用于根據(jù)用戶的實時偏好信息修改每個候選酒店的評分。
所述實時信息過濾模塊4用于過濾不可預(yù)訂的候選酒店,將剩余的排名靠前的n個候選酒店推送給用戶,其中n為正整數(shù)。其中,所述不可預(yù)訂的候選酒店包括滿房的、用戶不可定的、臨時的并且已經(jīng)下線的、app前臺因某種原因下線的、無法顯示的、其他業(yè)務(wù)方要求的不可上線的候選酒店。
所述線上模塊5則用于在用戶訪問ota網(wǎng)站時,向用戶展示所述n個候選酒店。所述線上模塊5在網(wǎng)站及app界面中,當用戶進入酒店詳情頁時,調(diào)用個性化周邊酒店推薦算法,在酒店詳情頁下方展示為根據(jù)用戶個性化推薦的周邊酒店。
如圖2所示,本發(fā)明還提供了一種ota網(wǎng)站中個性化的酒店推薦方法,其利用上述的酒店推薦系統(tǒng)實現(xiàn),所述酒店推薦方法包括以下步驟:
步驟101、根據(jù)用戶在客戶端的操作,獲取用戶信息和目標酒店信息;
步驟102、根據(jù)用戶信息和目標酒店信息,從數(shù)據(jù)庫中獲取目標酒店的靜態(tài)維度、實時維度和目標酒店的周邊酒店備選池,并獲取周邊酒店備選池的靜態(tài)維度和實時維度;
其中,酒店維度具體包括歷史維度與實時維度,儲存最新的酒店數(shù)據(jù),包括且不限于酒店的星級、價格、經(jīng)緯度、所屬商圈、服務(wù)、品牌等。
步驟103、根據(jù)所述初選模塊獲取的各類數(shù)據(jù),利用個性化周邊酒店推薦算法進行處理,得到所述周邊酒店備選池中的每個候選酒店的評分并進行降序排序;
步驟104、過濾不可預(yù)訂的候選酒店,將剩余的排名靠前的n個候選酒店推送給用戶,其中n為正整數(shù);
步驟105、在用戶訪問ota網(wǎng)站時,向用戶展示所述n個候選酒店。
其中,步驟101中還獲取用戶的實時偏好;步驟102中還根據(jù)用戶信息獲取用戶畫像信息及用戶的實時偏好信息;步驟103中還根據(jù)用戶的實時偏好信息修改每個候選酒店的評分。
下面對本發(fā)明作進一步詳細說明:
當用戶打開ota客戶端時,首先會進入主頁菜單,此時系統(tǒng)會根據(jù)用戶的個人信息從數(shù)據(jù)庫中獲取該用戶畫像。用戶點擊進入酒店模塊,在對應(yīng)的搜索頁面中進行相應(yīng)搜索。
若用戶沒有明確目標,篩選、搜索模糊關(guān)鍵字,系統(tǒng)會轉(zhuǎn)跳進入酒店列表頁面,用戶瀏覽并選擇感興趣的相應(yīng)酒店,系統(tǒng)轉(zhuǎn)跳進入酒店詳情頁;若用戶有明確目標,進行精確搜索選擇,則系統(tǒng)直接轉(zhuǎn)跳進入酒店詳情頁。該過程中,后臺系統(tǒng)從用戶的點擊,篩選或瀏覽行為中獲得該用戶的實時偏好。
其中用戶的實時偏好來自于用戶當前會話中瀏覽的酒店信息、用戶的篩選信息、用戶的查詢信息等。
在詳情頁中,系統(tǒng)會從數(shù)據(jù)庫中調(diào)取該酒店競爭圈相關(guān)酒店數(shù)據(jù),結(jié)合之前獲得的用戶畫像數(shù)據(jù)和用戶實時偏好,在后臺進行個性化周邊推薦模型的計算,從而得到個性化周邊酒店的推薦列表。若該用戶對當前酒店沒有訂購意向,在酒店詳情頁下滑頁面,可從下方的“附近同類型酒店”板塊獲得周邊酒店推薦計算結(jié)果,以供參考。
其中個性化周邊酒店推薦算法的具體步驟如下:
計算c城市每個酒店的離線周邊酒店備選池,并選取當下hi酒店的周邊備選池作為下一步驟的輸入。離線的周邊酒店備選池具體算法如下:
(1)根據(jù)ota的數(shù)據(jù)庫中的歷史訂單數(shù)據(jù)提取出以下三種信息:首先是從數(shù)據(jù)庫獲取c城市下的酒店hi,其次是獲取訂購hi的用戶群u,最后是獲取用戶群u訂購過的酒店w。
(2)計算hi與w之間的距離,將求得的距離與距離閾值dis(判別條件)比較,選取距離小于dis的酒店h’,而dis需要根據(jù)用戶瀏覽酒店和訂購酒店的距離、以及結(jié)合該城市的酒店密度來確定。
首先,根據(jù)統(tǒng)計數(shù)據(jù),80%的訂單中,用戶瀏覽酒店和訂購酒店的距離在5km以內(nèi)。其次,計算每個城市的酒店密度,以上海的酒店密度為基準,將dis設(shè)定為dis=5*(ci城市的酒店密度/上海的酒店密度),其中酒店密度定義為該城市兩兩酒店的平均距離。距離可根據(jù)兩兩酒店之間的經(jīng)緯度來計算,如下公式:
distince=2*6538.137*asin(sqrt(pow(sin((p.lat-q.lat)*3.1415/360.0),2)
+cos(p.lat*3.1415/180.0)*cos(q.lat*3.1415/180.0)
*pow(sin((p.lon-q.lon)*3.1415/360.0),2)))
其中p和q代表兩個不同的酒店,lat和lon表示經(jīng)度和緯度。
(3)在得到距離在dis內(nèi)的酒店h’后,需要統(tǒng)計h與h’之間的交叉用戶數(shù)。計算交叉用戶的方法,與傳統(tǒng)的協(xié)同過濾方法存在較大的差異。在傳統(tǒng)的基于物品的協(xié)同過濾方法中,往往采用交叉用戶概率的方法對關(guān)聯(lián)物品進行劃分。假設(shè)存在酒店a和b,則根據(jù)公式計算二者交叉用戶在并集用戶中的概率:
(1)a酒店銷量一定,而b酒店銷量遠小于a;
(2)a酒店銷量一定,而b酒店銷量遠大于a。
在這兩種情況下,由于分母的修正作用,使得pa,b可能取值相似,即兩種情況下b酒店被關(guān)聯(lián)的概率相似。但在實際酒店訂購場景中,銷量大的酒店往往比銷量小的酒店更具有推薦性。因此考慮僅保留公式分子來避免上述情況的發(fā)生,即使用公式:pa,b=a∩b。當pa,b越大,則b酒店關(guān)聯(lián)性越強,從而提高推薦概率。
(4)根據(jù)上面步驟得到h與h’之間的交叉用戶數(shù),接下是判斷h’與n(代表目標酒店周圍備選推薦酒店數(shù)目)如果h’大于個數(shù)n,則從h’中選擇交叉用戶個數(shù)最多的前n個酒店,將該酒店放入hi的周邊酒店備選池中,而如果h’小于個數(shù)n,則進行以下操作:
計算出同城市除h外的所有酒店與hi的距離,選擇距離小于dis的酒店,記為h”;
計算出需要備選池需要補足的酒店個數(shù)k=n-h’;根據(jù)數(shù)據(jù)庫統(tǒng)計h”的歷史訂單量,將h”進行排序,選擇k個熱銷酒店,也就是選擇銷量前k的酒店作為周邊酒店備選池的補充,進而獲得包含n個酒店的備選周邊酒店池。
(5)根據(jù)客戶端的獲取的用戶當前瀏覽的酒店hi,從離線備選池酒店里提取出當前客戶瀏覽的酒店hi的周邊酒店備選池。
然后,結(jié)合酒店歷史維度、酒店實時維度、用戶歷史畫像、用戶實時數(shù)據(jù)等進行實時的個性化推薦,算法流程如下:
(1)由于已經(jīng)獲得了hi酒店周邊備選池,接下來就是獲取用戶的uid(用戶身份證明),根據(jù)uid匹配用戶的歷史畫像,如果uid為新用戶,則通過空值填充的方法,將對應(yīng)的畫像值填充為均值或者0。如果是老用戶直接從數(shù)據(jù)庫提取該用戶的歷史畫像。
同時獲取酒店h’的靜態(tài)維度(如星級、商圈等)、實時維度(如酒店可訂率、酒店最低價等)和h’酒店的周邊酒店備選池(該備選池就是有之前算法所得到的備選池,此時記為h’),并獲取h的靜態(tài)維度和實時維度。
在獲取以上數(shù)據(jù)后,利用邏輯回歸模型計算h酒店的得分,記為s。
(2)接下來看系統(tǒng)是否可以獲得用戶實時偏好,如果能夠獲取用戶的實時偏好,則根據(jù)用戶的實時偏好,對h酒店的得分進行實時的調(diào)整。例如用戶偏好4星級酒店,則增加4星級酒店的得分;用戶偏好陸家嘴附近的酒店,則增加該商圈酒店的得分等。將調(diào)整后的h得分記為s’,根據(jù)s’做降序排序。
如果系統(tǒng)沒有獲得用戶的實時偏好則直接對s進行降序排序。
(3)最后是將s或者s’通過過濾規(guī)則之后,選擇得分排名前n的酒店進行推薦展示。其中的過濾規(guī)則如下:
滿房的、用戶不可定的、臨時的并且已經(jīng)下線的、app前臺因某種原因下線的、無法顯示的、其他業(yè)務(wù)方要求的不可上線的酒店
雖然以上描述了本發(fā)明的具體實施方式,但是本領(lǐng)域的技術(shù)人員應(yīng)當理解,這些僅是舉例說明,本發(fā)明的保護范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實質(zhì)的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護范圍。