在看了幾篇論文和一些文章之后宠蚂,今天來(lái)做一個(gè)小小的總結(jié)。這篇文章主要分為三部分。第一部分是簡(jiǎn)單講述Task oriented dialogue systems菠剩;第二部分是較概括的講述現(xiàn)在各end to end task oriented dialogue systems的模型;第三是總結(jié)和討論耻煤。
簡(jiǎn)述Task oriented dialogue systems:
Task Oriented Dialog Systems(領(lǐng)域任務(wù)型的對(duì)話系統(tǒng))是針對(duì)具體的應(yīng)用領(lǐng)域具壮,比如餐廳預(yù)訂、公交線路查詢哈蝇、設(shè)備控制等棺妓,以完成一項(xiàng)具體的領(lǐng)域任務(wù)為目標(biāo),代表有自動(dòng)客服炮赦,領(lǐng)域推薦等等怜跑。
對(duì)于一個(gè)傳統(tǒng)領(lǐng)域任務(wù)型(task oriented) 的對(duì)話系統(tǒng)[1],可以分為以下三個(gè)部分吠勘,也就是SLU性芬,NLG,Dialogue Manager剧防≈诧保口語(yǔ)理解模塊(SLU)將語(yǔ)言轉(zhuǎn)換成抽象語(yǔ)義表示,即用戶對(duì)話行為峭拘,而后系統(tǒng)更新其內(nèi)部狀態(tài)俊庇,然后系統(tǒng)通過(guò)決策規(guī)則確定系統(tǒng)行為,最后語(yǔ)言生成模塊(NLG)將系統(tǒng)行為決策轉(zhuǎn)化成對(duì)話鸡挠。其中辉饱,狀態(tài)變量包含跟蹤對(duì)話過(guò)程的變量,以及表示用戶需求的屬性值(又稱為slots)宵凌。
在分模塊系統(tǒng)中鞋囊,每個(gè)部分都有不同的方法和模型來(lái)解決。舉個(gè)栗子瞎惫,比如:SLU系統(tǒng)由從自然語(yǔ)言詢問(wèn)中識(shí)別說(shuō)話者的意圖和提取語(yǔ)義構(gòu)成溜腐,這兩項(xiàng)任務(wù)常被稱為意圖識(shí)別和槽位填充。意圖識(shí)別和槽位填充通常是分別進(jìn)行的瓜喇。意圖推測(cè)可以理解為語(yǔ)義表達(dá)分類的問(wèn)題挺益,比較流行的分類方法有例如支持向量機(jī)(SVMs)和深度神經(jīng)網(wǎng)絡(luò)。槽位填充可以理解為序列標(biāo)注任務(wù)乘寒。解決序列標(biāo)注問(wèn)題流行的方法包括最大熵馬爾可夫模型(MEMMs)望众,條件隨機(jī)場(chǎng)(CRFs)以及循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)等等。由于在此主要是講end to end 的模型,所以不詳細(xì)說(shuō)明各個(gè)部分分開(kāi)模型的解決方式烂翰。
在任務(wù)型的對(duì)話系統(tǒng)中夯缺,分模塊的解決方式有不錯(cuò)的效果,但是,這樣的方式需要分開(kāi)來(lái)訓(xùn)練各個(gè)模塊甘耿,同時(shí)需要大量的特定領(lǐng)域的人工干預(yù)(domain-specific handcrafting),在模型泛化方面有很大的局限踊兜,在進(jìn)行任務(wù)對(duì)話的時(shí)候,缺乏魯棒性佳恬。同時(shí)隨著技術(shù)的發(fā)展捏境,如何構(gòu)建個(gè)性化,更加吸引用戶的對(duì)話系統(tǒng)也是一個(gè)較大的問(wèn)題毁葱。而隨著深度學(xué)習(xí)的發(fā)展垫言,end to end 模型在很多方面有所成就,如機(jī)器翻譯倾剿,文本挖掘和圖像識(shí)別等筷频。但在Task Oriented Dialog Systems(領(lǐng)域任務(wù)型的對(duì)話系統(tǒng))方面,還有很大的提升空間柱告。下面介紹最近end to end 模型的一些工作和我的看法截驮,當(dāng)然,如有偏頗际度,望指出葵袭!
這篇就先總結(jié)這5篇paper,若下來(lái)有其他新的再看乖菱,有必要總結(jié)話坡锡,那么就下次再總結(jié)吧!
end to end task oriented dialogue systems模型:
Learning End-to-End Goal-Oriented Dialog[2]
基于Memory Network在QA chatbot領(lǐng)域充分展示了優(yōu)勢(shì)窒所,而Paper Learning End-to-End Goal-Oriented Dialog則將其應(yīng)用在了領(lǐng)域任務(wù)型的對(duì)話系統(tǒng)(Task Oriented Dialog System)中鹉勒。模型還是原來(lái)的模型,只是用法不同而已吵取!
模型如下圖禽额,和一開(kāi)始的Memory Network沒(méi)有什么不同的地方,但是有一點(diǎn)需要指出的是在End-to-End Memory Network這篇文中的output是一個(gè)詞皮官。也就是說(shuō)在QA那邊脯倒,回答只是一個(gè)詞而已。但在生成對(duì)話的時(shí)候捺氢,一個(gè)詞肯定是解決不了問(wèn)題的藻丢。然而模型還是那個(gè)模型呀,怎么辦呢摄乒?這個(gè)時(shí)候作者在paper中提出的是不是不用一句話一句話機(jī)器生成式的悠反,而是恰好相反残黑,作者在這里用的是先指定回答模板,然后基于模板生成的斋否,模型在輸出時(shí)輸出一個(gè)得分梨水,再?gòu)哪0逯腥〉梅肿罡叩哪且粋€(gè)。這樣雖然解決了生成一句話的問(wèn)題茵臭,但是另外一個(gè)問(wèn)題也就是領(lǐng)域遷移性差的問(wèn)題也就隨之產(chǎn)生冰木。
Memory Network其實(shí)驗(yàn)數(shù)據(jù)為以餐館預(yù)訂為目的的bAbI數(shù)據(jù)集,已有開(kāi)源的數(shù)據(jù)和代碼
總結(jié)一下其優(yōu)缺點(diǎn):應(yīng)用Memory Network的優(yōu)勢(shì)在于不用獨(dú)立涉及 SLU,DST笼恰,也就是直接的端到端的一種訓(xùn)練,在其缺點(diǎn)在于很難結(jié)合知識(shí)庫(kù)歇终。同時(shí)在該論文中的實(shí)驗(yàn)是基于模板檢索的各種模板還是需要自己制定社证,也就是存在遷移差的問(wèn)題。
LSTM-based dialog[3]&Hybrid Code Networks[4]
這兩篇論文有很多相似的地方评凝,首先在motivation上追葡,可以說(shuō)都是客服成長(zhǎng)過(guò)程,這個(gè)在[3]開(kāi)頭有描述奕短,在訓(xùn)練的時(shí)候可以看作是專家在訓(xùn)練一個(gè)新入職的客服宜肉,由專家提供一系列example dialogues,和一些標(biāo)準(zhǔn)答案翎碑,然后讓模型去學(xué)習(xí)谬返。學(xué)成之后上線服務(wù),在服務(wù)的同時(shí)有結(jié)合反饋來(lái)繼續(xù)學(xué)習(xí)日杈。然后是在模型方面遣铝,從圖中就可以看出相似之處,整體流程方面大概是首先輸入會(huì)話莉擒,然后提取entity 酿炸,加上原來(lái)對(duì)話,轉(zhuǎn)成向量涨冀,輸入給RNN填硕,用rnn來(lái)做DM結(jié)合一些領(lǐng)域知識(shí),一些action mask和templates鹿鳖,輸出決策扁眯,再基于模板生成對(duì)話,這樣一直循環(huán)栓辜。最后是在訓(xùn)練方法上面恋拍,都提出了SL和RL都可以獨(dú)立訓(xùn)練或者結(jié)合來(lái)訓(xùn)練的方式。
在網(wǎng)上找到Hybrid Code Networks模型的實(shí)驗(yàn)代碼--代碼和數(shù)據(jù)藕甩,實(shí)驗(yàn)數(shù)據(jù)還是以餐館預(yù)訂為目的的bAbI數(shù)據(jù)集施敢,可以和上面的Memory Network base 模型做下對(duì)比實(shí)驗(yàn)周荐。
總結(jié)其優(yōu)缺點(diǎn):可以同時(shí)用SL和RL的訓(xùn)練方式訓(xùn)練,領(lǐng)域?qū)<倚枰峁┥倭繉?duì)話樣本僵娃,就可以自動(dòng)學(xué)習(xí)對(duì)話狀態(tài)( dialogue states)概作。但是缺點(diǎn)是很多模塊還是需要較多的人為的干預(yù),比如需要人為干預(yù)的SLU, DST, Database模塊默怨,制定動(dòng)作掩碼(action mask)讯榕,等等。
A network Based end To End trainable task Oriented dialogue system[5]
這篇論文是劍橋大學(xué)Dialogue System Group在16年5月發(fā)表的匙睹,如下圖愚屁,首先其模型中Intent Network可以理解為seq2seq的encoder部分,將用戶的輸入encode成一個(gè)vector z(t)痕檬。然后在Belief Trackers霎槐,這個(gè)也就是Dialogue State Tracking(DST),這里是輸入原對(duì)話輸出一個(gè)informable slot和requestable slot的概率分布梦谜,作用就是原來(lái)的作用丘跌,獲取到預(yù)先定好的知識(shí)圖譜中每個(gè)slot的分布,跟蹤對(duì)話的狀態(tài)唁桩。而后在Policy Network結(jié)合前面兩者加上從 數(shù)據(jù)庫(kù)查詢的相應(yīng)”知識(shí)“闭树,形成決策,輸出給Generation Network進(jìn)行文本生成荒澡。
這篇目前并沒(méi)有找到其代碼报辱,只是有論文作者的主頁(yè)是找到其數(shù)據(jù)集...
總結(jié)其優(yōu)缺點(diǎn):這篇論文在system中能較好的結(jié)合知識(shí)庫(kù),在項(xiàng)目只需要較少的人為干預(yù)即可仰猖,在其缺點(diǎn)在于我們需要在DST預(yù)定好領(lǐng)域先驗(yàn)知識(shí)中的slot value捏肢,而且在訓(xùn)練中在于DST是需要獨(dú)立的訓(xùn)練。
End To End task Completion neural dialogue systems[6]
這篇文章中結(jié)合之前一篇paper[7]提出的User Simulator來(lái)模用戶議程饥侵,來(lái)進(jìn)行訓(xùn)練鸵赫,可以說(shuō)形成一個(gè)較為完善的訓(xùn)練系統(tǒng)。在User Simulator輸出query給語(yǔ)意理解模塊(LU)作為輸入躏升,語(yǔ)意理解模塊(LU)是一個(gè)LSTM實(shí)現(xiàn)的辩棒,然后輸出語(yǔ)義幀,用流行的IOB(in-out-begin)格式用于表示槽標(biāo)簽膨疏。在DM決策之后輸出policy輸出結(jié)果一睁。
這篇paper開(kāi)源了其代碼和數(shù)據(jù),是純python無(wú)框架寫的佃却!
總結(jié)其優(yōu)缺點(diǎn):其優(yōu)點(diǎn)很明顯就是在訓(xùn)練的時(shí)候是端到端的者吁,同時(shí)User Simulator在一定程度上解決了end to end Task oriented dialogue systems訓(xùn)練數(shù)據(jù)難獲得的問(wèn)題。然后其劣勢(shì)和挑戰(zhàn)在于首先數(shù)據(jù)集不大饲帅,在訓(xùn)練的時(shí)候也較依賴于其特定的數(shù)據(jù)集复凳!
總結(jié)與討論:
提出我的幾個(gè)想法瘤泪,首先是在end to end 模型中,其實(shí)就是在想怎么把之前做的分模塊要分開(kāi)訓(xùn)練的多個(gè)模型有機(jī)的結(jié)合統(tǒng)一成一個(gè)新的模型育八,比較常見(jiàn)的是比如DM用RNN來(lái)做对途,更好的跟蹤狀態(tài),用基于模板或者基于生成式或者兩者結(jié)合的方式來(lái)生成對(duì)話等髓棋。
在訓(xùn)練方式方面实檀,RL算法在上面的論文用普遍都有用,也得到了非常不錯(cuò)的效果按声,這個(gè)是個(gè)很不錯(cuò)的方式膳犹,也是可以繼續(xù)提出創(chuàng)新點(diǎn)的地方。
最后在task oriented dialogue systems方面end to end的數(shù)據(jù)缺乏签则,在[7]提出的User Simulator 是一個(gè)比較不錯(cuò)的方式來(lái)模擬用戶訓(xùn)練镣奋,當(dāng)然在發(fā)展end to end Task oriented dialogue systems中,數(shù)據(jù)集還是個(gè)很大的問(wèn)題 怀愧。
在接下來(lái)的工作,我想第一是應(yīng)該是怎么才能用更少的領(lǐng)域先驗(yàn)知識(shí)來(lái)構(gòu)建模型余赢,另一個(gè)也應(yīng)該是怎么才能提高其領(lǐng)域遷移性的問(wèn)題芯义。
參考文獻(xiàn):
[1]:李林琳&趙世奇.對(duì)話系統(tǒng)任務(wù)綜述與基于POMDP的對(duì)話系統(tǒng). PaperWeekly.
[2]:Antoine Bordes and Jason Weston. Learning end-to-end goal-oriented dialog. arXiv preprint arXiv:1605.07683, 2016.
[3]:Jason D Williams and Geoffrey Zweig. End-to-end lstm-based dialog control optimized with supervised and reinforcement learning. arXiv preprint arXiv:1606.01269, 2016.
[4]:Williams J D, Asadi K, Zweig G. Hybrid Code Networks: practical and efficient end-to-en dialog control with supervised and reinforcement learning[J]. arXiv preprint arXiv:1702.03274, 2017.
[5]:Wen T H, Vandyke D, Mrksic N, et al. A network-based end-to-end trainable task-oriented dialogue system[J]. arXiv preprint arXiv:1604.04562, 2016.
[6]:Li, Xuijun, et al. "End-to-end task-completion neural dialogue systems."arXiv preprint arXiv:1703.01008(2017).
[7]:Li, Xiujun, et al. "A user simulator for task-completion dialogues."arXiv preprint arXiv:1612.05688(2016)
原文參考:https://zhuanlan.zhihu.com/p/27762254