自圖靈測(cè)試被提出以來(lái),一代代研究者提出了各種方法試圖通過(guò)測(cè)試,但我們目前距離完成任務(wù)還有很長(zhǎng)一段路要走。在本論文中,我們受限簡(jiǎn)要回顧一下過(guò)去幾十年里人們提出的各種系統(tǒng)。具體來(lái)說(shuō),這其中包括三種對(duì)話系統(tǒng):開(kāi)放領(lǐng)域聊天系統(tǒng)、目標(biāo)導(dǎo)向的框架系統(tǒng)以及問(wèn)答交互(QA)對(duì)話系統(tǒng)。我們會(huì)討論它們的成功應(yīng)用、優(yōu)缺點(diǎn)以及為什么它們?nèi)匀粺o(wú)法通過(guò)圖靈測(cè)試。本論文將著重討論如何改進(jìn)聊天系統(tǒng)和交互式問(wèn)答(QA)系統(tǒng)。
圖1.1使用IBM模型消息與回復(fù)之間的字對(duì)齊。圖片來(lái)自MichelGalley。
第二章背景
2.1序列到序列生成
SEQ2SEQ模型可以被視為一個(gè)用輸入內(nèi)容生成目標(biāo)句的基礎(chǔ)框架,適用于多種自然語(yǔ)言生成任務(wù),例如利用給定的英文句子生成法語(yǔ)句子的機(jī)器翻譯;通過(guò)生成響應(yīng)功能在接收到源信息時(shí)生成響應(yīng);在問(wèn)答任務(wù)中針對(duì)問(wèn)題做出回答;或是對(duì)一段文檔生成總結(jié)性短句等等。
本段將介紹語(yǔ)言模型基礎(chǔ),循環(huán)神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM),它們被視為SEQ2SEQ模型的基礎(chǔ)。隨后,我們將詳細(xì)解讀SEQ2SEQ模型的基礎(chǔ)。最后,我們將討論不同SEQ2SEQ模型的算法,如注意力(attention)機(jī)制。
2.2記憶網(wǎng)絡(luò)
記憶網(wǎng)絡(luò)(Westonetal.,2015;Sukhbaataretal.,2015)是一類(lèi)神經(jīng)網(wǎng)絡(luò)模型,可以通過(guò)操作內(nèi)存中的內(nèi)容(存儲(chǔ)、取回、過(guò)濾和重用)來(lái)進(jìn)行自然語(yǔ)言推理。記憶網(wǎng)絡(luò)中的存儲(chǔ)器部分可以嵌入長(zhǎng)期記憶(例如,關(guān)于真實(shí)世界的常識(shí))和短期上下文(例如,最近的幾段對(duì)話)。記憶網(wǎng)絡(luò)已被成功地應(yīng)用于很多自然語(yǔ)言任務(wù)中了,例如問(wèn)答系統(tǒng)(Bordesetal.,2014;Westonetal.,2016),語(yǔ)言建模(Sukhbaataretal.,2015;Hilletal.,2016)以及對(duì)話(Dogeetal.,2016;Bordes&Weston,2017)。
2.3策略梯度方法
策略梯度法(Aleksandrovetal.,1968;Williams,1992)是一類(lèi)強(qiáng)化學(xué)習(xí)模型,通過(guò)使用梯度下降預(yù)測(cè)獎(jiǎng)勵(lì)的參數(shù)化策略來(lái)學(xué)習(xí)參數(shù)。與其他強(qiáng)化學(xué)習(xí)模型(如Q學(xué)習(xí)模型)比較而言,策略梯度方法不會(huì)受到如缺乏價(jià)值函數(shù)等方面的問(wèn)題(因?yàn)樗恍枰鞔_估算價(jià)值函數(shù)),或由于高維空間連續(xù)狀態(tài)或動(dòng)作導(dǎo)致難以控制。
第三章用交互信息避免泛化回復(fù)
當(dāng)我們將SEQ2SEQ模型應(yīng)用與生成回復(fù)的時(shí)候,一個(gè)嚴(yán)重的問(wèn)題脫穎而出:神經(jīng)對(duì)話模型總是會(huì)傾向于生成無(wú)意義的回復(fù),例如「Idon'tknow」、「Idon'tknowwhatyouaretalkingabout」(Serbanetal.,2015;Vinyals&Le,2015)。從表3.1中我們可以看出,很多排名靠前的回復(fù)是泛化的。那些看起來(lái)更加有意義、更有針對(duì)性的回復(fù)可以在非最佳列表中找到,但是排名非??亢?。這種現(xiàn)象是因?yàn)橥ㄓ眯曰貜?fù)如Idon'tknow在對(duì)話數(shù)據(jù)集中相對(duì)較高的頻率。MLE(最大似然估計(jì))目標(biāo)函數(shù)對(duì)源到目標(biāo)的單向依賴(lài)性進(jìn)行了建模,由于無(wú)意義回復(fù)沒(méi)有意義,有意義回復(fù)多種多樣,系統(tǒng)總會(huì)傾向于生成這些無(wú)意義的回復(fù)。直觀上,似乎不僅要考慮回復(fù)與信息的相關(guān)性,也需要考慮傳遞的信息是否具有意義:如果回答是「Idon'tknow」,我們就難以猜測(cè)對(duì)話者開(kāi)始詢(xún)問(wèn)的是什么。
我們建議通過(guò)最大互信息(MaximumMutualInformation,MMI),作為測(cè)量輸入和輸出之間的相互依賴(lài)性的優(yōu)化目標(biāo)來(lái)捕獲這種直覺(jué),作為傳統(tǒng)MLE目標(biāo)函數(shù)中源到目標(biāo)單向依賴(lài)性的反向。我們提出了使用MMI作為目標(biāo)函數(shù)神經(jīng)生成模型的實(shí)際訓(xùn)練和解碼策略。我們證明了使用MMI可以顯著減少泛化回復(fù)產(chǎn)生的幾率,在BLEU和人類(lèi)評(píng)測(cè)的結(jié)果中得出了顯著提升性能的結(jié)果。
表3.1從OpenSubtitles數(shù)據(jù)集2000萬(wàn)對(duì)話配對(duì)中訓(xùn)練的4層SEQ2SEQ神經(jīng)模型生成的回復(fù)。解碼實(shí)現(xiàn)的Beamsize被設(shè)為200。最大概率的回復(fù)選項(xiàng)為N-best列表中平均可能性對(duì)數(shù)似然的最高概率。更低的概率回復(fù)是手動(dòng)選擇的。
表3.4:在Open-Subtitles數(shù)據(jù)集上SEQ2SEQ基線和MMI-antiLM模型的對(duì)比。
第四章解決說(shuō)話者一致性問(wèn)題
目前聊天系統(tǒng)的一個(gè)嚴(yán)重的問(wèn)題是缺少說(shuō)話者一致性。這是由于訓(xùn)練集中包含了不同的人的談話,而且一個(gè)解碼模型總是選擇最大似然的應(yīng)答,從而使輸出變得非常的混亂且不一致。
在這一章中,我們討論了應(yīng)對(duì)不一致問(wèn)題的方法以及如何為數(shù)據(jù)驅(qū)動(dòng)的系統(tǒng)賦予合乎邏輯的「人格角色」(persona)以模仿類(lèi)人的行為,無(wú)論是個(gè)人助理,個(gè)性化的「阿凡達(dá)」智能體,亦或是游戲角色。為了這個(gè)目的,我們將把persona定義為一個(gè)人工智能體在對(duì)話交流中所扮演或表現(xiàn)出來(lái)的一種特征。persona可以看成身份要素(背景事實(shí)或用戶(hù)外形)、語(yǔ)言行為和交互方式的混合物。persona是有適應(yīng)性的,由于智能體在面對(duì)不同的人類(lèi)談話者的時(shí)候需要按交互的需求表現(xiàn)不同的側(cè)面。
表5.1:左列:使用SEQ2SEQ模型和OpenSubtitles數(shù)據(jù)集訓(xùn)練的兩個(gè)智能體之間的對(duì)話模擬。第一輪(指標(biāo)1)是由作者輸入的,然后兩個(gè)智能體輪流應(yīng)答,一個(gè)智能體的輸入將作為另一個(gè)的在前生成輪。右列:使用我們提出的強(qiáng)化學(xué)習(xí)模型的對(duì)話模擬。新的模型擁有更具前瞻性的言辭(諸如「你為什么要問(wèn)這個(gè)問(wèn)題」、「我和你一起去」),在掉入對(duì)話黑洞之前能進(jìn)行更持久的對(duì)話。
為了應(yīng)對(duì)這些挑戰(zhàn),我們需要一個(gè)擁有以下能力的對(duì)話框架:
(1)更好的獎(jiǎng)勵(lì)函數(shù);
(2)對(duì)生成的某一句話的長(zhǎng)期影響進(jìn)行建模。
為了達(dá)到這些目的,我們利用了強(qiáng)化學(xué)習(xí),其在MDP和POMDP對(duì)話系統(tǒng)中早已被廣泛應(yīng)用。我們提出了神經(jīng)網(wǎng)絡(luò)強(qiáng)化學(xué)習(xí)生成方法,可以?xún)?yōu)化長(zhǎng)期的獎(jiǎng)勵(lì)。我們的模型使用了編碼器-解碼器架構(gòu)作為主干,讓兩個(gè)機(jī)器人模擬對(duì)話。這樣的話,通過(guò)優(yōu)化獎(jiǎng)勵(lì)函數(shù),探索可能行為的空間。我們認(rèn)為針對(duì)對(duì)話好的獎(jiǎng)勵(lì)函數(shù)應(yīng)該有如下特點(diǎn):好的談話是具備前瞻性或交互性(一輪帶動(dòng)下一輪對(duì)話)、提供有用以及合乎邏輯的信息。我們可以通過(guò)這些方面定義獎(jiǎng)勵(lì)函數(shù),從而通過(guò)獎(jiǎng)勵(lì)函數(shù)來(lái)優(yōu)化編碼器-解碼器模型。
在訓(xùn)練過(guò)程中,我們使用隨機(jī)梯度下降的更新策略,借用了YoshuaBengio在09年提出的課程學(xué)習(xí)(Curriculumlearning)的策略,逐漸增加對(duì)話模擬的輪數(shù)。這樣訓(xùn)練的復(fù)雜度逐漸增加。
實(shí)驗(yàn)結(jié)果(表5.1中右側(cè)的樣本結(jié)果)表明我們的方法產(chǎn)生了更持久的對(duì)話,并且相比使用MLE目標(biāo)訓(xùn)練的標(biāo)準(zhǔn)SEQ2SEQ模型,能生成更具交互性的應(yīng)答。
兩個(gè)對(duì)話機(jī)器人之間的對(duì)話模擬
模擬兩個(gè)機(jī)器人輪流對(duì)話的過(guò)程是這樣的,在一開(kāi)始,從訓(xùn)練集中隨意找到一句話作為輸入給第一個(gè)機(jī)器人,這個(gè)代理通過(guò)編碼器網(wǎng)絡(luò)把這個(gè)輸入編碼成一個(gè)隱層向量,然后解碼器來(lái)生成回答。之后,第二個(gè)機(jī)器人把之前那個(gè)機(jī)器人輸出的響應(yīng)和對(duì)話歷史結(jié)合起來(lái),重新通過(guò)編碼器網(wǎng)絡(luò)編碼得到一個(gè)隱層向量(相當(dāng)于更新了對(duì)話的狀態(tài)),然后通過(guò)解碼器網(wǎng)絡(luò)生成一個(gè)新的回復(fù),并傳給第一個(gè)機(jī)器人。這個(gè)過(guò)程不斷被重復(fù)下去: