ACL2019
文章簡介:
本文提出了一個(gè)可遷移多領(lǐng)域的的狀態(tài)生成器模型(transferable dialogue state generator关霸,TRADE)來實(shí)現(xiàn)任務(wù)型對話系統(tǒng)。在多領(lǐng)域(Multi-Domain)和zero-shot domain對話數(shù)據(jù)集中獲得了不錯(cuò)的表現(xiàn)欠啤。
原文
代碼
先驗(yàn)知識(shí):
對話系統(tǒng)任務(wù)綜述與POMDP對話系統(tǒng)
任務(wù)型對話系統(tǒng)公式建模&&實(shí)例說明
DST,Dialogue State Tracking
Zero-Shot Learning
目錄:
1.Introduction
2.TRADE Model
2.1 Utterance Encoder
2.2 State Generator
2.3 Slot Gate
2.4 Optimization
3.Unseen Domain DST
3.1 Zero-shot DST
3.2 Expanding DST for Few-shot Domain
4.Experiments
4.1 Dataset
4.2 Training Details
Multi-domain Joint Training
Domain Expanding
4.3 Results
Multi-domain Training
Zero-shot
Domain Expanding
5. Error Analysis
6. Related Work
Dialogue State Tracking
Zero/Few-Shot and Continual Learning
7. Conclusion
1.Introduction
DST,Dialogue State Tracking是任務(wù)型對話系統(tǒng)的核心組成部分刀诬,DST用來抽取用戶在對話中表現(xiàn)的意圖然后編碼為表示對話狀態(tài)的緊湊集合咽扇。常見的DST輸入An-1和Sn-1,輸出Sn陕壹。An為Action即系統(tǒng)收到用戶消息后做出的回復(fù)质欲,Sn={Gn,Un,Hn},Gn為當(dāng)前任務(wù)所有的槽(slot)糠馆,Un為{意圖(Intention對應(yīng)本文中領(lǐng)域domain)嘶伟,槽值對(slot-value pair)},Hn為聊天歷史即U和A的集合又碌。詳細(xì)見上方先驗(yàn)知識(shí)鏈接九昧。注本文中DST有些許差別見第二節(jié)中架構(gòu)描述绊袋。
傳統(tǒng)的State Tracking假定本體(ontology)已經(jīng)提前定義,即所有槽值對已知铸鹰。這樣DST就是一個(gè)分類問題了癌别,然而這有兩個(gè)問題:
1.在工業(yè)界應(yīng)用中,對話數(shù)據(jù)庫往往僅通過一個(gè)API提供給外界蹋笼,使得獲取全部槽位槽值似乎不可能完成展姐。
2.就算所有的本體存在,然而槽值取值范圍很大并且可變剖毯,比如餐廳的名稱可能有很多很多個(gè)诞仓。
所以這類神經(jīng)網(wǎng)絡(luò)分類DST在現(xiàn)實(shí)場景中應(yīng)用不多。
Budzianowski et al. (2018) 發(fā)布了一個(gè)多領(lǐng)域?qū)υ挃?shù)據(jù)集MultiWOZ速兔,給DST帶來了新的挑戰(zhàn)。
如上圖所示,一個(gè)用戶可以以預(yù)訂餐廳開始舒憾,然后詢問附附近有什么好玩的地方镀钓,最后租出租車。在這種情況下镀迂,DST模型需要在每輪對話中決定對應(yīng)的領(lǐng)域丁溅,槽和槽值,這當(dāng)中有大量的本體組合探遵。
另外一個(gè)挑戰(zhàn)是多輪映射(multi-turn mapping)窟赏,對應(yīng)上圖中的虛線,實(shí)線為單輪映射箱季。單輪映射中場景:(領(lǐng)域涯穷,槽,槽值)三元組可以由單輪對話得出藏雏,在多輪映射中場景則需要由多輪對話才能得到拷况。比如途中Attraction中的area是在上一輪對話中得到的信息。
為了解決這些問題掘殴,DST模型需要在多個(gè)領(lǐng)域間共享追蹤到的知識(shí)赚瘦。有一些槽,比如說area奏寨,在多個(gè)領(lǐng)域中都會(huì)出現(xiàn)起意。為了讓模型能在未知領(lǐng)域中追蹤槽位,在不同領(lǐng)域間傳送知識(shí)是必要的服爷。我們期待DST模型可以在zero-shot 領(lǐng)域追蹤槽位杜恰。
本文提出的可遷移多領(lǐng)域的的狀態(tài)生成器模型(transferable dialogue state generator获诈,TRADE),目的是:
1.TRADE提出了基于上下文(context-enhanced)的slot gate和copy mechanism來追蹤對話歷史中提到的槽值心褐,以解決多輪映射問題舔涎。
2.通過各領(lǐng)域間共享參數(shù)并且不需要預(yù)定義的本體,TRADE可以在各領(lǐng)域間共享知識(shí)去追蹤未知的槽值逗爹。這在多領(lǐng)域DST中獲得了先進(jìn)的表現(xiàn)亡嫌。
3.TRADE可以實(shí)現(xiàn)zero-shot DST,如果未知領(lǐng)域有一些訓(xùn)練樣本掘而,TRADE可以適應(yīng)新的少樣本領(lǐng)域(few-shot domain)并且不忘記之前的領(lǐng)域挟冠。
2.TRADE Model
模型由三部分組成:utterance encoder,slot gate, state generator。不同于之前的模型預(yù)測預(yù)定義本體的概率袍睡,TRADE直接生成槽值知染。 和Johnson et al. (2017) 基于多語言的神經(jīng)翻譯機(jī)相似,模型共享參數(shù)斑胜,state generator在生成每一個(gè)(領(lǐng)域控淡,槽)時(shí)都會(huì)有不同的起始標(biāo)記(start-of-sentence token)。
utterance encoder將輸入(Un:{意圖(Intention)止潘,槽值對(slot-value pair)})編碼為一個(gè)定長的向量掺炭。
slot gate通過一個(gè)三分類分類器來判定本輪對話中是否有任意的(領(lǐng)域,槽)被提及凭戴。
state generator挨個(gè)解碼所有輸入(領(lǐng)域涧狮,槽)的多路輸出并預(yù)測槽值。
注意這里的參數(shù)定義及模型架構(gòu)和上面先驗(yàn)知識(shí)中的定義有稍許不同么夫,X表示經(jīng)歷了T輪的對話歷史者冤,B表示每輪的對話狀態(tài)(dialogue state),B為(領(lǐng)域D档痪,槽S譬嚣,槽值Y)。有領(lǐng)域D有N個(gè)取值钞它,槽S有M個(gè)取值拜银,假設(shè)有J對可能的(領(lǐng)域,槽)對遭垛,Yj是第j對(領(lǐng)域尼桶,槽)的槽值。
2.1 Utterance Encoder
這里使用雙向GRU(Chung et al., 2014) 來編碼锯仪。
輸入為Xt為t輪的對話歷史:
為所有向量的拼接泵督。l代表考慮的前l(fā)輪對話。
編碼后的輸出為:
2.2 State Generator
為了生成槽值庶喜,我們需要copy mechanism小腊,一般有三種方式index-based copy (Vinyals et al., 2015), hardgated copy (Gulcehre et al., 2016; Madotto et al., 2018; Wu et al., 2019)救鲤,和soft-gated copy (See et al., 2017; McCann et al., 2018)。這里使用soft-gated copy來把詞匯分布和對話歷史分布結(jié)合為單個(gè)輸出分布秩冈。
使用GRU作為解碼器來預(yù)測每一個(gè)(領(lǐng)域本缠,槽)的槽值。把領(lǐng)域和槽的嵌入相加作為解碼器的第一個(gè)輸入入问,設(shè)第j對(領(lǐng)域丹锹,槽)的第k步解碼(可以看模型架構(gòu)圖中第一步解碼輸出Ashley,第二步解碼輸出Hotel因?yàn)椴壑悼赡苡啥鄠€(gè)詞組組成所以有k步解碼)輸出為芬失。state generator使用可訓(xùn)練的嵌入將映射到楣黍,同時(shí)也會(huì)被用來計(jì)算對話歷史attention。
總結(jié)一下棱烂,就是:
隨后根據(jù)上文提到的soft-gated copy結(jié)合兩個(gè)分布颊糜,最后的輸出為:
由公式(2)可以看到,即使詞語沒有在詞匯表中本模型可以生成芭析。(怎么看出來的?)
2.3 Slot Gate
在多領(lǐng)域的DST任務(wù)中,有大量的(領(lǐng)域吞瞪,槽)對馁启。因此在當(dāng)前輪對話t預(yù)測領(lǐng)域和槽是一個(gè)很大的挑戰(zhàn)。
slot gate的作用是把Utterance Encoder輸出的Ht映射到包含ptr,none,dontcare的三類芍秆。對于每一個(gè)(領(lǐng)域惯疙,槽)對,如果gate預(yù)測none或dontcare妖啥,則忽視2.2節(jié)中最后輸出的槽值而是填入"not-mentioned"和"does not care"霉颠。若gate預(yù)測ptr,則填入State Generator得到的槽值荆虱。
c見公式(3)蒿偎。
2.4 Optimization
State Generator和Slot Gate都需要訓(xùn)練(Utterance Encoder按照2.1節(jié)的意思應(yīng)該是之前別人有的直接用)。
|Yj|代表了槽值輸出詞組的長度怀读,即解碼中的k步诉位。J為(領(lǐng)域,槽)對個(gè)數(shù)菜枷。
權(quán)重為超參數(shù)苍糠。
3.Unseen Domain DST
本節(jié)聚焦TRADE在zero-shot transferring和few-shot domain expanding上的表現(xiàn)。zero-shot的情況下我們假設(shè)在新的領(lǐng)域沒有訓(xùn)練數(shù)據(jù)啤誊,在few-shot情況下只有1%的數(shù)據(jù)(20到30個(gè)對話)岳瞭。
3.1 Zero-shot DST
如果之前在別的領(lǐng)域中學(xué)習(xí)(訓(xùn)練)過拥娄,DST可以在新的領(lǐng)域中直接追蹤到這些槽 。舉例就是如果在"火車"領(lǐng)域?qū)W習(xí)過"出發(fā)"槽瞳筏,那在"出租車"領(lǐng)域就能追到到"出發(fā)"槽稚瘾。DST輸入對話歷史X,領(lǐng)域D乏矾,槽S孟抗,輸出槽S對于的槽值。訓(xùn)練樣本钻心,測試時(shí)凄硼。對于新領(lǐng)域Dtarget,Zero-shot DST需要在未使用任何訓(xùn)練樣本的情況下輸出正確的的槽值捷沸。若中的槽在之前訓(xùn)練的領(lǐng)域D中未出現(xiàn)過摊沉,則這項(xiàng)任務(wù)非常艱巨。
3.2 Expanding DST for Few-shot Domain
few-shot的情況下只有少量的訓(xùn)練樣本痒给。模型few-shot domain expansion的能力有兩個(gè)好處:
1.在少量數(shù)據(jù)下可以適應(yīng)新的領(lǐng)域并且獲得不錯(cuò)的表現(xiàn)说墨。
2.不需要重新訓(xùn)練,因?yàn)樵谛碌念I(lǐng)域中之前的數(shù)據(jù)并不可靠并且重新訓(xùn)練非常費(fèi)時(shí)苍柏。
可以在沒有約束的情況下直接微調(diào)尼斧,也可以使用兩個(gè)帶約束的微調(diào)訓(xùn)練方法:elastic weight consolidation (EWC) (Kirkpatrick et al., 2017) 和 gradient episodic memory (GEM) (Lopez-Paz et al., 2017) 。
4.Experiments
4.1 Dataset
Multi-domainWizard-of-Oz(Budzianowskietal., 2018) (MultiWOZ) 是目前最大的人與人對話語料庫试吁。其涉及7個(gè)領(lǐng)域棺棵,包含8438個(gè)多輪對話平均每個(gè)對話有13.68輪。與WOZ (Wen et al., 2017) 和DSTC2 (Henderson etal.,2014a)不同熄捍,這兩個(gè)數(shù)據(jù)集只包含了10個(gè)不到的槽和幾百個(gè)槽值烛恤。而MultiWOZ有30個(gè)(領(lǐng)域,槽)對并有超過4500個(gè)可能的槽值余耽。我們訓(xùn)練時(shí)只用到(restaurant, hotel, attraction, taxi, train) 五個(gè)領(lǐng)域缚柏,因?yàn)榱硗鈨蓚€(gè)(hospital, police) 對話太少了。
4.2 Training Details
Multi-domain Joint Training
優(yōu)化器選擇Adam碟贾,batchsize為32币喧,學(xué)習(xí)率[0.001,0.0001] 0.2的衰減,公式(7)中權(quán)重超參都設(shè)置為1袱耽,嵌入向量由拼接 Glove(Pennington et al., 2014)和單詞級嵌入(Hashimoto et al., 2016)初始化嵌入維度為400粱锐。解碼器用了貪婪搜索(注sequence2sequence的輸出Beam Search用的比較多)。同時(shí)為了加強(qiáng)模型泛化能力 utterance encoder 加入了word dropout(和drop out類似隨機(jī)屏蔽掉幾個(gè)詞扛邑,出處 Bowman et al. (2016))怜浅。
Domain Expanding
加入3.2中的EWC,GEM微調(diào)。
4.3 Results
這里有兩個(gè)評價(jià)指標(biāo),共同目標(biāo)準(zhǔn)確率(joint goal accuracy)和槽準(zhǔn)確率(slot accuracy)恶座。前者要求DST輸出的第t輪對話狀態(tài)(dialogue state)Bt=(領(lǐng)域搀暑,槽,槽值)和標(biāo)簽完全一致跨琳,即這一輪中每一個(gè)槽值都預(yù)測正確才算這一輪正確自点,而后者只計(jì)算(領(lǐng)域,槽脉让,槽值)三元組的準(zhǔn)確率桂敛。
Multi-domain Training
本文和四個(gè)base-line做了比較, MDBT (Ramadan et al., 2018), GLAD (Zhong et al., 2018), GCE (Nouri and Hosseini-Asl, 2018), 和 SpanPtr (Xu and Hu, 2018)溅潜,結(jié)果如下:
可以看到擁有相近槽值的槽嵌入相似度高(顏色深)术唬,比如destination和departure對于的槽值都是城市名,people和stay槽值都是數(shù)字滚澜。
Zero-shot
可以看到只有taxi領(lǐng)域的Zero-shot最接近左列,作者的解釋是因?yàn)閠axi領(lǐng)域的四個(gè)槽槽值都相似设捐。
Domain Expanding
可以看到fine-tune的方式,往往比重新訓(xùn)練(training 1% new domain)效果好萝招。
5. Error Analysis
6. Related Work
Dialogue State Tracking
Zero/Few-Shot and Continual Learning
7. Conclusion
將來會(huì)加強(qiáng)meta learning在多領(lǐng)域DST中的應(yīng)用。