【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

一、前言

隨著互聯網和大數據的發展,數據呈現爆炸式增長的態勢。知識圖譜以其強大的語義處理能力和開放組織能力,為大數據時代的知識化組織和智能應用奠定了基礎。

旅遊行業作為綜合性行業,包含交通、遊覽、住宿、餐飲、購物、文娛等多個環節,每個環節都有著海量的數據,並且有著相當龐大的應用場景。

同時,旅遊領域的數據有著領域範圍大,涉及知識面廣,知識層級多的特點,比如一個簡單的團隊遊產品就會和飛機、酒店、景點、火車、汽車、餐廳等等多個實體產生關聯。對於旅遊行業,尤其是互聯網旅遊行業,如何構建和應用-個旅遊領域的知識圖譜成為一個非常有價值的問題。

本文將從旅遊領域知識圖譜的特點,知識圖譜的構建,知識圖譜的應用三個方面介紹知識圖譜在互聯網旅遊行業的應用。

二、旅遊領域知識圖譜的特點


【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

如上圖所示,曼谷三日遊是一個旅遊產品,它包含泰國航空、曼谷阿瑪麗水門酒店、大皇宮、皇宮酒店等子產品,每個子產品都有自己不同的數據屬性和架構。

泰國航空,包含航班號、出發時間、出發地點、到達時間、到達地點等數據;曼谷阿瑪麗水門酒店,包含酒店房型、酒店價格、酒店地址、酒店設施等信息;景點包含門票、地址、景點類型等信息;而餐廳有著菜品、價格、地址等重要信息。

如果這個旅遊產品的信息採用傳統數據庫進行存儲,需要多張數據表進行存儲,不便於對於複雜數據的整合,也不便於進行- -些涉及多領域的推理,而且一旦涉及到複雜的查詢,就需要多張表的關聯,不利於知識的快速獲取。

為了解決上述問題,我們構建一個圖數據庫去存儲這些產品的數據。當數據以圖的形式存在,就可以發現很多路徑存在於兩個事物之間,通過路徑的跟蹤以及-些圖的算法就很容易得到一些事物之間的關係。這個圖數據庫就構成了一個旅遊領域的知識圖譜。

我們把圖數據庫中的泰國航空、曼谷阿瑪麗水門酒店、大皇宮、皇宮酒店、曼谷、泰國等等設為節點,並稱之為實體;把他們之間的關係設為節點和節點之間的邊;而把航班號、酒店房型、地址等信息稱之為實體的屬性。


【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

例如,遊客想知道,大皇宮屬於哪個國家,通過"大皇宮"->[所屬城市]->“曼谷"->[所屬國家]->“泰國”的“實體->關係->實體”遞推關係就可以很容易找到答案;而傳統數據庫需要專門為查詢國家寫一套解決邏輯。又例如,我們想查詢一下大皇宮附近的酒店價格,可以通過“大皇宮"->[附近酒店]->“xx酒店"->[價格]->“xx元"的關係找到答案;而傳統數據庫則需要多張表的聯合查詢才有可能完成這個查詢。

此外,知識圖譜還有強大的語義概括能力和語義抽象能力。我們可以把實體的類型抽象成Class(類別),也叫做本體,通過本體與本體之間的關係來完成一些推理或語義分析。

比如我們把大皇宮歸於“古代建築"這個類別,同時定義“古代建築"屬於“建築”的子類,“建築”則有"高度”的屬性,那麼大皇宮也有‘高度"的屬性。我們不需要給每個子類定義一些通用屬性,而只要通過繼承父類的屬性就可以完成定義。

三、旅遊領域知識圖譜的構建

旅遊領域知識圖譜的構建,來自於企業數據和外部數據的融合。

首先,構建一個旅遊領域的知識圖譜,需要企業內部數據作為基礎,因為企業內部數據是和企業產品息息相關的,而產品是一切應用的基礎。

旅遊產品中的信息大部分作為基礎數據存在,比如酒店房型,酒店地址等等,我們需要這些信息來構建酒店的知識圖譜。而對於一些變化非常頻繁的數據,則不會導入到知識圖譜中,比如售賣數量等等。我們把這類知識圖譜統稱為行業知識圖譜,它具有高深度和專業性的特點。

此外,我們還需要用到外部數據作為補充,比如我們經常會用到wiki.上的常識信 息來補充知識圖譜,我們把這部分知識圖譜稱為通用知識圖譜。

通常常識信息不會存儲在企業內部數據庫,且具有非常大的廣度,比如大皇宮的面積有多大,高度有多高等等。這些常識信息對於產品售賣可能沒有太大作用,但對於回答客戶的問題或提供搜索依據是有很大幫助的。

通用知識圖譜的廣度和行業知識圖譜的深度相結合,可以互相補充,形成更加完善的知識圖譜。外部數據經常會以大段文本的形式存在,因此我們需要從文本中抽取關係。通常採用自然語言處理的NER方法去提取文本中的實體,結合句法分析、遠程監督等傳統方法來提取實體與實體之間的關係。

如下圖所示,我們可以抽取出劉氏莊園這個景點名,同時可以抽取出興義這個目的地名,也可以挖掘出它們之間的“位於"關係。那麼這段文本中的“劉氏莊園"->[位於]->“興義”這條知識圖譜數據就成功被抽取出來了。


【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

知識圖譜的存儲可以選擇RDF數據庫,或者圖數據庫。RDF數據庫是W3C標準的以三元組的形式存儲的知識圖譜,有標準的推理引擎,易於進行推理和關係發現;而圖數據庫則以節點和邊的方式存儲知識圖譜,節點和邊都可以帶屬性,沒有標準的推理引擎,但圖數據庫的遍歷效率高,性能更好,更適合企業級的海量數據。

當構建好旅遊領域的知識圖譜之後,可以對知識圖譜進行補全。比如大皇宮的所屬城市是曼谷,而曼谷是泰國的一個城市,假如缺失了“大皇宮"->[所屬國家]->“泰國"這條關係,我們可以通過關係補全來把這條關係加入知識圖譜。關係補全的方法有很多,如TransE、TransH和TransR等,本文就不一一闡述了。


【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

四、旅遊領域知識圖譜的應用

知識圖譜的應用很廣,結合知識圖譜和旅遊領域的特點,旅遊知識圖譜可以應用在以下幾個方面:

1、旅遊問答機器人

通常問答機器人不擅長去"尋找”答案,而是需要人來提前“設定”好答案。但有了知識圖譜之後,這種情況會得到一些改變。

基於知識庫的問答系統我們稱之為KBQA (Knowledge based Question Answering),而知識圖譜是知識庫的一種。KBQA更擅長回答"what" "when"where'問題,只要捕捉到問句中的實體和關係,就可以在知識圖譜中“尋找"到相應的實體以及它的屬性,而通過實體的屬性可以解答大部分的“what"when" "where "問題。

目前有很多問答模型利用知識圖譜來解答問題。通常把實體和關係作為一種特徵,參與問句意圖的計算。我們首先解析問題的語義特徵,提取問題中的實體和關係,然後將實體與關係映射到知識圖譜中,把知識圖譜中對應的實體屬性返回作為答案,或者將知識圖譜中的實體、關係、屬性作為特徵,參與下一步的模型計算。

2、旅遊內容推薦

旅遊產品非常多樣化,所以很依賴推薦。我們往往會抓住旅遊產品和用戶的淺層特徵去推薦,而忽略了-些深層次的特徵。當用戶和某個知識圖譜實體產生關聯,我們可以用知識圖譜去補充用戶特徵。


【案例】知識圖譜技術在旅遊行業問答,推薦,內容搜索中的應用

如上圖所示,當我們通過數據挖掘發現用戶A的興趣點是海島和五星級酒店後,我們可以.通過知識圖譜關聯出相關的團隊遊產品。知識圖譜提供的信息可以作為推薦系統的一個重要維度,參與下一步的計算,為精準推薦增加一塊砝碼。

3、旅遊內容搜索

旅遊產品的數量很多,因此對於搜索的要求很高。對於一些復 雜的搜索語句,知識圖譜可以利用自身的推理能力搜索出深層的答案。

例如,用戶在搜索框輸入“大皇宮附近的酒店”,知識圖譜可以通過"大皇宮"-> [附近酒店]->“xx酒店”搜索出相關的酒店。如果用戶在搜索框輸入“大皇宮附近酒店的價格”,知識圖譜可以通過“大皇宮"->[附近酒店]->"xx酒店"- >[價格]-> "xx元*搜索出酒店的價格屬性。知識圖譜利用了圖數據庫的優勢,非常方便地進行圖遍歷,加強了搜索引擎解決複雜搜索的能力。

五、總結

知識圖譜在旅遊場景還有很多其他應用,本文就不一一列舉了。

知識圖譜這項技術還處於發展階段,還有很大的提升空間,結合日益增長的旅遊市場,我們非常看好知識圖譜應用於旅遊領域的前景。我們相信,未來的知識圖譜還會有更多的應用和更多的技術,為互聯網旅遊行業的發展添磚加瓦。


分享到:


相關文章: