鄭思露,程春玲,毛 毅
(南京郵電大學(xué) 計算機(jī)學(xué)院,江蘇 南京 210023)
近年來,隨著語音識別和自然語言理解的快速發(fā)展,人機(jī)對話已經(jīng)變得越來越流行。目前,國內(nèi)外許多機(jī)構(gòu)已經(jīng)開發(fā)了自己的人機(jī)對話系統(tǒng),如蘋果的Siri語音助手、百度的小度智能助手等閑聊領(lǐng)域的系統(tǒng),還有針對特定領(lǐng)域的系統(tǒng),如智能點(diǎn)歌系統(tǒng)。其中用戶意圖識別是整個系統(tǒng)的核心,正確的意圖不僅可以提高系統(tǒng)的效率還可以提升用戶的使用體驗(yàn)。
對話意圖識別是指對人機(jī)的對話文本進(jìn)行分類進(jìn)而實(shí)現(xiàn)意圖識別,不同的任務(wù)類型對應(yīng)著不同的分類模型,如閑聊系統(tǒng)則屬于多分類,即識別出相應(yīng)領(lǐng)域再有針對性地聊天,而點(diǎn)歌系統(tǒng)則屬于二分類,即判斷用戶是否有點(diǎn)歌的意圖,為下游功能提供支撐。
目前,將一般的文本分類方法應(yīng)用在人機(jī)對話意圖識別任務(wù)上已經(jīng)取得了不錯的效果,但是對話文本與常規(guī)文本在篇幅和內(nèi)容上存在很大差異,因此要想取得更好的意圖識別效果就必須針對對話文本存在的難點(diǎn)設(shè)計合理的分類模型。首先,在人機(jī)對話中,用戶往往是通過少量的話語表達(dá)自己的意圖,這就造成缺乏足夠的篇幅從而導(dǎo)致語境匱乏,其中還會存在一些實(shí)體信息,如專有名詞,常規(guī)模型無法識別出這些專有名詞,從而把它和其他文本一樣對待,這也會造成語境的匱乏;其次,用戶在表達(dá)意圖時比較隨意,無法確定用戶在對話開頭、中間或是結(jié)尾表達(dá)了自己的確切意圖,而且前后意圖還存在相互的影響,這都會導(dǎo)致意圖含義不明確。因此,針對上述在人機(jī)對話意圖識別中語境匱乏和意圖模糊的問題,該文提出一種融合實(shí)體信息和時序特征的模型。該模型能夠增強(qiáng)對話文本的語義表示,同時能夠捕獲意圖在時序上的表達(dá),再通過特征融合提升意圖識別的準(zhǔn)確率。具體而言,首先,在文本表示模塊,結(jié)合對話中的實(shí)體信息動態(tài)生成符合語境的詞向量從而減少因?qū)υ捚處淼奈谋菊Z境匱乏;其次,在時序特征提取模塊,利用雙向長短期記憶網(wǎng)絡(luò)提取對話中前后意圖的聯(lián)系從而減少因?qū)υ掚S意性帶來的意圖不清晰;最后,在特征融合模塊,利用多層門控內(nèi)部自相關(guān)機(jī)制自適應(yīng)融合對話中的實(shí)體信息和時序特征,這樣既考慮了對話篇幅短和隨意性的問題,又對特征進(jìn)行了不同程度的融合,從而提升意圖識別的效果。
在進(jìn)行意圖識別前,首先要將對話文本轉(zhuǎn)換成計算機(jī)可以處理的形式。一個能夠蘊(yùn)含豐富信息且噪音小的高質(zhì)量文本表示可以極大地提升模型的性能。
早期主要采用One-hot[1]、TF-IDF[2]等基于詞頻的模型對文本進(jìn)行表示,但是隨著詞表的增加會產(chǎn)生維數(shù)災(zāi)難和語義缺失等問題。隨著神經(jīng)網(wǎng)絡(luò)和表征學(xué)習(xí)的發(fā)展,Word2vec[3-4]和Glove[5]利用詞向量訓(xùn)練方法來得到文本表示可以解決維數(shù)災(zāi)難和緩解語義缺失的問題。但是詞向量往往只包含了淺層、單一的語義信息,對于人機(jī)對話語境匱乏,詞向量顯然無法清晰地表達(dá)用戶的意圖。在BERT[6]、ELMo[7]、RoBERT[8]以及XLNet[9]等預(yù)訓(xùn)練模型提出后,利用大規(guī)模數(shù)據(jù)訓(xùn)練動態(tài)詞向量的方法可以有效地解決一詞多義等問題。但對于人機(jī)對話而言,由于數(shù)據(jù)量較少且篇幅較短,利用上述從文本數(shù)據(jù)量角度出發(fā)的模型顯然無法豐富文本表示的語義信息。對于意圖識別而言,如果能識別出對話中的實(shí)體信息,在多數(shù)情況下,如果將專有名詞“快樂崇拜”識別為歌名,則可得出用戶有要聽歌的意圖。ERNIE[10]語言模型從實(shí)體信息出發(fā),在結(jié)合了預(yù)訓(xùn)練語言模型特點(diǎn)的基礎(chǔ)上,在文本表示階段,對文本中的實(shí)體信息進(jìn)行抽取并將實(shí)體信息加入預(yù)訓(xùn)練過程中,進(jìn)而得到的文本表示既符合當(dāng)前語境又包含了對話中的實(shí)體信息,可以有效地緩解對話篇幅短帶來的語境匱乏的問題。
對話文本意圖識別屬于一種特殊的文本分類。傳統(tǒng)基于規(guī)則模板的模型需要人為事先針對不同領(lǐng)域的類別構(gòu)造不同的匹配模板來進(jìn)行意圖的分類,基于規(guī)則的方法在初期單一領(lǐng)域尚可取得不錯的效果,但也存在適應(yīng)領(lǐng)域單一且人力成本較高的問題。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,其在表征學(xué)習(xí)上的優(yōu)勢越發(fā)明顯,越來越多的研究開始將神經(jīng)網(wǎng)絡(luò)應(yīng)用在意圖識別問題上。
文獻(xiàn)[11]利用無監(jiān)督學(xué)習(xí)訓(xùn)練模型權(quán)重,然后利用反向傳播做微調(diào),在意圖識別任務(wù)上取得了不錯的效果。文獻(xiàn)[12]利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)來提取用戶的查詢意圖,相比于手動提取特征,不僅可以獲得深層次的語義特征,還可以降低特征工程量,但CNN只能提取到對話的局部語義信息,無法提取到前后意圖的聯(lián)系。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)將文本看作一個序列,能夠從序列中學(xué)習(xí)到上下文的語義信息,文獻(xiàn)[13]利用RNN抽取對話的上下文信息從而提高意圖識別的準(zhǔn)確度。一個簡單的RNN存在梯度爆炸和梯度消失的問題,而且只考慮了前文對后文的影響,而人機(jī)對話存在用戶說話隨意性的問題,所以只考慮前文對后文影響顯然是不全面的。長短期記憶網(wǎng)絡(luò)LSTM(Long Short-Term Memory)和GRU(Gate Recurrent Unit)也是循環(huán)神經(jīng)網(wǎng)絡(luò),它們的提出解決了梯度爆炸和梯度消失的問題。GRU和LSTM都是時序神經(jīng)網(wǎng)絡(luò),GRU相比于LSTM,GRU更容易訓(xùn)練、參數(shù)量較少,能夠很大程度上提高訓(xùn)練效率。文獻(xiàn)[14]在ATIS和Cortana數(shù)據(jù)集上對LSTM和GRU進(jìn)行了對比,結(jié)果表明在意圖識別任務(wù)上GRU與LSTM的性能相當(dāng),但GRU的參數(shù)量更少并且模型相對簡單、更容易訓(xùn)練,因此很多時候會傾向于使用GRU。但GRU僅考慮上文對下文的影響,無法體現(xiàn)下文對上文的影響,而BiGRU則可同時考慮上下文的相互影響,因此該文采用BiGRU提取對話的時序特征。
將不同的神經(jīng)網(wǎng)絡(luò)進(jìn)行級聯(lián)相對于單一的神經(jīng)網(wǎng)絡(luò)往往有較大競爭力。文獻(xiàn)[15]將注意力機(jī)制和循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行簡單級聯(lián),在意圖識別任務(wù)上取得比單獨(dú)RNN或Attention更好的效果。文獻(xiàn)[16]則利用BiLSTM編碼器和注意力機(jī)制從字級別、句子級別提取對于意圖中的多級語義信息。文獻(xiàn)[17]提出結(jié)合CNN與LSTM的CLSTM模型對用戶對話中一定長度的上下文信息進(jìn)行語義特征建模。Liu D[18]等利用BERT作為預(yù)訓(xùn)練模型,并使用BiLSTM提取文本雙向特征,構(gòu)建了面向任務(wù)的人機(jī)對話的意圖分類模型。針對不同的特征如果給予相同的關(guān)注程度,那么在最后進(jìn)行分類的時候,會造成信息的榮譽(yù),常用注意力機(jī)制對特征給予不同的權(quán)值,從而提升特征的質(zhì)量。最近計算機(jī)視覺領(lǐng)域火熱的gMLP[19]利用多層基于門控的內(nèi)部機(jī)制從空間和通道角度對圖像特征進(jìn)行增強(qiáng)或削弱能夠達(dá)到和注意力機(jī)制同樣甚至更好的效果,而gMLP在模型上更加簡單,因此該文將gMLP首次應(yīng)用在對話文本意圖識別上,對時序特征和實(shí)體信息進(jìn)行融合。綜上所述,針對人機(jī)對話文本的特點(diǎn),選取ERNIE語言模型來獲取符合語境且包含實(shí)體信息的文本表示,并利用BiGRU從時序上獲取上下文意圖之間的關(guān)系,再利用gMLP將時序特征和實(shí)體信息進(jìn)行融合,進(jìn)而提高意圖識別效果。
在人機(jī)對話中存在對話短和隨意性的特點(diǎn),這會導(dǎo)致語境匱乏和意圖不清晰的問題,而這兩者對意圖的影響較大,所以以這兩個問題作為出發(fā)點(diǎn)進(jìn)行研究。對于語境匱乏的問題,采用完全基于注意力機(jī)制的Transformer,其能夠依據(jù)不同的上下文動態(tài)生成詞向量,同時在動態(tài)生成詞向量時加入實(shí)體信息去緩解語境匱乏的問題。對話隨意性會導(dǎo)致意圖不清晰,考慮從對話的時序特征上對意圖進(jìn)行捕獲,通過捕捉對話雙向時序特征來獲取對話中的具體意圖。在解決上述兩個問題后,考慮到兩者是從不同層面對模型進(jìn)行改進(jìn),該文提出一種融合實(shí)體信息和時序特征的對話文本意圖識別模型。模型的整體框架如圖1所示。該模型在整體上可分為兩個模塊:文本表示模塊和特征融合模塊,兩者分別對應(yīng)圖1中的文本表示和特征融合。
從提升文本表示所蘊(yùn)含的信息角度出發(fā),通過捕捉對話中的實(shí)體信息并動態(tài)生成符合當(dāng)前語境的詞向量來豐富文本表示的信息。例如一個句子的輸入包含n個詞語,T={T1,T2,…,Tn},首先在進(jìn)行詞向量訓(xùn)練前,對T中部分詞進(jìn)行mask,對比BERT的隨機(jī)mask詞語,該文采用的ERNIE通過mask句子中的實(shí)體,這樣模型在訓(xùn)練完成后,也就學(xué)習(xí)到了這些實(shí)體的信息。ERNIE在經(jīng)過mask之后得到E,將E在訓(xùn)練過程中采用一個多層的Transformer作為動態(tài)詞向量的編碼器,Transformer通過多頭注意力機(jī)制可以依據(jù)詞在文本中的上下文信息,動態(tài)生成符合語境的特征表示。經(jīng)過文本表示模塊之后文本表示為x={x1,x2,…,xn},其中詞向量的維度為k。實(shí)體動態(tài)詞向量生成過程如圖2所示。
其中,Ti-1表示在訓(xùn)練過程中i時刻詞向量的狀態(tài),ei-1表示在時刻i輸入訓(xùn)練過程的實(shí)體信息。核心公式如公式(1):
(1)
從對話文本的時序角度出發(fā),通過提取對話前后意圖之間的聯(lián)系來捕獲用戶的意圖信息??紤]前后之間的關(guān)系,如序列前文內(nèi)容在意圖的表達(dá)上對后文是否有影響,影響有多大,相同的也需要考慮后文內(nèi)容對前文意圖的影響。但是如果不加距離地考慮前文哪一段對后文產(chǎn)生了影響,而是考慮前文所有內(nèi)容,無疑是會造成信息冗余從而導(dǎo)致精度下降。所以采用BiGRU對x進(jìn)行雙向長短距離的特征提取,提取得到對話時序上的特征。其中單向GRU時序特征提取器如圖3所示。
其中,xt表示t時刻輸入詞,Ht-1表示t-1時刻輸出的隱藏狀態(tài),rt表示重置門,zt表示更新門。更新門用于控制前一時刻的狀態(tài)信息被帶入到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時刻的狀態(tài)信息帶入越多,如果為1,則表明前一時刻信息完全可以覆蓋當(dāng)前狀態(tài),如果為0則說明前一刻的狀態(tài)信息沒有任何作用。重置門rt控制前一狀態(tài)有多少信息被寫入到當(dāng)
rt=σ(Wr·[Ht-1,xt])
(2)
zt=σ(Wz·[Ht-1,xt])
(3)
(4)
(5)
(6)
在獲得含有實(shí)體信息的動態(tài)詞向量和文本的序列特征的信息后需要對這些特征進(jìn)行融合。盡管序列特征信息中包含有實(shí)體信息,但是經(jīng)過雙向長短距離的特征提取后實(shí)體信息會有所衰減,常用的解決方法是將含有實(shí)體信息的文本表示與序列特征進(jìn)行簡單地拼接。拼接過程如公式(7)所示。
Vx=[V,x]
(7)
通過對不同層特征進(jìn)行拼接后,得到的Vx所包含的語義信息既有原始的實(shí)體信息又有文本序列上的信息,如果不對Vx進(jìn)行有效地融合則會導(dǎo)致計算量過大同時也會導(dǎo)致信息的榮譽(yù),對特征給予相同的關(guān)注程度會影響到那些可以體現(xiàn)意圖的特征不明顯。故在得到多層的特征之后,采用門控機(jī)制對特征沿著通道的維度推斷出權(quán)重,然后與原特征圖相乘來對特征進(jìn)行自適應(yīng)調(diào)整,這樣就能將多層的特征進(jìn)行有效地增強(qiáng)或削弱。其中特征選擇器內(nèi)部結(jié)構(gòu)如圖4所示。
其中Channel proj1和Channel proj2都是線性映射,前者將輸入n*d的輸入向量VT映射成n*d_fnn的向量,后者將n*d_fnn映射成n*d;split是將n*d_fnn一分為二為VxR和VxL。
Spatial proj為了捕捉詞與詞之間復(fù)雜空間的交互信息,計算過程如公式(8)和公式(9):
Fw,b(VxR)=W·VxR+b
(8)
s(Vx)=VxL⊙Fw,b(VxR)
(9)
其中,b是偏置項(xiàng),s(Vx)捕捉了詞與詞之間的關(guān)系信息,通過s(Vx)多層特征可以進(jìn)行自適應(yīng)調(diào)整以此來對特征進(jìn)行選擇。
為驗(yàn)證所提模型在人機(jī)對話意圖識別任務(wù)上的有效性,在不同任務(wù)的意圖識別數(shù)據(jù)集CCKS2018和SMP2018進(jìn)行實(shí)驗(yàn);其中CCKS2018是識別用戶是否具有點(diǎn)歌意圖的數(shù)據(jù)集,SMP2018則是判定用戶閑聊的領(lǐng)域。將每個數(shù)據(jù)集隨機(jī)打亂,平均分成10份,按照訓(xùn)練集∶驗(yàn)證集∶測試集= 8∶1∶1的比例進(jìn)行數(shù)據(jù)劃分。數(shù)據(jù)集的劃分如表1所示。
表1 數(shù)據(jù)劃分
以下參數(shù)均由實(shí)驗(yàn)所得,其中batch_size為32;Dropout為0.1;優(yōu)化器為BertAdam,學(xué)習(xí)率為0.001,設(shè)置warnup為0.05;句子的最大長度為30,策略是取長補(bǔ)短;gMLP層數(shù)為6。選用準(zhǔn)確度precision和綜合評價指標(biāo)f1作為模型的評價指標(biāo)。
實(shí)驗(yàn)開發(fā)平臺如下:操作系統(tǒng)為Windows10,CPU為R7- 2700,GPU為RTX2060,開發(fā)工具為PyCharm,深度學(xué)習(xí)框架為Pytorch-1.8.0。
為驗(yàn)證所提模型在意圖識別準(zhǔn)確率上的提升,對比近年來在對話意圖識別任務(wù)上具有代表性的模型方法,實(shí)驗(yàn)結(jié)果如表2所示。
表2 代表性意圖識別模型性能比較
在準(zhǔn)確率和f1上對比其他三個模型,說明無論是在單意圖識別任務(wù)上還是多意圖識別上,所提模型在兩個數(shù)據(jù)集上均取得最好的表現(xiàn),說明面對不同的意圖識別任務(wù),融合實(shí)體信息和時序特征的方法相比于已有的模型具有更好的效果。
為驗(yàn)證實(shí)體信息對語境豐富的影響,設(shè)計在文本表示階段不捕獲實(shí)體信息的BERT-CBMLP模型,同時設(shè)計在文本表示階段加入主題詞的Th-CBMLP模型。實(shí)驗(yàn)結(jié)果如表3所示。
表3 融合實(shí)體信息性能比較
從表3可以得出以下結(jié)論,在文本表示階段沒有加入其他信息的BERT-CBMLP比加入主題信息的Th-CBMLP和捕獲實(shí)體信息的OurModel效果要低,表明在文本表示階段主題信息和實(shí)體信息可以增強(qiáng)語境的表達(dá)。主題信息來自對話文本中關(guān)鍵字,屬于內(nèi)部信息,而實(shí)體信息則屬于外部信息,相比內(nèi)部信息,外部信息能夠提供更多的語義信息。
為探究對話中時序特征對意圖表達(dá)的影響,設(shè)計ERNIE-gMLP來探究加入時序特征和不加入時序特征對意圖識別的影響;設(shè)計加入GRU提取單方向時序信息的ERNIE-CGRU-gMLP來探究雙向時序特征在提取意圖上的優(yōu)勢;設(shè)計利用Transformer加入詞位置信息的ERNIE-CTrm-gMLP來對比從不同角度考慮對話前后意圖的聯(lián)系。實(shí)驗(yàn)結(jié)果如表4所示。
表4 時序特征性能分析
由表4可以得出,對比不提取時序特征的ERNIE-gMLP,其他三個提取時序或位置信息的模型在單意圖和多意圖數(shù)據(jù)集上均取得了較大的性能提升,說明對于對話意圖識別而言,應(yīng)該考慮對話前后在表達(dá)意圖上的關(guān)系。對比提取單向時序特征和加入詞的位置信息,兩者在不同數(shù)據(jù)集上的結(jié)果各有高低但相差較小,說明對于對話意圖識別而言,通過加入詞的位置信息可以達(dá)到僅提取單向時序特征同樣的效果。由于用戶在表達(dá)意圖是比較隨意,比如,用戶在開始表明有多個意圖的可能性,最后通過指代來說明具體意圖,這時候單向的時序則無法準(zhǔn)確識別出具體的意圖,所以利用BiGRU從雙向提取對話的時序信息可以有效地提取到具體的意圖。
為驗(yàn)證對特征進(jìn)行不同程度融合可以提升模型性能,對比將實(shí)體信息和時序特征進(jìn)行concat的ERNIE-CBiGRU、進(jìn)行add的ERNIE-ABiGRU以及不進(jìn)行特征融合的ERNIE-BiGRU。實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同特征融合方法對比
由表5可以看出,不進(jìn)行特征融合的在兩個數(shù)據(jù)集上precision和f1都是最小的,對特征從不同角度進(jìn)行融合可以提高意圖識別的效果,所以對話意圖識別上可以從不同角度對實(shí)體信息和時序特征進(jìn)行融合,從而有效地提高意圖識別的效果。但是對于不同的方法而言,add方法是將特征圖相加,保持原有的通道數(shù)不變,concat則是通道數(shù)的增加,在兩個數(shù)據(jù)集上進(jìn)行concat的效果要略好于add方法,特征圖的相加無疑會增加后面分類的信息量,也會有較多信息的損失,而concat則是把信息全部帶到下一分類層中。但進(jìn)行concat也會帶來信息的冗余,所以O(shè)urModel在concat之后利用多層gMLP對實(shí)體信息和時序信息進(jìn)行自適應(yīng)的融合,通過gMLP的內(nèi)部內(nèi)部空間控制單元對concat之后的重要特征進(jìn)行增強(qiáng),對于一些噪音特征進(jìn)行弱化,從而有效地提高意圖識別的效果。
該文提出了一種特征融合的方法,具體來說,首先利用對話中的實(shí)體信息在語義表達(dá)上和BiGRU在時序特征提取上的優(yōu)勢,再利用多層gMLP的門控機(jī)制自適應(yīng)調(diào)整實(shí)體信息和時序特征的權(quán)值。實(shí)驗(yàn)結(jié)果表明,所提模型對不同任務(wù)人機(jī)對話領(lǐng)域均具有較好的性能表現(xiàn)。該模型方法可以應(yīng)用在任務(wù)型對話中,比如,預(yù)定酒店、機(jī)票等。大多數(shù)模型都假定用戶的語句只有一個意圖分類,但是很多情況并不是這樣,真實(shí)環(huán)境下用戶往往存在多個意圖。目前多意圖的研究還比較少,這也是未來一個重要的研究方向。