向 露 朱軍楠 周 玉 ,3 宗成慶
任務(wù)型對話系統(tǒng)旨在通過對話交互的方式在有限的回合內(nèi)幫助用戶完成特定的任務(wù),比如導(dǎo)航、訂機(jī)票等.近年來,對話系統(tǒng)成為學(xué)術(shù)界和工業(yè)界關(guān)注的焦點(diǎn).尤其是端到端任務(wù)型對話系統(tǒng)[1-5]引起了研究者廣泛的興趣,此類系統(tǒng)能夠接收用戶的輸入,并直接生成對應(yīng)的回復(fù).
隨著全球化的快速發(fā)展和跨境電子商務(wù)的普及,跨語言交流變得愈發(fā)頻繁.在此背景下,開發(fā)和部署跨語言的任務(wù)型對話系統(tǒng)已成為迫切需求.然而,目前的任務(wù)型對話系統(tǒng)主要使用特定的單語數(shù)據(jù)進(jìn)行訓(xùn)練.對于一種新的語言,須重新對該語言的對話數(shù)據(jù)進(jìn)行收集和標(biāo)注,這將耗費(fèi)巨大的成本,同時使得系統(tǒng)的開發(fā)周期變長.因此,能否利用已有的單語對話系統(tǒng)構(gòu)建跨語言系統(tǒng),成為本文關(guān)注的焦點(diǎn).
近年來,隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,機(jī)器翻譯技術(shù)取得了長足的進(jìn)展,包括谷歌、百度和微軟在內(nèi)的諸多互聯(lián)網(wǎng)公司都已經(jīng)部署了各自的開源機(jī)器翻譯系統(tǒng),這為跨語言對話系統(tǒng)的構(gòu)建提供了便利.因此,本文借助已有的機(jī)器翻譯系統(tǒng)作為不同語言之間的橋梁,提出了 “翻譯-對話-回翻”的跨語言對話框架.如圖1 所示,該框架包括三個系統(tǒng):“用戶語言(中)-源語言(英)”的機(jī)器翻譯系統(tǒng)、“源語言(英)”的對話系統(tǒng)和 “源語言(英)-用戶語言(中)”的機(jī)器翻譯系統(tǒng).其工作流程包括三個步驟:1) 翻譯步驟,即采用 “用戶語言-源語言”機(jī)器翻譯系統(tǒng)將用戶的輸入翻譯成對話系統(tǒng)所支持的語言;2) 對話步驟,即對話系統(tǒng)根據(jù)步驟 1) 轉(zhuǎn)換得到的源語言句子生成回復(fù);3) 回翻步驟,即采用 “源語言-用戶語言”機(jī)器翻譯系統(tǒng)將系統(tǒng)生成的源語言回復(fù)翻譯至用戶語言以反饋給用戶.

圖1 基于機(jī)器翻譯的跨語言對話系統(tǒng)Fig.1 Machine translation based cross-lingual dialogue system
本文所提出的跨語言對話框架可以充分利用現(xiàn)有的翻譯系統(tǒng)和單語對話數(shù)據(jù),無須重新標(biāo)注數(shù)據(jù)即可將單語的對話系統(tǒng)擴(kuò)展至多種語言,便于實(shí)際開發(fā)與部署.
然而,當(dāng) “用戶語言-源語言”缺乏機(jī)器翻譯平行數(shù)據(jù)或機(jī)器翻譯平行數(shù)據(jù)的領(lǐng)域與任務(wù)型對話的領(lǐng)域存在顯著差異時,機(jī)器翻譯系統(tǒng)的結(jié)果不可避免地會引入各種干擾和錯誤.原始的對話系統(tǒng)通常是在干凈數(shù)據(jù)上進(jìn)行訓(xùn)練的,無法有效地處理機(jī)器翻譯系統(tǒng)所引入的噪聲,從而嚴(yán)重制約跨語言對話系統(tǒng)的質(zhì)量.事實(shí)上,許多研究表明,大多數(shù)神經(jīng)網(wǎng)絡(luò)系統(tǒng)對輸入的變化十分敏感,微小的輸入擾動可能會引起較大的輸出差異[6-9].因此,構(gòu)建面向由機(jī)器翻譯所引入噪聲的魯棒性跨語言對話系統(tǒng),對于提升跨語言對話服務(wù)的性能至關(guān)重要.
針對上述問題,本文提出了一種基于多粒度對抗訓(xùn)練的魯棒跨語言對話系統(tǒng)構(gòu)建方法,以提升跨語言對話系統(tǒng)對于多粒度翻譯噪聲數(shù)據(jù)的魯棒性.具體地,該方法首先利用 “翻譯-回翻”的方式,構(gòu)造了詞匯、短語、句子三種粒度的噪聲對抗樣本.之后,該方法利用對抗訓(xùn)練的方式學(xué)習(xí)噪聲無關(guān)的隱層向量表示,進(jìn)而提升對話系統(tǒng)應(yīng)對翻譯系統(tǒng)所引入噪聲的能力.本文提出的方法在 “中文到英語”和“德語到英語”兩種語言對上開展了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明本文所提方法能夠在保持源語言性能的情況下,顯著提升跨語言場景下對話系統(tǒng)的性能.
任務(wù)型對話系統(tǒng)旨在通過對話交互幫助用戶完成特定任務(wù).根據(jù)實(shí)現(xiàn)方式的不同,現(xiàn)有的任務(wù)型對話系統(tǒng)可以分為兩類:基于管道的系統(tǒng)和基于端到端的系統(tǒng).基于管道的系統(tǒng)[10-11]由自然語言理解模塊(Spoken language understanding,SLU)[12-13]、對話管理模塊[14-16]和語言生成模塊[17]組成,每個模塊單獨(dú)設(shè)計,成本較高且存在誤差傳遞.為緩解管道式系統(tǒng)的缺點(diǎn),研究人員提出了多種端到端對話系統(tǒng)[18-21].其中,Lei 等[21]提出了一種簡化的序列到序列的對話模型(Two stage copynet,TSCP),其核心思想是對上下文編碼后分為兩步進(jìn)行解碼.該模型第一步根據(jù)上下文解碼出每個語義槽的對話狀態(tài),第二步根據(jù)上下文以及前一步解碼出的對話狀態(tài)解碼出系統(tǒng)回復(fù).這種兩階段解碼方式簡化了對話狀態(tài)追蹤模塊(Dialogue state tracking,DST),取得了較好的對話生成效果.本文將使用TSCP 作為圖1 所示跨語言對話框架中的單語對話系統(tǒng).
目前的跨語言對話系統(tǒng)相關(guān)研究主要集中于管道式對話系統(tǒng)中某些模塊的跨語言遷移.針對SLU 模塊的遷移,García 等[22]和Calvo 等[23-24]提出通過不同的策略利用機(jī)器翻譯系統(tǒng)將源語言的SLU數(shù)據(jù)轉(zhuǎn)換成目標(biāo)語言訓(xùn)練數(shù)據(jù),從而訓(xùn)練相應(yīng)的SLU 系統(tǒng).Bai 等[25]使用強(qiáng)化學(xué)習(xí)進(jìn)一步提升了SLU的語言遷移能力.除此之外,Chen 等[26]也對DST 的跨語言遷移問題展開了研究,并提出了一種用于DST跨語言遷移學(xué)習(xí)的 “教師-學(xué)生”框架.Schuster 等[27]則提出了一個多語言意圖識別和語義槽填充數(shù)據(jù)集,并探索了從資源充足語言遷移到資源稀少語言的不同策略.上述工作只關(guān)注對話系統(tǒng)的個別模塊,而本文著眼于整個跨語言對話系統(tǒng)的構(gòu)建,直接使用機(jī)器翻譯系統(tǒng)將用戶話語翻譯成目標(biāo)語言,然后與對話系統(tǒng)進(jìn)行交互.
基于對抗學(xué)習(xí)提升系統(tǒng)魯棒性的方法已經(jīng)被應(yīng)用于多個自然語言處理任務(wù),包括文本分類[28-29]、機(jī)器翻譯[30-32]、對話生成[33]等.其基本思想是通過構(gòu)造對抗樣本對已訓(xùn)練完備的網(wǎng)絡(luò)進(jìn)行攻擊,從而調(diào)整網(wǎng)絡(luò)參數(shù)以提高魯棒性,使網(wǎng)絡(luò)能夠抵抗這些攻擊.Belinkov 等[30]通過在訓(xùn)練數(shù)據(jù)中引入對抗樣本提升基于字符級別的翻譯模型的魯棒性.在對話領(lǐng)域,Tong 等[34]探討了生成式任務(wù)型對話系統(tǒng)的敏感性和穩(wěn)定性問題.他們通過不同的策略生成對抗樣本,包括隨機(jī)交換、去掉停用詞、數(shù)據(jù)級改寫、生成式改寫、語法錯誤等,實(shí)驗(yàn)結(jié)果證明利用對抗樣本進(jìn)行訓(xùn)練不僅可以提高原始模型的魯棒性,還可以提升在原始數(shù)據(jù)上的性能.不同于上述方法,本文所提方法能夠構(gòu)建面向特定翻譯系統(tǒng)的噪聲,并利用對抗學(xué)習(xí)提升對話系統(tǒng)的魯棒性.
本文將TSCP[21]作為圖1 中的單語對話系統(tǒng)來評估所提方法的有效性.該系統(tǒng)的框架如圖2 所示.TSCP 提出了信念跨度(Belief span)以記錄對話系統(tǒng)每一輪的對話狀態(tài).在此基礎(chǔ)上,TSCP 將任務(wù)型對話系統(tǒng)拆分為信念跨度生成和回復(fù)生成兩個任務(wù),并通過一個序列到序列模型(Sequence to sequence,seq2seq)實(shí)現(xiàn).具體而言,TSCP 將解碼劃分為兩階段.在第一個階段,生成一個信念跨度,以便于同知識庫進(jìn)行交互,這一階段對應(yīng)著對話狀態(tài)追蹤,即根據(jù)上下文解碼出每個語義槽的對話狀態(tài).之后在第二個階段生成機(jī)器回復(fù),即根據(jù)上下文及知識庫檢索結(jié)果解碼出系統(tǒng)回復(fù).

