王明星
(北方工業(yè)大學(xué),北京 100144)
近年來,對話系統(tǒng)被應(yīng)用于各方各面,比如Siri、Echo、天貓精靈等,通過對話交互幫助用戶完成任務(wù)。自然語言理解(NLU)是對話系統(tǒng)的核心模塊,其目的是提取出用戶表達(dá)中的用戶意圖和與意圖相關(guān)的重要語義信息,并將其表示成計算機(jī)能夠理解的結(jié)構(gòu)化形式。在特定領(lǐng)域類,自然語言理解可以拆分成兩個子任務(wù),即意圖識別和語義槽填充。
意圖識別是一個預(yù)測意圖標(biāo)簽yi的分類問題,語義槽填充是一個序列標(biāo)記任務(wù),將輸入單詞序列x=(x1、x2、…、xT)映射到語義槽標(biāo)簽序列YS=(YS1,YS2,…,YST)。基于遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的方法,特別是門控遞歸單元(GRU)和長短期記憶(LSTM)模型,在意圖分類和插槽填充方面取得了最先進(jìn)的性能。最近,研究者們提出了幾種意圖分類和語義槽填充的聯(lián)合學(xué)習(xí)方法來利用和建模這兩個任務(wù)之間的依賴關(guān)系,并提高了獨(dú)立模型的性能[1]。先前的工作表明,注意力機(jī)制[2]有助于循環(huán)神經(jīng)網(wǎng)絡(luò)處理遠(yuǎn)程依賴關(guān)系。因此,基于注意力的聯(lián)合學(xué)習(xí)方法被提出,并實現(xiàn)了聯(lián)合進(jìn)行意圖識別和語義插槽填充得最好的性能[3]。
由于缺乏NLU 和其他自然語言處理(NLP)任務(wù)的人工標(biāo)記數(shù)據(jù),導(dǎo)致泛化能力較差。為了解決數(shù)據(jù)稀缺的問題,提出了各種技術(shù)來訓(xùn)練。通用語言表示模型,使用大量未注釋的文本,如ELMo[4]和GPT[5]。預(yù)訓(xùn)練的模型可以在NLP任務(wù)上進(jìn)行微調(diào),并很多自然語言處理領(lǐng)域取得了顯著的效果。最近,一種預(yù)訓(xùn)練模型BERT被提出,它在各種各樣的NLP任務(wù)都取得了最好的效果,包括問題回答、自然語言推理等。然而,沒有人在自然語言理解任務(wù)上使用BERT模型進(jìn)行聯(lián)合建模。本文的貢獻(xiàn)包括以下兩個方面:第一,使用BERT預(yù)訓(xùn)練模型,以解決自然語言處理任務(wù)泛化能力差的問題;第二,提出了一種基于BERT-crf的意圖識別和語義槽填充聯(lián)合模型,并通過實驗證明了該模型在意圖識別和語義槽填充上取得了顯著的提高。
深度學(xué)習(xí)模型在自然語言理解上有很多的探索,主要包括兩種方法來解決自然語言理解問題,分別是獨(dú)立建模方法和聯(lián)合建模方法。
針對意圖識別任務(wù),主要有基于規(guī)則模板、統(tǒng)計機(jī)器學(xué)習(xí)、深度學(xué)習(xí)幾種方法。Kim 等人首次使用CNN 來處理意圖識別問題,并且獲得了很好的效果。Al-Sabahi K等人通過引入自注意力機(jī)制來獲得句子表示,使用多個句向量來表示不同的語義信息,通過在雙向的LSTM上執(zhí)行,最終得到的句子向量通過對雙向LSTM的隱藏層狀態(tài)加權(quán)求和獲得,在意圖識別任務(wù)上取得了不錯的效果。Xia等人首次將膠囊網(wǎng)絡(luò)應(yīng)用在意圖識別任務(wù)上,使用路由機(jī)制將貢獻(xiàn)度不同的各種語義聚合起來,形成更有代表的語義表示向量,進(jìn)而達(dá)到意圖識別的目的。針對語義槽填充任務(wù),主要有基于字典、規(guī)則、統(tǒng)計、深度學(xué)習(xí)的方法。Lane等人使用兩個RNN模型來構(gòu)建編碼和解碼器,實現(xiàn)輸入和輸出的對齊,并應(yīng)用在語義槽填充任務(wù)上,取得了很好的效果。Yao 等人使用LSTM 來解決語義槽填充問題,并且在LSTM 模型中加入CRF機(jī)制,這種建模方式極大地提升了語義槽填充的效果。Zhu等人使用雙向的LSTM 模型作為編碼器,同時加上注意力機(jī)制,在語義槽填充任務(wù)上取得了極大的進(jìn)步。
針對聯(lián)合建模,Jeong等人采用三角鏈條件隨機(jī)場模型捕獲了意圖識別和語義槽填充這兩者的內(nèi)在聯(lián)系,雖然該模型在聯(lián)合識別上作出了一定的貢獻(xiàn),但是卻有著傳統(tǒng)機(jī)器學(xué)習(xí)方法的不足,并且需要足夠多的訓(xùn)練語料。Guo等人使用遞歸神經(jīng)網(wǎng)絡(luò)和Viterbi算法聯(lián)合解決意圖識別和語義槽填充任務(wù),該方法將句子以語法樹的形式表示出來,利用RNN學(xué)習(xí)數(shù)中每個節(jié)點的特征,極大地提高了聯(lián)合識別的性能,然而在語義槽填充任務(wù)中會產(chǎn)生一定的信息損失。
本章首先簡要介紹了BERT 模型進(jìn)行介紹,然后介紹了所提出的基于BERT-CRF 的聯(lián)合模型。
BERT的模型架構(gòu)是一種多層的雙向transformer編碼器,每個單詞的輸入表示有三部分構(gòu)成,即詞向量token embedding,句子向量(segment embedding)和位置向量(position embedding)。使用一個特殊的分類嵌入([CLS])作為第一個標(biāo)記,并添加一個特殊的標(biāo)記([SEP])作為結(jié)尾標(biāo)記。對于給定輸入序列x=(x1,…,xT),BERT的輸出為H=(H1,…,hT)。BERT利用MLM進(jìn)行預(yù)訓(xùn)練并且采用深層的雙向Transformer組件來構(gòu)建整個模型,因此最終生成能融合左右上下文信息的深層雙向語言表征,并可用于各種任務(wù),比如本文的研究內(nèi)容,意圖識別和語義槽填充。
本文提出的聯(lián)合模型結(jié)構(gòu)圖,如圖1。將待理解的句子向量化后輸入到BERT模型中,BERT模型將句首[CLS]標(biāo)記對應(yīng)的隱藏狀態(tài)輸出出來,通過soft max函數(shù),獲得意圖標(biāo)簽的概率分布,根據(jù)概率分布獲得最終的意圖;同時BERT 模型將其余的隱藏狀態(tài)輸入到CRF 層中,CRF 層負(fù)責(zé)尋找語義槽標(biāo)簽之間的關(guān)系,最后從CRF層中輸出語義槽標(biāo)簽。
圖1 BERT-CRF 聯(lián)合模型Fig.1 Bert-crf joint model
BERT可以很容易地被擴(kuò)展到一個意圖識別和語義槽填充聯(lián)合模型。根據(jù)第一個特殊標(biāo)記([CLS])的隱藏狀態(tài)h1,預(yù)測意圖為:
對于語義槽填充,其預(yù)測取決于對周圍單詞的預(yù)測,CRF能夠很好的解決該問題,于是將h2,…,ht的最終隱藏狀態(tài)輸入到crf層,以便在槽填充標(biāo)簽上進(jìn)行分類。為了使此過程與單詞序列中標(biāo)記相兼容,這里將每個標(biāo)記化的輸入字輸入到一個單詞標(biāo)記器中,并使用與第一個標(biāo)記對應(yīng)的隱藏狀態(tài)作為輸入,其最大似然函數(shù)為
其中,hn對應(yīng)輸入xn之后得到的隱藏狀態(tài)。
對于意圖識別與語義槽填充聯(lián)合模型的目標(biāo)函數(shù),可以設(shè)定為:
通過不斷的進(jìn)行訓(xùn)練使條件概率p(yi,ys|x)最大化,該模型是通過最小化交叉熵?fù)p失來實現(xiàn)對模型參數(shù)的調(diào)整。
本文在自然語言理解兩個比較公認(rèn)的數(shù)據(jù)集ATIS和Snips上評估了所提出的模型并加以分析。
ATIS 數(shù)據(jù)集有航空飛行方面相關(guān)的對話構(gòu)成,該數(shù)據(jù)集中共包含4478條數(shù)據(jù)訓(xùn)練數(shù)據(jù),500條驗證數(shù)據(jù),893條測試數(shù)據(jù)。Snips數(shù)據(jù)集是通過收集Snips虛擬個人語音助手中的數(shù)據(jù)得到的,是一個開源的語料庫。該數(shù)據(jù)集中有諸多領(lǐng)域的查詢話語,比如天氣查詢和酒店預(yù)訂,該數(shù)據(jù)集中共包含13084條訓(xùn)練數(shù)據(jù)、700條驗證數(shù)據(jù)、700條測試數(shù)據(jù)。
本文使用的BERT版本是BERT-Base,它有12層,768個隱藏狀態(tài),12個頭部,參數(shù)規(guī)模110M。對于微調(diào),所有超參數(shù)都在驗證集上進(jìn)行調(diào)優(yōu)。最大長度為50。批量大小為128。adam用于優(yōu)化,初始學(xué)習(xí)率為5e-5。dropout率為0.1。訓(xùn)練輪數(shù)分別為[1,5,10,20,30,40]。
表1顯示了在Snips和ATIS數(shù)據(jù)集上,本文的模型和其他聯(lián)合模型的效果比較,其中用準(zhǔn)確率作為意圖識別的評價標(biāo)準(zhǔn),使用F1分?jǐn)?shù)作為語義槽填充的準(zhǔn)確率。
表1 在ATIS 和Snips 數(shù)據(jù)集上,不同模型效果對比Tab.1 On ATIS and snips datasets,the effects of different models are compared
在表1中,與本文模型進(jìn)行對比的模型都是現(xiàn)在表現(xiàn)最好的模型,其中包括基于BiLSTM 的聯(lián)合模型、基于注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)聯(lián)合模型以及基于門控機(jī)制的聯(lián)合模型。
在ATIS 數(shù)據(jù)集上,本文提出的BERT+CRF 聯(lián)合模型在意圖識別任務(wù)上的意圖識別準(zhǔn)確率為97.8%,語義槽填充F1分?jǐn)?shù)為96.0%;在Snips數(shù)據(jù)集上的意圖識別準(zhǔn)確率為98.4%,語義槽填充F1分?jǐn)?shù)為96.7%。從中可以看出,本文提出的聯(lián)合模型不管是在意圖識別還是語義槽填充上效果都要比其他模型更好。
如圖表2顯示的是在不同訓(xùn)練輪數(shù)下,本文提出的聯(lián)合模型在意圖識別的準(zhǔn)確率和語義槽填充的F 1 分?jǐn)?shù)對比,可以發(fā)現(xiàn)在意圖識別任務(wù)上,隨著訓(xùn)練輪數(shù)的增加,會產(chǎn)生過擬合現(xiàn)象,在到第20輪的時候效果達(dá)到最佳。然而在語義槽填充任務(wù)上,模型的效果隨著訓(xùn)練輪數(shù)的提高而不斷提高,說明語義槽填充任務(wù)相對意圖識別來說更加復(fù)雜,需要更多的數(shù)據(jù)量。
表2 不同訓(xùn)練輪數(shù)下的效果對比Tab.2 Effect comparison of different training rounds
本文提出一種基于BERT-CRF的意圖識別和語義槽填充聯(lián)合模型,不僅解決了自然語言理解任務(wù)的泛化能力問題,而且實驗結(jié)果表明,本文提出的聯(lián)合模型在意圖識別和語義槽填充任務(wù)上都有出色的表現(xiàn),證明了利用這兩個任務(wù)之間關(guān)系的有效性。與之前表現(xiàn)最好的模型相比,本文提出的模型在ATIS和Snips數(shù)據(jù)集上對意圖識別和語義槽填充任務(wù)都有顯著的提高。未來的工作會集中在探索將外部知識與BERT模型相結(jié)合的有效性以及在其他更大規(guī)模和更復(fù)雜的數(shù)據(jù)集上進(jìn)行評估和分析。