喬露
(西北大學現(xiàn)代學院,文學院, 陜西, 西安 710130)
楹聯(lián),是中華傳統(tǒng)文化的瑰寶。楹聯(lián)和楹聯(lián)文化出現(xiàn)在人們生活的方方面面。作為楹聯(lián)文化的活動形式之一,楹聯(lián)應對是一種受到大眾喜愛的游戲。其形式為出題者給出上聯(lián),應對者根據(jù)上聯(lián)給出適當?shù)南侣?lián)。要求下聯(lián)與給定的上聯(lián)在文字上整齊對仗、意義上對照呼應、音律上平仄有節(jié)奏。
楹聯(lián)應對在文字、意義以及音律上的要求,使楹聯(lián)藝術具有形式美、意義美及聲律美的審美體驗的同時,也為楹聯(lián)藝術在年輕人中傳播以及初學者的學習,帶來了一定阻礙。如果能開發(fā)一套楹聯(lián)應對的算法系統(tǒng),輸入上聯(lián),機器自動給出符合要求的下聯(lián),則可以幫助楹聯(lián)文化的初學者、愛好者更好地學習、交流楹聯(lián)文化,從而對中國的傳統(tǒng)文化進行有效傳承。因此,本文在已有工作的基礎上,對現(xiàn)有楹聯(lián)生成算法進行了研究,并提出了基于序列到序列預訓練神經(jīng)網(wǎng)絡語言模型的楹聯(lián)自動生成算法。
關于自動楹聯(lián)生成,研究者嘗試了多種方法來完成該任務。文獻[1]提出了一種統(tǒng)計與規(guī)則相結合的古文對聯(lián)應對模型,該方法使用統(tǒng)計方法建立軟規(guī)則模型,同時在候選搜索階段通過硬規(guī)則排除不合理的解。文獻[2]提出了一種基于統(tǒng)計機器翻譯的對聯(lián)生成方法,這一方法為之后的研究者提供了新的思路。
近年來,隨著深度學習技術的發(fā)展,神經(jīng)網(wǎng)絡技術在自然語言處理領域的多種任務上都取得了成功。相關的研究者也開始嘗試將神經(jīng)網(wǎng)絡技術用于對聯(lián)生成任務。文獻[3-5]研究了基于循環(huán)神經(jīng)網(wǎng)絡和基于注意力機制的神經(jīng)網(wǎng)絡對聯(lián)生成系統(tǒng)。文獻[6]提出了一種基于多任務的古詩和對聯(lián)自動生成方法,該方法通過同時學習古詩和對聯(lián)生成任務,使兩個任務的部分數(shù)據(jù)和參數(shù)共享,從而提升最終的生成效果。
基于神經(jīng)網(wǎng)絡的對聯(lián)生成模型,相對傳統(tǒng)基于規(guī)則和統(tǒng)計的方法,效果上有了明顯提升。由于自然語言本身語法、語義上的復雜性,加上楹聯(lián)中上下聯(lián)需要滿足文字、音律以及意義上的要求,機器自動生成的楹聯(lián)效果仍難以達到高水平的楹聯(lián)愛好者的水平。尤其是當楹聯(lián)中涉及歷史典故及世界知識時,利用少量的楹聯(lián)數(shù)據(jù)訓練的神經(jīng)網(wǎng)絡模型,通常難以生成出理想的下聯(lián)。
為了解決這一問題,本文提出了一種基于預訓練神經(jīng)網(wǎng)絡語言模型的楹聯(lián)自動生成方法。核心思路:首先,利用預先在大規(guī)模語料上預訓練語言模型學習到漢語言的語義、語法和世界知識;然后,通過在楹聯(lián)數(shù)據(jù)上對預訓練的模型進行微調(diào),讓模型在預訓練學習到的知識基礎之上,進一步學習生成符合楹聯(lián)標準的下聯(lián)。實驗分析表明,本文提出的方法在效果上優(yōu)于已有模型。
2.1.1 Transformer
Transformer 是一種完全基于自注意力機制的神經(jīng)網(wǎng)絡結構,在文獻[7]中首次被提出,并首先在機器翻譯任務中被驗證有效。為了區(qū)分原始序列位置信息,在輸入層增加位置嵌入來建模詞在句子中的位置信息。相對于傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡存在的時序依賴問題,Transformer 能夠更好地并行計算,同時在多個任務上被證明具有更好的效果。
在自然語言中,語言模型用于建模詞序列概率分布。語言模型能夠刻畫詞語與其上下文的關系,在多種自然語言處理任務,特別是將生成文本作為輸出的任務上,語言模型被廣泛應用。例如:語音識別、光學字符識別、輸入法、信息檢索、機器翻譯等。常見的語言模型主要有基于統(tǒng)計的n元語法(n-gram)語言模型,以及基于神經(jīng)網(wǎng)絡的語言模型。
2.2.1 基于統(tǒng)計的n-gram語言模型
由于語言模型的目標是計算詞序列出現(xiàn)的概率,在理想情況下,可以對所有出現(xiàn)過的詞序列進行頻率統(tǒng)計,并據(jù)此估出任意詞序列出現(xiàn)的概率。但實踐上我們不可能得到所有真實出現(xiàn)過的詞序列機器頻率,大多數(shù)可能存在的詞序列都不能被觀察到。因此,這種方法實際不可行。
2.2.2 神經(jīng)網(wǎng)絡語言模型
與基于統(tǒng)計的n-gram語言模型不同,基于神經(jīng)網(wǎng)絡的語言模型使用分散式的連續(xù)詞向量來表示離散的詞匯。通過神經(jīng)網(wǎng)絡將這些詞向量進行非線性組合來建模。由于詞向量的參數(shù)量大小與|V|呈線性關系,上層神經(jīng)網(wǎng)絡的參數(shù)量可以看做常數(shù),因此這種方法可以一定程度避免維度災難。正是由于具有該優(yōu)勢,基于神經(jīng)網(wǎng)絡的語言模型大幅提升了傳統(tǒng)語言模型的性能,并取得了快速發(fā)展。
文獻[8]首次提出了一種基于前饋神經(jīng)網(wǎng)絡的語言模型。該方法利用n-gram的思想,通過神經(jīng)網(wǎng)絡來將詞語映射到低維連續(xù)向量空間中,從而提升基于統(tǒng)計的n-gram語言模型效果。此后循環(huán)神經(jīng)網(wǎng)絡語言模型、長短時記憶單元語言模型相繼被提出。
本章節(jié)介紹基于預訓練神經(jīng)網(wǎng)絡語言模型的楹聯(lián)自動生成方法設計方案。在任務上,該方法將楹聯(lián)生成轉換成一個序列到序列的文本生成問題,輸入“上聯(lián)”自遞歸的生成出“下聯(lián)”。與已有的神經(jīng)網(wǎng)絡模型不同,本方法先在大規(guī)模無監(jiān)督中文文本上對模型進行預訓練,然后再在楹聯(lián)生成數(shù)據(jù)集上進行微調(diào),并得到最終用于楹聯(lián)生成的模型結果。整體流程如圖1所示。
圖1 楹聯(lián)自動生成流程圖
我們采用序列到序列生成的模型范式,使用Transformer來作為編碼器與解碼器的基礎神經(jīng)網(wǎng)絡模塊,其中,編碼器和解碼器各由6層Transformer組成。整體的模型結構如圖2所示。在編碼時通過Transformer的雙向自注意力機制對輸入序列進行編碼,得到每個位置的向量表示:
圖2 楹聯(lián)模型結構圖
Henc=Encoder(X)=[h1,h2,…,hn]
(1)
(2)
(3)
其中,MLP為多層感知機。訓練階段,模型的損失函數(shù)為
(4)
文獻[9]提出的 ELMO將語言模型當作預訓練任務,并證明經(jīng)過預訓練的模型在下游任務微調(diào)后,能表現(xiàn)出更好的泛化性能。此后BERT、GPT等預訓練模型不斷被提出。本文采用降噪序列到序列方法對楹聯(lián)模型進行預訓練。
在預訓練階段,模型需要學習如何恢復被破壞的文本片段,即輸入經(jīng)過人為破壞的文本,輸入該文本破壞前的原始文本。具體的破壞方式有遮擋、刪除、填充、句子重排及文本旋轉等。在預訓練階段,模型需要學習到一定的知識,才能使訓練損失降低。
在大規(guī)模中文文本上預訓練之后,模型還不具備進行楹聯(lián)生成的能力,需要進一步在楹聯(lián)數(shù)據(jù)集上進行序列到序列任務微調(diào)。微調(diào)階段,模型學習的目標只有序列到序列的生成任務目標,沒有破壞文檔重建的目標。
具體來說,微調(diào)階段將上聯(lián)作為輸入序列X=[x1,x2,…,xn],將下聯(lián)作為Y=[y1,y2,…,ym]。由于楹聯(lián)要求上下聯(lián)字數(shù)必須相等,實際結果中m=n。訓練的損失函數(shù)形式為式(5):
(5)
實驗采用網(wǎng)絡公開可訪問的楹聯(lián)數(shù)據(jù)集,在此基礎上利用敏感詞詞庫對數(shù)據(jù)進行了過濾,刪除了低俗或敏感的內(nèi)容。進行實驗前,本文對該數(shù)據(jù)集的長度情況進行了分析,主要統(tǒng)計信息如表1所示。
本文還對數(shù)據(jù)集中最常見的漢字進行了分析,發(fā)現(xiàn)上聯(lián)與下聯(lián)的常見字頻率分布有一定差別,而訓練集與測試集的整體分布趨勢較為一致。詳細結論如表2所示(括號內(nèi)數(shù)字為該字出現(xiàn)的次數(shù))。
表2 楹聯(lián)生成數(shù)據(jù)集常見漢字分析
① 基于BLEU值進行量化分析。該方法優(yōu)點是能夠通過機器自動對大量模型生成的下聯(lián)與原始數(shù)據(jù)中人工撰寫的下聯(lián)進行對比評估,缺點是不能體現(xiàn)生成結果是否合理;② 人工評估。對不同方法生成結果,尋找相關專業(yè)的志愿者進行人工評估。其優(yōu)點是能夠?qū)ι山Y果進行更準確的評估,缺點是成本較高,難以進行大規(guī)模的評估。本文從句法和語義兩個維度來判斷一副楹聯(lián)的好壞,每個維度打分范圍為1~5分,得分越高越好。
本文對現(xiàn)有基于長短時記憶元的自動楹聯(lián)生成方法與本文提出方法進行了對比。從表3可以看到,在BLEU-1、BLEU-2及BLEU-3上,本文提出方法均優(yōu)于基線方法。
表3 BLEU值得分結果
另外,我們邀請了13位文學專業(yè)學者,按照句法和語義兩個維度,對基線方法和本文提出的方法生成的楹聯(lián)結果隨機抽取20對,進行了進一步人工評估。評估結果如表4所示。從表4可以看到,在句法和語義上,本文提出方法的效果顯著優(yōu)于基線方法。
表4 人工評估得分結果
為了進一步研究基于預訓練的方法是否能夠?qū)W習到一定歷史典故及相關知識,本文對測試數(shù)據(jù)中含有歷史典故的對聯(lián)進行了分析。從表5可以看到,本文提出的方法相對已有方法,能夠更好地學習到歷史典故知識。
表5 人工評估得分結果
本文對現(xiàn)有的楹聯(lián)自動生成算法進行了研究,提出了一種基于序列到序列預訓練神經(jīng)網(wǎng)絡語言模型的楹聯(lián)自動生成算法。實驗結果與人工評測表明,基于預訓練模型的楹聯(lián)生成算法在測試數(shù)據(jù)集上具有更好的效果。同時,進一步分析發(fā)現(xiàn),該方法能夠一定程度上學習到歷史典故及世界知識,生成出更接近人類表達的楹聯(lián)下聯(lián)。
楹聯(lián)作為中國民間文學的一種重要形式,卻在當今社會的發(fā)展中陷入了發(fā)展困境?;诖?,借助于算法優(yōu)勢致力于讓民間文學主體在當下青年群體中“復活”,表現(xiàn)其國際化、本土化、審美化、現(xiàn)代化、人文化的多元化應用形態(tài)。