圖2 TSCP 框架Fig.2 TSCP framework
一個多輪對話可以表示為{(B0R0U1;B1R1);(B1R1U2;B2R2);···;(Bt-1Rt-1Ut;Bt Rt)},其中Bt表示第t輪對話的狀態(tài)追蹤,即當(dāng)前所涉及的所有語義槽信息,Bt僅由模型使用,對用戶不可見;Ut表示第t輪用戶的輸入;Rt為第t輪系統(tǒng)的回復(fù);B0和R0初始化為空序列.
TSCP 的兩階段解碼可形式化表示如下:
第一階段,使用信念跨度Bt-1、系統(tǒng)回復(fù)Rt-1和當(dāng)前用戶的輸入Ut,解碼生成當(dāng)前的信念跨度Bt并對知識庫進(jìn)行搜索,如式(1)所示

第二階段,根據(jù)知識庫搜索結(jié)果kt與解碼所得的信念跨度Bt對機(jī)器回復(fù)進(jìn)行解碼,如式(2)所示

在具體實(shí)現(xiàn)的過程中,使用兩階段CopyNet[35]實(shí)現(xiàn),以允許在生成信念跨度和機(jī)器回復(fù)時可以直接對輸入端的關(guān)鍵信息進(jìn)行復(fù)制.
為提升跨語言場景下對話系統(tǒng)對機(jī)器翻譯步驟所引入噪聲的魯棒性,本文提出了一種基于多粒度對抗訓(xùn)練的魯棒跨語言對話系統(tǒng)構(gòu)建方法.具體而言,該方法包括多粒度對抗樣本的構(gòu)造和對抗訓(xùn)練兩步.
在跨語言場景下,對話系統(tǒng)所接收到的用戶輸入Ut是經(jīng)過機(jī)器翻譯系統(tǒng)處理后的結(jié)果.然而,翻譯過程難免會引入一些噪聲,使得對話系統(tǒng)的性能受到一定程度的制約.為緩解該問題,本文將干凈的對話訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為包含機(jī)器翻譯噪聲的帶噪數(shù)據(jù),從而使得對話系統(tǒng)能夠?qū)W習(xí)如何處理噪聲.
本文使用 “翻譯-回翻”技術(shù)生成包含翻譯噪聲的對話數(shù)據(jù).假設(shè)對話系統(tǒng)所支持的語言定義為源語言S,用戶所使用的語言定義為用戶語言T,對話系統(tǒng)的訓(xùn)練數(shù)據(jù)記作XS.首先,我們使用一個S →T的機(jī)器翻譯系統(tǒng)將訓(xùn)練數(shù)據(jù)XS從語言S翻譯至語言T,之后使用一個T→S的機(jī)器翻譯系統(tǒng)進(jìn)行反向翻譯,所獲得的數(shù)據(jù)記作.通過這種方法,可以生成一組數(shù)據(jù).由于是由翻譯系統(tǒng)生成的,與原始數(shù)據(jù)XS相比,其中便引入了機(jī)器翻譯系統(tǒng)的噪聲和誤差.該數(shù)據(jù)是直接通過對句子級進(jìn)行翻譯再回翻構(gòu)造的,因此本文將這類數(shù)據(jù)記為句子級對抗樣本.
僅生成句子級對抗樣本在噪聲類型和數(shù)據(jù)多樣性上是不夠的,在很多情況下,噪聲的粒度是短語或詞匯級別的.因此,本文構(gòu)造了詞匯級對抗樣本和短語級對抗樣本.具體的構(gòu)造方法如圖3 所示,其中MT 表示機(jī)器翻譯系統(tǒng),LS表示源語言句子,LT表示利用機(jī)器翻譯系統(tǒng)將LS進(jìn)行翻譯得到的用戶語言句子,表示利用機(jī)器翻譯系統(tǒng)對LT進(jìn)行回翻得到的句子.該框架分為兩步:第一步,借助機(jī)器翻譯系統(tǒng)和詞對齊,構(gòu)造詞匯和短語兩種粒度的噪聲;第二步,利用構(gòu)造的噪聲及對話系統(tǒng)訓(xùn)練數(shù)據(jù)生成詞匯級和短語級兩種粒度的對抗樣本.

