雷蕾,攜程度假研發(fā)部資深算法工程師,負(fù)責(zé)智能客服算法工作。
鞠劍勛,攜程度假研發(fā)部算法經(jīng)理,負(fù)責(zé)智能客服、知識(shí)圖譜、NLP算法等工作。
隨著人工智能的發(fā)展,人機(jī)交互技術(shù)愈發(fā)成熟,應(yīng)用場(chǎng)景也越來越多。智能客服是人機(jī)交互在客服領(lǐng)域的一個(gè)應(yīng)用,服務(wù)于客人以及相關(guān)的客服人員。本文將介紹智能客服在旅游場(chǎng)景下的主要技術(shù)和應(yīng)用。
當(dāng)前度假的智能客服主要用于C端(客戶端)面向客人,以及客服端輔助客服的兩個(gè)角色。
面向客服端的是智能客服助手,用于對(duì)話窗口的側(cè)邊欄,提示客服人員當(dāng)前客人問題的答案,客服人員可視情況來采納;而面向C端的智能客服則是直接服務(wù)于客人,回答客人問題。
智能客服又分為單輪問答的QABot和多輪對(duì)話的TaskBot,在攜程的旅游場(chǎng)景下,以多輪對(duì)話的TaskBot居多。一般多輪對(duì)話的智能客服系統(tǒng)會(huì)切分為以下幾個(gè)模塊:客人的問題(Query)進(jìn)來后首先經(jīng)過NLU模塊抽象化為客人的意圖(intent)以及關(guān)鍵信息槽位(slot),意圖及槽位傳給DM模塊后,經(jīng)過DST、DPL、NLG模塊返回答案。
- NLU(Nature Language Understand自然語言理解),通過模型或規(guī)則的方式獲取客人的意圖和槽位;
- DST(Dialog State Tracking對(duì)話狀態(tài)追蹤)存儲(chǔ)對(duì)話狀態(tài),包括每一輪對(duì)話的意圖以及已經(jīng)抽取到的槽位信息、歷史機(jī)器人的行為;
- DPL(Dialogue Policy Learning對(duì)話策略選。,DPL根據(jù)DST傳輸?shù)膬?nèi)容決策機(jī)器人在該輪的行為;
一、NLU
NLU模塊基礎(chǔ)功能是獲取客人的問題的意圖及槽位信息,在業(yè)務(wù)比較復(fù)雜的場(chǎng)景,相對(duì)應(yīng)客人可能問的問題維度也會(huì)很復(fù)雜。如果答案涉及的條件很多的情況,往往單輪的QA無法很好的解決客人問題。因此在度假業(yè)務(wù)的場(chǎng)景下,多輪次的TaskBot會(huì)占大多數(shù)。
1.1錯(cuò)別字糾正
原始語句中難免會(huì)出現(xiàn)錯(cuò)字,錯(cuò)字可能會(huì)改變最終輸出的答案。在識(shí)別意圖之前首先通過糾錯(cuò)模塊對(duì)錯(cuò)別字進(jìn)行糾正。
兼容速度和準(zhǔn)確率考慮,糾正分為規(guī)則部分和模型部分,度假業(yè)務(wù)中涉及到的地點(diǎn)比較多,在規(guī)則部分就能夠覆蓋大部分錯(cuò)別字的情況。模型部分首先會(huì)經(jīng)過一個(gè)CRF模型輸出字級(jí)別存在錯(cuò)誤的可能性,生成候選集后,通過語言模型計(jì)算候選集句子的置信度,重排序得到最終糾正的結(jié)果。
- 檢查錯(cuò)誤模型,主要使用了五種特征向量連接后進(jìn)入Bi-LSTM-ATT-CRF模型,得到對(duì)每個(gè)字是否錯(cuò)誤的判斷。
- 語言模型計(jì)算候選集替換為該字的情況在語言模型內(nèi)的得分,文本轉(zhuǎn)為特征向量后經(jīng)兩層向前和后向前的Transformer,最后全連接計(jì)算softmax。
1.2意圖識(shí)別
意圖實(shí)質(zhì)上是對(duì)客人問題的抽象化,比如常見的客人問及“這個(gè)產(chǎn)品多少錢?”,可轉(zhuǎn)換為“詢問價(jià)格”意圖。而在直接服務(wù)客人的C端上,對(duì)回答答案準(zhǔn)確率有較高的要求,高質(zhì)量的服務(wù)背后首先是高準(zhǔn)確率,而且通常在設(shè)計(jì)意圖前期會(huì)存在意圖訓(xùn)練語料不足的問題,因此一個(gè)高準(zhǔn)確率并且弱監(jiān)督的意圖識(shí)別模型非常重要。
意圖識(shí)別模型
意圖識(shí)別模型整體采用上圖的類似matchingnetwork框架,每個(gè)意圖會(huì)有一個(gè)類別表示,新的query經(jīng)計(jì)算獲得其句向量,通過計(jì)算和每個(gè)類別的相似度得到該客人問題的意圖。
當(dāng)前的意圖識(shí)別模型,相比于傳統(tǒng)的文本分類模型,準(zhǔn)確率更高,標(biāo)注量更少,同時(shí)更方便遷移到多意圖的情景。
在訓(xùn)練階段,共有已知C個(gè)類別,每個(gè)類別N個(gè)樣本,語句經(jīng)特征向量經(jīng)過Bi-LSTM層后再通過Transformer-Attention把一句話映射為一條向量,最后經(jīng)膠囊網(wǎng)絡(luò)獲得每個(gè)類別的類別向量。每個(gè)訓(xùn)練語句得到句向量后,再通過Bilinear-Function-Sigmoid計(jì)算與的相似度得分,最后采用二分類的對(duì)數(shù)似然損失函數(shù)計(jì)算損失。
模糊意圖的處理
我們研究表明,客人在和機(jī)器人對(duì)話及與人對(duì)話的時(shí)候一些行為習(xí)慣是不同的。在面對(duì)機(jī)器人的時(shí)候,客人傾向于把機(jī)器人作為一個(gè)“搜索引擎”,常常輸入關(guān)鍵詞來獲得回答,但關(guān)鍵詞的信息不完整,通過模型或模板都無法返回切合的意圖。針對(duì)于此,我們采用了“聯(lián)想問”和“猜你想問”的功能來引導(dǎo)客人的提問方式。
- 聯(lián)想問
客人在聊天輸入欄輸入問題的同時(shí),顯示相關(guān)的一些問題以供客人點(diǎn)選,由于是實(shí)時(shí)顯示,對(duì)速度的要求較高,這里我們使用的是檢索算法計(jì)算文本相似度。
我們會(huì)為每一個(gè)意圖人工設(shè)置一些用戶常問問題,當(dāng)用戶輸入的時(shí)候,我們會(huì)用文本相似度的算法,算出和用戶輸入最接近的三個(gè)常問問題,提示給用戶供其選擇。
- 猜你想問
對(duì)于“猜你想問”功能,主要是處理問句過短的語義不明的情況。舉個(gè)例子,在簽證領(lǐng)域,客人會(huì)輸入“照片”,而和照片相關(guān)的意圖有“是否需要照片”、“照片要求”、“照片尺寸大小”等等能夠涉及到的十幾個(gè)意圖。在觸發(fā)“猜你想問”后,會(huì)返回4個(gè)最關(guān)聯(lián)的問題供客人點(diǎn)選。
在使用“猜你想問”和“聯(lián)想問”的機(jī)制后,可以引導(dǎo)部分客人的用戶輸入習(xí)慣,提升單輪次下信息輸入的完整性及純凈度。
1.3發(fā)現(xiàn)新意圖
一個(gè)新業(yè)務(wù)線設(shè)計(jì)意圖的時(shí)候,不可能把所有會(huì)出現(xiàn)的意圖都理清楚,而是循序漸進(jìn),逐步增加。業(yè)務(wù)人員本身對(duì)業(yè)務(wù)的熟悉程度可提供新業(yè)務(wù)線的意圖大框架,在小細(xì)節(jié)上難免存在漏缺,或是因?yàn)閷?shí)時(shí)政策的變化產(chǎn)生的新問題。
比如說,在今年六月份大陸禁止發(fā)放臺(tái)灣自由行簽證,這段時(shí)間就新產(chǎn)生了很多類似于“已辦的臺(tái)灣簽證是否還可使用”、“是否還能辦臺(tái)灣G簽證”等這些新的客戶問題。
層次聚類
我們采用的是對(duì)原始問題聚類的方法,把相似句聚集在一起。經(jīng)過數(shù)據(jù)預(yù)處理后,生成句向量,第一層使用高斯混合得到一個(gè)初步的聚類結(jié)果,再通過規(guī)則判斷是否需要再進(jìn)行一次聚類,隨后在第二層使用OPTICS聚類。
在用算法發(fā)現(xiàn)意圖后,并不會(huì)即刻投入使用,而是業(yè)務(wù)做重審確定,整體上新意圖的定位在于輔助業(yè)務(wù)對(duì)意圖體系的完善。
1.4槽位抽取
在TaskBot中,槽位信息抽取主要是服務(wù)于檢索答案。比如簽證一個(gè)常見問題“辦簽條件”,需要確定客人的辦簽國(guó)家、戶口所在地、居住地等信息后才能給出最終回答。
有時(shí)客人的問題中直接會(huì)涉及相關(guān)槽位,目前槽位抽取采用的是規(guī)則+模型的方式。在實(shí)際應(yīng)用中,規(guī)則能夠覆蓋70%的情況,剩下的則由模型來負(fù)責(zé)。
在度假業(yè)務(wù)里需抽取的槽位詞有一個(gè)明顯的層次關(guān)系,比如地點(diǎn)-送簽地、地點(diǎn)-辦簽國(guó)家、職業(yè)-在職、職業(yè)-自由職業(yè)等,在模型的設(shè)計(jì)上會(huì)先抽第一層,第二層才是對(duì)最終結(jié)果的二級(jí)識(shí)別,通過多任務(wù)的學(xué)習(xí),實(shí)際上每一層的任務(wù)是在對(duì)特征進(jìn)行自動(dòng)抽取。
大型的語言模型,比如說今年大熱的BERT,在很多NLP任務(wù)中大放光彩。在這個(gè)詞槽抽取任務(wù)中,語句中會(huì)先經(jīng)過BERT得到字向量后,第一層經(jīng)Bi-LSTM-CRF模型得到第一類的結(jié)果以及Bi-LSTM的編碼結(jié)果,會(huì)映射為對(duì)應(yīng)的類向量,經(jīng)、、連接后進(jìn)入第二層Bi-LSTM-CRF后得到最終的詞槽。在加入語言模型后,對(duì)于語料比較少以及地點(diǎn)比較多的情況提升會(huì)比較大,尤其是一些語料中沒出現(xiàn)過的地點(diǎn),加入語言模型后也能識(shí)別出來。
二、對(duì)話管理系統(tǒng)
對(duì)話管理系統(tǒng)模塊主要負(fù)責(zé)對(duì)話狀態(tài)追蹤DST(每輪意圖、槽位的存儲(chǔ))、對(duì)話策略選取DPL(反問或給出答案)、答案生成NLG。在這部分接收NLU識(shí)別的意圖和槽位結(jié)果,DST把對(duì)話狀態(tài)信息發(fā)送給DPL,DPL根據(jù)知識(shí)庫中的規(guī)則返回機(jī)器人在下一輪的決策(回答問題、反問或其它操作)。
三、智能客服平臺(tái)
在整體上,智能客服業(yè)務(wù)和技術(shù)的部分是解耦的。業(yè)務(wù)相關(guān)信息的設(shè)定和操作都是通過智能客服平臺(tái),包括不同業(yè)務(wù)線的意圖和詞槽的設(shè)定、答案配置、數(shù)據(jù)審核、測(cè)試、標(biāo)注等。新建一條業(yè)務(wù)線的智能客服應(yīng)用,只需要在平臺(tái)上新建項(xiàng)目,輸入設(shè)定的意圖、對(duì)應(yīng)的語料、必要的槽位和對(duì)應(yīng)的答案。
此外,平臺(tái)上的答案配置也很靈活,可以是固定回答,可以是知識(shí)圖譜的schema,可以是外部的接口,或是隨不同詞槽設(shè)定的回復(fù)等等。
四、結(jié)語
以上是度假人機(jī)交互的主要技術(shù)和成果,目前我們已經(jīng)完成了一個(gè)智能客服項(xiàng)目落地的閉環(huán),其中還有很多內(nèi)容可以持續(xù)完善,比如多輪的意圖識(shí)別、更多主動(dòng)對(duì)話的探索等等。
未來的智能客服機(jī)器人將往多模態(tài)和多語言方向發(fā)展,支持語音和圖像等模態(tài)的解析,支持英法日韓等多國(guó)的語言。智能客服還將提供主動(dòng)服務(wù)模式、人機(jī)協(xié)同模式、群聊功能等多種模式。此外,采用大規(guī)模挖掘和生產(chǎn)的方式降低人工標(biāo)注成本也是未來的主要方向之一。