洪 洲, 余承健
(廣州城市職業(yè)學(xué)院 教務(wù)處, 廣州 510408)
在人工智能發(fā)展時(shí)代,許多對(duì)話(huà)機(jī)器人產(chǎn)品逐漸融入了人們的生活。 如:阿里的天貓精靈、百度的小度和騰訊的小微等智能語(yǔ)音助理。 通過(guò)與這些智能對(duì)話(huà)機(jī)器人交互,人們能夠獲得更便捷的服務(wù)。 正是由于其廣泛的應(yīng)用前景,工業(yè)界和學(xué)術(shù)界均給予了高度重視和關(guān)注。
對(duì)話(huà)系統(tǒng)分為任務(wù)型對(duì)話(huà)系統(tǒng)和非任務(wù)型對(duì)話(huà)系統(tǒng)。 非任務(wù)型對(duì)話(huà)機(jī)器人又稱(chēng)閑聊機(jī)器人,在開(kāi)放領(lǐng)域內(nèi)實(shí)現(xiàn)盡可能多輪次對(duì)話(huà);任務(wù)型對(duì)話(huà)系統(tǒng)的研究方法主要有兩種:多模塊級(jí)聯(lián)方法和端到端的方法。 多模塊級(jí)聯(lián)方法又稱(chēng)為管道方法,各模塊功能獨(dú)立且易于理解,缺點(diǎn)是易導(dǎo)致誤差的積累。端到端方法可以將用戶(hù)的輸入直接輸入模型,進(jìn)而得到系統(tǒng)的輸出。 可以觀察到輸入的反饋,但可以用于訓(xùn)練的數(shù)據(jù)難以獲取,并且可維護(hù)性和解釋性較差。
本文聚焦于任務(wù)型對(duì)話(huà)系統(tǒng)的研究。 其系統(tǒng)主要模 塊 為: 自 然 語(yǔ) 言 理 解( Nature Language Understanding,NLU)、對(duì)話(huà)管理(Dialogue Manage,DM)、自然語(yǔ)言生成(Nature Language Generator,NLG)。 自然語(yǔ)言理解模塊對(duì)用戶(hù)輸入的文本進(jìn)行解析,通常有槽填充、意圖識(shí)別。 對(duì)話(huà)管理模塊的主要功能,是在多輪對(duì)話(huà)過(guò)程中,維護(hù)歷史信息和當(dāng)前的狀態(tài),并且生成下一輪對(duì)話(huà)的回復(fù)策略,同時(shí)也可與外部知識(shí)庫(kù)進(jìn)行交互。 自然語(yǔ)言生成模塊的主要功能是,根據(jù)對(duì)話(huà)策略模塊的結(jié)果及預(yù)先定好的規(guī)則,生成自然語(yǔ)言形式的回復(fù)。
對(duì)話(huà)管理在整個(gè)對(duì)話(huà)系統(tǒng)中占據(jù)重要地位,直接影響整個(gè)系統(tǒng)的性能。 本文從強(qiáng)化學(xué)習(xí)的角度出發(fā),提出一種結(jié)合規(guī)劃的雙延遲深度確定性策略梯度算法,來(lái)優(yōu)化對(duì)話(huà)策略,改善模型難以收斂的問(wèn)題。 在代理方面,針對(duì)TD3 算法只適合處理連續(xù)空間任務(wù)的特點(diǎn)提出了改進(jìn),使其能夠處理離散空間的數(shù)據(jù)。 在配置環(huán)境方面,借助經(jīng)典DDQ 模型的思想,將其與TD3 算法結(jié)合。 實(shí)驗(yàn)結(jié)果表明,本文提出的模型能夠更快的收斂,取得較好的實(shí)驗(yàn)結(jié)果。
任務(wù)型對(duì)話(huà)系統(tǒng)的對(duì)話(huà)策略主要任務(wù)是:根據(jù)當(dāng)前時(shí)刻的對(duì)話(huà)狀態(tài),在預(yù)先定義的動(dòng)作集中,選擇1 時(shí)刻的動(dòng)作。 對(duì)話(huà)策略直接決定當(dāng)前對(duì)話(huà)任務(wù)的優(yōu)劣,因此, 對(duì)話(huà)策略的設(shè)計(jì)及其建模過(guò)程一直都是研究的熱點(diǎn)和難點(diǎn)。 當(dāng)前,主流方法有基于規(guī)則的方法、端到端方法和強(qiáng)化學(xué)習(xí)方法。
基于規(guī)則的方法利用該領(lǐng)域的專(zhuān)家分析對(duì)話(huà)流程,并設(shè)定預(yù)定義的對(duì)話(huà)狀態(tài)及對(duì)該狀態(tài)的回復(fù)。最有代表性的方法就是有限狀態(tài)機(jī)和槽填充模型。 有限狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換和流程都是預(yù)先設(shè)計(jì)的,所以其流程可以有效地控制,而且結(jié)構(gòu)清晰。但是,這樣的狀態(tài)機(jī)無(wú)法移植到另一個(gè)領(lǐng)域。 對(duì)于槽填充模型而言,槽就是對(duì)話(huà)系統(tǒng)在特定任務(wù)中所需要獲取的特定信息。 如,地點(diǎn)、時(shí)間、天氣等。 對(duì)話(huà)系統(tǒng)通過(guò)當(dāng)前槽的狀態(tài)及其優(yōu)先級(jí),決定下一個(gè)動(dòng)作。 對(duì)話(huà)過(guò)程被建模成序列標(biāo)注,對(duì)話(huà)順序是不確定的,獲得的回答非常靈活。 但是,也可能產(chǎn)生狀態(tài)爆炸的情況。 基于規(guī)則的方法,雖能夠很好的控制對(duì)話(huà)的流程,卻嚴(yán)重依賴(lài)專(zhuān)家制定的領(lǐng)域知識(shí),同時(shí)很難遷移到新的領(lǐng)域。
端到端方法是隨著深度學(xué)習(xí)技術(shù)的突破發(fā)展而提出的。 使用端到端的訓(xùn)練模型,將一個(gè)域的序列映射到另一個(gè)域。 在某一時(shí)刻,對(duì)話(huà)管理根據(jù)上一步詞序列和一些結(jié)構(gòu)化的外部數(shù)據(jù)庫(kù),選擇概率最高的詞匯作為下一步的回答。 通常選擇的模型為編碼器-解碼器,減少了模塊化開(kāi)發(fā)的成本。 然而端到端的方法,也受限于對(duì)話(huà)數(shù)據(jù)集的獲取和標(biāo)注,無(wú)法及時(shí)對(duì)自身策略進(jìn)行調(diào)整和進(jìn)行在線(xiàn)學(xué)習(xí)。
將強(qiáng)化學(xué)習(xí)的思想應(yīng)用于對(duì)話(huà)策略的建模,是當(dāng)前的主流方法。 通過(guò)智能體與環(huán)境交互過(guò)程中的學(xué)習(xí),以獲得最大化的獎(jiǎng)勵(lì),其結(jié)構(gòu)如圖1 所示。
圖1 強(qiáng)化學(xué)習(xí)模型Fig.1 Reinforcement learning model
對(duì)話(huà)管理的過(guò)程可以看作一個(gè)馬爾科夫決策過(guò)程,通常被定義為五元組,,,,。 通過(guò)策略π 實(shí)現(xiàn)一個(gè)行為與狀態(tài)之間的映射,策略的取值可以是確定值,也可以是隨機(jī)值。 映射的動(dòng)作既可以通過(guò)一個(gè)連續(xù)分布函數(shù)取值,也可以是離散值。
強(qiáng)化學(xué)習(xí)的優(yōu)勢(shì):一是無(wú)須人工制定規(guī)則,且提高了泛化能力;二是可以充分利用狀態(tài)空間,解決了覆蓋率低的問(wèn)題。 近年來(lái),隨著深度學(xué)習(xí)的快速發(fā)展,學(xué)者們結(jié)合深度強(qiáng)化學(xué)習(xí)的方法用于建模對(duì)話(huà)策略,其算法性能在一些領(lǐng)域優(yōu)于人類(lèi)。 如:Li 等人通過(guò)與機(jī)器人的交互學(xué)習(xí)對(duì)話(huà)策略,構(gòu)建了一個(gè)用戶(hù)模擬器;基于DQN模型的算法在訂電影票的任務(wù)上比基于規(guī)則的方法正確率更高;Volodymyr等提出了BBQN 模型,使用辛普森采樣對(duì)狀態(tài)空間進(jìn)行探索,明顯提升了效率;Peng 等人為了解決訓(xùn)練強(qiáng)化學(xué)習(xí)的代理需要耗費(fèi)大量資源和時(shí)間問(wèn)題,引入用戶(hù)模擬器來(lái)產(chǎn)生大量用于訓(xùn)練的模擬數(shù)據(jù),提出了DDQ(Deep Dyna-Q)模型;Su 等人對(duì)DDQ 模型進(jìn)行了改進(jìn),引入RNN 鑒別器,用于區(qū)分真實(shí)的用戶(hù)經(jīng)驗(yàn)和生成的模擬經(jīng)驗(yàn),從而過(guò)濾掉世界模型生成的低質(zhì)量訓(xùn)練數(shù)據(jù),同時(shí)減少了訓(xùn)練過(guò)程中對(duì)于模擬數(shù)據(jù)的依賴(lài)。 從實(shí)驗(yàn)結(jié)果可見(jiàn),D3Q對(duì)話(huà)管理系統(tǒng)的魯棒性和泛化能力優(yōu)于DDQ 對(duì)話(huà)管理模型。
對(duì)話(huà)系統(tǒng)讓智能機(jī)器人能夠使用自然語(yǔ)言的方式與人類(lèi)溝通,其中任務(wù)型對(duì)話(huà)系統(tǒng)旨在高效溝通并且讓用戶(hù)獲取有價(jià)值的信息。 在這類(lèi)對(duì)話(huà)系統(tǒng)中,通常是由一個(gè)任務(wù)型對(duì)話(huà)策略,來(lái)提供語(yǔ)言上的行為決策。 近幾年,強(qiáng)化學(xué)習(xí)廣泛應(yīng)用在對(duì)話(huà)策略模型的學(xué)習(xí)上,即從基于語(yǔ)言的人機(jī)交互中訓(xùn)練對(duì)話(huà)策略模型。
本文提出一種基于深度強(qiáng)化學(xué)習(xí)的算法,來(lái)提高對(duì)話(huà)策略的學(xué)習(xí)效率,即結(jié)合規(guī)劃的TD3 算法。整體結(jié)構(gòu)由5 部分組成,各模塊功能如下:
(1)基于LSTM 的NLU 模塊,用于識(shí)別用戶(hù)的意圖和相匹配的語(yǔ)義槽;
(2)根據(jù)識(shí)別的結(jié)果,進(jìn)行對(duì)話(huà)狀態(tài)的跟蹤并生成對(duì)話(huà)狀態(tài)表述;
(3)對(duì)話(huà)策略學(xué)習(xí):根據(jù)對(duì)話(huà)狀態(tài)跟蹤的結(jié)果,選擇一個(gè)執(zhí)行的動(dòng)作;
(4)根據(jù)上一步選擇的動(dòng)作轉(zhuǎn)化為對(duì)應(yīng)的自然語(yǔ)言;
(5)世界模型:用于生成模擬的用戶(hù)行為和獎(jiǎng)勵(lì)。
本文中的訓(xùn)練是利用預(yù)先收集的數(shù)據(jù),采用熱啟動(dòng)的方式進(jìn)行的。 模型訓(xùn)練過(guò)程如圖2 所示,其實(shí)現(xiàn)步驟如下:
圖2 模型訓(xùn)練過(guò)程Fig.2 Model training process
(1)代理與用戶(hù)模擬器交互,利用真實(shí)對(duì)話(huà)數(shù)據(jù)改進(jìn)對(duì)話(huà)策略;
(2)使用真實(shí)的對(duì)話(huà)數(shù)據(jù)更新世界模型;
(3)將更新后的世界模型的模擬經(jīng)驗(yàn)用于改進(jìn)對(duì)話(huà)策略。
直接強(qiáng)化學(xué)習(xí)的目標(biāo),是讓代理使用用戶(hù)模擬器的真實(shí)對(duì)話(huà)數(shù)據(jù)優(yōu)化對(duì)話(huà)策略。 本文利用改進(jìn)的TD3 算法,根據(jù)用戶(hù)模擬器產(chǎn)生的對(duì)話(huà)狀態(tài),由相應(yīng)的策略選擇動(dòng)作, 用戶(hù)模擬器同時(shí)反饋給代理相應(yīng)的獎(jiǎng)勵(lì),此時(shí)對(duì)話(huà)狀態(tài)將更新為',最后將對(duì)話(huà)經(jīng)驗(yàn)存儲(chǔ)到預(yù)先設(shè)置的經(jīng)驗(yàn)回放池,繼續(xù)循環(huán)整個(gè)過(guò)程,直到結(jié)束對(duì)話(huà)。
本文中改進(jìn)的TD3 算法共有6 個(gè)網(wǎng)絡(luò)結(jié)構(gòu),如圖3 所示。 該算法采用兩個(gè)結(jié)構(gòu)完全相同的critic網(wǎng)絡(luò)評(píng)估值,選取較小值作為更新的目標(biāo)。 有效緩解了樣本噪聲對(duì)動(dòng)作價(jià)值估計(jì)的影響,以及不準(zhǔn)確估計(jì)值累加所導(dǎo)致的無(wú)法收斂情況。 TD3 算法對(duì)策略采用延時(shí)更新的方法,由于target 網(wǎng)絡(luò)與online網(wǎng)絡(luò)參數(shù)的更新不同步,則規(guī)定online 網(wǎng)絡(luò)更新次以后再更新target 網(wǎng)絡(luò),從而減少了誤差積累,并降低了方差。 TD3 算法采用了一種目標(biāo)策略的平滑正則化,在target 網(wǎng)絡(luò)的動(dòng)作估計(jì)中加入隨機(jī)噪聲,使得值函數(shù)的更新平滑。
圖3 TD3 算法模型Fig.3 TD3 algorithm model
在critic-online 網(wǎng)絡(luò)中,調(diào)節(jié)、的值來(lái)最小化均方誤差損失函數(shù),優(yōu)化目標(biāo)函數(shù)如下:
其中,為折扣因子,、和分別為crituonline 網(wǎng)絡(luò)和Actor-online 網(wǎng)絡(luò)的隨機(jī)參數(shù)。
原始TD3 算法用于處理連續(xù)空間的數(shù)據(jù),使用梯度求最優(yōu)值,如式(3)所示:
由于本文對(duì)話(huà)任務(wù)數(shù)據(jù)均為離散數(shù)據(jù),因此使用TD-error 代替梯度計(jì)算。 表示在當(dāng)前的環(huán)境中,如何選擇動(dòng)作可以獲得最大的獎(jiǎng)勵(lì)期望值,并將actor 網(wǎng)絡(luò)的輸出進(jìn)行softmax 計(jì)算,使用確定性策略,選擇一個(gè)具體的動(dòng)作值。 因此將式(3)改為如下形式:
其中,由式(1)可得, log(prob((s |θ)為選擇某一個(gè)動(dòng)作的概率值。 可通過(guò)軟更新機(jī)制更新參數(shù),如下所示:
最后,使用深度學(xué)習(xí)的batch 訓(xùn)練方式,迭代更新對(duì)話(huà)策略的參數(shù)。
在綜合規(guī)劃的步驟中,世界模型產(chǎn)生模擬的對(duì)話(huà)數(shù)據(jù),然后用來(lái)訓(xùn)練對(duì)話(huà)策略。 在訓(xùn)練本文的模型時(shí),參數(shù)是代理用于執(zhí)行規(guī)劃過(guò)程的次數(shù)。 假定世界模型能夠準(zhǔn)確的模擬用戶(hù)環(huán)境,即在一定程度上增大值來(lái)提升對(duì)話(huà)經(jīng)驗(yàn)策略。 用戶(hù)模擬器中得到的真實(shí)對(duì)話(huà)經(jīng)驗(yàn)記為D,世界模型產(chǎn)生的模擬經(jīng)驗(yàn)記為D。 雖然規(guī)劃和直接強(qiáng)化學(xué)習(xí)都使用改進(jìn)的TD3 算法,但是直接強(qiáng)化學(xué)習(xí)使用的是D數(shù)據(jù),規(guī)劃使用的是D數(shù)據(jù)。
世界模型利用真實(shí)的對(duì)話(huà)數(shù)據(jù)D來(lái)訓(xùn)練其模型參數(shù)。 在每一輪對(duì)話(huà)訓(xùn)練中,世界模型將上一輪的對(duì)話(huà)狀態(tài)和上一輪的代理行動(dòng)作為模型的輸入,得到用戶(hù)的回復(fù)動(dòng)作a、 獎(jiǎng)勵(lì)和一個(gè)表示對(duì)話(huà)是否結(jié)束的信號(hào)。 網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 世界模型結(jié)構(gòu)Fig.4 The world model architecture
其中,a、和的計(jì)算公式如下:
其中, (,) 表示拼接操作,得到的元組數(shù)據(jù)(,,,') 保存到D中,用于后續(xù)代理的訓(xùn)練。
本文使用的數(shù)據(jù)集已經(jīng)通過(guò)標(biāo)注,其中包括語(yǔ)義槽16 個(gè)、對(duì)話(huà)動(dòng)作11 個(gè)以及帶標(biāo)記的對(duì)話(huà)280個(gè),對(duì)話(huà)平均有11 輪,見(jiàn)表1。
表1 意圖和語(yǔ)義槽Tab.1 Intents and slots
(1)基于規(guī)則的模型:使用基于人工制定規(guī)則的對(duì)話(huà)策略;
(2)DQN 模型:基于DQN 算法實(shí)現(xiàn);
(3)A2C 模型:使用優(yōu)勢(shì)函數(shù)代替Critic 網(wǎng)絡(luò)中的原始回報(bào),作為衡量選取動(dòng)作值和所有動(dòng)作平均值好壞的指標(biāo);
(4)TD3 模型:即本文中提出的結(jié)合規(guī)劃改進(jìn)的TD3 算法,引入世界模型,并且綜合規(guī)劃步驟進(jìn)行學(xué)習(xí)。
實(shí)驗(yàn)中深度強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)的激活函數(shù)選擇tanh函數(shù)。折扣因子的值設(shè)為0.9,D與D的大小均為5 000。 規(guī)劃訓(xùn)練過(guò)程中,模擬對(duì)話(huà)的最大回合數(shù)為40。 本文所有實(shí)驗(yàn)使用100 輪對(duì)話(huà)的進(jìn)行預(yù)訓(xùn)練,即使用熱啟動(dòng)的方式。
主要評(píng)估指標(biāo)為成功率、平均回報(bào)、平均輪數(shù)。假定測(cè)試中所有完整的對(duì)話(huà)數(shù)目為,成功預(yù)定電影票的完整對(duì)話(huà)為,完整對(duì)話(huà)所獲得的總回報(bào)為,所有完整對(duì)話(huà)總對(duì)話(huà)輪數(shù)為。 則:
成功率用來(lái)衡量模型的主要性能,評(píng)估當(dāng)前的對(duì)話(huà)策略的優(yōu)劣;平均輪數(shù)和平均回報(bào)展示了系統(tǒng)的魯棒性,這兩個(gè)指標(biāo)表明模型所追求的目標(biāo),即在最小的輪次獲得最多的回報(bào)。
本文中TD3 模型需要學(xué)習(xí)結(jié)構(gòu)相同,但是參數(shù)不同的神經(jīng)網(wǎng)絡(luò)有actor 網(wǎng)絡(luò)和critic 網(wǎng)絡(luò)。 實(shí)驗(yàn)設(shè)置兩個(gè)網(wǎng)絡(luò)的參數(shù)不需同步更新,critic 網(wǎng)絡(luò)的打分,決定了actor 網(wǎng)絡(luò)的動(dòng)作。 因此,actor 網(wǎng)絡(luò)的參數(shù)更新具有滯后性。 DQN 模型只需要學(xué)習(xí)一種神經(jīng)網(wǎng)絡(luò)參數(shù),其效果要優(yōu)于A2C 模型。 而本文的TD3 模型要優(yōu)于A2C 模型,驗(yàn)證了本文提出模型能更快的收斂,提高對(duì)話(huà)系統(tǒng)的性能。
在綜合規(guī)劃的步驟中,世界模型可以用于減少代理對(duì)用戶(hù)模擬器的依賴(lài)和負(fù)面影響。對(duì)于不同的值,使得代理的訓(xùn)練結(jié)果不一致。 世界模型的參數(shù)在整個(gè)實(shí)驗(yàn)的訓(xùn)練過(guò)程中也是需要學(xué)習(xí)的。 因此,實(shí)驗(yàn)首要任務(wù)是尋找最佳值。 通過(guò)設(shè)置不同的值進(jìn)行訓(xùn)練得出:當(dāng)10 時(shí),世界模型生成的模擬經(jīng)驗(yàn)效果較好,模型訓(xùn)練效果最佳。
表2 展示了不同模型在10輪對(duì)話(huà)的最終測(cè)試結(jié)果。 通過(guò)分析可以得出:結(jié)合規(guī)劃的TD3 模型從策略梯度的角度建模對(duì)話(huà)管理系統(tǒng),提高了約20%的對(duì)話(huà)系統(tǒng)性能; 成功率和平均回報(bào)稍?xún)?yōu)于DQN模型所代表的值函數(shù)模型;所使用的平均輪數(shù)持平。
表2 不同模型在10K 輪對(duì)話(huà)的最終表現(xiàn)Tab.2 The final performance of different models in 10K conversations
綜上所述,可以歸納出模型的優(yōu)點(diǎn):本文提出的模型適合于規(guī)模較大的離散的對(duì)話(huà)任務(wù);通過(guò)經(jīng)驗(yàn)回放和用戶(hù)模型的引入,帶來(lái)比較好的對(duì)話(huà)策略學(xué)習(xí)效果,模型易于收斂。
本文結(jié)合規(guī)劃的TD3 算法在模型優(yōu)化和環(huán)境建模做出了改進(jìn);在代理設(shè)置上,使用基于策略梯度的方法建模對(duì)話(huà)管理,并且使用經(jīng)驗(yàn)回放和孿生網(wǎng)絡(luò)結(jié)構(gòu),加快了模型的收斂,提高了對(duì)話(huà)性能;在環(huán)境設(shè)置上,引入了世界模型,減少了用戶(hù)模擬器在代理訓(xùn)練的負(fù)面影響。 當(dāng)然,本文在策略梯度函數(shù)的設(shè)置上還有待進(jìn)一步的優(yōu)化,用戶(hù)模擬器在功能上可以增加真人的對(duì)話(huà)數(shù)據(jù)收集等。