999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于近端策略優化與對抗學習的對話生成*

2020-10-10 02:39:50游進國丁家滿
計算機工程與科學 2020年9期
關鍵詞:單詞策略模型

蔡 鉞,游進國,2,丁家滿

(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.云南省計算機技術應用重點實驗室,云南 昆明 650500)

1 引言

對話系統分為特定領域的對話系統與開放領域的對話系統[1],前者用于完成特定的任務,后者用于無固定主題的閑聊和娛樂。目前,開放領域對話系統得到了較快的發展并且在工業界也得到了較好的應用,比如微軟小冰、小愛同學等聊天機器人已經慢慢地融入了我們的生活。開放領域對話系統的實現可以分為檢索式方法和生成式方法,檢索式方法通過查詢對話語料庫選擇最佳回復,生成式方法通過學習輸入的對話與生成回復之間的對應關系,使系統可以通過輸入的對話自動生成有意義的回復。對話生成的研究也就是開放領域對話系統中生成式方法的研究。

序列到序列Seq2Seq(Sequence-to-Sequence)[2]模型首先在機器翻譯領域[3]取得了很大的成功,之后被用于對話生成[4]。它通常由2個循環神經網絡RNN(Recurrent Neural Network)組成,可以端對端地訓練對話生成。Bahdanau等[5]將注意力機制引入Seq2Seq模型之后,改進了查詢-響應之間的相關性,使對話生成的質量進一步提高。但是,在開放領域的對話生成方向沒有好的評估方法來判斷生成對話的好壞,僅僅使用極大似然估計MLE(Maximum Likelihood Estimation)作為損失函數訓練Seq2Seq模型時,容易出現對話回復中部分單詞生成正確,總體對話卻很差的情況,并且會出現“安全響應(Safe Response)[6]”的問題,即容易產生“我不知道”等沒有信息的對話。盡管如此,使用MLE訓練帶有注意力機制的Seq2Seq模型還是目前對話生成最常用的方法。

之后的工作中,研究人員對極大似然估計算法提出了很多的改進[7,8],比如引入強化學習RL(Reinforcement Learning)的概念,從連貫性、信息流和輕松回復等多個方面自定義評估方法來判斷對話生成的好壞,從而得到對話的獎勵,進而使用策略梯度(Policy Gradient)[9]的方法將得到的獎勵用于指導對話的生成。但是,自定義的評估方法只能針對性地解決部分問題,依舊不能整體地判斷對話的好壞。

對抗生成網絡GAN(Generative Adversarial Nets)[10]可以使用判別模型來評估整個對話的好壞,從而解決模型評估的問題。它最初設計用于輸出可微分值,可以較好地捕獲連續分布。但是,離散語言的生成對它來說是具有挑戰性的,因為GAN在生成模型生成詞匯時選擇概率最大的一個詞匯作為輸出,在生成模型的參數進行微小更新的情況下,輸出的詞匯可能不會發生改變,導致它在對話生成時會面臨反向傳播不可微分的情況,生成模型與判別模型不能作為一個整體進行訓練。

Adver-REGS(Adversarial Reward for Every Generation Step)[11]模型采用了seqGAN(sequence Generative Adversarial Nets)[12]的思想,利用策略梯度的方法來解決GAN訓練對話生成時導致的反向傳播不可微分的問題,將GAN應用到了對話生成的領域,大大地提高了對話生成的質量。在對抗訓練的過程中,判別模型只能得到完整對話的獎勵,為了得到好的對話中間狀態的獎勵,需要使用蒙特卡羅采樣MC-Search(Monte Carlo Search)[13]的方法,這是一個非常耗時的過程。但是,策略梯度的方法對每次獎勵的利用率很低,這就導致了使用策略梯度訓練GAN的效率很低,并且使用策略梯度訓練時還存在樣本方差大、模型訓練困難并且容易收斂到局部最優解的問題,影響了對話生成的質量。

