国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

SPDR:基于片段預(yù)測(cè)的多輪對(duì)話改寫

2022-11-07 10:12:26陳建文
中文信息學(xué)報(bào) 2022年9期
關(guān)鍵詞:指代編碼器單詞

朱 帥,陳建文,朱 明

(華中科技大學(xué) 電子信息與通信學(xué)院,湖北 武漢 430074)

0 引言

對(duì)話系統(tǒng)近年來受到越來越廣泛的關(guān)注和研究,在工業(yè)界主要存在兩種應(yīng)用形態(tài),即客服機(jī)器人(如阿里小蜜[1]、支付寶助理等)和聊天機(jī)器人(如天貓精靈、小愛同學(xué)、微軟小冰[2]等)。當(dāng)前的對(duì)話系統(tǒng)在處理單輪對(duì)話問題時(shí)效果顯著,而在處理與上文相關(guān)的用戶問題時(shí)則表現(xiàn)比較一般,主要原因在于人們的日常對(duì)話中每個(gè)輪次之間并非孤立的,每一輪對(duì)話都可能會(huì)存在指代(pronoun)或者省略(ellipsis)的情況,這時(shí)如果只基于用戶當(dāng)前輪的輸入進(jìn)行回復(fù),則會(huì)忽略掉上文的一些重要信息,導(dǎo)致回復(fù)結(jié)果不符合上下文語境。文獻(xiàn)[3]對(duì)2 000條日常對(duì)話數(shù)據(jù)進(jìn)行過統(tǒng)計(jì),發(fā)現(xiàn)其中存在33.5%的指代和52.4%的省略現(xiàn)象,指代和省略是導(dǎo)致多輪對(duì)話場(chǎng)景下回復(fù)質(zhì)量較差的主要原因。

近來,多輪對(duì)話改寫任務(wù)得到越來越多的研究,這個(gè)任務(wù)的目的是根據(jù)用戶的歷史輸入對(duì)當(dāng)前輸入進(jìn)行改寫,確保改寫之后的句子能夠表達(dá)更完整的語義信息,將對(duì)話系統(tǒng)中的多輪問題轉(zhuǎn)化為單輪問題。多輪對(duì)話改寫實(shí)際上主要想要解決兩個(gè)問題,即指代消解和省略補(bǔ)全。表1展示了兩個(gè)常見的多輪對(duì)話場(chǎng)景。場(chǎng)景一是一個(gè)典型的任務(wù)型對(duì)話場(chǎng)景,最后一輪用戶咨詢穿衣建議,但是省略了問題的背景,通過補(bǔ)全后就可以知道用戶咨詢的地點(diǎn)是“杭州”,依據(jù)是“今天天氣”這兩個(gè)重要信息。場(chǎng)景二是一個(gè)常規(guī)的閑聊對(duì)話,通過對(duì)最后一輪進(jìn)行補(bǔ)全就可以知道“他”指代的對(duì)象是“周杰倫”,用戶表達(dá)的情感是“喜歡”。由此可見,通過上文對(duì)用戶當(dāng)前輸入進(jìn)行改寫,使用一句較簡(jiǎn)短的話就可以表達(dá)完整的語義信息,便于機(jī)器人理解并給出合適的回復(fù)。

表1 多輪對(duì)話場(chǎng)景改寫示例

多輪對(duì)話改寫任務(wù)提出以來,由于和指代消解任務(wù)的相關(guān)性,多采用指代消解的方法來解決。最近有研究[3-5]相繼提出采用指針生成網(wǎng)絡(luò)的方法來解決多輪對(duì)話改寫問題,開辟了一種新的思路。指針生成網(wǎng)絡(luò)首先通過編碼器編碼,然后使用解碼器采用束搜索(beam search)的方法逐字生成,本質(zhì)上是一個(gè)串行的過程,效率問題比較明顯。

受到BERT[6]模型解決閱讀理解任務(wù)方法的啟發(fā),本文提出采用基于片段預(yù)測(cè)的模型SPDR 來解決多輪對(duì)話改寫問題。一方面,避免了編碼器-解碼器(encoder-decoder)網(wǎng)絡(luò)耗時(shí)較長的問題;另一方面,可以更方便地使用目前主流的預(yù)訓(xùn)練模型,只需要少量的數(shù)據(jù)就可以得到比較好的效果表現(xiàn)。該模型使用BERT 作為編碼器,將對(duì)話歷史信息和用戶當(dāng)前輪的輸入進(jìn)行拼接,作為模型輸入,預(yù)測(cè)當(dāng)前輪輸入中指代或者省略的內(nèi)容在對(duì)話歷史信息中對(duì)應(yīng)的起始位置和結(jié)束位置,最后通過后處理對(duì)用戶當(dāng)前輸入進(jìn)行補(bǔ)全。實(shí)驗(yàn)表明,該模型在Restoration-200K 數(shù)據(jù)集以及客服場(chǎng)景下的業(yè)務(wù)數(shù)據(jù)上都得到了更優(yōu)的結(jié)果,同時(shí)大大提高了推理速度。

此外,受到文獻(xiàn)[7-8]工作的啟發(fā),本文提出了兩種新的預(yù)訓(xùn)練任務(wù),即分類任務(wù)(判斷當(dāng)前輸入語義是否完整)和檢測(cè)任務(wù)(判斷當(dāng)前輸入哪個(gè)位置缺少內(nèi)容),來提升SPDR 模型的表現(xiàn),實(shí)驗(yàn)表明,在經(jīng)過兩種任務(wù)預(yù)訓(xùn)練后的模型上微調(diào),效果提升明顯。最后,本文根據(jù)改寫任務(wù)數(shù)據(jù)的特點(diǎn),提出了一種新的評(píng)價(jià)指標(biāo)sEMr來評(píng)價(jià)對(duì)話改寫模型的效果。

本文組織結(jié)構(gòu)如下:第1節(jié)介紹對(duì)話改寫任務(wù)的相關(guān)研究及預(yù)訓(xùn)練模型的研究進(jìn)展;第2節(jié)介紹基于BERT和指針網(wǎng)絡(luò)的SPDR模型的細(xì)節(jié)和結(jié)構(gòu);第3節(jié)介紹模型新的評(píng)價(jià)指標(biāo)、實(shí)驗(yàn)設(shè)計(jì)及實(shí)驗(yàn)結(jié)果;第4節(jié)總結(jié)本文的工作,并對(duì)未來工作進(jìn)行展望。

1 相關(guān)工作

對(duì)話改寫任務(wù)主要有兩種方法,即基于流水線的方法和基于端到端的方法,本節(jié)將介紹兩種方法的代表工作。

1.1 基于流水線的方法

基于流水線的對(duì)話改寫方法將改寫任務(wù)分成兩個(gè)子任務(wù),即檢測(cè)任務(wù)(指代和省略位置檢測(cè))和消解任務(wù)(指代消解和省略補(bǔ)全)。

檢測(cè)任務(wù)目的是找到當(dāng)前輪語句中指代和省略的位置。傳統(tǒng)的方法是基于規(guī)則的方式,通過匹配找到代詞的位置,以及采用規(guī)則模板找到省略的位置,這種方法簡(jiǎn)單直接,但是泛化能力較弱。文獻(xiàn)[9]中提到采用序列標(biāo)注的方法來解決指代和省略定位問題,具體來說定義了3種標(biāo)簽:“0”表示常規(guī)詞,“1”表示指代或者省略的邊界詞,“2”表示指代。通過對(duì)語句中每個(gè)字進(jìn)行序列標(biāo)注,即可找到指代和省略的位置。

通過檢測(cè)任務(wù)找到指代和省略的位置之后,需要從歷史對(duì)話中找到合適的詞填充或者替換到這個(gè)位置。文獻(xiàn)[10]提出采用文本匹配的方式,首先對(duì)檢測(cè)到的位置進(jìn)行雙向編碼,然后對(duì)對(duì)話歷史中的候選詞進(jìn)行局部編碼和全局編碼,將待消解位置的編碼和候選詞的兩個(gè)編碼拼接,再拼接一些人工特征,經(jīng)過線性層分類。類似地,文獻(xiàn)[11]在匹配過程中引入了注意力機(jī)制(attention mechanism),文獻(xiàn)[12-13]又分別將強(qiáng)化學(xué)習(xí)(reinforcement learning)和先驗(yàn)知識(shí)(prior knowledge)融合到匹配過程中。文獻(xiàn)[14]提出基于完形填空的消解方法,直接將待消解位置映射到詞表中的一個(gè)單詞上,根據(jù)預(yù)測(cè)的答案詞遍歷上文中候選片段,如果答案詞是某個(gè)候選片段的首詞,那么該片段即為預(yù)測(cè)結(jié)果。

1.2 基于端到端的方法

雖然基于流水線的方法流程清晰,但是存在誤差累積的問題,檢測(cè)模型的性能決定了消解模型的上限,而端到端的方法則避免了這個(gè)問題,因此端到端的方法成為目前業(yè)界探索的主要方向。端到端的方法主要分為:基于聯(lián)合訓(xùn)練的方法、基于序列標(biāo)注的方法及基于指針生成網(wǎng)絡(luò)的方法。

文獻(xiàn)[9]提出基于聯(lián)合訓(xùn)練的方法,將檢測(cè)任務(wù)和消解任務(wù)融合到一個(gè)模型中,并將兩個(gè)損失函數(shù)相加,共同訓(xùn)練。文獻(xiàn)[14]提出基于序列標(biāo)注的方法,主要目的是解決摘要類型的問題,定義了類似保留(KEEP)、刪除(DELETE)、增加(ADD)等類型的標(biāo)簽,將歷史對(duì)話和當(dāng)前輪輸入拼接,預(yù)測(cè)每一個(gè)單詞的標(biāo)簽,再經(jīng)過后處理得到改寫后的語句。文獻(xiàn)[3]提出采用指針網(wǎng)絡(luò)(Pointer Network)來解決對(duì)話改寫的問題,首先將歷史對(duì)話和當(dāng)前輪輸入拼接后送入編碼器,然后使用解碼器逐步解碼,解碼時(shí)并非從全量詞表中選詞,而是限制只能從歷史對(duì)話或者當(dāng)前輪對(duì)話輸入中選擇。文獻(xiàn)[4-5]分別提出一種兩階段的模型,將預(yù)訓(xùn)練模型應(yīng)用到了多輪對(duì)話改寫的任務(wù)中。

2 模型

本節(jié)主要描述模型SPDR(Span Prediction for Dialogue Rewrite)的結(jié)構(gòu)和原理。多輪對(duì)話改寫問題可以定義為:基于對(duì)話歷史信息H和用戶當(dāng)前輪輸入U(xiǎn)t,根據(jù)對(duì)話歷史信息將當(dāng)前輪用戶輸入改寫成U*t,即(H,Ut→U*t),目標(biāo)是模型改寫的結(jié)果U*t和標(biāo)注結(jié)果R盡可能一致。SPDR 采用基于片段預(yù)測(cè)的方式來對(duì)當(dāng)前輪用戶輸入U(xiǎn)t進(jìn)行補(bǔ)全,具體來說:對(duì)話歷史信息H={h1,h2,…,hm},其中{hj}mj=1表示單詞序列,m表示對(duì)話歷史信息中單詞的數(shù)量,不同輪次之間使用[SEP]分隔。用戶當(dāng)前輪輸入U(xiǎn)t={u1,u2,…,un},其中n表示用戶當(dāng)前輪輸入中的單詞數(shù)。對(duì)于每一個(gè){ui}ni=1,SPDR預(yù)測(cè)其要填充的片段在對(duì)話歷史信息H中的起始位置和結(jié)束位置。模型結(jié)構(gòu)如圖1所示。

圖1 模型結(jié)構(gòu)圖

2.1 標(biāo)簽構(gòu)造

當(dāng)前數(shù)據(jù)集中的標(biāo)簽為人工標(biāo)注的改寫之后的句子R,為了得到Ut中每一個(gè)單詞{ui}ni=1對(duì)應(yīng)的起始標(biāo)簽和結(jié)束標(biāo)簽,同時(shí)找到每個(gè)位置要填充的內(nèi)容。本文為SPDR 設(shè)計(jì)一種標(biāo)簽構(gòu)造算法,具體流程為:①采用計(jì)算最長公共子序列的方法,在標(biāo)注結(jié)果R中找到用戶當(dāng)前輪輸入U(xiǎn)t中每一個(gè)單詞出現(xiàn)的位置,沒出現(xiàn)則用“-1”表示;②根據(jù)上一步計(jì)算的位置找到Ut中需要消解的位置,并在R中找到每一個(gè)待消解位置填充的內(nèi)容;③根據(jù)找到的填充內(nèi)容在對(duì)話歷史信息H中的位置,從最近輪次向前找到填充內(nèi)容出現(xiàn)的起始位置和結(jié)束位置。具體的算法流程如算法1所示,起始位置和結(jié)束標(biāo)簽示例如表2所示??紤]到Ut中大部分單詞前面都是不需要填充內(nèi)容的,此時(shí)對(duì)應(yīng)的起始位置和結(jié)束標(biāo)簽都為0,即指向H中[CLS]。

算法1:計(jì)算{ui}ni=1起始位置和結(jié)束標(biāo)簽輸入:歷史對(duì)話信息H當(dāng)前對(duì)話信息Ut標(biāo)注改寫結(jié)果R輸出:Ut 的起始標(biāo)簽向量s Ut 的結(jié)束標(biāo)簽向量e 1 m[i]=-1,s[i]=0,e[i]=0,?i=1,2,…,n 2 k=0 3 計(jì)算Ut 和R 的最長公共子序列,找到每一個(gè)ui 在R 中出現(xiàn)的位置pos;4 while k<n 5 if(pos[k]is pronoun or ellipsis)6 m[k]=1 7 end if 8 for k∈[0,n)9 if m[k]==1 10 span=find_span_in_R(m,R,pos)11 s,e=label_in_H(m,span,R,H)12 s[k]=s 13 e[k]=e 14 end if 15 return s,e

表2 起始標(biāo)簽和結(jié)束標(biāo)簽示例

2.2 編碼器

2017年文獻(xiàn)[15]提出了Transformer的編碼器-解碼器結(jié)構(gòu),采用多頭注意力機(jī)制(multi-head attention)來捕捉句子中單詞之間的關(guān)聯(lián)。之后,文獻(xiàn)[6]采用Transformer編碼器模塊作為基本結(jié)構(gòu),定義了掩碼語言模型(Masked Language Model,MLM)和下句預(yù)測(cè)(Next Sentence Prediction,NSP)兩個(gè)預(yù)訓(xùn)練任務(wù)進(jìn)行預(yù)訓(xùn)練,刷新了多項(xiàng)NLP任務(wù)的最佳效果。本文使用文獻(xiàn)[6]提出的BERT 模型作為句子的編碼器。