圖3 詞匯級和短語級對抗樣本生成框架Fig.3 The framework of word-level and phrase-level adversarial examples generation
詞匯和短語級噪聲構(gòu)建.給定LS中的一個句子x={w1,w2,···,wn},首先利用機(jī)器翻譯將其翻譯至用戶語言,之后再利用機(jī)器翻譯將該句子回翻至源語言,從而獲取一批句對{ (x,x′)},其中x′包含了機(jī)器翻譯過程可能對原始句子x產(chǎn)生的變化.
本文借助統(tǒng)計機(jī)器翻譯的思想,利用{(x,x′)}構(gòu)造詞匯級、短語級兩種粒度的噪聲.
對抗樣本生成.在得到詞匯噪聲和短語噪聲后,本文利用上述噪聲生成對應(yīng)的對抗樣本,具體生成方法如下.
1) 詞匯級對抗樣本.本文使用詞匯級噪聲對原始用戶話語中的詞匯進(jìn)行替換,從而在詞匯層面產(chǎn)生包含翻譯噪聲的用戶話語.為了保證替換之后生成的用戶話語語義不會發(fā)生改變,本文只允許對除了限定詞(如the、a、an、some、most、any、every)、人稱代詞(如she、hers、herself、he、him、himself、it)和情態(tài)動詞(如can、cannot、could、couldn't、must)之外的詞進(jìn)行替換.這主要是因?yàn)樘鎿Q限定詞、人稱代詞和情態(tài)動詞很容易導(dǎo)致陳述不一致甚至語義發(fā)生變化.對于其他詞匯,將從詞匯級噪聲中查找其對應(yīng)的噪聲詞匯.對于每個用戶話語,隨機(jī)抽取一個滿足替換規(guī)則的單詞,并隨機(jī)從噪聲詞匯中選擇一個單詞對該單詞進(jìn)行替換,例如將 “thenearestgrocery”替換成 “theclosestgrocery”.這樣可以為訓(xùn)練數(shù)據(jù)中的每個原始語句隨機(jī)生成多個包含翻譯噪聲的用戶話語.
2) 短語級對抗樣本.類似于詞匯級對抗樣本生成,本文使用短語級噪聲對原始用戶話語中的短語進(jìn)行替換,從而在短語層面產(chǎn)生包含翻譯噪聲的用戶話語.對于用戶話語,我們在短語級噪聲中查找用戶話語中的N元組(N-gram)及其對應(yīng)的噪聲短語.對于用戶話語中的每個N元組,隨機(jī)抽取一個滿足替換規(guī)則的片段,并從候選噪聲短語中隨機(jī)選擇一個短語替換它,例如將 “where′s the nearestparking garage”替換成 “whereis the latest car park site”.
總體而言,本文所提多粒度對抗樣本構(gòu)造方法如算法1 所示.

圖4 展示了一個多粒度對抗樣本實(shí)例,包括詞匯級對抗樣本、短語級對抗樣本和句子級對抗樣本.由該實(shí)例可以看出,通過本文所提的多粒度對抗樣本生成方法可以在詞匯、短語、句子級別生成更加豐富多樣的對抗樣本,從而為后續(xù)增強(qiáng)模型魯棒性奠定數(shù)據(jù)基礎(chǔ).

圖4 多粒度對抗樣本實(shí)例Fig.4 An example of multi-granularity adversarial examples
在得到對抗樣本后,本文須利用上述對抗樣本提升跨語言對話系統(tǒng)的魯棒性.圖5 給出了本文所提對抗訓(xùn)練的示意圖.給定干凈上下文x和包含擾動的上下文x′,對抗訓(xùn)練旨在使得上下文編碼器輸出的隱層向量Hx和Hx′能夠盡量相似,同時要求解碼器端能夠輸出相同的信念跨度和應(yīng)答語句.

圖5 對抗訓(xùn)練結(jié)構(gòu)框圖Fig.5 The structure of adversarial training
具體的對抗訓(xùn)練優(yōu)化目標(biāo)如下:

其中,Lclean是對話系統(tǒng)原始的訓(xùn)練目標(biāo),當(dāng)輸入干凈上下文x時,解碼器能夠生成正確的信念跨度和應(yīng)答語句;Lnoise則是包含擾動的上下文x′及其對應(yīng)的信念跨度和應(yīng)答語句之間的損失;Ladv則是鼓勵上下文編碼器能夠生成盡量一致的隱層向量.
上下文編碼器作為生成器G,引入一個判別器D來區(qū)分Hx和Hx′.上下文編碼器的目標(biāo)是針對x和x′生成盡量相似的隱層向量,以混淆判別器D,而判別器D則盡量去區(qū)分這兩種隱層向量表示.G和D通過極小化極大算法進(jìn)行訓(xùn)練,其優(yōu)化目標(biāo)為:

本文采用多層感知機(jī)作為判別器,判別器根據(jù)輸入的隱層向量輸出分類分?jǐn)?shù),并嘗試將D(G(x))最大化,將D(G(x′)) 最小化.G和D的最終訓(xùn)練目標(biāo)是使得編碼器可以針對干凈數(shù)據(jù)x和噪聲數(shù)據(jù)x′進(jìn)行相似編碼表示,從而使得判別器D無法區(qū)分干凈數(shù)據(jù)和噪聲數(shù)據(jù)的隱層向量表示.
本文在兩種測試場景下(如圖6 所示)對所提方法的有效性進(jìn)行驗(yàn)證:1) 跨語言測試 (Crosstest),在這種場景下,對話系統(tǒng)接收通過機(jī)器翻譯系統(tǒng)翻譯之后的語句作為輸入,以評估對抗訓(xùn)練是否能夠讓對話模型更加魯棒;2) 源語言干凈測試(Mono-test),在這種場景下,對話系統(tǒng)接收原始干凈測試數(shù)據(jù)作為輸入,并評估對抗訓(xùn)練是否能使得模型在源語言干凈測試數(shù)據(jù)上具備更好的性能表現(xiàn).整體而言,本文的目標(biāo)是提升跨語言對話系統(tǒng)的魯棒性,而該目標(biāo)是以不損害對話系統(tǒng)在干凈數(shù)據(jù)上的性能為前提.本文認(rèn)為不應(yīng)該以降低在源語言上的系統(tǒng)性能為代價實(shí)現(xiàn)跨語言場景下的魯棒性提升.因此,本文旨在構(gòu)造一個能夠滿足包括源語言及機(jī)器翻譯系統(tǒng)所支持的其他語言需求的對話系統(tǒng).

圖6 兩種測試Fig.6 Two kinds of test
對話數(shù)據(jù)集.本文在CamRest676[3]和KVRET[18]兩個公開的任務(wù)型對話數(shù)據(jù)集上對本文所提方法進(jìn)行評估.其中,CamRest676 包含了餐館預(yù)定單一領(lǐng)域的676 個對話;而KVRET 則是一個多領(lǐng)域的多輪對話數(shù)據(jù)集,包括日程規(guī)劃、天氣信息查詢和導(dǎo)航三個領(lǐng)域.本文遵循原始論文中的數(shù)據(jù)劃分方式,數(shù)據(jù)的詳細(xì)信息見表1.

表1 數(shù)據(jù)集統(tǒng)計信息Table 1 Statistics of datasets
為進(jìn)行跨語言實(shí)驗(yàn),本文通過人工的方式將CamRest676 和KVRET 的測試集翻譯成中文.此外,為驗(yàn)證在其他語言對上的有效性,本文還將KVRET 的測試集翻譯至德語.為進(jìn)一步開展實(shí)驗(yàn),本文需要與上述兩種語言對相對應(yīng)的機(jī)器翻譯系統(tǒng),包括中英和德英雙向翻譯系統(tǒng).
對話模型.本文使用Lei 等[21]提出的TSCP 作為單語基線對話系統(tǒng).隱層向量和詞向量的維度d均設(shè)置為50 維.CamRest676 和KVRET 的詞表規(guī)模|V|分別為800 和1 400,min-batch 設(shè)置為32.本文使用Adam[38]優(yōu)化器進(jìn)行模型的參數(shù)更新,其學(xué)習(xí)率為0.003,衰減參數(shù)為0.5.在解碼過程中,CamRest676 和KVRET 均采用貪婪搜索策略(Greedy search).在訓(xùn)練過程中采用提前終止法(Early stopping)提高訓(xùn)練效率,在每一輪迭代過程中對上下文編碼器和判別器的參數(shù)進(jìn)行同步更新.對抗性訓(xùn)練過程中,CamRest676 和KVRET使用的詞表規(guī)模分別設(shè)置為1 800 和2 500.經(jīng)過在驗(yàn)證集上調(diào)參,CamRest676 和KVRET 上對抗訓(xùn)練的超參數(shù)λ分別設(shè)置為0.2 和0.1.
機(jī)器翻譯系統(tǒng).本文需要機(jī)器翻譯系統(tǒng)將用戶輸入從用戶語言翻譯至源語言,從而與對話系統(tǒng)進(jìn)行交互.此外還需要利用機(jī)器翻譯系統(tǒng)構(gòu)造三種粒度的噪聲對抗樣本.本文使用大約包含210 萬句對的LDC (Linguistic data consortium)雙語訓(xùn)練數(shù)據(jù)對中英翻譯系統(tǒng)(ZH→EN) 和英中翻譯系統(tǒng)(EN→ZH)進(jìn)行訓(xùn)練;使用大約包含200 萬句對的德英雙語訓(xùn)練數(shù)據(jù)對德英翻譯系統(tǒng)(DE→EN)和英德翻譯系統(tǒng)(EN→DE)進(jìn)行訓(xùn)練.上述翻譯系統(tǒng)均使用字節(jié)對編碼 (Byte pair encoding,BPE) 技術(shù)對訓(xùn)練數(shù)據(jù)進(jìn)行切分,學(xué)習(xí)30000 個融合操作,然后分別限制詞表為頻次最高的前30000 個亞詞.所有系統(tǒng)均采用transformer_base 設(shè)置.
評價指標(biāo).本文使用實(shí)體匹配率(Entity match rate,mat.)、成功率F1(SuccessF1) 和BLEU作為對話系統(tǒng)的三種自動評價指標(biāo).同時,與Mehri 等[39]類似,本文使用一個組合分?jǐn)?shù)(combined score) 作為總體評價指標(biāo).該指標(biāo)計算公式為:

中到英的跨語言實(shí)驗(yàn).為生成對抗樣本,首先需要構(gòu)造對應(yīng)粒度的噪聲.本文使用大約包含80萬句英語口語的數(shù)據(jù)集構(gòu)造詞匯級和短語級噪聲.在詞對齊之后,保留雙向詞匯翻譯概率均大于0.01的詞對作為詞匯級噪聲,保留滿足條件的短語對及雙向短語翻譯概率均大于0.01 的短語對作為短語級噪聲.對于句子級噪聲,則直接將對話訓(xùn)練數(shù)據(jù)中的用戶話語通過翻譯系統(tǒng)翻譯再回翻生成.本文使用以下幾種方法進(jìn)行實(shí)驗(yàn)對比.
1)隨機(jī)交換:通過隨機(jī)交換句子中兩個相鄰詞的位置生成對抗樣本,如 “Where is the nearest gas station?”和 “Where is the gas nearest station?”;
2)停用詞:通過刪除句子中的停用詞生成對抗樣本;
3)同義詞:通過同義詞典中的同義詞替換句子中的詞生成對抗樣本,本文使用WordNet 查找同義詞.
表2 和表3 分別給出了使用不同方法生成的對抗樣本在CamRest676 和KVRET 上的Cross-test和Mono-test 的實(shí)驗(yàn)結(jié)果.通過該實(shí)驗(yàn)結(jié)果,可以得出以下結(jié)論.

表2 CamRest676 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果Table 2 Experimental results on CamRest676

表3 KVRET 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果Table 3 Experimental results on KVRET
1) 機(jī)器翻譯的噪聲對于對話系統(tǒng)性能的影響很大.通過表2 和表3 中基線系統(tǒng)在跨語言測試集和源語言測試集上的性能表現(xiàn)(表2 第0 行和表3第0 行),可以發(fā)現(xiàn)當(dāng)使用機(jī)器翻譯作為橋梁翻譯用戶語句,再輸入到對話系統(tǒng)后,對話系統(tǒng)的性能下降明顯.在CamRest676 上,對話系統(tǒng)的性能從1.0767下降至0.7361;在KVRET 上,對話系統(tǒng)性能從1.0034下降至0.7382.
2) 本文方法能夠生成與翻譯噪聲更相關(guān)的對抗樣本,對于對話系統(tǒng)性能的提升更加明顯.在CamRest676 上,相比于隨機(jī)交換、停用詞、同義詞,本文方法在跨語言測試集上的效果提升更加顯著(表2 第1~3 行和第4~6 行),最高可提升至0.8231.在KVRET 上也有相同的效果(表3 第1~3行和第4~6 行).當(dāng)將詞匯-短語-句子三種級別的對抗樣本集成訓(xùn)練后,對話系統(tǒng)在跨語言測試集上取得了最佳效果(表2 第7 行和表3 第7 行).
3) 本文方法不僅可以提升對話系統(tǒng)處理跨語言輸入的性能,在源語言上還能取得與原始系統(tǒng)相當(dāng)?shù)乃?在某些情況下,還能超過原始系統(tǒng)處理源語言的性能.在CamRest676 上,使用三種級別對抗樣本集成訓(xùn)練后,對話系統(tǒng)的性能可從1.0767提升至1.0918 (表2 第0 行和第7 行).在KVRET上,使用三種級別對抗樣本集成訓(xùn)練后,相較于原始系統(tǒng),對話系統(tǒng)性能均有一定提升,最高可從1.0034 提升至1.0431.
德到英的跨語言實(shí)驗(yàn).本文在KVRET 數(shù)據(jù)集上還進(jìn)行了德語至英語的跨語言實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4 所示.實(shí)驗(yàn)設(shè)置與中文到英語的設(shè)置相同.通過實(shí)驗(yàn)結(jié)果可以看出,德語到英語的跨語言性能與中文到英語的性能具有相同的趨勢.使用本文提出的三種粒度的對抗樣本,可以顯著提升對話系統(tǒng)在跨語言場景下的性能,同時還能保證對話系統(tǒng)在源語言上的性能.

表4 KVRET 數(shù)據(jù)集上德到英的跨語言實(shí)驗(yàn)結(jié)果Table 4 Cross-lingual experimental results from German to English on KVRET
跨語言對話實(shí)驗(yàn)結(jié)果實(shí)例分析.表5 展示了三個中文到英語的跨語言對話實(shí)驗(yàn)結(jié)果實(shí)例,其中實(shí)例1 來自CamRest676 數(shù)據(jù)集,實(shí)例2 和實(shí)例3 來自KVRET 數(shù)據(jù)集.表5 分別展示了這三個實(shí)例在基線系統(tǒng)和本文所提多粒度方法上的跨語言實(shí)驗(yàn)結(jié)果(Cross-test)和源語言實(shí)驗(yàn)結(jié)果(Mono-test).在跨語言實(shí)驗(yàn)中,用戶輸入中文話語,經(jīng)過翻譯系統(tǒng)翻譯成英語話語后,輸入到英語單語對話系統(tǒng)中與對話系統(tǒng)進(jìn)行交互,生成回復(fù).從這三個實(shí)例可以看出,機(jī)器翻譯的過程會引入一些噪聲,使得對話系統(tǒng)無法正常工作.比如實(shí)例1 中,機(jī)器翻譯系統(tǒng)將用戶話語中的 “價位適中”翻譯成 “appropriate price”,而基線對話系統(tǒng)能夠處理的是 “moderately priced”,當(dāng)輸入翻譯系統(tǒng)生成的用戶話語后,對話系統(tǒng)不能正常回復(fù).使用本文所提多粒度對抗訓(xùn)練方法更新對話系統(tǒng)后,由于從詞匯-短語-句子三個粒度構(gòu)造了面向機(jī)器翻譯噪聲的對抗樣本,使得對話系統(tǒng)能夠更好地處理由機(jī)器翻譯引入的噪聲.除此之外,我們可以發(fā)現(xiàn),本文所提方法還能一定程度上提升對話系統(tǒng)生成回復(fù)的質(zhì)量(實(shí)例1 和實(shí)例3).

表5 跨語言對話實(shí)驗(yàn)結(jié)果實(shí)例Table 5 Examples of cross-lingual experimental results
翻譯系統(tǒng)累計錯誤分析.對話系統(tǒng)接受翻譯系統(tǒng)的翻譯結(jié)果作為輸入并生成回復(fù).為對比翻譯噪聲對于對話系統(tǒng)性能的影響,本文利用CamRest676測試集對翻譯系統(tǒng)引入的噪聲進(jìn)行了詳細(xì)分析.從CamRest676 測試集中隨機(jī)選取60 個對話數(shù)據(jù),人工分析了英語測試集和經(jīng)過中英翻譯系統(tǒng)翻譯生成的英語測試集之間的區(qū)別,以及這些區(qū)別對于對話系統(tǒng)性能的影響.這60 個對話總共包含241 輪用戶輸入,去掉用戶表示感謝的輪數(shù)之后,本文總共分析了177 輪.通過對數(shù)據(jù)集進(jìn)行分析,將翻譯現(xiàn)象歸類為以下4 種類別.表6 分別給出了類別1、類別2 和類別3 的實(shí)例.

表6 翻譯現(xiàn)象類別實(shí)例Table 6 Categories of translation phenomena
類別1:關(guān)鍵詞語義錯誤.這里關(guān)鍵詞指的是與對話系統(tǒng)信念跨度相關(guān)的詞匯.
類別2:關(guān)鍵詞表達(dá)不一致.
類別3:未登錄非關(guān)鍵詞.這里的未登錄非關(guān)鍵詞指的是當(dāng)關(guān)鍵詞翻譯正確時,不在基線系統(tǒng)詞表中的詞.
類別4:其他.
本文對177 輪經(jīng)過機(jī)器翻譯系統(tǒng)翻譯之后的用戶話語進(jìn)行分析,該數(shù)據(jù)在以上4 種類別上的分布情況如表7 所示.

