曾澤宇,程芃森,楊頻
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610065)
文本情感遷移是自然語言處理領(lǐng)域中的一項(xiàng)新興技術(shù),其目的是將文本中的情感屬性遷移到指定情感,并將文本的非情感內(nèi)容予以保留。但由于語言表達(dá)的多樣性以及文本的離散性,文本情感遷移技術(shù)成為了一項(xiàng)具有挑戰(zhàn)性的任務(wù)[1]。
目前多數(shù)方法采用基于分離情感和內(nèi)容的方法,主要包含兩個(gè)步驟:首先分離文本中情感和非情感內(nèi)容,再將分離后的非情感內(nèi)容與目標(biāo)情感融合。在本文中,我們采用CycleGAN[2]結(jié)構(gòu)來訓(xùn)練基于Transformer[3]模型的生成器,實(shí)現(xiàn)了一步策略,即在無需分離內(nèi)容和情感的條件下實(shí)現(xiàn)情感遷移任務(wù),一定程度上改善了文本糾纏和隱式表達(dá)語句無法進(jìn)行遷移的問題。我們的方法做出了以下貢獻(xiàn):
(1)與多數(shù)傳統(tǒng)方法不同,我們的方法實(shí)現(xiàn)了一步策略,無需將情感和非情感內(nèi)容分離,有效降低了遷移過程中的信息損失并達(dá)到較高的遷移準(zhǔn)確率。實(shí)驗(yàn)結(jié)果顯示,在遷移準(zhǔn)確率和內(nèi)容不變性上均有良好的效果。
(2)目前大多數(shù)情感遷移任務(wù)都是針對英文進(jìn)行研究,但由于中文文本語義信息更加豐富,情感遷移任務(wù)更難實(shí)現(xiàn),少有針對中文的研究。在本文中,我們在中文下進(jìn)行實(shí)驗(yàn),并取得了較好的效果。
在近些年,風(fēng)格遷移任務(wù)在計(jì)算機(jī)視覺領(lǐng)域中得到廣泛研究,Gatys等[4]通過實(shí)驗(yàn)證明CNN網(wǎng)絡(luò)能夠分別提取出圖像的內(nèi)容特征和風(fēng)格特征,從而提出了將任意原始圖像和目標(biāo)風(fēng)格相結(jié)合的方法。隨后,Zhu等[2]針對缺少平行數(shù)據(jù)的問題,基于生成對抗網(wǎng)絡(luò)從兩個(gè)具有不同風(fēng)格且非平行的數(shù)據(jù)域中提取出風(fēng)格特征,實(shí)現(xiàn)了在沒有平行數(shù)據(jù)條件下的風(fēng)格遷移。受圖像領(lǐng)域風(fēng)格遷移任務(wù)的啟發(fā),近年自然語言處理領(lǐng)域誕生了針對文本的情感遷移任務(wù),得到廣泛關(guān)注,并不斷有新方法提出,其中主流方法包括情感分離和情感復(fù)寫。
基于情感分離的方法是在文本情感遷移任務(wù)中廣泛使用的方法,Shen、Fu、Hu等人[5-7]均采取了該方法,通過對抗訓(xùn)練的方式將文本內(nèi)容從原句中分離,再將分離后的文本輸入到指定的情感解碼器中。此方法能夠達(dá)到一定的情感遷移準(zhǔn)確性,但是在內(nèi)容不變性上效果不理想。其主要原因在于缺乏平行語料,導(dǎo)致模型難以準(zhǔn)確區(qū)分情感信息和非情感信息,從而造成了比較嚴(yán)重的文本屬性糾纏[8]問題。Xu等[9]假定文本情感屬性是通過特定的詞匯表達(dá)出來的,只要改變這些特定詞匯,就能夠直接改變整句文本的情感屬性,通過使用自注意力機(jī)制(self-attention)得到的注意力權(quán)重作為分類器特征,從而找出情感屬性詞并刪除,將其替換為期望的目標(biāo)情感詞匯。Hu等人[8]提出的MaskAE模型,在上述刪除情感詞方法的基礎(chǔ)上,采用大型情感詞典來匹配原句中的情感詞,將匹配到的情感詞遮蔽后進(jìn)行替換,但該方法不可避免的需要維護(hù)一個(gè)大型詞典,但通常構(gòu)建和維護(hù)能夠全面覆蓋各種詞匯的詞典是一個(gè)比較困難的任務(wù)。
在基于情感復(fù)寫的方法中,Lample等[10]指出分離情感方法并非完善的解決方法,同時(shí)證明了分離情感的操作在文本情感遷移任務(wù)中并非必須。Luo等[11]基于強(qiáng)化學(xué)習(xí)的框架實(shí)現(xiàn)了無需內(nèi)容和情感分離的遷移方法,需要訓(xùn)練兩個(gè)序列模型來遷移情感,其中一個(gè)模型將原始文本作為遷移成目標(biāo)情感文本,另一個(gè)模型則將目標(biāo)情感文本遷移回原始文本,同時(shí)通過兩個(gè)獎(jiǎng)勵(lì)函數(shù)來保證內(nèi)容保留和情感遷移成功率。Dai等[12]提出Style Transformer模型,首次將Transformer模型應(yīng)用到文本情感遷移任務(wù)上,避免了先前研究廣泛使用的RNN模型造成的長期依賴問題。
我們的方法采用了情感復(fù)寫的方法,基于CycleGAN網(wǎng)絡(luò)結(jié)構(gòu)通過對抗來訓(xùn)練來生成器和鑒別器,并通過Transformer模型的注意力機(jī)制來自動(dòng)捕獲句子中的情感特征。
在本文中,我們基于CycleGAN網(wǎng)絡(luò)結(jié)構(gòu)來訓(xùn)練生成器G,通過兩個(gè)鑒別器D1和D2來判斷兩種不同情感的文本,模型訓(xùn)練過程如圖1所示。
圖1 模型訓(xùn)練過程
CycleGAN[6]中構(gòu)建了兩個(gè)對稱的GAN,能夠?qū)崿F(xiàn)兩個(gè)遷移方向的任務(wù),解決了在缺少平行數(shù)據(jù)集的情況下,模型無法學(xué)習(xí)到從X(Y)屬性數(shù)據(jù)到目標(biāo)Y(X)屬性數(shù)據(jù)的問題。CycleGAN通過對抗損失函數(shù)來訓(xùn)練生成器G1學(xué)習(xí)映射X→Y,并使得鑒別器D1難以區(qū)分生成樣本y?∈G(X),生成器G2學(xué)習(xí)映射Y→X,同時(shí)G1和G2構(gòu)成了一個(gè)循環(huán)結(jié)構(gòu),網(wǎng)絡(luò)通過循環(huán)一致性損失函數(shù)以確保內(nèi)容不變性,即G2(G1()x)≈x。對于y∈Y的數(shù)據(jù)做同樣的處理。
在網(wǎng)絡(luò)中,通過構(gòu)建多個(gè)損失函數(shù)來保證跨域遷移成功率和內(nèi)容不變性,其中每個(gè)方向的情感遷移任務(wù)主要包含兩個(gè)損失函數(shù),分別為對抗損失函數(shù)LGAN和循環(huán)一致性損失函數(shù)Lcycle。以屬性X→Y數(shù)據(jù)的情感遷移為例,LGAN的公式如下:
其中G1(x)表示屬性x∈X數(shù)據(jù)通過生成器G1遷移為具有Y屬性數(shù)據(jù),鑒別器D1用于鑒別遷移樣本G1(x)和真實(shí)樣本y∈Y。
循環(huán)一致性損失函數(shù)計(jì)算數(shù)據(jù)x和x?的分布差異。為通過生成器G1進(jìn)行情感遷移后再通過生成器G2遷移回原始情感的數(shù)據(jù),即因此損失函數(shù)計(jì)算公式如下:
那么總的損失函數(shù)包括兩個(gè)對抗損失函數(shù)LGAN和循環(huán)一致性損失函數(shù)Lcycle,公式如下:
在我們的方法中,為了讓生成器更容易捕獲文本情感特征,生成器采用了Style Transformer[12]模型。Style Transformer模型上為了實(shí)現(xiàn)更好的實(shí)現(xiàn)情感遷移任務(wù),相較傳統(tǒng)Transformer模型在嵌入層對輸入語句x=(x1,…,xn)進(jìn)行嵌入的同時(shí),還對輸入語句的情感s進(jìn)行嵌入,即編碼器的輸入為(s,x),Style Transformer的公式如下:
在本文中,由于是兩個(gè)數(shù)據(jù)域之間的情感遷移任務(wù),即X→Y(Y→X),我們在每個(gè)情感遷移方向都設(shè)置了一個(gè)情感分類器,包含嵌入層和線性層。鑒別器D1輸入數(shù)據(jù)為生成數(shù)據(jù)?=G(s2,y),鑒別器D2輸入數(shù)據(jù)為生成數(shù)據(jù)?=G(s1,y),并分別對兩個(gè)方向的生成序列作出真假判斷,公式如下:
模型訓(xùn)練過程包含兩個(gè)階段,第一階段為預(yù)訓(xùn)練生成器G和鑒別器D,第二階段為對抗訓(xùn)練生成器G和鑒別器D。
在第一階段訓(xùn)練過程中,我們首先預(yù)訓(xùn)練生成器G,使得生成器G能夠復(fù)寫兩個(gè)不同情感數(shù)據(jù)中的文本,即G(s1,x)≈x和G(s2,y)≈y,定義了損失函數(shù)Lself,通過最小化生成樣本G(s1,x)和真實(shí)樣本x∈X以及G(s2,y)和y∈Y的交叉熵來訓(xùn)練生成器G,即采用了最大似然估計(jì)(maximum likelihood estimation)的方法[13],Lself公式如下:
預(yù)訓(xùn)練生成器G后,我們對鑒別器D1和D2進(jìn)行預(yù)訓(xùn)練,預(yù)訓(xùn)練鑒別器是為了在對抗訓(xùn)練的初始階段就能給予生成序列更準(zhǔn)確的判斷,使得D1和D2能夠區(qū)分不同數(shù)據(jù)中的情感S1和S2。
在第二階段訓(xùn)練中,通過對抗訓(xùn)練來進(jìn)行情感遷移任務(wù)的訓(xùn)練,我們引入了三個(gè)損失函數(shù),包括對抗損失函數(shù)LGAN1、LGAN2和循環(huán)一致性損失Lcycle,目的是為了提高情感遷移成功率和降低內(nèi)容遷移損失。
其中對抗損失函數(shù)為了使生成器G能夠生成鑒別器D1評價(jià)為真的屬性數(shù)據(jù)y?=G(s2,x),同時(shí)能夠生成鑒別器D2評價(jià)為真的數(shù)據(jù)x?=G(s1,y)。LGAN1如下:
循環(huán)一致性損失函數(shù)用于保證遷移數(shù)據(jù)的內(nèi)容不變,公式如下:
在鑒別器D1和D2的訓(xùn)練過程中,為了鑒別器能夠區(qū)別真實(shí)樣本y∈Y(x∈X)和生成樣本y?(x?),同時(shí)使得生成器G生成更符合真實(shí)樣本分布的數(shù)據(jù),引入了損失函數(shù)Ldis1和Ldis2,通過真實(shí)樣本和生成樣本并最小化損失函數(shù)值來訓(xùn)練鑒別器。對于鑒別器D1,我們將真實(shí)數(shù)據(jù)y∈Y設(shè)定為真標(biāo)簽數(shù)據(jù)(y,1),將生成數(shù)據(jù)設(shè)定為假標(biāo)簽數(shù)據(jù)同理,對于鑒別器D2,我們將真實(shí)數(shù)據(jù)x∈X設(shè)定為真標(biāo)簽數(shù)據(jù)(x,1),將生成數(shù)據(jù)設(shè)定為假標(biāo)簽數(shù)據(jù)Ldis1公式如下:
中文數(shù)據(jù)集為網(wǎng)上收集數(shù)據(jù),均來自電商平臺(tái)商品評論,總共282811條評論數(shù)據(jù),其中包含積極和消極兩種情感傾向,積極情感傾向數(shù)據(jù)212966條,消極情感數(shù)據(jù)69845條,數(shù)據(jù)平均長度為13.3字,最長評論長度20字。為了驗(yàn)證和測試模型,我們從中隨機(jī)提取了1600條評論作為驗(yàn)證集,600條評論作為測試集。
在實(shí)驗(yàn)中,生成器的編碼器和解碼器均為4層Transformer結(jié)構(gòu),每一層的多頭注意力機(jī)制中head數(shù)量設(shè)置為4,模型采用Adam動(dòng)態(tài)優(yōu)化算法,學(xué)習(xí)率為0.0001。我們使用了Stanford CoreNLP[14]進(jìn)行中文分詞,Transformer隱藏層大小為300維;詞向量采用了預(yù)訓(xùn)練的中文word2vec詞向量[15],維度300維;訓(xùn)練批次大小為48。
由于當(dāng)前缺乏針對中文的研究,且當(dāng)前文本生成評價(jià)指標(biāo)難以準(zhǔn)確有效的評價(jià)中文生成文本的質(zhì)量,所以在實(shí)驗(yàn)中我們采取情感遷移成功率作為主要評價(jià)指標(biāo),遷移成功率通過分類器進(jìn)行自動(dòng)計(jì)算,分類器模型基于Fasttext模型[16]。實(shí)驗(yàn)結(jié)果顯示,我們的模型在情感遷移任務(wù)上達(dá)到了82.3%的遷移成功率。
其中部分測試集樣本結(jié)果如表1所示,通過結(jié)果可以看出我們的模型在針對中文的實(shí)驗(yàn)下總體能達(dá)到比較好的效果。
表1 測試樣本結(jié)果
從測試樣本中可以看出,在大多數(shù)情況下,如序號1、2、3、6、8等測試樣本中,模型能夠準(zhǔn)確無損的實(shí)現(xiàn)情感遷移任務(wù),保持了非情感內(nèi)容不變并實(shí)現(xiàn)情感屬性的遷移。但在一些測試樣本中,模型也出現(xiàn)一定問題,比如在原句5的測試中,模型出現(xiàn)了遷移用詞不當(dāng)?shù)膯栴},模型將“實(shí)惠”復(fù)寫為“過時(shí)”,雖然實(shí)現(xiàn)了情感上的反轉(zhuǎn),但是“過時(shí)”在此處形容不恰當(dāng)。在序號4、7的測試樣本中,模型在生成語句時(shí)出現(xiàn)生成未能正確截止的問題,比如生成4的中,模型雖然成功實(shí)現(xiàn)了情感遷移,但是在句尾多生成了“好,”。通過在基于中文數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果顯示,我們的模型總體上達(dá)到良好的效果,在大多數(shù)情況下能夠良好地完成情感遷移任務(wù)。
本文研究了針對中文非平行數(shù)據(jù)的文本情感遷移任務(wù),與傳統(tǒng)需要將情感和內(nèi)容分離的方法不同,采取了情感復(fù)寫的方法,在CycleGAN的基礎(chǔ)上來訓(xùn)練模型,采用了改進(jìn)的Transformer模型作為生成器,達(dá)成了一步策略。該方法自動(dòng)提取不同數(shù)據(jù)之間的情感特征,通過對抗損失函數(shù)和循環(huán)一致性損失函數(shù)來分別保證情感遷移的準(zhǔn)確性和內(nèi)容不變性。通過中文數(shù)據(jù)集實(shí)驗(yàn)結(jié)果顯示,該方法在情感遷移準(zhǔn)確率上達(dá)到了較好的指標(biāo),在大多數(shù)場景下能夠準(zhǔn)確有效地實(shí)現(xiàn)情感遷移任務(wù)。