李 浩,寧浩宇,康 雁,梁文韜,霍 雯
云南大學(xué) 軟件學(xué)院,昆明650500
風(fēng)格轉(zhuǎn)移是許多人工智能領(lǐng)域的重要問(wèn)題,例如自然語(yǔ)言處理(NLP)和計(jì)算機(jī)視覺(jué)[1-4]。特別地,自然語(yǔ)言文本的樣式轉(zhuǎn)換是自然語(yǔ)言生成的重要組成部分。它方便了許多NLP應(yīng)用程序,例如將紙質(zhì)標(biāo)題自動(dòng)轉(zhuǎn)換為新聞標(biāo)題,從而減少了學(xué)術(shù)新聞報(bào)道中的人工工作。對(duì)于諸如詩(shī)歌生成之類的任務(wù)[5-7],可以將樣式轉(zhuǎn)換應(yīng)用于生成詩(shī)歌的冷漠風(fēng)格。但是,語(yǔ)言樣式轉(zhuǎn)換的進(jìn)展落后于其他領(lǐng)域,例如計(jì)算機(jī)視覺(jué),這主要是因?yàn)槿狈Σ⑿姓Z(yǔ)料庫(kù)和可靠的評(píng)估指標(biāo)。
大多數(shù)現(xiàn)有的文本處理方法遵循兩個(gè)步驟:首先將內(nèi)容與原始樣式分離,然后將內(nèi)容與所需樣式融合。例如文獻(xiàn)[8-10]通過(guò)對(duì)抗訓(xùn)練學(xué)習(xí)與風(fēng)格無(wú)關(guān)的內(nèi)容表示向量,然后將其傳遞給依賴于風(fēng)格的解碼器進(jìn)行重新編排。另一項(xiàng)研究2018年Xu和Lietal直接刪除輸入中的特定樣式屬性詞,然后將僅包含內(nèi)容詞的中和序列提供給依賴于樣式的生成模型。但是,每一行都有其自身的缺點(diǎn)。
為了能提升生成句子的準(zhǔn)確性和生成質(zhì)量,本文提出基于情感記憶模塊和強(qiáng)化學(xué)習(xí),利用對(duì)抗生成神經(jīng)網(wǎng)絡(luò)的文本情感轉(zhuǎn)換方法的自注意力情感記憶模塊生成對(duì)抗神經(jīng)網(wǎng)絡(luò)SMRFGAN(Self-attention Memory Reinforcement learning Generative Adversarial Network)。模型一方面通過(guò)文本的Fast text[11]處理,有效地提高文本分類的準(zhǔn)確性,再通過(guò)對(duì)長(zhǎng)短期記憶(Long Short Term Memory,LSTM)[12]網(wǎng)絡(luò)解決了RNN[13]的“梯度消失”的不足,同時(shí)能夠有選擇地記憶序列中的重要信息,其中利用自注意力機(jī)制對(duì)情感詞的特征進(jìn)行識(shí)別,有針對(duì)性地將情感詞放入記憶模塊來(lái)提升算法對(duì)情感詞把握的準(zhǔn)確性;另一方面通過(guò)強(qiáng)化學(xué)習(xí)算法解決生成對(duì)抗神經(jīng)網(wǎng)絡(luò)[14]在離散數(shù)據(jù)中無(wú)法運(yùn)算的問(wèn)題。
對(duì)文本風(fēng)格遷移的研究在近年有了較多的進(jìn)展,例如Luo 等[15]在2019 年提出的基于強(qiáng)化學(xué)習(xí)框架的文本風(fēng)格遷移。作者提出了雙重強(qiáng)化學(xué)習(xí)的框架,通過(guò)映射模型直接傳遞文本風(fēng)格,而不分離內(nèi)容和風(fēng)格。在2017年Hu 等[16]用一組結(jié)構(gòu)化變量來(lái)增加非結(jié)構(gòu)化變量,每個(gè)結(jié)構(gòu)化變量都針對(duì)句子的顯著且獨(dú)立的語(yǔ)義特征,以控制句子情緒。然而,所有這些工作和Luo等的研究相比,都試圖隱含地將非情感內(nèi)容與情感信息與時(shí)間表示分開(kāi)。
隨著2006年GAN模型的提出,GAN在計(jì)算機(jī)視覺(jué)相關(guān)領(lǐng)域獲得很好的效果。相關(guān)研究者將GAN的研究領(lǐng)域深入到了NLP中,并取得了一些進(jìn)展。
Kusner 等[17]2016 年在論文中提出為了解決離散數(shù)據(jù)在分布采樣不可導(dǎo)的問(wèn)題,采用Gumbel-Softmax[18]函數(shù)對(duì)多項(xiàng)式分布連續(xù)逼近,Gumbel 分布是一種極值型分布。Zhang 等[19]在2017 年提出了Text GAN 模型,作者利用LSTM 模型作為GAN 的生成器,用CNN 作為GAN 的判別器,并且用光滑近似的思想來(lái)逼近生成器LSTM的輸出,從而解決離散數(shù)據(jù)導(dǎo)致的梯度不可導(dǎo)問(wèn)題。在判別器的預(yù)訓(xùn)練方面,利用原始的句子和該句子中交換兩個(gè)詞的位置后得到的新句子進(jìn)行判別訓(xùn)練。LSTM雖然解決了RNN梯度消失的問(wèn)題,但是輸入序列和輸出序列要求等長(zhǎng),seq2seq 突破了這一限制,使得RNN 的應(yīng)用更加廣泛,在文本生成中也能生成不定長(zhǎng)的文本序列。
本文在不使用平行語(yǔ)料庫(kù)的基礎(chǔ)上,通過(guò)對(duì)情感詞的提取利用強(qiáng)化學(xué)習(xí)算法對(duì)生成的反向情感詞文本進(jìn)行改進(jìn),提升準(zhǔn)確性和BLEU的評(píng)分。
在SMRFGAN 模型中,使用Fast Text 分類模型對(duì)文本進(jìn)行分類后,為了定位情感詞,將分類后的文本以句向量的方式作為L(zhǎng)STM的輸入向量,并用self-attention[20-21]來(lái)預(yù)測(cè)文本情感詞極性,從而區(qū)分感情詞和非感情詞,將情感詞向量輸入到情感記憶模塊經(jīng)過(guò)Generalization后放入存儲(chǔ)模塊當(dāng)中,以此對(duì)情感記憶模塊進(jìn)行更新,最后解碼器通過(guò)情感記憶模塊中存儲(chǔ)的情感詞和句子表示提取情感詞匯進(jìn)行解碼重新組成文字序列,將重新生成的文本作為真實(shí)文本對(duì)生成器進(jìn)行預(yù)訓(xùn)練,Next action定義下一個(gè)被選擇的詞向量。同時(shí)判別器通過(guò)蒙特卡洛搜索樹(shù)和policy gradient算法對(duì)生成器進(jìn)行更新。
以正向情感文本為例,即使用self-attention 將正向情感詞匯存儲(chǔ)在情感記憶網(wǎng)絡(luò)中,并依據(jù)原文本進(jìn)行解碼,作為真實(shí)文本利用強(qiáng)化學(xué)習(xí)和生成對(duì)抗神經(jīng)網(wǎng)絡(luò)生成負(fù)向情感的文本。SMRFGAN模型框架如圖1所示。
在Data-LSTM 模型中,本文首先使用Fast Text 對(duì)源文本針對(duì)情感詞的不同分為積極和消極兩類,再使用self-attention機(jī)制找出情感詞極性較大的情感詞存儲(chǔ)到情感詞記憶模塊當(dāng)中,并結(jié)合源文本的句向量生成語(yǔ)義反轉(zhuǎn)后的文本作為接下來(lái)RFGAN(reinforcement learning)模型的“真實(shí)”數(shù)據(jù)對(duì)GAN進(jìn)行訓(xùn)練。

圖1 SMRFGAN模型圖
2.1.1 Fast Text
大多數(shù)情感分類方法使用的是樸素貝葉斯分類算法、支持向量機(jī)、卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)來(lái)解決分類問(wèn)題,而這些方法在語(yǔ)料類別較多的情況下會(huì)使得計(jì)算量增大。本文為了能有效將情感詞存入記憶網(wǎng)絡(luò)并且能減輕計(jì)算量,使用Fast Text快速對(duì)源文本進(jìn)行情感詞分類。分類結(jié)果處理成句向量作為L(zhǎng)STM的輸入,以此為下一步情感詞定位及存儲(chǔ)做準(zhǔn)備。
本文對(duì)源文本進(jìn)行數(shù)據(jù)預(yù)處理,對(duì)每一行的數(shù)據(jù)進(jìn)行打標(biāo),將正向的情感詞標(biāo)記為正類,將負(fù)面情感詞標(biāo)記為負(fù)類。在Fast Text分類時(shí),為了能對(duì)文本準(zhǔn)確分類以及能更好地區(qū)別句子,例如區(qū)分“I don"t like this type of movies,but I like this one”和“I like this type of movie,but I don"t like this one”,本文在一個(gè)句子的詞向量中加入了3-gram特征。將n-gram特征以及原文的單詞作為詞向量作為Softmax輸入以達(dá)到分類目的。
2.1.2 Multi-head attention
本文使用多頭注意力機(jī)制(Multi-head attention)賦予情感詞極性權(quán)重從而提取文本中情感詞極性較大的詞向量并存儲(chǔ)到接下來(lái)的情感記憶模塊中。
本文將分類后的文本處理為句向量,作為注意力機(jī)制中Query、Key、Value 的輸入。經(jīng)過(guò)線性變換后,將經(jīng)過(guò)放縮點(diǎn)積注意力的結(jié)果進(jìn)行拼接來(lái)作為多頭注意力機(jī)制的結(jié)果。注意力機(jī)制模型圖如圖2 所示。用以下公式表示:


圖2 多頭注意力機(jī)制圖
2.1.3 記憶網(wǎng)絡(luò)
傳統(tǒng)的RNN/LSTM等模型的隱藏狀態(tài)或者Attention機(jī)制的記憶存儲(chǔ)能力太弱,無(wú)法存儲(chǔ)太多的信息,很容易丟失一部分語(yǔ)義信息,使用記憶網(wǎng)絡(luò)(memory networks)[22-23]通過(guò)引入外部存儲(chǔ)來(lái)記憶信息,提高在文本生成后能有較高的文本保存率。Memory network 框架圖如圖3所示。

圖3 記憶網(wǎng)絡(luò)框架圖
使用正向記憶模塊和負(fù)面記憶模塊對(duì)相應(yīng)的情感記憶模塊進(jìn)行更新,最后解碼器通過(guò)模塊中存儲(chǔ)的情感詞中提取最符合句子表達(dá)的情感詞匯進(jìn)行解碼,將重新生成的文本作為真實(shí)文本利用強(qiáng)化學(xué)習(xí)和生成對(duì)抗神經(jīng)網(wǎng)絡(luò)生成另一種極性的文本。具體在2.3節(jié)中進(jìn)行介紹。
在一句文本中,情感詞有很多,但每個(gè)情感詞表示的情感程度不同,首先找到對(duì)情感極性擁有最大判別力的情感詞。這一工作是通過(guò)情感文本分類器和自注意力(self-attention)來(lái)完成的。
為了能連接上下文,并體現(xiàn)情感詞極性在文本中的重要性,將at和LSTM中的隱藏層做積乘得到句向量,并將句向量c 作為全連接神經(jīng)網(wǎng)絡(luò)層的輸入從而得出源文本中的情感詞極性的預(yù)測(cè),其中at表示了第t 個(gè)單詞的注意力(attention)權(quán)重。用以下公式表示:

將句向量交給文本分類器以便于區(qū)分正面情感文本和負(fù)面情感文本。分類器使用Fast Text來(lái)處理。在訓(xùn)練中,情感詞相較于非情感詞會(huì)被賦予更高的權(quán)重,這樣at可用來(lái)區(qū)分情感詞和非情感詞。傳統(tǒng)的self-attention機(jī)制在有多個(gè)情感詞時(shí),這些情感詞的權(quán)重由1分配得到,但是,為了能識(shí)別最具極性的情感詞,需要每個(gè)情感詞的權(quán)重都由1 來(lái)分配,為了實(shí)現(xiàn)這一目的,將傳統(tǒng)的self-attention中分配權(quán)重的函數(shù)Softmax改為了sigmoid函數(shù)(attention 公式)。雖然sigmoid 函數(shù)將每個(gè)情感詞的權(quán)重分配到了0 和1 之間,但是并不能通過(guò)這些分配的權(quán)重在文本中利用情感詞的極性區(qū)分情感詞和非情感詞,所以采用了平均值的方法進(jìn)行情感詞的劃分,即將大于平均值的權(quán)重分配給1,將小于平均值的權(quán)重分配給0。在分配權(quán)重后,把定義權(quán)重的at重新定義為用? 表示識(shí)別的情感詞,表示識(shí)別的非情感詞。
在對(duì)文本分出情感詞和非情感詞之后,情感記憶模塊將用來(lái)保存情感詞性較大的情感詞。Encoder 和decoder都使用LSTM網(wǎng)絡(luò)。
為了把非情感詞文本序列輸入LSTM的encoder中:如果xi作為文本單詞,當(dāng)接近0 的時(shí)候趨近于xi,那么序列就可以當(dāng)作是非情感詞向量的encoder 序列,這樣就能滿足LSTM 的編碼器進(jìn)行編碼。將這一情感詞向量作為ht的文本向量輸入到LSTM最后一個(gè)模塊( ht,ct),即作為輸入的內(nèi)容的表示。
為了能使生成的文本情感符合上下文,來(lái)自源文本的情感詞向量能夠使情感詞記憶模塊進(jìn)行更新。因?yàn)樘崛〕隽藘蓚€(gè)情感詞性即正向的情感詞性和負(fù)向的情感詞性,所以用pos ∈Re×?來(lái)表示正向情感詞的記憶模塊,用neg ∈Re×?來(lái)表示負(fù)向情感詞的記憶模塊,其中e代表的是詞向量的大小,?代表記憶模塊的大小參數(shù)。
本文以正向情感詞為例,用Npos來(lái)表示存儲(chǔ)正向情感詞信息的句向量。將和xi帶入公式(3),得到Npos,公式表示為:

隨后通過(guò)自注意力機(jī)制尋找在正向詞情感記憶模塊矩陣中與相關(guān)情感詞最貼近的列向量。注意力機(jī)制的權(quán)重向量用Npos轉(zhuǎn)置矩陣與pos 相乘,并且利用Softmax 函數(shù)使乘積散布在0 和1 之間,用w 表示。為了使得正向情感記憶模塊pos 進(jìn)行更新,將存儲(chǔ)正向情感詞信息的句向量Npos和注意力機(jī)制的權(quán)重向量w 進(jìn)行外積得到一個(gè)新矩陣,然后和現(xiàn)有的正向情感記憶模塊pos 相加,隨后得到新的即更新的正向情感記憶模塊。公式表示為:

在情感記憶模塊的更新中由于關(guān)系到和注意力機(jī)制的權(quán)重向量w 的外積,所以存儲(chǔ)正向情感詞信息的句向量Npos的更新也顯得尤為重要。
氣體水合物生成實(shí)驗(yàn)體系包括供氣系統(tǒng)、溫壓調(diào)節(jié)系統(tǒng)、恒溫水浴系統(tǒng)和數(shù)據(jù)采集系統(tǒng)4大部分。圖1為水合物生成的實(shí)驗(yàn)裝置示意圖。
為了能有效判斷生成數(shù)據(jù)與真實(shí)數(shù)據(jù)間的損失值,本文使用policy gradient強(qiáng)化學(xué)習(xí)算法對(duì)梯度算法進(jìn)行優(yōu)化并用蒙特卡洛搜索樹(shù)指導(dǎo)GAN生成器每次訓(xùn)練的更新,使GAN 能處理離散型數(shù)據(jù)以及優(yōu)化生成器和辨別器。
本文給定一個(gè)假定的“真實(shí)”數(shù)據(jù)集,訓(xùn)練一個(gè)參數(shù)是α 的LSTM 作為生成器模型。用{ x1,…,xt-1,xt} 表示為每一個(gè)LSTM長(zhǎng)期記憶單元輸入的詞向量,將這些詞向量作為序列輸入到LSTM的隱藏層當(dāng)中,用一個(gè)更新函數(shù)g 進(jìn)行遞歸,并且使用Softmax函數(shù)來(lái)對(duì)隱藏層的輸出數(shù)據(jù)進(jìn)行概率分配。用以下公式表示:

從而生成序列y1:T=( y1,y2,…,yt,…,yT),并且yt∈Y ,其中Y 表示為存儲(chǔ)單詞的詞典,其中policy模型參數(shù)為Gα( yt|Yt-1)。同時(shí)也訓(xùn)練一個(gè)辨別器(discriminator)用于對(duì)生成器進(jìn)行指導(dǎo)改進(jìn)。生成器模型通過(guò)Policy Gradient和經(jīng)過(guò)辨別器得到的期望值進(jìn)行更新。
根據(jù)Policy Gradient算法,本文生成器的優(yōu)化目標(biāo)公式為:

其中,RT表示完整序列的期望值,s0表示初始狀態(tài),表示動(dòng)態(tài)取值函數(shù),其函數(shù)的定義為:

即對(duì)完整序列(Y1:t)進(jìn)行評(píng)估從而得到期望值,Dβ(Y1:t)表示生成的向量序列是“真實(shí)”數(shù)據(jù)的概率并作為期望值。但為了能對(duì)任意一個(gè)狀態(tài)的值都有定義,本文使用了蒙特卡洛樹(shù)搜索辦法[24]進(jìn)行改進(jìn),如此便得到了每個(gè)階段的期望值,通過(guò)Policy Gradient算法對(duì)生成器進(jìn)行訓(xùn)練。改進(jìn)后的動(dòng)態(tài)取值函數(shù)為:

判別器模型使用的是卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型。首先對(duì){x1,…,xt-1,xt}文本的詞向量構(gòu)建矩陣,作為卷積神經(jīng)網(wǎng)絡(luò)的最初的輸入數(shù)據(jù),用公式(12)來(lái)表示:

⊕表示對(duì)輸入的詞向量進(jìn)行矩陣運(yùn)算,然后通過(guò)卷積核對(duì)以一個(gè)單詞為單位的卷積核窗口大小進(jìn)行特征的提取,公式表示如下所示:

本文使用Dβ判別器作為期望函數(shù)的好處在于能動(dòng)態(tài)改進(jìn)生成模型,一旦生成器生成的序列經(jīng)判別器判別為接近真實(shí)數(shù)據(jù)的序列,那么判別器的更新公式如下:

即使用對(duì)數(shù)損失函數(shù)進(jìn)行判別器的訓(xùn)練。
本文算法步驟如下:
步驟1 文本分類
對(duì)源文本進(jìn)行停用詞和詞性標(biāo)注,并根據(jù)停用詞表去除無(wú)關(guān)詞匯。將進(jìn)行過(guò)數(shù)據(jù)處理后的文本作為CNN的輸入層,通過(guò)卷積和池化提取文本特征向量,最后通過(guò)Softmax函數(shù)輸出positive和negative兩種類別的文本。
步驟2 定位情感詞
分別將positive 文本和negative 文本作為L(zhǎng)STM 的輸入,在LSTM 的隱藏層中經(jīng)過(guò)公式(1)、(2)輸出情感詞極性較大的情感詞的權(quán)重。
步驟3 情感詞記憶
通過(guò)公式(3)~(6)得到情感詞極性權(quán)重在平均值以上的句向量并對(duì)情感記憶模塊進(jìn)行更新。最后在LSTM的輸出層根據(jù)上下文解碼出極性相反的文本。
步驟4 RFGAN生成文本
將步驟3 生成的文本作為生成器的原始文本并且對(duì)生成器和辨別器進(jìn)行預(yù)訓(xùn)練,通過(guò)公式(9)對(duì)生成器進(jìn)行優(yōu)化生成文本。訓(xùn)練時(shí)通過(guò)公式(10)、(11)對(duì)生成的句向量進(jìn)行評(píng)分并通過(guò)公式(14)對(duì)判別器進(jìn)行更新。
本文使用yelp 評(píng)論數(shù)據(jù)集來(lái)進(jìn)行訓(xùn)練。首先對(duì)yelp 數(shù)據(jù)集用FastText 進(jìn)行情感詞的分類,不同詞性的文章用不同的標(biāo)簽來(lái)表示。用分類處理后的數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練、訓(xùn)練和測(cè)試。在用CNN進(jìn)行情感分類時(shí),準(zhǔn)確率達(dá)到了93%。
首先定義了預(yù)訓(xùn)練過(guò)程中生成器的優(yōu)化器,即通過(guò)Adam Optimizer[25]來(lái)最小化交叉熵?fù)p失,隨后通過(guò)Data-LSTM網(wǎng)絡(luò)來(lái)產(chǎn)生生成器的訓(xùn)練數(shù)據(jù),利用數(shù)據(jù)讀取類來(lái)讀取每一個(gè)batch的數(shù)據(jù)。同時(shí),每隔一定的步數(shù),會(huì)計(jì)算生成器與Data-LSTM 的相似性。對(duì)于判別器的預(yù)訓(xùn)練則是通過(guò)生成器預(yù)訓(xùn)練完成后得到的負(fù)樣本和Data-LSTM模型生成的正樣本進(jìn)行結(jié)合,來(lái)對(duì)辨別器進(jìn)行預(yù)訓(xùn)練。
在本文中,將生成器生成的樣本即負(fù)樣本標(biāo)為0,將通過(guò)Data-LSTM模型得到的樣本標(biāo)為1。
為了能使實(shí)驗(yàn)收斂,在預(yù)訓(xùn)練時(shí)迭代次數(shù)為120次,在第65 次實(shí)驗(yàn)準(zhǔn)確度趨于平穩(wěn),正式訓(xùn)練迭代150次,在第110 次時(shí)實(shí)驗(yàn)趨于平穩(wěn)。在模型Data-LSTM中,bach 的大小為64,學(xué)習(xí)率設(shè)置為0.001,記憶模塊的參數(shù)?=60。詞向量的維度設(shè)置為128。對(duì)于不同任務(wù),用不同的卷積層來(lái)處理數(shù)據(jù),卷積核的大小在1到t之間,每個(gè)卷積核的數(shù)量在100 到200 之間。本文使用DropOut 和L2 正則化來(lái)防止過(guò)擬合的發(fā)生。在測(cè)試階段,用Gα生成了100 000 個(gè)測(cè)試數(shù)據(jù)和預(yù)訓(xùn)練時(shí)Gα生成的樣本進(jìn)行計(jì)算,并取得平均值。
用ACC 來(lái)表示文本語(yǔ)義轉(zhuǎn)換的準(zhǔn)確率,用CON 來(lái)表示文本情感轉(zhuǎn)換后文本的保存率,用BLEU[26]來(lái)計(jì)算輸出文本和源文本間的文本保存程度,BLEU 越高,代表模型轉(zhuǎn)換后的文本質(zhì)量越高,越接近人工翻譯水平。目標(biāo)公式表示如下:

其中,BP 表示懲罰因子,用來(lái)解決評(píng)分偏向性。BLEU采用加權(quán)平均對(duì)句子的生成質(zhì)量進(jìn)行評(píng)估。

其中,TP 表示實(shí)際為正,預(yù)測(cè)為正的樣本數(shù);FN 表示實(shí)際為正,預(yù)測(cè)為負(fù)的樣本數(shù);TN 表示實(shí)際為負(fù),預(yù)測(cè)為負(fù)的樣本數(shù);FP 表示實(shí)際為負(fù),預(yù)測(cè)為正的樣本數(shù)。

doc1和doc2分別表示為源文本和生成文本的共有字符數(shù)量,length(doc)表示文本的最長(zhǎng)字符數(shù)。
本實(shí)驗(yàn)與2019年國(guó)際人工智能聯(lián)合會(huì)議以及2018年在AAAI 國(guó)際人工智能聯(lián)合會(huì)議上發(fā)表的文本風(fēng)格遷移的實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比分析,結(jié)果中采用了論文中各個(gè)模型的結(jié)果與本文結(jié)果進(jìn)行對(duì)比。在實(shí)驗(yàn)中,SMGAN平均在第15輪的時(shí)候準(zhǔn)確率開(kāi)始收斂,而CAE和MAE模型在第25輪左右開(kāi)始收斂,Retri、BackTrans、Del模型均在15到25輪之間開(kāi)始收斂,并且SMGAN和其他5個(gè)模型對(duì)源文本的文本保存率對(duì)比也有1%左右的提升。對(duì)比結(jié)果如表1~3、圖4所示。

表1 模型準(zhǔn)確率和BLEU對(duì)比

表2 對(duì)Data-LSTM模型測(cè)試
本文對(duì)各個(gè)模型在三維空間中散點(diǎn)分布進(jìn)行了對(duì)比,從圖4可以清晰地看出本文模型在擁有較高的準(zhǔn)確率上還保持了高BLEU評(píng)分以及高文本保存率。
本文在使用SMGAN 生成文本之前需要利用Data-LSTM模型生成“真實(shí)數(shù)據(jù)”,所以為了測(cè)試Data-LSTM模型的有效性對(duì)比了加入情感記憶模塊和未加入情感記憶模塊兩種情況下文本生成的精度和BLEU 的性能。如表2所示。

表3 對(duì)比模型生成句子示例

圖4 各模型散點(diǎn)對(duì)比
表3 中顯示了由不同模型生成的幾個(gè)隨機(jī)選擇的示例句子,這些示例能清楚地表明本文提出的模型可以生成與基線相比在輸入文本上更具語(yǔ)義相關(guān)性的句子。
由表1 和表2 可知兩種對(duì)比模型的準(zhǔn)確率都比較高,但是BLEU 值卻比較低,很大的可能是因?yàn)樵诓皇褂闷叫姓Z(yǔ)料庫(kù)的情況下,試圖將情感詞向量與句向量中的情感詞信息進(jìn)行分離,導(dǎo)致了只是輸出具有目標(biāo)情緒的句子。而Data-LSTM 模型因?yàn)槭褂昧藄elf-attention機(jī)制,明確地刪除了情感詞,從而對(duì)源文本的內(nèi)容的保護(hù)有了較大的改進(jìn)。而從加入情感記憶模塊和未加入情感記憶模塊的對(duì)比中可以看出在加入了情感記憶模塊后,準(zhǔn)確率有62.39個(gè)百分點(diǎn)的改進(jìn),這體現(xiàn)出了情感記憶模塊是保證文本情感轉(zhuǎn)換的重要部分。
對(duì)比表3 得到的句子生成示例,相比之下,本文模型使得輸入的文本具有更高的語(yǔ)義相關(guān)性。CAE 模型通過(guò)學(xué)習(xí)與風(fēng)格無(wú)關(guān)的內(nèi)容來(lái)表示成向量,MAE 模型通過(guò)刪除特定樣式屬性詞進(jìn)而很好地保留內(nèi)容。但是當(dāng)輸入的句向量中含有隱式表達(dá)樣式時(shí),這兩個(gè)系統(tǒng)可能會(huì)不能很好地訓(xùn)練出成功的示例。而本文的模型在保持內(nèi)容和保持準(zhǔn)確率以及提升BLEU 評(píng)分的工作上實(shí)現(xiàn)了較好的平衡。
本文針對(duì)語(yǔ)義反轉(zhuǎn)中不使用平行語(yǔ)料庫(kù)以及針對(duì)生成對(duì)抗神經(jīng)網(wǎng)絡(luò)生成文本加入了情感記憶模塊進(jìn)行改進(jìn)。本文先使用FastText 文本分類方法對(duì)源文本進(jìn)行情感分類,然后通過(guò)self-attention 方法對(duì)分類后的正向情感文本和負(fù)向情感文本分別通過(guò)權(quán)重的大小提取具有最大情感極性的情感詞,接著將這些情感詞分別放入positive記憶模塊和negative記憶模塊,再通過(guò)解碼的方式輸出文本作為生成對(duì)抗神經(jīng)網(wǎng)絡(luò)預(yù)處理的數(shù)據(jù)。生成器通過(guò)強(qiáng)化學(xué)習(xí)中的policy gradient算法反饋一個(gè)權(quán)重值,通過(guò)這個(gè)權(quán)重來(lái)更新生成器的參數(shù),辨別器則通過(guò)MC search reward 算法立即評(píng)估當(dāng)前得到的詞向量的好壞,從而對(duì)判別器進(jìn)行更新優(yōu)化。通過(guò)對(duì)比實(shí)驗(yàn)可以看出本文的方法對(duì)數(shù)據(jù)集情感轉(zhuǎn)換的BLEU 和Accuracy 明顯的提高,但本文方法還有很大的提升空間,如何使文本內(nèi)容和風(fēng)格一起進(jìn)行轉(zhuǎn)換,從而達(dá)到更好的不同模型間的優(yōu)勢(shì)互補(bǔ)是下一步工作的重點(diǎn)。