近端策略優化PPO(Proximal Policy Optimization)[14]算法是一種異策略(Off Policy)的RL方法。PPO算法已經在視頻游戲與無人駕駛等方面得到了較好的應用,但未見用于對話的生成。由于目前對話生成的方法會面臨判別模型返回獎勵利用率低、模型訓練困難、容易收斂到局部最優解等問題,而PPO算法不僅可以解決一般策略梯度方法數據樣本利用率低與魯棒性差的問題,而且對比于異策略學習方法信賴域策略優化(Trust Region Policy Optimization)[15]也具有更好的樣本復雜度。因此,本文提出使用PPO算法來訓練GAN。

本文提出對話生成算法PPO_GAN,使用PPO算法來訓練GAN。首先,處理了GAN在對話生成時導致的反向傳播不可微分的情況,利用判別模型返回的獎勵來指導生成模型生成對話,解決了僅使用極大似然估計訓練對話生成時面臨的對話質量評估的問題。其次,相比于Adver-REGS模型,本文算法不僅通過優化帶有懲罰項的代理目標函數來得到生成模型參數更新的方向和步長,保證了生成模型的訓練是單調非減的,而且通過生成模型自適應的多次迭代,提高了判別模型返回獎勵的利用率。

2 PPO_GAN對話生成算法

本文模型使用GAN的結構,包含一個生成模型和一個判別模型,生成模型的目標是生成更接近人類的對話,判別模型的目標是盡可能地區分真實的對話和生成模型生成的對話。為了在對抗訓練之前,使生成模型具有一定生成對話的能力,判別模型具有一定分辨對話的能力,本文對生成模型和判別模型進行了預訓練。在對抗訓練的過程中,通過PPO算法使判別模型得到的獎勵能重復地被用于指導生成模型的訓練,同時為了得到對話中間狀態的獎勵,使用了MC-Search的方法,并且為了防止在對抗訓練的過程中出現獎勵中斷的問題,使用了強迫指導[16]的方法。在經過對抗訓練之后,生成模型可以生成足夠真實的對話使判別模型無法分辨。

Figure 1 Diagram of generate model structure 圖1 生成模型結構圖

本文將生成模型用G表示,判別模型用D表示。輸入對話用h表示,h={h1,h2,…,hm},其中,ht表示輸入對話的第t個單詞。真實的對話回復用x表示,x={x1,x2,…,xn},其中,xt表示真實回復的第t個單詞,x1:t表示真實回復的第1到第t個單詞。生成模型生成的對話回復用c表示,c={c1,c2,…,cw},其中,ct表示生成回復的第t個單詞,c1:t表示生成回復的第1到第t個單詞。使用(x,h)表示真實的對話,(c,h)表示生成模型生成的對話。S1表示所有真實的對話集合,S2表示所有生成的對話集合。判別模型得到的獎勵用R表示。

2.1 預訓練生成模型

生成模型的目標是最大化每個輸出是真實回復的概率,使用MLE作為損失函數預訓練生成模型,如式(1)所示:

(1)

其中,θ表示生成模型的參數,pθ(xt|x1:t-1,h)表示在給定輸入對話h和真實回復單詞(x1,…,xt-1)的情況下,產生的下一個單詞是真實回復單詞的概率。

如圖1中解碼器部分的虛線所示,訓練過程中和測試過程中解碼器的輸入是不一樣的,因為在訓練的過程中知道真實的對話回復x,所以在解碼的過程中可以將前一步真實的回復單詞xt-1作為輸入。但是,在測試時不知道真實的回復,只能將前一步的輸出ct-1作為輸入。如果前一步的輸出很差就會影響到接下來生成的回復,也就是會造成“暴露偏差(Exposure Bias )[17]”的問題,影響對話生成的質量。

2.2 預訓練判別模型

判別模型的結構如圖2所示,是一個層次神經網絡[18]的結構。首先,使用一個RNN將對話的輸入h進行編碼,另一個RNN將真實的回復x或者生成的回復c進行編碼,將RNN最后一個時刻的隱藏狀態作為句子的編碼向量,得到句子層面的信息;然后,將句子的編碼作為下一層RNN的輸入向量,第2層RNN的隱藏狀態就包含了整個對話層面的信息;最后,加入一個二分類的softmax層進行分類。

Figure 2 Diagram of discriminant model structure圖2 判別模型結構圖

使用交叉熵作為損失函數預訓練判別模型,如式(2)所示:

