鄭思露,程春玲,毛 毅
(南京郵電大學 計算機學院,江蘇 南京 210023)
近年來,隨著語音識別和自然語言理解的快速發展,人機對話已經變得越來越流行。目前,國內外許多機構已經開發了自己的人機對話系統,如蘋果的Siri語音助手、百度的小度智能助手等閑聊領域的系統,還有針對特定領域的系統,如智能點歌系統。其中用戶意圖識別是整個系統的核心,正確的意圖不僅可以提高系統的效率還可以提升用戶的使用體驗。
對話意圖識別是指對人機的對話文本進行分類進而實現意圖識別,不同的任務類型對應著不同的分類模型,如閑聊系統則屬于多分類,即識別出相應領域再有針對性地聊天,而點歌系統則屬于二分類,即判斷用戶是否有點歌的意圖,為下游功能提供支撐。
目前,將一般的文本分類方法應用在人機對話意圖識別任務上已經取得了不錯的效果,但是對話文本與常規文本在篇幅和內容上存在很大差異,因此要想取得更好的意圖識別效果就必須針對對話文本存在的難點設計合理的分類模型。首先,在人機對話中,用戶往往是通過少量的話語表達自己的意圖,這就造成缺乏足夠的篇幅從而導致語境匱乏,其中還會存在一些實體信息,如專有名詞,常規模型無法識別出這些專有名詞,從而把它和其他文本一樣對待,這也會造成語境的匱乏;其次,用戶在表達意圖時比較隨意,無法確定用戶在對話開頭、中間或是結尾表達了自己的確切意圖,而且前后意圖還存在相互的影響,這都會導致意圖含義不明確。因此,針對上述在人機對話意圖識別中語境匱乏和意圖模糊的問題,該文提出一種融合實體信息和時序特征的模型。該模型能夠增強對話文本的語義表示,同時能夠捕獲意圖在時序上的表達,再通過特征融合提升意圖識別的準確率。具體而言,首先,在文本表示模塊,結合對話中的實體信息動態生成符合語境的詞向量從而減少因對話篇幅短帶來的文本語境匱乏;其次,在時序特征提取模塊,利用雙向長短期記憶網絡提取對話中前后意圖的聯系從而減少因對話隨意性帶來的意圖不清晰;最后,在特征融合模塊,利用多層門控內部自相關機制自適應融合對話中的實體信息和時序特征,這樣既考慮了對話篇幅短和隨意性的問題,又對特征進行了不同程度的融合,從而提升意圖識別的效果。
在進行意圖識別前,首先要將對話文本轉換成計算機可以處理的形式。一個能夠蘊含豐富信息且噪音小的高質量文本表示可以極大地提升模型的性能。
早期主要采用One-hot[1]、TF-IDF[2]等基于詞頻的模型對文本進行表示,但是隨著詞表的增加會產生維數災難和語義缺失等問題。隨著神經網絡和表征學習的發展,Word2vec[3-4]和Glove[5]利用詞向量訓練方法來得到文本表示可以解決維數災難和緩解語義缺失的問題。但是詞向量往往只包含了淺層、單一的語義信息,對于人機對話語境匱乏,詞向量顯然無法清晰地表達用戶的意圖。在BERT[6]、ELMo[7]、RoBERT[8]以及XLNet[9]等預訓練模型提出后,利用大規模數據訓練動態詞向量的方法可以有效地解決一詞多義等問題。但對于人機對話而言,由于數據量較少且篇幅較短,利用上述從文本數據量角度出發的模型顯然無法豐富文本表示的語義信息。對于意圖識別而言,如果能識別出對話中的實體信息,在多數情況下,如果將專有名詞“快樂崇拜”識別為歌名,則可得出用戶有要聽歌的意圖。ERNIE[10]語言模型從實體信息出發,在結合了預訓練語言模型特點的基礎上,在文本表示階段,對文本中的實體信息進行抽取并將實體信息加入預訓練過程中,進而得到的文本表示既符合當前語境又包含了對話中的實體信息,可以有效地緩解對話篇幅短帶來的語境匱乏的問題。
對話文本意圖識別屬于一種特殊的文本分類。傳統基于規則模板的模型需要人為事先針對不同領域的類別構造不同的匹配模板來進行意圖的分類,基于規則的方法在初期單一領域尚可取得不錯的效果,但也存在適應領域單一且人力成本較高的問題。隨著神經網絡的發展,其在表征學習上的優勢越發明顯,越來越多的研究開始將神經網絡應用在意圖識別問題上。
文獻[11]利用無監督學習訓練模型權重,然后利用反向傳播做微調,在意圖識別任務上取得了不錯的效果。文獻[12]利用卷積神經網絡(Convolutional Neural Network,CNN)來提取用戶的查詢意圖,相比于手動提取特征,不僅可以獲得深層次的語義特征,還可以降低特征工程量,但CNN只能提取到對話的局部語義信息,無法提取到前后意圖的聯系。循環神經網絡(Recurrent Neural Network,RNN)將文本看作一個序列,能夠從序列中學習到上下文的語義信息,文獻[13]利用RNN抽取對話的上下文信息從而提高意圖識別的準確度。一個簡單的RNN存在梯度爆炸和梯度消失的問題,而且只考慮了前文對后文的影響,而人機對話存在用戶說話隨意性的問題,所以只考慮前文對后文影響顯然是不全面的。長短期記憶網絡LSTM(Long Short-Term Memory)和GRU(Gate Recurrent Unit)也是循環神經網絡,它們的提出解決了梯度爆炸和梯度消失的問題。GRU和LSTM都是時序神經網絡,GRU相比于LSTM,GRU更容易訓練、參數量較少,能夠很大程度上提高訓練效率。文獻[14]在ATIS和Cortana數據集上對LSTM和GRU進行了對比,結果表明在意圖識別任務上GRU與LSTM的性能相當,但GRU的參數量更少并且模型相對簡單、更容易訓練,因此很多時候會傾向于使用GRU。但GRU僅考慮上文對下文的影響,無法體現下文對上文的影響,而BiGRU則可同時考慮上下文的相互影響,因此該文采用BiGRU提取對話的時序特征。
將不同的神經網絡進行級聯相對于單一的神經網絡往往有較大競爭力。文獻[15]將注意力機制和循環神經網絡進行簡單級聯,在意圖識別任務上取得比單獨RNN或Attention更好的效果。文獻[16]則利用BiLSTM編碼器和注意力機制從字級別、句子級別提取對于意圖中的多級語義信息。文獻[17]提出結合CNN與LSTM的CLSTM模型對用戶對話中一定長度的上下文信息進行語義特征建模。Liu D[18]等利用BERT作為預訓練模型,并使用BiLSTM提取文本雙向特征,構建了面向任務的人機對話的意圖分類模型。針對不同的特征如果給予相同的關注程度,那么在最后進行分類的時候,會造成信息的榮譽,常用注意力機制對特征給予不同的權值,從而提升特征的質量。最近計算機視覺領域火熱的gMLP[19]利用多層基于門控的內部機制從空間和通道角度對圖像特征進行增強或削弱能夠達到和注意力機制同樣甚至更好的效果,而gMLP在模型上更加簡單,因此該文將gMLP首次應用在對話文本意圖識別上,對時序特征和實體信息進行融合。綜上所述,針對人機對話文本的特點,選取ERNIE語言模型來獲取符合語境且包含實體信息的文本表示,并利用BiGRU從時序上獲取上下文意圖之間的關系,再利用gMLP將時序特征和實體信息進行融合,進而提高意圖識別效果。
在人機對話中存在對話短和隨意性的特點,這會導致語境匱乏和意圖不清晰的問題,而這兩者對意圖的影響較大,所以以這兩個問題作為出發點進行研究。對于語境匱乏的問題,采用完全基于注意力機制的Transformer,其能夠依據不同的上下文動態生成詞向量,同時在動態生成詞向量時加入實體信息去緩解語境匱乏的問題。對話隨意性會導致意圖不清晰,考慮從對話的時序特征上對意圖進行捕獲,通過捕捉對話雙向時序特征來獲取對話中的具體意圖。在解決上述兩個問題后,考慮到兩者是從不同層面對模型進行改進,該文提出一種融合實體信息和時序特征的對話文本意圖識別模型。模型的整體框架如圖1所示。該模型在整體上可分為兩個模塊:文本表示模塊和特征融合模塊,兩者分別對應圖1中的文本表示和特征融合。
從提升文本表示所蘊含的信息角度出發,通過捕捉對話中的實體信息并動態生成符合當前語境的詞向量來豐富文本表示的信息。例如一個句子的輸入包含n個詞語,T={T1,T2,…,Tn},首先在進行詞向量訓練前,對T中部分詞進行mask,對比BERT的隨機mask詞語,該文采用的ERNIE通過mask句子中的實體,這樣模型在訓練完成后,也就學習到了這些實體的信息。ERNIE在經過mask之后得到E,將E在訓練過程中采用一個多層的Transformer作為動態詞向量的編碼器,Transformer通過多頭注意力機制可以依據詞在文本中的上下文信息,動態生成符合語境的特征表示。經過文本表示模塊之后文本表示為x={x1,x2,…,xn},其中詞向量的維度為k。實體動態詞向量生成過程如圖2所示。
其中,Ti-1表示在訓練過程中i時刻詞向量的狀態,ei-1表示在時刻i輸入訓練過程的實體信息。核心公式如公式(1):
(1)

