侯麗仙,李艷玲,林 民,李成城
內蒙古師范大學計算機科學技術學院,呼和浩特 010022
口語理解是對話系統中至關重要的一部分,其性能直接影響整個對話系統的性能[1-2],意圖識別和語義槽填充是口語理解的兩個子任務[3-4]。意圖識別任務主要分析理解輸入語句中用戶話語行為,語義槽填充任務主要解決特定領域關鍵詞以及屬性的標注問題,口語理解通過完成兩個任務并將意圖和關鍵詞用語義框架表示出來,有助于后續對話系統的研究。
解決意圖識別任務的傳統方法包括支持向量機(support vector machine,SVM)[5]、樸素貝葉斯(naive Bayes,NB)[6]、決策樹(decision tree,DT)[7]等。解決語義槽填充任務的傳統方法包括條件隨機場(conditional random fields,CRF)[8]、隱馬爾可夫(hidden Markov model,HMM)[9]模型、最大熵(maximum entropy,ME)[10]模型等。
對于口語理解任務,通過上下文獲取用戶表達中詞匯的語義信息以及全局語法信息至關重要。近年來,由于深度神經網絡可以自主學習輸入文本的特征,以及在訓練過程中能捕獲更深層次語義信息等優點,因此在口語理解任務中被廣泛應用。由于雙向長短時記憶網絡(bidirectional long short-term memory,BLSTM)可以捕獲上下文信息,CRF可以根據標簽間的關系進行結果調整,使得標注結果更為準確,因此有學者將BLSTM神經網絡模型與CRF語言模型相結合應用于不同領域的命名實體識別任務[11-13]。
意圖識別和語義槽填充兩個任務相互依賴,例如一個短文本的意圖是“查閱書籍”,那么該短文本很可能包含“作者”及“書名”等相關語義槽類型;而一個短文本的意圖是“預定機票”時,那么該短文本可能包含“出發城市”“到達城市”以及“出發日期”等相關語義槽類型。即不同的意圖,對應的語義槽類型也是不同的,說明意圖和語義槽填充具有很強的關聯關系。意圖識別和語義槽填充任務的執行策略有并聯型和級聯型[4]。并聯方式將兩個任務看作獨立任務進行解決,該方式無法實現輸入的詞與詞之間的特征共享;級聯方式將兩個任務順序執行,前一個任務的結果作為后續任務的先驗知識,但是會出現誤差累積的問題,因此聯合識別成為當前口語理解的主流方法[14-16]。
由于意圖識別和語義槽填充具有相關性,而獨立建模和級聯方式建模等都無法利用兩者的相關性提升對話系統的性能,因此相關領域的研究者紛紛采用聯合建模方法。Jeong等人采用三角鏈條件隨機場(triangular-chain CRF)模型,解決意圖識別和語義槽填充任務,共同捕獲兩者的內在聯系[17]。該模型雖然在聯合識別上作出了一定的貢獻,但是仍存在傳統統計機器學習的不足,費時費力,而且需要足夠多的訓練語料。
2013年微軟的Xu等人使用卷積神經網絡(convolutional neural networks,CNN)和三角鏈條件隨機場(CNN-TriCRF)用于意圖和語義槽填充的聯合識別[18]。Xu的貢獻在于使用CNN學習文本特征,而不是人工提取特征,對于語義槽填充任務,采用TriCRF分析數據在全局的分布,解決了局部標注偏置問題,得到全局最優解。但是較傳統方法而言,模型訓練的參數變多,模型更為復雜。
微軟研究院的Guo等人提出使用遞歸神經網絡(recursive neural network,RecNN)和Viterbi算法聯合解決意圖識別和語義槽填充任務[14]。在該方法中,語義槽填充被看作是序列標注任務,即在給定用戶話語x以及所有語義槽類型空間的條件下,取最大概率對應的語義槽類型作為當前詞的語義標注類型,盡管性能有所提升,但是會產生信息損失。
繼RecNN之后,北京大學計算語言研究所的Zhang等人提出使用門控循環單元(gated recurrent unit,GRU)和CNN聯合解決意圖識別和語義槽填充任務[19],通過GRU學習詞的表示,預測語義槽的標簽。同時,利用最大池化層捕獲句子的全局特征,進行意圖分類,模型被兩個任務共享。模型雖然在性能上有一定的提升,但是仍有需要改進的地方。由于該模型采用的數據集——中文問答理解數據集(Chinese question understanding dataset,CQUD)由網上收集而成,實驗是以字作為分詞的最小單位,數據采用手工標注,而沒有經過相關領域專家的定義,對實驗結果有一定的影響。同時,對于意圖識別任務,該模型采用最大池化進行意圖分類,會產生一定的信息損失。
隨后,Liu等人采用注意力機制解決意圖識別和語義槽填充任務[20],該方法雖然較其他聯合識別模型在公有數據集ATIS(airline travel information systems)[21]上的性能有所提升,但是該模型沒有將意圖識別的結果作用于語義槽填充任務,在Liu提出模型的基礎上,Goo等人使用slot-gated機制將意圖識別的結果作用于語義槽填充任務[22],該模型在公有數據集ATIS上有所提升,但是對于語義槽填充任務,由于沒有考慮序列在全局的概率,導致出現了如連續標注B-Person、I-Organization等不合理標注結果。
綜上所述,在聯合建模研究中,意圖識別和語義槽填充任務具有較強的相關性,意圖識別的結果可以有效地作用于語義槽填充任務,并且CRF可以對神經網絡得到的序列標注進行結果調整。本文采用BLSTM作為基本單元,對意圖識別和語義槽填充任務分別加入注意力機制,捕獲全局的語法信息及更優的語義信息,解決前人研究中采用最大池化產生局部最優解的問題,并通過加入slot-gated機制表明意圖識別和語義槽填充之間的關系,通過實驗驗證兩個任務的相關性,同時由神經網絡和slot-gated得到語義槽填充結果后,加入CRF模型,其作用是根據標簽間的關系進行結果后處理,使得標注結果更為準確,有助于性能的提升。
本文的改進如下:第一,對意圖識別和語義槽填充進行聯合建模,達到優化語義框架的目的;在BLSTM得到隱藏層狀態后,對于意圖識別和語義槽填充任務加入注意力機制,達到不同時刻對所有輸入序列的聚焦式學習。第二,對于航空信息領域以及SMP語料(SMP中文人機對話技術評測(Evaluation of Chinese Human-Computer Dialogue Technology,SMP2019-ECDT)任務1——自然語言理解評測,本評測任務針對自然語言理解模塊,主要包括領域分類、意圖識別和語義槽填充三個子任務。本實驗只進行意圖和語義槽填充聯合識別。http://conference.cipsc.org.cn/smp2019/),在模型中加入slot-gated機制,將意圖識別的結果作用于語義槽填充任務,可以更好地捕獲兩個任務之間的關聯性,并在語義槽填充任務中加入CRF模型。
這部分首先介紹長短時記憶網絡(long short-term memory,LSTM)、BLSTM神經網絡模型,其次介紹注意力機制、slot-gated機制以及本研究的實驗模型。
深度神經網絡通過訓練,實現對輸入特征的表示學習,從而完成特定任務,如詞性標注、語義槽填充等,屬于端到端(end to end)的學習方式。神經網絡的輸入是向量表示,該向量由大量的包含語義信息的詞語訓練得到。向量表示方法有One-hot、Word2Vec[23]等,One-hot編碼無法表示語義相近的兩個詞[24],而Word2Vec是通過其上下文捕獲當前詞的語義信息,語義相近的詞匯可以通過向量空間中距離相近的向量表示,如v(“國王”)-v(“王后”)約等于v(“男”)-v(“女”)[25],Word2Vec解決了One-hot維度爆炸以及向量稀疏的問題,得到的是低維度的稠密向量。
隨著社會經濟的高速發展,各個行業對機械產品的需求也相應的大大增加,按照傳統的機械制造工藝進行生產已經無法滿足市場的需求,而現代機械制造工藝利用各種先進高新技術,使得生產效率大大提升,能夠進行大批量的生產,滿足市場的需求,而且現代機械制造工藝生產的產品不僅數量能夠得以保證,而且產品質量更加的穩定,體現現代機械制造工藝高強度的穩定性。
實驗過程采用Word2Vec進行詞向量化。輸入分詞后的數據序列為X=(x1,x2,…,xT),對應的詞向量為E=[e1,e2,…,eT],經過神經網絡的變換得到隱藏層狀態H=[h1,h2,…,hT],其中T表示輸入數據的長度,即詞的個數。設ν為詞匯表,d為詞向量維度,有xt∈ν,隱藏層狀態H∈Rd×T。
雖然RNN(recurrent neural networks)在解決自然語言處理任務中已經表現出良好的性能,但是存在“梯度消失”問題,LSTM通過加入輸入門、輸出門和遺忘門解決了這一問題[26]。遺忘門可以選擇性地記憶重要的歷史信息,丟棄一些語義無關的信息,使模型很容易學習和捕捉到詞與詞之間的長距離依賴關系,有利于模型對有效信息的長期保存。
式(1)~式(5)為LSTM各個門的計算公式,t時刻,給定輸入xt和前一時刻的隱藏層狀態ht-1,LSTM通過內部循環和更新,計算當前時刻的隱藏層狀態ht,Wi、Wf、Wo、Wc表示xt和ht-1的權重矩陣,bi、bf、bo、bc表示偏移向量,σ表示sigmoid激活函數:

語義語法信息由詞的上下文共同得到,LSTM無法捕獲上下文語義語法信息,BLSTM可以捕獲到詞的上下文語義語法信息[27],不同時刻的隱藏層狀態由前向LSTM的隱藏層狀態以及反向LSTM的隱藏層狀態共同決定,即,本文采用BLSTM神經網絡。
現實世界中,人們對文本和圖像理解時,并不是使用相同的注意力關注文本中的每一個詞或者圖像中的每一部分,而是關注一些關鍵部分,對于非關鍵部分,投入的注意力較少。因此如果通過加入注意力來表達文本或者圖像各個部分的重要程度,對于理解文本和圖像是非常有幫助的。
2015年,Bahdanau等人提出了注意力機制[28],對不同輸入xi賦予不同的權重,然后作用于輸出。注意力機制一般作用于編解碼模型中,用來提升LSTM或GRU的性能。將深度神經網絡(如LSTM或GRU)得到的所有隱藏層狀態值與輸出Y進行概率分布計算,然后將概率分布值與所有的隱藏層狀態進行加權求和得到當前時刻的語義編碼[29],再將其作為輸出,從而提高模型的性能。
在意圖識別和語義槽填充任務中,采用注意力機制理解文本序列豐富的語義信息。對于意圖識別任務,加入注意力機制,可以關注到所有輸入數據序列對于意圖識別的影響;對于語義槽填充任務,加入注意力機制,可以關注到不同時刻所有數據序列對于語義槽類型的影響。

式中,aij表示第i時刻不同隱藏層狀態值對應的權重向量,其值由式(7)和式(8)計算得到,上面的計算過程實現了由初始隱藏層向注意力層的變換,權重系數aij或ai反映了當前時刻不同輸入序列對輸出的影響力大小。圖1為實驗中注意力機制的結構示意圖。

Fig.1 Attention mechanism圖1 注意力機制
由于之前的聯合識別模型都只是共享模型的參數,隱式地說明意圖和語義槽填充的相關性,本文采用Goo等人提出的slot-gated機制[22],關注兩個任務之間的關系。該機制先將含有意圖信息的注意力參數cI與所有的語義槽填充注意力參數加權計算,然后使用一個正相關的激活函數得到包含意圖信息的參數g,再將g作用于各個時刻的語義槽填充,用意圖識別的結果影響語義槽填充任務。其中,cI包含整個輸入序列的語義信息,將意圖識別的結果作用于語義槽填充任務,證明意圖識別和語義槽填充的相互依賴關系。slot-gated機制對應的計算公式如式(12)~式(16)所示[22]:

本文采用BLSTM神經網絡模型,為提高模型的性能,加入注意力機制,同時使用slot-gated機制將意圖識別的結果作用于語義槽填充任務。在神經網絡訓練的過程中,輸出層的誤差可以指導輸入層參數的學習,根據模型的輸出與真實結果之間的誤差,使用梯度下降法調整神經網絡的參數。
對于深度神經網絡模型,輸出已經是各個標簽取值的概率,但是直接使用神經網絡模型輸出的標簽沒有考慮連續標簽之間的依賴關系,比如連續標注B-Person,I-Organization就是一個不合理的序列標注,這樣會影響語義槽填充任務的性能,CRF可以考慮標簽前后的依賴關系,將人工特征補充到神經網絡模型的輸出,根據已經生成的標簽間的關系進行結果后處理,使得標注結果更為準確。因此,本研究在slotgated模型后加入CRF,使得序列標注更為準確。
CRF是判別式與生成式的綜合模型,其聯合條件概率是在給定輸入序列x下,計算標注序列y的概率,計算公式如下:

式中,Z(x)是歸一化因子,tk和sk表示兩種特征函數,λk和μk表示特征函數對應的權重系數,tk表示轉移函數,與相鄰的隱藏層節點yi-1、yi有關;sk表示特征函數,當滿足特征條件時特征函數取1,否則取0。
本文的聯合識別模型如圖2所示。xi表示分詞后的數據序列,首先將詞語xi進行詞向量化,再將詞向量輸入到神經網絡BLSTM中,通過BLSTM得到隱藏層狀態值hi,對于意圖識別和語義槽填充兩個任務,分別加入注意力機制。對于意圖識別任務,注意力機制得到的上下文向量cI直接作用于意圖結果。對于語義槽填充任務,除了注意力機制,同時加入slotgated機制,將意圖識別的結果作用于語義槽填充任務,最后在語義槽填充任務的輸出層加入CRF模型。

Fig.2 Joint recognition model圖2 聯合識別模型
聯合識別的性能由兩個任務的結果共同決定。意圖識別和語義槽填充的聯合計算公式如下[22]:

本實驗采用的數據集包括航空信息領域和SMP中文人機對話技術評測數據集。
收集的句子存在指代不明確問題,如“它有去天津的航班嗎”,“它”指代不明確,不確定是從哪個城市出發去天津,還存在口語化、語序顛倒等問題,如“北京周二去武漢”。因此,首先對收集得到的句子進行整理,去口語化,調整語序;其次利用Jieba進行分詞,在分詞的過程中由于機場名稱與城市名稱有重疊詞、時間的不規范性等問題導致分詞出錯,因此將專有名詞放入用戶詞典,使專有名詞在分詞過程中不被錯誤切分。由于模型是有監督的訓練,因此需要對分詞后的詞語進行標注,標注過程采用Begin/In/Out(BIO)標簽進行標注。

本實驗收集到關于航空信息領域的短文本語句5 871條,并將數據分為訓練集、測試集以及開發集三部分,其中訓練集包含4 478條,測試集包含893條,開發集包含500條;SMP人機對話比賽數據集共包含2 579條短文本語句,并將數據按7∶2∶1分為訓練集、測試集以及開發集三部分,其中訓練集包含1 805條,測試集包含517條,開發集包含257條,實驗數據集對應的意圖類別和語義槽類別如表1所示。
實驗中BLSTM用于記憶和存儲過去狀態的節點個數為64,神經網絡中的所有參數進行隨機初始化,在訓練過程中進行微調。
dropout用于解決模型訓練過程中的過擬合問題,它是按照一定的比例隨機去掉神經網絡中的某些神經單元,然后利用模型訓練,提高模型的泛化能力,本實驗中dropout為0.05。
實驗中意圖識別使用意圖準確率作為評價指標;語義槽填充使用F1值作為評價指標,計算公式如下:

表2為不同模型在航空信息領域數據集下的意圖識別性能結果和語義槽填充性能結果。從表2可以看出,BLSTM模型在意圖識別和語義槽填充任務中性能優于LSTM,加入注意力機制模型性能優于不加注意力機制的模型,BLSTM可以捕獲序列數據長距離依賴關系,更好地獲取全局語義信息,同時加入slot-gated機制的模型在性能上優于不加slot-gated機制模型,slot-gated機制可以更好地說明意圖識別對于語義槽填充任務的影響。模型對于意圖識別和語義槽填充任務均采用注意力機制,即slot-gated(full attention),模型的性能優于僅在意圖識別中使用注意力機制slotgated(intent_only attention)模型的性能,原因是對于意圖識別任務,關注所有輸入序列對于意圖的影響cI,避免局部最優化,對于語義槽填充任務,將包含全局信息的意圖和不同時刻輸入對語義槽任務的影響共同作用,提高模型的性能。本實驗的BLSTM+attention+slot-gated+CRF模型,是在意圖識別和語義槽填充兩個任務上都加入注意力機制的情況下進行實驗,從結果可以看出,在加入CRF模型后,實驗結果最優。對于語義槽填充任務,可以有兩部分的信息來源,其一是可以將意圖識別的信息作為參考,其二是由CRF模型提供的標簽前后的依賴關系作為參考。

Table 1 Experimental data表1 實驗數據

Table 2 Performance comparison of joint recognition on different models(flight information field)表2 不同模型聯合識別的性能對比(航空信息領域)
表3為不同模型在SMP數據集下的意圖識別和語義槽填充的性能對比。從表3可以看出,不同模型在SMP數據集下BLSTM+attention+slot-gated+CRF模型達到了最好的性能,原因如下:首先,加入注意力機制,可以更好地理解話語語義;其次,加入slot-gated機制用于語義槽填充任務,可以更好地捕捉兩個任務之間的關聯性,同時加入CRF模型,可以考慮到標簽序列前后的依賴關系,使得標注結果更為準確。但是相比詢問航空信息的數據集,相同的聯合識別模型在SMP數據集下,語義槽填充的性能明顯低于在航空信息領域數據集下的性能,主要是由于SMP數據集的語句比較少,模型很難通過少量數據捕獲深層次的語義信息,同時該數據集的語義槽類型相比航空信息領域數據集較多,不同意圖對應的句子數目差距比較大,數據分布不均衡。

Table 3 Performance comparison of joint recognition on different models(SMP)表3 不同模型聯合識別的性能對比(SMP)
表4為影響語義槽填充性能的類型舉例。從表4可以看出,該數據集中包含“發短信”“翻譯”“查詢”這三類意圖,這些意圖對應的語義槽類型包含“Bcontent”和“B-name”,語義槽值分別為“發短信內容”“翻譯內容”以及“小說內容”,語義槽值的內容較長。后續會將該語義槽值在分詞過程正常切分,并將語義槽標簽標注為B-content、I-content等。除此以外,由于該數據集包含不同的領域,不同領域對應不同的意圖,而本研究不考慮領域,只將文本的意圖和語義槽填充聯合識別,因此實驗性能有所影響。
本文針對口語理解中的兩個任務聯合建模,在BLSTM隱藏層上對意圖識別和語義槽填充任務分別加入注意力機制,可以捕獲不同時刻輸入序列對輸出的影響;同時加入slot-gated機制,更有力地說明意圖識別和語義槽填充任務的相關性,并在神經網絡的輸出層加入CRF模型,有效地考慮標簽前后的依賴關系,提高語義槽填充的性能。模型在航空信息領域和SMP人機對話比賽數據集上進行實驗,證明了模型的有效性。實驗結果表明,加入slot-gated和CRF模型優于其他聯合識別模型。
在自然語言處理領域,高質量的語料以及大規模的預訓練詞向量對于模型的性能有很大的影響,下一步會將語料進行擴充,并獲取大規模的預訓練詞向量訓練更優的向量表示;本研究只驗證了意圖識別對語義槽填充任務的影響,后續會進行語義槽填充對意圖識別影響的實驗;由于在現實的人機交互過程中,用戶會涉及多意圖的交互,不同的意圖會對應不同的語義槽類型,后續會進一步研究多意圖文本對語義槽填充任務的影響;由于BERT(bidirectional encoder representations from transformers)模型在訓練過程可以隨機屏蔽輸入中的一些字段,使得模型的泛化能力增強[30],且BERT在多項自然語言處理任務中表現出良好的性能,而本實驗數據集比較小,為增強模型的泛化能力,下一步擬采用BERT模型用于口語理解中意圖和語義槽填充的聯合識別。

Table 4 Examples of types of SMP dataset semantic slot filling with low F1 score表4 SMP數據集語義槽填充F1值偏低的類型舉例