(2)

2.3 對抗訓練

由于GAN在處理離散數據時,判別模型得到的微分值不可以通過反向傳播傳到生成模型,因此不能直接整體地訓練生成模型和判別模型,而是將對話的生成看作是一個RL的問題,由判別模型得到獎勵來指導生成模型生成對話。

2.3.1 生成對話的獎勵

判別模型只能得到一個完整句子的獎勵,直接使用判別模型計算獎勵時,生成回復中的每個單詞都會得到相同的獎勵。但是,對話回復中可能部分單詞的生成是好的,部分單詞的生成是差的,因此需要采用MC-Search的方法計算每個單詞對應的獎勵。

使用MC-Search生成對話的過程如圖3所示。在已知前t個單詞c1:t的情況下,繼續從模型分布中完成整句話的生成,一共生成N句話,c1~cN。在計算獎勵時,這N句話獎勵的平均值即為第t個單詞的獎勵。重復此過程,直到得到所有單詞的獎勵。由此可見,獎勵計算的過程是非常耗時的。

Figure 3 Using MC-Search to generate dialogue圖3 使用MC-Search生成對話

在使用判別模型計算獎勵時,將生成的對話作為判別模型的輸入,判別模型判斷生成的回復為真實回復的概率即為獎勵的值,獎勵的值越大表示生成模型生成的對話的質量越高。單詞獎勵的計算如式(3)所示:

(3)

2.3.2 使用PPO算法訓練生成模型

將對話的生成看作一個RL的問題。RL的目的就是在狀態s下通過策略π得到要執行的動作a,使執行動作a可以獲得最大的期望獎勵。其中,策略π就是生成模型,狀態s就是給定輸入的對話和已經生成的序列{c1,…,ct-1},要執行的動作a就是將要產生的下一個單詞ct,動作a的獎勵是通過判別模型得到的。

使用PPO算法訓練生成模型的過程如圖4所示。首先,將對話輸入生成模型生成對話的回復;其次,將對話的輸入與生成的回復輸入判別模型得到獎勵;最后,使用判別模型得到的獎勵指導生成模型更新參數,提高生成模型生成對話的質量。其中,為得到每個單詞的獎勵使用了MC-Search的方法。

Figure 4 Adversarial training generation model圖4 對抗訓練生成模型

PPO算法是一個異策略的RL算法,用于生成模型迭代訓練的策略π和用于生成回復得到獎勵的策略πold是不同的,使用MC-Search得到的獎勵可以被重復用于生成模型的迭代訓練,從而提高模型訓練的效率。在使用異策略的RL算法時,當策略π和策略πold產生的單詞差距很大時,會導致策略πold得到的獎勵不再適用于指導策略π的訓練,PPO算法增加了限制條件以確保策略π和策略πold產生的單詞差距在一定的范圍內。

使用PPO算法訓練生成模型的損失函數如式(4)所示:

clip(mt(θ),1-ε,1+ε)Rt)

(4)

其中,

(5)

Rt=R(ct,h)

(6)

式(4)中,θ表示生成模型的參數,即策略π的參數;mt(θ)是生成模型的一個代理目標函數,表示在訓練第t個單詞時模型參數的變化率;Rt表示第t個單詞的獎勵;clip(mt(θ),1-ε,1+ε)保證了模型參數的變化率在(1-ε,1+ε)之間,當mt(θ)的值小于1-ε時就為1-ε,當mt(θ)的值大于1+ε時就為1+ε。函數在mt(θ)Rt與clip(mt(θ,1-ε,1+ε))之間取較小的值,這樣確保了得到高的獎勵時,mt(θ)的值增大但是不會超過1+ε,得到低的獎勵時,mt(θ)的值減少但是不會小于1-ε。這樣就可以使生成模型自適應地多次迭代訓練。式(5)中,pθ(ct|c1:t-1,h)是指在給定輸入的對話h和已生成的單詞(c1,…,ct-1)的情況下,下一個生成的單詞為ct的概率;θ為策略π的參數;即為正在迭代的生成模型的參數;θold為策略πold的參數,即為上一次對抗訓練的生成模型的參數;(c1,…,ct)是由策略πold生成的。式(6)中,R(ct,h)是指使用策略πold生成單詞ct的獎勵。

