任務(wù)型對話機器人之自然語言理解(一)
一、引言
隨著移動互聯(lián)網(wǎng)和智能終端的快速發(fā)展,任務(wù)型對話機器人的應(yīng)用越來越廣泛。任何一款成熟的對話機器人產(chǎn)品都離不開任務(wù)型對話系統(tǒng)。目前,對于任務(wù)型對話系統(tǒng)工業(yè)界主流的做法都是采用一套較為固定的pipline方式實現(xiàn)。具體的流程圖如下:
整個pipline由三大模塊組成:自然語言理解(NLU);對話管理(DM);自然語言生成(NLG)?,F(xiàn)在越來越多的產(chǎn)品還融入了知識庫,主要是在對話管理模塊引入。在這里自然語言理解、對話管理、自然語言生成都屬于自然語言處理技術(shù)。在語音會話時,會在輸入和輸出端加上語音識別(ASR)和語音合成(TTS)。自然語言理解(NLU):主要作用是對用戶輸入的句子或者語音識別的結(jié)果進行處理,提取用戶的對話意圖以及用戶所傳遞的信息。
對話管理(DM):對話管理分為兩個子模塊,對話狀態(tài)追蹤(DST)和對話策略學(xué)習(xí)(DPL),其主要作用是根據(jù)NLU的結(jié)果來更新系統(tǒng)的狀態(tài),并生成相應(yīng)的系統(tǒng)動作。
自然語言生成(NLG):將DM輸出的系統(tǒng)動作文本化,用文本的形式將系統(tǒng)的動作表達出來。
以上每個模塊在學(xué)術(shù)界都對應(yīng)著一個研究領(lǐng)域,本文中主要介紹對話系統(tǒng)中的自然語言理解模塊(NLU),NLU是對話系統(tǒng)中非常重要的一個模塊,主要包括意圖識別和槽位填充。下面將介紹意圖識別和槽位填充的概念以及近幾年用于意圖識別和槽位填充的主流方法。
二、意圖識別和槽位填充概念
(1)意圖識別
意圖識別,顧名思義就是判斷用戶要做什么,比如一個用戶向機器人問了一個問題,于是機器人就需要判斷這個用戶他問的是天氣、是旅游還是問某部電影的信息呢?說到底意圖識別就是一個文本分類的問題。既然對應(yīng)文本分類,那么首先就需要將明確有哪幾類意圖,也就是說我們需要預(yù)先定義好意圖的類別然后才能考慮意圖識別的問題。那么如何定義意圖類別呢,它不像情感分類任務(wù)那樣,不管什么場景,都能劃分成積極、消極和中立情感三分類;我們講意圖分類是需要將其置于特定的場景中來考慮的,不同應(yīng)用場景就有不同的意圖分類。比如在美團APP上,它把用戶的搜索意圖分為訂外賣、訂酒店、訂旅游門票、訂電影票、訂機票等類別。
(2)槽位填充
理解一段文字的一種方法是標記出對句子有意義的詞或記號。在自然語言處理領(lǐng)域,這個問題被稱為語義槽填充問題。
在對話系統(tǒng)中,槽填充過程一般指從用戶一句話中抽取出關(guān)鍵信息,將用戶隱式的意圖轉(zhuǎn)化為顯式的指令從而讓計算機理解。語義槽一般用來表示用戶的需求,如出發(fā)地、到達地、出發(fā)時間等信息,作為意圖識別的關(guān)鍵字,是進行下一步對話的提示信息。
在對話系統(tǒng)中,填槽的意義有兩個,一個是作為條件分支進行多輪對話,還有一個是作為信息補全更明確的表達出用戶的意圖。換言之,填槽不僅是補全用戶意圖的方式,而且前序槽位的填寫還會起到指導(dǎo)后續(xù)信息補全走向的作用。
三、意圖識別和槽位填充方法
關(guān)于意圖識別和槽值填充既可以作為兩個單獨的任務(wù)處理,也可以聯(lián)合處理。由于兩個任務(wù)之間的存在較大的相關(guān)性(意圖和槽值之間有相關(guān)性),因此聯(lián)合建模的效果一般會更好。接下來我們將介紹一些相關(guān)的論文方法。
論文1:A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding
(1)概述
(2)模型結(jié)構(gòu)
(3)定義損失
(4)模型結(jié)果
聯(lián)合模型和分開的模型的對比:
論文2:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling
(1)概述
(2)聯(lián)合模型
聯(lián)合意圖識別和槽位填充的基于注意力的RNN模型如下圖所示:
在用于序列標記的雙向RNN中,每個時間步的隱藏狀態(tài)都攜帶整個序列的信息,但是信息可能會隨著向前和向后傳播而逐漸丟失。因此,在進行時槽位預(yù)測時,我們不僅希望在每個步驟中僅使用對齊的隱藏狀態(tài),還希望查看是否使用上下文向量為我們提供了任何其他支持信息,尤其是那些需要長期依賴的信息未被隱藏狀態(tài)完全捕獲。
在模型中,雙向RNN(BiRNN)沿正向和反向讀取源序列。文章中RNN采用了長短時記憶網(wǎng)絡(luò)(LSTM)。插槽標簽依賴關(guān)系在前向RNN中建模。類似于上述編碼器-解碼器體系結(jié)構(gòu)中的編碼器模塊,每個步驟的隱藏狀態(tài)是前向狀態(tài)和后向狀態(tài)的串聯(lián)。每個隱藏狀態(tài)都包含整個輸入單詞序列的信息,并重點關(guān)注單詞周圍的部分。然后將此隱藏狀態(tài)與上下文向量組合以產(chǎn)生標簽分布,其中上下文向量計算為RNN隱藏狀態(tài)的加權(quán)平均值。
對于意圖識別和槽填充的聯(lián)合建模,文中采用雙向RNN的隱藏狀態(tài)來生成意圖類分布。不加入注意力機制時,先對隱藏狀態(tài)向量最大池化,然后輸入到邏輯回歸中來進行意圖分類。加入注意力機制時,則取得隱藏狀態(tài)向量加權(quán)平均值。
值得注意的是,與利用顯式對齊輸入的基于注意力的編碼器/解碼器模型相比,基于注意力的RNN模型具有更高的計算效率。在模型訓(xùn)練期間,編碼器-解碼器插槽填充模型兩次讀取輸入序列,而基于注意力的RNN模型只讀取一次輸入序列。
(3)實驗結(jié)果
表1顯示了提出模型的槽填充F1分數(shù)。表2將槽填充模型性能與先前報告的結(jié)果進行了比較。
表3顯示了文章提出的意圖模型和先前方法之間的意圖分類錯誤率。
表4顯示了與先前報告的結(jié)果相比,在意圖檢測和槽填充方面的聯(lián)合訓(xùn)練模型性能。
進一步驗證聯(lián)合訓(xùn)練模型的性能,文章將提出的模型應(yīng)用于其他ATIS數(shù)據(jù)集,并通過10倍交叉驗證對它們進行評估。編碼器-解碼器和基于注意力的RNN方法均取得了可喜的結(jié)果。
【參考】
[1] Zhang X, Wang H. A joint model of intent determination and slot filling for spoken language understanding[C]//IJCAI. 2016, 16: 2993-2999.
[2] Liu, B., & Lane, I. (2016). Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling. Interspeech.
[3] https://www.jianshu.com/p/cec045c55175?utm_campaign=haruki
[4] https://zhuanlan.zhihu.com/p/92909762
智能問答機器人 智能質(zhì)檢 智能話務(wù)機器人 智能語音助手
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。