表7 翻譯系統(tǒng)噪聲類型分析Table 7 Noise type analysis of machine translation
基線系統(tǒng)和本文所提多粒度方法在這4 個類別上的性能如表8 所示.從基線系統(tǒng)在跨語言測試和源語言測試上的表現(xiàn)可以發(fā)現(xiàn),這4 個類別的翻譯現(xiàn)象對于單語對話系統(tǒng)的性能都是有影響的.根據(jù)性能下降的程度可以發(fā)現(xiàn),類別1 的影響 > 類別2的影響 > 類別3 的影響 > 類別4 的影響.這主要是由于關(guān)鍵詞對于信念跨度和回復(fù)生成都非常重要,關(guān)鍵詞翻譯錯誤會導(dǎo)致對話系統(tǒng)難以正常工作.而類別3 性能下降的主要原因是這些非關(guān)鍵詞是未登錄詞,也會對單語對話系統(tǒng)的性能造成一定的影響.

表8 4 種翻譯現(xiàn)象上的實(shí)驗(yàn)結(jié)果Table 8 Experimental results on four translation phenomena
從本文所提方法的實(shí)驗(yàn)結(jié)果可以看出,本文所提方法主要提升了類別1 和類別2 的性能,而這兩種類別也是對對話系統(tǒng)性能影響最大的.后續(xù)可以通過有針對性地生成更多的多粒度對抗樣本來提升對話系統(tǒng)處理類別3 和類別4 的能力.因此,本文所提多粒度對抗訓(xùn)練方法主要通過在詞、短語、句子三個粒度生成針對機(jī)器翻譯噪聲的對抗樣本,并利用對抗樣本更新對話系統(tǒng),使得對話系統(tǒng)能夠更好地處理由翻譯系統(tǒng)翻譯生成的話語.
在之前的實(shí)驗(yàn)中,本文利用TSCP 作為單語基線對話系統(tǒng)進(jìn)行實(shí)驗(yàn),驗(yàn)證了本文所提出的多粒度對抗樣本及對抗訓(xùn)練的有效性.為進(jìn)一步驗(yàn)證本文所提方法的有效性,本文還使用了以下兩個端到端任務(wù)型對話系統(tǒng)作為單語基線對話系統(tǒng)進(jìn)行實(shí)驗(yàn).
1) SEDST[40]:該模型與TSCP 具有相同的模型結(jié)構(gòu).所不同的是,該模型對信念跨度的訓(xùn)練引入了后驗(yàn)正則化,使得狀態(tài)追蹤的訓(xùn)練更加穩(wěn)定.
2) LABES-S2S[41]:該模型是一個概率對話模型,其中信念狀態(tài)(Belief states)使用離散隱變量進(jìn)行表示,并與系統(tǒng)響應(yīng)進(jìn)行聯(lián)合建模.具體實(shí)現(xiàn)過程中,使用了兩階段序列到序列方法.
本文在CamRest676 數(shù)據(jù)集上進(jìn)行了中文到英語的跨語言實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表9 所示.其中,第0行和第1 行顯示的是使用SEDST 作為單語基線對話系統(tǒng)的實(shí)驗(yàn)結(jié)果,第2 行和第3 行顯示的是使用LABES-S2S 作為單語基線對話系統(tǒng)的實(shí)驗(yàn)結(jié)果.實(shí)驗(yàn)結(jié)果表明,使用本文提出的三種粒度的對抗樣本,可以顯著提升對話系統(tǒng)在跨語言場景下的性能,同時還能保證對話系統(tǒng)在源語言上的性能.

表9 CamRest676 數(shù)據(jù)集上使用其他單語基線對話系統(tǒng)的跨語言實(shí)驗(yàn)結(jié)果Table 9 Cross-lingual experimental results using other monolingual baseline dialogue systems on CamRest676
本文提出了面向跨語言對話系統(tǒng)的多粒度對抗訓(xùn)練的方法,通過機(jī)器翻譯系統(tǒng)和源語言對話數(shù)據(jù)構(gòu)造詞匯-短語-句子三種粒度的噪聲數(shù)據(jù),并利用對抗訓(xùn)練提升對話系統(tǒng)在跨語言場景下的魯棒性.在CamRest676 和KVRET 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果驗(yàn)證了本文所提方法的有效性,本文方法不僅可以提升對話系統(tǒng)在跨語言場景下的魯棒性,還能提升對話系統(tǒng)在干凈數(shù)據(jù)下的性能.