首先,將歷史對(duì)話信息H和用戶當(dāng)前輪輸入U(xiǎn)t拼接成Input= {h1,…,hm,u1,…,un}這樣的輸入序列,經(jīng)過嵌入矩陣得到每一個(gè)單詞對(duì)應(yīng)的嵌入表征,本文在嵌入層定義了4個(gè)不同的嵌入矩陣:

?單詞嵌入:從單詞索引到嵌入表征的哈希映射矩陣,使用BERT 預(yù)訓(xùn)練的參數(shù)將每一個(gè)單詞映射成高維表征。

?位置嵌入:輸入序列每個(gè)位置對(duì)應(yīng)一個(gè)位置索引,將每一個(gè)位置索引映射成表征不同位置的嵌入表征,維度和單詞嵌入相同。

?序列嵌入:用“0”表示歷史對(duì)話信息H,用“1”表示用戶當(dāng)前輪輸入U(xiǎn)t,然后嵌入到高維表征,維度和單詞嵌入相同。

?輪次嵌入:考慮到歷史對(duì)話中可能包含多個(gè)輪次,所以每個(gè)單詞都有對(duì)應(yīng)的輪次索引{0,…,t-1},當(dāng)前輪輸入對(duì)應(yīng)輪次為t,通過映射之后得到輪次的嵌入表征。

因此,對(duì)于輸入對(duì)話語句中的每一個(gè)單詞w∈{h1,…,hm,u1,…,un},將上面4種嵌入相加,得到輸入的嵌入表征,如式(1)所示。

其中,WE 表示單詞嵌入,PE 表示位置嵌入,SE 表示序列嵌入,TE 表示輪次嵌入。將4個(gè)嵌入相加之后得到了預(yù)訓(xùn)練模型BERT 的輸入,經(jīng)過BERT之后得到所有輸入單詞的上下文表征如式(2)所示。

最終得到單詞序列的上下文表征E(out)并分成兩個(gè)部分,即歷史對(duì)話信息表征及用戶當(dāng)前輪輸入的表征

2.3 輸出概率分布

文獻(xiàn)[6]中提到通過預(yù)測(cè)問題在篇章中對(duì)應(yīng)的起始位置和結(jié)束位置來完成閱讀理解任務(wù),本文采用了類似的思路?;诘玫降纳舷挛谋碚骱?預(yù)測(cè)Ut中每一個(gè)單詞{ui}ni=1前面要填充的內(nèi)容,在對(duì)話歷史信息H中對(duì)應(yīng)的起始位置和結(jié)束位置。文獻(xiàn)[3]中提出通過指針網(wǎng)絡(luò)[16]的方法,解碼器解碼時(shí)只計(jì)算當(dāng)前時(shí)間步在對(duì)話歷史信息H和用戶當(dāng)前輸入U(xiǎn)t上的概率分布,即每一個(gè)時(shí)間步的單詞只能來自H或者Ut。考慮到在計(jì)算每一個(gè){ui}ni=1填充內(nèi)容在歷史對(duì)話H中的起始位置和結(jié)束位置時(shí),H中所有單詞概率分布存在相關(guān)性,本文采用指針網(wǎng)絡(luò)的方法來計(jì)算每一個(gè){ui}ni=1填充內(nèi)容對(duì)應(yīng)的起始位置和結(jié)束位置概率分布,即:

本文采用帶有參數(shù)的注意力方法——雙線性注意力機(jī)制(Bi-linear Attention Mechanism)來計(jì)算起始位置和結(jié)束位置的概率分布。對(duì)于起始位置和結(jié)束位置的注意力模塊,W1和W2表示計(jì)算注意力分布的參數(shù)矩陣,基于上下文表征和計(jì)算用戶當(dāng)前輸入U(xiǎn)t中的每一個(gè)單詞在對(duì)話歷史信息H上的概率分布:

最后,采用負(fù)對(duì)數(shù)似然概率計(jì)算起始位置的損失和結(jié)束位置的損失,將兩者相加得到最終的損失,即:

2.4 預(yù)訓(xùn)練任務(wù)

文獻(xiàn)[8]通過在情感分析任務(wù)中定義情感詞預(yù)測(cè)、單詞情感極性預(yù)測(cè)及屬性-情感對(duì)預(yù)測(cè)三個(gè)預(yù)訓(xùn)練任務(wù),來增強(qiáng)預(yù)訓(xùn)練模型對(duì)情感的感知能力,表明特定場(chǎng)景的預(yù)訓(xùn)練任務(wù)對(duì)于核心任務(wù)會(huì)帶來一定的效果提升。文獻(xiàn)[7]在多個(gè)不同領(lǐng)域的數(shù)據(jù)上進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)在特定領(lǐng)域上使用領(lǐng)域數(shù)據(jù)繼續(xù)使用MLM 任務(wù)預(yù)訓(xùn)練,大部分情況下也會(huì)帶來一定的效果提升。因此,本文提出了兩個(gè)預(yù)訓(xùn)練任務(wù),使用對(duì)話改寫任務(wù)的數(shù)據(jù)集先預(yù)訓(xùn)練再對(duì)改寫任務(wù)進(jìn)行微調(diào),這兩個(gè)預(yù)訓(xùn)練任務(wù)分別是分類任務(wù)和檢測(cè)任務(wù)。

