楊泰康 楊婉霞 劉燕 胡智喻 王巧珍 徐明杰
摘? 要:中國古詩因其嚴謹?shù)钠截?、押韻結(jié)構(gòu),精練傳神的用詞成為文本自動生成領(lǐng)域的挑戰(zhàn)問題之一。本文基于雙向多層轉(zhuǎn)換編解碼的空間向量,結(jié)合Attention機制建立了循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的詩自動生成模型。為解決自動生成詩的主題發(fā)散性問題,模型在生成每句詩時均增加了關(guān)鍵詞約束。此外,為了增強詩句之間的對仗性和語義的連貫性,模型雙向多層轉(zhuǎn)換編解碼的詞嵌入式輸入添加了詩句的對齊向量。實驗結(jié)果表明,相比于以詞轉(zhuǎn)換為向量的詞嵌入式的詩自動生成模型,本文設(shè)計的基于BERT的對齊向量輸入模型生成的詩不僅在機器評估和人工評估中性能較優(yōu),而且生成詩句相鄰句子的相關(guān)性也最好。這也進一步說明,當模型的輸入向量能充分表達詩詞的格式、內(nèi)容和語義時,雙向多層轉(zhuǎn)換編解碼的向量表示,即Attention機制+循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建的詩生成模型可以生成較接近人工作的詩。
關(guān)鍵詞:Attention機制;雙向多層轉(zhuǎn)換編解碼;詩;自動生成;循環(huán)神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391? ? ?文獻標識碼:A
文章編號: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)
中國古詩詞源遠流長,大約有2000多年的歷史,是中國古典文學(xué)中最璀璨的明珠。不同時期的中國古詩詞主要發(fā)展為唐詩、宋詞和元曲等不同類型。這些古典詩詞中,以格律詩為主,主要是五言和七言的絕句和律詩,其突出特點是結(jié)構(gòu)嚴謹,字數(shù)、行數(shù)、平仄、用韻都有一定的限制。例如,律詩一般講究平仄和押韻、押韻和對仗,其中最核心的是它的韻律,即所謂的押韻,就是在詩詞中的規(guī)定位置(一般在句末)放置相同韻部的字,以使聲韻和諧。句子押韻,不僅吟誦和記憶舒暢,更使作品具有節(jié)奏、聲調(diào)和諧之美,如“平平仄仄平平仄,仄仄平平仄仄平”。杜甫的《春望》是一首標準的律詩:
國破山河在,(仄仄平平仄)
城春草木深。(平平仄仄平)
感時花濺淚,(平平平仄仄)
恨別鳥驚心。(仄仄仄平平)
其中第二句的“深”和第四句的“心”押韻,第三句和第四句對仗。中國古詩詞除了傳承經(jīng)典的文化精髓,還有教育和啟示后人的作用。而在當今信息和數(shù)據(jù)時代,詩詞也被賦予了新的使命,它不僅是構(gòu)成信息和數(shù)據(jù)的一員,更是承載信息的主要載體之一。所以機器創(chuàng)作和自動生成詩詞成為研究的熱點,它不但可以傳承和發(fā)展古代文化,更能滿足普通人進行詩詞創(chuàng)作的意愿,進一步激發(fā)人們學(xué)習(xí)和創(chuàng)作詩詞的熱情。然而由于受中國傳統(tǒng)詩詞嚴格的平仄押韻等格律限制,詩詞自動生成極具挑戰(zhàn)性。但隨著計算機技術(shù)和機器學(xué)習(xí)的發(fā)展,使詩詞的創(chuàng)作方式和生成手段發(fā)生了前所未有的改變,特別是深度學(xué)習(xí)的再次崛起,使詩詞創(chuàng)作成為可能,這也是本文關(guān)注的研究方向所在。
自20世紀90年代中期開始研究計算機輔助創(chuàng)作古詩詞以來,已在語料庫建立[1-2]、詞匯語義[3]、文本自動生成[4]等方面取得了一定的研究成果,并且能用多種方法生成符合一定格式要求的詩詞。但是,生成的詩詞不具有流暢性和連貫性,更沒有感情色彩。其主要原因是傳統(tǒng)的詩詞生成模型對生成詩詞的格律、語義等的約束一般由人工設(shè)計的規(guī)則和評估函數(shù)來實現(xiàn),很難全面地兼顧詞與詞、句子與句子、主題與內(nèi)容之間的相關(guān)性。近年來,隨著深度學(xué)習(xí)技術(shù)在自然語言處理方面的深入研究,出現(xiàn)了基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)的詩詞生成模型,大大地提高了詩詞的生成質(zhì)量。由于RNN存在梯度消失問題,對長序列的學(xué)習(xí)效果不佳,改進的門控單元(Gate Recurrent Unit, GRU)雖然能克服梯度消失的問題,然而由于不論輸入長短,它都將其編碼成一個固定長度的向量表示,這樣使得模型對長輸入序列的學(xué)習(xí)效果依然較差。后有研究者嘗試利用語義圖作為深度神經(jīng)網(wǎng)絡(luò)的輸入以提高生成文本的主題一致性和可控性,但還只是初步研究階段,有待進一步深入研究。所以本文提出一種基于BERT(Bidirectional Encoder Representation from Transformers,雙向多層轉(zhuǎn)換編解碼)詞向量的BiGRU+
Attention機制的編解碼模型來自動生成詩詞。實驗結(jié)果表明,本文設(shè)計的BERT詞向量結(jié)構(gòu)模型能夠生成具有流暢性、連貫性的詩歌。
論文其余部分結(jié)構(gòu)為:第二部分介紹了詩詞自動生成的研究現(xiàn)狀。第三部分構(gòu)建了本文詩詞生成的結(jié)構(gòu)過程并解釋了各模塊的功能實現(xiàn)原理。第四部分詳細描述了模型的訓(xùn)練過程。第五部分是實驗的設(shè)計和實驗結(jié)果的評估。第六部分是結(jié)論。
2? ?相關(guān)研究(Related research)
縱觀詩詞自動生成發(fā)展過程,可將詩詞的生成大致分為三個階段:第一階段是基于模板和模式的生成方法,該方法簡單可靠,能輸出較高質(zhì)量的結(jié)果,如利用詞的關(guān)聯(lián)規(guī)則生成日語詩[5],應(yīng)用語義和語法模板生成西班牙語詩[6]。但這種方法不夠靈活,需要人工設(shè)計模板或模式,雖然后來的基于實例推理方法的模板是從現(xiàn)有詩詞庫檢索生成,但過程依然煩瑣。第二階段的詩詞生成主要以自然選擇為主,即利用遺傳進化算法優(yōu)化生成,如采用隨機搜索算法獲得更具匹配性詩句的方法[7],但這類算法需要精心設(shè)計評估函數(shù)來保證詩詞的語義性、連貫性和格律等要求,不僅難度大,生成詩詞的效率也較低。第三階段的詩詞生成主要基于統(tǒng)計機器翻譯(Statistical Machine Translation, SMT)算法,SMT將詩詞生成看成翻譯過程,首次成功應(yīng)用于對聯(lián)的生成[8-9]。該類生成方法主要的遺憾是無法生成詩的第一句。上述方法在不斷地提高和完善的過程中,基本實現(xiàn)了符合一定語義性、連貫性和格律要求的詩詞自動生成系統(tǒng),但缺乏通用性,遷移能力比較差。隨著深度學(xué)習(xí)技術(shù)的進一步發(fā)展,通過訓(xùn)練深層次的網(wǎng)絡(luò)對大量的詩詞進行學(xué)習(xí),將學(xué)習(xí)到的詩詞的語義信息和格律訓(xùn)練成模型,然后利用該模型生成具有一定主題的詩詞,去除了人工的參與和設(shè)計,真正意義上實現(xiàn)了詩詞的自動生成。如基于RNN神經(jīng)網(wǎng)絡(luò)的詩詞生成模型[10]能夠自動學(xué)習(xí)詩詞的字詞表示、組合選擇及詩句的內(nèi)容。然而它的結(jié)構(gòu)有些復(fù)雜,由一個CNN和兩個RNN構(gòu)成,不利于模型的擴展。有文獻提出了Attention機制的機器翻譯模式的宋詞自動生成方法[11-12],Attention機制的引入增強了語義的連貫性,但存在主題漂移的問題。為此,基于主題規(guī)劃的詩歌生成模型[13]解決了主題發(fā)散的問題,但缺乏自動評估。相關(guān)文獻將對抗式生成網(wǎng)絡(luò)(Generative Adversarial Nets, GAN)引入文本生成中[14-15],提出了具有生成器RNN和判別器CNN的SeqGAN(Sequence Generative Adversarial Nets)詩歌生成模型,解決了評估函數(shù)難以人工設(shè)計的問題,但還有很多值得探索和改進的地方。IOANNIS K等[16]直接將語義圖(Abstract Meaning Representation Graphs, AMR Graphs)作為seq2seq模型的輸入生成文本。它首先是利用深度優(yōu)先搜索將AMR變成序列,對該序列采用LSTM模型進行編碼,然后基于Encoder-Decoder生成文本。這種方法并沒有直接對圖形結(jié)構(gòu)建模,而是對圖形結(jié)構(gòu)的線性化和序列化編碼。SONG等[17]基于Graph LSTM(Long Short-Term Memory,長短期記憶)的門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network, GGNN)對輸入圖形結(jié)構(gòu)進行直接編碼來生成文本。但門控網(wǎng)絡(luò)會影響信息傳播,生成的文本主題出現(xiàn)不確定性。后GraphWriter模型對圖注意力網(wǎng)絡(luò)進行了擴展[18],能夠同時對文章標題和提取的知識圖進行編碼,解碼時輸出的概率表示與知識圖和標題相互關(guān)聯(lián),使生成文本在主題一致性上有所改進,但生成文本的上下文語義連貫性和主題可控性方面均有待提高。由此可見,高質(zhì)量詩詞的自動生成仍然需要更進一步的研究。由上述分析可知,目前還沒有基于BERT詞向量的詩詞生成類的相關(guān)報道。為此,本文提出了BERT嵌入式詞向量的、關(guān)鍵詞監(jiān)督的、Attention機制的對齊模式詩生成模型。其主要特點是BERT在將文本轉(zhuǎn)換為空間向量時表達了動態(tài)的句子級語義信息,計算輸出的是實時的特征矢量。第二,每句詩的生成都有相應(yīng)的關(guān)鍵詞引導(dǎo),不僅僅受第一句的影響,以保持主題的一致性。第三,添加對齊序列向量輸入以增加生成詩句之間的對仗性,使生成的詩句保持語義上的連貫性和結(jié)構(gòu)的流暢性。本文的主要貢獻點是將BERT動態(tài)詞向量引入詩生成模型,解決了模型對輸入句子的句子級語義理解問題。
3? ?詩詞生成(Generation of poems)
考慮到生成詩詞的主題一致性問題,本文詩詞生成主要分為三個模塊,即關(guān)鍵詞提取與擴展模塊(Keyword-Extract-Extend, KEE)、字生成詩句模塊(Word-To-Line,WTL)和關(guān)鍵詞引導(dǎo)的Attention機制詩句生成模塊(Context-To-Line, CTL)。詩詞的整個生成過程如圖1所示。下面將具體介紹每個模塊的構(gòu)建和功能。
3.1? ?關(guān)鍵詞提取與擴展模塊(KEE)
本文詩句生成模型的訓(xùn)練語料是關(guān)鍵詞加詩句結(jié)構(gòu),那么形成訓(xùn)練語料的關(guān)鍵一步是提取每句詩的關(guān)鍵詞。目前,文本關(guān)鍵詞的提取分為無監(jiān)督和有監(jiān)督方法,有監(jiān)督方法需要有詩詞語料的關(guān)鍵詞標注數(shù)據(jù)的支持,但由于人工標注的成本較高,因此本文采用無監(jiān)督的關(guān)鍵詞提取方法。其過程是:首先對收集的詩詞語料采用結(jié)巴和詩學(xué)含英進行分詞,這里結(jié)合詩學(xué)含英分詞,主要是考慮到詩句中字詞語義表達的特殊性。然后用TextRank算法對詩句中的候選詞打分并排序,之后選取得分較高的N個詞作為關(guān)鍵詞,同時保留這些詞在原句中的順序。
關(guān)鍵詞的擴展是指當用戶輸入的關(guān)鍵詞太少,或已知句子太短無法提取出足夠的關(guān)鍵詞時,可采用輸入的關(guān)鍵詞或已提取的關(guān)鍵詞訓(xùn)練Word2vec(Word to Vector, 詞轉(zhuǎn)換為向量)預(yù)訓(xùn)練模型生成詞向量,然后利用詞向量計算相似度,獲得語義最近的詞,將其擴展為關(guān)鍵詞。作詩時,用戶根據(jù)要表達的主題和思想選定關(guān)鍵詞并輸入模型,此時,關(guān)鍵詞擴展模塊會根據(jù)用戶輸入的關(guān)鍵詞將其擴展到N(假設(shè)有N個詩句)?;蛘哂脩艨梢暂斎胍粋€句子,關(guān)鍵詞提取模塊可以從用戶輸入的句子中提取關(guān)鍵詞并擴展至N個。因為本文此次訓(xùn)練模型生成的是四言詩,所以最多擴展至四個關(guān)鍵詞。
3.2? ?字生成詩句模塊(WTL)
由研究現(xiàn)狀分析可知,基于統(tǒng)計(SMT-based)的機器翻譯方法是生成詩歌綜合性能較高的方法之一,但其最大的不足是自身無法生成第一句詩,其主要原因是語言要素的合理表達方式的欠缺。而本文模型結(jié)構(gòu)采用BERT將所有輸入轉(zhuǎn)化為嵌入式詞矢量,那么詞和句子都將映射到相同的矢量空間,這些空間中的矢量表達了詞向量、詞的位置向量和分段向量的和,具有更深和更廣的語義關(guān)系。這樣,就可以將詩詞的生成系統(tǒng)簡化。也就是說,理論上本文的字生成詩句和詩句生成詩句這兩個模塊都可以基于Attention機制的RNN Encoder-Decoder一個結(jié)構(gòu)實現(xiàn),但考慮到首句的生成只是依據(jù)關(guān)鍵詞,輸入相對較短,所以將該WTL模塊單獨訓(xùn)練。其具體過程是根據(jù)擴展后的關(guān)鍵詞,WTL模塊生成與輸入的關(guān)鍵詞相關(guān)語義的首句。之后CTL模塊基于生成的第一句和第二句的關(guān)鍵詞生成詩的第二句。最后CTL以之前所有的生成詩句和本句關(guān)鍵詞生成整個詩詞。
3.3? ?關(guān)鍵詞引導(dǎo)的Attention機制詩句生成模塊(CTL)
基于Attention的seq2seq模型是由文獻[19]首次應(yīng)用到自然語言處理中(NLP),之后出現(xiàn)了各種基于RNN的Attention的擴展模型,其主要是對RNN單元的改進和Attention矩陣計算方法變換的兩類擴展模式。不管哪種擴展模式,它們的基本結(jié)構(gòu)都是相似的。本文以關(guān)鍵詞為導(dǎo)向的Attention機制詩句生成模塊結(jié)構(gòu)如圖2所示。其中,BERT作為模型的詞嵌入用來提取詩句中詞的動態(tài)語義信息。它使用的是Transformer,捕捉到的是真正意義上的Bidirectional Context信息。Encoder部分由雙向GRU對輸入的詩詞向量進行編碼,Decoder的解碼由GRU+Attention機制完成,Attention的主要貢獻點在于根據(jù)與輸出的匹配程度,對GRU隱藏層的狀態(tài)進行加權(quán)變化,區(qū)別對待。本文模型的輸入數(shù)據(jù)除了上下文信息,特別添加了關(guān)鍵詞,即圖2中的,以增強主題的信息量。
該模塊的具體工作過程為:BERT將輸入的文本信息表示為深層語義向量,Encoder將輸入序列轉(zhuǎn)換為正反向隱藏狀態(tài)和,對于任意的,通過編碼形成的最終隱藏狀態(tài)是相應(yīng)的正反向隱藏狀態(tài)的結(jié)合,這里,是非線性函數(shù),。這樣,隱藏狀態(tài)同時涵蓋了詞以及詩句的前后向語義關(guān)系,將獲得的詞語和詩句的全面完整信息用于后端的解碼。在本文模型中,詩的第一句僅由關(guān)鍵詞生成,即,由WTL模塊完成。Decoder的解碼端根據(jù)自身當前的狀態(tài)和編碼端輸出的隱藏狀態(tài),以字符的形式生成詩句。兩個模塊(WTL、CTL)的解碼端功能相同。具體公式為:
其中,是注意力機制中用來計算第個字符的隱藏狀態(tài)的,即
這里的反映了編碼端隱藏狀態(tài)對生成詩句的貢獻大小,表達了和的相似度,也稱為對齊度。解碼器依據(jù)確定哪一部分輸入更加重要,以分配更多的注意力,從而使生成詩的上下句之間的相應(yīng)詞具有更好的關(guān)聯(lián)性。
4? ?模型的訓(xùn)練(Model training)
4.1? ?詞嵌入向量模型的訓(xùn)練
詞嵌入層是詩生成模型的輸入層,也是詩生成過程中最關(guān)鍵的一步。該層能否將詞或句子的語義和感情等特征映射到相應(yīng)的語義空間,將直接決定整個生成模型的性能??紤]到詩詞的稀疏性以及詩句結(jié)構(gòu)的特殊性(如對仗、押韻等),本文的詞嵌入向量采用BERT生成,如圖3所示。
通過訓(xùn)練,BERT提取出輸入序列的token、位置和分割嵌入特征,將它們的特征和轉(zhuǎn)換為具有深層語義關(guān)系的字向量輸出。本文基于BERT訓(xùn)練的模型主要有兩種,分別為對齊模型和普通模型。其中對齊輸入的詞向量模型是本文的一個突出點,主要是為了提取和學(xué)習(xí)詩句間的對仗性,即將詩句結(jié)合其對應(yīng)的對仗數(shù)據(jù)列表共同作為BERT詞嵌入向量模型的訓(xùn)練數(shù)據(jù),以得到詩上下句間更豐富的語義信息。具體為:第一個列表存放這首詩每一句的第一個字,第二個列表存放該詩每一句的第二個字,以此類推直到所有字放入列表中,列表的個數(shù)由詩的體裁決定,如表1所示。而普通模型的詞向量僅用詩句訓(xùn)練BERT模型,將其轉(zhuǎn)化為嵌入式詞向量。
4.2? ?混合訓(xùn)練
就句型而言,古詩一般有五言和七言之分,即每句詩有五個或七個字符。雖然在格式上它們有所不同,但意境、思想的表達所采用的字詞是相似的。為了豐富訓(xùn)練集,參考已有文獻,選擇采用五言和七言的混合詩集來訓(xùn)練同一模型。
4.3? ?詩生成模型的訓(xùn)練
詩生成模型的訓(xùn)練就是利用訓(xùn)練集,通過最優(yōu)化方法確定一組使損失函數(shù)取值最小的參數(shù),確定參數(shù)后的函數(shù)就是訓(xùn)練的結(jié)果。使損失函數(shù)取值最小的直接表達就是使預(yù)測值和原始值更加接近。就詩詞生成而言,是指生成詩句符合訓(xùn)練詩句的格式,輸入句和生成句的主題保持一致,內(nèi)容關(guān)聯(lián),富含韻律和對仗。為此,本文選擇交叉熵損失函數(shù)來衡量Decoder輸出字符和真實輸入值之間的誤差。另外,為了提高模型訓(xùn)練的效率,選擇最小批梯度下降(Mini-batch Gradient Descent)算法加快迭代次數(shù)和AdaDelta算法優(yōu)化學(xué)習(xí)效率。通過多次試驗,主要參數(shù)確定為batchsize為64、dropout為0.3、學(xué)習(xí)率為0.0001的訓(xùn)練效果最優(yōu)。
5? 實驗及方法評估(Experiment and method evaluation)
這部分主要是數(shù)據(jù)集的獲取、實驗方法的設(shè)計和實驗結(jié)果的評估。首先介紹數(shù)據(jù)集的構(gòu)成,其次是實驗方法以及與其他方法的比較,最后是對實施方法的評估。
5.1? ?數(shù)據(jù)集
本文的數(shù)據(jù)集是從互聯(lián)網(wǎng)上搜集的五言和七言律詩,其中五言四句詩有96,208 首,七言四句詩有175,603 首,共271,811 首,用來訓(xùn)練GRU+Attention模型。據(jù)我們所知,該數(shù)據(jù)集已經(jīng)涵蓋了大量已有的詩句,并從中隨機選擇4,000首詩作為驗證集、4,000首詩作為測試集,剩下的詩為訓(xùn)練集。
5.2? ?實驗步驟
本文詩生成實驗的具體步驟如下:
(1)首先對收集的數(shù)據(jù)集進行預(yù)處理,去除停用詞,按照詞頻排序,生成詞典。
(2)對語料庫中的詩進行解析,判斷其是否為五言或七言律詩以及這些詩是否在生成的詞典中。
(3)對解析后的所有詩按照3.1節(jié)的方法提取并擴展關(guān)鍵詞,對于每一行詩句,使用TextRank的方法選出每行得分最高的詞作為該行的關(guān)鍵詞。本文的訓(xùn)練集為絕句,所以每首絕句被提取出有序的四個關(guān)鍵詞用來訓(xùn)練關(guān)鍵詞擴展模型。
(4)用預(yù)處理的詩語料對BERT詞嵌入模型進行訓(xùn)練,得到訓(xùn)練語料的詞向量空間。
(5)訓(xùn)練集的生成。按照圖1的詩生成方式處理并生成訓(xùn)練集,如表2所示。
(6)采用4.3的參數(shù)及生成的訓(xùn)練集訓(xùn)練BERT+BiGRU+
Attention序列模型。
5.3? ?實驗設(shè)置
實驗重點設(shè)計了基于BERT對齊向量輸入的Attention機制詩生成模型,簡稱BERT對齊模型(B_AM)。為了對比BERT對詩及句子語義的動態(tài)深層次表示,實驗還訓(xùn)練了基于Word2vec的對齊向量輸入模型(W_AM),以及目標句反轉(zhuǎn)輸入模型,簡稱反轉(zhuǎn)模型(W_RM)和普通模型(W_CM)。其中反轉(zhuǎn)模型是指在訓(xùn)練時將目標句反轉(zhuǎn)輸入,其主要目的是為了增強上下詩句之間的局部一致性,但其負面影響是削弱了對詩句的韻律表征。普通模型是指按照詩句的正常順序輸入Word2vec及序列模型進行訓(xùn)練。對每種模型,實驗均采用五言和七言詩混合訓(xùn)練集進行訓(xùn)練,本文系統(tǒng)是在Disiok的基礎(chǔ)上建立的。同時,為了對比本實驗設(shè)計的神經(jīng)網(wǎng)絡(luò)詩生成模型的優(yōu)劣性,將此次實驗設(shè)計的四種模型(B_AM、W_AM、W_RM、W_CM)與SMT以及無Attention機制的模型(No-Attention, NAT)在同一主題下作的詩進行了對比,其結(jié)果主要通過BLEU(Bilingual Evaluation Understudy,雙語互譯質(zhì)量評估輔助工具)和人工兩方面進行評測。
5.4? ?詩的生成及評估
實驗按照詩學(xué)含英中對詩詞的分類,分別選取了思鄉(xiāng)、邊塞、抒情、敘事和山水田園五類主題的詩各5 首,從每首詩中人工選取1—4 個關(guān)鍵詞,分別用實驗設(shè)置中的模型及對比模型作詩,每類主題每個模型作10 首詩,每個模型共作各類主題的詩50 首,人工初選出各模型的30 首作評測。此次采用的評估方法主要有以下三種。
5.4.1? ?BLEU評測
首先對各模型生成的30首詩采用BLEU進行評測。BLEU原本是用來評價機器翻譯效果的,也有用BLEU評測詩詞的生成質(zhì)量。該方法簡單,計算量小,最主要的是與人工評測的結(jié)果有一定的相似性,所以本文首先采用BLEU對生成的詩進行自動評估。表3是本文四種模型與SMT和NAT模型生成詩的BLEU結(jié)果。可以看出,BERT對齊模型生成詩的平均BLEU最高,其次是對齊向量輸入模型。而SMT模型生成的詩的BLEU相對較低,因為其主要采用模板或統(tǒng)計模型的填詞形式生成詩,所以生成詩句的語義連貫性不強,可讀性較低。
5.4.2? ?相關(guān)性評測
對于自動生成的詩,除了格式上符合要求以外,更重要的是語義上的流暢和連貫性。目前,這種性能的機器評測大多采用上下句的相關(guān)性進行衡量。本文借鑒BERTScore對自動生成文本或摘要的評價思想,即對兩個生成句和參考句分別用BERT提取特征,然后對這兩個句子的每一個詞分別計算內(nèi)積,可以得到一個相似性矩陣?;谶@個矩陣,計算參考句和生成句的最大相似性得分的累加然后歸一化。文本在此思想上做了改進,側(cè)重于比較詩的上下句子之間的相似度,以衡量生成整首詩的流暢性。根據(jù)前面BLEU的評測結(jié)果,擇優(yōu)比較,本實驗只選取B_AM和W_AM兩種對齊模型和人工作的同一主題詩的上下句的相關(guān)性做了對比分析,結(jié)果如表4所示。為了更直觀地表達三者的關(guān)系,作了如圖4所示的曲線圖,從表4和圖4可以看出,基于BERT的對齊模型的詩句間的相關(guān)性要好于Word2vec對齊模型生成詩句的相關(guān)性,僅次于人工作詩。
5.4.3? ?人工評測
眾所周知,文本生成系統(tǒng)還沒有權(quán)威的、非常準確的評估標準,因為在已知上句時,有很多符合邏輯及語義關(guān)系的下句可以對應(yīng)。而且,詩除了具有一般文本的相關(guān)屬性外,還應(yīng)有其特殊的嚴謹?shù)慕Y(jié)構(gòu),如平仄、押韻等,更重要的是詩的用意,這一點是無法用BLEU評測的。目前最好的辦法是人工評測,本文參考之前的相關(guān)工作(文獻[10]和[11])制定了五條人工評測標準:詩意性、流暢性、連貫性、意義性及聲調(diào)和押韻的和諧性。因為詩區(qū)別于一般文本的主要特點是它的結(jié)構(gòu)和聲調(diào)及押韻等,所以本文在人工評測中加了聲調(diào)和押韻的和諧性。其中,每一條標準的打分范圍是3—5 分。將每種模型生成的30 首詩由五名文學(xué)專家分別對每條標準進行打分,計算它們的平均得分作為最終結(jié)果,如表5所示。
從表5可以看出,本文的BERT詞嵌入式對齊模型在后四個指標中較SMT有一定的優(yōu)勢,在詩意性方面有些欠缺,可能的原因是SMT的每一句詩的詞是擇優(yōu)選擇填充,甚至SMT的第一句可能是原詩而并非機器學(xué)習(xí)自動生成。但較Word2vec對齊模型、反轉(zhuǎn)模型、普通模型和NAT模型,BERT對齊模型的優(yōu)勢較為明顯,NAT模型整體性能欠佳。
6? ?結(jié)論(Conclusion)
本文采用sequence-to-sequence結(jié)構(gòu)生成詩句序列,基于GRU+Attention機制建立詩的生成模型。為了從句子級別表達上下文動態(tài)的語義信息,本文自動生成模型的向量轉(zhuǎn)換采用BERT詞嵌入。為解決自動生成詩的主題發(fā)散性問題,建立了關(guān)鍵詞導(dǎo)向的Attention機制的詩生成模型,即在生成每一句詩時均有關(guān)鍵詞的監(jiān)督和引導(dǎo)。為了增強詩句之間的對仗性和語義的連貫性,在原有數(shù)據(jù)(詩句)的基礎(chǔ)上增加了對仗數(shù)據(jù)列表作為輸入訓(xùn)練BERT模型生成嵌入式詞向量,將該詞向量作為詩生成模型的輸入生成詩的下句。為了證明本實驗設(shè)計模型生成詩的優(yōu)劣性,將此次實驗設(shè)計的三種模型(B_AM、W_AM和W_RM)與經(jīng)典SMT模型在同一主題下作的詩進行了對比,主要從自動(BLEU)、人工和上下詩句的相關(guān)性三方面進行評估。從對各模型所作詩的各種評估結(jié)果分析可知,無論是BLEU值與原詩的對比評估,還是人工的五方面指標的評估,BERT對齊模型生成詩的效果均較優(yōu)。特別是對生成詩的上下句相關(guān)性而言,BERT對齊模型優(yōu)勢明顯,僅次于人工作詩;其次是Word2vec對齊模型;Word2vec反轉(zhuǎn)模型由于在音調(diào)上的控制,整體性能高于普通模式。這也進一步說明,只要能使模型的輸入序列充分表達詩句的格律、押韻和對仗,以及豐富的上下文內(nèi)容和語義等信息,Attention機制可以生成較接近人工的詩。另外,從對比模型(NAT)的各方評測可以看出,基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)模型生成文本的質(zhì)量關(guān)鍵在于語義的轉(zhuǎn)換和編碼部分,如果模型的編碼輸入部分能獲得全面的、深層次的語義信息,結(jié)合Attention機制,深度學(xué)習(xí)模型可自動生成主題一致、滿足格律要求的詩等各類文本,那么未來的工作可以嘗試BERT預(yù)訓(xùn)練的文本或詩生成模型的建立及實驗。
參考文獻(References)
[1] 林倩,文華婷,楊靜,等.中文詞語內(nèi)部層次結(jié)構(gòu)標注語料庫的建立[J/OL].廈門大學(xué)學(xué)報(自然科學(xué)版),2020,59(02):225-230.
[2] 劉揚,林子,康司辰.漢語的語素概念提取與語義構(gòu)詞分析[J].中文信息學(xué)報,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.
作者簡介:
楊泰康(1991-),男,碩士生.研究領(lǐng)域:自然語言處理,信息安全.
楊婉霞(1979-),女,博士,副教授.研究領(lǐng)域:信息處理,自動控制.本文通訊作者.
劉? 燕(1987-),女,碩士,講師.研究領(lǐng)域:信息處理.
胡智喻(1995-),男,碩士生.研究領(lǐng)域:自然語言處理.
王巧珍(1996-),女,碩士生.研究領(lǐng)域:自然語言處理,信息安全.
徐明杰(1998-),男,碩士生.研究領(lǐng)域:自然語言處理.