天天看點

Simple, Fast, Accurate Intent Classification and Slot Labeling

本文《Simple, Fast, Accurate Intent Classification and Slot Labeling》一種聯合的架構來同時解決意圖識别和槽位标記的任務,文中提出的架構在模型的準确性、模型訓練的速度和推理的速度三個方面取得了平衡。

Simple, Fast, Accurate Intent Classification and Slot Labeling

論文位址:

https://arxiv.org/pdf/1903.08268.pdf

概述

意圖識别/意圖分類(Intent Classification)和槽位填充 (Slot Filling) 是自然語言了解 (Natural Language Understanding, NLU)領域中的兩個比較重要的任務。在聊天機器人、智能語音助手等方面有着廣泛的應用。

本文提出了一種聯合的架構來同時解決意圖識别和槽位标記的任務,文中提出的架構在模型的準确性、模型訓練的速度和推理的速度三個方面取得了平衡。

模型介紹

本文設計對比了幾種不同的方式對輸入的語句進行編碼,比較各種方式的優劣,最終設計出一個同時兼顧準确率和速度兩個方面的名額模型解決此任務。

本文的主要架構如下圖所示,其基本思想為:句子的每一個單詞經過不同的方式進行編碼,形成詞上下文編碼(word contextualization),然後将詞嵌入資訊編碼形成句子編碼資訊,最後通過分類确定每一個句子的意圖,對每一個詞進行分類得到槽位标記的結果。模型的輸入為 x 1 : T = { x 1 , x 2 , . . . , x T } x_{1:T}=\{ x_1,x_2,...,x_T\} x1:T​={x1​,x2​,...,xT​},表示一個句子序列,相應的輸出就是計算機率 P ( l 1 : T , c ∣ x 1 : T ) P(l_{1:T},c|x_{1:T}) P(l1:T​,c∣x1:T​),c表示意圖,l表示槽位标記。

Simple, Fast, Accurate Intent Classification and Slot Labeling

本文主要探讨了三種不同的模型來測試模型的準确率和速度:包括全循環(fully recurrent), 标簽循環(label-recurrent), 非循環(non-recurrent)。其中全循環和非循環方式就要改變詞上下文編碼(Word contextualization)的方式,而标簽循環是對槽位标記方法進行的探讨。句子編碼時就使用基于soft-attention的方式将詞編碼資訊進行融合的方式,意圖識别使用2層的全連接配接網絡利用softmax進行分類。

槽位标記分為2種方法:Independent slot prediction、Label-recurrent slot prediction。Independent slot prediction假設在進行槽位标記時,每一個詞的标記與前面的結果無關,都是互相獨立的,即 P ( l i ∣ h 1 : T , l 1 : i − 1 ) = P ( l i ∣ h i ) P(l_i|h_{1:T},l_{1:i-1})=P(l_i|h_i) P(li​∣h1:T​,l1:i−1​)=P(li​∣hi​),而Label-recurrent slot prediction假設每一個标記結果都與前面的詞有關,即 P ( l i ∣ h 1 : T , l 1 : i − 1 ) = P ( l i ∣ l 1 : i − 1 , h i ) P(l_i|h_{1:T},l_{1:i-1})=P(l_i|l_{1:i-1},h_i) P(li​∣h1:T​,l1:i−1​)=P(li​∣l1:i−1​,hi​),這種依賴關系通過LSTM實作。

詞上下文編碼有3種實作方法:全連接配接網絡、自注意力、卷積網絡。全連接配接網絡作為基準網絡,其每一個詞的表示方式為 h 1 : T = x 1 : T + a 1 : T h_{1:T}=x_{1:T}+a{1:T} h1:T​=x1:T​+a1:T,其中 x x x表示輸入, a a a表示編入的位置資訊。自注意力的表示方法為

Simple, Fast, Accurate Intent Classification and Slot Labeling

另外一種方法是使用CNN網絡表示詞的上下文編碼 h 1 : T = r e l u ( 0.5 ∗ [ C N N ( x 1 : T ) + x 1 : T ] ) h_{1:T}=relu(\sqrt{0.5}*[CNN(x_{1:T})+x_{1:T}]) h1:T​=relu(0.5

​∗[CNN(x1:T​)+x1:T​]),使用不同大小的卷積核來實作多種尺度編碼。

實驗結果

另外一種方法是使用CNN網絡表示詞的上下文編碼 h 1 : T = r e l u ( 0.5 ∗ [ C N N ( x 1 : T ) + x 1 : T ] ) h_{1:T}=relu(\sqrt{0.5}*[CNN(x_{1:T})+x_{1:T}]) h1:T​=relu(0.5

​∗[CNN(x1:T​)+x1:T​]),使用不同大小的卷積核來實作多種尺度編碼。

在Snips和ATIS兩個資料集上的結果如下面兩個表所示,通過使用不同的模型組合,最終在兩個資料集是都取得了較好的效果。

Simple, Fast, Accurate Intent Classification and Slot Labeling
Simple, Fast, Accurate Intent Classification and Slot Labeling

在Snips和ATIS兩個資料集對比發現,文中提出的三種不同的模型(全循環、标簽循環、非循環)對于意圖識别的準确率沒有太大差别。而對于槽位填充來說,使用多個卷積核和多層卷積網絡的F1值最大,加入标簽循環時F1值有提高,但是相應的推理速度也會慢。使用自注意力的模型效果較差,可能是因為資料集較小,無法發揮自注意力的優勢。

結論

本文提出了一種聯合的架構來同時解決意圖識别和槽位标記的任務,文中提出的架構在模型的準确性、模型訓練的速度和推理的速度三個方面取得了平衡。

![](https://imgconvert.csdnimg.cn/aHR0cDovL3dlaXhpbi5mYXRoZXJhaS5jb20vRm1KLUhnVXFXNjJzQmdXNG5QaXJyWE9xLXF3ag) 掃碼識别關注,擷取更多論文解讀

繼續閱讀