楊泰康 楊婉霞 劉燕 胡智喻 王巧珍 徐明杰
摘? 要:中國(guó)古詩(shī)因其嚴(yán)謹(jǐn)?shù)钠截?、押韻結(jié)構(gòu),精練傳神的用詞成為文本自動(dòng)生成領(lǐng)域的挑戰(zhàn)問(wèn)題之一。本文基于雙向多層轉(zhuǎn)換編解碼的空間向量,結(jié)合Attention機(jī)制建立了循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的詩(shī)自動(dòng)生成模型。為解決自動(dòng)生成詩(shī)的主題發(fā)散性問(wèn)題,模型在生成每句詩(shī)時(shí)均增加了關(guān)鍵詞約束。此外,為了增強(qiáng)詩(shī)句之間的對(duì)仗性和語(yǔ)義的連貫性,模型雙向多層轉(zhuǎn)換編解碼的詞嵌入式輸入添加了詩(shī)句的對(duì)齊向量。實(shí)驗(yàn)結(jié)果表明,相比于以詞轉(zhuǎn)換為向量的詞嵌入式的詩(shī)自動(dòng)生成模型,本文設(shè)計(jì)的基于BERT的對(duì)齊向量輸入模型生成的詩(shī)不僅在機(jī)器評(píng)估和人工評(píng)估中性能較優(yōu),而且生成詩(shī)句相鄰句子的相關(guān)性也最好。這也進(jìn)一步說(shuō)明,當(dāng)模型的輸入向量能充分表達(dá)詩(shī)詞的格式、內(nèi)容和語(yǔ)義時(shí),雙向多層轉(zhuǎn)換編解碼的向量表示,即Attention機(jī)制+循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建的詩(shī)生成模型可以生成較接近人工作的詩(shī)。
關(guān)鍵詞:Attention機(jī)制;雙向多層轉(zhuǎn)換編解碼;詩(shī);自動(dòng)生成;循環(huán)神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):TP391? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2096-1472(2021)-04-15-07
Abstract: Chinese ancient poems have become one of the challenges in the field of automatic text generation because of their tonal patterns, rhyming structure, and vivid words. This paper proposes to establish an automatic poem generation model with a recurrent neural network structure. This model is combined with Attention and is based on space vector of two-way multi-layer conversion codec. In order to solve the problem of divergence of automatically generated poems, the model adds keyword constraints when generating each poem. In addition, in order to enhance antithesis between verses and semantic coherence, word embedded input of the model's two-way multi-layer conversion encoding and decoding adds alignment vector of the poem. The experimental results show that compared with word-embedded poem automatic generation model in which words are converted into vectors, poems generated by BERT-based aligned vector input model proposed in this paper, not only perform better in machine and manual evaluation, but also generate poetic sentences. The correlation between adjacent sentences and the generated verse is also the best. This also further shows that when input vector of the model can fully express the format, content and semantics of the poem, vector representation of the two-way multi-layer conversion codec, the Attention Mechanism + cyclic neural network construction of poem generation model can generate poems closer to human's works.
Keywords: Attention Mechanism; two-way multi-layer conversion codec; poem; automatic generation; Recurrent?Neural Network
1? ?引言(Introduction)
中國(guó)古詩(shī)詞源遠(yuǎn)流長(zhǎng),大約有2000多年的歷史,是中國(guó)古典文學(xué)中最璀璨的明珠。不同時(shí)期的中國(guó)古詩(shī)詞主要發(fā)展為唐詩(shī)、宋詞和元曲等不同類型。這些古典詩(shī)詞中,以格律詩(shī)為主,主要是五言和七言的絕句和律詩(shī),其突出特點(diǎn)是結(jié)構(gòu)嚴(yán)謹(jǐn),字?jǐn)?shù)、行數(shù)、平仄、用韻都有一定的限制。例如,律詩(shī)一般講究平仄和押韻、押韻和對(duì)仗,其中最核心的是它的韻律,即所謂的押韻,就是在詩(shī)詞中的規(guī)定位置(一般在句末)放置相同韻部的字,以使聲韻和諧。句子押韻,不僅吟誦和記憶舒暢,更使作品具有節(jié)奏、聲調(diào)和諧之美,如“平平仄仄平平仄,仄仄平平仄仄平”。杜甫的《春望》是一首標(biāo)準(zhǔn)的律詩(shī):
國(guó)破山河在,(仄仄平平仄)
城春草木深。(平平仄仄平)
感時(shí)花濺淚,(平平平仄仄)
恨別鳥(niǎo)驚心。(仄仄仄平平)
其中第二句的“深”和第四句的“心”押韻,第三句和第四句對(duì)仗。中國(guó)古詩(shī)詞除了傳承經(jīng)典的文化精髓,還有教育和啟示后人的作用。而在當(dāng)今信息和數(shù)據(jù)時(shí)代,詩(shī)詞也被賦予了新的使命,它不僅是構(gòu)成信息和數(shù)據(jù)的一員,更是承載信息的主要載體之一。所以機(jī)器創(chuàng)作和自動(dòng)生成詩(shī)詞成為研究的熱點(diǎn),它不但可以傳承和發(fā)展古代文化,更能滿足普通人進(jìn)行詩(shī)詞創(chuàng)作的意愿,進(jìn)一步激發(fā)人們學(xué)習(xí)和創(chuàng)作詩(shī)詞的熱情。然而由于受中國(guó)傳統(tǒng)詩(shī)詞嚴(yán)格的平仄押韻等格律限制,詩(shī)詞自動(dòng)生成極具挑戰(zhàn)性。但隨著計(jì)算機(jī)技術(shù)和機(jī)器學(xué)習(xí)的發(fā)展,使詩(shī)詞的創(chuàng)作方式和生成手段發(fā)生了前所未有的改變,特別是深度學(xué)習(xí)的再次崛起,使詩(shī)詞創(chuàng)作成為可能,這也是本文關(guān)注的研究方向所在。
自20世紀(jì)90年代中期開(kāi)始研究計(jì)算機(jī)輔助創(chuàng)作古詩(shī)詞以來(lái),已在語(yǔ)料庫(kù)建立[1-2]、詞匯語(yǔ)義[3]、文本自動(dòng)生成[4]等方面取得了一定的研究成果,并且能用多種方法生成符合一定格式要求的詩(shī)詞。但是,生成的詩(shī)詞不具有流暢性和連貫性,更沒(méi)有感情色彩。其主要原因是傳統(tǒng)的詩(shī)詞生成模型對(duì)生成詩(shī)詞的格律、語(yǔ)義等的約束一般由人工設(shè)計(jì)的規(guī)則和評(píng)估函數(shù)來(lái)實(shí)現(xiàn),很難全面地兼顧詞與詞、句子與句子、主題與內(nèi)容之間的相關(guān)性。近年來(lái),隨著深度學(xué)習(xí)技術(shù)在自然語(yǔ)言處理方面的深入研究,出現(xiàn)了基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)的詩(shī)詞生成模型,大大地提高了詩(shī)詞的生成質(zhì)量。由于RNN存在梯度消失問(wèn)題,對(duì)長(zhǎng)序列的學(xué)習(xí)效果不佳,改進(jìn)的門控單元(Gate Recurrent Unit, GRU)雖然能克服梯度消失的問(wèn)題,然而由于不論輸入長(zhǎng)短,它都將其編碼成一個(gè)固定長(zhǎng)度的向量表示,這樣使得模型對(duì)長(zhǎng)輸入序列的學(xué)習(xí)效果依然較差。后有研究者嘗試?yán)谜Z(yǔ)義圖作為深度神經(jīng)網(wǎng)絡(luò)的輸入以提高生成文本的主題一致性和可控性,但還只是初步研究階段,有待進(jìn)一步深入研究。所以本文提出一種基于BERT(Bidirectional Encoder Representation from Transformers,雙向多層轉(zhuǎn)換編解碼)詞向量的BiGRU+
Attention機(jī)制的編解碼模型來(lái)自動(dòng)生成詩(shī)詞。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的BERT詞向量結(jié)構(gòu)模型能夠生成具有流暢性、連貫性的詩(shī)歌。
論文其余部分結(jié)構(gòu)為:第二部分介紹了詩(shī)詞自動(dòng)生成的研究現(xiàn)狀。第三部分構(gòu)建了本文詩(shī)詞生成的結(jié)構(gòu)過(guò)程并解釋了各模塊的功能實(shí)現(xiàn)原理。第四部分詳細(xì)描述了模型的訓(xùn)練過(guò)程。第五部分是實(shí)驗(yàn)的設(shè)計(jì)和實(shí)驗(yàn)結(jié)果的評(píng)估。第六部分是結(jié)論。
2? ?相關(guān)研究(Related research)
縱觀詩(shī)詞自動(dòng)生成發(fā)展過(guò)程,可將詩(shī)詞的生成大致分為三個(gè)階段:第一階段是基于模板和模式的生成方法,該方法簡(jiǎn)單可靠,能輸出較高質(zhì)量的結(jié)果,如利用詞的關(guān)聯(lián)規(guī)則生成日語(yǔ)詩(shī)[5],應(yīng)用語(yǔ)義和語(yǔ)法模板生成西班牙語(yǔ)詩(shī)[6]。但這種方法不夠靈活,需要人工設(shè)計(jì)模板或模式,雖然后來(lái)的基于實(shí)例推理方法的模板是從現(xiàn)有詩(shī)詞庫(kù)檢索生成,但過(guò)程依然煩瑣。第二階段的詩(shī)詞生成主要以自然選擇為主,即利用遺傳進(jìn)化算法優(yōu)化生成,如采用隨機(jī)搜索算法獲得更具匹配性詩(shī)句的方法[7],但這類算法需要精心設(shè)計(jì)評(píng)估函數(shù)來(lái)保證詩(shī)詞的語(yǔ)義性、連貫性和格律等要求,不僅難度大,生成詩(shī)詞的效率也較低。第三階段的詩(shī)詞生成主要基于統(tǒng)計(jì)機(jī)器翻譯(Statistical Machine Translation, SMT)算法,SMT將詩(shī)詞生成看成翻譯過(guò)程,首次成功應(yīng)用于對(duì)聯(lián)的生成[8-9]。該類生成方法主要的遺憾是無(wú)法生成詩(shī)的第一句。上述方法在不斷地提高和完善的過(guò)程中,基本實(shí)現(xiàn)了符合一定語(yǔ)義性、連貫性和格律要求的詩(shī)詞自動(dòng)生成系統(tǒng),但缺乏通用性,遷移能力比較差。隨著深度學(xué)習(xí)技術(shù)的進(jìn)一步發(fā)展,通過(guò)訓(xùn)練深層次的網(wǎng)絡(luò)對(duì)大量的詩(shī)詞進(jìn)行學(xué)習(xí),將學(xué)習(xí)到的詩(shī)詞的語(yǔ)義信息和格律訓(xùn)練成模型,然后利用該模型生成具有一定主題的詩(shī)詞,去除了人工的參與和設(shè)計(jì),真正意義上實(shí)現(xiàn)了詩(shī)詞的自動(dòng)生成。如基于RNN神經(jīng)網(wǎng)絡(luò)的詩(shī)詞生成模型[10]能夠自動(dòng)學(xué)習(xí)詩(shī)詞的字詞表示、組合選擇及詩(shī)句的內(nèi)容。然而它的結(jié)構(gòu)有些復(fù)雜,由一個(gè)CNN和兩個(gè)RNN構(gòu)成,不利于模型的擴(kuò)展。有文獻(xiàn)提出了Attention機(jī)制的機(jī)器翻譯模式的宋詞自動(dòng)生成方法[11-12],Attention機(jī)制的引入增強(qiáng)了語(yǔ)義的連貫性,但存在主題漂移的問(wèn)題。為此,基于主題規(guī)劃的詩(shī)歌生成模型[13]解決了主題發(fā)散的問(wèn)題,但缺乏自動(dòng)評(píng)估。相關(guān)文獻(xiàn)將對(duì)抗式生成網(wǎng)絡(luò)(Generative Adversarial Nets, GAN)引入文本生成中[14-15],提出了具有生成器RNN和判別器CNN的SeqGAN(Sequence Generative Adversarial Nets)詩(shī)歌生成模型,解決了評(píng)估函數(shù)難以人工設(shè)計(jì)的問(wèn)題,但還有很多值得探索和改進(jìn)的地方。IOANNIS K等[16]直接將語(yǔ)義圖(Abstract Meaning Representation Graphs, AMR Graphs)作為seq2seq模型的輸入生成文本。它首先是利用深度優(yōu)先搜索將AMR變成序列,對(duì)該序列采用LSTM模型進(jìn)行編碼,然后基于Encoder-Decoder生成文本。這種方法并沒(méi)有直接對(duì)圖形結(jié)構(gòu)建模,而是對(duì)圖形結(jié)構(gòu)的線性化和序列化編碼。SONG等[17]基于Graph LSTM(Long Short-Term Memory,長(zhǎng)短期記憶)的門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network, GGNN)對(duì)輸入圖形結(jié)構(gòu)進(jìn)行直接編碼來(lái)生成文本。但門控網(wǎng)絡(luò)會(huì)影響信息傳播,生成的文本主題出現(xiàn)不確定性。后GraphWriter模型對(duì)圖注意力網(wǎng)絡(luò)進(jìn)行了擴(kuò)展[18],能夠同時(shí)對(duì)文章標(biāo)題和提取的知識(shí)圖進(jìn)行編碼,解碼時(shí)輸出的概率表示與知識(shí)圖和標(biāo)題相互關(guān)聯(lián),使生成文本在主題一致性上有所改進(jìn),但生成文本的上下文語(yǔ)義連貫性和主題可控性方面均有待提高。由此可見(jiàn),高質(zhì)量詩(shī)詞的自動(dòng)生成仍然需要更進(jìn)一步的研究。由上述分析可知,目前還沒(méi)有基于BERT詞向量的詩(shī)詞生成類的相關(guān)報(bào)道。為此,本文提出了BERT嵌入式詞向量的、關(guān)鍵詞監(jiān)督的、Attention機(jī)制的對(duì)齊模式詩(shī)生成模型。其主要特點(diǎn)是BERT在將文本轉(zhuǎn)換為空間向量時(shí)表達(dá)了動(dòng)態(tài)的句子級(jí)語(yǔ)義信息,計(jì)算輸出的是實(shí)時(shí)的特征矢量。第二,每句詩(shī)的生成都有相應(yīng)的關(guān)鍵詞引導(dǎo),不僅僅受第一句的影響,以保持主題的一致性。第三,添加對(duì)齊序列向量輸入以增加生成詩(shī)句之間的對(duì)仗性,使生成的詩(shī)句保持語(yǔ)義上的連貫性和結(jié)構(gòu)的流暢性。本文的主要貢獻(xiàn)點(diǎn)是將BERT動(dòng)態(tài)詞向量引入詩(shī)生成模型,解決了模型對(duì)輸入句子的句子級(jí)語(yǔ)義理解問(wèn)題。
3? ?詩(shī)詞生成(Generation of poems)
考慮到生成詩(shī)詞的主題一致性問(wèn)題,本文詩(shī)詞生成主要分為三個(gè)模塊,即關(guān)鍵詞提取與擴(kuò)展模塊(Keyword-Extract-Extend, KEE)、字生成詩(shī)句模塊(Word-To-Line,WTL)和關(guān)鍵詞引導(dǎo)的Attention機(jī)制詩(shī)句生成模塊(Context-To-Line, CTL)。詩(shī)詞的整個(gè)生成過(guò)程如圖1所示。下面將具體介紹每個(gè)模塊的構(gòu)建和功能。
3.1? ?關(guān)鍵詞提取與擴(kuò)展模塊(KEE)
本文詩(shī)句生成模型的訓(xùn)練語(yǔ)料是關(guān)鍵詞加詩(shī)句結(jié)構(gòu),那么形成訓(xùn)練語(yǔ)料的關(guān)鍵一步是提取每句詩(shī)的關(guān)鍵詞。目前,文本關(guān)鍵詞的提取分為無(wú)監(jiān)督和有監(jiān)督方法,有監(jiān)督方法需要有詩(shī)詞語(yǔ)料的關(guān)鍵詞標(biāo)注數(shù)據(jù)的支持,但由于人工標(biāo)注的成本較高,因此本文采用無(wú)監(jiān)督的關(guān)鍵詞提取方法。其過(guò)程是:首先對(duì)收集的詩(shī)詞語(yǔ)料采用結(jié)巴和詩(shī)學(xué)含英進(jìn)行分詞,這里結(jié)合詩(shī)學(xué)含英分詞,主要是考慮到詩(shī)句中字詞語(yǔ)義表達(dá)的特殊性。然后用TextRank算法對(duì)詩(shī)句中的候選詞打分并排序,之后選取得分較高的N個(gè)詞作為關(guān)鍵詞,同時(shí)保留這些詞在原句中的順序。
關(guān)鍵詞的擴(kuò)展是指當(dāng)用戶輸入的關(guān)鍵詞太少,或已知句子太短無(wú)法提取出足夠的關(guān)鍵詞時(shí),可采用輸入的關(guān)鍵詞或已提取的關(guān)鍵詞訓(xùn)練Word2vec(Word to Vector, 詞轉(zhuǎn)換為向量)預(yù)訓(xùn)練模型生成詞向量,然后利用詞向量計(jì)算相似度,獲得語(yǔ)義最近的詞,將其擴(kuò)展為關(guān)鍵詞。作詩(shī)時(shí),用戶根據(jù)要表達(dá)的主題和思想選定關(guān)鍵詞并輸入模型,此時(shí),關(guān)鍵詞擴(kuò)展模塊會(huì)根據(jù)用戶輸入的關(guān)鍵詞將其擴(kuò)展到N(假設(shè)有N個(gè)詩(shī)句)?;蛘哂脩艨梢暂斎胍粋€(gè)句子,關(guān)鍵詞提取模塊可以從用戶輸入的句子中提取關(guān)鍵詞并擴(kuò)展至N個(gè)。因?yàn)楸疚拇舜斡?xùn)練模型生成的是四言詩(shī),所以最多擴(kuò)展至四個(gè)關(guān)鍵詞。
3.2? ?字生成詩(shī)句模塊(WTL)
由研究現(xiàn)狀分析可知,基于統(tǒng)計(jì)(SMT-based)的機(jī)器翻譯方法是生成詩(shī)歌綜合性能較高的方法之一,但其最大的不足是自身無(wú)法生成第一句詩(shī),其主要原因是語(yǔ)言要素的合理表達(dá)方式的欠缺。而本文模型結(jié)構(gòu)采用BERT將所有輸入轉(zhuǎn)化為嵌入式詞矢量,那么詞和句子都將映射到相同的矢量空間,這些空間中的矢量表達(dá)了詞向量、詞的位置向量和分段向量的和,具有更深和更廣的語(yǔ)義關(guān)系。這樣,就可以將詩(shī)詞的生成系統(tǒng)簡(jiǎn)化。也就是說(shuō),理論上本文的字生成詩(shī)句和詩(shī)句生成詩(shī)句這兩個(gè)模塊都可以基于Attention機(jī)制的RNN Encoder-Decoder一個(gè)結(jié)構(gòu)實(shí)現(xiàn),但考慮到首句的生成只是依據(jù)關(guān)鍵詞,輸入相對(duì)較短,所以將該WTL模塊單獨(dú)訓(xùn)練。其具體過(guò)程是根據(jù)擴(kuò)展后的關(guān)鍵詞,WTL模塊生成與輸入的關(guān)鍵詞相關(guān)語(yǔ)義的首句。之后CTL模塊基于生成的第一句和第二句的關(guān)鍵詞生成詩(shī)的第二句。最后CTL以之前所有的生成詩(shī)句和本句關(guān)鍵詞生成整個(gè)詩(shī)詞。
3.3? ?關(guān)鍵詞引導(dǎo)的Attention機(jī)制詩(shī)句生成模塊(CTL)
基于Attention的seq2seq模型是由文獻(xiàn)[19]首次應(yīng)用到自然語(yǔ)言處理中(NLP),之后出現(xiàn)了各種基于RNN的Attention的擴(kuò)展模型,其主要是對(duì)RNN單元的改進(jìn)和Attention矩陣計(jì)算方法變換的兩類擴(kuò)展模式。不管哪種擴(kuò)展模式,它們的基本結(jié)構(gòu)都是相似的。本文以關(guān)鍵詞為導(dǎo)向的Attention機(jī)制詩(shī)句生成模塊結(jié)構(gòu)如圖2所示。其中,BERT作為模型的詞嵌入用來(lái)提取詩(shī)句中詞的動(dòng)態(tài)語(yǔ)義信息。它使用的是Transformer,捕捉到的是真正意義上的Bidirectional Context信息。Encoder部分由雙向GRU對(duì)輸入的詩(shī)詞向量進(jìn)行編碼,Decoder的解碼由GRU+Attention機(jī)制完成,Attention的主要貢獻(xiàn)點(diǎn)在于根據(jù)與輸出的匹配程度,對(duì)GRU隱藏層的狀態(tài)進(jìn)行加權(quán)變化,區(qū)別對(duì)待。本文模型的輸入數(shù)據(jù)除了上下文信息,特別添加了關(guān)鍵詞,即圖2中的,以增強(qiáng)主題的信息量。
該模塊的具體工作過(guò)程為:BERT將輸入的文本信息表示為深層語(yǔ)義向量,Encoder將輸入序列轉(zhuǎn)換為正反向隱藏狀態(tài)和,對(duì)于任意的,通過(guò)編碼形成的最終隱藏狀態(tài)是相應(yīng)的正反向隱藏狀態(tài)的結(jié)合,這里,是非線性函數(shù),。這樣,隱藏狀態(tài)同時(shí)涵蓋了詞以及詩(shī)句的前后向語(yǔ)義關(guān)系,將獲得的詞語(yǔ)和詩(shī)句的全面完整信息用于后端的解碼。在本文模型中,詩(shī)的第一句僅由關(guān)鍵詞生成,即,由WTL模塊完成。Decoder的解碼端根據(jù)自身當(dāng)前的狀態(tài)和編碼端輸出的隱藏狀態(tài),以字符的形式生成詩(shī)句。兩個(gè)模塊(WTL、CTL)的解碼端功能相同。具體公式為:
其中,是注意力機(jī)制中用來(lái)計(jì)算第個(gè)字符的隱藏狀態(tài)的,即
這里的反映了編碼端隱藏狀態(tài)對(duì)生成詩(shī)句的貢獻(xiàn)大小,表達(dá)了和的相似度,也稱為對(duì)齊度。解碼器依據(jù)確定哪一部分輸入更加重要,以分配更多的注意力,從而使生成詩(shī)的上下句之間的相應(yīng)詞具有更好的關(guān)聯(lián)性。
4? ?模型的訓(xùn)練(Model training)
4.1? ?詞嵌入向量模型的訓(xùn)練
詞嵌入層是詩(shī)生成模型的輸入層,也是詩(shī)生成過(guò)程中最關(guān)鍵的一步。該層能否將詞或句子的語(yǔ)義和感情等特征映射到相應(yīng)的語(yǔ)義空間,將直接決定整個(gè)生成模型的性能??紤]到詩(shī)詞的稀疏性以及詩(shī)句結(jié)構(gòu)的特殊性(如對(duì)仗、押韻等),本文的詞嵌入向量采用BERT生成,如圖3所示。
通過(guò)訓(xùn)練,BERT提取出輸入序列的token、位置和分割嵌入特征,將它們的特征和轉(zhuǎn)換為具有深層語(yǔ)義關(guān)系的字向量輸出。本文基于BERT訓(xùn)練的模型主要有兩種,分別為對(duì)齊模型和普通模型。其中對(duì)齊輸入的詞向量模型是本文的一個(gè)突出點(diǎn),主要是為了提取和學(xué)習(xí)詩(shī)句間的對(duì)仗性,即將詩(shī)句結(jié)合其對(duì)應(yīng)的對(duì)仗數(shù)據(jù)列表共同作為BERT詞嵌入向量模型的訓(xùn)練數(shù)據(jù),以得到詩(shī)上下句間更豐富的語(yǔ)義信息。具體為:第一個(gè)列表存放這首詩(shī)每一句的第一個(gè)字,第二個(gè)列表存放該詩(shī)每一句的第二個(gè)字,以此類推直到所有字放入列表中,列表的個(gè)數(shù)由詩(shī)的體裁決定,如表1所示。而普通模型的詞向量?jī)H用詩(shī)句訓(xùn)練BERT模型,將其轉(zhuǎn)化為嵌入式詞向量。
4.2? ?混合訓(xùn)練
就句型而言,古詩(shī)一般有五言和七言之分,即每句詩(shī)有五個(gè)或七個(gè)字符。雖然在格式上它們有所不同,但意境、思想的表達(dá)所采用的字詞是相似的。為了豐富訓(xùn)練集,參考已有文獻(xiàn),選擇采用五言和七言的混合詩(shī)集來(lái)訓(xùn)練同一模型。
4.3? ?詩(shī)生成模型的訓(xùn)練
詩(shī)生成模型的訓(xùn)練就是利用訓(xùn)練集,通過(guò)最優(yōu)化方法確定一組使損失函數(shù)取值最小的參數(shù),確定參數(shù)后的函數(shù)就是訓(xùn)練的結(jié)果。使損失函數(shù)取值最小的直接表達(dá)就是使預(yù)測(cè)值和原始值更加接近。就詩(shī)詞生成而言,是指生成詩(shī)句符合訓(xùn)練詩(shī)句的格式,輸入句和生成句的主題保持一致,內(nèi)容關(guān)聯(lián),富含韻律和對(duì)仗。為此,本文選擇交叉熵?fù)p失函數(shù)來(lái)衡量Decoder輸出字符和真實(shí)輸入值之間的誤差。另外,為了提高模型訓(xùn)練的效率,選擇最小批梯度下降(Mini-batch Gradient Descent)算法加快迭代次數(shù)和AdaDelta算法優(yōu)化學(xué)習(xí)效率。通過(guò)多次試驗(yàn),主要參數(shù)確定為batchsize為64、dropout為0.3、學(xué)習(xí)率為0.0001的訓(xùn)練效果最優(yōu)。
5? 實(shí)驗(yàn)及方法評(píng)估(Experiment and method evaluation)
這部分主要是數(shù)據(jù)集的獲取、實(shí)驗(yàn)方法的設(shè)計(jì)和實(shí)驗(yàn)結(jié)果的評(píng)估。首先介紹數(shù)據(jù)集的構(gòu)成,其次是實(shí)驗(yàn)方法以及與其他方法的比較,最后是對(duì)實(shí)施方法的評(píng)估。
5.1? ?數(shù)據(jù)集
本文的數(shù)據(jù)集是從互聯(lián)網(wǎng)上搜集的五言和七言律詩(shī),其中五言四句詩(shī)有96,208 首,七言四句詩(shī)有175,603 首,共271,811 首,用來(lái)訓(xùn)練GRU+Attention模型。據(jù)我們所知,該數(shù)據(jù)集已經(jīng)涵蓋了大量已有的詩(shī)句,并從中隨機(jī)選擇4,000首詩(shī)作為驗(yàn)證集、4,000首詩(shī)作為測(cè)試集,剩下的詩(shī)為訓(xùn)練集。
5.2? ?實(shí)驗(yàn)步驟
本文詩(shī)生成實(shí)驗(yàn)的具體步驟如下:
(1)首先對(duì)收集的數(shù)據(jù)集進(jìn)行預(yù)處理,去除停用詞,按照詞頻排序,生成詞典。
(2)對(duì)語(yǔ)料庫(kù)中的詩(shī)進(jìn)行解析,判斷其是否為五言或七言律詩(shī)以及這些詩(shī)是否在生成的詞典中。
(3)對(duì)解析后的所有詩(shī)按照3.1節(jié)的方法提取并擴(kuò)展關(guān)鍵詞,對(duì)于每一行詩(shī)句,使用TextRank的方法選出每行得分最高的詞作為該行的關(guān)鍵詞。本文的訓(xùn)練集為絕句,所以每首絕句被提取出有序的四個(gè)關(guān)鍵詞用來(lái)訓(xùn)練關(guān)鍵詞擴(kuò)展模型。
(4)用預(yù)處理的詩(shī)語(yǔ)料對(duì)BERT詞嵌入模型進(jìn)行訓(xùn)練,得到訓(xùn)練語(yǔ)料的詞向量空間。
(5)訓(xùn)練集的生成。按照?qǐng)D1的詩(shī)生成方式處理并生成訓(xùn)練集,如表2所示。
(6)采用4.3的參數(shù)及生成的訓(xùn)練集訓(xùn)練BERT+BiGRU+
Attention序列模型。
5.3? ?實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)重點(diǎn)設(shè)計(jì)了基于BERT對(duì)齊向量輸入的Attention機(jī)制詩(shī)生成模型,簡(jiǎn)稱BERT對(duì)齊模型(B_AM)。為了對(duì)比BERT對(duì)詩(shī)及句子語(yǔ)義的動(dòng)態(tài)深層次表示,實(shí)驗(yàn)還訓(xùn)練了基于Word2vec的對(duì)齊向量輸入模型(W_AM),以及目標(biāo)句反轉(zhuǎn)輸入模型,簡(jiǎn)稱反轉(zhuǎn)模型(W_RM)和普通模型(W_CM)。其中反轉(zhuǎn)模型是指在訓(xùn)練時(shí)將目標(biāo)句反轉(zhuǎn)輸入,其主要目的是為了增強(qiáng)上下詩(shī)句之間的局部一致性,但其負(fù)面影響是削弱了對(duì)詩(shī)句的韻律表征。普通模型是指按照詩(shī)句的正常順序輸入Word2vec及序列模型進(jìn)行訓(xùn)練。對(duì)每種模型,實(shí)驗(yàn)均采用五言和七言詩(shī)混合訓(xùn)練集進(jìn)行訓(xùn)練,本文系統(tǒng)是在Disiok的基礎(chǔ)上建立的。同時(shí),為了對(duì)比本實(shí)驗(yàn)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)詩(shī)生成模型的優(yōu)劣性,將此次實(shí)驗(yàn)設(shè)計(jì)的四種模型(B_AM、W_AM、W_RM、W_CM)與SMT以及無(wú)Attention機(jī)制的模型(No-Attention, NAT)在同一主題下作的詩(shī)進(jìn)行了對(duì)比,其結(jié)果主要通過(guò)BLEU(Bilingual Evaluation Understudy,雙語(yǔ)互譯質(zhì)量評(píng)估輔助工具)和人工兩方面進(jìn)行評(píng)測(cè)。
5.4? ?詩(shī)的生成及評(píng)估
實(shí)驗(yàn)按照詩(shī)學(xué)含英中對(duì)詩(shī)詞的分類,分別選取了思鄉(xiāng)、邊塞、抒情、敘事和山水田園五類主題的詩(shī)各5 首,從每首詩(shī)中人工選取1—4 個(gè)關(guān)鍵詞,分別用實(shí)驗(yàn)設(shè)置中的模型及對(duì)比模型作詩(shī),每類主題每個(gè)模型作10 首詩(shī),每個(gè)模型共作各類主題的詩(shī)50 首,人工初選出各模型的30 首作評(píng)測(cè)。此次采用的評(píng)估方法主要有以下三種。
5.4.1? ?BLEU評(píng)測(cè)
首先對(duì)各模型生成的30首詩(shī)采用BLEU進(jìn)行評(píng)測(cè)。BLEU原本是用來(lái)評(píng)價(jià)機(jī)器翻譯效果的,也有用BLEU評(píng)測(cè)詩(shī)詞的生成質(zhì)量。該方法簡(jiǎn)單,計(jì)算量小,最主要的是與人工評(píng)測(cè)的結(jié)果有一定的相似性,所以本文首先采用BLEU對(duì)生成的詩(shī)進(jìn)行自動(dòng)評(píng)估。表3是本文四種模型與SMT和NAT模型生成詩(shī)的BLEU結(jié)果??梢钥闯?,BERT對(duì)齊模型生成詩(shī)的平均BLEU最高,其次是對(duì)齊向量輸入模型。而SMT模型生成的詩(shī)的BLEU相對(duì)較低,因?yàn)槠渲饕捎媚0寤蚪y(tǒng)計(jì)模型的填詞形式生成詩(shī),所以生成詩(shī)句的語(yǔ)義連貫性不強(qiáng),可讀性較低。
5.4.2? ?相關(guān)性評(píng)測(cè)
對(duì)于自動(dòng)生成的詩(shī),除了格式上符合要求以外,更重要的是語(yǔ)義上的流暢和連貫性。目前,這種性能的機(jī)器評(píng)測(cè)大多采用上下句的相關(guān)性進(jìn)行衡量。本文借鑒BERTScore對(duì)自動(dòng)生成文本或摘要的評(píng)價(jià)思想,即對(duì)兩個(gè)生成句和參考句分別用BERT提取特征,然后對(duì)這兩個(gè)句子的每一個(gè)詞分別計(jì)算內(nèi)積,可以得到一個(gè)相似性矩陣?;谶@個(gè)矩陣,計(jì)算參考句和生成句的最大相似性得分的累加然后歸一化。文本在此思想上做了改進(jìn),側(cè)重于比較詩(shī)的上下句子之間的相似度,以衡量生成整首詩(shī)的流暢性。根據(jù)前面BLEU的評(píng)測(cè)結(jié)果,擇優(yōu)比較,本實(shí)驗(yàn)只選取B_AM和W_AM兩種對(duì)齊模型和人工作的同一主題詩(shī)的上下句的相關(guān)性做了對(duì)比分析,結(jié)果如表4所示。為了更直觀地表達(dá)三者的關(guān)系,作了如圖4所示的曲線圖,從表4和圖4可以看出,基于BERT的對(duì)齊模型的詩(shī)句間的相關(guān)性要好于Word2vec對(duì)齊模型生成詩(shī)句的相關(guān)性,僅次于人工作詩(shī)。
5.4.3? ?人工評(píng)測(cè)
眾所周知,文本生成系統(tǒng)還沒(méi)有權(quán)威的、非常準(zhǔn)確的評(píng)估標(biāo)準(zhǔn),因?yàn)樵谝阎暇鋾r(shí),有很多符合邏輯及語(yǔ)義關(guān)系的下句可以對(duì)應(yīng)。而且,詩(shī)除了具有一般文本的相關(guān)屬性外,還應(yīng)有其特殊的嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),如平仄、押韻等,更重要的是詩(shī)的用意,這一點(diǎn)是無(wú)法用BLEU評(píng)測(cè)的。目前最好的辦法是人工評(píng)測(cè),本文參考之前的相關(guān)工作(文獻(xiàn)[10]和[11])制定了五條人工評(píng)測(cè)標(biāo)準(zhǔn):詩(shī)意性、流暢性、連貫性、意義性及聲調(diào)和押韻的和諧性。因?yàn)樵?shī)區(qū)別于一般文本的主要特點(diǎn)是它的結(jié)構(gòu)和聲調(diào)及押韻等,所以本文在人工評(píng)測(cè)中加了聲調(diào)和押韻的和諧性。其中,每一條標(biāo)準(zhǔn)的打分范圍是3—5 分。將每種模型生成的30 首詩(shī)由五名文學(xué)專家分別對(duì)每條標(biāo)準(zhǔn)進(jìn)行打分,計(jì)算它們的平均得分作為最終結(jié)果,如表5所示。
從表5可以看出,本文的BERT詞嵌入式對(duì)齊模型在后四個(gè)指標(biāo)中較SMT有一定的優(yōu)勢(shì),在詩(shī)意性方面有些欠缺,可能的原因是SMT的每一句詩(shī)的詞是擇優(yōu)選擇填充,甚至SMT的第一句可能是原詩(shī)而并非機(jī)器學(xué)習(xí)自動(dòng)生成。但較Word2vec對(duì)齊模型、反轉(zhuǎn)模型、普通模型和NAT模型,BERT對(duì)齊模型的優(yōu)勢(shì)較為明顯,NAT模型整體性能欠佳。
6? ?結(jié)論(Conclusion)
本文采用sequence-to-sequence結(jié)構(gòu)生成詩(shī)句序列,基于GRU+Attention機(jī)制建立詩(shī)的生成模型。為了從句子級(jí)別表達(dá)上下文動(dòng)態(tài)的語(yǔ)義信息,本文自動(dòng)生成模型的向量轉(zhuǎn)換采用BERT詞嵌入。為解決自動(dòng)生成詩(shī)的主題發(fā)散性問(wèn)題,建立了關(guān)鍵詞導(dǎo)向的Attention機(jī)制的詩(shī)生成模型,即在生成每一句詩(shī)時(shí)均有關(guān)鍵詞的監(jiān)督和引導(dǎo)。為了增強(qiáng)詩(shī)句之間的對(duì)仗性和語(yǔ)義的連貫性,在原有數(shù)據(jù)(詩(shī)句)的基礎(chǔ)上增加了對(duì)仗數(shù)據(jù)列表作為輸入訓(xùn)練BERT模型生成嵌入式詞向量,將該詞向量作為詩(shī)生成模型的輸入生成詩(shī)的下句。為了證明本實(shí)驗(yàn)設(shè)計(jì)模型生成詩(shī)的優(yōu)劣性,將此次實(shí)驗(yàn)設(shè)計(jì)的三種模型(B_AM、W_AM和W_RM)與經(jīng)典SMT模型在同一主題下作的詩(shī)進(jìn)行了對(duì)比,主要從自動(dòng)(BLEU)、人工和上下詩(shī)句的相關(guān)性三方面進(jìn)行評(píng)估。從對(duì)各模型所作詩(shī)的各種評(píng)估結(jié)果分析可知,無(wú)論是BLEU值與原詩(shī)的對(duì)比評(píng)估,還是人工的五方面指標(biāo)的評(píng)估,BERT對(duì)齊模型生成詩(shī)的效果均較優(yōu)。特別是對(duì)生成詩(shī)的上下句相關(guān)性而言,BERT對(duì)齊模型優(yōu)勢(shì)明顯,僅次于人工作詩(shī);其次是Word2vec對(duì)齊模型;Word2vec反轉(zhuǎn)模型由于在音調(diào)上的控制,整體性能高于普通模式。這也進(jìn)一步說(shuō)明,只要能使模型的輸入序列充分表達(dá)詩(shī)句的格律、押韻和對(duì)仗,以及豐富的上下文內(nèi)容和語(yǔ)義等信息,Attention機(jī)制可以生成較接近人工的詩(shī)。另外,從對(duì)比模型(NAT)的各方評(píng)測(cè)可以看出,基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)模型生成文本的質(zhì)量關(guān)鍵在于語(yǔ)義的轉(zhuǎn)換和編碼部分,如果模型的編碼輸入部分能獲得全面的、深層次的語(yǔ)義信息,結(jié)合Attention機(jī)制,深度學(xué)習(xí)模型可自動(dòng)生成主題一致、滿足格律要求的詩(shī)等各類文本,那么未來(lái)的工作可以嘗試BERT預(yù)訓(xùn)練的文本或詩(shī)生成模型的建立及實(shí)驗(yàn)。
參考文獻(xiàn)(References)
[1] 林倩,文華婷,楊靜,等.中文詞語(yǔ)內(nèi)部層次結(jié)構(gòu)標(biāo)注語(yǔ)料庫(kù)的建立[J/OL].廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,59(02):225-230.
[2] 劉揚(yáng),林子,康司辰.漢語(yǔ)的語(yǔ)素概念提取與語(yǔ)義構(gòu)詞分析[J].中文信息學(xué)報(bào),2018,32(02):12-21.
[3] WANG S, ZHANG J, ZONG C Q. Exploiting word internal structures for generic Chinese sentence representation[C]. Proceedings of the Conference on Empirical Methods in Natural Language Processing, Copenhagen, EMNLP, 2017:298-303.
[4] MOU L, YAN R, LI G, et al. Backward and forward language modeling for constrained sentence generation[J]. Computer Science, 2016, 4(6):473-482.
[5] YAEL N, DAVID G, YOAV G, et al. Generating haiku with word associations norms[C]. Proceedings of the Workshop on Computational Approaches Linguistic Creativity, 2009:32-39.
[6] HUGO G O, TIAGO M, ANA B, et al. Co-PoeTryMe: Interactive poetry generation[J]. Cognitive Systems Research, 2019, 54:199-216.
[7] ZHOU C L, YOU W, DING X. Genetic algorithm and its implementation of automatic generation of Chinese songci[J]. Journal of Software, 2010, 21(3):427-437.
[8] LONG J, MING Z. Generating Chinese couplets using a statistical MT approach[C]. In Proceedings of the 22nd International Conference on Computational Linguistics, Manchester, UK: AC, 2008:18-22.
[9] JING H, MING Z, LONG J. Generating Chinese classical poems with statistical machine translation models[C]. In Proceedings of the 26th AAAI Conference on Artificial Intelligence, Toronto, Canada, 2012:22-26.
[10] ZHANG X, Lapata M. Chinese poetry generation with recurrent neural networks[C]. In: Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Doha, 2014:25-29.
[11] WAGN Q, LUO T, WANG D. Chinese song lambics generation with neural attention-based model[C]. In: IJCAI'6, New York, 2016:9-15.
[12] YI X Y, LI R Y, SUN M S. Generating Chinese classical poems with RNN encoder-decoder[C]. Chinese Computational Linguistics Internaional Symposium on Natural Language Processing Based on Naturally Annotated Big Data, The 16th China National Conference, Nanjing, CCL, 2017:13-15.
[13] WANG Z, HE W, WU H, et al. Chinese poetry generation with planning based neural network[C]. The 26th International Conference on Computational Linguistics, Osaka, Japan, 2016:1051-1060.
[14] YU L, ZHANG W, WANG J, et al. Sequence generative adversarial nets with policy gradient[C]. Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence, San Francisco, California, USA, 2017:2852-2858.
[15] ZHE H T, WANG W, CHEN W, et al. Automatic generation of news comments based on gated attention neural networks[J]. IEEE Access, 2018(6):702-710.
[16] IOANNIS K, SRINIVASAN I, MARK Y, et al. Neural AMR: Sequence-to-sequence models for parsing and generation[C]. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics, Vancouver, Canada, 2017:146-157.
[17] SONG L, ZHANG Y, WANG Z G, et al. A graph-to-sequence model for AMR-to-text generation[C]. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, Melbourne, Australia, 2018:1616-1626.
[18] RIK K, DHANUSH B, LUAN Y, et al. Text generation from knowledge graphs with graph transformers[C]. Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics, 2019:2284-2293.
[19] DZMITR B, KYUNGHYUN C, YOSHUA B. Neural machine translation by jointly learning to align and translate[C]. CoRR, 2014:1-15.
作者簡(jiǎn)介:
楊泰康(1991-),男,碩士生.研究領(lǐng)域:自然語(yǔ)言處理,信息安全.
楊婉霞(1979-),女,博士,副教授.研究領(lǐng)域:信息處理,自動(dòng)控制.本文通訊作者.
劉? 燕(1987-),女,碩士,講師.研究領(lǐng)域:信息處理.
胡智喻(1995-),男,碩士生.研究領(lǐng)域:自然語(yǔ)言處理.
王巧珍(1996-),女,碩士生.研究領(lǐng)域:自然語(yǔ)言處理,信息安全.
徐明杰(1998-),男,碩士生.研究領(lǐng)域:自然語(yǔ)言處理.