喬露
(西北大學現代學院,文學院, 陜西, 西安 710130)
楹聯,是中華傳統文化的瑰寶。楹聯和楹聯文化出現在人們生活的方方面面。作為楹聯文化的活動形式之一,楹聯應對是一種受到大眾喜愛的游戲。其形式為出題者給出上聯,應對者根據上聯給出適當的下聯。要求下聯與給定的上聯在文字上整齊對仗、意義上對照呼應、音律上平仄有節奏。
楹聯應對在文字、意義以及音律上的要求,使楹聯藝術具有形式美、意義美及聲律美的審美體驗的同時,也為楹聯藝術在年輕人中傳播以及初學者的學習,帶來了一定阻礙。如果能開發一套楹聯應對的算法系統,輸入上聯,機器自動給出符合要求的下聯,則可以幫助楹聯文化的初學者、愛好者更好地學習、交流楹聯文化,從而對中國的傳統文化進行有效傳承。因此,本文在已有工作的基礎上,對現有楹聯生成算法進行了研究,并提出了基于序列到序列預訓練神經網絡語言模型的楹聯自動生成算法。
關于自動楹聯生成,研究者嘗試了多種方法來完成該任務。文獻[1]提出了一種統計與規則相結合的古文對聯應對模型,該方法使用統計方法建立軟規則模型,同時在候選搜索階段通過硬規則排除不合理的解。文獻[2]提出了一種基于統計機器翻譯的對聯生成方法,這一方法為之后的研究者提供了新的思路。
近年來,隨著深度學習技術的發展,神經網絡技術在自然語言處理領域的多種任務上都取得了成功。相關的研究者也開始嘗試將神經網絡技術用于對聯生成任務。文獻[3-5]研究了基于循環神經網絡和基于注意力機制的神經網絡對聯生成系統。文獻[6]提出了一種基于多任務的古詩和對聯自動生成方法,該方法通過同時學習古詩和對聯生成任務,使兩個任務的部分數據和參數共享,從而提升最終的生成效果。
基于神經網絡的對聯生成模型,相對傳統基于規則和統計的方法,效果上有了明顯提升。由于自然語言本身語法、語義上的復雜性,加上楹聯中上下聯需要滿足文字、音律以及意義上的要求,機器自動生成的楹聯效果仍難以達到高水平的楹聯愛好者的水平。尤其是當楹聯中涉及歷史典故及世界知識時,利用少量的楹聯數據訓練的神經網絡模型,通常難以生成出理想的下聯。
為了解決這一問題,本文提出了一種基于預訓練神經網絡語言模型的楹聯自動生成方法。核心思路:首先,利用預先在大規模語料上預訓練語言模型學習到漢語言的語義、語法和世界知識;然后,通過在楹聯數據上對預訓練的模型進行微調,讓模型在預訓練學習到的知識基礎之上,進一步學習生成符合楹聯標準的下聯。實驗分析表明,本文提出的方法在效果上優于已有模型。
2.1.1 Transformer
Transformer 是一種完全基于自注意力機制的神經網絡結構,在文獻[7]中首次被提出,并首先在機器翻譯任務中被驗證有效。為了區分原始序列位置信息,在輸入層增加位置嵌入來建模詞在句子中的位置信息。相對于傳統的循環神經網絡存在的時序依賴問題,Transformer 能夠更好地并行計算,同時在多個任務上被證明具有更好的效果。
在自然語言中,語言模型用于建模詞序列概率分布。語言模型能夠刻畫詞語與其上下文的關系,在多種自然語言處理任務,特別是將生成文本作為輸出的任務上,語言模型被廣泛應用。例如:語音識別、光學字符識別、輸入法、信息檢索、機器翻譯等。常見的語言模型主要有基于統計的n元語法(n-gram)語言模型,以及基于神經網絡的語言模型。
2.2.1 基于統計的n-gram語言模型
由于語言模型的目標是計算詞序列出現的概率,在理想情況下,可以對所有出現過的詞序列進行頻率統計,并據此估出任意詞序列出現的概率。但實踐上我們不可能得到所有真實出現過的詞序列機器頻率,大多數可能存在的詞序列都不能被觀察到。因此,這種方法實際不可行。
2.2.2 神經網絡語言模型
與基于統計的n-gram語言模型不同,基于神經網絡的語言模型使用分散式的連續詞向量來表示離散的詞匯。通過神經網絡將這些詞向量進行非線性組合來建模。由于詞向量的參數量大小與|V|呈線性關系,上層神經網絡的參數量可以看做常數,因此這種方法可以一定程度避免維度災難。正是由于具有該優勢,基于神經網絡的語言模型大幅提升了傳統語言模型的性能,并取得了快速發展。
文獻[8]首次提出了一種基于前饋神經網絡的語言模型。該方法利用n-gram的思想,通過神經網絡來將詞語映射到低維連續向量空間中,從而提升基于統計的n-gram語言模型效果。此后循環神經網絡語言模型、長短時記憶單元語言模型相繼被提出。
本章節介紹基于預訓練神經網絡語言模型的楹聯自動生成方法設計方案。在任務上,該方法將楹聯生成轉換成一個序列到序列的文本生成問題,輸入“上聯”自遞歸的生成出“下聯”。與已有的神經網絡模型不同,本方法先在大規模無監督中文文本上對模型進行預訓練,然后再在楹聯生成數據集上進行微調,并得到最終用于楹聯生成的模型結果。整體流程如圖1所示。

圖1 楹聯自動生成流程圖
我們采用序列到序列生成的模型范式,使用Transformer來作為編碼器與解碼器的基礎神經網絡模塊,其中,編碼器和解碼器各由6層Transformer組成。整體的模型結構如圖2所示。在編碼時通過Transformer的雙向自注意力機制對輸入序列進行編碼,得到每個位置的向量表示:

圖2 楹聯模型結構圖
Henc=Encoder(X)=[h1,h2,…,hn]
(1)

(2)
(3)
其中,MLP為多層感知機。訓練階段,模型的損失函數為
(4)
文獻[9]提出的 ELMO將語言模型當作預訓練任務,并證明經過預訓練的模型在下游任務微調后,能表現出更好的泛化性能。此后BERT、GPT等預訓練模型不斷被提出。本文采用降噪序列到序列方法對楹聯模型進行預訓練。
在預訓練階段,模型需要學習如何恢復被破壞的文本片段,即輸入經過人為破壞的文本,輸入該文本破壞前的原始文本。具體的破壞方式有遮擋、刪除、填充、句子重排及文本旋轉等。在預訓練階段,模型需要學習到一定的知識,才能使訓練損失降低。
在大規模中文文本上預訓練之后,模型還不具備進行楹聯生成的能力,需要進一步在楹聯數據集上進行序列到序列任務微調。微調階段,模型學習的目標只有序列到序列的生成任務目標,沒有破壞文檔重建的目標。
具體來說,微調階段將上聯作為輸入序列X=[x1,x2,…,xn],將下聯作為Y=[y1,y2,…,ym]。由于楹聯要求上下聯字數必須相等,實際結果中m=n。訓練的損失函數形式為式(5):
(5)
實驗采用網絡公開可訪問的楹聯數據集,在此基礎上利用敏感詞詞庫對數據進行了過濾,刪除了低俗或敏感的內容。進行實驗前,本文對該數據集的長度情況進行了分析,主要統計信息如表1所示。
本文還對數據集中最常見的漢字進行了分析,發現上聯與下聯的常見字頻率分布有一定差別,而訓練集與測試集的整體分布趨勢較為一致。詳細結論如表2所示(括號內數字為該字出現的次數)。

表2 楹聯生成數據集常見漢字分析
① 基于BLEU值進行量化分析。該方法優點是能夠通過機器自動對大量模型生成的下聯與原始數據中人工撰寫的下聯進行對比評估,缺點是不能體現生成結果是否合理;② 人工評估。對不同方法生成結果,尋找相關專業的志愿者進行人工評估。其優點是能夠對生成結果進行更準確的評估,缺點是成本較高,難以進行大規模的評估。本文從句法和語義兩個維度來判斷一副楹聯的好壞,每個維度打分范圍為1~5分,得分越高越好。
本文對現有基于長短時記憶元的自動楹聯生成方法與本文提出方法進行了對比。從表3可以看到,在BLEU-1、BLEU-2及BLEU-3上,本文提出方法均優于基線方法。

表3 BLEU值得分結果
另外,我們邀請了13位文學專業學者,按照句法和語義兩個維度,對基線方法和本文提出的方法生成的楹聯結果隨機抽取20對,進行了進一步人工評估。評估結果如表4所示。從表4可以看到,在句法和語義上,本文提出方法的效果顯著優于基線方法。

表4 人工評估得分結果
為了進一步研究基于預訓練的方法是否能夠學習到一定歷史典故及相關知識,本文對測試數據中含有歷史典故的對聯進行了分析。從表5可以看到,本文提出的方法相對已有方法,能夠更好地學習到歷史典故知識。

表5 人工評估得分結果
本文對現有的楹聯自動生成算法進行了研究,提出了一種基于序列到序列預訓練神經網絡語言模型的楹聯自動生成算法。實驗結果與人工評測表明,基于預訓練模型的楹聯生成算法在測試數據集上具有更好的效果。同時,進一步分析發現,該方法能夠一定程度上學習到歷史典故及世界知識,生成出更接近人類表達的楹聯下聯。
楹聯作為中國民間文學的一種重要形式,卻在當今社會的發展中陷入了發展困境。基于此,借助于算法優勢致力于讓民間文學主體在當下青年群體中“復活”,表現其國際化、本土化、審美化、現代化、人文化的多元化應用形態。