在使用PPO算法訓練GAN的對話生成模型時,mt(θ)是生成模型的一個代理目標函數,通過增加正則項保證了模型參數的變化率在一定的范圍內,這樣mt(θ)可以近似生成模型的目標函數pθ(ct|c1:t-1,h),通過優化帶有正則項的代理目標函數mt(θ)來得到生成模型參數更新的方向和步長。同時,由于mt(θ)是生成模型目標函數的一個下界,這樣就保證了生成模型參數的更新是單調非減的,可以更好地訓練模型。

2.3.3 使用強迫指導訓練生成模型

在對抗訓練的過程中,可能出現判別模型訓練得足夠好而生成模型訓練不夠的情況。在這種情況下,判別模型可以輕易地分辨出生成模型生成的回復,而生成模型不能生成足夠真實的回復來“欺騙”判別模型,會導致判別模型總是給出低的獎勵,而生成模型不知道得到高的獎勵的迭代方向。強迫指導可用于避免這種情況的發生,強迫指導的訓練方法與預訓練生成模型時相同,使用數據集中的真實對話,將MLE作為損失函數訓練生成模型。這樣可以保證生成模型在對抗訓練的過程中能有真實的數據集指導訓練。

2.4 算法描述

算法1PPO_GAN

輸入:訓練時真實的對話數據集(x,h),測試時真實的對話x。

輸出:測試時生成的回復c。

步驟1Gθ←L(θ);//預訓練生成模型Gθ

步驟2(c,h)←Gθ;/*使用生成模型Gθ生成對話(c,h)*/

步驟4θold←θ;//保存生成模型參數θold

步驟5repeat:

步驟6forD-stepsdo

步驟7(c,h)←Gθold;/*使用生成模型Gθold生成對話(c,h)*/

步驟9endfor

步驟10forG-stepsdo

步驟11(c,h)←Gθold;

步驟12fort=1towdo

步驟13functionR(ct,h);/*計算生成單詞ct的獎勵*/

步驟14endfor

步驟15forPPO-stepsdo

步驟16Gθ←Lppo(θ);/*通過最大化損失Lppo(θ)訓練生成模型Gθ*/

步驟17endfor

步驟18forTeacher-stepsdo

步驟19Gθ←L(θ);/*通過最大化損失L(θ)訓練生成模型*/

步驟20endfor

步驟21θold←θ;

步驟22endfor

步驟23 untilPPO_GAN converges

3 實驗

3.1 實驗環境

本文實驗采用Python 3.5.2編寫代碼,并使用了TensorFlow工具。實驗操作系統采用Windows 7,實驗硬件環境:Intel Core i5處理器,CPU四核 3.30 GHz。內存為8 GB。

本文使用的數據集為一個英文電影字幕的數據集OpenSubtitles[19]。去除數據集中對話長度小于5個單詞和大于50個單詞的對話,處理之后的數據集大約150 MB,一共包括約270萬對單輪對話,將其中的1萬對單輪對話劃分為測試數據集。本文對數據進行了分塊處理,將數據集根據對話的長度分為了4個部分,這樣減少了訓練過程中RNN傳播的長度,提高了模型訓練的效率。

在生成模型部分,Seq2Seq模型的編碼和解碼都是由門控循環單元GRU(Gated Recurrent Unit)[20]構成的,并且在編碼和解碼之間添加了注意力機制。GRU緩解了RNN梯度消失的問題,在訓練的過程中為了得到更好的效果,使用了Adam[21]優化器代替隨機梯度下降,以自適應每個參數的學習率,也使用了小批量訓練的方法來平衡訓練的精確度和速度,以及使用梯度裁剪的方法來防止梯度爆炸。在測試的過程中,本文使用了集束搜索,考慮每一步的前k個回復,以得到更佳的結果,增添了對話的多樣性,改善了產生無聊回復的問題。

在判別模型部分,層次神經網絡中的3個RNN都是使用2層的長短期記憶LSTM(Long Short-Term Memory)[22]網絡構成的,同樣緩解了RNN梯度消失的問題。在訓練過程中,同樣也使用了小批量訓練、Adam優化器以及梯度裁剪的方法。