從對話文本的時序角度出發,通過提取對話前后意圖之間的聯系來捕獲用戶的意圖信息。考慮前后之間的關系,如序列前文內容在意圖的表達上對后文是否有影響,影響有多大,相同的也需要考慮后文內容對前文意圖的影響。但是如果不加距離地考慮前文哪一段對后文產生了影響,而是考慮前文所有內容,無疑是會造成信息冗余從而導致精度下降。所以采用BiGRU對x進行雙向長短距離的特征提取,提取得到對話時序上的特征。其中單向GRU時序特征提取器如圖3所示。
其中,xt表示t時刻輸入詞,Ht-1表示t-1時刻輸出的隱藏狀態,rt表示重置門,zt表示更新門。更新門用于控制前一時刻的狀態信息被帶入到當前狀態中的程度,更新門的值越大說明前一時刻的狀態信息帶入越多,如果為1,則表明前一時刻信息完全可以覆蓋當前狀態,如果為0則說明前一刻的狀態信息沒有任何作用。重置門rt控制前一狀態有多少信息被寫入到當
rt=σ(Wr·[Ht-1,xt])
(2)
zt=σ(Wz·[Ht-1,xt])
(3)
(4)
(5)
(6)
在獲得含有實體信息的動態詞向量和文本的序列特征的信息后需要對這些特征進行融合。盡管序列特征信息中包含有實體信息,但是經過雙向長短距離的特征提取后實體信息會有所衰減,常用的解決方法是將含有實體信息的文本表示與序列特征進行簡單地拼接。拼接過程如公式(7)所示。
Vx=[V,x]
(7)
通過對不同層特征進行拼接后,得到的Vx所包含的語義信息既有原始的實體信息又有文本序列上的信息,如果不對Vx進行有效地融合則會導致計算量過大同時也會導致信息的榮譽,對特征給予相同的關注程度會影響到那些可以體現意圖的特征不明顯。故在得到多層的特征之后,采用門控機制對特征沿著通道的維度推斷出權重,然后與原特征圖相乘來對特征進行自適應調整,這樣就能將多層的特征進行有效地增強或削弱。其中特征選擇器內部結構如圖4所示。
其中Channel proj1和Channel proj2都是線性映射,前者將輸入n*d的輸入向量VT映射成n*d_fnn的向量,后者將n*d_fnn映射成n*d;split是將n*d_fnn一分為二為VxR和VxL。
Spatial proj為了捕捉詞與詞之間復雜空間的交互信息,計算過程如公式(8)和公式(9):
Fw,b(VxR)=W·VxR+b
(8)
s(Vx)=VxL⊙Fw,b(VxR)
(9)
其中,b是偏置項,s(Vx)捕捉了詞與詞之間的關系信息,通過s(Vx)多層特征可以進行自適應調整以此來對特征進行選擇。
為驗證所提模型在人機對話意圖識別任務上的有效性,在不同任務的意圖識別數據集CCKS2018和SMP2018進行實驗;其中CCKS2018是識別用戶是否具有點歌意圖的數據集,SMP2018則是判定用戶閑聊的領域。將每個數據集隨機打亂,平均分成10份,按照訓練集∶驗證集∶測試集= 8∶1∶1的比例進行數據劃分。數據集的劃分如表1所示。

