發布時間:1970-01-01 人氣:351
攜程是綜合性的OTA,它涵蓋了廣泛的業務線路,包括機票、酒店、火車票、景點門票、汽車票、租車、出租車等。攜程的系統也是根據業務線建立的。屬于所有業務線的人只能為客人提供業務線咨詢。然而,一次旅行往往涉及到全面的資源調度。攜程還致力于為用戶提供一站式的服務體驗。顯然,用戶需要找到相應的業務線來咨詢旅行中的問題。圖1顯示了用戶在咨詢時需要找到相關業務線的場景。
隨著我們團隊在各業務線咨詢中引入機器人輔助勞動力,成熟度越來越高,我們有進一步的計劃,即攜程App一站式機器人的推出可以讓用戶解決一次旅行可能涉及的各個方面。
本文將首先比較當前用戶咨詢問題入口與一站式入口的異同,從而導致建立一站式機器人的重要性和挑戰,然后結合具體情況講述機器人的完整結構,并詳細介紹自然語言理解部分(NLU)的算法。
讓我們從一個泛業務線咨詢的例子來看看各業務線咨詢入口和一站式咨詢入口之間的區別。在圖2中,攜程用戶因私人事務取消了一次旅行,導致機票、酒店等產品的退款。在圖2的左半部分,用戶從機票訂單詳細信息頁面進入咨詢過程,咨詢機票退款進度,然后咨詢酒店退款進度。然而,由于機票入口只有機票產品的技能,面對用戶咨詢的酒店問題,只能建議用戶跳轉。在圖2的右半部分,用戶可以在一站式入口進行咨詢,以完成單個入口的完整咨詢過程。
圖2 機票訂單詳情頁入口與一站式入口機票訂單詳情頁入口的機器人,只能回答本業務線的問題,對于跨業務線的問題只能提供轉接服務;一站式入口的機器人,擁有解答全業務線問題的能力。
讓我們來看看酒店咨詢和推薦混合需求的例子。在圖3中,用戶瀏覽酒店后,咨詢酒店是否有游泳池。在得知酒店沒有游泳池后,他們希望在附近的地區找到一家有游泳池的酒店。圖3的左半部分是用戶通過酒店詳細信息頁面進入咨詢入口后的服務流程。由于入口限制了所有的咨詢只能針對特定的酒店,因此用戶的推薦需求只能選擇手動轉移。圖3的右半部分是用戶在一站式入口處獲得的服務流程。一站式具有咨詢和推薦的能力。
圖3 酒店詳情頁入口及一站式入口酒店詳細信息頁面入口處的機器人僅限于特定酒店,只能提供與酒店相關的信息問答;一站式入口可靈活提供酒店信息、酒店預訂和推薦功能。
綜上所述,我們可以看到的咨詢入口相比,一站式有兩個明顯的優勢。
首先,一站式擁有全業務線的知識,可以在不進入各業務線的情況下,為用戶提供全方位的旅行支持。
第二,一站式除了咨詢技能外,還有更多的技能,如推薦、預訂等,為用戶帶來更方便的一站式體驗,也為企業創造了準確營銷的可能性。
二、“一站式”機器人架構在部分,我們可以看到一站式機器人比目前的系統有很大的優勢,但也有很大的挑戰。
當用戶進入一站式入口時,與每條業務線的咨詢入口不同,我們需要通過自然語言理解算法了解用戶的服務需求。此外,一站式入口的許多技能也需要在適當的時間激活,因此我們需要一個對話管理模塊來控制這些技能的激活,對話管理模塊也將與自然語言理解模塊一起使用,以更準確地分析用戶的真實需求。
圖4是算法端一站式機器人的完整架構,在架構中省略了服務端的接口調用和前端的顯示邏輯。自然語言理解模塊主要包括三個子模塊、領域分類、意圖分類和槽分析,該模塊的結果輸出到對話管理模塊。對話管理模塊更新了當前的對話狀態,并根據分析的用戶意圖選擇了合適的機器回復。最終的回復生成模塊負責調用各種問答、推薦和技能服務,并使用自然語言用戶的需求。
圖4在對一站式機器人的結構有了初步的了解之后,我們將回顧部分的兩個例子。
在圖5中,用戶進入入入口并發起咨詢,我取消了機票訂單,但沒有收到退款。自然語言理解模塊分析了機票領域,意圖是機票領域的問答。對話管理模塊選擇相應的機票問答Action,調用機票業務線服務常見問題(FAQ)回答用戶的問題。滿足用戶需求后,進一步咨詢酒店退款。自然語言理解模塊識別用戶在酒店領域的問答意圖,對話管理模塊選擇相應的酒店問答Action,調用酒店業務線業務常見問題服務(FAQ),滿足用戶完整的服務需求,實現一站式目標。
圖5 一站式機器人完成跨業務線用戶的服務需求讓我們看看圖6中的另一個例子。在酒店預訂過程中,用戶咨詢酒店是否有游泳池。自然語言理解模塊分析了用戶的意圖是酒店領域的問答,并分析了酒店和酒店設施的槽。對話管理模塊填寫酒店和酒店設施的槽,并要求酒店KBQA服務,了解酒店沒有游泳池。用戶進一步詢問附近是否有其他酒店有游泳池。自然語言理解模塊分析用戶意圖是酒店領域的推薦,并分析酒店設施的槽位。對話管理模塊更新酒店設施的槽位,將中心地標和酒店設施帶入接口,查詢符合相應條件的酒店。
圖6 一站式機器人法在部分,我們描述了建立一站式機器人的動機,并比較了它與當前業務線咨詢入口的異同。在第二部分,我們給出了一站式機器人的算法架構,并結合兩個例子描述了它的工作過程。從機器人架構的角度來看,自然語言理解是步,也是一個非常重要的模塊。只有正確地理解用戶Query機器人可以通過對話管理和自身技能為用戶服務。
用戶自然語言理解模塊Query的解析主要包括兩個部分,意圖識別和槽位解析,其中意圖識別又被細分為領域分類和領域下的意圖分類,主要使用分類算法,槽位解析主要使用實體識別和實體鏈接的一些算法。在此我們著重介紹意圖識別中使用到的分類算法。
考慮到我們場景中的領域與意圖之間存在層次關系,即每個意圖都是某一領域下的一種意圖,我們在設計算法時充分反映了這種層次關系。如圖7所示,我們使用表將用戶輸入轉換為one-hot形式,通過Embedding層轉換為連續向量,用戶的輸入可以是字級或字級,也可以通過字級結果CNN或Highway Network方式和詞級Embedding結合。
然后我們用LSTM或GRU的RNN類序列表征層學習序列的表征。通過全連接層和soft ** x激活函數,獲得該領域的預測結果。一方面,該領域的預測結果將以真實的領域標簽作為損失函數的一部分,也將與隨機初始化的領域相結合Embedding矩陣點乘得到與句子相關的領域向量。該領域的向量與以前的序列表征共同構成意圖分類的輸入,我們使用另一個LSTM或GRU的RNN序列表征層進一步表達序列,再次引入領域向量對序列結果進行Attention操作得到最終句子表征。通過全連接層和soft ** x激活函數,得到預測結果。
圖7 領域及意圖分類算法在我們的實驗過程中,Embedding層的各種方法差別不明顯,我們嘗試包括詞級的方法Embedding、字級別Embedding以及字級CNN結合詞級共同行動Embedding;序列表征層的各種方法差異不明顯,包括GRU、LSTM以及Self-Attention層。當獲得最終表征層時,基于領域向量Attention操作相比于CNN特征提取方法及對RNN輸出的隱向量做 ** x-pooling方法顯著提高,分類精度提高約1.5%-2%。與平鋪意圖分類方法相比,級聯意圖分類方法有了顯著提高,分類精度提高了2%左右-3%。我們認為這種方法之所以能帶來改進,是因為它首先預測了相對簡單的領域標簽,然后使用該領域的信息來輔助預測意圖,類似于curriculum learning從易到難的過程可以使模型更好地學習。
我們在離線數據集的培訓集上培訓模型,在開發集上調整參數,在集上評估調整參數優化后的模型。集的領域級別分類精度約為90%,意向級別分類精度約為87%,模型符合在線可用標準。
四、結語在本文中,我們向讀者描述了攜程的一站式機器人愿景,并提出了其優勢和挑戰。我們采用了結合自然語言理解和對話管理的算法架構,使一站式機器人著陸。
未來,我們將繼續從多個角度進行優化,包括更精細的自然語言理解、更準確的意圖分類和槽分析模型、容錯對話管理過程、更豐富的知識庫、更好的意圖擴展等,希望創建智能一站式機器人,與各業務線人員更好地服務攜程用戶。
【作者簡介】經緯,從事機器人算法研發,專注于nlp該領域的算法研究和應用,如數據和場景驅動的算法研發。
更多攜程技術人員干貨文章,請關注攜程技術微信公眾號。
本文鏈接:http://www.gold4america.com/hangyeyedongtai/4090.html
熱線電話
18594279421
上班時間
周一到周五
公司電話
18594279421