想了解任務型對話機器人,我們先從自然語言理解聊起


摘要:本文中主要介紹對話系統中的自然語言理解模塊(NLU),NLU是對話系統中非常重要的一個模塊,主要包括意圖識別和槽位填充。

一、引言

隨着移動互聯網和智能終端的快速發展,任務型對話機器人的應用越來越廣泛。任何一款成熟的對話機器人產品都離不開任務型對話系統。目前,對於任務型對話系統工業界主流的做法都是采用一套較為固定的pipline方式實現。具體的流程圖如下:

整個pipline由三大模塊組成:自然語言理解(NLU);對話管理(DM);自然語言生成(NLG)。現在越來越多的產品還融入了知識庫,主要是在對話管理模塊引入。在這里自然語言理解、對話管理、自然語言生成都屬於自然語言處理技術。在語音會話時,會在輸入和輸出端加上語音識別(ASR)和語音合成(TTS)。自然語言理解(NLU):主要作用是對用戶輸入的句子或者語音識別的結果進行處理,提取用戶的對話意圖以及用戶所傳遞的信息。

對話管理(DM):對話管理分為兩個子模塊,對話狀態追蹤(DST)和對話策略學習(DPL),其主要作用是根據NLU的結果來更新系統的狀態,並生成相應的系統動作。

自然語言生成(NLG):將DM輸出的系統動作文本化,用文本的形式將系統的動作表達出來。

以上每個模塊在學術界都對應着一個研究領域,本文中主要介紹對話系統中的自然語言理解模塊(NLU),NLU是對話系統中非常重要的一個模塊,主要包括意圖識別和槽位填充。下面將介紹意圖識別和槽位填充的概念以及近幾年用於意圖識別和槽位填充的主流方法。

二、意圖識別和槽位填充概念

(1)意圖識別

意圖識別,顧名思義就是判斷用戶要做什么,比如一個用戶向機器人問了一個問題,於是機器人就需要判斷這個用戶他問的是天氣、是旅游還是問某部電影的信息呢?說到底意圖識別就是一個文本分類的問題。既然對應文本分類,那么首先就需要將明確有哪幾類意圖,也就是說我們需要預先定義好意圖的類別然后才能考慮意圖識別的問題。那么如何定義意圖類別呢,它不像情感分類任務那樣,不管什么場景,都能划分成積極、消極和中立情感三分類;我們講意圖分類是需要將其置於特定的場景中來考慮的,不同應用場景就有不同的意圖分類。比如在美團APP上,它把用戶的搜索意圖分為訂外賣、訂酒店、訂旅游門票、訂電影票、訂機票等類別。

(2)槽位填充

理解一段文字的一種方法是標記出對句子有意義的詞或記號。在自然語言處理領域,這個問題被稱為語義槽填充問題。

在對話系統中,槽填充過程一般指從用戶一句話中抽取出關鍵信息,將用戶隱式的意圖轉化為顯式的指令從而讓計算機理解。語義槽一般用來表示用戶的需求,如出發地、到達地、出發時間等信息,作為意圖識別的關鍵字,是進行下一步對話的提示信息。

在對話系統中,填槽的意義有兩個,一個是作為條件分支進行多輪對話,還有一個是作為信息補全更明確的表達出用戶的意圖。換言之,填槽不僅是補全用戶意圖的方式,而且前序槽位的填寫還會起到指導后續信息補全走向的作用。

三、意圖識別和槽位填充方法

關於意圖識別和槽值填充既可以作為兩個單獨的任務處理,也可以聯合處理。由於兩個任務之間的存在較大的相關性(意圖和槽值之間有相關性),因此聯合建模的效果一般會更好。接下來我們將介紹一些相關的論文方法。

論文1:A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding

(1)概述

該文章為針對SLU(Spoken Language Understanding)的意圖-槽填充聯合模型,文章的出色之處在於提供了一個同時在文本分類和文本標記兩個nlp基本任務中都取得卓越成績的基於RNNs的聯合模型。循環神經網絡(RNNs),在文本分類任務中被證明可取得較好的結果。由於意圖識別和槽填充有相當的聯系,所以論文作者提出一個適合於兩種任務的聯合模型。

在文中,作者采用了RNNs的改進版門控循環神經網絡(GRU),GRU具有隨着時序學習每個詞(token)的表征的特性,通過這個特性可以預測每個插槽,同時,一個max-pooling層可以捕捉句子的全局特征從而實現意圖識別。GRU捕捉到的每個token的特征和max-pooling層捕捉的句子全局特征是被兩個任務所共享的,譬如,假如一句話的意圖是找到一個航班,那么他更有可能有出發以及目的城市,反之亦然。實驗證明了聯合模型比分開的每個模型效果都要更好一些。文章選用了United loss function作為策略,實驗結果證明了該篇論文在兩個任務中都取得了state-of-the-art的結果。