表1 數據劃分
以下參數均由實驗所得,其中batch_size為32;Dropout為0.1;優化器為BertAdam,學習率為0.001,設置warnup為0.05;句子的最大長度為30,策略是取長補短;gMLP層數為6。選用準確度precision和綜合評價指標f1作為模型的評價指標。
實驗開發平臺如下:操作系統為Windows10,CPU為R7- 2700,GPU為RTX2060,開發工具為PyCharm,深度學習框架為Pytorch-1.8.0。
為驗證所提模型在意圖識別準確率上的提升,對比近年來在對話意圖識別任務上具有代表性的模型方法,實驗結果如表2所示。

表2 代表性意圖識別模型性能比較
在準確率和f1上對比其他三個模型,說明無論是在單意圖識別任務上還是多意圖識別上,所提模型在兩個數據集上均取得最好的表現,說明面對不同的意圖識別任務,融合實體信息和時序特征的方法相比于已有的模型具有更好的效果。
為驗證實體信息對語境豐富的影響,設計在文本表示階段不捕獲實體信息的BERT-CBMLP模型,同時設計在文本表示階段加入主題詞的Th-CBMLP模型。實驗結果如表3所示。

表3 融合實體信息性能比較
從表3可以得出以下結論,在文本表示階段沒有加入其他信息的BERT-CBMLP比加入主題信息的Th-CBMLP和捕獲實體信息的OurModel效果要低,表明在文本表示階段主題信息和實體信息可以增強語境的表達。主題信息來自對話文本中關鍵字,屬于內部信息,而實體信息則屬于外部信息,相比內部信息,外部信息能夠提供更多的語義信息。
為探究對話中時序特征對意圖表達的影響,設計ERNIE-gMLP來探究加入時序特征和不加入時序特征對意圖識別的影響;設計加入GRU提取單方向時序信息的ERNIE-CGRU-gMLP來探究雙向時序特征在提取意圖上的優勢;設計利用Transformer加入詞位置信息的ERNIE-CTrm-gMLP來對比從不同角度考慮對話前后意圖的聯系。實驗結果如表4所示。

