王 堃,林 民,李艷玲
內(nèi)蒙古師范大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,呼和浩特 010022
對(duì)話系統(tǒng)是自然語(yǔ)言處理(Natural Language Processing,NLP)的重要方向之一[1],其中任務(wù)型對(duì)話系統(tǒng)(Task-Oriented Dialogue System)的主要功能是在特定條件下幫助用戶(hù)完成具體的目標(biāo)動(dòng)作或提供信息服務(wù)[2],如預(yù)訂機(jī)票、查詢(xún)出行路線等。目前主流的研究方法是將任務(wù)型對(duì)話系統(tǒng)分為自然語(yǔ)言理解(Natural Language Understand,NLU)、對(duì)話管理(Dialogue Management,DM)和自然語(yǔ)言生成(Natural Language Generation,NLG)三個(gè)模塊進(jìn)行研究[3]。
NLU作為對(duì)話系統(tǒng)中的核心模塊,對(duì)整個(gè)對(duì)話系統(tǒng)的性能至關(guān)重要[4],其目的是將輸入的自然語(yǔ)言文本轉(zhuǎn)換為結(jié)構(gòu)化的語(yǔ)義框架(如slot-value形式)以實(shí)現(xiàn)人機(jī)交互的目標(biāo)[5]。雖然這一目標(biāo)仍然被視為未解決的問(wèn)題,但在過(guò)去的數(shù)十年中,涌現(xiàn)出許多在限定領(lǐng)域內(nèi)實(shí)用的任務(wù)型對(duì)話系統(tǒng)應(yīng)用程序,如語(yǔ)音助手Alexa、Siri、Cortana[6]。這些應(yīng)用程序通過(guò)完成NLU模塊中的意圖識(shí)別(Intent Detection,ID)和語(yǔ)義槽填充(Semantic Slot Filling,SSF)兩個(gè)任務(wù)[3],能夠自動(dòng)識(shí)別用戶(hù)意圖并提取重要的語(yǔ)義參數(shù)信息,形成結(jié)構(gòu)化的語(yǔ)義框架表示,最后采取相應(yīng)動(dòng)作以完成用戶(hù)目標(biāo)。
深度學(xué)習(xí)(Deep Learning,DL)的不斷發(fā)展為實(shí)現(xiàn)端到端的對(duì)話系統(tǒng)提供了可能,且因?yàn)橐鈭D識(shí)別和語(yǔ)義槽填充兩任務(wù)之間相互依賴(lài),所以本文主要對(duì)端到端任務(wù)型對(duì)話系統(tǒng)意圖和語(yǔ)義槽聯(lián)合識(shí)別具有代表性的方法進(jìn)行分析介紹,總結(jié)目前存在的問(wèn)題并提出未來(lái)研究的發(fā)展方向。
現(xiàn)有的對(duì)話系統(tǒng)主要分為任務(wù)型對(duì)話系統(tǒng)和閑聊型對(duì)話系統(tǒng)(Chit-Chat-oriented Dialogue System)兩類(lèi),前者旨在幫助用戶(hù)完成特定任務(wù),后者致力于在開(kāi)放領(lǐng)域同用戶(hù)進(jìn)行自由對(duì)話。
任務(wù)型對(duì)話系統(tǒng)的研究大體有兩種方法,一種是流程式(Pipeline)任務(wù)型對(duì)話系統(tǒng),另一種是端到端(Endto-End)任務(wù)型對(duì)話系統(tǒng),目前基于深度學(xué)習(xí)的端到端任務(wù)型對(duì)話系統(tǒng)是研究熱點(diǎn)。
2.1.1 流程式任務(wù)型對(duì)話系統(tǒng)
流程式任務(wù)型對(duì)話系統(tǒng)是較為傳統(tǒng)的方法,架構(gòu)如圖1所示。這種人機(jī)交互方式通過(guò)一個(gè)流程順次實(shí)現(xiàn),依次包括:NLU、對(duì)話狀態(tài)跟蹤(Dialogue State Tracking,DST)、對(duì)話策略學(xué)習(xí)(Dialogue Policy Learning,DPL)和NLG[7],其中對(duì)話狀態(tài)跟蹤和對(duì)話策略學(xué)習(xí)被統(tǒng)稱(chēng)為對(duì)話管理。在這種流程式的模式中,用戶(hù)輸入自然語(yǔ)言語(yǔ)句,對(duì)話系統(tǒng)按順序依次完成領(lǐng)域分類(lèi)、意圖識(shí)別、語(yǔ)義槽填充、對(duì)話狀態(tài)更新任務(wù),然后根據(jù)對(duì)話策略做出相應(yīng)的動(dòng)作直到生成最終的回復(fù)。
圖1 流程式任務(wù)型對(duì)話系統(tǒng)架構(gòu)圖
在流程式任務(wù)型對(duì)話系統(tǒng)中,對(duì)每個(gè)流程都進(jìn)行模塊化處理,模塊化處理的優(yōu)勢(shì)是構(gòu)建起來(lái)較為靈活,同時(shí)能夠以較為獨(dú)立的方式處理任務(wù)以及分塊優(yōu)化。但同時(shí)也存在很多缺點(diǎn),首先,需要為相互獨(dú)立的模塊標(biāo)注大量數(shù)據(jù),還需要人工設(shè)計(jì)特征參數(shù),導(dǎo)致系統(tǒng)在遷移到不同領(lǐng)域時(shí)需要耗費(fèi)人力重新設(shè)計(jì)參數(shù),可移植性差;其次,可能會(huì)導(dǎo)致錯(cuò)誤級(jí)聯(lián)的問(wèn)題,上游NLU模塊出現(xiàn)錯(cuò)誤可能會(huì)傳遞到下游的DM模塊;最后,每一個(gè)子模塊的優(yōu)化對(duì)整個(gè)系統(tǒng)的聯(lián)合優(yōu)化效果不夠明顯,上游模塊的信息無(wú)法反饋到下游模塊,用戶(hù)的反饋也難以傳遞給模型。綜上所述,如果用一個(gè)統(tǒng)一的端到端模型代替多個(gè)獨(dú)立的模塊,系統(tǒng)只需要知道用戶(hù)的輸入以及相應(yīng)的輸出即可,可節(jié)省很多開(kāi)銷(xiāo)。
2.1.2 端到端任務(wù)型對(duì)話系統(tǒng)
端到端任務(wù)型對(duì)話系統(tǒng)根據(jù)用戶(hù)輸入話語(yǔ)直接給出合理的回復(fù)[8],省去了流程式任務(wù)型對(duì)話系統(tǒng)的繁瑣過(guò)程,而且基于深度學(xué)習(xí)模型提取到的特征向量可與人工提取的特征向量相媲美,所以目前基于神經(jīng)網(wǎng)絡(luò)的端到端可訓(xùn)練任務(wù)型對(duì)話系統(tǒng)受到了廣泛關(guān)注。這種方法不僅使得研究人員能夠利用強(qiáng)大的計(jì)算能力從海量數(shù)據(jù)中挖掘出更有價(jià)值的語(yǔ)義特征信息,同時(shí)可拓展性、可移植性也獲得了顯著提升[9],但其缺點(diǎn)是需要大量帶標(biāo)注的數(shù)據(jù)進(jìn)行有監(jiān)督的學(xué)習(xí)[10]。端到端任務(wù)型對(duì)話系統(tǒng)架構(gòu)如圖2所示。
圖2 端到端任務(wù)型對(duì)話系統(tǒng)架構(gòu)圖
近年來(lái)基于深度學(xué)習(xí)的端到端模型被廣泛應(yīng)用[11],Wen等人[12]把NLU、DM和NLG三個(gè)模塊一起進(jìn)行端到端的訓(xùn)練,Yang等人[13]將NLU和DM兩個(gè)模塊聯(lián)合學(xué)習(xí),相較于流程式任務(wù)型對(duì)話系統(tǒng)都取得了一定的進(jìn)展。
意圖識(shí)別和語(yǔ)義槽填充是NLU的兩個(gè)關(guān)鍵任務(wù)。意圖識(shí)別旨在從給定的語(yǔ)句中判斷用戶(hù)的最佳意圖類(lèi)別,通常被看作是一個(gè)標(biāo)準(zhǔn)的多分類(lèi)問(wèn)題,常用的方法有支持向量機(jī)(Support Vector Machine,SVM)[14]、樸素貝葉斯(Naive Bayes,NB)[15]等模型,語(yǔ)義槽填充是指從給定的語(yǔ)句中提取有用的結(jié)構(gòu)化信息,通常被看作是一個(gè)序列標(biāo)注問(wèn)題[16],如使用Begin/Inside/Outside(BIO)、Begin/Inside/Outside/End/Single(BIOES)等格式進(jìn)行標(biāo)注,常用的模型有隱馬爾可夫(Hidden Markov Model,HMM)模型[17]、條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)[18]等模型。牛珺等人[19]采用規(guī)則匹配和神經(jīng)網(wǎng)絡(luò)相結(jié)合的方式完成意圖識(shí)別任務(wù),這種聯(lián)合意圖識(shí)別模型兼顧了傳統(tǒng)規(guī)則匹配模型靈活調(diào)控和神經(jīng)網(wǎng)絡(luò)模型簡(jiǎn)單智能的優(yōu)點(diǎn),結(jié)果表明聯(lián)合模型優(yōu)于兩種模型單獨(dú)的表現(xiàn)。對(duì)“呼和浩特到長(zhǎng)春的航班有哪些”這一問(wèn)句,經(jīng)過(guò)NLU得到的結(jié)果如表1所示。
表1 意圖識(shí)別和語(yǔ)義槽填充舉例
NLU經(jīng)歷了由獨(dú)立建模到聯(lián)合識(shí)別的發(fā)展歷程。在傳統(tǒng)的獨(dú)立建模方法中,領(lǐng)域分類(lèi)、意圖識(shí)別和語(yǔ)義槽填充三個(gè)任務(wù)按流程順序執(zhí)行分別求解,逐次獲取用戶(hù)話語(yǔ)中與任務(wù)相關(guān)的信息[20]。這種方式類(lèi)似于流程式任務(wù)型對(duì)話系統(tǒng),存在三個(gè)缺陷,一是各個(gè)領(lǐng)域之間很難共享通用或相似的意圖和語(yǔ)義槽類(lèi)別等特征參數(shù),但在很多情況下,例如在預(yù)訂火車(chē)票和查詢(xún)出行路線任務(wù)中,出發(fā)地、目的地等語(yǔ)義槽類(lèi)別都是可共享的,卻需要為不同領(lǐng)域構(gòu)建相同的參數(shù)信息;二是可能產(chǎn)生錯(cuò)誤級(jí)聯(lián),導(dǎo)致錯(cuò)誤放大;三是下游任務(wù)不能利用上游任務(wù)的結(jié)果,而事實(shí)上意圖識(shí)別的結(jié)果可以輔助語(yǔ)義槽填充任務(wù),這都是獨(dú)立建模帶來(lái)的局限性。
2018年Goo等人[21]指出意圖識(shí)別和語(yǔ)義槽填充兩個(gè)任務(wù)相互依賴(lài),語(yǔ)義槽填充任務(wù)高度依賴(lài)于意圖識(shí)別的結(jié)果,語(yǔ)義槽填充的結(jié)果又可以幫助識(shí)別意圖。加入門(mén)控(Slot-gated)機(jī)制可以學(xué)習(xí)意圖和語(yǔ)義槽之間的相關(guān)關(guān)系,并通過(guò)先識(shí)別意圖再利用意圖識(shí)別的結(jié)果促進(jìn)語(yǔ)義槽填充任務(wù)的方法對(duì)語(yǔ)義框架進(jìn)行全局優(yōu)化,性能得到了一定的提升。Qin等人[22]2019年指出采用門(mén)控機(jī)制并不能充分保留意圖信息,而且因?yàn)橐鈭D識(shí)別和語(yǔ)義槽填充兩個(gè)任務(wù)通過(guò)隱向量交互信息使得模型的可解釋性降低。除此之外,使用門(mén)控機(jī)制還可能導(dǎo)致錯(cuò)誤級(jí)聯(lián)的問(wèn)題,句子級(jí)意圖識(shí)別的錯(cuò)誤會(huì)影響單詞級(jí)語(yǔ)義槽填充的性能。因此Qin等人采用了一種結(jié)合單詞級(jí)意圖識(shí)別的堆棧傳播框架對(duì)意圖和語(yǔ)義槽聯(lián)合識(shí)別,在ATIS數(shù)據(jù)集[23]上語(yǔ)義槽填充的F1值達(dá)到了95.9%,意圖識(shí)別的準(zhǔn)確率達(dá)到了96.9%,進(jìn)一步證明了聯(lián)合識(shí)別的有效性。
在自然語(yǔ)言理解模塊中,主要任務(wù)是利用大量數(shù)據(jù)學(xué)習(xí)有效的話語(yǔ)特征表示,并提取重要參數(shù)信息以得到完整的語(yǔ)義框架,進(jìn)而完成意圖識(shí)別和語(yǔ)義槽填充任務(wù)。侯麗仙等人[24]對(duì)解決NLU任務(wù)的模型從傳統(tǒng)方法到基于深度神經(jīng)網(wǎng)絡(luò)的方法、從獨(dú)立建模到聯(lián)合識(shí)別的方法進(jìn)行了綜述,分析了獨(dú)立建模存在的不足,總結(jié)了聯(lián)合識(shí)別方法存在泛化能力強(qiáng)、訓(xùn)練參數(shù)少、性能好等優(yōu)勢(shì)。本文主要在此基礎(chǔ)上針對(duì)最新的、具有代表性的聯(lián)合識(shí)別方法進(jìn)行分析介紹。
目前意圖和語(yǔ)義槽聯(lián)合識(shí)別是實(shí)現(xiàn)NLU模塊的主流方法[25-26],聯(lián)合識(shí)別的形式一般分為兩種,一種是將兩任務(wù)合并成一個(gè)任務(wù),對(duì)意圖識(shí)別和語(yǔ)義槽填充求解聯(lián)合概率;另一種是讓兩個(gè)任務(wù)共享底層特征,再分別對(duì)每個(gè)任務(wù)輸出相應(yīng)的結(jié)果,損失函數(shù)為兩任務(wù)損失函數(shù)的加權(quán)和。
隨著循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[27]、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)在解決序列問(wèn)題上的快速發(fā)展,越來(lái)越多的學(xué)者將這類(lèi)神經(jīng)網(wǎng)絡(luò)模型用于NLU模塊[28-29]。北京大學(xué)的Zhang等人[30]提出利用RNN提取底層共享特征,分別對(duì)意圖和語(yǔ)義槽進(jìn)行識(shí)別,意圖識(shí)別的準(zhǔn)確率達(dá)到98.10%,語(yǔ)義槽填充的F1值達(dá)到95.49%。
RNN可以學(xué)習(xí)到之前的信息但記憶容量有限,當(dāng)需要依賴(lài)較長(zhǎng)距離的神經(jīng)元信息時(shí),RNN無(wú)法保留長(zhǎng)距離信息,只能考慮最近的狀態(tài)信息。LSTM模型通過(guò)三個(gè)門(mén)控機(jī)制優(yōu)化記憶單元,對(duì)重要信息一直保留并傳遞,遺忘不重要的信息以釋放空間,所以LSTM模型在捕獲長(zhǎng)距離依賴(lài)關(guān)系方面比RNN更強(qiáng)大,能夠一定程度上消除序列中梯度消失或梯度爆炸的問(wèn)題。LSTM模型的三個(gè)控制門(mén)分別為決定當(dāng)前時(shí)刻網(wǎng)絡(luò)狀態(tài)有多少信息需要保存到內(nèi)部狀態(tài)中的輸入門(mén)(Input Gate);用于控制對(duì)未來(lái)無(wú)用的記憶信息遺忘程度的遺忘門(mén)(Forget Gate);用于決定當(dāng)前時(shí)刻的內(nèi)部狀態(tài)有多少信息需要輸出給外部狀態(tài)的輸出門(mén)(Output Gate)。
受到機(jī)器翻譯和閑聊對(duì)話系統(tǒng)中序列到序列(Sequence to Sequence)建模方法的啟發(fā),微軟的Hakkani-Tür等人2016年[31]提出在一個(gè)序列中通過(guò)學(xué)習(xí)不同領(lǐng)域的數(shù)據(jù)建立多領(lǐng)域雙向RNN-LSTM模型的方法解決意圖和語(yǔ)義槽聯(lián)合識(shí)別的問(wèn)題。該模型使用具有長(zhǎng)短時(shí)記憶的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN-LSTM)模型實(shí)現(xiàn)聯(lián)合多領(lǐng)域、集成多任務(wù)(領(lǐng)域分類(lèi)、意圖識(shí)別和語(yǔ)義槽填充)的深度學(xué)習(xí)模型,輸入是由用戶(hù)話語(yǔ)的每個(gè)輸入字wt組成的w1,w2,…,wn序列,輸出是相應(yīng)的語(yǔ)義槽標(biāo)簽s1,s2,…,sn序列,并在每個(gè)輸入話語(yǔ)k的末尾添加一個(gè)額外的
該模型在ATIS數(shù)據(jù)集上的結(jié)果表明聯(lián)合多領(lǐng)域、集成多任務(wù)的RNN-LSTM模型相較于傳統(tǒng)的單領(lǐng)域、獨(dú)立建模的方法在識(shí)別語(yǔ)義框架的準(zhǔn)確率上提升了1%,證明了在多個(gè)領(lǐng)域上對(duì)意圖和語(yǔ)義槽聯(lián)合識(shí)別的有效性。但該模型中雙向LSTM模型是獨(dú)立進(jìn)行的,不交互信息,而且不能很好地解決長(zhǎng)期依賴(lài)問(wèn)題。
注意力機(jī)制(Attention Mechanism)由Bengio團(tuán)隊(duì)于2014年提出并廣泛應(yīng)用于各個(gè)領(lǐng)域[32-34],在計(jì)算機(jī)視覺(jué)領(lǐng)域被用于捕捉圖像上的感受野,在自然語(yǔ)言處理領(lǐng)域被用于學(xué)習(xí)深層次的表示特征。
3.2.1 注意力機(jī)制
在捕獲上下文依賴(lài)關(guān)系方面,傳統(tǒng)的采用編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)的RNN、LSTM模型通常先用RNN、LSTM單元對(duì)輸入序列進(jìn)行學(xué)習(xí),并編碼為固定長(zhǎng)度的隱向量表示,然后再用RNN、LSTM單元讀取隱向量,并解碼為輸出序列得到最終結(jié)果。但這種模式限制了輸入序列的長(zhǎng)度,因?yàn)檩斎胝Z(yǔ)句不論長(zhǎng)短都將被編碼為一個(gè)固定長(zhǎng)度的向量表示,而且在編碼和解碼過(guò)程中隨著長(zhǎng)距離的信息傳遞還可能導(dǎo)致信息丟失。注意力機(jī)制不考慮序列中依賴(lài)詞項(xiàng)的距離長(zhǎng)短,通過(guò)對(duì)輸入語(yǔ)句分配不同權(quán)重的方法對(duì)依賴(lài)關(guān)系進(jìn)行聚焦式建模,可以有效解決梯度消失問(wèn)題。注意力機(jī)制將每個(gè)輸入位置的信息都進(jìn)行保存,為對(duì)當(dāng)前目標(biāo)任務(wù)更關(guān)鍵的部分賦予更高的權(quán)重,使有限的信息處理資源分配給重要的部分,提高任務(wù)的執(zhí)行效率。
自注意力(Self-Attention)機(jī)制[35]用于捕獲同一語(yǔ)句中單詞之間的句法特征和語(yǔ)義特征,減少對(duì)外部信息的依賴(lài),捕獲語(yǔ)句內(nèi)部的相關(guān)性。自注意力機(jī)制在計(jì)算過(guò)程中直接將語(yǔ)句中任意兩個(gè)單詞相關(guān)聯(lián),遠(yuǎn)距離依賴(lài)特征之間的距離被縮短,從而可以捕獲長(zhǎng)期依賴(lài)關(guān)系。
3.2.2 基于雙向RNN+Attention的聯(lián)合識(shí)別
由于注意力機(jī)制能夠捕獲序列中的長(zhǎng)距離依賴(lài)關(guān)系,Liu等人2016年[36]提出將對(duì)齊信息和注意力信息加入雙向RNN解決意圖和語(yǔ)義槽的聯(lián)合識(shí)別問(wèn)題。該模型使用LSTM作為RNN的基本單元,將來(lái)自雙向LSTM(Bidirectional LSTM,BiLSTM)[37]的對(duì)齊隱狀態(tài)信息和注意力信息一起作用于語(yǔ)義槽填充任務(wù),用隱狀態(tài)的加權(quán)和生成意圖分類(lèi)的結(jié)果。傳統(tǒng)的LSTM模型僅使用前向單元處理序列問(wèn)題,無(wú)法利用語(yǔ)句中的后向信息進(jìn)行學(xué)習(xí),但實(shí)際上,下文信息也至關(guān)重要。BiLSTM模型沿前向和后向讀取輸入序列并將得到的高維特征進(jìn)行拼接作為最終含有上下文信息的語(yǔ)義向量表示,每個(gè)步驟的隱狀態(tài)hi由前向隱狀態(tài) fhi和向后隱狀態(tài)bhi共同組成,hi=[fhi,bhi]包含整個(gè)輸入序列的信息,并在前向RNN中建模語(yǔ)義槽標(biāo)簽之間的依賴(lài)關(guān)系。但信息可能會(huì)隨著向前和向后的長(zhǎng)距離傳遞而逐漸丟失,因此,當(dāng)進(jìn)行語(yǔ)義槽標(biāo)簽預(yù)測(cè)時(shí),注意力機(jī)制可以進(jìn)一步聚焦式捕獲上下文信息ci,ci是RNN隱狀態(tài)hi=(h1,h2,…,hT)的加權(quán)平均值。雙向LSTM模型得到了包含上下文信息的語(yǔ)義表示,以及注意力機(jī)制捕獲長(zhǎng)距離依賴(lài)關(guān)系,兩者結(jié)合進(jìn)一步提升NLU的性能?;陔p向RNN+Attention的意圖和語(yǔ)義槽聯(lián)合識(shí)別模型如圖3所示。
在基于雙向RNN+Attention的意圖和語(yǔ)義槽聯(lián)合識(shí)別模型中,雖然雙向RNN模型在理論上實(shí)現(xiàn)了捕獲上下文信息的效果,但并沒(méi)有達(dá)到真正雙向的目的,只是兩個(gè)不同方向RNN模型的簡(jiǎn)單拼接,無(wú)法交互信息,而且不能并行化處理,導(dǎo)致模型訓(xùn)練時(shí)間較長(zhǎng)。
在意圖和語(yǔ)義槽的聯(lián)合識(shí)別任務(wù)中,卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Networks,CNN)因?yàn)槭褂脴?biāo)量傳遞信息,所以它無(wú)法考慮底層對(duì)象之間的空間關(guān)系,而且池化層一般選取最大或平均概率的語(yǔ)義信息,會(huì)丟失大量小概率信息,無(wú)法保證特征的完整性以反映全局特征,此外受卷積核大小的影響,CNN只能提取到文本的局部特征,不能保持語(yǔ)義的連貫性,也不能一次性捕獲全局信息,存在較大的局限性?;赗NN、LSTM的模型通常利用RNN、LSTM的最后一個(gè)隱狀態(tài)識(shí)別意圖,這種方法沒(méi)有考慮單詞、語(yǔ)義槽和意圖之間的層次關(guān)系,而且隨著序列長(zhǎng)度的增加,依靠LSTM的門(mén)控機(jī)制捕獲所有上下文信息是不全面的。
圖3 基于雙向RNN+Attention的聯(lián)合識(shí)別
2011年Hinton等人提出“膠囊”的概念[38],用向量表示空間上的相對(duì)位置關(guān)系,2017年Sabour等人[39]提出膠囊網(wǎng)絡(luò)(Capsule Neural Networks),通過(guò)動(dòng)態(tài)路由機(jī)制捕獲CNN模型丟失的小概率語(yǔ)義信息,用向量的方向表示不同類(lèi)別,向量的模長(zhǎng)表示對(duì)應(yīng)類(lèi)別的分類(lèi)概率,比使用標(biāo)量的傳統(tǒng)方法具有更強(qiáng)的表示能力。因?yàn)槟z囊的方向性?xún)?yōu)勢(shì)可以對(duì)平移、旋轉(zhuǎn)、縮放后的同一對(duì)象正確識(shí)別,還能從不同角度識(shí)別同一物體,因此膠囊網(wǎng)絡(luò)不需要龐大的訓(xùn)練數(shù)據(jù)就可以在小規(guī)模數(shù)據(jù)集上學(xué)習(xí)各種情況下的特征信息。
2019年劉嬌等人[40]對(duì)膠囊網(wǎng)絡(luò)在意圖識(shí)別任務(wù)上的應(yīng)用做了詳細(xì)綜述,總結(jié)了膠囊網(wǎng)絡(luò)需要的數(shù)據(jù)量少、可以捕獲小概率信息等優(yōu)勢(shì)。2018年Zhang等人[41]提出將膠囊網(wǎng)絡(luò)用于意圖和語(yǔ)義槽聯(lián)合識(shí)別任務(wù),取得了較好的結(jié)果。該模型充分利用單詞、語(yǔ)義槽和意圖之間的層次結(jié)構(gòu)關(guān)系,用膠囊層間協(xié)議動(dòng)態(tài)路由代替池化,為輸入話語(yǔ)中的每個(gè)單詞指定正確的語(yǔ)義槽類(lèi)別,并根據(jù)語(yǔ)義槽的結(jié)果幫助識(shí)別意圖類(lèi)別,然后通過(guò)重路由機(jī)制利用意圖識(shí)別的結(jié)果指導(dǎo)修正語(yǔ)義槽填充的結(jié)果。該模型通過(guò)三種膠囊類(lèi)型的分級(jí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)具有層次結(jié)構(gòu)的特征信息進(jìn)行捕獲,如圖4(a)所示[41],這三種膠囊分別是含有上下文信息單詞表示的Word-Caps;通過(guò)動(dòng)態(tài)路由機(jī)制按語(yǔ)義槽類(lèi)型對(duì)單詞進(jìn)行分類(lèi)的SlotCaps;根據(jù)具有詞級(jí)信號(hào)的語(yǔ)義槽信息確定句子意圖類(lèi)別的IntentCaps,而且得到的意圖標(biāo)簽可以通過(guò)重路由機(jī)制從句子中重新識(shí)別語(yǔ)義槽類(lèi)別,實(shí)現(xiàn)單詞級(jí)語(yǔ)義槽填充和句子級(jí)意圖識(shí)別的協(xié)同效應(yīng)?;谀z囊網(wǎng)絡(luò)的聯(lián)合識(shí)別模型如圖4(b)所示[41],實(shí)線表示動(dòng)態(tài)路由過(guò)程,虛線表示重路由過(guò)程。
膠囊網(wǎng)絡(luò)使用協(xié)議動(dòng)態(tài)路由代替CNN模型的最大池化方法不僅能夠捕獲小概率的語(yǔ)義信息,保證特征信息的完整性,而且保留了特征之間準(zhǔn)確的位置關(guān)系,所以相較于基于CNN的意圖和語(yǔ)義槽聯(lián)合識(shí)別模型性能有了一定提升。但膠囊網(wǎng)絡(luò)受膠囊間動(dòng)態(tài)路由算法無(wú)法共享權(quán)重和參數(shù)個(gè)數(shù)多的影響,識(shí)別速度較慢,但相較于其他需要在大規(guī)模數(shù)據(jù)集上進(jìn)行訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型來(lái)說(shuō),膠囊網(wǎng)絡(luò)在小規(guī)模數(shù)據(jù)集上就可以達(dá)到較好的效果。2018年Hinton等人[42]又提出用矩陣代替向量以減少參數(shù)數(shù)量,進(jìn)而降低計(jì)算量,但計(jì)算速度還是較慢。
傳統(tǒng)的靜態(tài)詞向量無(wú)法根據(jù)語(yǔ)境動(dòng)態(tài)表征詞的多義性,Devlin等2018年[43]提出基于Transformer的BERT(Bidirectional Encoder Representations from Transformers)模型,通過(guò)先預(yù)訓(xùn)練(per-training)再微調(diào)(fine-tuning)的方式不僅可以得到語(yǔ)義更豐富的向量表示,有效解決一詞多義的問(wèn)題,而且微調(diào)的方法使得預(yù)訓(xùn)練模型能在更多的數(shù)據(jù)上進(jìn)行訓(xùn)練,提升了泛化能力。Transformer是一種使用注意力機(jī)制編碼每個(gè)位置信息的編碼器-解碼器架構(gòu),可以捕獲長(zhǎng)距離依賴(lài)關(guān)系,還可以并行化處理。2019年阿里巴巴團(tuán)隊(duì)[44]提出基于BERT的意圖和語(yǔ)義槽聯(lián)合識(shí)別模型,在ATIS數(shù)據(jù)集上意圖識(shí)別的準(zhǔn)確率達(dá)到97.5%,語(yǔ)義槽填充F1值達(dá)到96.1%,取得最優(yōu)結(jié)果。
3.4.1 Transformer體系結(jié)構(gòu)
RNN、LSTM模型的順序計(jì)算機(jī)制存在兩個(gè)問(wèn)題:第一,因?yàn)槟P捅旧斫Y(jié)構(gòu)的序列性,t時(shí)刻的計(jì)算依賴(lài)t-1時(shí)刻的計(jì)算結(jié)果,限制了模型的并行處理能力;第二,順序計(jì)算的過(guò)程中信息可能會(huì)隨著長(zhǎng)距離傳遞而丟失,盡管LSTM使用門(mén)控機(jī)制在一定程度上緩解了長(zhǎng)期依賴(lài)的問(wèn)題,但是對(duì)于距離特別長(zhǎng)的依賴(lài)現(xiàn)象,LSTM依舊無(wú)法解決。RNN是迭代結(jié)構(gòu),CNN是分層結(jié)構(gòu),CNN最大的優(yōu)點(diǎn)是易于做并行計(jì)算,但是無(wú)法一次性捕獲全局信息?;谧⒁饬C(jī)制建模的Transformer模型解決了上述問(wèn)題,不僅具有并行性,符合現(xiàn)有的GPU框架,而且通過(guò)注意力機(jī)制可以忽略距離,為不同的信息分配不同的注意力權(quán)重捕獲長(zhǎng)距離依賴(lài)關(guān)系,所以Transformer模型是目前優(yōu)于RNN和CNN的特征提取器。
Transformer模型采用NLP任務(wù)中最常用編碼器-解碼器架構(gòu)[35]。編碼器共四層,第一層是多頭注意力機(jī)制(Multi-Head Attention),為模型分配多組不同的注意力權(quán)重?cái)U(kuò)展模型關(guān)注不同位置的能力,從而捕獲更加豐富的信息;第二層是求和并歸一化層,求和即殘差連接(Residual Connection),將模塊的輸入與輸出相加后作為最終輸出,目的是將前一層信息無(wú)差地傳遞到下一層以解決深度神經(jīng)網(wǎng)絡(luò)中梯度消失問(wèn)題,然后進(jìn)行歸一化處理,加速模型訓(xùn)練過(guò)程,使得模型快速收斂[45];第三層是前饋神經(jīng)網(wǎng)絡(luò)層(Feedforward Neural Network,F(xiàn)NN);第四層再經(jīng)過(guò)一個(gè)求和并歸一化層,生成中間語(yǔ)義編碼向量并傳送給解碼器。解碼器共六層,和編碼器結(jié)構(gòu)類(lèi)似,但第一層是帶MASK(掩蔽)操作的多頭注意力層,因?yàn)樵谳敵鰰r(shí),t時(shí)刻無(wú)法獲取t+1時(shí)刻的信息,所以解碼器的輸出需要右移,并遮擋后續(xù)詞項(xiàng)進(jìn)行預(yù)測(cè),最后解碼器再經(jīng)過(guò)一個(gè)線性回歸和Softmax層輸出解碼器最終的概率結(jié)果。Transformer模型的架構(gòu)如圖5所示[35]。
圖5 Transformer架構(gòu)圖
Transformer模型通過(guò)多頭注意力機(jī)制可以學(xué)習(xí)到不同維度的關(guān)系,而CNN通過(guò)卷積核只能學(xué)習(xí)到局部位置的信息,建立短距離依賴(lài),RNN因?yàn)楫?dāng)前時(shí)刻的值高度依賴(lài)上一時(shí)刻的值,所以學(xué)到的信息不能充分考慮復(fù)雜的上下文關(guān)系。
在處理序列任務(wù)時(shí),對(duì)文本的詞序位置信息敏感、具有上下文依賴(lài)性,但Transformer是一個(gè)并行處理的特征提取器,對(duì)于輸入句子的處理忽略了詞序信息,即可以把Transformer看作是一個(gè)功能強(qiáng)大的詞袋模型(Bag-of-Words,BOW)。在“我喜歡這場(chǎng)話劇因?yàn)樗皇莻€(gè)煽情的故事”和“我不喜歡這場(chǎng)話劇因?yàn)樗莻€(gè)煽情的故事”這兩句子中,“不”和“喜歡”的相對(duì)位置不同而導(dǎo)致文本所傳遞的情感信息完全不同。由此可見(jiàn),文本位置信息是至關(guān)重要的,而且相對(duì)位置信息比絕對(duì)位置信息對(duì)文本的語(yǔ)義影響程度更為關(guān)鍵。
通過(guò)將位置編碼信息添加到輸入向量的方式可以一定程度上彌補(bǔ)Transformer因并行處理帶來(lái)的問(wèn)題。對(duì)詞序位置信息進(jìn)行編碼的方式有兩種,第一種是訓(xùn)練出一個(gè)絕對(duì)位置向量,但只能表征有限長(zhǎng)度內(nèi)的位置,無(wú)法對(duì)任意長(zhǎng)度進(jìn)行建模;第二種是先借助有界的周期性三角函數(shù)編碼絕對(duì)位置信息,如公式(3)、(4)所示,再依據(jù)三角函數(shù)公式(5)、(6)的兩個(gè)性質(zhì)學(xué)習(xí)相對(duì)位置信息。
其中,pos表示單詞在句子中的位置,取值是0到句子的最大長(zhǎng)度,i表示詞向量的某一維度,dmodel表示詞向量維度。每個(gè)單詞的位置編碼僅與詞向量維度和當(dāng)前詞的位置有關(guān)。由三角函數(shù)通過(guò)線性變換可以得到后續(xù)詞語(yǔ)相對(duì)當(dāng)前詞語(yǔ)的位置關(guān)系,可表示為公式(7)和(8),對(duì)于 pos+k位置的位置向量可由 pos位置與k位置的位置向量線性組合得到,不僅蘊(yùn)含了相對(duì)位置信息,并且值域在一定數(shù)值區(qū)間內(nèi),具有周期不變性,同時(shí)增強(qiáng)了泛化能力。而且三角函數(shù)不受序列長(zhǎng)度的限制,可以對(duì)任意長(zhǎng)度建模,但這種類(lèi)似于點(diǎn)積計(jì)算的方法只能反映相對(duì)位置關(guān)系,缺乏方向性。
在得到相應(yīng)的位置編碼后,再和詞向量組合起來(lái)作為模型的輸入。組合的方式有兩種,一種是將位置向量和詞向量拼接成一個(gè)新向量,另一種是使兩者維度相同然后相加得到新向量。雖然這種位置編碼信息能在一定程度上緩解由于并行處理引發(fā)的局限性,但并不能從本質(zhì)上解決問(wèn)題,這是Transformer模型的一個(gè)不足之處。
3.4.2 BERT模型解決一詞多義
Harris在1954年提出的分布假說(shuō)中指出上下文相似的詞其語(yǔ)義也相似[46],F(xiàn)irth在1957年對(duì)分布假說(shuō)進(jìn)一步闡述和明確,詞的語(yǔ)義由其上下文決定,這兩個(gè)假說(shuō)將一個(gè)語(yǔ)言學(xué)問(wèn)題轉(zhuǎn)化成了數(shù)學(xué)問(wèn)題,用當(dāng)前詞的上下文表示該詞的語(yǔ)義信息[47]。在 Word2Vec[48]、GloVe[49]等詞向量的年代,所有的詞向量訓(xùn)練之后就不再發(fā)生變化,靜態(tài)詞向量無(wú)法根據(jù)不同語(yǔ)境表征詞的多義性。但在實(shí)際應(yīng)用中常會(huì)有一詞多義現(xiàn)象,例如“他用蘋(píng)果手機(jī)買(mǎi)了一箱蘋(píng)果”這一語(yǔ)句,兩個(gè)“蘋(píng)果”的含義不同,但在傳統(tǒng)的詞向量表示方法中,兩個(gè)“蘋(píng)果”的向量表示是同一向量,與客觀事實(shí)不符,影響了NLP的性能,所以解決詞的歧義性一直是NLP的一個(gè)重要難題。
近年來(lái),研究人員通過(guò)先預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)作為語(yǔ)言模型,再根據(jù)下游任務(wù)進(jìn)行微調(diào)的方式解決了一詞多義的問(wèn)題。預(yù)訓(xùn)練語(yǔ)言模型先在可與最終任務(wù)無(wú)關(guān)的大規(guī)模數(shù)據(jù)集上訓(xùn)練出知識(shí)表示,再將學(xué)到的知識(shí)表示用于下游任務(wù)。而且預(yù)訓(xùn)練為模型提供了更好的初始化參數(shù),使得在目標(biāo)任務(wù)上具有更好的泛化性能和更快的收斂速度。
BERT模型采用表義能力強(qiáng)大的雙向Transformer模型進(jìn)行預(yù)訓(xùn)練,能夠得到包含豐富句法和語(yǔ)義信息的詞向量,然后根據(jù)上下文動(dòng)態(tài)調(diào)整詞向量以解決一詞多義的問(wèn)題。為了融合當(dāng)前詞的上下文,BERT模型不僅采用雙向Transformer模型作為編碼器,還通過(guò)“掩蔽語(yǔ)言模型(Masked Language Model,MLM)”和“下一句預(yù)測(cè)(Next Sentence Prediction,NSP)”兩個(gè)任務(wù)分別捕獲詞級(jí)和句子級(jí)表示,并進(jìn)行聯(lián)合訓(xùn)練。詞級(jí)任務(wù)就是如同“完形填空”一樣的單詞預(yù)測(cè)任務(wù),通過(guò)學(xué)習(xí)每個(gè)詞與其他所有詞的關(guān)系以及其間的詞序信息來(lái)預(yù)測(cè)被隨機(jī)遮擋的詞項(xiàng),而不像傳統(tǒng)的語(yǔ)言模型一樣對(duì)每個(gè)詞項(xiàng)進(jìn)行預(yù)測(cè),增強(qiáng)了模型的魯棒性。句子級(jí)任務(wù)就是預(yù)測(cè)兩句話是否為上下句的關(guān)系,Transformer忽略距離對(duì)全局信息編碼,可以捕獲到輸入語(yǔ)句的全部特征,直接獲得整個(gè)句子的向量表示,與基于BiLSTM建模的ELMo(Embedding from Language Models)模型[50]不同,ELMo在訓(xùn)練完成后遷移到下游NLP任務(wù)時(shí)對(duì)每一層求加權(quán)和得到全局信息。
BERT模型因?yàn)樽宰⒁饬C(jī)制的計(jì)算是并行的,忽略了序列中的位置信息,所以BERT模型在輸入時(shí)通過(guò)加入位置向量(Position Embeddings)的方法捕獲詞序信息。BERT模型的輸入如圖6所示,不僅在開(kāi)頭、兩個(gè)句子之間和結(jié)尾分別加入[CLS]、[SEP]和[SEP]特殊字符,而且將單詞本身的詞向量(Token Embeddings)、句向量(Segment Embeddings)和位置向量相疊加。王楠禔[51]提出在預(yù)訓(xùn)練時(shí)增加亂序判斷任務(wù)能強(qiáng)化模型對(duì)詞序信息的捕獲能力,讓模型判斷被隨機(jī)打亂詞序的語(yǔ)句是否合理的方式使模型對(duì)于語(yǔ)序更加敏感,而且強(qiáng)化了模型對(duì)單個(gè)句子的建模能力,從而更準(zhǔn)確地表征語(yǔ)義信息,提升人機(jī)對(duì)話系統(tǒng)的性能。
BERT模型在訓(xùn)練期間,同一個(gè)詞可以學(xué)習(xí)不同語(yǔ)境下的所有語(yǔ)義信息,使用時(shí)再將符合當(dāng)前上下文語(yǔ)境更精準(zhǔn)的細(xì)粒度語(yǔ)義向量提煉出來(lái)以有效解決一詞多義的問(wèn)題,幫助提升NLU的性能,進(jìn)一步提升對(duì)話系統(tǒng)的效果。
2019年馬月坤等人[52]提出使用BERT模型能夠有效捕獲語(yǔ)言的深層信息,并充分利用句子信息和對(duì)應(yīng)的實(shí)體信息在關(guān)系抽取任務(wù)中獲得較好的效果。段丹丹等人[53]提出用BERT模型代替Word2Vec模型對(duì)短文本進(jìn)行向量表示,在一定程度上提升了中文短文本分類(lèi)的效果。胡春濤等人[54]將BERT模型用于輿情分類(lèi)任務(wù),因?yàn)锽ERT模型能夠捕獲深層次的語(yǔ)義信息且能夠捕獲文檔的全局話題結(jié)構(gòu),取得了較好的性能,進(jìn)一步體現(xiàn)了BERT模型在NLP任務(wù)上的優(yōu)越性。
3.4.3 基于BERT模型的聯(lián)合識(shí)別
在2018年之前,幾乎任何一個(gè)NLP任務(wù)都是以Word2Vec訓(xùn)練出的詞向量為起點(diǎn),在實(shí)現(xiàn)下游任務(wù)時(shí),構(gòu)建句向量的過(guò)程往往是對(duì)詞向量簡(jiǎn)單的平均或者求和,難以提取深層語(yǔ)義特征,導(dǎo)致下游任務(wù)性能較差。隨著B(niǎo)ERT預(yù)訓(xùn)練語(yǔ)言模型的提出,大幅度提升了NLP任務(wù)的起點(diǎn),BERT模型先用同領(lǐng)域或跨領(lǐng)域內(nèi)、有標(biāo)注或無(wú)標(biāo)注的大規(guī)模數(shù)據(jù)預(yù)訓(xùn)練一個(gè)語(yǔ)言模型,再利用遷移學(xué)習(xí)的思想在小規(guī)模的標(biāo)注數(shù)據(jù)集上完成NLP任務(wù),所以BERT模型在一定程度上能解決端到端模型標(biāo)注數(shù)據(jù)少、訓(xùn)練困難以及因此所導(dǎo)致對(duì)生詞泛化能力差的問(wèn)題[55]。
阿里巴巴集團(tuán)提出基于BERT模型對(duì)意圖和語(yǔ)義槽進(jìn)行聯(lián)合識(shí)別,目前在ATIS、Snips數(shù)據(jù)集上取得了最優(yōu)的成績(jī)。BERT模型利用在開(kāi)頭加入的[CLS]特殊標(biāo)簽進(jìn)行意圖識(shí)別,語(yǔ)義槽填充除了直接用Transformer輸出的結(jié)果進(jìn)行序列標(biāo)注以外還加入CRF層對(duì)語(yǔ)義槽標(biāo)簽進(jìn)行全局優(yōu)化?;贐ERT模型對(duì)“北京飛往上海的航班”這一語(yǔ)句的聯(lián)合識(shí)別如圖7所示。
在該模型中,輸入為用戶(hù)話語(yǔ)X1,X2,…,XT序列,輸出是聯(lián)合識(shí)別的結(jié)果h1,h2,…,hT序列。對(duì)于意圖識(shí)別任務(wù),BERT模型將Transformer作為模型的主結(jié)構(gòu),通過(guò)注意力機(jī)制忽略距離對(duì)句子進(jìn)行建模,對(duì)在輸入話語(yǔ)前增加的特殊標(biāo)簽[CLS]進(jìn)行深度編碼,聚合句子表示信息,同時(shí)[CLS]的最高隱層作為句子的最終表示直接和Softmax層相連接,因此[CLS]可以學(xué)習(xí)到整個(gè)輸入序列的特征,將[CLS]的隱藏狀態(tài)記為h1,其意圖預(yù)測(cè)表示為公式(9):
對(duì)于語(yǔ)義槽填充任務(wù),將其他詞項(xiàng)的最終隱藏狀態(tài)h2,h3,…,hT輸入到Softmax層,然后對(duì)每一個(gè)輸出進(jìn)行語(yǔ)義槽標(biāo)簽分類(lèi),表示為公式(10):
當(dāng)聯(lián)合訓(xùn)練意圖識(shí)別和語(yǔ)義槽填充兩個(gè)任務(wù)時(shí),需要最大化條件概率目標(biāo)函數(shù),使用交叉熵作為分類(lèi)的損失函數(shù),記為公式(11):
圖6 BERT模型的輸入圖示
圖7 基于BERT模型的聯(lián)合識(shí)別
BERT模型能夠根據(jù)不同的上下文動(dòng)態(tài)生成詞的語(yǔ)義表示,比傳統(tǒng)的詞向量更能表征語(yǔ)句特征,而且BERT模型堆疊多層Transformer模塊,低層Transformer主要學(xué)習(xí)自然語(yǔ)言表層特征,中層學(xué)習(xí)編碼句法信息,高層學(xué)習(xí)編碼文本的語(yǔ)義特征,同時(shí)高層語(yǔ)義知識(shí)會(huì)對(duì)低層的知識(shí)有反饋?zhàn)饔?,?jīng)過(guò)高層語(yǔ)義可以指導(dǎo)修正低層的句法特征。所以相對(duì)于Cove(Contextualized Word Vectors)[56]、ELMo模型,BERT模型編碼了更多的句法信息,能夠充分利用深層次的語(yǔ)義信息更好解決NLU任務(wù)。
BERT模型是自編碼模型,MLM預(yù)訓(xùn)練任務(wù)的主要思想是去噪自編碼器(Denoising Autoencoder,DAE),即通過(guò)引入噪聲數(shù)據(jù)再利用含噪聲的樣本重新構(gòu)造不含噪聲輸入的方法實(shí)現(xiàn)雙向捕獲上下文。但這種方法存在一些問(wèn)題,BERT模型分為預(yù)訓(xùn)練和微調(diào)兩個(gè)階段,在預(yù)訓(xùn)練階段出現(xiàn)的[MASK]噪聲在微調(diào)階段不會(huì)出現(xiàn),這種操作不利于學(xué)習(xí),還會(huì)影響NLU的性能。而且以字為單位進(jìn)行建模的BERT模型對(duì)于每個(gè)詞項(xiàng)的預(yù)測(cè)是相互獨(dú)立的,模型很難學(xué)習(xí)到知識(shí)單元的完整語(yǔ)義表示,但在實(shí)際應(yīng)用中,比如對(duì)于“內(nèi)蒙古師范大學(xué)”這樣的實(shí)體詞,每個(gè)字之間都是有關(guān)聯(lián)關(guān)系的,但BERT模型只學(xué)習(xí)語(yǔ)言相關(guān)的信息,忽略了內(nèi)部關(guān)聯(lián)關(guān)系,沒(méi)有將知識(shí)信息整合到語(yǔ)言理解中。
針對(duì)BERT模型沒(méi)有將知識(shí)信息整合到語(yǔ)言理解中的局限,2019年清華大學(xué)和華為公司聯(lián)合提出了ERNIE(Enhanced Language Representation with Informative Entities)[57]模型,通過(guò)將知識(shí)圖譜中的多信息實(shí)體作為外部知識(shí)的方法提高了模型表征能力,先抽取實(shí)體信息再將這些信息與知識(shí)圖譜中的實(shí)體相匹配,并通過(guò)知識(shí)嵌入算法對(duì)知識(shí)圖譜的圖結(jié)構(gòu)進(jìn)行編碼,然后將實(shí)體信息嵌入作為輸入訓(xùn)練語(yǔ)言模型,最后在訓(xùn)練語(yǔ)言模型時(shí)通過(guò)從知識(shí)圖譜中選擇合適的實(shí)體和隨機(jī)掩蔽的實(shí)體相對(duì)齊的方式完成目標(biāo)任務(wù)。為了學(xué)習(xí)文本中蘊(yùn)含的潛在先驗(yàn)知識(shí),百度公司提出基于知識(shí)增強(qiáng)的ERNIE(Enhanced Representation through Knowledge Integration)[58]模型,通過(guò)對(duì)實(shí)體概念等先驗(yàn)語(yǔ)義知識(shí)建模的方法學(xué)習(xí)知識(shí)單元的完整語(yǔ)義表示,進(jìn)行單詞級(jí)和實(shí)體級(jí)的掩蔽訓(xùn)練,實(shí)體信息與外部知識(shí)的結(jié)合提供了豐富的結(jié)構(gòu)化事實(shí)知識(shí),增強(qiáng)了模型的語(yǔ)義表示能力[59]。在BERT模型基于局部詞語(yǔ)共現(xiàn)學(xué)習(xí)語(yǔ)義表示的基礎(chǔ)上增加了實(shí)體級(jí)任務(wù),彌補(bǔ)了BERT模型以字為單位進(jìn)行隨機(jī)掩蔽以及較少利用語(yǔ)義知識(shí)單元建模的不足。例如對(duì)于“呼和浩特是內(nèi)蒙古自治區(qū)的首府”這句話,ERNIE模型可以利用豐富的先驗(yàn)知識(shí)對(duì)“呼和浩特”這樣的實(shí)體詞整體進(jìn)行掩蔽訓(xùn)練,而且能夠充分考慮內(nèi)部關(guān)系。這種加入知識(shí)的模型相較于獨(dú)立預(yù)測(cè)詞項(xiàng)的BERT模型,不僅能夠聚合上下文和事實(shí)性知識(shí)的信息,而且可以同時(shí)預(yù)測(cè)詞項(xiàng)和實(shí)體信息,使得語(yǔ)言表示模型更加知識(shí)化。
在意圖和語(yǔ)義槽的識(shí)別任務(wù)中,可能存在以下四種歧義現(xiàn)象:
一是多義詞引起的語(yǔ)義歧義,對(duì)于這種自然語(yǔ)言的不確定性可以通過(guò)基于規(guī)則、基于詞典、基于語(yǔ)料庫(kù)和基于神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的方法進(jìn)行詞義消歧?;谝?guī)則的消歧方法雖然簡(jiǎn)單,但是比較依賴(lài)語(yǔ)言專(zhuān)家的語(yǔ)言知識(shí),有很大的主觀性,難以適應(yīng)領(lǐng)域的變化?;谠~典的詞義消歧方法先計(jì)算語(yǔ)義詞典中各個(gè)詞義的定義與上下文之間的覆蓋度,然后選擇覆蓋度最大值對(duì)應(yīng)的詞義消除歧義,但由于詞典中詞義的定義比較簡(jiǎn)潔,通常得到的覆蓋度為零,存在著嚴(yán)重的數(shù)據(jù)稀疏問(wèn)題,而且缺乏可擴(kuò)展性和靈活性?;谡Z(yǔ)料庫(kù)的消歧又分為有監(jiān)督的和半監(jiān)督或無(wú)監(jiān)督方法,前者在人工標(biāo)注詞義的訓(xùn)練語(yǔ)料上利用機(jī)器學(xué)習(xí)算法建立消歧模型,如決策樹(shù)、K近鄰算法、樸素貝葉斯等模型,這種方法性能較好,但需要大量高質(zhì)量的人工標(biāo)注語(yǔ)料,如果語(yǔ)料庫(kù)標(biāo)記規(guī)模較小,很容易造成數(shù)據(jù)的稀疏問(wèn)題,不僅費(fèi)時(shí)費(fèi)力,而且詞義標(biāo)注者之間也很難達(dá)到較高的標(biāo)注一致性。后者僅需要少量或不需要人工標(biāo)注語(yǔ)料就可以消歧,如上下文聚類(lèi)、詞語(yǔ)聚類(lèi)、共現(xiàn)圖聚類(lèi)等方法,但這種方法依賴(lài)在該語(yǔ)料上的句法分析結(jié)果,而且待消解詞的覆蓋度可能會(huì)受影響。目前比較主流的方法是基于神經(jīng)網(wǎng)絡(luò)的方法,例如上文所述的BERT模型,利于在大規(guī)模語(yǔ)料庫(kù)上預(yù)訓(xùn)練得到的上下文敏感的動(dòng)態(tài)語(yǔ)義向量消除歧義,同時(shí)一定程度上解決了有監(jiān)督消歧模型數(shù)據(jù)稀疏的問(wèn)題。
二是由于用戶(hù)話語(yǔ)的自由度高,可能會(huì)存在指代的現(xiàn)象,例如在軟件工程的知識(shí)問(wèn)答系統(tǒng)中,對(duì)于“軟件過(guò)程中的瀑布模型是什么?該模型與增量模型有哪些區(qū)別?”這一問(wèn)句,“該模型”與“瀑布模型”存在指代關(guān)系,使得計(jì)算機(jī)不能準(zhǔn)確識(shí)別語(yǔ)句中的指代關(guān)系,理解自然語(yǔ)言變得較為困難[60],所以解決指代消歧對(duì)語(yǔ)義槽填充的性能至關(guān)重要。指代消歧的方法從算法角度可以分為兩類(lèi),一類(lèi)是基于啟發(fā)性規(guī)則的指代消歧方法,利用人工制定的一系列語(yǔ)言學(xué)規(guī)則進(jìn)行指代消歧,但需要大量的人工參與,自動(dòng)化程度較低,系統(tǒng)的可移植性也較差,另一類(lèi)是基于數(shù)據(jù)驅(qū)動(dòng)的指代消歧方法,利用標(biāo)注好的語(yǔ)料消除歧義[61],但需要大規(guī)模語(yǔ)料庫(kù)。陳遠(yuǎn)哲等人[62]對(duì)共指消解技術(shù)進(jìn)行了詳細(xì)綜述,介紹了基于規(guī)則、基于機(jī)器學(xué)習(xí)、基于全局最優(yōu)、基于知識(shí)庫(kù)和基于深度學(xué)習(xí)的模型,分析了目前共指消解存在缺乏語(yǔ)義推理能力和過(guò)分依賴(lài)前置模型性能的缺點(diǎn)。付健等人[63]在端到端指代消解模型[64]的基礎(chǔ)上,充分利用中文的詞法、句法信息,將詞性、文檔壓縮樹(shù)葉節(jié)點(diǎn)深度與成分句法樹(shù)的結(jié)構(gòu)化嵌入作為三個(gè)特征向量,加入融合了結(jié)構(gòu)化信息的中文指代消解模型中,取得了較好的效果,但是模型中的表述識(shí)別策略較為復(fù)雜,訓(xùn)練比較耗時(shí)。鄒超[65]在問(wèn)答系統(tǒng)中利用深度學(xué)習(xí)的方法捕獲深層次的語(yǔ)義特征,實(shí)現(xiàn)中文代詞消解算法,并從指代和省略?xún)蓚€(gè)方面對(duì)待檢索問(wèn)題進(jìn)行語(yǔ)義補(bǔ)全,提高了系統(tǒng)檢索的準(zhǔn)確性。
三是在意圖識(shí)別任務(wù)中,上一例句還存在“查概念”和“比較概念”兩種意圖的問(wèn)題,對(duì)于多意圖識(shí)別的研究,目前主流的方法有楊春妮等人[66]提出的結(jié)合句法特征和卷積神經(jīng)網(wǎng)絡(luò)的模型,雖然取得了較好的效果,但是比較依賴(lài)句法結(jié)構(gòu)特征。劉嬌等人[67]提出基于膠囊網(wǎng)絡(luò)的多意圖識(shí)別方法,性能優(yōu)于基于CNN的模型,但是由于膠囊網(wǎng)絡(luò)參數(shù)多會(huì)導(dǎo)致模型運(yùn)行速度較慢的問(wèn)題。
四是對(duì)于實(shí)體的消歧,高揚(yáng)[68]針對(duì)詞袋模型不能充分利用實(shí)體上下文語(yǔ)義信息的缺點(diǎn),提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的中文實(shí)體消歧方法,將實(shí)體上下文中名詞的詞向量矩陣作為神經(jīng)網(wǎng)絡(luò)的輸入,通過(guò)寬卷積的方式保留更多的詞語(yǔ)組合可能性,并生成實(shí)體上下文的語(yǔ)義特征向量用于實(shí)體消歧任務(wù),但是由于神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜性,導(dǎo)致在大規(guī)模語(yǔ)料上訓(xùn)練的時(shí)間復(fù)雜度較大。ENRIE模型的提出也為實(shí)體消歧的解決提供了新思路,通過(guò)實(shí)體級(jí)掩蔽任務(wù)與外部知識(shí)庫(kù)結(jié)合的方式增強(qiáng)了語(yǔ)言表征能力,可以更好地解決實(shí)體消歧。
這些歧義現(xiàn)象影響了模型的泛化能力,給NLP帶來(lái)了極大的困難[69]。對(duì)于現(xiàn)有數(shù)據(jù)不均衡的現(xiàn)象,如何利用已有的低資源啟動(dòng)跨文本、跨語(yǔ)言的新領(lǐng)域是下一步的研究熱點(diǎn),遷移學(xué)習(xí)能夠利用其他模型幫助新模型在低數(shù)據(jù)體系下進(jìn)行訓(xùn)練,但是遷移學(xué)習(xí)并不適用于所有新領(lǐng)域。目前較為常用的方法是通過(guò)自動(dòng)標(biāo)注的方式幫助模型構(gòu)建領(lǐng)域知識(shí),利用領(lǐng)域知識(shí)增強(qiáng)數(shù)據(jù)包含信息的能力從而達(dá)到節(jié)約成本的目的,但領(lǐng)域知識(shí)的構(gòu)建過(guò)程依舊需要消耗人力物力。此外,有研究者提出用機(jī)器模擬人類(lèi)標(biāo)注數(shù)據(jù)的思想,這樣既可以減少人工消耗,也可以產(chǎn)生更多的可用數(shù)據(jù)[70],但是用戶(hù)模擬器的反饋與真實(shí)用戶(hù)的反饋還存在一定誤差。還有研究者提出了動(dòng)態(tài)學(xué)習(xí)(active learning)的方法,采用多種方式相結(jié)合的模式對(duì)數(shù)據(jù)自動(dòng)標(biāo)注以減少標(biāo)注誤差[71],這些都是未來(lái)研究的重點(diǎn)方向。
本文主要對(duì)最新的具有代表性的意圖和語(yǔ)義槽聯(lián)合識(shí)別的方法進(jìn)行分析介紹,各模型在ATIS數(shù)據(jù)集上的性能如表2所示,評(píng)價(jià)指標(biāo)包括語(yǔ)義槽填充F1值和意圖識(shí)別準(zhǔn)確率。第一組是RNN-LSTM模型,其中SD、MD分別代表在單領(lǐng)域、多領(lǐng)域上進(jìn)行訓(xùn)練,Sep、Joint分別代表意圖和語(yǔ)義槽獨(dú)立建模、聯(lián)合識(shí)別的方法,從實(shí)驗(yàn)結(jié)果可以看出無(wú)論是在單領(lǐng)域還是多領(lǐng)域,聯(lián)合識(shí)別可以提高意圖識(shí)別的準(zhǔn)確率,但是語(yǔ)義槽填充F1值會(huì)降低,而從全局來(lái)看,聯(lián)合多領(lǐng)域集成多任務(wù)的模型會(huì)提升識(shí)別語(yǔ)義框架的準(zhǔn)確率。在第二組模型中,dropout為0.5,LSTM的單元數(shù)為128?;陔p向RNN+Attention聯(lián)合識(shí)別模型不要求編碼器將所有輸入信息都編碼為一個(gè)固定長(zhǎng)度的向量,而是在解碼器的每一個(gè)時(shí)間步,都和編碼器直接連接,通過(guò)對(duì)輸入信息分配不同的權(quán)重聚焦式關(guān)注特定的部分,再與雙向LSTM雙向建模得到包含上下文語(yǔ)義信息的向量相結(jié)合,得到包含更豐富的語(yǔ)義向量表示,彌補(bǔ)了RNN對(duì)長(zhǎng)距離依賴(lài)關(guān)系的不足,取得了較好的性能。雙向RNN+Attention的模型與使用對(duì)齊輸入的基于注意機(jī)制的編碼器-解碼器模型相比具有更高的計(jì)算效率,因?yàn)樵谀P陀?xùn)練期間,編碼器-解碼器模型讀取輸入序列兩次,而雙向RNN+Attention模型只讀取輸入序列一次。第三組是膠囊網(wǎng)絡(luò)模型,dropout為0.2,膠囊網(wǎng)絡(luò)通過(guò)動(dòng)態(tài)路由機(jī)制改進(jìn)了CNN的不足,捕獲小概率的語(yǔ)義信息,保證了特征的完整性,而且重路由機(jī)制能利用意圖識(shí)別的結(jié)果指導(dǎo)修正語(yǔ)義槽填充任務(wù),性能有了一定的提升,同時(shí)證明了聯(lián)合識(shí)別比獨(dú)立建模效果更好,但其受模型復(fù)雜、參數(shù)多的影響導(dǎo)致計(jì)算速度較慢。第四組是BERT模型,目前在ATIS數(shù)據(jù)集上取得了最優(yōu)性能,在該模型中Transformer設(shè)置為12層,dropout設(shè)置為0.1,包含768個(gè)隱藏狀態(tài)和12個(gè)頭部?;贐ERT+CRF的聯(lián)合識(shí)別模型用CRF取代Softmax分類(lèi)器,但其性能與BERT相差不多,因?yàn)樵谛蛄袠?biāo)注任務(wù)中,標(biāo)簽之間是有依賴(lài)關(guān)系的,比如當(dāng)采用BIO格式標(biāo)注時(shí),標(biāo)簽I應(yīng)該在標(biāo)簽B之后出現(xiàn),而不應(yīng)該在標(biāo)簽B之前出現(xiàn),CRF機(jī)制主要用于計(jì)算詞標(biāo)簽之間的轉(zhuǎn)移概率以進(jìn)行標(biāo)簽全局優(yōu)化。Tan等人[72]2018年提出使用深度注意力網(wǎng)絡(luò)(Deep Attentional Neural Network)進(jìn)行標(biāo)注,在模型的頂層僅使用自注意力機(jī)制也能夠?qū)W習(xí)到標(biāo)簽之間潛在的依賴(lài)信息,所以Transformer模型中的自注意機(jī)制已經(jīng)對(duì)標(biāo)簽結(jié)構(gòu)進(jìn)行了充分建模,加入CRF后性能并沒(méi)有提升。
表2 聯(lián)合識(shí)別模型在ATIS數(shù)據(jù)集上的NLU性能結(jié)果%
表3 基于深度學(xué)習(xí)的聯(lián)合識(shí)別模型對(duì)比
綜上可以看出聯(lián)合識(shí)別比獨(dú)立建模的效果更好,而且在聯(lián)合識(shí)別的兩種方法中,將意圖識(shí)別和語(yǔ)義槽填充合并成一個(gè)任務(wù),求解聯(lián)合概率的效果更好,因?yàn)檫@種方法能夠充分利用兩任務(wù)的相關(guān)關(guān)系進(jìn)行建模,從而達(dá)到更好的性能,而共享底層特征再分別求解的方法不能實(shí)現(xiàn)真正的聯(lián)合識(shí)別。
基于深度學(xué)習(xí)的方法能充分利用高性能計(jì)算能力從海量數(shù)據(jù)中總結(jié)規(guī)律,然后對(duì)意圖和語(yǔ)義槽進(jìn)行端到端的聯(lián)合識(shí)別。表3對(duì)目前主流的基于深度學(xué)習(xí)的聯(lián)合識(shí)別模型進(jìn)行對(duì)比分析。
本文主要對(duì)基于深度學(xué)習(xí)的端到端任務(wù)型對(duì)話系統(tǒng)中意圖和語(yǔ)義槽聯(lián)合識(shí)別具有代表性的方法進(jìn)行總結(jié)對(duì)比。目前性能較好的是BERT模型,不僅可以并行處理任務(wù),而且可以雙向捕獲上下文信息,還能解決一詞多義的問(wèn)題,同時(shí)為遷移學(xué)習(xí)提供了可能。
NLU性能的提升還有很大的探索空間:第一,Transformer模型在捕獲長(zhǎng)距離依賴(lài)關(guān)系、深層次語(yǔ)義信息方面都優(yōu)于CNN、RNN、LSTM等模型,但因并行化處理而丟失的詞序信息對(duì)NLU至關(guān)重要,簡(jiǎn)單地在輸入時(shí)加入位置編碼向量并不能從根源解決問(wèn)題,所以如何更好地捕獲Transformer模型丟失的詞序位置信息以及減小模型的復(fù)雜度是下一步研究的重點(diǎn)。第二,當(dāng)CNN模型用于意圖和語(yǔ)義槽聯(lián)合識(shí)別任務(wù)時(shí),池化層忽略了大量小概率的語(yǔ)義信息,不能保證特征的完整性,而膠囊網(wǎng)絡(luò)通過(guò)動(dòng)態(tài)路由機(jī)制可以捕獲到小概率的語(yǔ)義信息,但膠囊網(wǎng)絡(luò)因?yàn)樗惴◤?fù)雜、參數(shù)多等原因?qū)е掠?jì)算速度較慢,所以如何提升膠囊網(wǎng)絡(luò)的計(jì)算性能是一個(gè)值得研究的方向。第三,在意圖和語(yǔ)義槽識(shí)別任務(wù)中,因?yàn)橛脩?hù)話語(yǔ)自由度高,可能會(huì)產(chǎn)生語(yǔ)義歧義、代詞省略、多意圖等歧義現(xiàn)象,因此針對(duì)口語(yǔ)的不確定性如何利用深度學(xué)習(xí)、遷移學(xué)習(xí)等方法進(jìn)行有效消歧以提升人機(jī)對(duì)話系統(tǒng)的魯棒性是下一步探索方向,以及如何利用低資源啟動(dòng)跨語(yǔ)言、跨文本的對(duì)話系統(tǒng)也是NLP的重要問(wèn)題之一。第四,當(dāng)NLU在處理復(fù)雜任務(wù)時(shí),不僅需要語(yǔ)言的語(yǔ)義信息,還需要結(jié)合事實(shí)性知識(shí)進(jìn)行邏輯推理才能完成任務(wù),為此,如何將領(lǐng)域知識(shí)和事實(shí)性知識(shí)圖譜加入模型以補(bǔ)充更豐富的信息,進(jìn)而提升NLU處理復(fù)雜任務(wù)的能力是一個(gè)新的研究方向。