嚴(yán) 丹,何 軍+,劉紅巖,杜小勇
1.數(shù)據(jù)工程與知識工程教育部重點(diǎn)實(shí)驗(yàn)室(中國人民大學(xué) 信息學(xué)院),北京 100872
2.清華大學(xué) 經(jīng)濟(jì)管理學(xué)院,北京 100084
在線唱歌平臺提供了一種隨時(shí)隨地演唱歌曲、發(fā)布演唱的音樂作品以及與他人交流的新型娛樂方式,近年來吸引了大量的用戶。用戶演唱的音樂作品發(fā)布到平臺上之后,其他用戶播放音樂作品并提供反饋,如寫下評論或者點(diǎn)贊。發(fā)布的作品被其他用戶評論是平臺用戶之間分享和交流的方式之一,也可以激勵(lì)用戶發(fā)布更多的作品。但是對于一些新用戶的作品或者新發(fā)布的作品,由于播放次數(shù)很少或者沒有,因此沒有用戶發(fā)表評論。對音樂作品自動(dòng)生成評論可以在一定程度上解決此問題。如何自動(dòng)生成準(zhǔn)確且多樣化的評論是此類研究的關(guān)鍵。對于用戶發(fā)表的每一個(gè)音樂作品,平臺都會給出一個(gè)評級信息,體現(xiàn)音樂作品的演唱水平。本文發(fā)現(xiàn)對于具有不同表現(xiàn)等級的音樂作品,用戶提供的評論文本存在差異,等級越高的音樂作品,其評論文本的多樣性越高。因此,本文研究考慮音樂作品評級信息的評論文本自動(dòng)生成的方法。
生成式對抗網(wǎng)絡(luò)(generative adversarial net,GAN)[1]是近年來提出的一種深度學(xué)習(xí)網(wǎng)絡(luò)模型,在文本生成領(lǐng)域[2]也有較好的表現(xiàn)。它使用判別器來指導(dǎo)生成器的文本生成過程。但是用GAN自動(dòng)生成的文本缺乏多樣性,已有研究在解決生成文本缺乏多樣性的問題的同時(shí),忽略了生成文本的質(zhì)量,即句子的準(zhǔn)確性和流暢性。
為了解決這些問題,本文提出了基于生成式對抗網(wǎng)絡(luò)的文本自動(dòng)生成模型——GradeGAN。該模型引入等級判別器,使其與文本判別器共同學(xué)習(xí)來指導(dǎo)生成器的文本生成,使用文本判別器是指導(dǎo)生成器生成質(zhì)量更高的文本,使用等級判別器是指導(dǎo)生成器生成更加符合音樂等級的文本。
本文的主要貢獻(xiàn)如下:
(1)提出了一種新的文本自動(dòng)生成模型Grade-GAN,用于為音樂作品自動(dòng)生成評論文本,使生成的評論符合音樂等級信息。
(2)在實(shí)際在線唱歌平臺數(shù)據(jù)集中對所提模型進(jìn)行了性能評估,驗(yàn)證了所提方法的有效性。
文本生成是自然語言處理的一個(gè)重要研究領(lǐng)域。一個(gè)標(biāo)準(zhǔn)的Seq2Seq(sequence-to-sequence)[3]網(wǎng)絡(luò)語言模型在自然語言生成領(lǐng)域表現(xiàn)良好,但是存在兩個(gè)主要缺點(diǎn):首先,基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的模型通過最大似然方法進(jìn)行訓(xùn)練,該方法在訓(xùn)練階段存在暴露偏差[4]。其次,用于訓(xùn)練的損失函數(shù)是單詞級的,但是性能通常是在句子級評估的。為了解決這些問題,提出了利用生成式對抗網(wǎng)絡(luò)(GAN)實(shí)現(xiàn)文本自動(dòng)生成的模型。
生成式對抗網(wǎng)絡(luò)(GAN)是近年來新興的一類深度生成模型。雖然GAN在計(jì)算機(jī)視覺應(yīng)用方面取得了巨大的成功[5],由于離散序列不可微的特性[6],GAN應(yīng)用于自然語言生成的研究相對很少。一些工作試圖解決這個(gè)問題,其中用強(qiáng)化學(xué)習(xí)的策略來處理不可微問題最為常見[2,7-8],其中SeqGAN[2]是這類問題的代表,但是這類方法不能生成具有不同屬性的文本。
針對生成不同屬性的文本,SentiGAN[9]取得了比較好的結(jié)果,它是由多個(gè)極性生成器和一個(gè)多類文本判別器組成,可以根據(jù)不同的情感值生成相應(yīng)的情感文本,但是該模型在提升多樣性的同時(shí)降低了生成文本的準(zhǔn)確性。因此本文的研究旨在提出一種生成具有不同屬性的文本的方法,如針對不同評論等級的文本生成的方法,在提升多樣性的同時(shí)提升準(zhǔn)確度。
給定一組音樂作品集S和評論等級集合G,假設(shè)每個(gè)作品i∈S的評級為gi∈G,其發(fā)布用戶的以往作品評論集為singeri,與i的歌曲相同的其他發(fā)布作品的評論集為songi,將這兩個(gè)評論集合并作為作品i的相關(guān)評論集SCi。本文的研究問題為:當(dāng)一個(gè)新作品i發(fā)布時(shí),根據(jù)其評級gi和相關(guān)評論集SCi生成評論文本Ci={c1,c2,…,ct,…,cT}。ct∈C,C是候選詞的詞匯表。評級反映了音樂作品的演唱水平,分為3個(gè)等級,即G={1,2,3}。為了描述的簡潔性,下文的描述中省略上標(biāo)中的作品編號i。
GradeGAN 模型基于SeqGAN 的架構(gòu),引入等級判別器,其基本結(jié)構(gòu)如圖1所示。這個(gè)模型包括編碼器、生成器、文本判別器和等級判別器4個(gè)主要模塊。
給定一個(gè)音樂作品的相關(guān)評論集和評級的具體等級,模型輸出為由T個(gè)詞構(gòu)成的文本C={c1,c2,…,ct,…,cT}。其中編碼器主要是提取輸入文本的信息,生成器基于該提取的信息生成評論文本的每個(gè)詞,其生成過程利用強(qiáng)化學(xué)習(xí)的過程實(shí)現(xiàn)。具體來說,假設(shè)當(dāng)前已經(jīng)生成了t-1 個(gè)詞:C1:t-1=(c1,c2,…,ct-1),則在t-1 時(shí)刻,狀態(tài)(state)st-1由這已經(jīng)生成的t-1個(gè)詞表示,生成器生成下一個(gè)詞的動(dòng)作(action)就是在候選詞表中選擇概率最大的詞,動(dòng)作確定之后,下一時(shí)刻的狀態(tài)就確定了。為了確定每個(gè)狀態(tài)下的動(dòng)作,以選取合適的詞,對于可能的候選詞(即動(dòng)作),借助文本判別器和等級判別器來度量該動(dòng)作的反饋(reward),根據(jù)策略梯度(policy gradient)學(xué)習(xí)策略來學(xué)習(xí)動(dòng)作的選擇策略。
生成器生成的評論文本用來訓(xùn)練文本判別器和等級判別器,由二者共同作用得到反饋用于訓(xùn)練生成器的生成過程,由此交替訓(xùn)練生成器、文本判別器和等級生成器。下面對各個(gè)模塊進(jìn)行詳細(xì)解釋。
長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[10]和門控循環(huán)單元(gated recurrent unit,GRU)[11]等門控循環(huán)神經(jīng)網(wǎng)絡(luò)在文本生成相關(guān)任務(wù)中相比于簡單的RNN性能表現(xiàn)更好[12-13],本文使用LSTM作為編碼器結(jié)構(gòu)和生成器結(jié)構(gòu)。
LSTM中時(shí)間步t單元的計(jì)算過程為:
其中,[ht-1,ct]為時(shí)間步t時(shí)上一個(gè)隱藏層向量ht-1和當(dāng)前輸入ct的向量級聯(lián),⊙表示元素積。
3.2.1 生成器預(yù)訓(xùn)練
在生成器的預(yù)訓(xùn)練階段,文本利用編碼器從音樂作品的相關(guān)評論集中提取有效信息作為生成器的輸入。給定音樂作品的相關(guān)評論集SC={sc1,sc2,…,sct,…,scL},將SC輸入到編碼層,經(jīng)過編碼層編碼輸出最后一個(gè)隱藏層的狀態(tài)hL,將hL作為生成器隱藏層的初始狀態(tài)輸入到生成器中。
使用最大似然估計(jì)(maximum likelihood estima-tion,MLE)來預(yù)訓(xùn)練編碼器和參數(shù)為θ的生成器Gθ,也就是使生成的評論文本與真實(shí)評論文本x={x1,x2,…,xt-1,xt,…,xT}的負(fù)對數(shù)似然函數(shù)最小化,即損失函數(shù)為:
Fig.1 Framework of GradeGAN圖1 GradeGAN的模型結(jié)構(gòu)
3.2.2 策略梯度學(xué)習(xí)
在生成器策略梯度學(xué)習(xí)階段,生成器Gθ在生成文本的過程中,使用文本判別器和等級判別器共同作用來調(diào)整生成器的生成過程。文本判別器記作D?,訓(xùn)練參數(shù)為?;等級判別器記作gradeφ,訓(xùn)練參數(shù)為φ。
在時(shí)間步t,狀態(tài)st-1是當(dāng)前已經(jīng)生成的評論序列C1:t-1=(c1,c2,…,ct-1),要選擇下一個(gè)詞ct。用Gθ(ct|C1:t-1)表示選擇下一個(gè)詞的概率分布。用文本判別器D?判斷生成文本為真時(shí)的概率,記作Q;用等級判別器gradeφ判斷生成文本的等級,其中與真實(shí)評級相同的等級的概率,記作M。用Q和M共同作為生成器生成過程中每個(gè)動(dòng)作的反饋(reward)。
在策略梯度學(xué)習(xí)階段,使用蒙特卡洛搜索在每一步都通過搜索得到完整句子,在文本判別器和等級判別器的共同作用下,生成器的優(yōu)化目標(biāo)就是令從初始狀態(tài)開始的反饋?zhàn)畲蠡?/p>
其中,RT是評論文本由文本判別器判斷為真的反饋,WT是評論文本由等級判別器判斷為真實(shí)評論等級的反饋。表示在狀態(tài)s0下選擇下一個(gè)詞c1時(shí),由文本判別器得到的反饋。表示在狀態(tài)s0下選擇下一個(gè)詞c1時(shí),由等級判別器得到的反饋。
因?yàn)槲谋九袆e器和等級判別器都屬于文本分類任務(wù),且卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[14]在文本分類任務(wù)中性能突出,所以本文選擇CNN作為文本判別器模型和等級判別器模型。
在CNN 分類模型中,假設(shè)輸入的詞序列為(a1,a2,…,aT),要對其進(jìn)行分類,首先需要將離散的詞編碼級聯(lián)成向量矩陣:
其中,at∈Rk是k維的詞向量,⊕是建立矩陣ε的垂直級聯(lián)運(yùn)算符,ε∈RT×k。
然后對矩陣ε進(jìn)行卷積、池化操作,卷積核的大小為ω∈Rl×k,對l個(gè)詞大小的窗口進(jìn)行卷積操作,生成一個(gè)新的特征圖:
其中,?是卷積操作,b是偏置向量,ρ是一個(gè)非線性函數(shù),本文使用Relu 函數(shù)。在實(shí)驗(yàn)中使用了不同大小的卷積核來提取特征。通過卷積操作后,得到新的特征圖為:
其中,Wo、bo是輸出層的權(quán)重和偏置。σ依據(jù)類別的個(gè)數(shù)不同,選擇sigmoid或者softmax函數(shù)。
3.3.1 判別器預(yù)訓(xùn)練
在生成器預(yù)訓(xùn)練收斂后,利用生成器生成的評論文本來預(yù)訓(xùn)練文本判別器和等級判別器。
在文本判別器D?模型中,輸入的序列是真實(shí)評論文本和生成的評論文本,有真假兩個(gè)類別。通過CNN 網(wǎng)絡(luò)分類,在輸出層就可以得到生成的評論文本為真的概率。在優(yōu)化文本判別器時(shí),利用最小化交叉熵作為目標(biāo)函數(shù):
在等級判別器gradeφ模型中,輸入的序列是生成的評論文本,分類的類別個(gè)數(shù)是音樂評級的等級個(gè)數(shù),在本文中,有3 個(gè)等級。通過CNN 網(wǎng)絡(luò)分類,在輸出層利用softmax得到生成的評論文本在評級的各等級下的概率分布。
在優(yōu)化等級判別器時(shí),因?yàn)楦鱾€(gè)等級之間有順序關(guān)系,采用最小均方差(mean-square error,MSE)作為目標(biāo)函數(shù):
其中,gi是第i個(gè)評論文本對應(yīng)作品的真實(shí)評級,是評論文本被等級判別器最大概率預(yù)測的等級。
3.3.2 策略梯度學(xué)習(xí)
在策略梯度學(xué)習(xí)階段,當(dāng)前狀態(tài)為st-1,生成下一個(gè)詞ct時(shí),文本判別器判斷為真時(shí)得到的反饋記為等級判別器判斷其等級為真實(shí)等級對應(yīng)的反饋記為
在時(shí)刻t時(shí),為了衡量下一個(gè)詞ct的反饋,采用蒙特卡洛搜索方法,基于當(dāng)前已經(jīng)生成的詞和下一個(gè)詞ct搜索得到N個(gè)完整句子,由文本判別器和等級判別器對這些完整句子進(jìn)行判別。將這N個(gè)句子分別輸入到文本判別器和等級判別器中,將其判斷為真實(shí)文本的概率N)求平均,將其判斷為真實(shí)評級的概率1,2,…,N)求平均。這兩個(gè)值分別作為反饋和
生成器生成的評論文本用來訓(xùn)練文本判別器和等級判別器,由二者共同作用得到反饋用于訓(xùn)練生成器。因此在文本判別器D?和等級判別器gradeφ參數(shù)更新后,就可以用來更新生成器Gθ。生成器Gθ是通過策略梯度學(xué)習(xí)的方法來訓(xùn)練,目標(biāo)函數(shù)為Jθ,使目標(biāo)函數(shù)最大化,就可以更新參數(shù)θ。Jθ的梯度公式為:
在式(10)的基礎(chǔ)上,可以去掉期望項(xiàng),構(gòu)造一個(gè)無偏估計(jì)再繼續(xù)推導(dǎo):
其中,C1:t-1是生成器生成評論文本過程中的中間值,期望值在生成器生成過程中通過采樣方法近似得到,則生成器Gθ的參數(shù)θ更新為:
其中,αh表示學(xué)習(xí)率。
4.1.1 實(shí)驗(yàn)數(shù)據(jù)
實(shí)驗(yàn)數(shù)據(jù)集是來自StarMaker 在線唱歌平臺上2017年12月60 000個(gè)作品的評論文本信息和作品的音樂等級。音樂等級是根據(jù)作品中歌手的音準(zhǔn)系統(tǒng)自動(dòng)打分,并將分?jǐn)?shù)分為3 個(gè)等級,這3 個(gè)等級就是本文所指的音樂評級的等級。候選詞表中每個(gè)詞的詞向量利用這些評論文本基于word2vec 模型訓(xùn)練。相關(guān)評論文本包括作品中歌手其他作品的評論文本和與作品中所唱歌曲名相同的其他音樂作品的評論文本,這些選取的相關(guān)評論文本的音樂作品的音樂等級都與要生成評論的作品相同。在3 個(gè)等級中分別選取15 000 個(gè)作品作為訓(xùn)練集,每個(gè)音樂作品中選取5條詞數(shù)小于25的相關(guān)評論文本作為輸入。剩下的作品作為測試集V。
4.1.2 訓(xùn)練設(shè)置
在實(shí)驗(yàn)中,文本判別器的訓(xùn)練集由類別為0的生成評論文本和類別為1 的來自訓(xùn)練集的真實(shí)評論文本組成,卷積核的大小分別為3、5、10、15,卷積核的數(shù)量分別為100、200、100、160。等級判別器是由生成的評論文本和來自訓(xùn)練集的真實(shí)音樂等級組成,卷積核的大小分別為3、5、10、15,卷積核的數(shù)量分別為100、200、100、160。使用Dropout[15]和L2正則化來避免過擬合。
為了評估GradeGAN模型生成評論文本的性能,將此模型與以下方法進(jìn)行比較:
(1)Seq2Seq 模型[3]:使用相關(guān)評論作為輸入,生成評論文本。
(2)SeqGAN 模型[2]:在Seq2Seq 模型的基礎(chǔ)上,加入判別結(jié)構(gòu)。
(3)SentiGAN 模型[9]:不同等級作品文本信息輸入到不同的生成器中,文本判別器是一個(gè)類別為不同等級數(shù)的多類別文本判別器。
4.2.1 生成評論文本的準(zhǔn)確度
使用Rouge[16]中評估指標(biāo)計(jì)算生成的評論文本和真實(shí)評論文本之間重疊單元的數(shù)量,用于評價(jià)生成評論文本的準(zhǔn)確性。
其中,gramn表示長度為n的n-gram,{Reference}表示真實(shí)評論文本,Countmatch(gramn)表示生成文本和真實(shí)文本中同時(shí)出現(xiàn)gramn的個(gè)數(shù)。Count(gramn)表示真實(shí)文本中g(shù)ramn的個(gè)數(shù)。Rouge-N是基于召回率的方法,因此分母是真實(shí)文本集合中所有n-gram的個(gè)數(shù)。
在實(shí)驗(yàn)中,分別用Rouge-1、Rouge-2 和Rouge-L這3個(gè)指標(biāo)來評估生成評論文本的準(zhǔn)確性,實(shí)驗(yàn)結(jié)果如表1所示。從中可以看出,GradeGAN模型生成評論文本的準(zhǔn)確性最高,相比于SeqGAN模型,GradeGAN模型在加入等級判別器后,使得生成文本的準(zhǔn)確性提高了很多。
Table 1 Comparison of accuracy of generated comment texts表1 生成評論文本的準(zhǔn)確性對比
4.2.2 生成評論文本的流暢度
使用語言建模訓(xùn)練工具SRILM(SRI language model)[17]來評測生成文本的流暢度。SRILM 使用訓(xùn)練的語言模型計(jì)算生成句子的困惑度(perplexity)。困惑度越低,說明生成文本的流暢度越高。實(shí)驗(yàn)結(jié)果如圖2所示,從圖2中可以看出,GradeGAN模型生成評論文本的流暢度明顯高于其他模型。
Fig.2 Comparison of fluency of generated comment texts圖2 生成評論文本的流暢度對比
4.2.3 生成評論文本的多樣性
希望生成的評論文本具有多樣性,且在不同的音樂等級下,生成的評論文本具有差異。計(jì)算評論文本多樣性的方法如下:
在測試數(shù)據(jù)V中,測量生成評論兩兩之間的Rouge 值,再求平均,得到整個(gè)生成評論數(shù)據(jù)集的相似性,1減去這個(gè)相似性,就得到生成評論的多樣性。
首先,基于3 個(gè)不同的指標(biāo)Diversity-Rouge-1、Diversity-Rouge-2、Diversity-Rouge-L來評估生成評論文本的整體多樣性,結(jié)果如表2所示。從表2中可以看出,GradeGAN 模型的整體多樣性要比Seq2Seq和SeqGAN 模型高,說明模型在加入等級判別器后,生成評論文本的多樣性提高了很多。
Table 2 Comparison of overall diversity of generated comment texts表2 生成評論文本的整體多樣性對比
與SentiGAN 模型相比,本文所提模型多樣性在兩個(gè)指標(biāo)上略低,在一個(gè)指標(biāo)上略高,但準(zhǔn)確度高出很多。因?yàn)镾entiGAN模型主要是通過不同的生成器來生成不同類別的文本,生成器在生成文本的過程中通過最小化生成期望來達(dá)到生成文本多樣性的目的,這樣導(dǎo)致生成的文本的準(zhǔn)確性降低。而本文認(rèn)為相比多樣性的提升不應(yīng)該以犧牲準(zhǔn)確性為代價(jià),因此所提模型在準(zhǔn)確度和多樣性兩方面進(jìn)行平衡。
其次,基于Diversity-Rouge-L這個(gè)指標(biāo)來評估在不同音樂等級下生成評論文本的多樣性,結(jié)果如表3所示。從表3中可以看出,當(dāng)音樂等級越高時(shí),GradeGAN模型生成評論文本的多樣性越高,這與真實(shí)數(shù)據(jù)是吻合的。在StarMaker 在線唱歌平臺中,當(dāng)音樂等級是1時(shí),評論文本大都是It's ok或thank you這類重復(fù)文本,當(dāng)音樂等級是3 時(shí),評論文本則更加多樣,如You have a beautiful voice 或Looking forward to more music works from you等帶有個(gè)人情感和想法的這類文本。從表3中可以看出,其他模型無法做到當(dāng)音樂等級越高時(shí),多樣性越高。
Table 3 Diversity comparison of generated comment texts under different performance grades表3 不同音樂等級下生成評論文本的多樣性對比
本文研究在線唱歌平臺上為音樂作品自動(dòng)生成評論文本的方法,提出了考慮作品的歌唱表現(xiàn)評級信息的文本生成模型——GradeGAN,利用文本判別器和等級判別器共同指導(dǎo)生成器生成文本。在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)表明,GradeGAN模型相比已有的相關(guān)模型具有更高的準(zhǔn)確性,同時(shí)具有良好的多樣性,同時(shí)可以針對不同等級的作品生成不同的文本。本文所提方法不僅適用于音樂作品的評論文本生成,也適用于其他應(yīng)用場景,例如生成電影評論。在電影沒有評論或者評論較少的情況下,利用GradeGAN模型根據(jù)電影評分和電影相關(guān)文本信息自動(dòng)生成電影評論文本。