表4 時序特征性能分析
由表4可以得出,對比不提取時序特征的ERNIE-gMLP,其他三個提取時序或位置信息的模型在單意圖和多意圖數據集上均取得了較大的性能提升,說明對于對話意圖識別而言,應該考慮對話前后在表達意圖上的關系。對比提取單向時序特征和加入詞的位置信息,兩者在不同數據集上的結果各有高低但相差較小,說明對于對話意圖識別而言,通過加入詞的位置信息可以達到僅提取單向時序特征同樣的效果。由于用戶在表達意圖是比較隨意,比如,用戶在開始表明有多個意圖的可能性,最后通過指代來說明具體意圖,這時候單向的時序則無法準確識別出具體的意圖,所以利用BiGRU從雙向提取對話的時序信息可以有效地提取到具體的意圖。
為驗證對特征進行不同程度融合可以提升模型性能,對比將實體信息和時序特征進行concat的ERNIE-CBiGRU、進行add的ERNIE-ABiGRU以及不進行特征融合的ERNIE-BiGRU。實驗結果如表5所示。

表5 不同特征融合方法對比
由表5可以看出,不進行特征融合的在兩個數據集上precision和f1都是最小的,對特征從不同角度進行融合可以提高意圖識別的效果,所以對話意圖識別上可以從不同角度對實體信息和時序特征進行融合,從而有效地提高意圖識別的效果。但是對于不同的方法而言,add方法是將特征圖相加,保持原有的通道數不變,concat則是通道數的增加,在兩個數據集上進行concat的效果要略好于add方法,特征圖的相加無疑會增加后面分類的信息量,也會有較多信息的損失,而concat則是把信息全部帶到下一分類層中。但進行concat也會帶來信息的冗余,所以OurModel在concat之后利用多層gMLP對實體信息和時序信息進行自適應的融合,通過gMLP的內部內部空間控制單元對concat之后的重要特征進行增強,對于一些噪音特征進行弱化,從而有效地提高意圖識別的效果。
該文提出了一種特征融合的方法,具體來說,首先利用對話中的實體信息在語義表達上和BiGRU在時序特征提取上的優勢,再利用多層gMLP的門控機制自適應調整實體信息和時序特征的權值。實驗結果表明,所提模型對不同任務人機對話領域均具有較好的性能表現。該模型方法可以應用在任務型對話中,比如,預定酒店、機票等。大多數模型都假定用戶的語句只有一個意圖分類,但是很多情況并不是這樣,真實環境下用戶往往存在多個意圖。目前多意圖的研究還比較少,這也是未來一個重要的研究方向。