歐中洪,戴敏江,譚言信,宋美娜
(北京郵電大學(xué) 計(jì)算機(jī)學(xué)院(國家示范性軟件學(xué)院), 北京 100876)
面向任務(wù)的多輪對話系統(tǒng)已普遍應(yīng)用于日常生活,如阿里小蜜[1]、微軟小冰[2]等。任務(wù)導(dǎo)向的對話系統(tǒng)可滿足日常生活訂餐、酒店預(yù)定、飛機(jī)火車預(yù)定等功能。對話狀態(tài)追蹤(dialogue state tracking,DST)是任務(wù)型多輪對話系統(tǒng)的關(guān)鍵組件,其目標(biāo)是根據(jù)用戶與系統(tǒng)的對話歷史識別用戶意圖和用戶對話目標(biāo)。用戶意圖識別,即識別對話所屬任務(wù)領(lǐng)域,如訂餐、查詢領(lǐng)域等,通常構(gòu)建為分類任務(wù);用戶對話目標(biāo)由特定任務(wù)領(lǐng)域的一系列槽構(gòu)成,如訂餐領(lǐng)域的槽包括餐館名稱、訂餐時(shí)間等,這些槽集合可完整表述一項(xiàng)任務(wù),如訂餐。對話狀態(tài)追蹤器根據(jù)用戶意圖,針對特定領(lǐng)域槽識別對話歷史中的實(shí)體作為值,更新歷史對話狀態(tài),完成對話狀態(tài)追蹤。
對話狀態(tài)追蹤器目前主要采用3種方式構(gòu)建:基于分類的方法、基于標(biāo)注的方法和基于生成的方法。
基于分類的方法首先構(gòu)建特定領(lǐng)域的槽值對本體集,形成完整的特定任務(wù)目標(biāo)表示。如針對“訂餐”領(lǐng)域,其可能的用戶目標(biāo)表示包括餐館名稱、餐館地址、訂餐時(shí)間等槽,同時(shí)針對每個(gè)槽需包含完整的值集合。基于分類的方法需保證槽值對本體集的完整性,才可進(jìn)一步根據(jù)對話歷史進(jìn)行分類。但許多槽對應(yīng)的值往往無法完整定義或難以槽值擴(kuò)展,如時(shí)間槽值為連續(xù)值,無法定義完整的值集合,因此基于分類的方法只適用可分類的槽值,不適用完整的對話狀態(tài)追蹤以及新槽值擴(kuò)展。
基于標(biāo)注的方法可根據(jù)槽信息直接在對話歷史中標(biāo)注出對應(yīng)值所在位置,然后通過對話狀態(tài)更新器更新歷史對話狀態(tài)?;跇?biāo)注的方法可有效解決基于分類的方法中無法完整定義槽值的問題,因?yàn)槠淇芍苯訕?biāo)注出對應(yīng)的連續(xù)值,但對于用戶輸入錯(cuò)誤或表述不完整的標(biāo)注結(jié)果,難以直接用于對話狀態(tài)表示,需進(jìn)一步規(guī)范化處理,較為繁瑣。
基于生成的方法根據(jù)對話歷史表示以及槽信息生成完整值,并直接推理更新對話狀態(tài)?;谏傻姆椒缮烧麄€(gè)詞表的詞分布,因此可同時(shí)解決用戶輸入錯(cuò)誤、用戶輸入不完整以及對話中出現(xiàn)新詞等問題。Wu等提出的Trade模型[3]借用指針網(wǎng)絡(luò)[4]編碼對話歷史上下文與領(lǐng)域槽向量,然后基于注意力機(jī)制生成槽值中每個(gè)詞在整個(gè)詞表的概率分布,完成對話狀態(tài)生成?;谏傻姆椒山鉀Q基于分類的方法以及基于標(biāo)注方法的一些弊端,但現(xiàn)有的生成方法沒有有效利用槽值對本體集的知識信息,導(dǎo)致其命名實(shí)體識別能力(named entity recognition,NER)不如基于標(biāo)注或分類的方法。
針對上述問題,本文提出一種基于指針網(wǎng)絡(luò)的新型對話狀態(tài)追蹤生成方法。該方法基于指針網(wǎng)絡(luò)構(gòu)建命名實(shí)體識別指針和領(lǐng)域槽推理指針以改進(jìn)原來的領(lǐng)域槽指針。命名實(shí)體識別指針以槽值對本體集中的槽值為識別目標(biāo),通過標(biāo)注對話歷史中包含的命名實(shí)體來提升命名實(shí)體識別能力;槽推理指針根據(jù)識別的命名實(shí)體詞,基于對話歷史進(jìn)一步推理更新,完成對話狀態(tài)追蹤。
對話系統(tǒng)主要分為基于管道(pipeline)的方法與基于深度學(xué)習(xí)的端到端方法。
基于管道方法的對話系統(tǒng)主要包含4個(gè)組成部分:自然語言理解(natural language understanding,NLU),對話狀態(tài)追蹤(dialogue state tracking,DST),對話策略學(xué)習(xí)(dialogue policy learning,DPL)和對話生成(dialogue language generation,DLG)。對話狀態(tài)追蹤是其中的關(guān)鍵組件。
傳統(tǒng)基于管道方法的對話系統(tǒng)大多作用于單一領(lǐng)域多輪對話數(shù)據(jù)集DSTC2[5],其對話狀態(tài)追蹤依賴自然語言理解[6-10]?;诠艿赖姆椒ㄊ紫雀鶕?jù)自然語言理解得到命名實(shí)體;接著對實(shí)體進(jìn)行去異化(delexicalization),即將標(biāo)注錯(cuò)誤或不完整的命名實(shí)體映射為正確實(shí)體;最后對話狀態(tài)追蹤模塊對命名實(shí)體進(jìn)行所屬槽分類,構(gòu)建完整對話狀態(tài)。依據(jù)單領(lǐng)域數(shù)據(jù)集構(gòu)建的對話狀態(tài)追蹤器難以進(jìn)行多領(lǐng)域遷移,且多模塊間存在誤差傳播,無法全局優(yōu)化;此外,傳統(tǒng)人工構(gòu)建詞典去異化的方法難以維護(hù)和擴(kuò)展到新領(lǐng)域。
針對基于管道方法存在的問題,Henderson等和Zilka等提出基于深度學(xué)習(xí)的端到端方法,將自然語言理解模塊和對話狀態(tài)追蹤模塊聯(lián)合訓(xùn)練,根據(jù)槽值對本體集進(jìn)行分類[11-12]。Mrk?i?等通過將本體的槽值對編碼為低維向量,利用深度學(xué)習(xí)的擬合能力計(jì)算對話歷史向量與槽值對向量的相似度,選擇相似度最大的槽值作為分類結(jié)果進(jìn)行對話狀態(tài)追蹤[13]?;谏疃葘W(xué)習(xí)的方法解決了基于管道的方法中多模塊誤差傳播的問題,深度學(xué)習(xí)的擬合能力解決了傳統(tǒng)方法需要人工構(gòu)建詞典進(jìn)行去異化的問題,但基于槽值對本體集分類的方法不適用于連續(xù)槽值或不可窮舉的槽值,如時(shí)間槽值等。
上述基于生成的方式,通過指針指向整個(gè)詞表,解決了分類方法中無法有效分類連續(xù)值的問題;模型解碼器通過參數(shù)共享來訓(xùn)練各領(lǐng)域槽指針,提升了模型效果。但模型只設(shè)計(jì)了領(lǐng)域指針和槽指針,參數(shù)共享方式粒度較粗,且生成方法沒有有效利用槽值對本體集的知識信息,因此命名實(shí)體識別能力有待提升。
充分利用槽值對本體集的知識信息對于對話狀態(tài)追蹤,特別是命名實(shí)體識別能力提升具有重要作用。DST-Picklist整合了傳統(tǒng)分類方法和最新的跨度預(yù)測方法的優(yōu)勢提升對話狀態(tài)追蹤效果[14],但DST-Picklist將2種方法分開構(gòu)建為2個(gè)模型,沒有做到模型的深度融合。DFGN模型通過第三方命名實(shí)體識別工具來識別命名實(shí)體,然后通過圖卷積網(wǎng)絡(luò)將實(shí)體信息傳播回對話歷史編碼信息中,提升了命名實(shí)體的識別能力[15],但通過第三方工具進(jìn)行命名實(shí)體識別對不同領(lǐng)域的命名實(shí)體識別效果欠佳。
此外,QA-DST將對話狀態(tài)追蹤任務(wù)視為閱讀理解任務(wù),將領(lǐng)域槽構(gòu)建為問題句子編碼,獲得問題向量表示,將對應(yīng)槽值作為閱讀理解的選項(xiàng)進(jìn)行選擇[16]。近來,基于預(yù)訓(xùn)練語言模型Bert[17]和GPT[18]的 BERT-DST[19]方法利用Bert對對話歷史進(jìn)行跨度序列標(biāo)注,預(yù)測對話歷史中每個(gè)詞作為槽值的起始-結(jié)束位置的概率分布,然后從對話歷史中選擇最優(yōu)的起始-結(jié)束位置間的詞作為槽值。上述方法只利用了深度學(xué)習(xí)的擬合能力完成對話狀態(tài)追蹤,忽略了對話狀態(tài)更新時(shí)需要對多輪對話間的多個(gè)值進(jìn)行推理選擇的情況,導(dǎo)致推理更新效果較差。
本文充分利用槽值對本體集實(shí)體知識,將槽值對本體集識別與對話狀態(tài)生成構(gòu)建為深度融合模型,有效利用本體的知識信息提升命名實(shí)體識別效果,同時(shí)保證了深度學(xué)習(xí)模型可擴(kuò)展的優(yōu)點(diǎn)。
我們提出一種新型對話狀態(tài)追蹤模型NerInfer(named entity recognition and inference capabilities enhanced dialogue state tracker),基于指針網(wǎng)絡(luò)提出命名實(shí)體識別指針和領(lǐng)域槽推理指針,以改進(jìn)原來單一的領(lǐng)域槽指針。模型整體架構(gòu)如圖1所示。NerInfer模型主要由4部分構(gòu)成:對話歷史編碼器、命名實(shí)體解碼器、槽推理生成器和槽三分類門。NerInfer模型首先構(gòu)建特定領(lǐng)域的命名實(shí)體識別指針(NER pointer),以槽值對本體集中的命名實(shí)體作為識別目標(biāo),在對話歷史上基于注意力機(jī)制完成標(biāo)注,訓(xùn)練指針的命名實(shí)體識別能力;其次,模型融合槽推理指針(DST inference pointer)和命名實(shí)體識別指針構(gòu)建槽推理生成器(slot value inference generator)進(jìn)行槽值生成。
圖1 對話狀態(tài)追蹤模型架構(gòu)
首先給出相關(guān)符號的定義。對話歷史可表示為
H={(SS1,SU1),(SS2,SU2),…,(SSt,SUt)}。
(1)
式中:SS表示系統(tǒng)的回復(fù)對話序列,SU表示用戶的對話序列,(SSi,SUi)表示第i輪對話,對話歷史H一共包含t輪對話。對話狀態(tài)表示為
B={B1,B2,…,Bt}。
(2)
NerInfer采用雙向門控循環(huán)單元(gate recurrent unit,GRU)作為對話歷史的編碼器,與Trade模型保持一致。其直接將對話歷史按順序進(jìn)行拼接,作為對話歷史編碼器的輸入
Hin=(SS1,SU1,…,SSt,UUt)∈R|w|×demb。
(3)
式中:|w|為對話歷史中詞的總個(gè)數(shù);demb為詞向量維度。通過雙向GRU編碼器編碼,可獲得每個(gè)詞的隱向量
Hhid=(h1,h2,…,hw)∈R|w|×dhid,
(4)
式中dhid為隱向量維度。最后通過編碼器獲得對話歷史的句子級表示hsent∈Rdhid。
原始的Trade模型直接將領(lǐng)域向量與槽向量相加作為槽生成器的第一步輸入,通過向量相加的方式實(shí)現(xiàn)多個(gè)領(lǐng)域間的槽參數(shù)共享,讓向量間互相學(xué)習(xí)槽值的識別能力。NerInfer將(領(lǐng)域,槽)向量構(gòu)建為特定領(lǐng)域的命名實(shí)體識別指針向量Wdom-ner與特定槽的槽推理指針向量Winfe,這與現(xiàn)有研究中簡單將領(lǐng)域向量與槽向量相加不同。一方面,由于不同領(lǐng)域的命名實(shí)體集合間沒有交集,如飯店名稱槽(restaurant-name slot)和酒店名稱槽(hotel-name slot)對應(yīng)的值屬于槽值對本體集中的不同集合,通過領(lǐng)域向量與槽向量直接相加的方式,不但不利于共同學(xué)習(xí)槽值識別,而且會(huì)導(dǎo)致不同領(lǐng)域間的命名實(shí)體發(fā)生混淆。NerInfer針對不同領(lǐng)域設(shè)計(jì)不同的命名實(shí)體識別指針,分別學(xué)習(xí)各自領(lǐng)域內(nèi)部的命名實(shí)體識別能力,從而減少領(lǐng)域間學(xué)習(xí)混淆的情況。另一方面,不同領(lǐng)域中的槽在多輪對話歷史中的推理識別方式存在相似性(如圖2)。不同領(lǐng)域的槽推理過程都會(huì)偏向于由系統(tǒng)給出多個(gè)命名實(shí)體選項(xiàng),然后根據(jù)最新的用戶對話選擇方式推理更新槽值。而NerInfer模型只對槽推理指針的訓(xùn)練進(jìn)行參數(shù)共享,以促進(jìn)槽推理能力的聯(lián)合學(xué)習(xí)。綜上,領(lǐng)域槽值識別首先需要根據(jù)對話歷史識別出相關(guān)的命名實(shí)體,然后通過推理選擇正確的槽值來完成對話狀態(tài)更新。
圖2 對話推理過程
2.3.1 命名實(shí)體解碼器
為了分別訓(xùn)練不同領(lǐng)域間的命名實(shí)體識別指針,以進(jìn)一步增強(qiáng)對話狀態(tài)追蹤器的命名實(shí)體識別能力,NerInfer在不同領(lǐng)域中設(shè)立了在向量空間中完全獨(dú)立的可訓(xùn)練向量。然后,NerInfer將槽值對本體集中的命名實(shí)體作為序列標(biāo)注對象,訓(xùn)練命名實(shí)體識別指針的實(shí)體識別能力。在推理指針的輔助下,NerInfer增強(qiáng)了命名實(shí)體的推理選擇能力。
首先,將命名實(shí)體識別指針向量Wdom-ner作為命名實(shí)體識別生成器的輸入,其中dom為某一具體領(lǐng)域;然后,將對話歷史的句子級表示hsent作為解碼器的初始隱狀態(tài)輸入,得到隱向量hdom-ner;最后,將hdom-ner用于計(jì)算對話歷史詞級的注意力分布,得到dom領(lǐng)域下基于對話歷史隱向量H的詞分布注意力得分
Pdom-ner=Softmax(H·(hdom-ner)T)∈R|Hw|×|Ner|。
(5)
式中:|Hw|為對話歷史中詞的數(shù)目;|Ner|為槽值對本體集中特定領(lǐng)域的命名實(shí)體個(gè)數(shù);通過Softmax函數(shù)計(jì)算整個(gè)序列中各個(gè)詞作為命名實(shí)體的可能性大小,完成命名實(shí)體序列標(biāo)注。
2.3.2 槽推理生成器
NerInfer將槽推理指針和領(lǐng)域相關(guān)的命名實(shí)體識別指針相加作為槽推理生成器的第一個(gè)輸入
Wdom-slot=Winfe+Wdom-ner。
(6)
解碼得到槽值識別指針Wdom-slot的隱向量表示hdom-slot,用于計(jì)算指針基于對話歷史H和整個(gè)詞表V的注意力得分
Pvocab=Softmax(V·(hdom-slot)T)∈R|V|,
(7)
Phistory=Softmax(H·(hdom-slot)T)∈R|Hw|。
(8)
式中:V為整個(gè)詞表的可訓(xùn)練詞向量;|V|為整個(gè)詞表的詞個(gè)數(shù);H為對話歷史的隱向量表示。
對以上兩個(gè)詞分布進(jìn)行加權(quán)求和,得到基于對話歷史和整個(gè)詞表的最終槽值的詞分布
Pvalue=Pgen×Pvocab+(1-Pgen)×Phistory∈R|V|。
(9)
式中:標(biāo)量Pgen通過拼接指針隱向量hdom-slot、指針向量Wdom-slot以及基于注意力機(jī)制得到的對話歷史表示c得到
Pgen=sigmoid(W·[hdom-slot;Wdom-ner;c]),
(10)
c=Phistory·H∈Rdhid。
(11)
三分類門用于預(yù)測當(dāng)前對話歷史中某一領(lǐng)域槽的3種狀態(tài):第1種為存在用戶指定的具體槽值;第2種為“dontcare”,表示槽可以填充任意值;第3種為不存在。基于注意力機(jī)制的對話歷史表示c用于預(yù)測當(dāng)前領(lǐng)域槽的3種狀態(tài):
G=Softmax(WTc)∈R3。
(12)
NerInfer使用交叉熵?fù)p失函數(shù)Lg計(jì)算三分類門的預(yù)測損失
(13)
式中:G表示預(yù)測值;ygate表示真實(shí)值,用獨(dú)熱碼表示。類似地,NerInfer使用另一個(gè)交叉熵?fù)p失函數(shù)Lv計(jì)算預(yù)測的槽值對應(yīng)的詞分布Pvalue與真實(shí)詞yvalue之間的損失:
(14)
式中:V為詞表中詞的個(gè)數(shù);N為槽值對本體集中命名實(shí)體槽值的個(gè)數(shù)。
最后,計(jì)算命名實(shí)體識別損失函數(shù),同樣使用交叉熵?fù)p失函數(shù)
(15)
最終,通過超參α、β、γ加權(quán)求和3個(gè)損失函數(shù)獲得最終的損失函數(shù)
L=αLg+βLv+γLn。
(16)
Multi-domain Wizard-of-Oz[20](MultiWOZ)是面向任務(wù)的多領(lǐng)域完全人工標(biāo)注的多輪對話數(shù)據(jù)集,是目前最大的有標(biāo)注對話任務(wù)數(shù)據(jù)集,包含景點(diǎn)(attraction)、醫(yī)院(hospital)、警察局(police)、酒店(hotel)、餐廳(restaurant)、出租車(taxi)、火車(train)7個(gè)領(lǐng)域,共收集了10 438組對話。大約70%的對話超過10個(gè)回合,顯示了語料庫的復(fù)雜性;單領(lǐng)域和多領(lǐng)域?qū)υ挼钠骄喆畏謩e為8.93和15.39,共115 434輪。MultiWOZ將對話建模任務(wù)分解為3個(gè)子任務(wù)來為每個(gè)子任務(wù)報(bào)告基準(zhǔn)測試結(jié)果:對話狀態(tài)跟蹤、對話-行為-文本生成和對話上下文-文本生成。本文采用糾錯(cuò)后的MultiWOZ 2.1[5]版本數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。
Trade模型中的槽值識別誤差結(jié)果如圖3所示??梢钥闯鼍频辍⒕包c(diǎn)以及餐廳3個(gè)領(lǐng)域命名實(shí)體的識別準(zhǔn)確率最低。因此,本文僅考慮對這3個(gè)命名實(shí)體進(jìn)行實(shí)驗(yàn),驗(yàn)證NerInfer模型的有效性。
圖3 Trade模型在多領(lǐng)域測試集上的槽錯(cuò)誤率
NerInfer模型的實(shí)驗(yàn)細(xì)節(jié)基本遵循Trade模型的設(shè)定。NerInfer模型使用Adam優(yōu)化器[21],訓(xùn)練批次大小為32,學(xué)習(xí)率設(shè)定為[0.001,0.000 1],丟棄率[22]設(shè)定為0.2。損失函數(shù)的超參α、β、γ均設(shè)置為1。所有嵌入向量都使用 Glove Embeddings[23]和Character Embeddings[24]作為初始的詞嵌入向量,詞向量維度為400維,命名實(shí)體識別指針和槽推理生成都采用貪心策略。此外,與文獻(xiàn)[25]類似,NerInfer模型采用掩碼策略對輸入序列加入掩碼提升可擴(kuò)展性。
為驗(yàn)證本文所提出的NerInfer模型的有效性,把Trade模型以及消融實(shí)驗(yàn)分析得到的Trade-模型作為對比。
NerInfer模型旨在提升命名實(shí)體槽值的識別能力。為了改進(jìn)原始Trade模型的缺陷,本文僅對酒店名稱槽(hotel-name slot)、飯店名稱槽(restaurant-name slot)和景點(diǎn)名稱槽(attraction-name slot)3個(gè)領(lǐng)域的槽值進(jìn)行對話狀態(tài)追蹤。此外,由于名稱槽(name slot)的值實(shí)際指向命名實(shí)體,本文將其統(tǒng)稱為命名實(shí)體槽(named entity slot)。
我們在驗(yàn)證集dev和測試集test上驗(yàn)證每個(gè)模型的性能,使用聯(lián)合目標(biāo)準(zhǔn)確率(joint goal accuracy)、輪次槽值識別準(zhǔn)確率(turn accuracy)和聯(lián)合F1值(joint-F1)3個(gè)指標(biāo)評估模型性能。聯(lián)合目標(biāo)準(zhǔn)確率表示在一個(gè)完整對話的所有輪次中,所有槽值的預(yù)測均與真實(shí)槽值相同才能作為一次正確預(yù)測,是對話狀態(tài)追蹤器性能評估的核心指標(biāo);輪次槽值識別準(zhǔn)確率僅需具體輪次對話中槽值識別與真值槽值相同即可作為一次正確預(yù)測;聯(lián)合F1反映聯(lián)合預(yù)測的精確率和召回率的調(diào)和平均結(jié)果。
為進(jìn)行公平比較,在訓(xùn)練和測試模型時(shí)將3個(gè)模型的參數(shù)設(shè)置相同,并對每個(gè)模型進(jìn)行4次實(shí)驗(yàn),取平均結(jié)果作為最終實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果如表1所示。
表1 實(shí)驗(yàn)結(jié)果
Trade模型是原始模型,直接使用單一的領(lǐng)域槽指針生成對應(yīng)值,沒有細(xì)分命名實(shí)體識別指針和槽推理指針。因此,模型的命名實(shí)體識別能力不足。
Trade-模型是對Trade模型進(jìn)行消融改進(jìn)以驗(yàn)證本文假設(shè)的模型。在Trade-模型中,去除指針中的名稱槽向量,并保留領(lǐng)域向量。這可以確保在不同領(lǐng)域中,可以獨(dú)立訓(xùn)練指針的命名實(shí)體識別能力,使得每個(gè)領(lǐng)域中識別的命名實(shí)體的值不會(huì)互相干擾。盡管這種改進(jìn)削弱了推理能力,但它提高了命名實(shí)體識別能力。
NerInfer模型是本文提出的改進(jìn)模型。在不同領(lǐng)域設(shè)置了不同的命名實(shí)體識別指針,并使用槽值對本體集中的命名實(shí)體作為序列標(biāo)注值,以提高命名實(shí)體識別指針的識別能力。由于對話狀態(tài)追蹤器在不同領(lǐng)域中有相似推理過程,因此設(shè)置參數(shù)共享槽推理指針以聯(lián)合學(xué)習(xí)槽推理能力。最后,將2個(gè)指針相加得到新的指針作為最終槽推理生成器的輸入,完成對話狀態(tài)追蹤。
通過比較表1中Trade模型和消融后的Trade-模型,可發(fā)現(xiàn)Trade-模型提高了測試集的聯(lián)合目標(biāo)準(zhǔn)確率,這表明Trade模型的完全參數(shù)共享指針不如Trade-模型在各自領(lǐng)域獨(dú)立訓(xùn)練對應(yīng)的命名實(shí)體識別指針效果好,即參數(shù)共享命名實(shí)體識別指針不僅沒有推理能力,而且容易導(dǎo)致多個(gè)領(lǐng)域間的命名實(shí)體互相混淆,產(chǎn)生錯(cuò)誤識別。但在實(shí)際情況下,由于不同領(lǐng)域中的命名實(shí)體間沒有任何交集,因此移除參數(shù)共享部分的指針可以幫助提高在不同領(lǐng)域中命名實(shí)體的識別能力。
通過比較本文提出的NerInfer模型和Trade模型,可發(fā)現(xiàn)NerInfer模型在驗(yàn)證集和測試集上均有顯著提升。從表1可以看出,NerInfer模型在測試集上取得了0.782的聯(lián)合目標(biāo)準(zhǔn)確率,比Trade模型提高了1.2%;NerInfer模型的輪次準(zhǔn)確率達(dá)到0.924,比Trade模型提高了0.6%;NerInfer模型的聯(lián)合F1值增加到0.819。性能提升主要來自兩方面:一方面,NerInfer模型在其各自領(lǐng)域中獨(dú)立訓(xùn)練命名實(shí)體識別指針,并通過引入槽值對本體集的命名實(shí)體知識作為識別目標(biāo)來進(jìn)一步提高指針的命名實(shí)體識別能力;另一方面,NerInfer模型通過引入具有參數(shù)共享的槽推理指針,可以聯(lián)合訓(xùn)練多個(gè)領(lǐng)域間的槽推理能力,從而改進(jìn)實(shí)驗(yàn)結(jié)果。
首先分析Trade模型的誤差,并根據(jù)分析結(jié)果選擇命名實(shí)體作為進(jìn)一步實(shí)驗(yàn)?zāi)繕?biāo);然后對NerInfer模型的實(shí)驗(yàn)結(jié)果進(jìn)行誤差分析,驗(yàn)證模型在命名實(shí)體識別能力和槽推理能力上的提升效果。
根據(jù)圖3給出的誤差結(jié)果,可以看出Trade模型在多領(lǐng)域測試集上5個(gè)領(lǐng)域槽的錯(cuò)誤率最高:景點(diǎn)名稱槽(attraction-name slot)、酒店名稱槽(hotel-name slot)、飯店名稱槽(restaurant-name slot)、出租車目的地槽(taxi-destination slot)和出租車始發(fā)地槽(taxi-departure slot)。這表明Trade模型在預(yù)測命名實(shí)體槽值以及出租車領(lǐng)域槽值方面具有很大改進(jìn)空間。類似地,出租車領(lǐng)域的槽值與命名實(shí)體槽值的集合也存在一定交集,如用戶可能會(huì)在預(yù)定出租車的領(lǐng)域?qū)υ捴兄赋鲂枰獜哪硞€(gè)景點(diǎn)出發(fā)去飯店,此時(shí)出租車的始發(fā)地和目的地都是命名實(shí)體槽值。因此,針對命名實(shí)體槽進(jìn)行實(shí)驗(yàn)提升命名實(shí)體對話狀態(tài)追蹤能力,對應(yīng)出租車領(lǐng)域的命名實(shí)體識別識別能力和槽推理能力即可得到有效提高。由此,本文選擇命名實(shí)體槽進(jìn)行實(shí)驗(yàn)。
進(jìn)一步分析原始Trade模型在命名實(shí)體槽(name slot)和出租車領(lǐng)域始發(fā)地槽(taxi-departure slot)和目的地槽(taxi-destination slot)的對話狀態(tài)追蹤交互結(jié)果。我們選擇實(shí)驗(yàn)結(jié)果中出租車領(lǐng)域的槽(taxi-domain slot)與命名實(shí)體槽具有相同值的對話進(jìn)行分析,即出租車領(lǐng)域的槽值也屬于景點(diǎn)、飯店、酒店的命名實(shí)體集合。
分析結(jié)果如表2所示。其中,列表示兩種槽具有相同值,如attraction-destination,該列表示景點(diǎn)名稱槽(attraction-bame slot)和出租車目的地槽(taxi-destination slot)具有相同槽值;行表示統(tǒng)計(jì)結(jié)果,表格內(nèi)的值表示對話輪次數(shù)。對話總輪次為滿足出租車領(lǐng)域槽與命名實(shí)體槽具有相同值的對話總輪數(shù),該統(tǒng)計(jì)來自整個(gè)數(shù)據(jù)集?!邦A(yù)測正確”代表實(shí)驗(yàn)結(jié)果為正確預(yù)測的對話總輪數(shù);錯(cuò)誤的預(yù)測值為空的結(jié)果分為3種類型:“均為空”表示將命名實(shí)體槽和出租車對應(yīng)槽值都錯(cuò)誤地預(yù)測為不存在;“命名實(shí)體為空”表示只有命名實(shí)體槽被錯(cuò)誤地預(yù)測為不存在;“出租車為空”表示只有出租車領(lǐng)域錯(cuò)誤地預(yù)測為值不存在。值錯(cuò)誤預(yù)測同樣分為3類:“均錯(cuò)誤”表示兩個(gè)槽的預(yù)測值不為空,但是值均不正確;其他兩類含義與“錯(cuò)誤預(yù)測為空”中情況類似。
表2 對原始Trade模型的實(shí)驗(yàn)結(jié)果進(jìn)一步詳細(xì)分析的結(jié)果
實(shí)驗(yàn)結(jié)果顯示命名實(shí)體槽值被錯(cuò)誤地預(yù)測為空的對話輪次占據(jù)了錯(cuò)誤預(yù)測結(jié)果的大多數(shù)。這意味著Trade模型從對話歷史中識別命名實(shí)體的能力較弱;由于命名實(shí)體未被識別出來,即沒有可以推理選擇為槽值的候選項(xiàng),導(dǎo)致對話狀態(tài)更新時(shí)槽值無法更新。
“出租車值錯(cuò)誤”顯示出租車領(lǐng)域槽的值預(yù)測為其他命名實(shí)體值的情況占據(jù)了錯(cuò)誤識別中很大一部分。在出租車領(lǐng)域,部分始發(fā)地槽和目的地槽可直接基于當(dāng)前對話序列識別出對應(yīng)值;但許多出租車的領(lǐng)域槽值與其他領(lǐng)域的命名實(shí)體槽值相關(guān),對話狀態(tài)追蹤器需要根據(jù)對話歷史上下文推理選擇對應(yīng)的命名實(shí)體槽值來更新對話狀態(tài)。如用戶希望從飯店A到達(dá)景點(diǎn)B,這時(shí)可能在出租車領(lǐng)域的當(dāng)前對話中不涉及具體的命名實(shí)體槽值,卻需要根據(jù)上文提到的飯店命名實(shí)體槽值和景點(diǎn)命名實(shí)體槽值來推理更新當(dāng)前出租車領(lǐng)域的槽值。因此,出租車領(lǐng)域中值的錯(cuò)誤預(yù)測情況與命名實(shí)體識別能力以及基于對話上下文的槽推理能力有關(guān)。綜上,提高命名實(shí)體槽值的識別準(zhǔn)確率,并提升多輪對話槽推理能力可有效提升Trade模型的性能。
3個(gè)模型實(shí)驗(yàn)結(jié)果的進(jìn)一步分析如表3和圖4所示。分別對3個(gè)模型各領(lǐng)域的命名實(shí)體槽(name slot)進(jìn)行統(tǒng)計(jì)分析,采用準(zhǔn)確率、值錯(cuò)誤率為評價(jià)指標(biāo)。錯(cuò)誤率細(xì)分為3種:“值錯(cuò)誤率”表示槽值被錯(cuò)誤地預(yù)測為其他命名實(shí)體槽值;“預(yù)測為空錯(cuò)誤率”表示真實(shí)槽有對應(yīng)的值,但是被錯(cuò)誤地預(yù)測為空;“預(yù)測非空錯(cuò)誤率”表示實(shí)際沒有這樣的槽值,但被錯(cuò)誤地預(yù)測具有槽值。
表3 Trade模型、Trade-模型、NerInfer模型的實(shí)驗(yàn)結(jié)果對比分析
圖4 Trade、Trade-、NerInfer模型預(yù)測準(zhǔn)確率趨勢圖
從表3和圖4可以看出,對于錯(cuò)誤預(yù)測為空的值,NerInfer模型的錯(cuò)誤率相比Trade模型和Trade-模型明顯降低。因此,NerInfer模型中的命名實(shí)體識別指針幫助模型識別出更多命名實(shí)體,減少預(yù)測為空的情況,從而顯著提高命名實(shí)體識別能力。更進(jìn)一步,NerInfer模型可根據(jù)識別的所有槽值進(jìn)行槽推理,完成對話狀態(tài)更新。但從表3可發(fā)現(xiàn),Trade模型的錯(cuò)誤率較Trade-模型和NerInfer模型更低。這主要因?yàn)槊麑?shí)體識別指針有助于找到更多相關(guān)的命名實(shí)體槽值,但其也會(huì)識別更多不相關(guān)的命名實(shí)體詞,從而帶來更多噪聲。因此,即使加入?yún)?shù)共享的槽推理指針,總體的推理能力仍然減弱。為了進(jìn)一步完善該部分,有必要提高槽推理指針的推理能力,以推理選擇正確的實(shí)體值作為當(dāng)前對話狀態(tài)的槽值,這將是未來的工作方向。
本文在分析Trade模型實(shí)驗(yàn)結(jié)果的基礎(chǔ)上,發(fā)現(xiàn)命名實(shí)體識別準(zhǔn)確率低的主要原因,并選擇命名實(shí)體領(lǐng)域槽值進(jìn)行實(shí)驗(yàn)。
基于槽值對本體集的命名實(shí)體知識信息,設(shè)計(jì)了命名實(shí)體識別指針與針對特定領(lǐng)域的槽推理指針,并基于2種指針設(shè)計(jì)槽推理生成器,實(shí)現(xiàn)了一種新的NerInfer模型,使模型在保留生成方法可擴(kuò)展優(yōu)點(diǎn)的基礎(chǔ)上,有效利用槽值對本體知識信息。
在多任務(wù)多輪對話領(lǐng)域權(quán)威的MultiWOZ 2.1數(shù)據(jù)集上進(jìn)行了一系列實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明所提出的方法能有效提升多輪對話系統(tǒng)對話狀態(tài)追蹤在命名實(shí)體識別和命名實(shí)體槽推理更新的效果。具體地,所提方法在聯(lián)合目標(biāo)準(zhǔn)確率上提升了1.24%,聯(lián)合F1值提升了0.96%。
未來,可進(jìn)一步對其他領(lǐng)域的槽值進(jìn)行實(shí)驗(yàn),以及對需要推理識別的出租車領(lǐng)域進(jìn)行實(shí)驗(yàn),進(jìn)一步提高出租車領(lǐng)域的命名實(shí)體識別準(zhǔn)確率以及基于參數(shù)共享的推理指針在出租車等領(lǐng)域的槽值更新能力。