(1)分類任務(wù)(ClassifyTask):將對(duì)話歷史信息H和當(dāng)前輸入U(xiǎn)t拼接之后輸入預(yù)訓(xùn)練模型BERT,然后使用[CLS]對(duì)應(yīng)的上下文表征進(jìn)行二分類,判斷當(dāng)前輸入U(xiǎn)t是否需要補(bǔ)全。

(2)檢測(cè)任務(wù)(DetectionTask):將對(duì)話歷史信息H和當(dāng)前輸入U(xiǎn)t拼接之后輸入預(yù)訓(xùn)練模型BERT,得到當(dāng)前輸入U(xiǎn)t的上下文表征=,對(duì)于其中的每一個(gè)進(jìn)行二分類,判斷其前面是否需要填充內(nèi)容。

3 實(shí)驗(yàn)

本節(jié)主要介紹實(shí)驗(yàn)采用的數(shù)據(jù)集、評(píng)價(jià)指標(biāo)、對(duì)比模型及實(shí)驗(yàn)結(jié)果,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。

3.1 數(shù)據(jù)集

本文主要基于兩個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),分別是Restoration-200K[4]和客服場(chǎng)景下業(yè)務(wù)數(shù)據(jù)集,前者是開放域閑聊場(chǎng)景下的數(shù)據(jù)集,后者是特定領(lǐng)域下的對(duì)話數(shù)據(jù),兩組數(shù)據(jù)集的統(tǒng)計(jì)信息如表3和表4所示。為了保證樣本比例的均衡,在這兩組數(shù)據(jù)集中,無論是訓(xùn)練集、驗(yàn)證集還是測(cè)試集,需要改寫的樣本和不需要改寫的樣本各占比50%。這種方式有效避免了樣本不均衡問題對(duì)不同模型潛在的影響。

表3 Restoration-200K 數(shù)據(jù)集統(tǒng)計(jì)信息

表4 業(yè)務(wù)數(shù)據(jù)集統(tǒng)計(jì)信息

3.2 實(shí)驗(yàn)設(shè)置

本文代碼基于Pytorch、Allen NLP及Hugging-Face的Transformers庫實(shí)現(xiàn)。實(shí)驗(yàn)采用了3種不同的預(yù)訓(xùn)練模型來初始化編碼器,對(duì)比不同預(yù)訓(xùn)練模型的效果以及推理時(shí)間。這3個(gè)預(yù)訓(xùn)練模型分別是RoBERTa-wwm[17]、RBT3[17]以及ALBERT-tiny[18],不同模型的參數(shù)設(shè)置如表5所示。主要區(qū)別在于RoBERTa采用的是12 層的Transformer結(jié)構(gòu),而RBT-3是3層,ALBERT-tiny則是4層的結(jié)構(gòu)。本文中實(shí)驗(yàn)的硬件配置如下:CPU 采用英特爾E5-2682 v4,GPU 為Tesla P100-PCIE 16GB。

表5 預(yù)訓(xùn)練模型訓(xùn)練參數(shù)設(shè)置

3.3 評(píng)價(jià)指標(biāo)

與文獻(xiàn)[4-5]類似,本文在Restoration-200K 數(shù)據(jù)集上采用BLEU、ROUGE 以及Restoration分?jǐn)?shù)作為評(píng)價(jià)指標(biāo)。其中Restoration分?jǐn)?shù)這個(gè)指標(biāo)[4]主要關(guān)注那些至少包含一個(gè)待還原的單詞的N-grams,而排除其他N-grams,對(duì)應(yīng)的還原之后的N-gram 的準(zhǔn)確率(Precision,P)、召回率(Recall,R)以及F值的計(jì)算如式(9)、式(11)所示。

其中ResN-grams表示改寫之后的文本包含待還原單詞的N-grams,RefN-grams表示參考文本中包含待還原單詞的N-grams;∩表示計(jì)算兩個(gè)N-grams集合的交集,|·|表示計(jì)算集合中元素的數(shù)量。

考慮到數(shù)據(jù)集中標(biāo)注改寫結(jié)果R中大部分單詞都來自于用戶當(dāng)前輪的輸入U(xiǎn)t,即改寫的目的是在不損失當(dāng)前輪信息的前提下增加有用的信息,因此本文提出一種新的評(píng)價(jià)指標(biāo)sEMr(soft Exact Match Rate)。對(duì)于模型改寫的結(jié)果U*t,如果標(biāo)注結(jié)果R中的所有單詞都在U*t中出現(xiàn)并且出現(xiàn)的順序和R中一致,即認(rèn)為是sEM(soft Exact Match)。在sEM 的前提下,U*t的長度越接近于R,說明其中的無效信息越少,于是sEMr的表達(dá)式如式(12)所示。

其中,Ref表示標(biāo)注改寫結(jié)果R,restored表示模型改寫的結(jié)果U*t,len()表示計(jì)算字符串的長度。

3.4 對(duì)比模型