(2)模型結構

(3)定義損失

(4)模型結果

實驗結果展示如下,第二列是每個方法使用的特征,其中,W,N和S分別代表單詞、命名實體和語義特征,在CQUD數據集中,W代表每一個中文字特征表示。可以看到CRF的結果比SVM好,表明CRF更加適合序列標注任務。另外,RNN打敗了CRF,因為RNN可以捕捉長依賴關系。而R-CRF模型結合了RNN和CRF模型的優點,可以模擬標簽轉移和得到整個序列的全局的優點。對於填槽任務來說,sentence simplification是最好的辦法,它使用了依存分析來提取句中關鍵詞。RecNN使用dl提取的語義信息,但是他的效果比sentence simplification更差,作者認為可能的原因是語料的規模不夠大。總的來說,論文在ID和SF領域分別提升了1.59%和1.24%的准確率。

聯合模型和分開的模型的對比:

論文2:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling

(1)概述

這篇文章主要介紹了使用Attention-Based RNN模型識別意圖和槽填充(slot filling)。意圖識別通常使用分類的方法將句子分為相應的意圖種類。槽填充則可以看做是序列標注問題,即對於給定的句子中的每個詞分別打上相應的標簽。例如句子“first/class/fares/from/boston/to/denver.”,每個詞對應的標簽為”B-class_type/I-class_type/O/O/B-fromloc/B-toloc”。槽填充既可以用RNN模型也可以用encoder-dedoder 模型解決。即源輸入是句子序列,目標輸出則是標注序列,同時意圖識別也可以用encoder-dedoder 模型解決。即源輸入是句子序列,目標輸出則是意圖種類。但是對與槽填充來說,句子與相應的標簽是一 一對應的,也就是說有“explicit alignment”。作者提出了兩種模型,一種是將“alignment information”加入到encoder-dedoder 模型中,另一種就是將“alignment information”和”attention“加入到RNN模型中來解決槽填充和意圖識別問題。

(2)聯合模型

聯合意圖識別和槽位填充的基於注意力的RNN模型如下圖所示:

在用於序列標記的雙向RNN中,每個時間步的隱藏狀態都攜帶整個序列的信息,但是信息可能會隨着向前和向后傳播而逐漸丟失。因此,在進行時槽位預測時,我們不僅希望在每個步驟中僅使用對齊的隱藏狀態,還希望查看是否使用上下文向量為我們提供了任何其他支持信息,尤其是那些需要長期依賴的信息未被隱藏狀態完全捕獲。

在模型中,雙向RNN(BiRNN)沿正向和反向讀取源序列。文章中RNN采用了長短時記憶網絡(LSTM)。插槽標簽依賴關系在前向RNN中建模。類似於上述編碼器-解碼器體系結構中的編碼器模塊,每個步驟的隱藏狀態是前向狀態和后向狀態的串聯。每個隱藏狀態都包含整個輸入單詞序列的信息,並重點關注單詞周圍的部分。然后將此隱藏狀態與上下文向量組合以產生標簽分布,其中上下文向量計算為RNN隱藏狀態的加權平均值。

對於意圖識別和槽填充的聯合建模,文中采用雙向RNN的隱藏狀態來生成意圖類分布。不加入注意力機制時,先對隱藏狀態向量最大池化,然后輸入到邏輯回歸中來進行意圖分類。加入注意力機制時,則取得隱藏狀態向量加權平均值。

值得注意的是,與利用顯式對齊輸入的基於注意力的編碼器/解碼器模型相比,基於注意力的RNN模型具有更高的計算效率。在模型訓練期間,編碼器-解碼器插槽填充模型兩次讀取輸入序列,而基於注意力的RNN模型只讀取一次輸入序列。

(3)實驗結果

表1顯示了提出模型的槽填充F1分數。表2將槽填充模型性能與先前報告的結果進行了比較。

表3顯示了文章提出的意圖模型和先前方法之間的意圖分類錯誤率。

表4顯示了與先前報告的結果相比,在意圖檢測和槽填充方面的聯合訓練模型性能。

進一步驗證聯合訓練模型的性能,文章將提出的模型應用於其他ATIS數據集,並通過10倍交叉驗證對它們進行評估。編碼器-解碼器和基於注意力的RNN方法均取得了可喜的結果。

【參考】

[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

本文分享自華為雲社區《任務型對話機器人之自然語言理解(一)》,原文作者:小蜜蜂~ 。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM