薛 琪,孟祥福,張 峰,張霄雁,朱金俠,朱 堯,王丹丹
(遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
文本生成任務即生成連貫且有意義的文本,為機器翻譯、自動對話生成、人工智能寫作、文本分類等應用奠定了基礎[1],是自然語言處理(Natural Language Processing,NLP)中的一項重要任務[2].為了使生成的文本更接近真實文本,生成對抗網(wǎng)絡(Generative Adversarial Net,GAN)成為最佳選擇.GAN 是近年來提出的一種深度學習網(wǎng)絡模型,在深度學習領域中頗受關注[3].Wang 等[4]合并對象實例分割信息并提出了一種方法,允許用戶交互式地編輯對象外觀,提高了深度圖像合成和編輯的質量和效果.Ma 等[5]提出并解決了將樣本從兩個獨立集合轉換分解為高度結構化潛在空間中的翻譯實例的任務.Li 等[6]進一步擴展了文本生成圖像任務,提出的StoryGAN 可以實現(xiàn)根據(jù)一段連續(xù)的描述文本生成對應圖像的序列.生成對抗網(wǎng)絡的本質是尋找兩個不同分布之間的映射[7],這兩個分布通常為先驗噪聲分布和真實數(shù)據(jù)樣本分布,這種特質導致它在圖像生成領域具有天然的優(yōu)勢,在圖像和視覺領域取得廣泛的研究和應用.但是因為生成器生成的文本數(shù)據(jù)是離散的,不可微,所以把它應用在文本生成時卻遇到了困難[8];同時GAN 自動生成的文本缺乏多樣性,而部分研究在解決生成文本缺乏多樣性的問題的同時,忽略了生成文本的質量,即句子的準確性和流暢性.
針對上述問題,本文提出一種多獎勵文本生成對抗網(wǎng)絡(Generation Adversarial Network Based on Hierarchical Learning with Multi-reward Text,HLMGAN)模型用于生成文本任務,研究的重點是在提高文本的準確性和流暢性的同時,滿足生成文本的多樣性.本文工作的主要貢獻如下:
(1)提出了一種HLMGAN 模型,設計了生成器的層次結構,包括傳遞特征向量訓練模塊和生成向量訓練模塊;
(2)在HLMGAN 模型中,判別器在給出當前生成的單詞序列的情況下提取的高級特征將發(fā)送到傳遞特征向量訓練模塊,從而更好地引導生成器生成高質量的文本;
(3)將關系存儲核心(Relational Memory Core,RMC)用作生成器,提高了生成器的表達能力和捕獲信息能力;
(4)在HLMGAN 模型中,獎勵機制舍棄黑匣子,對于重復文本分配低獎勵,而對新穎流暢的文本分配高獎勵,從而進一步提高了文本生成質量.
生成模型提供了獲取底層數(shù)據(jù)和統(tǒng)計信息的方法.這些模型在許多NLP 任務中起著中樞作用,例如語言建模、機器翻譯和對話生成,但生成的句子往往不盡人意,例如,它們在長期語義上往往缺乏一致性,在高級主題和句法上一致性較差等.有研究通過Teacher Forcing 訓練自回歸模型[9].然而,該模型可能會導致暴露偏差問題即解碼的行為不一致可能會導致偏差.訓練自回歸模型的另一種有效的解決方案是使用GAN.如果生成模型能夠在訓練過程中訪問其自己的預測并對生成的序列具有整體視圖,則可以避免上述問題.然而在生成離散序列時,生成模型的離散輸出使得難以將梯度更新從判別模型傳遞到生成模型.Yu 等[10]在增強學習(Reinforcement Learning,RL)中將數(shù)據(jù)生成器建模為隨機策略,提出SeqGAN 通過直接執(zhí)行梯度策略更新來繞過生成器區(qū)分問題并使用蒙特卡洛搜索傳遞回中間狀態(tài).Che 等[11]提出了最大似然增強離散生成對抗網(wǎng)絡取代直接優(yōu)化GAN 目標的方法,使用隨后的判別器輸出對應對數(shù)似然的方法來推導新穎而低方差的目標.Guo 等[12]允許判別網(wǎng)絡將其高級提取特征傳遞給生成網(wǎng)絡,以進一步幫助指導文本生成.通過圖靈測試對合成數(shù)據(jù)和各種現(xiàn)實世界任務進行的廣泛實驗表明,LeakGAN 在長文本生成中非常有效,并且在短文本生成場景中也可以提高性能.Liu 等[13]提出了一種類別感知CatGAN,用于類別文本生成的有效類別感知模型和用于訓練模型的分層進化學習算法組成,直接測量實際樣本與每個類別上生成的樣本之間的差距,然后減小該差距將指導模型生成高質量的類別樣本.
以上的方法都在改善梯度更新所帶來的問題,但解決問題的同時對于生成文本的多樣性考慮較少.本文提出的HLMGAN 的模型,在增加判別器的層次結構、將RMC 用作生成器的同時改進了獎勵機制,提高了生成文本的多樣性和質量.
2.1 生成對抗網(wǎng)絡模型生成對抗網(wǎng)絡并不是一個完整的模型,而是一個框架,其基本結構包含一個負責生成文本的生成器G 和一個區(qū)分生成文本和真實文本的判別器D,整體模型如圖1 所示.
圖1 生成對抗網(wǎng)絡結構圖Fig.1 Structure diagram of generated adversarial net
GAN 中的生成器G 主要是負責生成類似于真實文本的樣本給判別器D 進行驗證.D 的輸入由真實樣本和生成樣本組成,目標是判斷輸入的數(shù)據(jù)是來自真實樣本還是生成樣本.G 和D 經(jīng)過對抗訓練達到一個納什平衡狀態(tài),即D 判斷不出輸入是來自于真實樣本還是生成的樣本,此時 G 能夠生成與真實數(shù)據(jù)極其相似的文本.
2.1.1 生成器 生成器可以是任意能夠輸出樣本的模型,如卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,RNN)等.數(shù)據(jù)x的真實分布為Preal(x),所有數(shù)據(jù)的真實分布集合即為Preal,生成器的作用就是生成包含在Preal中的樣本.假設從真實數(shù)據(jù)中取一些樣本(x1,···,xi,···,xn),生成模型會根據(jù)PG(xi,θ)計算一個似然
生成模型要最大化這個似然L,這就要求模型尋找到一個最優(yōu)的 θ?,讓PG最接近Preal.
2.1.2 判別器 判別器可以分解為特征提取層(包括輸入層、卷積層、池化層,主要完成生成文本序列的高維特征提?。┖鸵粋€分類器.判別器的訓練屬于有監(jiān)督學習,在固定生成器后,采用訓練數(shù)據(jù)作為正樣例,生成數(shù)據(jù)作為負樣例,進行標準化處理,混合后的數(shù)據(jù)通過判別器得到輸出值,求出輸出值和目標值的誤差,使用交叉熵來優(yōu)化判別器的參數(shù).
2.2 基于生成對抗網(wǎng)絡的文本生成模型基于生成對抗網(wǎng)絡的文本生成模型整體流程如下:生成模型以噪聲輸入,經(jīng)過一系列非線性變換獲得了文本向量特征,再將特征轉化為文本,使用判別器的判斷作為生成器調整參數(shù)的依據(jù).
假設輸入的文本是“路邊的花真漂亮”,經(jīng)過詞嵌入之后,變成形如[?0.269 9,?0.4,0.740 1,…,?0.090 2]的真實向量.算法目的是生成與輸入向量意思一致但是形式多樣的文本,如“這朵開在路邊的花真鮮艷”.將真實向量[?0.269 9,?0.4,0.740 1,…,?0.090 2]輸入到生成器后,輸出生成向量[?0.5,?0.25,0.6,…,?0.3].將生成向量輸入進判別器與真實向量進行比較.通過卷積層、池化層等操作,向生成器回傳生成模型存在的偏差.生成器再對向量值 [?0.5,?0.25,0.6,…,?0.3]進行微調,從而生成新的生成向量[?0.37,?0.32,0.69,…,?0.15].這樣反復執(zhí)行達到判別器分辨不出傳入的序列是生成器生成的文本還是真實文本,基于生成對抗網(wǎng)絡的文本生成模型結構如圖2 所示,其中本文的激活函數(shù)采用softmax 函數(shù),該函數(shù)可以將輸出映射到(0,1)區(qū)間內.
圖2 基于生成對抗網(wǎng)絡的文本生成模型結構Fig.2 Text generation model structure based on generative confrontation network
2.3 關系存儲核心關系存儲核心(Relational Memory Core,RMC)的基本概念是考慮一組固定的內存插槽(例如內存矩陣),并允許自我關注機制[14]在這些內存中進行交互.存儲容量的增加提高表達能力和捕獲信息的能力.在狀態(tài)t給定一個新的詞匯xt,由嵌入向量Ext表示.生成器中輸入向量xt由Ext與Wx線性變化組成:
考慮存儲器矩陣Mt,圖3 給出了如何在狀態(tài)t通過xt從Mt更新到Mt+1.其中Multi-Head Attetion(MHA)表示多頭注意力機制,Multi-Layer Perception(MLP)表示多層感知機,Ot表示生成器G 的輸出.
圖3 RMC 結構圖Fig.3 RMC structure diagram
3.1 問題定義本文將文本生成問題形式化為順序決策過程.具體來說,在每個狀態(tài)t,模型將先前生成的單詞集合作為其當前狀態(tài),表示為St=(x1,···,xi,···,xt),其中xi表示給定詞匯表V 中的單詞.本文使用一個采用隨機策略的生成器G,經(jīng)過訓練得到下一個單詞xt+1,同時還訓練判別模型D,通過比對生成向量與真實向量得到引導信號,將引導信號回傳給生成器調整生成整個句子St時的參數(shù).最終得到的St與輸入文本意思一致的多樣性且具有高質量.
3.2 解決方法為了解決句子過長導致引導信號信息量較少的問題,本文提出HLMGAN 框架,使判別器D 向生成器G 提供當前句子St在判別模型D 中的附加信息ft.在HLMGAN 模型中,使用分層結構作為一種可以將真實文本信息傳遞到G生成過程中的有效機制.此外,因RMC 保證了更大的存儲容量和更好的捕捉長期以來關系的能力[13],故使用RMC 模型用做生成器中傳遞特征向量訓練模塊和生成向量訓練模塊的訓練.獎勵部分由句子級別獎勵和單詞級別獎勵組成,可以實現(xiàn)對高級的句子給予較高的獎勵,對于正確但并不新穎的句子給予非零但是較低的獎勵.
本文對生成對抗網(wǎng)絡基本結構進行了改進,HLMGAN 的示意圖如圖4 所示.其中M(·;Qm)表示傳遞特征向量訓練模塊由參數(shù)為θm的RMC 實現(xiàn),W(·;Qw)表示傳遞特征向量訓練模塊由參數(shù)為θw的RMC 實現(xiàn).
圖4 HLMGAN 結構圖Fig.4 Schematic diagram of HLMGAN structure
4.1 判別器使用參數(shù)?為D?作為學習獎勵函數(shù),可以分解為特征提取層F(·;?f)和一個具有權重向量?l的sigmoid 分類器.即給定一個生成序列s作為輸入,可以使用
其中,?=(?f,?l),sigmoid(z)=1/(1+e?z),T 表示 轉置,f=F(s;?f)表示特征提取層得到輸出的高維特征向量.
當生成器G 準備生成下一個詞的時候,生成器會補充當前生成的部分序列,形成完整的輸入序列s,并傳遞給判別器D.判別器D 獲取到s后,經(jīng)過特征提取層得到輸出的高維特征向量f,把它傳遞到下一步的分類層和生成器G 中的傳遞特征向量訓練模塊用來指導文本生成.
具體來講,當向判別器輸入“路邊的花真漂亮”,經(jīng)過詞嵌入之后,將輸入序列中每個詞轉化為向量表示,變成形如[?0.269 9,?0.4,0.740 1,···,?0.090 2]的真實向量.輸入矩陣會進入卷積核提取短語的語義信息.然后進入池化層,通過對特征向量做最大池化處理,把最后的結果拼接在一起,大小為所有卷積核數(shù)量的總和.接著將得到的特征向量傳遞給分類層,在對抗訓練中,這個特征向量會作為反饋信息指導生成器生成文本.最后的分類層把傳遞來的特征向量做softmax 分類,得到的結果作為獎勵值傳遞給生成器.
4.2 生成器在生成過程每個步驟t中,為利用從判別器D 中傳遞的特征向量f,把生成器G 分成傳遞特征向量訓練模塊和生成向量訓練模塊兩個層次結構.具體來說,引入一個傳遞特征向量訓練模塊,在每個狀態(tài)t都將提取的特征向量ft作為其輸入,并輸出目標向量gt,然后將其輸入到生成向量訓練模塊中,指導下一個單詞的生成,以便接近F(s;?f)中的較高獎勵區(qū)域.接下來,本文將在HLMGAN 中描述詳細的生成器模型,然后說明如何使用D 的引導信號訓練傳遞特征向量訓練模塊和生成向量訓練模塊.
4.2.1 生成過程 傳遞特征向量訓練模塊和生成向量訓練模塊從全零隱藏狀態(tài)開始,分別表示為由于基于長短期記憶循環(huán)神經(jīng)網(wǎng)絡模型(Long Short Term Memory,LSTM)的生成器可能缺少用于文本生成的足夠的表達能力,而RMC 如上文提到采用MHA 允許記憶交互的特點,能夠更好地表示記憶間的聯(lián)系,從而使模型具有在時間域上進行關系推理的能力,可以改進這種缺陷,因此傳遞特征向量訓練模塊和生成向量訓練模塊采用RMC 代替?zhèn)鹘y(tǒng)的LSTM.
在每個步驟中,傳遞特征向量訓練模塊都會從判別器D 接收傳遞的特征向量ft,并將其與傳遞特征向量訓練模塊的當前隱藏狀態(tài)進一步結合以生成目標向量gt:
其中,M(·;θm)表示傳遞特征向量訓練模塊由參數(shù)為 θm的RMC 實現(xiàn),是RMC 的遞歸隱藏向量.為了合并傳遞特征向量訓練模塊產生的目標,對最近的c個目標求和后執(zhí)行權重矩陣為Wψ的線性變換ψ,生成k維目標嵌入向量:
給定目標嵌入向量wt,傳遞特征向量訓練模塊將xt設置為輸入,輸出矩陣Ot,將其與wt通過矩陣乘積進一步組合,通過softmax 以確定當前狀態(tài)下:
其中,W(·;θw)表示傳遞特征向量訓練模塊由參數(shù)為 θw的RMC 實現(xiàn).Ot,wt矩陣表示所有單詞的當前向量,因此Ot,wt得出所有單詞的計算對數(shù),α是控制生成熵的溫度參數(shù).
4.2.2 生成器的訓練過程 使用策略梯度算法端到端的方式訓練G.本文目標是在HLMGAN 中傳遞特征向量訓練模塊能夠捕獲一些有意義的模式.因此,分別訓練傳遞特征向量訓練模塊和生成向量訓練模塊,其中傳遞特征向量訓練模塊被訓練來預測區(qū)別特征空間中的有利方向,而生成向量訓練模塊本質上獎勵遵循這樣的方向.在訓練過程中,生成器G 和判別器D 交替訓練.同時在生成器中,傳遞特征向量訓練模塊M(·;θm)和生成向量訓練模塊W(·;θw)交替訓練.
4.3 獎勵機制在獎勵機制方面,本文舍棄了傳統(tǒng)的蒙特卡洛搜索獎勵機制,采用Sentences and Words(SW)獎勵機制,包括句子級別獎勵和詞級別獎勵兩部分[15],分別說明如下.
4.3.1 單詞級別的獎勵 由于句子中不同單詞的獎勵應該不同,本文首先使用單詞級別的獎勵,公式如下:
即輸入生成向量和真實向量,對應相乘完成交叉熵計 算.輸入形 如[[0.66,0.057,0.283],[…],[0.454 2,0.216 9,0.329]]的3×3 矩陣,每一行加和為1.對softmax 的結果取自然對數(shù),輸出形如[[?0.415 5,?2.864 8,?1.262 3],[ …],[?0.789 3,?1.528 5,?1.111 7]的3×3 矩陣.結果是把上面的輸出與Label 對應的值取出,取負,再求均值.設Target 是[0,2,1],即第一行取第0 個元素,第二行取第2 個,第三行取第1 個,去掉負號,結果是:[0.415 5,1.094 5,1.528 5].再求均值,則輸出結果為1.012 833.
4.3.2 句子級別的獎勵 對于一個有K個字的句子yt而言,句子級別的獎勵是每個單詞獎勵的平均值:
現(xiàn)有給予判別器獎勵主要問題是獎勵不能準確反映文本的新穎性.首先,對于高新穎性文本的獎勵很容易達到飽和,這幾乎無法區(qū)分新穎文本之間的區(qū)別.其次,判別器在識別生成的文本時可以很容易地達到很高的準確性,表明分類器仍然無法分辨新穎度較低的文本之間的區(qū)別.根據(jù)實驗結果分析表明,SW 獎勵機制可以更好地區(qū)分新穎性文本和低端性文本,而且不會出現(xiàn)飽和問題.即高新穎性文本的獎勵很高且不會飽和,低新穎性文本的獎勵很小但是具有區(qū)分性.
該獎勵機制使用O(T)的時間復雜度來計算所有單詞的獎勵,與時間復雜度為O(T2)的蒙特卡洛搜索獎勵機制相比,更有效率.
4.4 算法流程在確定了判別器,生成器、目標函數(shù)和獎勵機制后,本文通過算法1 來訓練HLMGAN.
算法1
輸入預處理后的真實文本.
輸出跟預處理后文本意思相近但又不完全一致的文本.
步驟 1使用隨機權重θm,θw,?初始化Gθm,θw,D?;
步驟 2預訓練D?使用S作 為正樣本,Gθm,θw作為負樣本,并使用D?的傳遞信息進行預訓練,交錯執(zhí)行兩次預訓練,直到收斂為止;
步驟 3產生序列Y1:T=(y1,…,yT)~Gθ,從D?存儲傳遞信息ft,并從SW 獎勵中獲得Q(ft,gt),同時從傳遞特征向量訓練模塊中獲得生成目標向量gt,并更新兩個訓練模塊參數(shù);
步驟 4使用當前Gθm,θw生成負樣本并與給定的正樣本S組合,通過公式對k個epochs 進行判別器D?的訓練.
為了驗證所提算法的有效性,在兩個離散序列生成任務上進行了實驗,并將其與其他先進的方法進行比較.
5.1 比較模型及評價方法實驗階段,與HLMGAN進行比較的基本模型有以下幾種:MLE 訓練的LSTM,SeqGAN,LeakGAN 和MaliGAN.
對于文本質量方面,本文在合成數(shù)據(jù)集采用的評價標準是負對數(shù)似然度(Negative log-likelihood,N),在EMNLP2017 WMT 數(shù)據(jù)集采用的評價標準是雙語互譯質量評估輔助工具(Bilingual evaluation understudy,BLEU).
本文實驗采用兩個評價標準如下:
(1)負對數(shù)似然度 因為合成數(shù)據(jù)集是模擬的生成序列,所以使用的評價標準是負對數(shù)似然度Noracle,評價標準公式如下:
其中,Goracle表示真實數(shù)據(jù)分布,q 表示生成的近似文本.在合成數(shù)據(jù)實驗中,假設隨機初始化的RMC 模型已經(jīng)學到了真實的自然語言的數(shù)據(jù)分布,那么Noracle表示真實數(shù)據(jù)和生成數(shù)據(jù)之間的交叉熵,即HLMGAN 網(wǎng)絡中生成器生成的數(shù)據(jù)分布與真實自然語言的數(shù)據(jù)分布的差距,值越小表明生成的數(shù)據(jù)分布越接近真實分布,生成的文本質量越高.
由于Noracle不能評價真實世界的數(shù)據(jù)實驗,所以采用BLEU 進行評分[16].
(2)雙語互譯質量評估輔助工具(BLEU)對于EMNLP2017 WMT 數(shù)據(jù)集采用的評價標準是BLEU.該可以衡量機器翻譯文本和參照文本兩者的相似程度,取值范圍在0 到1,取值越大機器翻譯的質量越高.
在文本多樣性方面,參考文獻[16],采用Backward BLEU(BBL)來衡量.它以生成的樣本為參照,由BLEU 對每個測試樣本進行評價.
5.2 實驗結果不同學習率的影響.本文分別更改生成器和判別器的學習率,設置生成器學習率(gen_lr)為0.000 5 至0.01 和判別器學習率(dis_lr)為1×10?4~5×10?5進行實驗對比,部分實驗結果如表1 所示(表格順序由Noracle從小到大排序得出).最終設置gen_lr=0.005,dis_lr=5×10?5和epoch=200進行實驗.
表1 參數(shù)設置結果展示Tab.1 Display of parameter setting result
5.2.1 合成實驗 為了模擬真實世界的結構化序列,我們遵循Guo 等[12]考慮了一種語言模型來捕捉標記的依賴關系.使用遵循正態(tài)分布N(0,1)的隨機初始化的RMC 作為真實模型來生成實際數(shù)據(jù)分布Goracle(xt|x1,···,xt?1),用它生成10 000 個長度為20 的序列作為生成模型的訓練集S,用于實驗.圖5 給出了訓練曲線,表2 給出了整體實驗結果.從結果可以得出,雖然在預訓練階段,HLMGAN 并沒有太大的性能優(yōu)勢,但是在對抗階段,HLMGAN 表現(xiàn)出非常好的收斂速度,最小值低于以往的結果.并且epoch 在160 之后的階段,HLMGAN 的波動相比于HLMGAN 基本模型LeakGAN 較為平穩(wěn).實驗結果表明基于分層學習和SW 獎勵機制的框架在生成文本方面的有效性.
表2 不同算法的N oracle 性能Tab.2 Comparison ofN oracle performance of different algorithms
圖5 4 種文本生成模型訓練曲線Fig.5 Training curves of four text generation models
5.2.2 EMNLP2017 WMT 新聞該 實驗選 擇EMNLP2017 數(shù)據(jù)集作為長文本語料庫.從原始數(shù)據(jù)集中選取新聞部分.新聞數(shù)據(jù)集由646 459 個單詞和397 726 個句子組成.在此基礎上,通過刪除頻率低于4 050 的單詞、包含這些低頻單詞的句子及長度小于20 的句子來預處理數(shù)據(jù).然后隨機抽取20 萬句作為訓練集,另外1 萬句作為測試集.同時,為保證實驗的準確性,增加DGSAN[17]和CoTGAN[18]與模型的比較.表3 給出訓練結果.在所有測試指標中,HLMGAN 表現(xiàn)出良好的性能提升.BLEU 指標高于對比模型.在保證BLEU 分數(shù)高的前提下,Ngen(越低越好)和Ndiv(越高越好)與對比模型(SeqGAN 和LeakGAN)相比,最高分別提升了約0.344 和0.715,說明HLMGAN 在文本生成多樣性和文本生成質量方面有所提高.
表3 EMNLP 數(shù)據(jù)集的BLEU 評分表現(xiàn)Tab.3 BLEU scores performance on EMNLP data set
為了說明RMC 替換LSTM 和使用SW 獎勵機制的有效性,對算法HLMGAN 進行了消融實驗.將HLMGAN 中RMC 去掉,使用LSTM,生成HLMGAN_RMC;將HLMGAN 中SW 獎勵機制替換掉,生成HLMGAN_SW.結果如表4 所示.與LeakGAN 模型相比,兩個改進部分均有所提高,說明RMC 和SW 獎勵機制對模型的改進有所幫助.
表4 HLMGAN 以及分解算法在EMNLP 數(shù)據(jù)集的BLEU評分表現(xiàn)Tab.4 BLEU scores performance of HLMGAN and decomposition algorithm on EMNLP data set
本文提出了一種HLMGAN 模型,在此模型中通過傳遞判別器提取的特征作為逐步指導信號并采用SW 獎勵機制,對于重復文本分配低獎勵,而對新穎流暢的文本分配高獎勵,以指導發(fā)生器更好地生成文本.在合成數(shù)據(jù)和真實世界數(shù)據(jù)的實驗中,HLMGAN 在BLEU 得分比以前的解決方案有明顯提升并且BBL 得分也有所進步,即在生成文本多樣性上有所改進.接下來將使用HLMGAN 模型結合醫(yī)學領域數(shù)據(jù),嘗試改善醫(yī)學領域部分數(shù)據(jù)缺少而在深度學習訓練效果不好的問題.