3.2 對比基線方法

本文使用的對比基線方法為開放領域對話生成的經典算法——極大似然估計以及使用策略梯度訓練GAN的Adver-REGS算法。極大似然估計是開放領域單輪對話生成最常用的算法。Adver-REGS算法將GAN引入到了開放領域的對話生成,并取得了較好的效果。

3.3 實驗評估指標

本文對模型訓練的效率和對話生成的質量都進行了評估。通過模型訓練時損失的收斂速度評估模型訓練的效率,并且通過困惑度、無聊響應出現的頻率以及對話生成的示例評估對話生成的質量。

困惑度(Perplexity)[23]是常常被用于評估生成對話語言質量的評估指標,它可以用來衡量一句話出現的概率。生成對話的文法結構越正確,語言質量越高,困惑度的值就越小,則模型訓練得越好。困惑度如式(7)所示:

(7)

其中,w表示生成的對話回復中的單詞個數,pθ(ct|c1:t-1)表示生成模型在已知生成的單詞(c1,…,ct-1)的情況下,下一個生成的單詞為ct的概率。

安全響應的問題是影響對話質量的一個重要因素,生成模型傾向于生成語言質量高,但是沒有信息的對話。當這類對話生成過多的時候,會讓對話的有趣性、對話的意義以及對話的質量都有所下降。為了評估安全響應的問題,本文計算了生成無聊對話的頻率,將“i don’t know”“i’m sorry.”定義為無聊回復,無聊回復的頻率越高,代表安全響應的問題越嚴重。

3.4 實驗超參數設置

在對抗訓練的過程中,超參數的選取對模型的訓練是非常重要的。本文將詞匯量的大小設置為35 000。GRU設置為2層,每層擁有512個神經元。LSTM設置為2層,每層擁有512個神經元。生成模型的批量大小設置為128,判別模型的批量大小設置為256。MC-Search中N的值取5。集束搜索的k值設為5。

實驗1極大似然估計算法訓練對話生成。在帶有注意力機制的Seq2Seq模型中采用極大似然估計算法迭代訓練了52 500次。

實驗2對比Adver-REGS模型。生成模型的預訓練迭代了50 000次,判別模型的預訓練迭代了30 000次。GAN對抗訓練的次數為1 250次,其中,本文依照Adver-REGS[9]模型中的設置,G-steps=1,D-steps=5,Teacher-steps=1。

實驗3本文提出的PPO_GAN模型。生成模型與判別模型的預訓練迭代次數同實驗2。GAN對抗訓練次數為415次,其中,G-steps=1,D-steps=5。將PPO-steps設置為3,即每次對抗訓練的過程中MC-Search得到的獎勵重復被利用3次,當PPO-steps的值過小時,判別模型的獎勵利用率較低,當PPO-steps的值過大時,由生成模型迭代閾值的控制,生成模型多次迭代之后梯度的變化率將會減小,而且判別模型得到獎勵的指導意義將會變小。控制生成模型迭代梯度的閾值ε設為0.2,即通過策略π和πold策略產生下一個單詞為ct的概率的比值控制在0.8~1.2,保證了判別模型得到的獎勵具有指導意義。使用PPO算法對抗訓練一次時參數會得到較大的更新,為此將Teacher-steps設置為3。

3.5 實驗結果與分析

3.5.1 訓練效率

不同算法在訓練的過程中生成損失的下降曲線如圖5所示。圖5a是極大似然估計算法、Adver-REGS算法和PPO_GAN算法預訓練過程中的損失下降曲線,從圖5a中可以看出,這個階段一共迭代訓練了50 000次。圖5b是極大似然估計算法、Adver-REGS算法和PPO_GAN算法對抗訓練過程中的損失下降曲線,是在前50 000次訓練的基礎上繼續訓練的,從圖5b中可以看出,這個階段一共迭代訓練了2 500次。在圖5b中,對抗訓練的損失曲線為強迫指導得到的損失,即將真實的對話作為輸入時模型的損失。因為本文主要關注的是模型是否擬合了真實的對話,而不是關注它是否擬合生成模型生成的對話。但事實是,在對抗訓練生成的過程中,將真實的對話作為輸入或者將模型生成的對話作為輸入時,對抗生成網絡生成模型的損失都有下降,即模型不僅擬合了真實的對話,而且擬合了生成模型生成的對話。

