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