本文對(duì)比了SPDR 模型和以下4種模型在各指標(biāo)上的表現(xiàn)。

?PAC[4]:該模型采用兩階段的方式,首先將對(duì)話歷史信息H和用戶當(dāng)前輪輸入U(xiǎn)t拼接,經(jīng)過預(yù)訓(xùn)練模型對(duì)H中每個(gè)單詞進(jìn)行序列標(biāo)注,表示是否是省略的單詞;然后將標(biāo)注的結(jié)果拼接到(H,Ut)后面,經(jīng)過指針生成網(wǎng)絡(luò)得到補(bǔ)全后的結(jié)果。

?T-Ptr-λ[3]:該模型采用編碼器-解碼器的思想,基于指針生成網(wǎng)絡(luò)逐個(gè)時(shí)間步生成單詞,每次生成的時(shí)候只能從對(duì)話歷史信息H和用戶當(dāng)前輪輸入U(xiǎn)t中選詞。該模型采用 了6 層Transformer 編 碼 器 和6 層Transformer解碼器,在解碼階段,為了區(qū)分H和Ut,采用了雙流注意力的方法。

?UniLM[19]:UniLM 提出了既適合自編碼任務(wù),又適合自回歸任務(wù)的預(yù)訓(xùn)練模型,其核心方法是使用不同的掩碼矩陣來控制任務(wù)的類型。

?SARG[5]:該模型將文獻(xiàn)[3]和文獻(xiàn)[14]的方法進(jìn)行了結(jié)合。首先將對(duì)話歷史信息H和用戶當(dāng)前輪輸入U(xiǎn)t拼接,然后預(yù)測(cè)Ut中每一個(gè)單詞的標(biāo)簽;接著,對(duì)于那些標(biāo)簽為CHANGE 的單詞,采用指針生成網(wǎng)絡(luò)的方法預(yù)測(cè)其后面需要添加的內(nèi)容。

3.5 實(shí)驗(yàn)結(jié)果

在Restoration-200K數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表6所示,在客服場(chǎng)景下業(yè)務(wù)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表7所示。

表6 Restoration-200K 數(shù)據(jù)集上各模型指標(biāo)對(duì)比

表7 客服場(chǎng)景下業(yè)務(wù)數(shù)據(jù)集上主要模型指標(biāo)對(duì)比

從表6中各個(gè)模型在Restoration-200K 數(shù)據(jù)集上的表現(xiàn),可以看出:

(1)SPDR 模型在7個(gè)評(píng)價(jià)指標(biāo)中有5個(gè)超過了之前最好的SARG 模型。其中restoration分?jǐn)?shù)中F1、F2及ROUGE 指標(biāo)都有1%左右的提升;BLEU 指標(biāo)相較于SARG 模型有1%左右的下降,主要原因是:SPDR 模型通過預(yù)測(cè)片段的方式來對(duì)當(dāng)前輪輸入進(jìn)行改寫,容易引入一些標(biāo)注結(jié)果中不存在的單詞;而SARG 等生成類型的模型是逐詞生成的,所以避免了這種情況;而BLEU 指標(biāo)主要關(guān)注改寫結(jié)果中n-grams的精確率,所以會(huì)有一定的下降。相反,ROUGE 指標(biāo)更關(guān)注n-grams的召回率,所以SPDR 模型在該指標(biāo)上表現(xiàn)更好。

(2)SPDR 模型在驗(yàn)證集上的推理速度明顯快于其他模型。之前以UniLM 為代表的改寫模型采用的都是逐詞生成的方式,這種串行的預(yù)測(cè)方式導(dǎo)致其推理時(shí)效率比較低;SARG 模型相較于純粹的生成模型,引入了部分生成的思想,在一定程度上緩解了推理階段的效率問題。SPDR 模型則采用完全并行預(yù)測(cè)的方式,默認(rèn)保留用戶當(dāng)前輸入的所有內(nèi)容,同時(shí)預(yù)測(cè)每個(gè)位置前面需要添加的內(nèi)容,解決了串行預(yù)測(cè)方法的效率問題,大大提升了推理階段的速度,便于在低時(shí)延限制的系統(tǒng)中使用。

Restoration-200K 數(shù)據(jù)集中訓(xùn)練集的數(shù)據(jù)量比較大,而實(shí)際場(chǎng)景中對(duì)話改寫數(shù)據(jù)標(biāo)注比較困難,所以在少量訓(xùn)練集情況下模型的表現(xiàn)同樣值得關(guān)注。表7展示了主要模型在客服場(chǎng)景下業(yè)務(wù)數(shù)據(jù)上的各項(xiàng)指標(biāo),從中可以看出:

(1)SPDR 模型在訓(xùn)練數(shù)據(jù)較少的情況下表現(xiàn)仍然出色,在除F3之外的其他6個(gè)指標(biāo)上均明顯優(yōu)于T-Ptr-λ模型,其中sEMr指標(biāo)提升了6.7%。和SARG 相比,sEMr也有1.7%的提升。而F3指標(biāo)表現(xiàn)略遜色的主要原因是:驗(yàn)證集中人稱代詞和指示代詞的樣例比較多,而SPDR 模型并不會(huì)去除這些代詞,因?yàn)檫@些代詞并不是完全沒用的,相反在下游自然語言理解任務(wù)中,人稱代詞能夠提供一些正向信息(比如人物的性別);而由于代詞比較多,并且大部分補(bǔ)全的內(nèi)容比較短(表4),所以在N-gram較長的指標(biāo)上表現(xiàn)就會(huì)稍微遜色。

