賈 旭,彭 敏
(武漢大學 計算機學院,湖北 武漢 430072)
多領(lǐng)域口語語言理解(Multi-domain Spoken Language Understanding,MSLU)是對話系統(tǒng)的重要組成部分[1-3]。日常生活中常用的語音助手,如Siri等,都依靠語言理解模塊識別用戶的指令。MSLU任務(wù)主要包含兩個子任務(wù),分別是多意圖識別(Multi-intent Detection)和槽填充(Slot Filling)。其中,多意圖識別任務(wù)可以看作句子分類任務(wù),確定用戶對話的目標。槽填充任務(wù)則看作序列標注任務(wù),可以獲得語句中的重要信息。如表1所示,對話語句“我想吃烤鴨,全聚德在哪?電話是多少?”,對應(yīng)的意圖分別是Request.餐館.電話和Request.餐館.地址?!叭鄣隆狈謩e對應(yīng)槽“B-餐館.名稱I-餐館.名稱I-餐館.名稱”。
表1 多領(lǐng)域口語語言理解示例
意圖和槽之間存在很強的關(guān)聯(lián)性,現(xiàn)有方法通常采用聯(lián)合模型同時解決兩個任務(wù)[1-3]。早期的聯(lián)合模型通過共享編碼器,使用不同的意圖解碼器和槽解碼器完成意圖識別和槽填充任務(wù)。模型在反向傳播過程中,通過更新共享參數(shù)的形式,隱式實現(xiàn)聯(lián)合學習[4]。為了更好地利用意圖特征,部分工作基于槽門[5-6]和堆棧[7]形式,利用意圖信息指導槽填充任務(wù),提升了槽填充的準確率。然而,這些方法僅利用了意圖信息提升槽填充任務(wù)的準確率,在意圖識別任務(wù)中缺少對槽信息的引入[8]。因此,最近的模型通過交互模塊,建立意圖和槽之間的雙向關(guān)聯(lián),同時提升了模型在兩個任務(wù)上的表現(xiàn)[8-10]。在真實場景中的MSLU任務(wù),用戶的對話語句包含多個意圖[11]。面對多意圖識別的任務(wù),現(xiàn)有模型將其看作多標簽分類任務(wù)。通過引入圖注意力網(wǎng)絡(luò)(Graph Attention Network,GAT)[12],模型能夠建模多意圖和槽之間的關(guān)聯(lián)特征,在多意圖識別任務(wù)中獲得了顯著的性能提升[13-14]。
盡管上述方法在MSLU任務(wù)中取得了很好的效果,但這些方法仍是將多領(lǐng)域任務(wù)看作單領(lǐng)域任務(wù)的堆疊,忽略了多領(lǐng)域任務(wù)中的領(lǐng)域關(guān)聯(lián)問題。一方面,現(xiàn)有研究只是將所有的意圖和槽看作完全獨立的標簽,忽略了領(lǐng)域內(nèi)和領(lǐng)域間的細粒度關(guān)聯(lián)特征。如圖1所示,現(xiàn)有方法均無法建模圖中意圖和槽細粒度標簽之間的關(guān)聯(lián)(圖1中虛線表示)。因為這些方法認為意圖Request.餐館.電話和Request.餐館.地址是完全不同的兩個標簽,忽略了兩者之間存在的領(lǐng)域關(guān)聯(lián)。另一方面,現(xiàn)有圖模型方法[10,13-14]在建模意圖和槽之間的關(guān)聯(lián)時,只是粗糙地在預測的意圖和槽之間進行連接,導致模型學習了冗余的錯誤信息。
圖1 意圖和槽之間存在的細粒度關(guān)聯(lián)
針對上述問題,本文提出細粒度標簽圖和領(lǐng)域相關(guān)圖的雙圖注意力聯(lián)合模型DualGAT(Dual Graph Attention Network)解決多領(lǐng)域口語語言理解任務(wù)。具體來說,細粒度標簽圖建模意圖和槽標簽切分后的細粒度特征,獲得標簽和對話上下文之間更細粒度的關(guān)聯(lián)關(guān)系。領(lǐng)域相關(guān)圖利用意圖和槽之間的領(lǐng)域信息,僅建模領(lǐng)域內(nèi)的意圖和槽之間的關(guān)聯(lián),剔除了領(lǐng)域無關(guān)的冗余和錯誤信息。同時,本文優(yōu)化圖方法的建模過程,極大地提升了模型的訓練速度。本文主要的貢獻如下:
(1) 提出雙圖注意力模型DualGAT,建模細粒度標簽圖和領(lǐng)域相關(guān)圖注意力網(wǎng)絡(luò),捕獲MSLU任務(wù)中標簽間的細粒度關(guān)聯(lián)關(guān)系。通過優(yōu)化圖模型的建模過程,提升模型訓練速度。
(2) 本文在兩個公開的中文多領(lǐng)域?qū)υ挃?shù)據(jù)集CrossWOZ和RiSAWOZ上與現(xiàn)有模型進行比較。實驗結(jié)果表明,本文提出的模型在槽填充F1、意圖識別準確率和句子準確率上均顯著優(yōu)于現(xiàn)有模型。進一步實驗說明了本文模型各模塊的作用和計算效率,同時也說明本文模型與預訓練語言模型有更好的兼容性。
本文通過構(gòu)建聯(lián)合模型和圖注意力網(wǎng)絡(luò)解決多領(lǐng)域口語語言理解任務(wù)中的多意圖識別和槽填充任務(wù),下面簡要介紹現(xiàn)有工作如何通過聯(lián)合模型和圖模型解決意圖識別和槽填充任務(wù)。
口語語言理解任務(wù)的目的是根據(jù)用戶對話語句,識別用戶目標,并對語句中的重要信息進行標注[1-2]??谡Z語言理解任務(wù)包含兩個子任務(wù): 意圖識別和槽填充。其中,意圖識別可以看作句子分類任務(wù),識別用戶的意圖或目標。槽填充可以看作序列標注任務(wù),對語句中的內(nèi)容進行標注,不同的內(nèi)容用不同的槽進行標注[3-4]。因為意圖和槽存在很強的關(guān)聯(lián)性,現(xiàn)有方法會采用基于編解碼框架的聯(lián)合模型,使用一個模型同時完成兩個任務(wù)。早期的工作通過意圖和槽解碼器共享編碼器參數(shù)的形式,隱式地聯(lián)合兩個任務(wù),同時提升了兩個任務(wù)的表現(xiàn)[15]。因為相較于槽填充任務(wù),意圖識別的準確率更高,所以部分工作開始顯式地利用預測出的意圖指導槽填充任務(wù)[5-6]。Goo等人[5]提出槽門模型,使用門機制將與槽相關(guān)的信息從預測的意圖中篩選出來,提升了槽填充任務(wù)的表現(xiàn)。Qin等人[7]對語句中的每個詞分別預測意圖,再將每個詞預測出的意圖信息與槽信息拼接,顯著提升了模型在兩個任務(wù)上的表現(xiàn)。然而上述工作僅考慮了意圖到槽的單向連接,忽略了意圖與槽之間的雙向關(guān)系[16]。E等人[8]通過建模意圖和槽之間的雙向循環(huán)網(wǎng)絡(luò),在一定程度上解決了意圖和槽之間的雙向關(guān)聯(lián)問題。Qin等人[9]則利用自注意力機制,構(gòu)建交互模塊,使得意圖和槽之間的信息進行交換,解決了意圖和槽之間的雙向關(guān)聯(lián)問題。為解決中文問題,Teng等人[17]和朱展標等人[18]針對中文問題引入了中文字詞特征融合模塊,提升了模型在中文口語語言理解上的表現(xiàn)。
在真實場景中,用戶的對話通常橫跨多個領(lǐng)域,涉及多個意圖內(nèi)容[11]。目前主流的方法都是將多意圖識別看作多標簽分類任務(wù)。不同于單意圖任務(wù)中意圖和槽之間一對多的關(guān)系,多意圖任務(wù)中需要考慮多對多的關(guān)聯(lián)關(guān)系。為了建模多意圖和槽之間的關(guān)聯(lián),Qin等人[13]建立了自適應(yīng)的意圖-槽交互圖,使用圖注意力網(wǎng)絡(luò)推理兩者之間的關(guān)聯(lián)關(guān)系。Zhu等人[10]在之前方法[7]的基礎(chǔ)上,建模了語句中的詞、對應(yīng)的意圖和槽之間的關(guān)聯(lián),并利用正則化優(yōu)化了圖結(jié)構(gòu),進一步提升了圖模型的表現(xiàn)。針對圖方法推理速度慢的問題,Qin等人[14]使用非自回歸的方法建模了全局-局部圖,顯著提升了模型的計算效率。然而上述這些方法僅將多領(lǐng)域任務(wù)中的意圖和槽看作完全獨立的標簽,忽略了標簽之間的領(lǐng)域關(guān)聯(lián)關(guān)系。為此,本文提出雙圖注意力聯(lián)合模型,分別建模意圖和槽之間的細粒度關(guān)聯(lián)和領(lǐng)域關(guān)聯(lián),解決多領(lǐng)域任務(wù)中意圖和槽標簽之間的關(guān)聯(lián)問題。
本節(jié)介紹細粒度標簽圖和領(lǐng)域相關(guān)圖的雙圖注意力聯(lián)合模型DualGAT(Dual Graph Attention Network)解決多領(lǐng)域口語語言理解任務(wù),結(jié)構(gòu)如圖2所示。模型包括基于Top-k網(wǎng)絡(luò)的編解碼框架、細粒度標簽圖和領(lǐng)域相關(guān)圖。首先,編碼器將用戶的語句編碼后分別輸入Top-k網(wǎng)絡(luò)和細粒度標簽圖,Top-k網(wǎng)絡(luò)通過預測語句中的意圖個數(shù)完成多意圖識別任務(wù);模型將所有的意圖和槽切分為細粒度的分片,通過分片之間的關(guān)聯(lián)關(guān)系建模細粒度標簽圖;領(lǐng)域相關(guān)圖通過將預測出的意圖及其對應(yīng)領(lǐng)域的槽進行關(guān)聯(lián),減少領(lǐng)域無關(guān)的冗余或錯誤信息。
圖2 DualGAT模型框架圖
本文模型以基于Top-k網(wǎng)絡(luò)的編解碼結(jié)構(gòu)為基礎(chǔ)框架,聯(lián)合解決多意圖識別和槽填充任務(wù)。不同于之前方法將多意圖識別看作多標簽分類任務(wù),本文對Top-k網(wǎng)絡(luò)[19]進行優(yōu)化,使用自注意力機制[20]提升模型預測意圖個數(shù)的準確率。
給定用戶語句U=(w1,w2,…,wN),其中,wi表示第i個字,N表示語句長度。使用雙向LSTM作為模型的編碼器,對用戶語句進行編碼,獲得H=(h1,h2,…,hN)。H∈N×d,d表示隱狀態(tài)的維度。在解碼階段,使用單向LSTM作為意圖識別和槽填充的解碼器。在每個解碼t步,解碼狀態(tài)gt通過之前的解碼狀態(tài)gt-1和對齊的隱狀態(tài)ht計算得到。
其中,W1、b1、W2、b2表示可訓練參數(shù),y表示意圖和槽輸出的概率。
在Top-k網(wǎng)絡(luò)中,同樣使用獨立的編碼器[19]獲得Hk∈N×d,并捕獲相互間的注意力權(quán)重。使用LSTM解碼后得到最終的意圖個數(shù)k,如式(4)所示。
其中,Q,K,V由Hk經(jīng)過線性變換得到。函數(shù)topk的詳細信息可參考Top-k網(wǎng)絡(luò)[19]?!皘|”表示拼接符號。
在多領(lǐng)域口語語言理解任務(wù)中,領(lǐng)域內(nèi)和領(lǐng)域間的意圖和槽存在許多細粒度的關(guān)聯(lián)關(guān)系。例如,B.餐館.名稱和B.餐館.推薦菜都屬于餐館領(lǐng)域,而B.餐館.名稱和B.景點.名稱雖然不屬于同一領(lǐng)域,但都是關(guān)于名稱。之前的工作將這些不同的意圖和槽都看作完全相互獨立的標簽,所以無法捕獲這些標簽之間領(lǐng)域內(nèi)或領(lǐng)域間的細粒度關(guān)聯(lián)特征。本文通過建模細粒度標簽圖,屬于同領(lǐng)域的標簽均具有相同的領(lǐng)域分片節(jié)點,如餐館節(jié)點,通過捕獲語句上下文的語義,使這些標簽具備餐館領(lǐng)域內(nèi)的特征。對領(lǐng)域不同的標簽,若存在相同內(nèi)容的分片節(jié)點,如名稱節(jié)點,同樣通過捕獲語句上下文的語義,使這些標簽均具備名稱的領(lǐng)域間特征。本文構(gòu)建細粒度標簽圖GP=(VP,EP),其中V表示節(jié)點,E表示邊。
對圖中的節(jié)點,將意圖和槽進行細粒度的切分,得到細粒度分片節(jié)點VP。其中,意圖和槽的細粒度分片節(jié)點并沒有進一步區(qū)分,例如,意圖Request.餐館.電話和槽B-餐館.名稱切分后的分片節(jié)點是Request、B、餐館、電話和名稱。分片節(jié)點餐館在意圖和槽中具有相同的表達。相較于將意圖和槽切分后的節(jié)點建立兩個不同的圖,本文將所有節(jié)點建模在同一張細粒度標簽圖內(nèi),能夠利用顯卡的并行能力,減少圖中重復節(jié)點的計算,提升模型效率。本文使用嵌入函數(shù)和線性層,對細粒度標簽圖中的節(jié)點進行初始化。HP=f(emb(VP)),其中,HP∈NP×d,Np表示圖中節(jié)點個數(shù)。為建模用戶語句和細粒度標簽之間的關(guān)聯(lián)關(guān)系,本文將語句中的上下文同樣作為節(jié)點放入細粒度標簽圖中。細粒度標簽圖中的初始化節(jié)點表示為:
(5)
對圖中的邊,設(shè)計細粒度標簽圖的連接矩陣為EP∈(N+NP)×(N+NP),主要包括三種類型的邊: ①細粒度分片之間的連接,將同屬于一個意圖或槽的兩個分片節(jié)點進行連接,表示為其中或者和表示真實的意圖和槽,在圖2細粒度標簽圖中用實線表示)。因為這種連接不會隨著對話語句產(chǎn)生變化,所以該過程僅初始化一次,無須重復計算,能夠提升模型的計算效率。②語句和細粒度意圖之間的連接。將語句中的第i個字節(jié)點與所有的細粒度意圖節(jié)點進行連接,從而捕獲語句上下文中的語義信息和細粒度意圖之間的關(guān)聯(lián),表示為其中在圖2的細粒度標簽圖中用黑色虛線表示)。語句與細粒度意圖之間關(guān)聯(lián)的輸出結(jié)果用表示。③語句和細粒度槽之間的連接。類似于②連接,將語句中的第i個字節(jié)點與所有的細粒度槽節(jié)點進行連接,從而捕獲語句中上下文的語義信息和細粒度槽之間的關(guān)聯(lián),表示為其中在圖2的細粒度標簽圖中用虛線表示)。語句與細粒度槽之間關(guān)聯(lián)的輸出結(jié)果用表示。細粒度標簽圖的輸出和分別用來預測意圖和槽。
為建模多領(lǐng)域口語語言理解任務(wù)中預測出的多意圖和槽之間多對多的關(guān)聯(lián)關(guān)系,現(xiàn)有模型會建立意圖-槽圖[10,13-14],通過圖結(jié)構(gòu)建模兩者之間的關(guān)聯(lián)關(guān)系。但是因為這些模型將所有意圖和槽看作相互獨立的標簽,所以只能粗糙地連接所有預測的意圖和槽。這不僅使得模型需要計算很多冗余的關(guān)聯(lián),而且錯誤的意圖和槽之間的連接,會造成模型學習的注意力產(chǎn)生偏差。本文基于細粒度標簽圖,通過意圖和槽之間的領(lǐng)域關(guān)聯(lián),構(gòu)建領(lǐng)域相關(guān)圖GR=(VR,ER)。將預測的意圖、槽和語句上下文均建模為圖中的節(jié)點,因此領(lǐng)域相關(guān)圖包含NI+NS+N個節(jié)點,其中NI和NS分別表示意圖和槽個數(shù)。遵循之前的方法[14]得到預測意圖嵌入EI∈NI×d和槽嵌入ES∈NS×d,對領(lǐng)域相關(guān)圖節(jié)點進行初始化。領(lǐng)域相關(guān)圖的初始化節(jié)點表示為:
(6)
對圖中的邊,設(shè)計領(lǐng)域相關(guān)圖的連接矩陣為ER∈(N+NI+NS)×(N+NI+NS),主要包括三種類型的邊: ①意圖和槽的連接。意圖和槽之間存在很強的關(guān)聯(lián)性,在多領(lǐng)域任務(wù)中將領(lǐng)域關(guān)聯(lián)看作兩者之間重要的連接中介。因為將用戶的對話限定于特定領(lǐng)域時,語句的意圖和槽都是該領(lǐng)域?qū)?yīng)的意圖和槽。所以在領(lǐng)域相關(guān)圖中,僅將預測出的意圖和其所屬領(lǐng)域的槽相連。這不僅能減少意圖和槽之間的冗余連接,也能避免模型學習到錯誤的特征,表示為其中表示第r個領(lǐng)域,在圖2領(lǐng)域相關(guān)圖中用實線表示)。②語句和意圖連接。將語句中的第i個字節(jié)點與預測得到的意圖進行連接。表示為其中j∈yI,yI表示預測出的意圖,在圖2的領(lǐng)域相關(guān)圖中用虛線表示)。③語句和槽連接。類似于②連接,將語句中的第i個字節(jié)點與對應(yīng)領(lǐng)域的槽進行連接,表示為其中在圖2的領(lǐng)域相關(guān)圖中用虛線表示)。構(gòu)建的領(lǐng)域相關(guān)圖中,節(jié)點之間的邊受到對應(yīng)領(lǐng)域的影響,所以相較之前的圖方法連接邊更少,有助于模型訓練過程中的計算效率提升。
本文使用圖注意力網(wǎng)絡(luò)[12]對已構(gòu)建的圖進行推理計算。本節(jié)闡述模型如何使用圖注意力網(wǎng)絡(luò)對已構(gòu)建的圖進行計算。
其中,M表示頭數(shù),Ni表示第i個節(jié)點的鄰居節(jié)點。a和W表示可訓練參數(shù)。
在細粒度標簽圖中,圖信息在第l層的聚合過程定義為:
(9)
L=LI+LS+Lk
(13)
本文在兩個公開的多領(lǐng)域中文對話數(shù)據(jù)集CrossWOZ-SLU[21]和RiSAWOZ-SLU[22]上對模型進行驗證。按照論文中提供的源碼得到語句、意圖和對應(yīng)的槽。不同的是,源碼中僅保留語句中的單意圖,本文將語句中包含的所有意圖都保留作為多意圖的樣本,同時剔除數(shù)據(jù)集中的系統(tǒng)對話和不包含槽值的語句。為與原數(shù)據(jù)集區(qū)分,本文將新數(shù)據(jù)集稱為CrossWOZ-MSLU和RiSAWOZ-MSLU(后續(xù)分別簡寫為CrossWOZ和RiSAWOZ)。因為數(shù)據(jù)集中的所有語句均來自人-人真實對話,所以比MixATIS[13]等連詞拼接的多意圖數(shù)據(jù)更自然,更貼近真實場景。數(shù)據(jù)集的統(tǒng)計結(jié)果如表2所示。CrossWOZ擁有更多的多意圖語句,多意圖語句占比超過20%,而且數(shù)據(jù)集樣本中句子的平均長度更長。RiSAWOZ則有更多的數(shù)據(jù)樣本,領(lǐng)域跨度更大,因此包含更多的意圖和槽的種類。
表2 CrossWOZ和RiSAWOZ數(shù)據(jù)統(tǒng)計
本文將DualGAT模型和以下模型進行比較:
(1)Slot-GatedAtten[5]: 模型設(shè)計了一種槽門機制,通過槽門篩選與槽相關(guān)的意圖信息,指導模型完成槽填充任務(wù)。
(2)SF-IDNetwork[8]: 模型設(shè)計了ID和SF網(wǎng)絡(luò),通過循環(huán)機制將意圖和槽特征進行交互。本文選擇ID-First模型。
(3)Stack-Propagation[7]: 模型預測字級別的意圖,再將預測的意圖表示與槽表示拼接。
(4)MIATIF[19]: 模型提出Top-k網(wǎng)絡(luò),通過預測語句中的意圖個數(shù)解決多意圖識別任務(wù)。
(5)MLWA[17]: 模型使用字級別和句子級別的詞適配器,將中文詞信息與字信息對齊,在中文口語語言理解中獲得了顯著的性能提升。
(6)AGIF[13]: 模型構(gòu)建意圖-槽圖結(jié)構(gòu)建立多意圖和槽之間的關(guān)聯(lián),解決多意圖問題。
(7)GL-GIN[14]: 模型提出全局和局部圖,建模多意圖和槽關(guān)聯(lián)。同時,模型使用非自回歸的方法,提升了模型的訓練速度。
(8)GAIR[10]: 模型提出建模候選意圖和槽之間的關(guān)聯(lián)圖,并利用真實樣本對圖建模過程進行正則化,提升了模型在中文任務(wù)中的表現(xiàn)。
因為數(shù)據(jù)集中包含多意圖,對于單意圖識別的模型,本文使用多標簽分類方法[13]預測最后的意圖。本文使用槽F1、意圖準確率、句準確率分別評測槽填充、意圖識別和整個句子的模型表現(xiàn)。本文模型字嵌入的維度是64,編碼器和解碼器的隱單元分別是256和128。本文使用Adam優(yōu)化器優(yōu)化模型中的參數(shù)。Dropout為0.5。在所有對比模型中,多意圖識別的閾值均設(shè)置為0.5。
本文使用改進的Top-k網(wǎng)絡(luò)預測語句中意圖的個數(shù),預測的準確率在CrossWOZ和RiSAWOZ上分別超過98%和94%。表3展示了實驗結(jié)果,本文得到以下結(jié)論:
表3 DualGAT和對比模型在2個數(shù)據(jù)集的表現(xiàn) (單位: %)
(1) 本文提出的DualGAT在兩個數(shù)據(jù)集上的性能全面超越了現(xiàn)有的模型,尤其是在意圖識別準確率和句準確率上。在對比模型中,MLWA因為融合了中文字和詞特征,相較于其余模型獲得了最好的效果。在CrossWOZ數(shù)據(jù)集上,本文提出的DualGAT在槽F1和意圖準確率上比MLWA提升了0.07%和2.7%,在RiSAWOZ數(shù)據(jù)集上則分別高了0.25%和3.1%。因為DualGAT能夠在細粒度標簽圖和領(lǐng)域相關(guān)圖中學習到更多意圖和槽之間的關(guān)聯(lián)關(guān)系,因此模型在句準確率上也提升很大,在2個數(shù)據(jù)集上分別提升了3.33%和2.55%。模型在槽F1上的提升較小,主要原因是中文對話中語句偏長,許多字不對應(yīng)具體的槽,使得模型不預測槽也能獲得較高的準確率。
(2) 本文提出的模型與最新的圖模型GAIR相比獲得了顯著的性能提升。在CrossWOZ數(shù)據(jù)集上,DualGAT相比GAIR在3個指標上分別提升了0.75%、3.49%和3.91%;而在領(lǐng)域更多的RiSAWOZ數(shù)據(jù)集上,則獲得了更明顯的3.44%、5.62%和6.97%的提升。這是因為在CrossWOZ數(shù)據(jù)集中,有超過20%的樣本具有多個意圖。而RiSAWOZ僅有8%左右的多樣本,反而擁有更多的領(lǐng)域、意圖和槽種類,所以能對多意圖建模的圖模型,在多領(lǐng)域任務(wù)中無法處理意圖和槽標簽之間更細粒度的關(guān)聯(lián)關(guān)系,使得模型表現(xiàn)不佳。DualGAT的細粒度標簽圖能夠建模多領(lǐng)域中的意圖和槽之間的關(guān)聯(lián),領(lǐng)域相關(guān)圖將無關(guān)的槽進行了剔除,使得模型在多領(lǐng)域的數(shù)據(jù)集上獲得了更好的表現(xiàn)。
為了進一步說明本文所提模型的有效性,本文對模型進行了消融實驗,同時對模型與預訓練語言模型的兼容性、可視化分析和計算效率進行了研究。
3.4.1 消融實驗
本節(jié)對DualGAT進行了消融實驗,探索模型中提出的細粒度標簽圖和領(lǐng)域相關(guān)圖的有效性,實驗結(jié)果如表4所示。首先,將模型中的細粒度標簽圖和領(lǐng)域相關(guān)圖均消去。通過觀察,模型在3個指標上都出現(xiàn)顯著的性能下降,意圖準確率和句準確率下降最明顯。在CrossWOZ數(shù)據(jù)集上意圖準確率下降3.17%,句準確率下降3.7%;在RiSAWOZ數(shù)據(jù)集上分別是2.58%和3.71%。這表明本文提出的細粒度標簽圖和領(lǐng)域相關(guān)圖在多領(lǐng)域任務(wù)中,能夠建模意圖和槽之間細粒度的關(guān)聯(lián)關(guān)系,當去除雙圖注意力后,模型的下降最為明顯。
表4 消融實驗結(jié)果 (單位: %)
其次,本文消去了模型中的細粒度標簽圖。模型也出現(xiàn)了明顯的下降,在兩個數(shù)據(jù)集上句準確率分別下降2.27%和2.61%。細粒度標簽可以建立用戶對話語句中的上下文和意圖、槽細粒度分片標簽之間的關(guān)聯(lián)特征。消去細粒度標簽圖后,模型無法建立上下文語義和標簽之間的細粒度關(guān)聯(lián),所以模型依然只能捕獲標簽之間獨立的關(guān)聯(lián)。尤其在更多的領(lǐng)域、意圖和槽標簽的RiSAWOZ數(shù)據(jù)集上,下降更為明顯,槽F1下降了4.03%,意圖準確率下降了1.2%。
最后,本文替換了領(lǐng)域相關(guān)圖中預測意圖和槽之間的領(lǐng)域關(guān)聯(lián),改為預測意圖和所有槽之間全連接。在兩個數(shù)據(jù)集上句準確率均下降了2.06%。替換全連接后,模型只能建立預測意圖和所有槽的連接,會導致模型很難捕獲正確的關(guān)聯(lián)關(guān)系,所以導致在兩個數(shù)據(jù)集的槽F1和意圖準確率上均有明顯下降。
3.4.2 DualGAT與預訓練模型兼容性
為了說明DualGAT與預訓練模型的兼容性,本文用預訓練語言模型[23]替換模型中的上下文編碼器,稱為BERT+DualGAT。在本文中,使用全詞掩碼的中文BERT(1)https://huggingface.co/hfl/chinese-roberta-wwm-ext。對比模型包括BERT和BERT+MLWA,如圖3所示。從結(jié)果中觀察到,BERT+MLWA的效果相較于BERT的表現(xiàn)提升很小。因為兩個模型都是從語義角度增強了模型表現(xiàn),無法很好解決多領(lǐng)域任務(wù)中存在的挑戰(zhàn)。BERT+DualGAT獲得了最好的表現(xiàn),相較于BERT在兩個數(shù)據(jù)集的句準確率上分別提升了3.28%和2.91%。這表明本文提出的模型能為BERT提供語義信息之外的特征,進一步提升了預訓練模型在多領(lǐng)域任務(wù)中的表現(xiàn)。
圖3 模型與預訓練模型兼容性
最近ChatGPT在各項自然語言處理任務(wù)中均獲得了顯著的效果,并引起了學術(shù)界的廣泛關(guān)注。現(xiàn)有研究[24]也利用ChatGPT對意圖識別和槽填充任務(wù)進行了測試。本文利用該研究中的提示內(nèi)容,在CrossWOZ和RiSAWOZ數(shù)據(jù)集上進行了測試,結(jié)果如圖3所示。從圖中看到,ChatGPT在兩個數(shù)據(jù)集上的表現(xiàn)均遠低于現(xiàn)有方法,這與文獻[24]中的結(jié)果基本保持一致。通過對生成的錯誤內(nèi)容進行分析,本文發(fā)現(xiàn)ChatGPT無法完全理解用戶的語句,同時也會生成許多語句中不存在的槽值。因此當前無法在下游任務(wù)進行微調(diào)的通用語義理解的預訓練語言模型,無法完全解決MSLU任務(wù)中的多意圖識別和槽填充問題。
3.4.3 可視化分析
為了進一步說明細粒度標簽圖和領(lǐng)域相關(guān)圖的有效性,本文將DualGAT、消去細粒度標簽圖和消去領(lǐng)域相關(guān)圖的DualGAT的輸出結(jié)果進行了可視化,如圖4所示。本文將“全聚德”看作整體,觀察輸出的意圖標簽,標簽和連接線的深淺表示注意力權(quán)重。DualGAT的輸出主要對應(yīng)意圖Request.餐館.地址和Request.餐館.電話。同時,全聚德和標簽餐館、地址和推薦菜之間也存在關(guān)聯(lián),這是因為細粒度標簽圖建立了“全聚德”與細粒度標簽之間的關(guān)聯(lián)關(guān)系。為了進一步驗證,本文還輸出了“吃”的注意力權(quán)重(在圖4中用虛線表示),除了與對應(yīng)意圖之外,“吃”更關(guān)注餐館、名稱和推薦菜。因為“吃”經(jīng)常會涉及餐館領(lǐng)域,后面會跟餐館的名稱或推薦菜,所以兩者之間存在很強的關(guān)聯(lián)性。作為對比,消去細粒度標簽圖的結(jié)果顯示,“全聚德”更關(guān)注意圖中包含電話的標簽。這是因為上下文中與電話關(guān)聯(lián)更高,而模型沒有學習到“全聚德”對應(yīng)的細粒度標簽的內(nèi)容,因此受到上下文影響后,注意力會分散。
因為DualGAT預測到準確意圖后,根據(jù)領(lǐng)域相關(guān)圖,消除了“全聚德”與其余領(lǐng)域的關(guān)聯(lián),所以在槽識別中,模型更關(guān)注正確的槽標簽。相反,消去領(lǐng)域相關(guān)圖的模型雖然也能夠預測出對應(yīng)的正確標簽,但是由于沒有優(yōu)化意圖和槽之間的關(guān)聯(lián)關(guān)系,所以模型依然有較高的注意力在其他領(lǐng)域的標簽上。
3.4.4 計算效率
在構(gòu)建細粒度標簽圖和領(lǐng)域相關(guān)圖時,本文學習GL-GIN[14],使用非自回歸的方法進行建模,并優(yōu)化了建圖的過程,減少了冗余的連接計算,提升了模型的推理速度。為了比較本文的模型與其他圖模型的計算效率,在相同的系統(tǒng)環(huán)境下,使用相同的超參數(shù)統(tǒng)計了所有圖模型完成一次訓練數(shù)據(jù)集訓練所需的時間,如表5所示。實驗結(jié)果表明,相較于最新的圖模型GAIR,DualGAT實現(xiàn)了33.1倍和14.0倍速度的提升。相較于同樣使用非自回歸方法的GL-GIN,本文提出的模型依然提速2.1倍和1.6倍。這說明將細粒度標簽圖的構(gòu)建過程放在模型初始化階段,同時減少圖中的連接關(guān)系,提升了模型的運算效率。
表5 圖模型計算效率對比
本文提出細粒度標簽圖和領(lǐng)域相關(guān)圖的雙圖注意力聯(lián)合模型DualGAT(Dual Graph Attention Network)解決多領(lǐng)域口語語言理解任務(wù)。模型建模細粒度標簽圖,捕獲意圖和槽之間的細粒度關(guān)聯(lián)。領(lǐng)域相關(guān)圖利用意圖和槽之間的領(lǐng)域關(guān)聯(lián)信息,過濾意圖和槽之間冗余和錯誤的連接,提升模型的句準確率。實驗結(jié)果表明,本文提出的模型在兩個公開的中文數(shù)據(jù)集上相較于已有的模型,性能獲得了顯著提升,進一步的實驗說明了本文模型各模塊的作用和計算效率,同時也用實驗說明本文模型與預訓練語言模型有更好的兼容性。