Figure 5 Convergence effect diagrams of different generation models圖5 不同生成模型的收斂效果圖

由于在對抗訓練的過程中,生成模型的訓練需要判別模型得到的獎勵的指導,所以對抗訓練所需的時間比直接使用極大似然估計作為損失函數訓練生成模型時所需的時間長。Adver-REGS算法對抗訓練的過程中G-steps設為1,Teacher-steps設為1,D-steps設為5,所以每更新2次生成模型之后更新5次判別模型,然后采用MC-Search的方法計算1次獎勵。而PPO_GAN算法對抗訓練的過程中,PPO-steps設為3,Teacher-steps設為3,D-steps設為5,所以每更新6次生成模型之后更新5次判別模型,然后采用MC-Search的方法計算1次獎勵。這樣,PPO_GAN算法對抗訓練的過程中生成模型生成的樣本得到了重復的利用,同時使判別模型通過樣本得到的獎勵也得到了重復的利用,又由于計算獎勵的過程是一個耗時的過程,這樣就節省了大量生成獎勵的時間,所以PPO_GAN算法在對抗訓練時期平均每次訓練的時間開銷是遠小于Adver-REGS算法的,提高了算法收斂的速度。

由于GAN中的生成模型使用的是極大似然估計的結構,在極大似然估計訓練的過程中和GAN預訓練的過程中,都是使用極大似然估計作為損失函數訓練的模型,所以圖5a中它們的損失下降曲線接近重合。從圖5b中可以看出,在50 000次迭代訓練之后,使用極大似然估計訓練的損失值趨于穩定,Adver-REGS算法和PPO_GAN算法開始了對抗訓練,模型的損失值又得到了大幅度的下降。在對抗訓練的過程中,PPO_GAN算法損失的收斂速度明顯快于Adver-REGS算法的,并且PPO_GAN算法最后收斂到了一個更低的損失值。本文分析原因是PPO_GAN算法在對抗訓練的過程中,其生成模型訓練的是帶有正則項的代理目標函數,它是生成模型原目標函數的一個下界,因此生成模型可以單調非減地訓練,這樣就保證了模型收斂的速度以及模型收斂的效果;同時,在訓練的過程中還改善了生成模型容易收斂到局部最優解的問題,以及增加了樣本的復雜度使模型更容易收斂到低的損失值。

3.5.2 對話生成質量的分析

本文從不同方面分析了對話生成的質量。通過困惑度比較了生成的對話接近人類語言的程度,通過產生無聊對話的頻率比較了對話回復有趣性與包含的信息量,并且通過隨機輸入對話得到了對話生成的示例,并對生成的示例進行了分析。

表1中列出了不同模型的困惑度,它通過生成模型訓練的最終損失值計算得到,與生成模型的損失呈正相關。困惑度的值越低,表示這句話在人類的語言中出現的可能性越大,越接近人類語言的語法。從表1可以看出,對比于極大似然估計算法,PPO_GAN模型的困惑度下降了1.434 1,性能提升了13%。對比于Adver-REGS算法,PPO_GAN算法的困惑度下降了0.325 4,性能提升了3%。結果表明,PPO_GAN生成的對話在文法結構以及與人類語言的接近程度上是優于其他模型的。分析困惑度下降的原因,首先,對抗生成網絡的結構中擁有判別模型可以指導生成模型的訓練,相比于直接使用極大似然估計算法訓練生成模型,訓練時容易找到正確的迭代方向,因此困惑度下降。其次,在使用PPO算法訓練GAN的情況下,由于進一步限制了模型單調非減的訓練,改善了模型容易收斂到局部最優解的問題,因此困惑度得到了進一步的降低。

Table 1 Perplexities of different algorithms表1 不同算法的困惑度