(2)SPDR 模型推理一個(gè)樣例速度明顯提升,使用12層的BERT 模型推理速度相較于生成模型提升了接近100%??紤]一些生產(chǎn)環(huán)境對(duì)時(shí)延嚴(yán)格限制的情況,還可以使用輕量級(jí)的預(yù)訓(xùn)練模型作為編碼器,推理速度會(huì)進(jìn)一步改進(jìn),當(dāng)前相應(yīng)的指標(biāo)也會(huì)略有下降。但是,即便在使用輕量級(jí)編碼器的情況下,SPDR 模型在sEMr指標(biāo)上仍然明顯優(yōu)于T-Ptr-λ模型,略遜色于SARG 模型。

綜上所述,SPDR 模型無論是在訓(xùn)練集數(shù)據(jù)量充足的情況下,還是在訓(xùn)練集數(shù)據(jù)比較少的情況下,均能取得比較優(yōu)異的效果,大部分指標(biāo)都明顯優(yōu)于之前的模型,同時(shí)SPDR 模型沒有使用編碼器-解碼器的結(jié)構(gòu),大大提升了模型在推理時(shí)的速度,便于在生產(chǎn)環(huán)境中使用。

3.6 消融實(shí)驗(yàn)

在2.4節(jié)中本文提出了兩個(gè)預(yù)訓(xùn)練任務(wù),用于提升SPDR 模型的表現(xiàn)。本節(jié)主要對(duì)預(yù)訓(xùn)練任務(wù)進(jìn)行消融實(shí)驗(yàn),研究不同預(yù)訓(xùn)練任務(wù)對(duì)于模型表現(xiàn)的影響。除此之外,針對(duì)業(yè)務(wù)數(shù)據(jù)集訓(xùn)練數(shù)據(jù)較少的問題,本文還提出了一種簡(jiǎn)單的自動(dòng)化數(shù)據(jù)擴(kuò)充方法,具體來說:在歷史對(duì)話信息H中,有的輪次的語句并沒有單詞出現(xiàn)在補(bǔ)全結(jié)果中,刪除這些輪次的語句便得到了一個(gè)新的樣本。本節(jié)也會(huì)考察自動(dòng)化數(shù)據(jù)擴(kuò)充的方法對(duì)于模型最終效果的影響。

在消融實(shí)驗(yàn)中,本文使用的是客服場(chǎng)景下的業(yè)務(wù)數(shù)據(jù)集,編碼器使用輕量級(jí)的ALBERT-tiny 模型。最終,消融實(shí)驗(yàn)結(jié)果如表8所示。

表8 消融實(shí)驗(yàn)結(jié)果

通過消融實(shí)驗(yàn)可以發(fā)現(xiàn),分別使用分類任務(wù)和檢測(cè)任務(wù)對(duì)模型進(jìn)行進(jìn)一步預(yù)訓(xùn)練,相較于不經(jīng)過預(yù)訓(xùn)練的結(jié)果,提升并不明顯,說明只使用其中某一個(gè)預(yù)訓(xùn)練任務(wù)可能會(huì)引入一些無效的先驗(yàn)信息,反而給模型帶來了負(fù)面影響。而同時(shí)使用分類任務(wù)和檢測(cè)任務(wù)兩個(gè)任務(wù)預(yù)訓(xùn)練,則效果提升明顯,主要原因可能是分類任務(wù)能夠捕捉歷史對(duì)話信息和當(dāng)前輪輸入P句子間的關(guān)系,而檢測(cè)任務(wù)能夠捕捉當(dāng)前輪輸入各個(gè)單詞之間的關(guān)系,兩個(gè)任務(wù)具有一定的互補(bǔ)性,提供了有效的先驗(yàn)信息。從最后一行可以看出,在數(shù)據(jù)較少的場(chǎng)景下,本文提出的數(shù)據(jù)擴(kuò)充方法能夠明顯提升模型最終的表現(xiàn)。

3.7 樣例分析

本節(jié)主要展示不同模型在測(cè)試集上的預(yù)測(cè)結(jié)果,并選擇其中幾個(gè)有代表性的樣例進(jìn)行分析,具體如表9所示。

表9 對(duì)話補(bǔ)全測(cè)試集樣例

續(xù)表

在樣例1中,T-Ptr-λ模型漏掉了原始輸入中重要的極性詞,直接導(dǎo)致語義發(fā)生了改變,改寫之后的結(jié)果反而不如原始輸入的語句,另外兩個(gè)模型也或多或少丟失了用戶當(dāng)前輸入的部分信息。而SPDR模型默認(rèn)保留原始輸入中的所有單詞,避免了丟失信息的情況,同時(shí)還原了關(guān)鍵詞“etc”。

