孫 鑫,王厚峰
(北京大學(xué) 計(jì)算語(yǔ)言學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100871)
口語(yǔ)對(duì)話系統(tǒng)、語(yǔ)音助手、自動(dòng)客服等是當(dāng)前自然語(yǔ)言處理研究的熱點(diǎn)。這些應(yīng)用的成功不僅取決于語(yǔ)音內(nèi)容的識(shí)別,更在于對(duì)句子含義的理解。和自動(dòng)語(yǔ)音識(shí)別(automatic speech recognizer, ASR)是將說話人的語(yǔ)音轉(zhuǎn)化為文字序列不同,口語(yǔ)理解(spoken language understanding, SLU)側(cè)重于確定口語(yǔ)問句包含的意圖[1],并提取出相應(yīng)的約束條件,再交給對(duì)話或任務(wù)管理器(dialog or task manager, DM)[2],就可以滿足用戶的特殊需求。ASR、SLU和DM順序連接構(gòu)成了典型的面向?qū)嶋H目標(biāo)的會(huì)話理解系統(tǒng)[2],是自動(dòng)客戶服務(wù)等應(yīng)用的關(guān)鍵構(gòu)成部分。本文研究SLU中的意圖識(shí)別和約束條件分析,為口語(yǔ)理解提供幫助。
意圖識(shí)別(intent determination, ID)旨在確定一句話的意圖,可以看成分類問題。事先在該領(lǐng)域定義各種可能的意圖類別,再用分類方法將問句分到某類之中。約束條件分析(slot filling, SF)則是提取出達(dá)成意圖的關(guān)鍵信息,可以看成序列標(biāo)注問題,即將關(guān)鍵詞標(biāo)注為特定標(biāo)簽,其他詞被標(biāo)注為普通標(biāo)簽。
表1中,我們采用In/Out/Begin(IOB)標(biāo)簽來(lái)標(biāo)注“西安到拉薩8月1號(hào)到5號(hào)有沒有打折的飛機(jī)票”這句話。“西安”被標(biāo)注為起點(diǎn),“拉薩”為終點(diǎn),“8月1號(hào)到5號(hào)”被標(biāo)注為出發(fā)時(shí)間,“打折”是票價(jià)要求。這句話的意圖是“查機(jī)票”。
表1 ID和SF問題樣例
意圖和約束條件這兩個(gè)問題通常被當(dāng)作獨(dú)立的兩個(gè)問題處理, 前者可以用各種機(jī)器學(xué)習(xí)的分類方法,如支持向量機(jī)(support vector machine, SVM)、邏輯回歸等解決;后者可以用序列標(biāo)注模型實(shí)現(xiàn),如條件隨機(jī)場(chǎng)(conditional random field, CRF)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)等。但這兩個(gè)問題是相關(guān)的,兩種信息可以相互幫助、相互影響[3],例如,“查機(jī)票”類型的問句,很可能出現(xiàn)“起點(diǎn)”“終點(diǎn)”“時(shí)間”這類標(biāo)簽;反過來(lái),這些標(biāo)簽的出現(xiàn)也很可能意味著問句的意圖是“查機(jī)票”。目前已有研究采用聯(lián)合模型,同時(shí)識(shí)別意圖和提取出關(guān)鍵信息。
單一模型將意圖識(shí)別和約束條件分析作為兩個(gè)獨(dú)立的問題。
意圖識(shí)別是分類問題,可以使用分類方法求解,如SVM模型[4]、Adaboost方法[5]等。這類傳統(tǒng)分類方法的一般步驟是,提取特征作為問句的輸入,再用訓(xùn)練好的分類模型進(jìn)行多分類;缺點(diǎn)是需要人工設(shè)定特征。當(dāng)數(shù)據(jù)集發(fā)生變化時(shí),需要重新設(shè)計(jì)特征。這往往會(huì)演變成特征設(shè)計(jì)、特征選取等問題,失去了對(duì)課題本質(zhì)的關(guān)注。
約束條件分析一般被視為序列標(biāo)注問題,條件隨機(jī)場(chǎng)[6]是解決這類問題的經(jīng)典方法。這類方法一般步驟是,將訓(xùn)練數(shù)據(jù)中的被標(biāo)注序列和標(biāo)簽看作很多節(jié)點(diǎn),設(shè)計(jì)兩個(gè)或多個(gè)節(jié)點(diǎn)之間的關(guān)系作為特征,訓(xùn)練出這些特征的權(quán)重。最后在測(cè)試數(shù)據(jù)集上,將更能反映這些特征的標(biāo)簽序列作為結(jié)果;缺點(diǎn)同樣是需要人工設(shè)定特征模板。
深度學(xué)習(xí)方法可以避免人工構(gòu)建特征,例如,RNN方法[7]及各種改進(jìn)模型如LSTM、GRU等。這類方法在計(jì)算每個(gè)詞標(biāo)簽的概率時(shí),是在局部進(jìn)行歸一的,而局部歸一容易出現(xiàn)偏置[8]。CRF方法是全局歸一,關(guān)注整個(gè)標(biāo)簽序列占所有可能標(biāo)簽序列的概率。結(jié)合CRF的RNN模型[8]可以提高約束條件分析的效果。不過,這種方法只關(guān)注單個(gè)問題,沒有解決意圖識(shí)別問題,忽略了意圖識(shí)別模塊帶來(lái)的額外信息。
文獻(xiàn)[3]提出了基于RNN的聯(lián)合模型,以GRU作為基本單元,同時(shí)借鑒CRF的思想,在目標(biāo)函數(shù)中加入了標(biāo)簽狀態(tài)轉(zhuǎn)移的評(píng)估。缺點(diǎn)是在解決意圖識(shí)別問題時(shí),只是取樣了GRU每次輸出的最大值,有信息損失。其次,雖然加入了標(biāo)簽之間的轉(zhuǎn)移評(píng)估,但是仍然沒有在全局考慮序列的概率。文獻(xiàn)[9]在處理意圖識(shí)別問題時(shí),使用了注意力機(jī)制,能較好地區(qū)分哪些詞對(duì)分類起到了更大的作用,缺點(diǎn)仍然是約束條件分析時(shí),簡(jiǎn)單地使用softmax計(jì)算概率,沒有考慮整體序列的概率分布,有標(biāo)注偏置的隱患。
綜上所述,當(dāng)前RNN聯(lián)合模型沒有很好地兼顧意圖識(shí)別和約束條件分析兩個(gè)方面,前者需要給有用的詞匯更大的權(quán)重,提取更有用的信息,簡(jiǎn)單取最大值的操作會(huì)損失信息;后者需要在整體標(biāo)簽序列上計(jì)算概率,可以避免標(biāo)注偏置問題。
基于LSTM的聯(lián)合模型的基本框架如圖1所示。
圖1 常規(guī)處理模型
設(shè)置詞向量矩陣Eemb∈(|V|+1)*|e|,|e|表示詞向量維數(shù),|V|表示總詞數(shù),增加一行作為取上下文窗口時(shí)空白詞的詞向量。采用詞向量和上下文窗口,將當(dāng)前詞與窗口內(nèi)的詞的詞向量連接,作為當(dāng)前xt,輸入到LSTM單元,設(shè)置取樣前后各d個(gè)詞匯,如式(1)所示。
其中,e(wt)表示當(dāng)前詞wt的詞向量,相當(dāng)于在詞向量表Eemb中查詢到這個(gè)詞對(duì)應(yīng)的那一行向量。向量e(wt)∈|e|,向量xt∈(2d+1)|e|,“[]”表式向量的簡(jiǎn)單拼接。將xt輸入到正反LSTM模塊中,正反兩個(gè)模塊分別使用各自的一套參數(shù)。參數(shù)參數(shù)正向LSTM的公式[10]如式(2)~(7)所示。
本文引入注意力機(jī)制實(shí)現(xiàn)意圖分析,通過增加CRF識(shí)別約束條件。
圖2所示的框架不再和其他模型一樣直接用softmax函數(shù)計(jì)算每個(gè)標(biāo)簽的概率,而是借鑒鏈?zhǔn)紺RF[6]的方法考慮標(biāo)簽之間的轉(zhuǎn)移和整體上標(biāo)簽序列的概率。從單個(gè)時(shí)刻看,當(dāng)前詞對(duì)應(yīng)的標(biāo)簽都有相應(yīng)分?jǐn)?shù), 分?jǐn)?shù)越大, 對(duì)應(yīng)標(biāo)簽越有可能;從標(biāo)簽序列的整體來(lái)看,前后標(biāo)簽有轉(zhuǎn)移分?jǐn)?shù),分?jǐn)?shù)越高,越可能出現(xiàn)這種標(biāo)簽的轉(zhuǎn)移。將這兩個(gè)分?jǐn)?shù)相加,分?jǐn)?shù)最高的標(biāo)簽序列就是預(yù)測(cè)結(jié)果。先對(duì)隱藏層輸出做預(yù)處理,如式(9)所示。
圖2 CRF機(jī)制
其中,Wcrf∈|S|*|h|,scorest,bcrf∈|S|,|S|表示標(biāo)簽個(gè)數(shù)。向量scorest每個(gè)元素表示對(duì)應(yīng)標(biāo)簽的分?jǐn)?shù),分?jǐn)?shù)越大越有可能。同時(shí)設(shè)置轉(zhuǎn)移矩陣Etrans∈(|S|+2)*(|S|+2),表示標(biāo)簽之間的轉(zhuǎn)移分?jǐn)?shù),在|S|個(gè)標(biāo)簽的基礎(chǔ)上增加了“開始”和“結(jié)束”兩個(gè)標(biāo)簽。一個(gè)標(biāo)簽序列的總分?jǐn)?shù)是由每個(gè)標(biāo)簽的分?jǐn)?shù)和它們之間的轉(zhuǎn)移來(lái)決定的,如式(11)所示。
其中,s1:T表示標(biāo)簽序列,時(shí)刻總個(gè)數(shù)T等于|L|,也就是該詞語(yǔ)序列的長(zhǎng)度。scoretotal(s1:T)是對(duì)該標(biāo)簽序列的總分?jǐn)?shù)的衡量。Etrans(st-1,st)表示轉(zhuǎn)移矩陣Etrans第st-1行,第st列的值,即t-1時(shí)刻的標(biāo)簽到t時(shí)刻標(biāo)簽的轉(zhuǎn)移分?jǐn)?shù)。scorest(st)表示scorest的第st個(gè)元素,即當(dāng)前標(biāo)簽是st時(shí)的分?jǐn)?shù)。s0和sT+1分別為“開始”和“結(jié)束”標(biāo)簽,它們對(duì)應(yīng)的scorest(s0)和scorest(sT+1)取零。為了對(duì)標(biāo)簽序列的整體進(jìn)行概率歸一,本文借用softmax對(duì)總分?jǐn)?shù)進(jìn)行概率轉(zhuǎn)換,如式(12)所示。
訓(xùn)練時(shí),約束條件分析部分的損失函數(shù)如式(14)所示。
即對(duì)正確標(biāo)注該序列的概率的對(duì)數(shù)值取反,化簡(jiǎn)之后是兩個(gè)對(duì)數(shù)值的差值。該模塊增加了參數(shù)Etrans、Wtanh、btanh、Wcrf、bcrf。
Attention機(jī)制如圖3所示。
圖3 Attention機(jī)制
接下來(lái)對(duì)這個(gè)向量表示hintent進(jìn)行處理,如式(17)、式(18)所示。
其中,ointent的每個(gè)元素代表對(duì)應(yīng)意圖類別的概率,取其中概率最大的類別作為預(yù)測(cè)類別。Wintent∈|I|*|h|,ointent、bintent∈|I|,|I|表示意圖類別個(gè)數(shù),ointent(i)表示向量ointent的第i個(gè)元素,即該句意圖為i的預(yù)測(cè)概率。意圖識(shí)別模塊的損失函數(shù)如式(19)所示。
CRF-attention-LSTM模型訓(xùn)練的目標(biāo)函數(shù)也是把所有句子的損失相加,如式(20)所示。
式(20)就是在當(dāng)前參數(shù)為θ的情況下,將所有訓(xùn)練集句子的損失按權(quán)重求和。該模塊的參數(shù)是Wmeasure。
本文在兩個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),分別是中文數(shù)據(jù)集(表2)和英文數(shù)據(jù)集(表3)。
中文數(shù)據(jù)集的相關(guān)情況如表2所示,是從“百度知道”中爬取后加工得到的,包括三個(gè)領(lǐng)域,即航班、天氣和快遞相關(guān)的問題。
英文數(shù)據(jù)集是口語(yǔ)理解問題中最常用的ATIS數(shù)據(jù)集,如表3所示。該數(shù)據(jù)集還包含詞語(yǔ)的類型信息。有研究[12]認(rèn)為,類型信息在SLU問題中是不常見的,所以本文不使用這種額外的信息。
表2 中文數(shù)據(jù)
表3 英文數(shù)據(jù)
本文使用準(zhǔn)確率來(lái)評(píng)估意圖識(shí)別。在ATIS數(shù)據(jù)集中,有些數(shù)據(jù)可能有不止一個(gè)意圖,本文按照文獻(xiàn)[2]的方法,只要預(yù)測(cè)意圖在正確意圖之列就算作預(yù)測(cè)正確。
實(shí)驗(yàn)使用了F1-分?jǐn)?shù)來(lái)衡量約束條件分析結(jié)果,一個(gè)約束條件提取正確表示它的范圍和類型都是正確的。F1-分?jǐn)?shù)由通用的CoNLL評(píng)價(jià)腳本*http://www.cnts.ua.ac.be/conll2000/chunking/output.html.獲得。
3.3.1 中文數(shù)據(jù)集中的baseline
SVM用于意圖識(shí)別,提取的特征主要是一系列關(guān)鍵字是否存在的二元特征;CRF方法用于約束條件分析。另外,本文也同幾種不同的RNN模型比較了實(shí)驗(yàn)效果,其中,RNN-ID和RNN-SF分別為普通RNN模型單獨(dú)解決這兩個(gè)問題時(shí)的方法,RNN-joint為普通RNN聯(lián)合模型,bi-RNN-joint為雙向RNN聯(lián)合模型,bi-LSTM為雙向LSTM聯(lián)合模型,它們?cè)赟F問題上直接用softmax處理取最大概率的標(biāo)簽,在ID問題上用最大池取樣作為整句的代表向量。CRF-attention-LSTM為本文方法,結(jié)合了CRF和attention的雙向LSTM聯(lián)合模型。
3.3.2 英文數(shù)據(jù)集中的baseline
SVM: 文獻(xiàn)[6]使用前后向移動(dòng)序列化SVM分類器,用于約束條件分析。
CRF: 文獻(xiàn)[7]提供的baseline。
RNN: 文獻(xiàn)[7]提供的RNN約束條件分析方法。
Boosting: 文獻(xiàn)[2]使用了AdaBoost.MH方法處理意圖識(shí)別方法。
Sentence simplification: 文獻(xiàn)[13]使用AdaBoost.MH方法處理意圖識(shí)別,用CRF處理SF。
RecNN: 文獻(xiàn)[14]使用的遞歸神經(jīng)網(wǎng)絡(luò)聯(lián)合模型,后加入了Viterbi算法優(yōu)化對(duì)標(biāo)簽序列整體的評(píng)估,模型使用了額外的語(yǔ)義信息。
GRU-joint: 文獻(xiàn)[3]使用的GRU聯(lián)合模型,在意圖識(shí)別部分使用最大池,在約束條件分析部分考慮了標(biāo)簽之間的轉(zhuǎn)移。
中文數(shù)據(jù)集的實(shí)驗(yàn)中,本文采用10-折交叉驗(yàn)證,不使用字標(biāo)注,而是將句子分詞后處理;英文數(shù)據(jù)集,使用劃分好的訓(xùn)練集和測(cè)試集。模型的詞向量維數(shù)均設(shè)置為100,隱藏層維數(shù)為100,上下文窗口大小設(shè)置為1。中文數(shù)據(jù)集使用梯度下降方法更新參數(shù),初始學(xué)習(xí)率設(shè)計(jì)為0.062 7;英文數(shù)據(jù)集使用AdaDelta方法[15]更新參數(shù)。代碼使用theano進(jìn)行編寫,實(shí)驗(yàn)結(jié)果表明,分別使用這兩種參數(shù)更新方式,效果更好。
3.5.1 中文數(shù)據(jù)集實(shí)驗(yàn)結(jié)果與分析
中文語(yǔ)料實(shí)驗(yàn)結(jié)果如表4所示。
表4 中文語(yǔ)料實(shí)驗(yàn)結(jié)果
從表4可以看出,在中文數(shù)據(jù)集上,先采用了經(jīng)典的分類方法SVM和序列標(biāo)注方法CRF。最簡(jiǎn)單的RNN模型分別獨(dú)立處理意圖識(shí)別和約束條件分析,均超過了SVM和CRF的效果,只是數(shù)據(jù)量較少的“快遞”領(lǐng)域在意圖識(shí)別上稍有下降。RNN能捕獲長(zhǎng)距離的依賴關(guān)系,在數(shù)據(jù)量充足時(shí)更加明顯。
RNN聯(lián)合模型相比較RNN單一模型,效果有所下降,只是在“天氣”領(lǐng)域的意圖識(shí)別任務(wù)上有提高。雙向的RNN聯(lián)合模型在普通RNN聯(lián)合模型基礎(chǔ)上有了一定的提升,說明后向的信息包括了一些有用的內(nèi)容,只是在“天氣”領(lǐng)域效果略有下降。這可能是因?yàn)樘鞖忸I(lǐng)域的標(biāo)簽最少而類別最多,它的局限不在于前后向的信息,而在于模型本身處理、記憶信息的能力。雙向的LSTM聯(lián)合模型基本提高了各個(gè)領(lǐng)域的效果,因?yàn)長(zhǎng)STM相較普通RNN更能甄別、保留有用信息,分辨能力更強(qiáng)大。
最終的CRF-attention-LSTM模型,基本達(dá)到了最好的結(jié)果,只是在第三個(gè)領(lǐng)域稍低于之前的方法,因?yàn)榈谌齻€(gè)領(lǐng)域的數(shù)據(jù)量較少,不同標(biāo)簽的數(shù)量分布不均,之前的簡(jiǎn)單模型更適合它的復(fù)雜度,即便如此,最終模型在約束條件識(shí)別上的效果也與它們基本持平。
Attention模塊的效果示例如圖4所示。在這兩個(gè)例子中,模型能夠較好地聚焦在關(guān)鍵詞上,顏色越深、數(shù)值越大,說明這個(gè)詞越重要。
圖4 attention結(jié)果示例
在中文數(shù)據(jù)集的實(shí)驗(yàn)表明,RNN模型能夠較好地解決意圖識(shí)別和約束條件分析問題;當(dāng)改為雙向LSTM模塊之后,效果更佳;而引入CRF和attention的LSTM聯(lián)合模型,能夠在兩個(gè)問題上更好地利用信息進(jìn)行分類和標(biāo)注,達(dá)到最優(yōu)的效果。
3.5.2 英文數(shù)據(jù)集實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證所提模型CRF-attention-LSTM的有效性,本文使用英文數(shù)據(jù)集ATIS進(jìn)行了實(shí)驗(yàn)。有些工作使用了ATIS中的額外信息,比如詞的類型信息、語(yǔ)義信息等,本文挑選了一些沒有使用詞的類型信息的相關(guān)結(jié)果作為比較,結(jié)果如表5所示。
表5 英文語(yǔ)料實(shí)驗(yàn)結(jié)果
對(duì)于單一模型而言,CRF能比SVM更好地處理序列標(biāo)注問題,RNN因?yàn)楦懿东@長(zhǎng)距離依賴,效果更好。Sentence simplification不是嚴(yán)格意義上的聯(lián)合模型,它使用了不同的分類器處理兩個(gè)問題,取得了較好的結(jié)果。RecNN結(jié)合了語(yǔ)法信息和深度學(xué)習(xí),但不適合這個(gè)數(shù)據(jù)集,效果不佳。本文提出的CRF-attention-LSTM在約束條件的分析上好于各種baseline,在意圖識(shí)別上略低于GRU-joint模型。這表明,本文所提方法在解決意圖識(shí)別和約束條件分析上是有效的。
本文提出了結(jié)合CRF和attention機(jī)制的LSTM聯(lián)合模型,在意圖識(shí)別部分通過attention提取和篩選有用的詞語(yǔ)用于分類任務(wù),在約束條件分析部分利用CRF方法,對(duì)標(biāo)簽序列整體上進(jìn)行歸一化。通過在中文和英文數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)比較,驗(yàn)證了方法的有效性。結(jié)合CRF能提升模型整體評(píng)估標(biāo)簽序列的能力,attention可以提高信息篩選能力,在詞語(yǔ)中選擇更重要的詞匯用于分類。
本文將中文數(shù)據(jù)集分為三個(gè)領(lǐng)域進(jìn)行實(shí)驗(yàn),主要是考慮到了SLU任務(wù)中本身就有區(qū)分領(lǐng)域這一模塊,意圖識(shí)別和約束條件分析就是在領(lǐng)域確定的情況下進(jìn)行處理的,也可以合在一起進(jìn)行實(shí)驗(yàn),這樣數(shù)據(jù)量充足,也便于比較,只是和現(xiàn)實(shí)中SLU任務(wù)的真實(shí)情況不太相符。在后續(xù)工作中,可以加入ATIS數(shù)據(jù)集中的詞語(yǔ)類型信息,和更多利用了這些額外信息的模型進(jìn)行對(duì)比,以更好地驗(yàn)證模型效果。
[1] Wang YY, Deng L, Acero A. Spoken language understanding[J]. IEEE Signal Processing Magazine, 2005, 22(5):16-31.
[2] Tur G,Hakkani-Tür D, Heck L. What is left to be understood in ATIS?[J]. Spoken Language Technology Workshop, 2011,29(2):19-24.
[3] Zhang X, Wang H. A joint model of intent determination and slot filling for spoken language understanding[C]//Proceedings of the 25th International Joint Conference on Artifical Intelligence, 2016.
[4] Haffner P, Tur G, Wright J H. Optimizing SVMs for complex call classification[C]//IEEE International Conference on Acoustics. CiteSeer, 2003:I-632-I-635 vol.1.
[5] Schapire R E, Singer Y. BoosTexter: a boosting-based system for text categorization[J]. Machine Learning,2000,39(2-3): 135-168.
[6] Raymond C, Riccardi G. Generative and discriminative algorithms for spoken language understanding[C]//Proceedings of INTERSPEECH-2007,2007: 1605-1608.
[7] Mesnil G, Dauphin Y, Yao K, et al. Using recurrent neural networks for slot filling in spoken language understanding[J].IEEE/ACM Transactions on Audio Speech & Language Processing, 2015, 23(3):530-539.
[8] Yao K, Peng B, Zweig G, et al. Recurrent conditional random field for language understanding[C]//Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2014:4077-4081.
[9] Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slotfilling[J]. arXiv preprint arXiv:1609.01454, 2016.
[10] Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural Computation, 1997, 9(8):1735.
[11] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.
[12] Mesnil G, He X, Deng L, et al. Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding[C]//Proceedings of Interspeech 2013. 2013: 3771-3775.
[13] Tur G,Hakkani-Tur D, Heck L, et al. Sentence simplification for spoken language understanding[J]. 2011, 125(3):5628-5631.
[14] Guo D, Tur G, Yih W T, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C]//Proceedings of Spoken Language Technology Workshop (SLT), 2014 IEEE. IEEE, 2015:554-559.
[15] Zeiler M D. Adadelta: an adaptive learning rate method[J]. arXiv preprint arXiv:1212.5701, 2012.