在測試數據集上隨機采樣12 800對對話,統計其中無聊對話產生的頻率,結果如表2所示。由表2可以看出,對比于極大似然估計算法,PPO_GAN算法中無聊對話產生的頻率下降了0.242 9,性能提升了63%。對比于Adver-REGS算法,PPO_GAN算法中無聊對話產生的頻率下降了0.067 2,性能提升了32%。PPO_GAN算法的無聊對話出現的頻率明顯下降。

結果表明,PPO_GAN算法在很大程度上改善了安全響應的問題,不會產生過多沒有信息的對話,使算法生成的對話在多樣性和有趣性方面都有改善。本文分析產生無聊對話的頻率下降的原因是,首先,在加入GAN的結構之后,通過判別模型的指導,改善了Seq2Seq模型僅僅使用MLE作為損失函數訓練時,容易擬合高頻回復的情況。其次,在使用PPO模型訓練GAN結構的時候,通過增加樣本的復雜度提高了生成對話的多樣性,更重要的是通過控制模型的訓練,使模型更好地擬合了真實的對話。

Table 2 Frequencies of boring dialog表2 產生無聊對話的頻率

在對話生成領域,對話的評估是困難的,目前沒有一個好的評估指標能從整體上評估對話的好壞,最好的方式是通過人類主觀來評估。表3~表5展示了與不同算法的隨機對話得到的部分示例,其中表3對話示例1的輸入為:we should finish the paper quickly。表4對話示例2的輸入為:your dress is so beautiful。表5對話示例3的輸入為:buy me a bottle of water??梢钥闯?,PPO_GAN算法得到的回復一般擁有較好的文法結構,更重要的是,PPO_GAN算法得到的回復擁有更多的信息量,與對話的輸入也有更強的上下文相關性,明顯減少了無意義對話以及無關對話出現的情況。

Table 3 Sample generation dialog 1表3 生成對話示例1

Table 4 Sample generation dialog 2表4 生成對話示例2

Table 5 Sample generation dialog 3表5 生成對話示例3

實驗結果表明,PPO_GAN算法在多個方面改善了對話生成的質量。本文分析對話生成質量得到改善的原因,首先,Seq2Seq模型存在沒有好的評估指標指導模型訓練的問題;其次,在使用策略梯度算法訓練GAN的時候,存在樣本方差大、模型訓練困難而且容易收斂到局部最優解的問題。PPO_GAN算法使用GAN的判別模型得到的獎勵指導生成模型生成對話,同時通過優化GAN對抗訓練的過程,提高了樣本的復雜度,并且使對抗訓練過程中的生成模型可以單調非減地訓練,改善了模型容易收斂到局部最優解的問題。PPO_GAN算法可以更好收斂,從而可以更好地擬合輸入對話與生成回復之間的對應關系,改善了對話生成的質量。

3.6 討論

本文通過比較不同算法損失函數的下降曲線比較了算法的效率,可以看出,本文算法的收斂速度有明顯的提升,訓練效率也得到了很大的提高;同時,通過比較困惑度、無聊對話產生的頻率以及分析生成對話的示例,比較了對話生成的質量,可以看出,本文算法的困惑度明顯降低,無聊對話產生的頻率明顯下降,并且生成對話的示例在包含的信息量和上下文相關性方面都得到了明顯的改善。

本文算法性能提升的原因是,首先,由于PPO算法是一個異策略的強化學習方法,通過增加正則項保證了模型參數的變化率在一定的范圍內,從而可以使生成模型自適應地多次迭代,讓生成模型生成的樣本以及判別模型得到的獎勵都得到了重復的利用,這是模型訓練效率提高的原因之一。其次,在使用PPO算法訓練GAN時,訓練的是生成模型的代理目標函數,它是生成模型目標函數的一個下界,這樣就保證了生成模型的訓練是單調非減的,從而使模型易于訓練,這是模型訓練效率提高的另一個原因。同時,由于生成模型的訓練是單調非減的,可以改善模型收斂到局部最優解的問題,可以更好地訓練模型,從而得到更好的收斂效果,更好地擬合真實的對話,這是改善對話生成質量的主要原因。最后,由于在訓練的過程中提高了樣本的復雜性,因此提高了生成對話的多樣性,這是改善對話質量的另一個原因。

4 結束語

