林健成,藺曉川
(暨南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,廣東 廣州 510000)
隨著用戶對(duì)人機(jī)對(duì)話的需求不斷演變,越來越多的研究者在該領(lǐng)域開展廣泛的研究。為了滿足用戶情感陪伴的需求,微軟亞太研究院推出了微軟小冰[1],而為了通過對(duì)話完成特定的任務(wù),如電商、咨詢等,阿里團(tuán)隊(duì)推出了阿里小蜜[2]?;谏疃葘W(xué)習(xí)的預(yù)訓(xùn)練模型已經(jīng)在對(duì)話系統(tǒng)中被廣泛使用,如DialoGPT[3],這些模型能夠在沒有特定背景的閑聊中取得近似人類聊天的表現(xiàn)水平。在上述提及的對(duì)話系統(tǒng)中,都引入了一些外部知識(shí)源,如知識(shí)圖譜[4]、新聞文章[5]等。這些外部知識(shí)源能夠幫助對(duì)話系統(tǒng)生成符合語境且與客觀事實(shí)相一致的回復(fù)。
知識(shí)對(duì)話系統(tǒng)包括知識(shí)庫的構(gòu)建、知識(shí)選擇[6]和知識(shí)對(duì)話生成[7]三個(gè)部分。其中,知識(shí)庫的類型包括知識(shí)圖譜、文章片段等。在知識(shí)對(duì)話中知識(shí)庫是一個(gè)與特定領(lǐng)域相關(guān)的語料集合,主要依靠人工標(biāo)注和信息抽取等方式來構(gòu)建和維護(hù)。知識(shí)選擇指的是在知識(shí)對(duì)話中,檢索和選擇所需要的知識(shí)。知識(shí)對(duì)話生成則是指根據(jù)給定的知識(shí),生成一個(gè)符合聊天上下文的回復(fù)。圖1是一個(gè)具體的知識(shí)對(duì)話例子,用戶談及電影《我是山姆》,對(duì)話系統(tǒng)不僅生成了與電影話題相關(guān)的回復(fù),并且正確引用了《我是山姆》的信息。
圖1 知識(shí)對(duì)話樣例
目前知識(shí)對(duì)話系統(tǒng)的研究較少考慮知識(shí)對(duì)話系統(tǒng)的在線零資源更新的情況。然而在實(shí)際應(yīng)用中,及時(shí)更新知識(shí)對(duì)話系統(tǒng)的參數(shù),使得其與時(shí)俱進(jìn)是至關(guān)重要的。在模型的在線更新中,需要一個(gè)結(jié)構(gòu)為<知識(shí),對(duì)話>的數(shù)據(jù)集,其中對(duì)話部分結(jié)構(gòu)為<上下文,回復(fù)>。在實(shí)際環(huán)境中,我們可以通過網(wǎng)絡(luò)爬蟲等獲取相關(guān)的知識(shí)描述。但由于對(duì)話部分需要與對(duì)應(yīng)的知識(shí)相關(guān),所以很難自動(dòng)收集,并且人工標(biāo)注的成本過于巨大,造成了知識(shí)對(duì)話系統(tǒng)在線更新遭遇零資源可用的問題。
如圖2所示,對(duì)話語料零資源可用的情況分兩種: ①對(duì)話語料整體缺失。因?yàn)橛糜谠诰€更新的語料
圖2 在線更新遇到的問題與緩解方法
本文的貢獻(xiàn)如下: ①使用合成數(shù)據(jù)在零資源的情況下進(jìn)行模型在線更新,驗(yàn)證了其可行性; ②針對(duì)不同的場(chǎng)景,提出了不同的合成數(shù)據(jù)生成方法; ③實(shí)驗(yàn)表明,本文方法接近使用人工標(biāo)注數(shù)據(jù)進(jìn)行在線更新的效果。
近年來,由于深度學(xué)習(xí)在多個(gè)領(lǐng)域取得了顯著成效,研究人員開始將深度學(xué)習(xí)使用在知識(shí)對(duì)話系統(tǒng)中。當(dāng)前的BERT[9]和GPT-2[10]等算法使用大量數(shù)據(jù)進(jìn)行訓(xùn)練,在對(duì)話領(lǐng)域取得十分突出的成果?;谶@兩種模型,Google推出Meena[11],F(xiàn)acebook推出Blenderbot[12]等對(duì)話預(yù)訓(xùn)練模型,進(jìn)一步推動(dòng)了人機(jī)對(duì)話的研究進(jìn)展。在這個(gè)過程中,研究人員發(fā)現(xiàn)知識(shí)集成到對(duì)話生成中可以使生成的結(jié)果更加多樣化和可控。文獻(xiàn)[13]使用wiki作為知識(shí)庫,進(jìn)行知識(shí)對(duì)話生成,使得回復(fù)更具備信息量;文獻(xiàn)[14]將人設(shè)信息作為一種額外知識(shí),使模型基于這些信息進(jìn)行對(duì)話,使得對(duì)話內(nèi)容更加可控;文獻(xiàn)[15]依據(jù)給定的圖片進(jìn)行多模態(tài)對(duì)話,使得對(duì)話生成的結(jié)果更符合圖片內(nèi)容。雖然上述方法都在給定的知識(shí)背景下取得一定進(jìn)展,但未考慮模型在新知識(shí)上的表現(xiàn)。比如當(dāng)模型遇上不在訓(xùn)練集中的實(shí)體時(shí),模型表現(xiàn)會(huì)有所下降,尤其是當(dāng)新實(shí)體與訓(xùn)練集存在領(lǐng)域上的差異時(shí),模型甚至無法繼續(xù)使用。目前,為了解決模型更新前后領(lǐng)域可能不一致的問題,文獻(xiàn)[16]提出一種遷移學(xué)習(xí)的方法,文獻(xiàn)[17]提出使用不同的adaptor來適應(yīng)前后領(lǐng)域存在差異的情況。文獻(xiàn)[16-17]都緩解了模型更新前后領(lǐng)域沖突的情況,但都假設(shè)新領(lǐng)域的數(shù)據(jù)充足,而現(xiàn)實(shí)情況并不總是能滿足該假設(shè)。這些更新方法需要離線更新模型再部署,造成人力成本、時(shí)間成本較大。因此研究知識(shí)對(duì)話系統(tǒng)零資源在線更新是有必要的。Facebook[18-19],以及文獻(xiàn)[20]提出在線交互學(xué)習(xí)方法,利用人類交互數(shù)據(jù)進(jìn)行模型更新,雖然它們能夠滿足在線更新的條件,但其用于學(xué)習(xí)的數(shù)據(jù)仍然具有收集成本巨大、噪聲大等缺點(diǎn),且該方法并沒有考慮知識(shí)對(duì)話的場(chǎng)景,只考慮了無背景閑聊的場(chǎng)景。在知識(shí)對(duì)話在線更新的場(chǎng)景中,對(duì)話語料需要和特定的知識(shí)背景相關(guān),這導(dǎo)致了想自動(dòng)地收集到大量的數(shù)據(jù)是十分困難的。針對(duì)數(shù)據(jù)資源缺乏的問題,文獻(xiàn)[21]使用RNN對(duì)上下文編碼器和知識(shí)編碼器的預(yù)訓(xùn)練在少資源的知識(shí)對(duì)話系統(tǒng)上取得進(jìn)步。文獻(xiàn)[22]使用預(yù)訓(xùn)練模型與合成數(shù)據(jù)等方式來緩解對(duì)話生成模型對(duì)人工標(biāo)注數(shù)據(jù)的依賴,在一定程度上減輕了知識(shí)對(duì)話系統(tǒng)的學(xué)習(xí)對(duì)知識(shí)標(biāo)注的依賴。但上述兩種方法只考慮了知識(shí)對(duì)話模型的初次學(xué)習(xí),并沒有考慮模型后續(xù)在線更新中數(shù)據(jù)零資源的問題,不能直接用到知識(shí)對(duì)話零資源更新的問題上。同時(shí),上述研究?jī)?nèi)容主要集中在英語領(lǐng)域,在中文領(lǐng)域的知識(shí)對(duì)話系統(tǒng)研究較為缺乏,需要研究人員彌補(bǔ)這個(gè)缺陷。
本節(jié)中先陳述任務(wù)描述,然后分別描述不同情況下合成數(shù)據(jù)生成的策略。
用于知識(shí)對(duì)話系統(tǒng)在線更新的語料結(jié)構(gòu)由多個(gè)
在知識(shí)對(duì)話系統(tǒng)的在線更新中,需要與新知識(shí)K′相關(guān)的的語料
在實(shí)際的知識(shí)對(duì)話系統(tǒng)的在線更新中,對(duì)話語料零資源,最常見的情況是對(duì)話語料
表1 簡(jiǎn)單模板示例
其中,{entity}、{attr}、{value}分別對(duì)應(yīng)ki中的Entity、Attr、Value三個(gè)部分。通過對(duì)新的知識(shí)K′進(jìn)行遍歷,在遍歷過程中對(duì)模板進(jìn)行填充,即可生成批量的合成數(shù)據(jù)。
在知識(shí)對(duì)話系統(tǒng)的應(yīng)用過程中,除了與特定知識(shí)相關(guān)外,用戶也可能與其進(jìn)行閑聊。在閑聊中,回復(fù)是否多樣化、是否平滑地銜接上下文成為主要的目的。模板生成數(shù)據(jù)除樣式缺乏多樣性外,對(duì)話的銜接和遞進(jìn)也較差,不利于模型在線更新后使用。與模板特性相反的是,生成模型具有靈活、生成結(jié)果多樣化等優(yōu)點(diǎn),在NLP任務(wù)中得到了廣泛使用。模型可以通過指定的上下文來完成問答、對(duì)話生成、文章續(xù)寫等功能。DialoGPT是微軟將Transformer結(jié)構(gòu)應(yīng)用到對(duì)話生成任務(wù)中的生成模型,其在對(duì)話生成任務(wù)上取得穩(wěn)健的效果。為了使生成的合成數(shù)據(jù)符合閑聊的場(chǎng)景,我們進(jìn)一步將模板和DialoGPT模型進(jìn)行結(jié)合。
我們先使用模板生成一個(gè)關(guān)于ki的對(duì)話對(duì),然后使用DialoGPT模型續(xù)寫該對(duì)話,重復(fù)該過程至對(duì)話K’中的每一個(gè)ki遍歷完畢。
表2中Response的白體字部分使用模板生成,而粗體部分則是由DialoGPT模型續(xù)寫而成。該做法能使得回復(fù)在正確引用知識(shí)的同時(shí),更自然和更具有多樣性。
表2 簡(jiǎn)單模板示例
DialoGPT是用于對(duì)話生成的一個(gè)預(yù)訓(xùn)練模型。其輸入為詞語token embedding(te)和position embedding(pe)的和。
E(x)是tokenx的Embedding表示,P(x)是位置為x的Embedding表示。輸入的向量經(jīng)過多層的Transformer得到最終的隱空間表示,并使用最后一層的Transformer進(jìn)行句子概率的建模:
式(4)中Ht為第t層的隱變量輸入,Ot+1為該層的輸出,其中O0為式(1)中的Input。
除此之外,在模型的在線更新過程中,災(zāi)難性遺忘是需要解決的一個(gè)重要的開放性問題。在本文中,使用了一種知識(shí)保留的方法來緩解該問題。雖然新對(duì)話領(lǐng)域的資源為零,但原對(duì)話領(lǐng)域的仍然可用。因此我們?cè)谏傻暮铣蓴?shù)據(jù)中混入了跟合成數(shù)據(jù)的比例為a的原領(lǐng)域的數(shù)據(jù)。模型在混合后對(duì)數(shù)據(jù)進(jìn)行跨域?qū)W習(xí)。在我們的實(shí)驗(yàn)中,a的取值為1時(shí),模型的在線更新表現(xiàn)效果最好。
雖然對(duì)話語料很難收集,但網(wǎng)絡(luò)上仍有一些不成對(duì)文本可以作為對(duì)話的回復(fù)使用,比如一些用戶對(duì)某部電影的評(píng)論。這種情形我們稱其為上下文缺失。換言之,對(duì)于一些領(lǐng)域,除了新知識(shí)K′外,我們也能獲取可作為回復(fù)R′的語料。但是由于
在該場(chǎng)景下,我們使用檢索模型和過濾算法,在閑聊數(shù)據(jù)集LCCC[23]上進(jìn)行檢索。用檢索的結(jié)果來作為C′,從而使得模型可以正常的建模P(R′|C′,K′)。該策略的合成數(shù)據(jù)的構(gòu)造算法具體如下: ①先在LCCC數(shù)據(jù)集上根據(jù)(C,R)進(jìn)行索引構(gòu)建; ②我們?cè)谏衔奶峒暗牟黄ヅ鋽?shù)據(jù)中抽取含有知識(shí)的文本,作為R′。使用BM25算法在該數(shù)據(jù)庫上進(jìn)行檢索,獲取R與R’最為相似的50數(shù)據(jù)對(duì)集合{(C,R)i|i=0,…,50}; ③是用過濾算法過濾掉含有人名、敏感詞的數(shù)據(jù)對(duì)(C,R)i; ④將經(jīng)過過濾的數(shù)據(jù)對(duì)中的C與R′輸入BERT進(jìn)行打分,將得分第一的C視作C′,構(gòu)成合成數(shù)據(jù)。
其中BERT將對(duì)話的上下文和候選的kesponse作為輸入。其中原始的kesponse作為正例記作r, 在同一語料中隨機(jī)抽取樣本,作為負(fù)樣本,記作r-,按照以下?lián)p失函數(shù)在 LCCC數(shù)據(jù)集上進(jìn)行優(yōu)化,如式(6)、式(7)所示。
式(7)中,Wt和bt是全連接層的參數(shù),其中,r是每個(gè)對(duì)話中對(duì)應(yīng)的回復(fù),將匹配的(c,r)的標(biāo)簽設(shè)定為label=1,而r-是在同一語料、[不同對(duì)話上下文中隨機(jī)抽取的回復(fù),以此作為負(fù)樣本,其標(biāo)簽設(shè)定為 label = 0。用同樣的方法計(jì)算p(label=0|c,r),整體語義匹配問題轉(zhuǎn)化成文本二分類問題,可用以下?lián)p失函數(shù)對(duì)模型進(jìn)行優(yōu)化,如式(8)所示。
(8)
在我們的實(shí)驗(yàn)中,使用了預(yù)訓(xùn)練模型BERT和DialoGPT。DialoGPT共有12層Transformer。每一層Transformer具有12個(gè)head,每一個(gè)hidden state的輸出為768維向量。模型的訓(xùn)練使用交叉熵作為目標(biāo)函數(shù),以1e-4的學(xué)習(xí)率使用Adam進(jìn)行優(yōu)化。在4.2節(jié)中提出的構(gòu)建Pseudo Data方法中使用的DialoGPT使用清華公開的數(shù)據(jù)集LCCC進(jìn)行訓(xùn)練。我們使用DialoGPT在知識(shí)對(duì)話數(shù)據(jù)集上進(jìn)行微調(diào),作為我們用于進(jìn)行實(shí)驗(yàn)的知識(shí)對(duì)話系統(tǒng)。我們使用的BERT結(jié)構(gòu)與上述提及的DialoGPT相似,不同點(diǎn)在于使用的損失函數(shù)不同。同時(shí),本文使用的BERT為了學(xué)到可用于通用對(duì)話語義匹配的特征,在LCCC上進(jìn)行訓(xùn)練。
我們的實(shí)驗(yàn)在清華大學(xué)公開的多領(lǐng)域數(shù)據(jù)集KdConv上進(jìn)行實(shí)驗(yàn)。KdConv是一個(gè)覆蓋電影、音樂、旅游三個(gè)領(lǐng)域的對(duì)話數(shù)據(jù)。該數(shù)據(jù)集包括了movie、music、travel三個(gè)領(lǐng)域的知識(shí)對(duì)話數(shù)據(jù),86K的數(shù)據(jù)樣本、句子級(jí)別的知識(shí)標(biāo)注。在知識(shí)部分,共包括13 072個(gè)實(shí)體,9 115個(gè)關(guān)系,總計(jì)157 029個(gè)知識(shí)三元組,如表3所示。
表3 KdConv數(shù)據(jù)統(tǒng)計(jì)
實(shí)驗(yàn)中,我們假設(shè)模型的在線更新在前后不同主題的語料上進(jìn)行,這也是符合現(xiàn)實(shí)的,因?yàn)楝F(xiàn)實(shí)增長(zhǎng)的知識(shí)是多種多樣的。為了展示我們生成的合成數(shù)據(jù),可以幫助知識(shí)對(duì)話模型在對(duì)話語料零資源的情況下實(shí)現(xiàn)在線更新,我們?cè)O(shè)計(jì)了增量實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)兩部分。增量實(shí)驗(yàn)部分,我們以KdConv測(cè)試集為總數(shù)據(jù)量,0.25為一個(gè)步長(zhǎng),模擬現(xiàn)實(shí)中知識(shí)逐漸增長(zhǎng)的過程。通過增量實(shí)驗(yàn)去探索我們的知識(shí)對(duì)話系統(tǒng)是如何適應(yīng)知識(shí)的不斷增長(zhǎng),以及說明模型在不同資源量下合成數(shù)據(jù)和人工標(biāo)注數(shù)據(jù)對(duì)模型在線學(xué)習(xí)的影響。在對(duì)比實(shí)驗(yàn)上我們采用如下幾個(gè)對(duì)比算法,用于衡量我們提出的方法各個(gè)部件對(duì)算法的影響。
(1)DA(DataAugmentation): 我們采用數(shù)據(jù)增強(qiáng)的方法來構(gòu)建Baseline。由于本文假設(shè)在線更新時(shí),新知識(shí)的對(duì)話語料可用資源為零,因此我們的數(shù)據(jù)增舊知識(shí)上的數(shù)據(jù)上進(jìn)行。在數(shù)據(jù)增強(qiáng)算法中,常用的一種方法是使用同義詞進(jìn)行替換,以達(dá)到表達(dá)方式的多樣化。在該文知識(shí)對(duì)話場(chǎng)景中,我們?cè)趯?duì)話數(shù)據(jù)上使用新知識(shí)的實(shí)體替換舊對(duì)話數(shù)據(jù)上知識(shí)實(shí)體的方法進(jìn)行數(shù)據(jù)強(qiáng)化。
(2)DialoGPT: 我們的算法使用DialoGPT進(jìn)行建模,所以使用在通用對(duì)話數(shù)據(jù)集LCCC上進(jìn)行訓(xùn)練的DialoGPT作為實(shí)驗(yàn)的baseline。
(3)GPT_movie: 該模型是DialoGPT在電影領(lǐng)域的知識(shí)對(duì)話數(shù)據(jù)上進(jìn)行微調(diào),具有一定的知識(shí)對(duì)話能力。
(4)RR(ResponseRewrite): 美團(tuán)聯(lián)合騰訊發(fā)表的論文[24]提出了一種利用同義詞表和語言模型對(duì)對(duì)話語料中的Response進(jìn)行重寫。通過該方法構(gòu)造的合成數(shù)據(jù)可以緩解不同對(duì)話風(fēng)格的語料稀少難收集的問題。根據(jù)該論文的介紹,其方法在自動(dòng)評(píng)估和人工評(píng)估中達(dá)到了當(dāng)前的最佳水平(SOTA)。本論文將不同領(lǐng)域的對(duì)話數(shù)據(jù)視作不同的風(fēng)格,在該方法上進(jìn)行適配,并以此作為實(shí)驗(yàn)的Baseline。
(5)GPT_movie+T(Our): 該模型在GPT_movie上加入特定領(lǐng)域的的模板數(shù)據(jù)進(jìn)行訓(xùn)練。
(6)GPT_movie+C(Our): 該模型在GPT_movie上加入特定領(lǐng)域合成的閑聊數(shù)據(jù)進(jìn)行訓(xùn)練。
(7)GPT_movie+T+OLD(Our): 這個(gè)模型使用特定領(lǐng)域的模板數(shù)據(jù)和等量的舊領(lǐng)域數(shù)據(jù)進(jìn)行在線更新。
(8)GPT_R(Our): 這個(gè)模型針對(duì)上下文缺失的場(chǎng)景,我們使用目標(biāo)領(lǐng)域上人工標(biāo)注的對(duì)話回復(fù)視為R′,通過檢索模型構(gòu)造其缺失的上下文,最終生成合成數(shù)據(jù)。
(9)GPT_human: 該模型使用對(duì)應(yīng)領(lǐng)域中人類標(biāo)注數(shù)據(jù)進(jìn)行在線更新,是我們提出的方法應(yīng)該逼近的模型。
以上所述的設(shè)置中,GPT_movie+T(Our)、GPT_movie+C(Our)、GPT_movie+T+OLD(Our)為利用本文針對(duì)對(duì)話缺失的情況提出由不同設(shè)置生成的合成數(shù)據(jù)進(jìn)行在線更新后的模型。而GPT_R(Our)則是使用本文針對(duì)上下文缺失情況提出生成策略生成的合成數(shù)據(jù)進(jìn)行在線更新后的模型。
在實(shí)驗(yàn)中,我們使用如下指標(biāo)進(jìn)行模型性能的衡量。
(1)PPL(Perplexity): 該指標(biāo)用來衡量生成的回復(fù)的語言流暢程度,PPL取值越小越好。
(2)Coverage:為了衡量生成的回復(fù)是否正確并充分地利用了給定的知識(shí)文本,我們首先使用開源工具jieba進(jìn)行中文分詞。分詞后使用word-leval級(jí)別的token計(jì)算生成的response和給定知識(shí)的文本描述的程度。
(9)
其中,|V|表示給定知識(shí)描述K的token個(gè)數(shù)。|v|表示生成的對(duì)話回復(fù)中的token與給定知識(shí)的token交集大小。
(3)BagOfWordScore(BoW): 讓模型學(xué)習(xí)使用知識(shí)內(nèi)容進(jìn)行表達(dá)是十分中重要的。涉及不同主題的數(shù)據(jù)進(jìn)行在線更新后的模型,仍有一定可能會(huì)混肴新知識(shí)和舊知識(shí)所對(duì)應(yīng)的一些概念。為了衡量合成數(shù)據(jù)對(duì)模型這方面的能力的影響,我們使用Bag of Word Score對(duì)模的這一能力進(jìn)行評(píng)測(cè)。Bag of Word Score的具體計(jì)算如下: ①首先采用TF-IDF算法計(jì)算出各領(lǐng)域的關(guān)鍵詞,將得分前10的關(guān)鍵詞作為候選集; ②然后人工在該候選集中挑選出5個(gè)與領(lǐng)域主題最為貼切的主題詞。具體的主題詞如表4所示。③當(dāng)生成回復(fù)含有某個(gè)主題的主題詞時(shí),積累1分。如果三個(gè)主題的主題詞都不包括,則記為主題無關(guān)。在測(cè)試集上首先使用模型進(jìn)行回復(fù)生成,然后對(duì)整個(gè)生成結(jié)果進(jìn)行計(jì)算。在計(jì)算的最后對(duì)電影、音樂、旅行、主題無關(guān)四個(gè)得分進(jìn)行歸一化。由于生成結(jié)果具有隨機(jī)性,后續(xù)實(shí)驗(yàn)結(jié)果均是三次實(shí)驗(yàn)取平均后的結(jié)果。
表4 主題詞展示
我們使用該指標(biāo)在人類標(biāo)注數(shù)據(jù)上進(jìn)行計(jì)算,結(jié)果如表5所示。其結(jié)果表明,在真實(shí)的人類對(duì)話中有大量的主題無關(guān)語句,比如用于打招呼、道謝等語句。而剔除主題無關(guān)的語句后,剩下的語句表現(xiàn)出明顯的主題傾向且符合對(duì)應(yīng)的主題。這表明該指標(biāo)能有效表明一個(gè)回復(fù)集合的主題傾向,進(jìn)而可以評(píng)測(cè)模型生成的回復(fù)的主題傾向。下文中,我們使用BoW_movie, BoW_music, BoW_travel, BoW_natural分別表示movie,music,travel三種傾向和與主題無關(guān)的分?jǐn)?shù)。
表5 人工標(biāo)注數(shù)據(jù)的BoW分?jǐn)?shù)
實(shí)驗(yàn)結(jié)果如圖3、圖4所示。增量實(shí)驗(yàn)表明,本文提出的各種合成數(shù)據(jù)都能使得模型有效地進(jìn)行在線更新。從圖中可以看出,以0.25為步長(zhǎng)增長(zhǎng)的數(shù)據(jù),在每次遞增后都能有效減少PPL。因?yàn)楹铣蓴?shù)據(jù)中含有噪聲等因素,其PPL下降曲線相比使用人工標(biāo)注數(shù)據(jù)進(jìn)行跨域?qū)W習(xí)的曲線下降起伏較大,但隨著數(shù)據(jù)量的增大,使用合成數(shù)據(jù)進(jìn)行訓(xùn)練的模型依然可以有效提升模型的表現(xiàn)性能,但總體仍然呈現(xiàn)下降的趨勢(shì)??紤]到災(zāi)難性遺忘而提出的GPT_movie+T+OLD(Our)取得接近使用人工標(biāo)注數(shù)據(jù)的水平。同時(shí),為了應(yīng)對(duì)上下文缺失而提出的GPT_R(Our),性能表現(xiàn)達(dá)到全部策略的最佳。這表明,如果不匹配數(shù)據(jù)可得,那么充分利用這些缺失上下文的語料能夠有效提升模型的跨域?qū)W習(xí)能力。這是因?yàn)?,這些不匹配的上下文仍屬于人類自然產(chǎn)生的語句,具有更自然的表達(dá)方式。此外,對(duì)比不同目標(biāo)領(lǐng)域的在線更新(從電影到音樂和從電影到旅游),我們提出的基于合成數(shù)據(jù)的在線更新方法不依賴于跨域?qū)W習(xí)前后是否具有領(lǐng)域相似性,其具有一定的普適性。
圖3 使用音樂領(lǐng)域數(shù)據(jù)進(jìn)行在線更新
圖4 使用旅游領(lǐng)域數(shù)據(jù)進(jìn)行在線更新
如表6、表7所示,經(jīng)過對(duì)比實(shí)驗(yàn),我們發(fā)現(xiàn)本文提出的合成數(shù)據(jù)的生成方法生成的合成數(shù)據(jù)都能有效實(shí)現(xiàn)知識(shí)對(duì)話系統(tǒng)的在線更新。對(duì)比數(shù)據(jù)增廣方法(DA),我們的方法在主題傾向方面表現(xiàn)得更好。詞替換等常見數(shù)據(jù)增廣方法只能在訓(xùn)練語料可能的情況下進(jìn)行。據(jù)我們分析,這是因?yàn)樵谕瓿尚骂I(lǐng)域知識(shí)對(duì)舊領(lǐng)域知識(shí)替換后,語句上一些無關(guān)知識(shí)的詞語并不會(huì)被替換,而這些詞語往往跟主題有關(guān)。比如“電影”“主演”等詞語與具體的實(shí)體無關(guān),卻與主題高度相關(guān)。由于該原因,導(dǎo)致了使用常用的數(shù)據(jù)增廣方法進(jìn)行跨域?qū)W習(xí)的模型,并不能學(xué)會(huì)新領(lǐng)域上特定的表達(dá)方式。比如從電影領(lǐng)域到音樂領(lǐng)域,使用DA進(jìn)行跨域?qū)W習(xí)的模型會(huì)將“音樂專輯”實(shí)體視作“電影”實(shí)體進(jìn)行表達(dá)。正如表中BoW_movie所示,在模型在線更新后生成的語料中,仍有12%或20%傾向于原有領(lǐng)域。而使用我們生成的合成數(shù)據(jù)進(jìn)行的跨域?qū)W習(xí),則只有少于8%的傾向。尤其是在不相似的領(lǐng)域進(jìn)行在線更新,錯(cuò)誤的主題傾向大幅度減少。
表6 使用音樂領(lǐng)域數(shù)據(jù)進(jìn)行在線更新
表7 使用旅游領(lǐng)域數(shù)據(jù)進(jìn)行在線更新
對(duì)比其他基線方法,雖然DialoGPT使用的大規(guī)模的閑聊數(shù)據(jù)LCCC中包括了廣泛的聊天話題,但模型并沒有學(xué)會(huì)在特定領(lǐng)域使用知識(shí)進(jìn)行對(duì)話的能力。在KdConv上各項(xiàng)指標(biāo),尤其是知識(shí)覆蓋率上并不理想。而經(jīng)過movie領(lǐng)域的數(shù)據(jù)進(jìn)行微調(diào)得到的DialoGPT_movie則學(xué)到了一定的知識(shí)利用能力。但正如表中數(shù)據(jù)所示,這些能力與對(duì)話領(lǐng)域相關(guān),在與原領(lǐng)域不相似的旅游領(lǐng)域上的表現(xiàn)要遠(yuǎn)遠(yuǎn)差于跟原領(lǐng)域相似的音樂領(lǐng)域上的性能。在音樂領(lǐng)域,DialoGPT_movie的知識(shí)覆蓋率為51%,而在旅游領(lǐng)域上,知識(shí)覆蓋率下降至34%。同時(shí),在音樂領(lǐng)域生成的回復(fù)以27%傾向于對(duì)應(yīng)的主題,而在旅游領(lǐng)域則只有5%。而使用我們生成的合成數(shù)據(jù)進(jìn)行跨域?qū)W習(xí)后,各項(xiàng)數(shù)據(jù)都能超越DialoGPT_movie,說明了本文方法的有效性。作為SOTA的RR,因?yàn)榭紤]同義詞表對(duì)Response進(jìn)行重寫操作,在PPL、BoW等指標(biāo)上顯著優(yōu)于其他Baseline,略優(yōu)于本文方法。該方法即使使用了語言模型來保證重寫后數(shù)據(jù)的語法通順,也不能完全避免該問題,而我們提出的方法使用人類設(shè)計(jì)的模板或正常對(duì)話數(shù)據(jù),因而在PPL上優(yōu)于RR。同時(shí),RR需要在模型更新前知道新數(shù)據(jù)所屬的領(lǐng)域以便維護(hù)同義詞表, 其通用性不如本文提出的方法。
對(duì)比我們提出的各種方法,每一種方法都適合特定的場(chǎng)景。比如我們只考慮問答場(chǎng)景而提出的GPT_movie+T(Our),在知識(shí)覆蓋率上超越使用人類數(shù)據(jù)進(jìn)行在線更新的模型,因?yàn)閱柎饒?chǎng)景下更在意知識(shí)是否正確使用,但對(duì)話的流暢度和多樣性會(huì)有所降低。而考慮上下文缺失的GPT_R取得了更佳的成績(jī),各項(xiàng)指標(biāo)與使用人工標(biāo)注的數(shù)據(jù)更為接近。這表明,對(duì)話整體缺失要比上下文缺失更難解決,但在表8的人工評(píng)價(jià)上兩者差異并不明顯。另一方面,如何充分利用網(wǎng)絡(luò)上現(xiàn)有與知識(shí)相關(guān)的文本數(shù)據(jù),并改造成適合對(duì)話的形式,可能是知識(shí)對(duì)話系統(tǒng)在新領(lǐng)域數(shù)據(jù)零資源時(shí)進(jìn)行在線更新的關(guān)鍵因素。
表8 人工評(píng)測(cè)結(jié)果
為了更好地評(píng)估我們的方法,本文選用了baseline中的最優(yōu)結(jié)果RR、對(duì)話缺失場(chǎng)景中綜合效果最好的GPT_move+T+OLD、上下文缺失場(chǎng)景中的GPT_R以及使用人類標(biāo)注數(shù)據(jù)進(jìn)行更新的模型GPT_human,在真實(shí)對(duì)話中進(jìn)行評(píng)估。我們?cè)诓煌I(lǐng)域的知識(shí)中隨機(jī)抽取若干知識(shí)項(xiàng),要求多位評(píng)估人對(duì)不同模型在這些知識(shí)背景下生成的回復(fù)進(jìn)行評(píng)分。因?yàn)樵谏鲜鰧?shí)驗(yàn)中,已經(jīng)使用了Coverage評(píng)價(jià)了知識(shí)能否合理使用,所以人工評(píng)分主要是為了評(píng)價(jià)一些難以量化的指標(biāo)。指標(biāo)為Relevance(回復(fù)是否與上下文相關(guān))和Fluency(語法邏輯等表達(dá)是否通順)。評(píng)估人可以打分0、1、2。其中,0分表示完全不符合該指標(biāo),1分表示輕微沖突同,2分表示完全符合該指標(biāo)。最終的結(jié)果為評(píng)估人給予分?jǐn)?shù)的平均值。
從表8可以看出所示,我們提出的兩種方法雖然分別針對(duì)對(duì)話整體缺失和對(duì)話上下文缺失兩種不同的場(chǎng)景,但在人工評(píng)測(cè)上的結(jié)果是接近的,說明即使對(duì)話缺失程度較大仍能得到和缺失程度較輕的情況相似的結(jié)果,進(jìn)一步說明零資源在線更新問題在本文的方法下得到一定的緩解。盡管Baseline在BoW指標(biāo)上略微優(yōu)于本文提出的方法,但在人工評(píng)測(cè)上差于本文提出的方法。同時(shí),在流暢度上本論文提出的方法近似于使用人工數(shù)據(jù)進(jìn)行更新的模型。但在相關(guān)度上,本文方法和使用人工數(shù)據(jù)進(jìn)行更新的模型仍然有較大差距,這是因?yàn)槭褂盟惴ê铣傻臄?shù)據(jù)在上下文相關(guān)方面仍然有待提高。
為了解決知識(shí)對(duì)話系統(tǒng)在線更新時(shí)人工標(biāo)注數(shù)據(jù)缺乏的問題,我們使用合成數(shù)據(jù)進(jìn)行模型的在線更新,并且針對(duì)不同的場(chǎng)景提出了不同的合成數(shù)據(jù)的生成策略。實(shí)驗(yàn)結(jié)果表明,使用合成數(shù)據(jù)能夠有效使得模型進(jìn)行參數(shù)更新以適應(yīng)于現(xiàn)實(shí)世界不斷增長(zhǎng)的知識(shí)。同時(shí)本文方法顯著優(yōu)于傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法,能夠在一定程度上緩解知識(shí)對(duì)話系統(tǒng)在線更新中語料零資源的問題。