王勇超,周靈智,趙亞萍,許端清
1.浙江大學(xué) 信息技術(shù)中心,杭州310027
2.浙江大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州310027
中國(guó)詩(shī)歌是中華傳統(tǒng)文明的瑰寶。它使用簡(jiǎn)潔的語(yǔ)言卻能夠表達(dá)豐富的蘊(yùn)意,成為最具代表性的中國(guó)傳統(tǒng)文本形式之一。然而,大多數(shù)人由于缺少專業(yè)訓(xùn)練,缺乏在長(zhǎng)度有限且格式受限的文本中表達(dá)豐富情感的能力。因此,研究如何利用計(jì)算機(jī)自動(dòng)生成詩(shī)歌吸引了越來(lái)越多研究人員的注意。
近年來(lái),神經(jīng)網(wǎng)絡(luò)因其強(qiáng)大的歸納推理能力得到了越來(lái)越廣泛的應(yīng)用。2014 年,Zhang 等人[1]首次使用了循環(huán)神經(jīng)網(wǎng)絡(luò)生成中國(guó)詩(shī)歌,獲得了優(yōu)于傳統(tǒng)方法[2]的效果。后續(xù)不少研究人員針對(duì)格式控制、語(yǔ)句通順、主題一致性等問(wèn)題,在Zhang等人[1]的模型基礎(chǔ)上做相應(yīng)的改進(jìn)。為了更嚴(yán)格地控制詩(shī)歌的生成格式,Wang等人[3]提出使用注意力機(jī)制[4]規(guī)范生成詩(shī)歌的樣式。Yan 等人[5]針對(duì)語(yǔ)句不通順問(wèn)題,提出了迭代生成模型逐步提高生成詩(shī)歌的質(zhì)量。為了解決生成詩(shī)歌無(wú)法在整首詩(shī)保持主題一致性這一問(wèn)題,Wang等人[6]設(shè)計(jì)了計(jì)劃框架,能夠?yàn)樵?shī)歌的每一行設(shè)計(jì)一個(gè)與主題相關(guān)的子關(guān)鍵詞,從而保證整首詩(shī)行與行之間緊密的聯(lián)系。Zhang等人[7]提出用神經(jīng)記憶機(jī)制有效增加模型的創(chuàng)造性,一定程度克服了循環(huán)神經(jīng)網(wǎng)絡(luò)傾向于學(xué)習(xí)一般范式的缺陷。受到認(rèn)知心理學(xué)相關(guān)理論的啟發(fā),Yi等人[8]提出工作記憶機(jī)制,維持了有限的歷史信息并選擇部分信息用于當(dāng)前行的生成,平衡了主題一致和創(chuàng)造性之間的矛盾。
2013 年,Kingma 等人[9]提出了一種全新的生成模型——變分自編碼器。隨著B(niǎo)owman 等人[10]證實(shí)變分自編碼器的隱變量能夠?qū)W習(xí)文本的全局語(yǔ)義信息,變分自編碼器的變種——條件變分自編碼器(conditional variational autoencoder,CVAE)[11]開(kāi)始在文本生成任務(wù)得到應(yīng)用。條件變分自編碼器不僅能夠?qū)⑽谋镜娜终Z(yǔ)義信息表達(dá)為隱變量,而且能夠在特定條件下生成對(duì)應(yīng)文本。2018 年,Yang 等人[12]提出使用條件變分自編碼器的隱變量控制詩(shī)歌每一行表達(dá)的主題,在主題一致性方面獲得了優(yōu)于循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)果。與Yi等人[8]類似,Li等人[13]將對(duì)抗學(xué)習(xí)和條件變分自編碼器相結(jié)合,提高了生成詩(shī)歌的新奇性和主題一致性。Yang等人[14]關(guān)注到特定情感在詩(shī)歌創(chuàng)作的重要地位,他們提出了半監(jiān)督的條件變分自編碼器用于詩(shī)歌的情感控制。Yi 等人[15]將歷史背景和生活經(jīng)歷等視為隱變量的影響因素,通過(guò)控制影響因素的設(shè)置生成不同的詩(shī)歌,有效增加了生成詩(shī)歌的多樣性。
然而以上列舉的所有詩(shī)歌生成模型都遵循了Zhang 等人[1]對(duì)詩(shī)歌生成問(wèn)題的定義:模型根據(jù)用戶提供的關(guān)鍵詞生成詩(shī)歌。關(guān)鍵詞由有限數(shù)量的字符或詞組成,一般為2~6個(gè)字符。這導(dǎo)致生成詩(shī)歌的字符數(shù)是關(guān)鍵詞字符數(shù)的兩倍以上。Yang等人[16]認(rèn)為字符數(shù)量的巨大差距導(dǎo)致模型輸入和模型輸出的語(yǔ)義信息差距過(guò)大,進(jìn)而給詩(shī)歌生成模型帶來(lái)了過(guò)翻譯問(wèn)題:某些字或詞會(huì)無(wú)意義地連續(xù)出現(xiàn),一般為兩次。然而,詩(shī)歌創(chuàng)作手法之一疊詞的表現(xiàn)形式和過(guò)翻譯問(wèn)題的表現(xiàn)形式一致,無(wú)法簡(jiǎn)單地根據(jù)語(yǔ)法規(guī)則進(jìn)行分辨。疊詞可以增加詩(shī)歌的韻律性和節(jié)奏感,因此單純?cè)谀P蜕蛇^(guò)程中加以限制字符或詞的重復(fù)次數(shù),雖然能夠緩解過(guò)翻譯問(wèn)題,但也會(huì)導(dǎo)致疊詞的消失,降低詩(shī)歌的美感。
為了解決這一問(wèn)題,本文提出了一種新的生成模型,該模型在人類創(chuàng)作的詩(shī)歌中采樣與關(guān)鍵詞相關(guān)的詩(shī)歌,并利用全概率公式將采樣詩(shī)歌引入到對(duì)條件變分自編碼器先驗(yàn)概率分布的計(jì)算中。通過(guò)將采樣詩(shī)歌引入到模型生成過(guò)程,該模型自動(dòng)擴(kuò)充了關(guān)鍵詞的語(yǔ)義信息,克服了輸入和輸出語(yǔ)義信息規(guī)模嚴(yán)重不匹配的問(wèn)題,能在一定程度上消除過(guò)翻譯問(wèn)題的出現(xiàn)。同時(shí),模型通過(guò)借鑒采樣詩(shī)歌能夠?qū)W會(huì)疊詞在詩(shī)歌創(chuàng)作的正確使用,從而在有效避免無(wú)意義重復(fù)詞出現(xiàn)的同時(shí),保證了詩(shī)歌的節(jié)奏感和韻律性。Bandura[17]認(rèn)為寫作需要學(xué)會(huì)觀察其他學(xué)習(xí)者,本文的模型以該思想為基礎(chǔ),通過(guò)觀察人類創(chuàng)作詩(shī)歌的方法,能夠創(chuàng)作出更符合人類用詞習(xí)慣和美學(xué)觀念的詩(shī)歌。
本文的主要工作可以概括為以下三方面:(1)提出了新穎的詩(shī)歌生成方法,通過(guò)借鑒詩(shī)人所作的詩(shī)歌,既緩解了過(guò)翻譯問(wèn)題,也保留了疊詞在生成詩(shī)歌中的使用。(2)利用全概率公式和蒙特卡洛方法將模仿人類詩(shī)人寫詩(shī)這一抽象行為轉(zhuǎn)化為對(duì)條件變分自編碼器先驗(yàn)概率分布的求解。(3)實(shí)驗(yàn)證明了本文提出的方法無(wú)論在自動(dòng)評(píng)估標(biāo)準(zhǔn)還是人類評(píng)估標(biāo)準(zhǔn)方面都優(yōu)于其他的基礎(chǔ)模型。
本文將一首詩(shī)記作x,把xi視為詩(shī)歌的第i行,從而xi,j代表了一首詩(shī)的第i行第j個(gè)字符。本文使用c、s分別表示關(guān)鍵詞和采樣詩(shī)歌。
本文模型目標(biāo)是最大化lnpθ(x|c),其中θ代表pθ(x|c)的參數(shù)。通過(guò)引入隱變量z試圖學(xué)習(xí)全局語(yǔ)義表達(dá),因此lnpθ(x|c)可表示為:
遵循Kingma 等人[9]提出的方法,本文采用變分估計(jì)方法擬合真實(shí)分布lnpθ(x|c)。變分估計(jì)方法通過(guò)訓(xùn)練變分下限L(c,x)間接優(yōu)化lnpθ(x|c),具體表現(xiàn)形式如下:
其中,qγ(z|c)表示隱變量z的先驗(yàn)概率分布,pφ(z|c,x)表示隱變量z的后驗(yàn)概率分布,pη(x|c,z)可看作詩(shī)歌生成器,KL(·)表示KL 散度,被用來(lái)衡量?jī)蓚€(gè)概率分布之間的相似度。隨著模型不斷的迭代訓(xùn)練,KL(·)項(xiàng)變小,qγ(z|c)和pφ(z|c,x)兩者之間的差異性也越來(lái)越小。
然而,qγ(z|c)只利用了關(guān)鍵詞信息,模型所能使用的語(yǔ)義信息過(guò)少,生成詩(shī)歌容易出現(xiàn)過(guò)翻譯問(wèn)題,即字符無(wú)意義地重復(fù)多次。擴(kuò)充關(guān)鍵詞語(yǔ)義信息能夠緩解過(guò)翻譯問(wèn)題,因此需要引入更多和關(guān)鍵詞相關(guān)的信息。
區(qū)別于一般的條件變分自編碼器,本文使用全概率公式和蒙特卡洛方法進(jìn)一步展開(kāi)qγ(z|c),從而引入和關(guān)鍵詞相關(guān)的詩(shī)歌信息,可得:
其中,s表示根據(jù)概率分布p(x|c)從詩(shī)歌庫(kù)中采樣的詩(shī)歌。通過(guò)式(3),計(jì)算隱變量z的先驗(yàn)概率分布需要經(jīng)歷兩個(gè)步驟:(1)采樣k首詩(shī)歌;(2)根據(jù)采樣詩(shī)歌計(jì)算qγ(z|c)。
為了模型的訓(xùn)練方便,傳統(tǒng)的CVAE 模型將qγ(z|c)和pφ(z|c,x)都假設(shè)協(xié)方差矩陣為對(duì)角矩陣的高斯概率密度函數(shù)。由于本文對(duì)CVAE 模型的優(yōu)化函數(shù)作了改動(dòng),假定p(z|c,s)是協(xié)方差矩陣為對(duì)角矩陣的高斯概率密度函數(shù),將qγ(z|c)看作高斯混合模型。本文希望找尋一個(gè)各維度獨(dú)立的高斯密度函數(shù)q(z|c),它和qγ(z|c)之間的差異能夠充分小,即它們之間的KL 散度能夠足夠小。由于q(z|c)和qγ(z|c)之間的KL散度難以計(jì)算,需要進(jìn)行額外的轉(zhuǎn)換從而減小計(jì)算的復(fù)雜度:
根據(jù)式(4)和式(5),本文能夠通過(guò)設(shè)置合適的參數(shù)讓K(c,s)足夠小,從而間接地減小q(z|c)和qγ(z|c)之間的KL 散度。
為了進(jìn)行下一步有效推導(dǎo),需要先定義一些參數(shù)。假定q(z|c,x) 的期望和方差分別為μ和σ,p(z|c,s)的期望和方差分別為μs和σs,隱變量z的維度表示為J,從而式(5)可以進(jìn)一步推導(dǎo)為:
根據(jù)式(6)分別對(duì)μ和σ求偏導(dǎo)得到以下結(jié)果:
將式(7)置零,從而求得K(c,s)極點(diǎn)對(duì)應(yīng)的μ和σ:
假定μs,j的定義域?yàn)?a,b),的定義域?yàn)?c,d),將式(8)和式(9)代入K(c,s)可求得如下不等式:
因此,如果本文設(shè)置適當(dāng)?shù)某瑓?shù)J、a、b、c、d,可以獲得一個(gè)高斯分布q(z|c),它和目標(biāo)高斯分布qγ(z|c)的KL 散度小于一個(gè)較小的常數(shù)上限。
模型的主要框架如圖1 所示。本文把模型分為三部分:先驗(yàn)部分、后驗(yàn)部分和生成器。模型在先驗(yàn)部分通過(guò)關(guān)鍵詞采樣更接近用戶需求的詩(shī)歌(采樣過(guò)程如圖2 所示),并通過(guò)兩者計(jì)算隱向量的先驗(yàn)概率分布。后驗(yàn)部分使用關(guān)鍵詞和相應(yīng)詩(shī)歌計(jì)算隱變量的后驗(yàn)概率分布。先驗(yàn)概率分布和后驗(yàn)概率分布在訓(xùn)練過(guò)程中差異變小。生成器通過(guò)隱變量(訓(xùn)練時(shí)為后驗(yàn)部分隱變量,測(cè)試時(shí)為先驗(yàn)部分隱變量)、關(guān)鍵詞生成目標(biāo)詩(shī)歌。
圖2 基于關(guān)鍵詞的采樣過(guò)程Fig. 2 Keyword-based sampling process
詩(shī)歌生成任務(wù)的CVAE 模型通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)關(guān)鍵詞的語(yǔ)義表達(dá),并將語(yǔ)義表達(dá)作為單層的全連接神經(jīng)網(wǎng)絡(luò)的輸入,進(jìn)而計(jì)算先驗(yàn)概率分布。本文提出的模型根據(jù)采樣詩(shī)歌計(jì)算先驗(yàn)概率分布,與傳統(tǒng)的先驗(yàn)概率分布計(jì)算方式存在較大差異。為了采樣人類創(chuàng)作的詩(shī)歌,本文需要預(yù)訓(xùn)練去噪自編碼器模型。本文采用了兩個(gè)雙向遞歸神經(jīng)網(wǎng)絡(luò)(分別記作Gp和Gc),將Gp和Gc的前向隱向量和后向隱向量連接,從而得到hp和hc,hp和hc各自對(duì)應(yīng)詩(shī)歌和關(guān)鍵詞的語(yǔ)義表達(dá)。然后連接hp和hc并加入隨機(jī)噪聲,作為生成器的輸入。當(dāng)去噪自編碼器模型訓(xùn)練完成后,本文使用關(guān)鍵詞語(yǔ)義向量hc幫助采樣詩(shī)歌。
任意一首人類創(chuàng)作詩(shī)歌都對(duì)應(yīng)著一個(gè)關(guān)鍵詞。存儲(chǔ)了詩(shī)歌庫(kù)中所有詩(shī)歌對(duì)應(yīng)的關(guān)鍵詞語(yǔ)義向量hc,并將其記作Hc。模型通過(guò)關(guān)鍵詞c對(duì)應(yīng)的語(yǔ)義向量hc,計(jì)算概率分布p(x|c):
另外,本研究中僅采用免疫組化SP法檢測(cè)PDCD4陽(yáng)性表達(dá)情況,未能進(jìn)行定量分析,后續(xù)研究宜采用逆轉(zhuǎn)錄-聚合酶鏈反應(yīng)(RT-PCT)法對(duì)PDCD4在EOC組織中的表達(dá)情況進(jìn)行定量分析。
模型根據(jù)式(8)和式(9)計(jì)算先驗(yàn)分布q(z|c,x)的μprior和σprior,然后使用重參數(shù)技巧采樣隱向量z。
與計(jì)算先驗(yàn)分布類似,本文使用同樣的方法采樣符合后驗(yàn)分布的隱向量z。
本文的生成器結(jié)構(gòu)參考了Yan 等人[5]的工作,并在其基礎(chǔ)上做了部分的改動(dòng)。本文使用GRU作為基礎(chǔ)的生成器,相比Recurrent Neural Network能更好地傳輸語(yǔ)義。具體計(jì)算過(guò)程如下:
其中,xi,j表示詩(shī)歌第i行第j個(gè)字符,e(·)表示嵌入向量,[;]表示向量的連接運(yùn)算,oi是控制當(dāng)前生成行長(zhǎng)度的獨(dú)熱向量,[1,0]表示行長(zhǎng)度為5,[0,1]表示行長(zhǎng)度為7,gi表示上下文語(yǔ)義向量。
本文進(jìn)一步說(shuō)明如何計(jì)算gi。對(duì)gi的計(jì)算類似于卷積神經(jīng)網(wǎng)絡(luò),定義窗口大小為d,因此gi的計(jì)算可表示為:
本文的實(shí)驗(yàn)主要在THU-CCPC(THU Chinese classical poetry corpus)[18]上進(jìn)行。THU-CCPC 被分成訓(xùn)練、驗(yàn)證和測(cè)試三個(gè)數(shù)據(jù)集,且每首詩(shī)都有作者、朝代及相應(yīng)關(guān)鍵詞信息。THU-CCPC 數(shù)據(jù)集情況如表1所示。
表1 數(shù)據(jù)集概況Table 1 Dataset overview
為了更好地探索模型的性能,需要選擇一些基礎(chǔ)模型和本文所提出的模型進(jìn)行對(duì)比。這些模型需要有一定程度的代表性且和本文模型有一定的關(guān)聯(lián)性。因此,本文選擇了以下幾種模型開(kāi)展對(duì)比:
(2)Seq2seq+mem 模型。Zhang 等人[7]提出的一種模型,該模型使用神經(jīng)記憶機(jī)制試圖克服Seq2seq模型缺乏創(chuàng)造力的缺點(diǎn)。他們將一些詩(shī)歌存儲(chǔ)起來(lái)幫助模型生成詩(shī)歌,該模型的思想和本文提出的模型具有一定的相似性,和該模型的對(duì)比是必要的。
(3)CVAE模型。CVAE模型近幾年來(lái)被廣泛應(yīng)用于文本生成任務(wù),九歌系統(tǒng)大量使用了該類模型[14-15,18]。本文的模型可看作CVAE的變種,需要通過(guò)對(duì)比實(shí)驗(yàn)研究本文在CVAE模型上做的改變所帶來(lái)的優(yōu)缺點(diǎn)。
(4)CVAE+mem 模型。本文將mem 機(jī)制運(yùn)用于CVAE模型,從而更好地比較mem機(jī)制和基于采樣的CVAE模型的優(yōu)劣。
為了公正地評(píng)價(jià)生成的詩(shī)歌,本文需要使用一些評(píng)價(jià)標(biāo)準(zhǔn):
首先使用了機(jī)器翻譯指標(biāo)BLEU(bilingual evaluation understudy)[19]。BLEU 評(píng)價(jià)指標(biāo)被廣泛應(yīng)用于機(jī)器翻譯領(lǐng)域,用來(lái)衡量真實(shí)結(jié)果和機(jī)器翻譯結(jié)果的差異。由于詩(shī)歌生成和機(jī)器翻譯存在一定的相似性,之前的很多工作也大量使用BLEU 來(lái)評(píng)價(jià)生成詩(shī)歌的質(zhì)量。
其次采用了疊詞相似度(repetition similarity)來(lái)進(jìn)行評(píng)價(jià)。本文模型的目的是為了解決疊詞和無(wú)意義重復(fù)之間的矛盾,因此需要定義相關(guān)的評(píng)價(jià)標(biāo)準(zhǔn)。本文分別統(tǒng)計(jì)測(cè)試集和模型生成詩(shī)歌從每個(gè)位置開(kāi)始出現(xiàn)連續(xù)兩個(gè)字符的頻率,并把每個(gè)位置當(dāng)作一個(gè)維度,從而得到兩個(gè)向量表達(dá)。計(jì)算兩個(gè)向量的余弦相似度,衡量真實(shí)結(jié)果和生成詩(shī)歌之間的差異。假定真實(shí)結(jié)果不存在無(wú)意義的重復(fù),因此余弦相似度越大越符合本文的目標(biāo)。
最后采用了人類評(píng)估的方式來(lái)予以評(píng)價(jià)。詩(shī)歌創(chuàng)作是人類創(chuàng)造力的體現(xiàn),完全采用自動(dòng)評(píng)估標(biāo)準(zhǔn)評(píng)價(jià)詩(shī)歌質(zhì)量存在缺陷。為了更好地衡量模型之間的差異,邀請(qǐng)?jiān)姼桀I(lǐng)域的10 名專家來(lái)評(píng)估生成詩(shī)歌的質(zhì)量。出于公平的考慮,他們并不知道評(píng)價(jià)的詩(shī)歌由哪個(gè)模型生成。遵循之前相關(guān)工作的定義,要求專家從四方面評(píng)價(jià)詩(shī)歌:一致性、流利度、意義和詩(shī)意(具體細(xì)節(jié)可見(jiàn)表2)。每方面的打分范圍都為0~5,分?jǐn)?shù)越高表示效果越好(打分值可取小數(shù)點(diǎn)后一位)。將10 名專家在每個(gè)標(biāo)準(zhǔn)的打分分別求均值得到最終的人工評(píng)估結(jié)果。
表2 人類評(píng)估標(biāo)準(zhǔn)Table 2 Human evaluation standard
表3 記錄了不同模型生成詩(shī)歌的自動(dòng)評(píng)估結(jié)果。值得一提的是,將本文所提出的模型命名為S-CVAE(條件變分編碼器的采樣版本)。
由于CVAE 在語(yǔ)義表征方面優(yōu)于Seq2seq 模型,相較于Seq2seq 和Seq2seq+mem 在BLEU 指標(biāo)上表現(xiàn)得更好。本文不再討論S-CVAE和Seq2seq模型以及Seq2seq+mem在BLEU分?jǐn)?shù)的對(duì)比,因?yàn)镾-CVAE從某種意義上來(lái)說(shuō)從屬于CVAE模型。S-CVAE相較于CVAE 在BLEU 指標(biāo)略有優(yōu)勢(shì),這是因?yàn)镾-CVAE能夠減少無(wú)意義重復(fù)詞的產(chǎn)生,從而提高詩(shī)歌的生成質(zhì)量。S-CVAE 在BLEU 指標(biāo)分?jǐn)?shù)最高,在疊詞相似度指標(biāo)上卻比CVAE+mem 和Seq2seq+mem 表現(xiàn)得要差。因此本文重點(diǎn)討論S-CVAE 和mem 機(jī)制的對(duì)比。
mem 機(jī)制在部分思路上和本文的模型相似,試圖探索mem 機(jī)制和S-CVAE 對(duì)生成詩(shī)歌的不同影響。通過(guò)觀察實(shí)驗(yàn)結(jié)果作出以下推論:
(1)mem機(jī)制能夠緩解過(guò)翻譯問(wèn)題。根據(jù)表3的實(shí)驗(yàn)結(jié)果,發(fā)現(xiàn)無(wú)論是將mem機(jī)制與Seq2seq模型或CVAE 模型結(jié)合,都能夠顯著提升疊詞相似度指標(biāo)。mem機(jī)制根據(jù)人類創(chuàng)作詩(shī)歌在每個(gè)位置的詞頻調(diào)整詩(shī)歌的生成,從而讓生成詩(shī)歌符合一般的用詞規(guī)律。因此,mem機(jī)制既能緩解過(guò)翻譯問(wèn)題,也能維持疊詞的使用。
(2)mem機(jī)制會(huì)破壞詩(shī)歌的生成質(zhì)量。從表3中發(fā)現(xiàn)Seq2seq+mem 在BLEU 分?jǐn)?shù)上比Seq2seq 模型還要低,是BLEU分?jǐn)?shù)最低的基準(zhǔn)模型。mem機(jī)制通過(guò)詩(shī)歌每個(gè)位置的字頻調(diào)整生成字符的概率分布,從而減少了無(wú)意義重復(fù)字符的產(chǎn)生。然而mem機(jī)制無(wú)法保證所參考的詩(shī)歌和用戶提供關(guān)鍵詞有關(guān),甚至存在參考詩(shī)歌和用戶提供關(guān)鍵詞完全相背的情況。當(dāng)mem機(jī)制根據(jù)完全無(wú)關(guān)的詩(shī)歌調(diào)整目標(biāo)詩(shī)歌的生成,不可避免地會(huì)讓生成詩(shī)歌和關(guān)鍵詞匹配度下降,從而降低了BLEU分?jǐn)?shù)。
(3)S-CVAE在緩解過(guò)翻譯問(wèn)題方面略遜于mem機(jī)制。表3 顯示S-CVAE 在疊詞相似度指標(biāo)高于CVAE 模型,符合對(duì)該模型的預(yù)期。與CVAE 相比,本文模型在輸入信息中增加了采樣詩(shī)歌,大大增加了輸入的語(yǔ)義信息規(guī)模,從而緩解了過(guò)度翻譯問(wèn)題,減少了無(wú)意義重復(fù)字符的產(chǎn)生。然而,S-CVAE先將采樣詩(shī)歌和用戶提供關(guān)鍵詞壓縮成隱向量,再借由LSTM(long short-term memory)神經(jīng)網(wǎng)絡(luò)解壓成生成詩(shī)歌,在壓縮和解壓的過(guò)程中不可避免地帶來(lái)了信息丟失的問(wèn)題。而mem 機(jī)制直接將softmax 層計(jì)算的生成詞概率分布通過(guò)詩(shī)歌庫(kù)對(duì)應(yīng)位置的詞頻進(jìn)行調(diào)整,保留了更多的信息,能夠更好地抑制無(wú)意義重復(fù)詞的產(chǎn)生。
(4)S-CVAE 能夠在緩解過(guò)翻譯問(wèn)題的同時(shí),保證詩(shī)歌的流暢性??梢园裇-CVAE 看作mem 機(jī)制的泛化形式。mem 機(jī)制直接通過(guò)詞頻調(diào)整詩(shī)歌的生成,可能帶來(lái)了完全與當(dāng)前關(guān)鍵詞無(wú)關(guān)的信息,干擾了詩(shī)歌的生成質(zhì)量。本文的模型先通過(guò)語(yǔ)義相似程度對(duì)詩(shī)歌庫(kù)中的詩(shī)歌做了初步過(guò)濾,并利用上述所推導(dǎo)的公式進(jìn)一步調(diào)整了采樣詩(shī)歌對(duì)生成過(guò)程的影響程度,從而讓生成詩(shī)歌與關(guān)鍵詞語(yǔ)義一致。mem機(jī)制強(qiáng)行讓生成詞的概率函數(shù)接近詩(shī)歌庫(kù)中的詞頻,破壞了生成字符和關(guān)鍵詞語(yǔ)義的匹配程度。而S-CVAE對(duì)生成字符的調(diào)整較為平滑,能夠在一定程度上糾正CVAE模型的過(guò)翻譯問(wèn)題,并能夠保證生成詩(shī)歌的流暢性。
表4 記錄了不同模型生成詩(shī)歌的人工評(píng)估結(jié)果。人工評(píng)估的結(jié)果和自動(dòng)評(píng)估的結(jié)果高度一致,SCVAE在一致性、流利度兩個(gè)指標(biāo)明顯高于其他的基線模型,這是因?yàn)镾-CVAE會(huì)事先通過(guò)關(guān)鍵詞采樣最相關(guān)的詩(shī)歌,通過(guò)采樣詩(shī)歌指導(dǎo)詩(shī)歌生成過(guò)程,和之前的模型相比能夠提取更多的語(yǔ)義,更好地在詩(shī)歌生成過(guò)程中保持語(yǔ)義的一致性。并且,S-CVAE克服了輸入信息和輸出信息語(yǔ)義規(guī)模的巨大差距并從采樣詩(shī)歌中學(xué)習(xí)到了更豐富的語(yǔ)義信息,從而緩解了過(guò)翻譯問(wèn)題。雖然mem機(jī)制能夠用粗暴的方法減少無(wú)意義重復(fù)詞的產(chǎn)生,然而它也在緩解過(guò)翻譯問(wèn)題的同時(shí),引入了大量無(wú)關(guān)的信息甚至有害的信息,破壞了生成詩(shī)歌的流利度以及一致性。人工評(píng)估的結(jié)果再一次佐證了對(duì)mem 機(jī)制和S-CVAE 之間的分析。圖3 和圖4 展示了S-CVAE 模型的生成結(jié)果,從直觀上展現(xiàn)了模型在一致性和流利度取得的進(jìn)展。
表4 人工評(píng)估標(biāo)準(zhǔn)模型對(duì)比Table 4 Human evaluation comparison of standard models
圖3 S-CVAE七言古詩(shī)生成示例Fig. 3 Seven-character ancient poem generation example of S-CVAE
圖4 S-CVAE五言古詩(shī)生成示例Fig. 4 Five-character ancient poem generation example of S-CVAE
為了進(jìn)一步探索采樣對(duì)生成詩(shī)歌的影響,本文對(duì)不同詩(shī)人創(chuàng)作的詩(shī)歌采樣,比較生成詩(shī)歌風(fēng)格之間的差異性。以李白和杜甫為例,模型使用相同關(guān)鍵詞分別采樣李白和杜甫的詩(shī)歌。統(tǒng)計(jì)李白和杜甫詩(shī)作中TF-IDF 最高的20 個(gè)字符,分別記作集合A李白和A杜甫。對(duì)生成詩(shī)歌執(zhí)行同樣的操作,記作B李白和B杜甫。使用Jaccard系數(shù)(|A∩B|/|A∪B|)衡量生成詩(shī)歌與真實(shí)詩(shī)歌風(fēng)格之間的相似性,實(shí)驗(yàn)結(jié)果如表5所示。表5證實(shí)了采樣范圍的不同會(huì)影響生成詩(shī)歌的風(fēng)格。
表5 Jaccard系數(shù)Table 5 Jaccard coefficient
使用圖5 和圖6 兩個(gè)具體示例進(jìn)一步佐證采樣策略的不同對(duì)生成詩(shī)歌風(fēng)格的影響。
圖5 帶有李白風(fēng)格的生成古詩(shī)Fig. 5 Generative ancient poems with Li Bai style
圖6 帶有杜甫風(fēng)格的生成古詩(shī)Fig. 6 Generative ancient poems with Du Fu style
圖5和圖6所示古詩(shī)都以明月作為關(guān)鍵詞,卻表現(xiàn)出不同的意境。圖5的詩(shī)歌采樣李白詩(shī)作,表現(xiàn)出灑脫浪漫的情懷,而圖6 的詩(shī)歌采樣杜甫詩(shī)作,表達(dá)了哀愁憂傷的情感。
本文提出了一種基于采樣的條件變分自編碼器算法。它能夠緩解過(guò)翻譯問(wèn)題,減少無(wú)意義重復(fù)詞的產(chǎn)生,從而生成質(zhì)量更高的詩(shī)歌,自動(dòng)評(píng)估結(jié)果證明了方法的有效性。同時(shí),本文根據(jù)自動(dòng)評(píng)估結(jié)果進(jìn)一步分析了S-CVAE 模型和mem 機(jī)制對(duì)生成詩(shī)歌過(guò)程的不同影響,人工評(píng)價(jià)標(biāo)準(zhǔn)也佐證了分析的準(zhǔn)確性。風(fēng)格化分析進(jìn)一步顯示了采樣對(duì)于詩(shī)歌生成的巨大影響,通過(guò)采樣不同詩(shī)人的作品,能夠在相同關(guān)鍵詞的條件下表現(xiàn)出不同的風(fēng)格。然而,S-CVAE在意義和詩(shī)意這兩方面仍有進(jìn)步空間。這是因?yàn)镾CVAE雖然采樣了和關(guān)鍵詞匹配的詩(shī)歌,保證了生成詩(shī)歌和關(guān)鍵詞的高度一致性,卻在一定程度上忽略了詩(shī)歌和詩(shī)歌之間表達(dá)語(yǔ)義方式不匹配的問(wèn)題。部分詩(shī)歌表達(dá)情感的方式較為含蓄,部分詩(shī)歌表達(dá)情感的方式比較直白,導(dǎo)致生成詩(shī)歌的表達(dá)方式出現(xiàn)割裂。表達(dá)方式的割裂讓生成詩(shī)歌的理解難度有了一定的提高,且無(wú)法充分體現(xiàn)詩(shī)歌中心思想的層層遞進(jìn),造成意義表達(dá)不夠明確,同樣的問(wèn)題也出現(xiàn)在mem 機(jī)制中。未來(lái),可以結(jié)合半監(jiān)督的條件變分自編碼器用于詩(shī)歌的情感表達(dá)控制,從而保證采樣詩(shī)歌表達(dá)方式的一致性,進(jìn)一步完善S-CVAE在意義和詩(shī)意存在的不足,生成蘊(yùn)意更為豐富的詩(shī)歌。