牛 迪
(浙江大學 經(jīng)濟學院,浙江 杭州 310027)
在自然語言處理(Natural language processing,NLP)中,任務型人機對話系統(tǒng)的研究一直都備受關注,對它的研究投入也越來越多[1,2]。如今,在各個領域都可以見到任務型對話系統(tǒng)的實際應用場景,如金融[3]、智能家居[4]、汽車等。在任務型人機對話系統(tǒng)中,口語語言理解(Spoken language understanding,SLU)是至關重要的環(huán)節(jié),需要識別用戶的意圖,以及相關的語義成分,也稱之為槽。為此,SLU的任務常劃分成兩個子任務:意圖識別、槽抽取。意圖識別可視為文本分類類型的問題,預測用戶話術的意圖類型。而槽抽取則常被視作序列標注類型的問題,預測用戶話術中的每一個字或者詞的標注類別。以金融領域的智能問答機器人為例,用戶會咨詢股票漲跌類的問題,如:“今天A股的漲幅是多少”,其意圖類別及序列標注類別如圖1所示。
圖1 SLU的子任務示例:意圖識別、槽抽取
傳統(tǒng)的槽抽取模型多采用規(guī)則模版和句法分析相結合的方法[5,6],先利用句法分析獲取句法樹結構,然后在句法樹的基礎上編寫相應的規(guī)則,從中抽取出相應的槽值。隨著深度學習的興起,槽抽取逐漸采用了序列標注的方案,實現(xiàn)實體識別,進而抽取出相應的槽值。由于意圖和槽之間的強相關性,研究人員現(xiàn)多采用聯(lián)合學習模型[4,7-14](Joint learning models)來同時實現(xiàn)意圖識別和槽提取,通過卷積神經(jīng)網(wǎng)絡(Convolutional neural network,CNN)或雙向長短期記憶模型(Bi-directional long short-term memory,Bi-LSTM)提取句子特征,用作意圖識別模型和槽抽取模型的共享特征。同時利用意圖和槽之間的強相關性,將意圖作為槽抽取模型的一個輸入特征,構建聯(lián)合損失函數(shù)。
當前的聯(lián)合學習模型多采用門控機制將意圖特征關聯(lián)到槽提取模型中,但是在門控機制下,槽抽取模型獲得的意圖信息是隱向量,這并不能充分的保留意圖信息[15,16],同時降低了模型的可解釋性。為此,Qin等[15]采用了堆棧傳播(Stack-propagation)架構,將意圖直接編碼,輸入槽提取模型。除了門控機制外,當前的槽抽取模型在輸入表征層還只是單純依靠詞嵌入(Word embedding),并沒有用到其它語言領域的先驗知識。而阻礙先驗知識應用的很大原因是深度學習的模型結構很難和先驗知識做融合。Luo等[17]采用了規(guī)則系統(tǒng)和神經(jīng)網(wǎng)絡相結合的方法,將正則表達式識別出的結果編碼成詞的一個特征,和詞嵌入拼接成詞向量,輸入神經(jīng)網(wǎng)絡的輸入表征層。但是,通過規(guī)則系統(tǒng)來引入先驗知識的弊端是需要編寫大量的正則表達式才能識別出詞特征,以及規(guī)則之間的相互沖突會加大先驗知識的融入難度。
為此,本文將自注意力[18-22]機制(Self-attention)引入到槽抽取模型中,用于融合多維度的先驗知識信息,同時采用Qin等[15]對意圖信息的處理方式,拋棄門控機制,利用自注意力機制來融合意圖信息和先驗知識。為后續(xù)陳述方便,將意圖信息、先驗知識等統(tǒng)稱為多維度特征。在圖像處理領域,研究人員也有采用自注意力機制[22]和多特征融合[23]來提升圖像識別的能力。Zechao[22]等利用自注意力機制抽取同品類物體的像素信息,以提升語義分割的性能,且實驗結果驗證了該方案的有效性。除此之外,Zechao[23]等還采用了深度協(xié)同嵌入(Deep collaborative embedding,DCE)框架融合社交網(wǎng)絡圖片的多標簽特征,在社交網(wǎng)絡圖片理解上取得了很好的實驗結果。
本文具體從以下三個方面對槽抽取模型的研究進行了擴充。
(1)設計了獨立的槽抽取模型,在不依賴聯(lián)合模型的前提下,依然能夠充分利用意圖識別的信息。同時,解耦意圖識別模型和槽抽取模型,好處在于方便意圖識別任務采用集成學習來提升性能;
(2)本文采用自注意力機制,能夠融合了更多的字詞表征信息,實現(xiàn)了意圖特征、上下文特征、字符特征、詞特征等多維度特征融合,實驗結果也驗證了該方法的有效性;
(3)在系統(tǒng)中增加了新詞詞特征的處理方案,通過詞典和本體共同處理新詞現(xiàn)象,使得垂直領域的新詞解決能力大大提升??梢圆挥迷谖谋菊Z料上標注數(shù)據(jù),只需簡單的將新詞添加到對應的詞典即可。
本文在公開數(shù)據(jù)集ATIS(Airline travel information system)的基礎上,通過對比傳統(tǒng)的聯(lián)合模型或者獨立的槽抽取模型,本文的槽抽取模型對新詞的識別能力更強,整體槽抽取的F1值能達到97.99%。
區(qū)別于常見的自注意力機制的使用方法,本文使用自注意力機制來融合字、詞,以及意圖的多維度特征,而不是用于句子的編碼。本文的模型結構如圖2所示。
圖2 模型結構
本文所采用的多維度特征指:意圖特征、詞特征、詞典特征,以及字符特征。假設一個句子的字符長度為m,字符嵌入向量長度為dc;詞的個數(shù)為n,詞嵌入向量長度和詞典特征的向量長度都為dw。意圖特征來源于意圖識別的結果,對識別出的意圖字段做隨機初始化編碼,生成長度為di的向量。整個特征融合的過程如下:
步驟1對于字符,通過CNN對句子字符做一維卷積,卷積核(Kernel)個數(shù)為k,每個kernel是w×dc矩陣,經(jīng)過填充(Padding)卷積操作,生成m×k的矩陣Mc;
步驟2對意圖特征向量做擴充,生成m×di矩陣,并與字符矩陣Mc做拼接,生成Q矩陣,尺寸為m×(di+k)。為保證后續(xù)的注意力運算正確,Q矩陣的尺寸需要滿足di+k=dw,即Q為m×dw的矩陣;
步驟3對于詞,由于存在生詞沒有對應預訓練詞嵌入的現(xiàn)象,需要通過詞典特征和詞嵌入兩種做復合查詢。預先會根據(jù)應用場景創(chuàng)建一系列詞典,如股票名詞典、家居設備詞典。當出現(xiàn)沒有對應的詞嵌入時,系統(tǒng)會查詢該詞所在的詞典,并將詞典特征視為該詞的向量;
步驟4在獲得句子中每個詞的向量后,生成K、V矩陣,尺寸為n×dw,且K=V。至此,自注意力機制中的所需要的Q、K、V舉證全部構建完成;
步驟5本文采用了變換網(wǎng)絡(Transformer)[15]模型的點積注意力(Scaled dot-product attention)機制,將構建的Q、K、V矩陣輸入自注意力模塊,經(jīng)方程
的處理,最終實現(xiàn)了各維度特征的融合。其中,Q、K、V矩陣分別為自注意力模型中的查詢矩陣(Query matrix)、鍵矩陣(Key matrix),以及值矩陣(Value matrix),如圖3所示。經(jīng)過以上的特征融合操作,最終輸出m×dw尺寸的矩陣,可等效為m個字符的特征矩陣。
圖3 點積自注意力模塊
在整個模型結構中,關鍵性的計算單元是CNN、自注意力模塊,以及Bi-LSTM模塊。CNN的計算復雜度是O(k×n×d2),自注意力的計算復雜度是O(d×n2),Bi-LSTM的計算復雜度是O(n×d2)。其中,k為卷積核的尺寸,n是句子長度,d為各計算模塊的輸入向量維度。考慮到實際應用中,向量維度d會遠大于句子長度n,而卷積核的尺寸較小,因此整個模型的計算復雜度為O(n×d2)。同時,CNN和自注意力的順序操作(Sequential operations)步數(shù)為O(1),Bi-LSTM的順序操作步數(shù)為O(n),因此整個模型的順序操作步數(shù)為O(n)。
雖然整個模型結構中利用到了詞特征和詞典特征,但是在經(jīng)過注意力機制的特征融合后,實際輸出的m×dw矩陣可等效成字符特征。因此,模型中的Bi-LSTM需要基于字符來做訓練和預測。Bi-LSTM利用長短期記憶模型(Long short-term memory,LSTM)單元對輸入的字符特征做編碼,前向LSTM和反向LSTM分別輸出各自的隱向量,然后由拼接單元將其拼接,最終得到Bi-LSTM的輸出隱向量。
CRF層采用線性CRF[24](linear CRF),在Bi-LSTM和線性CRF融合的模型結構中,由Bi-LSTM輸出發(fā)射概率矩陣,CRF結合發(fā)射概率矩陣和標簽轉移矩陣,預測每個字符的序列標簽。其模型結構如圖4所示。
圖4 Bi-LSTM和CRF網(wǎng)絡結構
其中,參數(shù)w可歸納為CNN網(wǎng)絡參數(shù)、Bi-LSTM網(wǎng)絡參數(shù)、CRF的轉移矩陣參數(shù)。除了網(wǎng)絡參數(shù)外,本文模型的超參數(shù)值如表1所示。
表1 模型超參數(shù)
為驗證模型的性能,本文搭建的實驗環(huán)境為4核CPU、2080Ti GPU,以及8G內存。實驗數(shù)據(jù)為公開數(shù)據(jù)集ATIS,同時創(chuàng)建了城市名詞典、日期詞典等,訓練耗時約為48 min。為方便與文獻中有代表性的模型結果進行對比,本文方案命名為Attention multi-feature,實驗結果如表2所示。
表2 ATIS實驗對比數(shù)據(jù)
CNN-CRF[25]模型采用CNN對句子做編碼,提取詞特征信息,CRF層采用這些特征預測詞的槽位標簽。Attention Encoder-Decoder NN[11]模型采用了常規(guī)機器翻譯模型的編碼器解碼器(Encoder-decoder)結構,編碼器(Encoder)用于句子編碼,提取詞特征信息,將Bi-LSTM生成的隱向量作為特征用于解碼器(Decoder)。除了隱向量,解碼器還利用上下文向量(Context vector)作為特征用于預測詞的槽位標簽。與Attention Encoder-Decoder NN相似,Attention BiRNN[11]模型也是采用了Bi-LSTM對句子編碼,同時借助加權平均的方式來生成context vector。Slot-Gated[10]模型依然是采用Bi-LSTM對句子做編碼,提取詞特征信息,但采用了門控機制來將意圖信息融入到槽提取模型中。
區(qū)別于上述模型,本文的Attention multi-feature模型除了用到詞特征信息外,還采用了詞的字符特征信息、詞典信息,同時采用了自注意力機制將意圖信息融入到槽提取模型中。從實驗結果中可以看出,相比以往文獻的模型方案,本文所采用方案在性能上有優(yōu)勢,F(xiàn)1值優(yōu)于常見方案,最大提升了約3%。
為分析各特征對實驗結果的影響程度,本文進行了消融實驗,結果如表3所示。其中,“W/O詞典”表示忽略詞典特征;“W/O CNN”表示模型結構中刪除CNN結構,即忽略字符特征;“W/O 詞”表示模型結構中忽略詞嵌入和詞典特征。
表3 消融實驗
從實驗結果中可以看出,不同維度特征的缺失都會影響到識別的性能。其中,詞典特征對性能的影響較小,詞特征對性能的影響較大。由此可以說明,多維度的特征融合能夠提升槽識別的性能。
由于忽略詞嵌入和詞典特征會帶來自注意力模型的K矩陣和V矩陣的缺失,因此在“W/O詞”的實驗中,本文的模型結構也需要相應地刪除自注意力機制,進而導致模型的性能大大降低。而無論是忽略詞典特征的實驗“W/O詞典”,還是忽略字符特征的實驗“W/O CNN”,其模型結構中都需要自注意力機制做特征融合,這兩者的實驗結果都優(yōu)于“W/O詞”,由此可以說明,自注意力機制在本文的模型結構設計中起到了十分重要的作用。
同時,對比忽略詞典特征的實驗“W/O詞典”和忽略字符特征的實驗“W/O CNN”,發(fā)現(xiàn)詞典特征對模型的性能影響較弱。這是因為在本文的模型結構設計中,詞嵌入和詞典特征是復合查詢,當沒有對應詞的詞嵌入時,才會采用詞典特征。
從中可以看出,本文所采用的方案在準確率和召回率方面均有優(yōu)勢,F(xiàn)1值能達到97.99%。
任務型人機對話系統(tǒng)的語言理解模塊可以簡單的劃分為意圖識別和槽抽取兩個任務。本文將槽抽取任務視為序列標注類問題,采用了基于自注意力機制的多特征融合模型,簡稱Attention multi-feature。本文在現(xiàn)有的Bi-LSTM+CRF模型框架的基礎上設計了新的特征提取模塊,利用自注意力機制,將字符特征、詞特征、詞典信息、意圖信息融合成一個矩陣。因為矩陣的尺寸和句子字符embedding的尺寸相同,因此可以認為字注意力機制將多維度特征融合成了一個新的字符特征,同時后續(xù)模塊采用了傳統(tǒng)的基于字符的Bi-LSTM+CRF模型。
為了驗證模型方案的效果,本文構建了在ATIS數(shù)據(jù)集的基礎上,對比分析了以往文獻的模型方案。實驗結果表明,本文的模型方案在性能上有優(yōu)勢,F(xiàn)1值最大提升了3%。