本文提出了一種使用PPO算法訓練GAN來生成對話的方法。將GAN對抗訓練的過程看作一個強化學習的問題,使用PPO算法迭代訓練GAN的生成模型與判別模型。在訓練的過程中,通過PPO算法重復地利用了判別模型得到的獎勵,改善了模型收斂到局部最優解的問題,以及提高了樣本的復雜度。

目前,BERT模型[24]和XLNet模型[25]等相繼被提出,從改進Seq2Seq模型的角度來改善對話生成的質量成為了熱門的研究點。然而本文從改進對話訓練方式的角度,利用GAN的結構,結合RL方向的研究進展,提出了基于PPO的對話生成算法PPO_GAN。實驗結果表明,在模型訓練的效率上,PPO_GAN算法得到了明顯的提高。在對話生成的質量上,不僅降低了算法的困惑度和無聊對話產生的頻率,而且改善了對話之間的上下文相關性,并且得到的回復中包含了更多的信息量。

在模型訓練上,PPO_GAN算法改善了GAN訓練時獎勵利用率低的問題,但是沒有提高計算獎勵的效率。在對話生成的質量上,PPO_GAN算法生成的對話與人類的對話之間還存在差距。在接下來的工作中,將繼續研究在不影響獎勵正確性的情況下提高獎勵計算效率的方法,以及研究多頭自注意力機制對GAN中生成模型的影響。

猜你喜歡
單詞策略模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
例談未知角三角函數值的求解策略
單詞連一連
我說你做講策略
看圖填單詞
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
3D打印中的模型分割與打包
Passage Four
主站蜘蛛池模板: h网址在线观看| 欧美成人看片一区二区三区| 99无码中文字幕视频| 中文字幕天无码久久精品视频免费| 天天躁夜夜躁狠狠躁躁88| 精品久久香蕉国产线看观看gif| 国产菊爆视频在线观看| 国产99在线观看| 国产黄色片在线看| 福利视频99| 在线无码九区| 凹凸国产分类在线观看| 国内精品视频区在线2021| 欧美成人国产| 欧美亚洲香蕉| 日韩精品资源| 五月婷婷丁香综合| 亚洲第一香蕉视频| 国产区精品高清在线观看| 欧美三级不卡在线观看视频| 1024你懂的国产精品| 四虎精品免费久久| 午夜性刺激在线观看免费| 日韩小视频在线观看| 黄色国产在线| 欧美一级高清片久久99| 91精品国产自产在线老师啪l| 欧美精品另类| 国产小视频免费观看| 日韩精品一区二区三区swag| 亚洲一区二区无码视频| 99这里精品| 国产极品粉嫩小泬免费看| 欧美日韩一区二区三区四区在线观看| 亚洲欧美另类日本| 日韩东京热无码人妻| 99热这里只有成人精品国产| 亚洲av综合网| 亚瑟天堂久久一区二区影院| 亚洲经典在线中文字幕| 99视频在线免费观看| Jizz国产色系免费| 国产成人综合网| 无码啪啪精品天堂浪潮av| 美女毛片在线| 精品人妻无码区在线视频| 国产精品亚洲片在线va| 99re经典视频在线| 日韩国产高清无码| 白浆视频在线观看| 亚洲欧洲综合| 欧美一级黄色影院| 国产一区亚洲一区| 久久永久视频| 亚洲欧洲日韩综合| 久久精品国产在热久久2019| www.91中文字幕| 午夜电影在线观看国产1区| 欧美一级夜夜爽| 国产精品伦视频观看免费| 美女啪啪无遮挡| 中文字幕在线欧美| 97青草最新免费精品视频| 91视频首页| 亚洲综合婷婷激情| 在线精品视频成人网| 成人日韩欧美| 欧美第九页| 91色在线视频| 一区二区影院| 乱人伦中文视频在线观看免费| 亚洲欧洲日韩国产综合在线二区| 久久亚洲国产最新网站| 在线国产91| 999福利激情视频| 在线观看精品自拍视频| 亚洲欧美国产五月天综合| 午夜一级做a爰片久久毛片| 日韩免费毛片| 91久久偷偷做嫩草影院电| 日韩精品毛片人妻AV不卡| 免费观看精品视频999|