王麗花,楊文忠,姚 苗,王 婷,理姍姍
1.新疆大學(xué) 軟件學(xué)院,烏魯木齊830046
2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊830046
目前階段的人機(jī)交互方式主要以人機(jī)對話為主,如谷歌Home、天貓精靈等??谡Z理解是人機(jī)對話系統(tǒng)中的重要環(huán)節(jié),旨在形成一個語義框架來捕獲用戶話語或查詢的語義[1]。意圖識別和語義槽填充又是口語理解的兩個重要子任務(wù),通過意圖識別挖掘用戶在自然語言中表達(dá)的意圖,再利用語義槽填充提取話語中的語義概念。
對于給定的一組用戶話語,意圖識別是在句子層面理解整個語句的語義,然后識別出該語句的意圖[2];語義槽填充任務(wù)在單詞級別標(biāo)注這句話,每個詞對應(yīng)一個槽標(biāo)簽,最終輸出與輸入序列長度相同的槽標(biāo)簽序列。如表1為意圖識別和語義槽填充任務(wù)的一個標(biāo)注實(shí)例,取Snips[3]數(shù)據(jù)集中的一條數(shù)據(jù)“play a popular chant by Brian Epstein”作為輸入。在語義槽標(biāo)注時采用Begin/In/Out(BIO)標(biāo)簽標(biāo)注分詞結(jié)果,槽標(biāo)注結(jié)果如“Slots”一行所示,槽標(biāo)簽“B-artist I-artist”為藝術(shù)家的名字,意圖的識別結(jié)果如“Intent”一行。輸入的話語通過意圖識別與語義槽填充任務(wù)處理之后,形成一個簡單的語義框架,可以很好地捕捉用戶話語的語義。
表1 用戶話語標(biāo)注示意表
意圖識別和語義槽填充作為口語理解的兩個關(guān)鍵子任務(wù),兩者之間存在緊密的聯(lián)系,考慮到單獨(dú)研究意圖識別和語義槽填充模型容易出現(xiàn)誤差傳播,使口語理解性能下降,提出意圖識別語義槽填充的聯(lián)合模型[4]?;诖吮疚奶岢隽嘶陂T控機(jī)制的雙向關(guān)聯(lián)模型(Bidirectional Association Gate,BiAss-Gate)來完善現(xiàn)有的聯(lián)合模型,通過深入挖掘意圖識別與語義槽填充之間的聯(lián)系,建立雙向關(guān)聯(lián)機(jī)制,彌補(bǔ)了現(xiàn)有聯(lián)合模型中存在的淺層關(guān)聯(lián)、單向關(guān)聯(lián)的不足。
在傳統(tǒng)的研究中,意圖識別和語義槽填充任務(wù)分別單獨(dú)處理。
意圖識別常被視為多分類任務(wù)。對于給定的一組話語,預(yù)測出該話語所對應(yīng)的意圖類型。常用的意圖分類方法有支持向量機(jī)(Support Vector Machine,SVM)[5]、樸素貝葉斯[6],近年來,深度神經(jīng)網(wǎng)絡(luò)方法也被用來進(jìn)行意圖分類[7],并取得了不錯的效果。文獻(xiàn)[8]提出了一種基于注意力機(jī)制的CNN(Convolutional Neural Networks)-LSTM(Long Short-Term Memory)模型來預(yù)測用戶意圖,并將無監(jiān)督聚類方法應(yīng)用于用戶意圖分類。文獻(xiàn)[9]提出基于門控機(jī)制的信息共享網(wǎng)絡(luò)來檢測口語意圖。
語義槽填充通常被視為序列標(biāo)注任務(wù),對于給定的一組話語,輸出所對應(yīng)的最大概率的槽標(biāo)簽序列[10]。條件隨機(jī)場(Conditional Random Fields,CRF)[11]和長短時記憶網(wǎng)絡(luò)(LSTM)[12]常常被用來處理序列標(biāo)注任務(wù)。文獻(xiàn)[13]用遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RecNNs)來處理語義槽填充任務(wù);文獻(xiàn)[14]用語句級信息和編碼器LSTM來填充語義槽。
最近,學(xué)者們提出將意圖識別和語義槽填充聯(lián)合建模,聯(lián)合模型可以同時生成每個話語的意圖和槽標(biāo)簽序列,利用兩個任務(wù)之間的關(guān)聯(lián)關(guān)系從而進(jìn)一步提高SLU任務(wù)的性能。采用流水線式的級聯(lián)方式來聯(lián)合建模不但容易造成誤差傳播,而且未捕捉到兩任務(wù)之間的關(guān)聯(lián)關(guān)系。文獻(xiàn)[15]將基于三角鏈CRF 的CNN 模型用于意圖識別與語義槽填充的聯(lián)合學(xué)習(xí)任務(wù);文獻(xiàn)[16]使用RecNNs 將句法結(jié)構(gòu)和連續(xù)空間的單詞、短語表示合并到組合模型中,建立意圖識別和語義槽填充的聯(lián)合模型;文獻(xiàn)[17]將基于知識導(dǎo)向結(jié)構(gòu)的注意力機(jī)制網(wǎng)絡(luò)(K-SAN)應(yīng)用于語言理解任務(wù);文獻(xiàn)[18]提出將RNN(Recurrent Neural Network)與CNN共同用于意圖識別和語義槽填充的聯(lián)合任務(wù)中,兩個任務(wù)共享統(tǒng)一的損失函數(shù);文獻(xiàn)[19]引入了雙向的RNN-LSTM 模型,實(shí)現(xiàn)語義槽填充、意圖檢測和領(lǐng)域分類的聯(lián)合建模,但未建立語義槽填充和意圖識別之間的明確關(guān)系;文獻(xiàn)[20]提出基于注意力的RNN 模型,但只應(yīng)用聯(lián)合損失函數(shù)將這兩個任務(wù)隱式地關(guān)聯(lián)起來;文獻(xiàn)[21]提出slot-gated 機(jī)制,將意圖上下文信息應(yīng)用于語義槽填充任務(wù),建立了意圖到語義槽的單向聯(lián)系,語義槽填充的性能得到一定提升,但語義槽上下文信息并未用于意圖識別任務(wù),未建立兩任務(wù)之間的雙向關(guān)聯(lián)關(guān)系。
意圖和語義槽是用戶行為的語義表征,共享用戶話語信息,一個任務(wù)的信息可以被另一個任務(wù)利用來互相提高彼此的性能[22],意圖識別和語義槽填充的上下文信息可為對方任務(wù)提供線索,互相促進(jìn)。因此,本文提出了基于門控機(jī)制的雙向關(guān)聯(lián)模型(BiAss-Gate)用來處理意圖識別和語義槽填充的聯(lián)合任務(wù)。BiAss-Gate 模型建立兩個任務(wù)間的雙向關(guān)聯(lián),將意圖上下文信息和語義槽上下文信息通過雙向門控機(jī)制進(jìn)行融合得到特征權(quán)重r,r作為兩任務(wù)之間的互相關(guān)聯(lián)的紐帶,實(shí)現(xiàn)了意圖識別與語義槽填充的雙向關(guān)聯(lián),并使兩任務(wù)性能互相提升。在ATIS[23]、Snips[3]數(shù)據(jù)集上都取得了比其他模型更好的性能,證實(shí)了本文模型的有效性。
將文本轉(zhuǎn)換成詞向量是各種NLP(Natural Language Processing)任務(wù)中文本向量化的首選技術(shù),one-hot 模型來構(gòu)建的詞向量具有高維稀疏的缺點(diǎn),它不僅丟失了詞義以及詞之間的聯(lián)系,而且無法準(zhǔn)確表達(dá)不同詞之間的相似度。基于此本文使用Mikolov等人[24]提出的word2vec模型來構(gòu)建詞向量,將輸入序列的詞編碼成相對低維稠密的連續(xù)向量。word2vec 模型能夠捕捉詞語的語法和語義,計(jì)算詞語之間的相似度,并且挖掘人們很難察覺的詞語之間的關(guān)系,在大部分的NLP 任務(wù)上word2vec模型都有很好的表現(xiàn)。
長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[25]是一種改進(jìn)之后的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),LSTM網(wǎng)絡(luò)引入了門機(jī)制和單元狀態(tài)c,它既很好地解決了RNN 不能捕捉長期依賴關(guān)系的問題,又避免了RNN所存在的梯度消失和梯度爆炸問題。對于當(dāng)前時刻的輸入xi,經(jīng)過LSTM單元會產(chǎn)生兩個輸出,當(dāng)前時刻的隱藏狀態(tài)hi和當(dāng)前時刻的單元狀態(tài)ci。LSTM的單元狀態(tài)c用來保存長期的狀態(tài),門控機(jī)制的三個門用來控制單元狀態(tài)c所保存的信息,遺忘門決定了上一時刻的單元狀態(tài)c有多少信息需要保留到當(dāng)前時刻的ci,輸入門決定了當(dāng)前時刻的輸入xi有多少信息需要保留到當(dāng)前時刻ci,輸出門來控制當(dāng)前時刻的單元狀態(tài)ci有多少信息輸出到當(dāng)前時刻的隱藏狀態(tài)hi。計(jì)算公式如下:
σ是sigmoid函數(shù),i、f、o、c分別是輸入門、遺忘門、輸出門和單元狀態(tài),W是權(quán)重矩陣,例如Wi代表輸入門的權(quán)重矩陣。b為偏置項(xiàng),例如bi為輸入門的偏置項(xiàng)。是點(diǎn)積運(yùn)算。
圖1 模型框架圖
雙向長短時記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,Bi-LSTM)[13,26]方法廣泛應(yīng)用于序列標(biāo)注和分類任務(wù),通過Bi-LSTM 可以更好地捕捉雙向的語義依賴,建模上下文信息,解決了網(wǎng)絡(luò)LSTM 無法編碼從后到前信息的問題。Bi-LSTM 由前向LSTM 層和后向LSTM層組成,分別用于編碼從前到后和從后到前的輸入序列信息。將詞嵌入層的輸出作為Bi-LSTM的輸入,前向LSTM層生成隱藏狀態(tài)hfi,后向LSTM層生成隱藏狀態(tài)hbi,第i時間步的最終隱藏狀態(tài)hi由hfi、hbi拼接形成。Bi-LSTM 層最終可以得到與輸入序列長度相同的隱藏狀態(tài)序列Bi-LSTM層的輸出被兩個任務(wù)共享,計(jì)算公式如下:
條件隨機(jī)場(CRF)[9]是目前序列標(biāo)注任務(wù)的主流模型。CRF模型的目標(biāo)函數(shù)不僅考慮輸入的狀態(tài)特征,而且還引入了標(biāo)簽轉(zhuǎn)移特征,這使它會考慮輸出標(biāo)簽之間的順序,并可以充分利用相鄰標(biāo)簽之間的相互關(guān)系,在給定輸入數(shù)據(jù)的條件下CRF模型可以輸出使目標(biāo)函數(shù)最大化的最優(yōu)標(biāo)簽序列,另外CRF層還可以從訓(xùn)練數(shù)據(jù)中學(xué)到一些約束規(guī)則來保證預(yù)測標(biāo)簽序列的合理性[27]。
本文提出的基于門控機(jī)制的雙向關(guān)聯(lián)模型如圖1所示。對于給定的一組話語輸入序列X[x1,x2,…,xT],首先將X輸入到最底層的詞嵌入層,通過詞嵌入捕捉詞之間的語義和聯(lián)系,并將輸入序列映射成詞向量矩陣作為Bi-LSTM 網(wǎng)絡(luò)的輸入,然后通過Bi-LSTM 網(wǎng)絡(luò)捕捉輸入序列的上下文依賴關(guān)系,并將隱藏狀態(tài)序列作為注意力層的輸入,注意力機(jī)制可以捕捉隱藏狀態(tài)hi無法捕捉到的附加依賴信息[27],通過意圖-語義槽注意力層分別獲得意圖的上下文信息向量cI和語義槽的上下文信息向量。最后將輸入到雙向關(guān)聯(lián)門控層獲得聯(lián)合權(quán)重特征r,并將r作為加權(quán)特征應(yīng)用于兩任務(wù),實(shí)現(xiàn)雙向關(guān)聯(lián)。將隱藏狀態(tài)序列、上下文向量以及聯(lián)合權(quán)重特征作為意圖識別和語義槽填充任務(wù)的輸入,最后語義槽填充任務(wù)采用CRF模型對全局打分得到最優(yōu)的槽標(biāo)注序列作為最終的輸出。
Bi-LSTM的每一時刻的隱藏狀態(tài)hi都承載著整個序列的信息,但信息會在正向和反向傳播過程中有所丟失,而注意力機(jī)制不但可以捕捉全局聯(lián)系,并且關(guān)注了元素的局部聯(lián)系,對輸入的每個元素考慮不同的權(quán)重參數(shù),更加關(guān)注與輸入的元素相似的部分,而抑制其他無用的信息。本文通過注意力機(jī)制[28]選擇性地關(guān)注Bi-LSTM層中相對重要的一些隱藏狀態(tài),并加大它們的權(quán)重。通過意圖-語義槽注意力層獲得意圖的上下文信息向量和語義槽的上下文信息向量,利用、構(gòu)建兩任務(wù)的聯(lián)合特征權(quán)重r。
T是注意力層的維度,σ是激活函數(shù),ei,k計(jì)算的是hk和當(dāng)前輸入向量hi之間的關(guān)系分別為hk和hi的權(quán)重矩陣。
在意圖識別任務(wù)中,通過意圖注意力層得到意圖上下文信息向量cI。計(jì)算方式同語義槽上下文向量。
基于文獻(xiàn)[21]提出的slot-gated機(jī)制,本文提出基于門控機(jī)制的雙向關(guān)聯(lián)模型(BiAss-Gate),利用意圖上下文向量和語義槽上下文向量來建模意圖與語義槽之間的關(guān)聯(lián)關(guān)系。本文將意圖上下文向量cI和語義槽上下文向量作為雙向關(guān)聯(lián)門控層的輸入,產(chǎn)生一個雙向增強(qiáng)的聯(lián)合權(quán)重向量r,如圖2 所示。r越大,說明意圖-槽注意力層對序列關(guān)注的重合部分占比越大,進(jìn)一步說明意圖與語義槽的相關(guān)度越高,聯(lián)系越緊密。r的計(jì)算公式如下:
v,W分別為可訓(xùn)練的權(quán)重,的聯(lián)合權(quán)重表示,然后再將r作為權(quán)重特征和上下文向量、隱藏狀態(tài)一同用于意圖識別和語義槽填充任務(wù)。
圖2 BiAss-Gate結(jié)構(gòu)圖
雖然可以在模型的最后使用softmax函數(shù)得到輸出序列,如公式(14),但輸出序列的每個槽標(biāo)簽相互獨(dú)立,它只在每一步中挑選出每個詞所對應(yīng)最大概率值槽標(biāo)簽作為輸出,沒有考慮到輸出序列標(biāo)簽之間的影響,而且會導(dǎo)致輸出不合理的標(biāo)簽序列。
因此本文在處理語義槽填充任務(wù)時在Bi-LSTM 網(wǎng)絡(luò)后面加一層CRF。狀態(tài)特征P是網(wǎng)絡(luò)模型的輸出的打分矩陣,矩陣的元素是輸入序列X中第i個單詞對應(yīng)第j個槽標(biāo)簽時的分?jǐn)?shù),Pi為特征矩陣的第i列,即輸入序列的第i個詞對應(yīng)所有可能槽標(biāo)簽的分?jǐn)?shù)向量[29]。槽標(biāo)簽轉(zhuǎn)移特征矩陣用A表示,Ai,j表示從槽標(biāo)簽轉(zhuǎn)移到槽標(biāo)簽的分?jǐn)?shù)。當(dāng)輸入序列X所對應(yīng)的輸出序列為yslot時的得分為公式如下:
訓(xùn)練時,CRF的目標(biāo)是使正確標(biāo)簽序列的概率最大化。預(yù)測時,將得分最高的槽標(biāo)簽序列作為最終輸出序列,此時得到的槽標(biāo)簽序列為最優(yōu)的輸出序列[30]。公式如下:
為驗(yàn)證本文模型的有效性和泛化性,實(shí)驗(yàn)采用SLU任務(wù)中最常用的兩個公開數(shù)據(jù)集:ATIS(Airline Travel Information Systems)數(shù)據(jù)集、Snips 數(shù)據(jù)集。如表2 所示。ATIS 數(shù)據(jù)集由預(yù)訂航班用戶的音頻記錄組成,本文使用與文獻(xiàn)[21]相同的數(shù)據(jù)集分割。把ATIS-2 和ATIS-3語料庫的4 978條記錄劃分為訓(xùn)練集和驗(yàn)證集兩部分,訓(xùn)練集包含4 478 條,驗(yàn)證集包含500 條,另外測試集的893 條記錄來自ATIS-3 NOV93 和DEC94 語料庫,訓(xùn)練集包含120個語義槽標(biāo)簽和21個意圖類型。
表2 數(shù)據(jù)集
Snips 數(shù)據(jù)集是從Snips 個人語音助手中收集得到。訓(xùn)練集、驗(yàn)證集分別包含13 084 條、700 個條記錄,并另將700個條記錄作為測試集。Snips訓(xùn)練集包含72個語義槽標(biāo)簽和7個意圖類型。
在表2 中Vocabulary_size 為詞匯量大小;Average Sentence Length 為句子平均長度,Intent_num為意圖類型數(shù)量;Slot_num 為槽標(biāo)簽數(shù)量;Training_set_size、Development_set_size、Test_set_size分別為訓(xùn)練集、驗(yàn)證集和測試集的大小。
在實(shí)驗(yàn)中,意圖識別和語義槽填充分別采用準(zhǔn)確率(Accuracy)和F1 值作為其性能的評價指標(biāo),此外,實(shí)驗(yàn)還采用句子級(Sentence)的準(zhǔn)確率來評判話語級語義框架的性能,句子級準(zhǔn)確率就是指在整個測試集中,預(yù)測出的意圖類型和語義槽標(biāo)簽序列都正確的句子所占的百分比。
實(shí)驗(yàn)采用Adam(Adaptive Moment Estimation)優(yōu)化算法[31]更新神經(jīng)網(wǎng)絡(luò)的參數(shù),并使用早停策略防止過擬合。模型參數(shù)如表3所示。
表3 模型參數(shù)表
其中num_units 為Bi-LSTM 網(wǎng)絡(luò)隱藏層單元數(shù);batch_size為單次迭代訓(xùn)練批處理樣本的個數(shù);num_layers為Bi-LSTM 網(wǎng)絡(luò)層數(shù);max_epochs 為最大訓(xùn)練周期;learning_rate為模型學(xué)習(xí)率。
4.4.1 模型實(shí)驗(yàn)
將本文模型BiAss-Gate 與其變體BiAss-Gate(without CRF)、BiAss-Gate(Stack-Bi-LSTM)進(jìn)行對比。從表4 可以看出BiAss-Gate 模型與BiAss-Gate(without CRF)模型相比,特別在Snips數(shù)據(jù)集上語義槽填充的F1值增長了3.46個百分點(diǎn),句子級準(zhǔn)確率提升了5.58個百分點(diǎn)。CRF 不僅可以提高語義槽填充的性能還優(yōu)化了話語級語義框架的性能。
本文嘗試用堆疊的Bi-LSTM 網(wǎng)絡(luò)來捕捉輸入序列的上下文信息。實(shí)驗(yàn)表明,在ATIS和Snips數(shù)據(jù)集上含單層Bi-LSTM網(wǎng)絡(luò)的BiAss-Gated模型比含堆疊Bi-LSTM網(wǎng)絡(luò)的BiAss-Gated(Stack-Bi-LSTM)模型表現(xiàn)更好。因?yàn)槎询B的Bi-LSTM 網(wǎng)絡(luò)加深了網(wǎng)絡(luò)的深度,雖然可以挖掘更深的語義關(guān)系但同時增加了模型的復(fù)雜度,對于ATIS、Snips這種句子語義相對簡單的數(shù)據(jù)集,性能提高不明顯。
表4 模型實(shí)驗(yàn)對比 %
表5 其他模型對比實(shí)驗(yàn) %
4.4.2 對比其他模型實(shí)驗(yàn)
為驗(yàn)證本文模型的有效性,將本文模型BiAss-Gate分別與文獻(xiàn)[19]中的Joint Seq 模型、文獻(xiàn)[20]中的Attention BiRNN模型以及文獻(xiàn)[21]中的Slot-Gated-Full的模型進(jìn)行對比。實(shí)驗(yàn)結(jié)果如表5 所示,基線模型中,Slot-Gated-Full模型與Joint Seq模型、Attention BiRNN模型相比,取得了最好的性能,說明slot-gated機(jī)制比使用共享損失函數(shù)更能捕捉意圖識別與語義槽填充之間的關(guān)聯(lián)關(guān)系。
與Slot-Gated-Full 模型相比,本文模型BiAss-Gate模型在ATIS數(shù)據(jù)集和Snips數(shù)據(jù)集上,語義槽填充的F1值分別提高了1、4.82個百分點(diǎn),意圖識別的準(zhǔn)確率分別增長了3.49、1.29 個百分點(diǎn),句子級的準(zhǔn)確率分別實(shí)現(xiàn)了4.36和8.93個百分點(diǎn)的提升。表明雙向關(guān)聯(lián)的BiAss-Gate模型比單向關(guān)聯(lián)的Slot-Gated-Full模型更能很好地挖掘意圖識別與語義槽填充任務(wù)之間的關(guān)聯(lián)關(guān)系,并實(shí)現(xiàn)了意圖識別和語義槽填充任務(wù)性能的互相提升。特別是句子級的準(zhǔn)確率提升幅度最大,說明BiAss-Gate模型可以充分利用兩任務(wù)之間的關(guān)聯(lián)關(guān)系,優(yōu)化聯(lián)合模型的全局性能。
本文的模型在兩個數(shù)據(jù)集上的性能都取得了明顯的提升,但模型在兩數(shù)據(jù)集上性能提升的幅度卻存在差異。在ATIS 數(shù)據(jù)集上,語義槽填充和話語級語義框架的性能比在Snips 數(shù)據(jù)集上的好,這是因?yàn)閿?shù)據(jù)集本身的特點(diǎn),如表2所示,ATIS數(shù)據(jù)集與Snips數(shù)據(jù)集相比句子的平均長度較短,ATIS 語料為同一領(lǐng)域,而Snips 的語料跨多領(lǐng)域,比較復(fù)雜。然而Snips 數(shù)據(jù)集上的意圖識別任務(wù)的性能比ATIS數(shù)據(jù)集上的好,因?yàn)樵赟nips數(shù)據(jù)集語料庫遠(yuǎn)大于ATIS的數(shù)據(jù)集的情況下,Snips所標(biāo)注的意圖類型數(shù)量卻遠(yuǎn)小于ATIS 數(shù)據(jù)集,ATIS 數(shù)據(jù)集的類圖類型更細(xì)粒度化,意圖識別的準(zhǔn)確率稍低。
為了充分利用意圖識別和語義槽填充之間的關(guān)系,來提升聯(lián)合模型的性能,本文提出了BiAss-Gate模型來深度挖掘意圖識別與語義槽填充任務(wù)之間的關(guān)聯(lián)關(guān)系,利用意圖和語義槽的上下文信息建立兩個任務(wù)之間的雙向關(guān)聯(lián),促進(jìn)兩個任務(wù)性能的互相提升,進(jìn)而優(yōu)化全局性能。BiAss-Gate 模型在ATIS、Snips 數(shù)據(jù)集上與其他模型進(jìn)行對比,實(shí)驗(yàn)結(jié)果表明,本文所提的BiAss-Gate模型在兩個數(shù)據(jù)集上表現(xiàn)出了最佳性能。
本文的模型有一些不足:(1)所選的數(shù)據(jù)集比較簡單,為進(jìn)一步驗(yàn)證本文模型的有效性,還需在更復(fù)雜的數(shù)據(jù)集上對本文方法進(jìn)行評估。(2)本文僅采用詞級嵌入來捕獲輸入句子的語義,這使得到的語義關(guān)系比較單薄,下一步的工作中將把字符級嵌入與詞級嵌入相結(jié)合,捕捉更豐富的語義信息來提高SLU的性能。在后續(xù)的研究中,將把多意圖識別作為研究重點(diǎn),一個句子中可能包含多個意圖,識別句子中的多個意圖將會進(jìn)一步提高SLU的的性能。