DIET:Dual Intent and Entity Transformer
標(biāo)題:《DIET: Lightweight Language Understanding for Dialogue Systems》
中文:用于對話系統(tǒng)的輕量語言理解方法
時間:2020年5月
作者:RASA
簡介:這個是RASA團(tuán)隊(duì)針對對話系統(tǒng)中NLU任務(wù),設(shè)計(jì)的一種新框架,名叫Dual Intent and Entity Transformer (DIET,雙重意圖與實(shí)體Transformer ) 。成果是,DIET在不利用pre-trained embeddings.的情況下,達(dá)到了可比的性能,即large pre-trained models對NLU任務(wù)似乎沒有什么優(yōu)勢。我們的方法比微調(diào)的BERT還好。
代碼:https://github.com/RasaHQ/DIET-paper
學(xué)習(xí)資料:
1. Introduction
本文,我們提出DIET——一個用于意圖分類和實(shí)體識別(intent classification and entity recognition)的多任務(wù)框架。考慮兩方面的embeddings,一是pre-trained word embeddings from language
models,二是sparse word and character level n-gram features。我們的特點(diǎn)是有能力將兩種特征以plug-and-play方式結(jié)合起來。實(shí)驗(yàn)顯示,盡管不使用pre-trained embeddings, 僅使用sparse
word and character level n-gram features, DIET依然能超越SOTA的NLU性能。而在增加pre-trained embeddings和sentence embedding的情況下,性能可以進(jìn)一步提升。我們的最好性能優(yōu)于微調(diào)BERT,且速度是后者6倍。
DIET代表Dual Intent and Entity Transformer,是一種多任務(wù)transformer?架構(gòu),可以同時執(zhí)行意圖分類和實(shí)體識別。它由多個組件組成,這使我們可以靈活地交換不同的組件。例如,我們可以嘗試使用不同的word embeddings,例如BERT和GloVe。
許多預(yù)訓(xùn)練語言模型非常笨拙,因?yàn)樗枰獜?qiáng)大的計(jì)算能力,并且推理時間很長,因此盡管它們具有出色的性能,但它們并不是為對話式AI應(yīng)用程序設(shè)計(jì)的。因此,大規(guī)模的預(yù)訓(xùn)練語言模型對于構(gòu)建對話式AI應(yīng)用程序的開發(fā)人員而言并不理想。
DIET之所以與眾不同,是因?yàn)?#xff1a;
- 它是一種模塊化體系結(jié)構(gòu),適合典型的軟件開發(fā)工作流程;
- 在準(zhǔn)確性和性能方面,能達(dá)到大規(guī)模的預(yù)訓(xùn)練語言模型的效果;
- 改進(jìn)了現(xiàn)有技術(shù),勝過目前的SOTA,并且訓(xùn)練速度提高了6倍。
2. Related Work
2.1 transfer learning
2.2 Joint Intent Classification and Named Entity Recognition
以多任務(wù)學(xué)習(xí)的方式,聯(lián)合實(shí)現(xiàn)意圖分類與NER,這個思路已經(jīng)有很多論文研究過。本文中,我們利用一個 similar transformer-based的多任務(wù)設(shè)置用于DIET。并通過消融實(shí)驗(yàn)與單任務(wù)設(shè)置下進(jìn)行對比。
3. DIET architecture
? ? ? ? ? ? ? ? ? ? ? ? ???
問題:
數(shù)據(jù)集要求:the input text、label(s) of intent(s) 、label(s) of entities.
FFNN Characteristics
關(guān)于架構(gòu)中所有FFNN的兩個特別說明:
- 首先,它們沒有完全連接。從一開始,FFNN的dropout?率約為80%。這使得FFNN更輕巧。
- 其次,所有FFNN具有相同的權(quán)重。All the FFNN post sparse features share weights (W1) and all the FFNN post merging the output of the two paths share another set of weights (W2).
Featurization
在每一個句子結(jié)尾加一個__CLS__的special token。每個token都有它的嵌入,可以是sparse的,可以是dense的。通過線性層統(tǒng)一維度。
Transformer
自己實(shí)現(xiàn)一個小型的(2層)的Transformer來編碼context。
NER
用Transformer輸出向量,接一個CRF層進(jìn)行NER。
Intent Classification
over all possible intent labels,將label嵌入與CLS對應(yīng)的隱藏向量計(jì)算dot-product similarity。
- 訓(xùn)練階段:最大化正標(biāo)簽的相似度,最小化負(fù)標(biāo)簽的相似度
- inference階段:dot-product similarity在所有inten label上的rank
Masking
受masked language modelling task的啟發(fā),我們額外增加一個MASK損失函數(shù)來預(yù)測randomly masked input tokens。在序列中隨機(jī)選擇輸入詞符的 15%, 對于選定的詞符,在70%的情況下我們將輸入替換為特殊屏蔽詞符 __MASK__ 對應(yīng)的向量,在 10% 情況下我們用隨機(jī)詞符的向量替換輸入,并在其余的 20% 情況下保留原始輸入。
我們假設(shè)添加一個以重建MASK輸入的訓(xùn)練目標(biāo),應(yīng)該可以作為一個正則化器,幫助模型從文本中學(xué)習(xí)到更多一般的特征,而不僅要從分類中獲得區(qū)分性。
Total loss
? ? ? ? ? ? ? ? ? ? ? ?
Total loss:
注:這個結(jié)構(gòu)可以配置,可以隨時關(guān)閉上述總和中的任何一種損失。該體系結(jié)構(gòu)的設(shè)計(jì)方式使我們可以打開或關(guān)閉多個組件,旨在處理意圖和實(shí)體分類,但是如果我們只希望模型進(jìn)行intent classification,則可以關(guān)閉Entity loss和Mask loss,而只專注于優(yōu)化訓(xùn)練期間的Intent loss。
Batching
使用balanced batching策略來減輕類別不平衡,因?yàn)槟承┮鈭D可能比其它意圖更為頻繁。 另外,還在整個訓(xùn)練期間增加批次大小,作為正則化的另一個來源。
4. 實(shí)驗(yàn)評估
在本節(jié)中,我們首先描述實(shí)驗(yàn)中使用的數(shù)據(jù)集,然后描述實(shí)驗(yàn)設(shè)置,然后進(jìn)行消融研究以了解體系結(jié)構(gòu)每個組件的有效性。
4.1 數(shù)據(jù)集
我們使用三個數(shù)據(jù)集進(jìn)行評估:NLU-Benchmark、ATIS 和 SNIPS。 我們的實(shí)驗(yàn)重點(diǎn)是 NLU-Benchmark 數(shù)據(jù)集,因?yàn)樗沁@三個中最具挑戰(zhàn)性的。 ATIS 和 SNIPS 測試集精度的最先進(jìn)水平已經(jīng)接近 100%,請參見表5。
NLU-Benchmark 數(shù)據(jù)集:?NLU-Benchmark 數(shù)據(jù)集(Liu 等人,2019b),帶有場景、動作和實(shí)體的標(biāo)注。 例如,“schedule a call with Lisa on Monday morning” 標(biāo)注為場景 calendar、動作 set_event、實(shí)體 [event_name:?a call with Lisa] 和 [date:?Monday morning]。 將場景和動作標(biāo)簽進(jìn)行連接得到意圖標(biāo)簽(例如 calendar_set_event)。 該數(shù)據(jù)集有 25,716 個語句,涵蓋多個家庭助理任務(wù),例如播放音樂或日歷查詢、聊天、以及向機(jī)器人發(fā)出的命令。 我們將數(shù)據(jù)分為 10 fold。 每一份都有自己的訓(xùn)練集和測試集,分別有 9960 和 1076 個個語句。3?總共存在 64 個意圖和 54 種實(shí)體類型。
ATIS:?ATIS(Hemphill 等人,1990)是 NLU 領(lǐng)域中經(jīng)過充分研究的數(shù)據(jù)集。 它由預(yù)訂機(jī)票的人的錄音經(jīng)過標(biāo)注轉(zhuǎn)錄。 我們使用與?Chen 等人?(2019)一樣分劃分,最初由?Goo 等人?(2018)提出。 訓(xùn)練、開發(fā)和測試集分別包含 4,478、500 和 893 個語句。 訓(xùn)練數(shù)據(jù)集包含 21 個意圖和 79 個實(shí)體。
SNIPS:?此數(shù)據(jù)集是從 Snips 個人語音助手收集的(Coucke 等人,2018)。 它包含 13,784 個訓(xùn)練和 700 個測試樣本。 為了公平比較,我們使用與?Chen 等人?(2019)和?Goo 等人?(2018)一樣的數(shù)據(jù)劃分,數(shù)據(jù)集鏈接。 訓(xùn)練集中分 700 個樣本用作開發(fā)集。 數(shù)據(jù)可以在線訪問?4。 SNIPS 數(shù)據(jù)集包含 7 個意圖和 39 個實(shí)體。
4.2 實(shí)驗(yàn)設(shè)置
我們的模型用 Tensorflow 實(shí)現(xiàn):
- 使用 NLU-Benchmark 數(shù)據(jù)集的第一個fold來選擇超參數(shù)。 為此,我們從訓(xùn)練集中隨機(jī)抽取 250 個語句作為驗(yàn)證集。
- 訓(xùn)練 200 多個epochs的模型(在一臺具有 4 個 CPU,15 GB 內(nèi)存和一臺 NVIDIA Tesla K80 的計(jì)算機(jī)上)。
- 使用 Adam(Kingma 和 Ba,2014)進(jìn)行優(yōu)化,初始學(xué)習(xí)率為 0.001。
- batch size大小從 64 增加到 128(Smith 等人,2017)。
在 NLU-Benchmark 數(shù)據(jù)集的第一個小份上訓(xùn)練我們的模型大約需要一個小時。 在推斷的時候,我們需要大約 80 毫秒來處理一條語句。
4.3 在 NLU-Benchmark 數(shù)據(jù)集上的實(shí)驗(yàn)
為了獲得該模型在該數(shù)據(jù)集上的整體性能,我們采用?Vanzo 等人?(2019)的方法:分別訓(xùn)練 10 個模型,每個小份一次,將平均值作為最終得分。
Micro-averaged precision、召回率和 F1 得分用作指標(biāo)
意圖標(biāo)簽的 True positives、false positives 和 false negatives 的計(jì)算方式與其它任何多類分類任務(wù)一樣。 如果預(yù)測范圍和正確范圍之間重疊,并且其標(biāo)簽匹配,則該實(shí)體被視為 true positive。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
表1顯示我們在 NLU-Benchmark 數(shù)據(jù)集上表現(xiàn)最好的模型的結(jié)果。 我們性能最好的模型使用稀疏特征,即詞符級別的 one-hot 編碼和字符 n-gram 的 multi-hot 編碼(n ≤ 5)。 這些稀疏特征與 ConveRT 的密集嵌入相結(jié)合(Henderson 等人,2019b)。
性能最好的模型沒有使用MASK損失
?我們在意圖方面的表現(xiàn)優(yōu)于 HERMIT,絕對值超過 2%。 我們的實(shí)體 F1 微觀平均得分(86.04%)也高于 HERMIT(84.74%)。 HERMIT 報告的實(shí)體精度值相似,但是,我們的召回率要高得多(86.13% 相比 82.04%)。
4.4 NLU-Benchmark 數(shù)據(jù)集上的消融研究
我們使用 NLU-Benchmark 數(shù)據(jù)集來評估模型體系結(jié)構(gòu)的不同組成部分,因?yàn)樗w多個領(lǐng)域并且在三個數(shù)據(jù)集中擁有最多的意圖和實(shí)體。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Joint training的重要性:為了評估意圖分類和命名實(shí)體識別這兩個任務(wù)是否受益于joint優(yōu)化,我們針對每個任務(wù)分別訓(xùn)練了模型。 表2列出使用 DIET 僅訓(xùn)練單個任務(wù)的結(jié)果。 結(jié)果表明,與實(shí)體識別一起訓(xùn)練時,意圖分類的性能略有下降(90.90% vs 90.18%)。 應(yīng)該注意的是,意圖分類單任務(wù)訓(xùn)練的最佳性能配置對應(yīng)于使用沒有 transformer 層5?的 ConveRT 嵌入。 但是,當(dāng)單獨(dú)訓(xùn)練實(shí)體時,實(shí)體的 micro-averaged F1 分?jǐn)?shù)從 86.04 %下降到 82.57%。 檢查 NLU-Benchmark 數(shù)據(jù)集,這可能是由于特定意圖與特定實(shí)體的存在之間的強(qiáng)相關(guān)性。 例如,幾乎所有屬于 play_game 意圖的語句都有一個名為 game_name 的實(shí)體。 同樣,實(shí)體 game_name 僅與意圖 play_game 一起出現(xiàn)。 我們認(rèn)為,這一結(jié)果進(jìn)一步表明擁有像 DIET 這樣的模塊化和可配置架構(gòu)的重要性,以便處理這兩項(xiàng)任務(wù)之間的性能折衷。
不同特征組件和MASK的重要性:如第3節(jié)所述,不同預(yù)訓(xùn)練語言模型的嵌入都可以用作dense特征。 我們訓(xùn)練多種變體來研究每種變體的有效性:僅sparse特征,即word級別的 one-hot 編碼和character n-gram 的 multi-hot 編碼(n ≤ 5),以及與 ConveRT、BERT 或 GloVe一起使用的組合。 此外,我們在有和沒有MASK損失的情況下訓(xùn)練每種組合。 表3中顯示的結(jié)果顯示意圖分類和實(shí)體識別的 F1 分?jǐn)?shù),并表明多種觀察結(jié)果:
- 當(dāng)使用sparse特征和mask損失,而沒有任何預(yù)訓(xùn)練的embeddings時,DIET 的性能具有競爭力。 在目標(biāo)和實(shí)體上增加mask損失都會使性能提高絕對值約 1%。
- 具有 GloVe 嵌入的 DIET 也具有同等的競爭力,并且在與sparse特征和mask損失結(jié)合使用時,在意圖和實(shí)體上都將得到進(jìn)一步增強(qiáng)。
- 有趣的是,使用上下文 BERT 嵌入作為dense特征的效果要比 GloVe 差。 我們假設(shè)這是因?yàn)?BERT 主要是在各種文本上預(yù)訓(xùn)練的,因此在轉(zhuǎn)移到對話任務(wù)之前需要微調(diào)。 由于 ConveRT 專門針對會話數(shù)據(jù)進(jìn)行微調(diào),因此使用 ConveRT 嵌入的 DIET 的性能支持了這種假設(shè)。
- sparse特征 和 ConveRT 嵌入的結(jié)合在意圖分類上獲得了最佳的 F1 得分,并且在意圖分類和實(shí)體識別方面都比現(xiàn)有最好結(jié)果高出 3% 左右。
- 與 BERT 和 ConveRT 一起用作dense特征時,增加mask損失似乎會稍微影響性能。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
與微調(diào) BERT 比較:我們評估將 BERT 應(yīng)用到 DIET 的特征流水線中并對整個模型進(jìn)行微調(diào)的有效性。 表4顯示使用凍結(jié) ConveRT 嵌入的 DIET 作為dense特征和單詞、字符級稀疏特征在實(shí)體識別上表現(xiàn)優(yōu)于微調(diào)的 BERT,而在意圖分類方面表現(xiàn)持平。 此結(jié)果尤為重要,因?yàn)樵谒?10 個 NLU-Benchmark 數(shù)據(jù)集上微調(diào)的 DIET 中的 BERT 需要 60 個小時,而使用 ConveRT 嵌入和稀疏特征的 DIET 則需要 10 個小時。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
4.5 ATIS 和 SNIPS 上的實(shí)驗(yàn)
為了將我們的結(jié)果與?Chen 等人?(2019)比較,我們使用與以下相同的評估方法?Chen 等人?(2019)和?Goo 等人?(2018)。 他們報告意圖分類的準(zhǔn)確性和實(shí)體識別的 micro-averaged F1 分?jǐn)?shù)。 同樣,可以像在其它任何多類分類任務(wù)中一樣獲得意圖標(biāo)簽的 true positives、false positives 和 false negatives。 但是,只有當(dāng)預(yù)測范圍與正確范圍完全匹配并且其標(biāo)簽匹配正確時,實(shí)體才算為 true positive,定義比?Vanzo 等人?(2019)更嚴(yán)格。 所有實(shí)驗(yàn)在 ATIS 和 SNIPS 上均進(jìn)行 5 次。 我們將這些運(yùn)行結(jié)果的平均值作為最終數(shù)字。
為了解 DIET 超參數(shù)的可移植性,我們采用在 NLU-Benchmark 數(shù)據(jù)集上性能最佳的 DIET 模型配置,并在 ATIS 和 SNIPS 上對其進(jìn)行評估。 表5中列出 ATIS 和 SNIPS 數(shù)據(jù)集上的意圖分類準(zhǔn)確性和命名實(shí)體識別 F1 得分。
由于采用了更嚴(yán)格的評估方法,因此我們使用 BILOU 標(biāo)記模式對數(shù)據(jù)進(jìn)行標(biāo)記(Ramshaw 和 Marcus,1995)。 表5中的 ? 指示使用 BILOU 標(biāo)記模式。
值得注意的是,DIET 僅使用稀疏特征而沒有任何預(yù)訓(xùn)練的嵌入,即使這樣其性能僅比 Joint BERT 模型低 1-2%之內(nèi)。 利用 NLU-Benchmark 數(shù)據(jù)集上性能最佳模型的超參數(shù),DIET 在 ATIS 和 SNIPS 上均獲得與 Joint BERT 競爭的結(jié)果。
參考:https://natural-language-understanding.fandom.com/wiki/Named_entity_recognition#BILOU
Similar but more detailed than BIO, BILOU encode the Beginning, the Inside and Last token of multi-token chunks while differentiate them from Unit-length chunks. The same sentence is annotated differently in BILOU:
B - 'beginning' I - 'inside' L - 'last' O - 'outside' U - 'unit'如:?
| Minjun | U-Person |
| is | O |
| from | O |
| South | B-Location |
| Korea | L-Location |
| . | O |
?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的DIET:Dual Intent and Entity Transformer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 句法分析:依存分析(Dependency
- 下一篇: 参数初始化