胡光敏,姜 黎
(湘潭大學(xué)物理與光電工程學(xué)院,湖南湘潭 411100)
口語理解技術(shù)(Natural Language Understanding,NLU)是任務(wù)型對話系統(tǒng)的重要組件,旨在構(gòu)建一個(gè)語義框架模型檢測用戶意圖,以及對用戶的輸入進(jìn)行語義成分分析。如表1 所示,給定一個(gè)與電影相關(guān)的話語“watch suspense movie ”作為輸入,話語中的每個(gè)單詞都有不同槽值,并且具有一個(gè)針對整個(gè)話語的特定意圖。
槽填充通??梢暈樾蛄袠?biāo)注任務(wù),輸入序列為x=(x1,x2,…,xT),則輸出對應(yīng)槽標(biāo)簽序列常用的槽填充方法包括CNN[1]、LSTM[2]、attention-based CNN[3]。意圖可視為一個(gè)文本分類任務(wù),輸入序列為x則輸出對應(yīng)的意圖標(biāo)簽yi。常用的意圖分類方法包括CNN[4]、deep LSTM[5]、encoder-labeler deep LSTM[6]。
Table 1 An example of user query and semantic framework表1 用戶查詢及語義框架示例
由于槽值往往與意圖類別關(guān)系緊密,因此提出了槽填充與意圖識別共同建模的方法[7]。Xu 等[8]采用triangular-CRF 和CNN 共同建模,將意圖識別與槽填充任務(wù)進(jìn)行聯(lián)合訓(xùn)練。但在實(shí)際應(yīng)用中,人們通常更關(guān)注于槽和意圖聯(lián)合準(zhǔn)確率,于是Hakkani-Tur 等[9]將槽和意圖聯(lián)合準(zhǔn)確率加入模型進(jìn)行聯(lián)合訓(xùn)練。與此同時(shí),注意力機(jī)制的提出有效增強(qiáng)了文本上下文向量之間的關(guān)聯(lián)[10]。注意力機(jī)制是按照序列結(jié)構(gòu),利用模型提供的精確焦點(diǎn),從序列中學(xué)習(xí)每一個(gè)元素的重要程度。Liu 等[11]提出基于注意力機(jī)制的RNN模型,該方法僅通過損失函數(shù)將意圖與槽進(jìn)行關(guān)聯(lián),但不能有效將兩者信息進(jìn)行融合,于是Goo 等[12]提出Slot-Gat?ed 模型,Slot-Gated 模型可利用上下文注意力機(jī)制顯式地建模槽值與意圖的關(guān)系。同時(shí)為解決數(shù)據(jù)稀疏性問題,提出采用自監(jiān)督訓(xùn)練的通用語言表示模型,例如ELMO[13]和BERT[14]。通過預(yù)訓(xùn)練詞嵌入模型對NLP 任務(wù)進(jìn)行微調(diào),從而達(dá)到更好的效果。Chen 等[15]將BERT 模型用于聯(lián)合意圖檢測與槽填充任務(wù),該方法相比針對特定任務(wù)的帶注釋數(shù)據(jù)訓(xùn)練,改進(jìn)效果十分顯著。
傳統(tǒng)的Slot-Gated 模型旨在將意圖特征融入槽位識別中,但未能將文本標(biāo)簽信息作為模型先驗(yàn)知識傳入模型參與訓(xùn)練。而在模型中加入預(yù)訓(xùn)練詞向量模型又會極大地增加模型占用內(nèi)存大小,不利于在硬件中嵌入模型。通過加入先驗(yàn)知識,使模型獲得更好的語義理解,如在語義關(guān)系抽取模型中對輸入序列加入文本位置信息[16],以及在情感分析任務(wù)中融入情感符號信息[17]。本文提出一種新方法來提升意圖準(zhǔn)確率和意圖與槽填充聯(lián)合準(zhǔn)確率。首先采用預(yù)訓(xùn)練詞向量模型對標(biāo)簽信息進(jìn)行編碼,且不參與訓(xùn)練,其次將編碼的標(biāo)簽信息作為先驗(yàn)知識,通過構(gòu)建的注意力機(jī)制融入模型參與訓(xùn)練。
本節(jié)首先說明雙向長短期記憶(Bidirectional Long Short-Term Memory,BLSTM)模型,然后介紹本文提出的新方法,即意圖列表查詢機(jī)制,最后介紹意圖與槽的自注意力機(jī)制以及門控槽模型。模型架構(gòu)如圖1 所示,有兩種不同模型,一種是基于意圖列表查詢機(jī)制的意圖關(guān)注門控槽模型,另一種是基于意圖列表查詢機(jī)制的全局關(guān)注門控槽模型。
Fig.1 Architecture of the gated slot model based on the intent list query mechanism圖1 基于意圖列表查詢機(jī)制的門控槽模型整體架構(gòu)
雙向長短期記憶模型的提出是為了更好地對序列化數(shù)據(jù)進(jìn)行表達(dá)。對于許多序列化數(shù)據(jù),如聲音和文本數(shù)據(jù),其上下文之間存在密切關(guān)聯(lián)?;镜腖STM 模型不能有效結(jié)合數(shù)據(jù)前后向信息,因此本文采用雙向長短期記憶模型。
本節(jié)介紹意圖列表查詢機(jī)制,意圖列表查詢機(jī)制總體架構(gòu)如下:首先通過預(yù)訓(xùn)練詞向量模型提取意圖標(biāo)簽信息,其次通過構(gòu)建的注意力機(jī)制顯示建模標(biāo)簽與隱向量hT的關(guān)系。從訓(xùn)練集中提取出所有意圖類別后,將BERTBase 預(yù)訓(xùn)練詞向量導(dǎo)入bert-as-service 服務(wù)中,并通過bert-as-service 服務(wù)編碼出各類意圖的詞向量表示。
傳入模型的先驗(yàn)知識為通過bert-as-service 服務(wù)構(gòu)建的意圖詞向量矩陣D,詞向量矩陣D 參數(shù)固定且不參與訓(xùn)練。隱向量h 通過注意力機(jī)制從意圖矩陣中學(xué)習(xí)到每一個(gè)意圖的重要程度,并按照其重要程度對信息進(jìn)行融合。
基于意圖列表構(gòu)建的注意力機(jī)制如下:式(1)表示隱向量基于查詢矩陣中各項(xiàng)意圖相乘的積,求出fd后,需將fd最后兩維向量進(jìn)行展平處理,從而將意圖與文本向量的結(jié)合信息整合在同一維度中;式(2)表示通過softmax 求出hT與各項(xiàng)意圖的相關(guān)度。其中,tanh 為激活函數(shù),Wd為可學(xué)習(xí)的意圖列表注意力權(quán)重,hT為隱向量,D 為意圖查詢矩陣。
式(3)為聯(lián)合各項(xiàng)意圖向量的加權(quán)特征,具體公式如下:
本節(jié)介紹Slot-Gated 機(jī)制,Slot-Gated 模型引入一個(gè)額外的門機(jī)制,利用上下文注意力機(jī)制建模槽值與意圖的關(guān)系,從而提升槽填充的性能。首先組合槽上下文向量和意圖上下文向量cI,Slot Gate 示意圖如圖2 所示。
Fig.2 Illustration of the Slot Gate圖2 Slot Gate 示意圖
其中,v、W 分別是可訓(xùn)練的矩陣向量。對同一時(shí)間步中的元素進(jìn)行求和,g 可看作聯(lián)合上下文向量的加權(quán)特征。
以上提出一種僅專注于意圖的縫隙內(nèi)控模型,組合隱向量h和意圖上下文向量,通過時(shí)隙門求得g。
為評價(jià)所提出方法的有效性,本文采用基準(zhǔn)數(shù)據(jù)集ATIS(航空旅行信息系統(tǒng))[18]與數(shù)據(jù)集Snips[19]進(jìn)行對比實(shí)驗(yàn)。ATIS 數(shù)據(jù)集中訓(xùn)練集、驗(yàn)證集及測試集分別包含4 478、500 和893 條話語,并具有120 個(gè)槽標(biāo)簽和21 個(gè)意圖標(biāo)簽。與ATIS 相比,Snips 數(shù)據(jù)集詞匯量更大,且語義環(huán)境更為復(fù)雜。Snips 數(shù)據(jù)集中訓(xùn)練集、驗(yàn)證集及測試集分別包含13 084、700 和700 條話語,并具有72 個(gè)槽標(biāo)簽和7 個(gè)意圖標(biāo)簽。各數(shù)據(jù)集統(tǒng)計(jì)結(jié)果如表2 所示。
Table 2 Statistics of ATIS and Snips datasets表2 各數(shù)據(jù)集統(tǒng)計(jì)結(jié)果
所有實(shí)驗(yàn)在Linux 系統(tǒng)的tensorflow1.14 環(huán)境下進(jìn)行,設(shè)置批次大小為32、隱藏向量大小為64,損失函數(shù)采用交叉熵?fù)p失函數(shù),優(yōu)化器為Adam[20],損失函數(shù)采用聯(lián)合優(yōu)化損失函數(shù),迭代訓(xùn)練100 次。
實(shí)驗(yàn)中除在意圖識別模塊中加入意圖列表查詢機(jī)制外,其他參數(shù)設(shè)置和模型搭建與原Slot-Gated 模型相同,該方法排除了其他因素對本實(shí)驗(yàn)的干擾。本文使用F1 得分評估插槽填充性能,使用準(zhǔn)確率評估意圖識別和語義框架的整體性能。在ATIS 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如圖3、圖4 所示(彩圖掃OSID 碼可見,下同)。圖3 展示了全局關(guān)注和僅意圖關(guān)注模型在ATIS 數(shù)據(jù)集上的損失值,圖4 為全局關(guān)注和僅意圖關(guān)注模型在ATIS 數(shù)據(jù)集上槽值的F1 得分,以及意圖準(zhǔn)確率和意圖與槽聯(lián)合準(zhǔn)確率。
Fig.3 Loss value of the proposed model on ATIS圖3 本文模型在ATIS 上的損失值
Fig.4 Performance of the proposed model on ATIS圖4 本文模型在ATIS 上的性能
為了說明模型的有效性,在Snips 數(shù)據(jù)集上對模型進(jìn)行測試,實(shí)驗(yàn)結(jié)果如圖5、圖6 所示。
Fig.5 Loss value of the proposed model on Snip圖5 本文模型在Snip 上的損失值
Fig.6 Performance of the proposed model on Snips圖6 本文模型在Snips 上的性能
Slot-Gated 原文獻(xiàn)中提出的各項(xiàng)指標(biāo)為前20 輪的平均值,所展示的模型效果并未達(dá)到Slot-Gated 模型的最佳效果。本文實(shí)驗(yàn)進(jìn)行100 輪次訓(xùn)練,將Slot-Gated 模型與本文方法的實(shí)驗(yàn)結(jié)果進(jìn)行對比,如表3 所示。
Table 3 Performance of NLU on ATIS and Snips datasets表3 NLU 在ATIS 與Snips 數(shù)據(jù)集上的性能
從表3 可以看出,針對ATIS 數(shù)據(jù)集,采用全局注意機(jī)制,意圖準(zhǔn)確率和意圖與槽聯(lián)合準(zhǔn)確率分別提升了1.1%和1.5%;僅采用意圖注意機(jī)制,意圖準(zhǔn)確率和意圖與槽聯(lián)合準(zhǔn)確率分別提升了0.9%和1.2%。在Snips 數(shù)據(jù)集上,由于意圖種類較少且訓(xùn)練數(shù)據(jù)充足,意圖分類任務(wù)較為簡單,模型能很好地?cái)M合數(shù)據(jù),加入列表查詢機(jī)制未對模型產(chǎn)生明顯改善效果。針對Snips 數(shù)據(jù)集,采用全局注意機(jī)制,意圖準(zhǔn)確率和意圖與槽聯(lián)合準(zhǔn)確率分別提升了0.1% 和0.3%;僅采用意圖注意機(jī)制,意圖準(zhǔn)確率和意圖與槽聯(lián)合準(zhǔn)確率分別提升了0.3%和0.4%。實(shí)驗(yàn)結(jié)果表明,在Slot-Gated 模型中加入基于意圖的列表查詢機(jī)制對意圖識別以及意圖與槽聯(lián)合準(zhǔn)確率的提升具有積極意義。
本文通過構(gòu)建意圖列表查詢機(jī)制,給予模型在意圖領(lǐng)域的先驗(yàn)知識。通過注意力機(jī)制將意圖先驗(yàn)知識與輸入句向量兩者進(jìn)行有效關(guān)聯(lián),并傳入后續(xù)的意圖識別網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以實(shí)現(xiàn)更好的語義理解,從而提升模型意圖識別以及意圖與槽聯(lián)合準(zhǔn)確率。相比Slot-Gated 模型,本文方法在意圖識別以及意圖與槽聯(lián)合準(zhǔn)確率上均有所提升,并驗(yàn)證了將標(biāo)簽轉(zhuǎn)換為先驗(yàn)知識對模型具有積極意義。當(dāng)然本文方法在原模型的基礎(chǔ)上增加了參數(shù)量,會耗費(fèi)更多計(jì)算和存儲成本。在今后的研究中,將致力于將先驗(yàn)知識與模型進(jìn)行更有效融合,以提高神經(jīng)網(wǎng)絡(luò)的可解釋性。