在樣例2中,T-Ptr-λ丟失了原始語句A3中的信息,并且補(bǔ)充的信息也不完整;UniLM 補(bǔ)全之后語句比較連貫,但是補(bǔ)充的信息和正確結(jié)果有一定差距;SARG 采用部分生成的方式,預(yù)測(cè)對(duì)了需要補(bǔ)全的位置,但是補(bǔ)充的內(nèi)容不連貫。SPDR 模型采用的是片段預(yù)測(cè)的方式,預(yù)測(cè)的填充內(nèi)容不僅可以是單詞,也可以是短語,表達(dá)的信息更完整,表明了其建模片段語義的能力。

3.8 人工評(píng)估

自動(dòng)化評(píng)估指標(biāo)能夠從不同角度體現(xiàn)對(duì)話改寫的效果,但是無法反映改寫結(jié)果語義的完整性和流暢性。在人工評(píng)估階段,本文從Restoration-200k測(cè)試集中隨機(jī)采樣了200個(gè)樣本,并請(qǐng)3名有經(jīng)驗(yàn)的標(biāo)注人員對(duì)不同模型的改寫結(jié)果進(jìn)行打分。打分的維度主要有兩個(gè),語義完整性(Integrity)及語句的流暢性(Fluency),打分可選值為[0,1,2]。0分表示效果很差,無法接受;1分表示效果一般,可部分接受;2分表示效果很好,完全可以接受。

人工評(píng)估結(jié)果如表10所示,從中可以看出,在語義完整性指標(biāo)上,SPDR 模型得分優(yōu)于其他模型,主要因?yàn)镾PDR模型采用片段預(yù)測(cè)的方式能夠有效保證信息召回率,這對(duì)于下游任務(wù)非常重要,這也與自動(dòng)化評(píng)估結(jié)果一致。而在語句流暢性指標(biāo)上,SPDR 模型則略遜色于SARG 模型,主要是因?yàn)镾PDR 沒有去除人稱代詞和指示代詞,同時(shí)某些位置片段預(yù)測(cè)錯(cuò)誤也會(huì)導(dǎo)致語句不太流暢。

表10 人工評(píng)估結(jié)果

4 總結(jié)與展望

本文提出了采用片段預(yù)測(cè)的方法進(jìn)行多輪對(duì)話改寫,摒棄了傳統(tǒng)的編碼器-解碼器結(jié)構(gòu),大大提升了推理階段的速度。同時(shí),本文提出的SPDR 模型,無論是對(duì)于訓(xùn)練數(shù)據(jù)充足的Restoration-200K數(shù)據(jù)集,還是數(shù)據(jù)量較少的客服場(chǎng)景下的業(yè)務(wù)數(shù)據(jù),在一些主要指標(biāo)上,相較于之前的最好結(jié)果,均有明顯的提升。本文還提出了一種新的多輪對(duì)話改寫結(jié)果的評(píng)價(jià)指標(biāo)sEMr,用于對(duì)比不同模型多輪對(duì)話改寫的效果。最后,SPDR 模型可以采用不同大小的編碼器,滿足不同時(shí)延限制場(chǎng)景的需求。

當(dāng)然,本文還存在一些不足,比如改寫結(jié)果中沒有去掉代詞,同時(shí)補(bǔ)充的內(nèi)容必須在上文中出現(xiàn)過,這可能導(dǎo)致某些改寫結(jié)果在流暢性上表現(xiàn)一般,這也是該模型之后改進(jìn)的方向。此外,本文對(duì)改寫結(jié)果和數(shù)據(jù)進(jìn)一步分析發(fā)現(xiàn),特定領(lǐng)域場(chǎng)景下,大部分填充的詞都是領(lǐng)域內(nèi)的實(shí)體詞,因此將領(lǐng)域的知識(shí)信息融入改寫過程也是未來將會(huì)繼續(xù)探索的方向。

猜你喜歡
指代編碼器單詞
Let’s Save Food To Fight Hunger
奧卡姆和布列丹對(duì)指代劃分的比較
單詞連一連
基于FPGA的同步機(jī)軸角編碼器
看圖填單詞
看完這些單詞的翻譯,整個(gè)人都不好了
基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
JESD204B接口協(xié)議中的8B10B編碼器設(shè)計(jì)
電子器件(2015年5期)2015-12-29 08:42:24
“不一而足”話討論
多總線式光電編碼器的設(shè)計(jì)與應(yīng)用
玉山县| 泾川县| 巫溪县| 鞍山市| 平邑县| 中阳县| 姚安县| 蓬莱市| 南城县| 通辽市| 烟台市| 徐水县| 邵东县| 紫云| 敦化市| 揭东县| 安西县| 深水埗区| 横峰县| 连平县| 瓮安县| 会泽县| 双桥区| 剑川县| 温宿县| 临夏市| 改则县| 山东省| 安达市| 旬阳县| 将乐县| 墨玉县| 永新县| 右玉县| 邵阳县| 江阴市| 遵义市| 叶城县| 介休市| 奈曼旗| 南汇区|