盧益清,嚴(yán)實(shí)蓮,杜朋
(北京信息科技大學(xué) 信息管理學(xué)院,北京 100192)
互聯(lián)網(wǎng)時(shí)代下,新聞更新速度快、時(shí)效性強(qiáng),將文本自動(dòng)生成技術(shù)應(yīng)用于新聞編輯領(lǐng)域可以提高新聞撰寫與發(fā)布的效率,為新聞網(wǎng)站吸引更多的用戶[1]。本文針對汽車網(wǎng)站的新聞編輯需求,研究如何根據(jù)原始汽車新聞?wù)Z句生成語義相同,但字面表達(dá)不同的新語句,使新聞不再千篇一律,以提升用戶的閱讀體驗(yàn)感。
文本自動(dòng)生成方法主要有以下5種:①使用詞典進(jìn)行同/近義詞替換,生成相似表達(dá)的句子[2],其缺點(diǎn)是句式單一且粗暴替換不適合所有語境[3];②使用基于規(guī)則的方法進(jìn)行句法分析與詞性標(biāo)注等,對生成文本的詞性和語法制定規(guī)則[4],缺點(diǎn)是需要消耗大量人力成本且廣泛適用性差,不適合大范圍使用[5-6],且在句子成分繁雜時(shí),生成效果不佳[7];③使用模板把文本某些位置挖空,在空的位置處填入符合句意的詞[8],其缺點(diǎn)是模板需要人為歸納,領(lǐng)域可適配性較差;④使用統(tǒng)計(jì)機(jī)器翻譯的方式,向模型中輸入原句,再輸出翻譯后的句子,構(gòu)建成文本含義相同的雙語平行語料[9]?,F(xiàn)在語料庫中大規(guī)模的高質(zhì)量平行語料句較少,較多回翻句與原句的含義有很大的不同并且流暢度較差[10]。⑤使用神經(jīng)網(wǎng)絡(luò)的方法,目前最常使用的是序列到序列(sequence to sequence,Seq2Seq)架構(gòu)[11]。有學(xué)者使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)與Seq2Seq架構(gòu)解決文本序列生成問題[12],優(yōu)點(diǎn)是能學(xué)習(xí)句法和語義,缺點(diǎn)是沒有學(xué)習(xí)前后文的能力,且隨著時(shí)間的推移,序列的依賴性增強(qiáng)產(chǎn)生梯度消失或爆炸的問題[13]。有學(xué)者把長短時(shí)記憶(long short-term memory,LSTM)網(wǎng)絡(luò)或門控循環(huán)單元(gated recurrent unit,GRU)與Seq2Seq結(jié)合,使用門控機(jī)制解決梯度問題[14-15],但模型結(jié)構(gòu)復(fù)雜,不能較好地處理長文本[16];因此注意力(attention)機(jī)制被加入到Seq2Seq中來解決無法關(guān)注文本重點(diǎn)的問題[17-18],但是模型參數(shù)復(fù)雜與無法并行訓(xùn)練的問題依舊沒有解決。后來谷歌提出的基于完全注意力機(jī)制的Transformer模型[19]和預(yù)訓(xùn)練模型BERT(bidirectional encoder representation from transformers)[20]較好地解決了以上的問題。學(xué)者們又轉(zhuǎn)向關(guān)注生成文本表達(dá)的豐富性,比如在集束搜索(beam search)算法上加入懲罰因子,并融入強(qiáng)化學(xué)習(xí)使文本生成更具多樣性[21];將在圖像生成領(lǐng)域取得較好結(jié)果的變分自編碼器(variational auto-encoder,VAE)用在文本生成方面,增加文本表達(dá)的多樣性[22]。
基于當(dāng)前的研究現(xiàn)狀,本文將Transformer與VAE相結(jié)合,驗(yàn)證其在汽車新聞的文本生成任務(wù)上的有效性。實(shí)驗(yàn)結(jié)果表明,該方法生成的句子在保持句意的同時(shí)文字表達(dá)差異度更大,并具有更好的流暢度,為基于特殊行業(yè)的文本生成提供可借鑒之處。
基于Seq2Seq架構(gòu)的Transformer模型包含編碼器與解碼器,編碼器將輸入文本生成語義向量,解碼器將語義向量解碼為生成文本。模型加入注意力機(jī)制后,能夠直接獲取句子中每個(gè)詞之間的關(guān)聯(lián),生成更合理通順的句子[23]。在Seq2Seq結(jié)構(gòu)中參數(shù)是不變的,編碼器只能對輸入文本進(jìn)行固定編碼,解碼器只能生成唯一的文本。為了克服編碼器對輸入文本的語義表示有局限性這一不足,VAE被引入到文本生成任務(wù)中。與傳統(tǒng)的編碼方式不同,VAE引入隱變量刻畫輸入文本的語義分布,產(chǎn)生不同的語義變量。
本文的Transformer-VAE模型結(jié)構(gòu)如圖1所示。文本生成流程如下:①目標(biāo)句編碼與位置編碼相加得到目標(biāo)句序列矩陣X;②X經(jīng)過Transformer編碼器后生成編碼信息矩陣C;③C輸入到VAE結(jié)構(gòu)中,經(jīng)編碼網(wǎng)絡(luò)計(jì)算得到均值z_mean和方差z_var;④假設(shè)隱變量之間相互獨(dú)立且服從高斯分布,從N(0,1)中隨機(jī)選取s,通過計(jì)算z_mean+s×ez_var/2得到隱變量Z,將由Z轉(zhuǎn)化的矩陣K和V傳入Transformer中每一層解碼器的多頭自注意力層;⑤解碼器的輸入為前一時(shí)間步的生成句序列Y,由Y構(gòu)造出Q矩陣,輸入多頭自注意力層;⑥最后一層解碼器的輸出經(jīng)過線性層和歸一化指數(shù)函數(shù)層后,得到概率分布向量P,根據(jù)概率選擇對應(yīng)詞語;⑦重復(fù)執(zhí)行⑤和⑥,直至輸出結(jié)束符,得到最終生成句。
圖1 Transformer-VAE模型
本研究任務(wù)是生成與目標(biāo)句文字表達(dá)差異較大且語義相同的句子。因此,實(shí)驗(yàn)的基準(zhǔn)評價(jià)指標(biāo)需要能衡量目標(biāo)句和生成句的語義相似程度,以及文字的變化差異是否符合自然語言的表達(dá)規(guī)范。根據(jù)以上的評測標(biāo)準(zhǔn),使用Bleu4值、編輯距離和人工評測作為評測指標(biāo)。
Bleu4是機(jī)器翻譯常用的一種指標(biāo),以生成句和目標(biāo)句的共現(xiàn)詞對的概率來評估文本生成質(zhì)量。Bleu4值越大,表明生成句與目標(biāo)句語義越接近。Bleu4采用一種N-gram的帶權(quán)重的幾何平均,其中1-gram、2-gram、3-gram、4-gram的權(quán)重各占25%。
編輯距離是指將文本A編輯成文本B的最少變動(dòng)次數(shù)。兩個(gè)文本的編輯距離越小,它們就越相似,反之,文本越不相似。在本研究中,使用編輯距離衡量文本生成的多樣性,在確保生成句與目標(biāo)句語義一致的前提下,編輯距離越大越好。經(jīng)過多次實(shí)驗(yàn)驗(yàn)證,當(dāng)編輯距離的值超過17.18后,生成句與目標(biāo)句的語義會(huì)相差較大,此時(shí)編輯距離越大,文本生成效果越差。
人工評測是從語言學(xué)的角度評判生成文本是否符合人類的自然語言表達(dá),主要對句子是否通順、語法是否正確、思想表達(dá)是否清楚等方面進(jìn)行評價(jià)。
實(shí)驗(yàn)包括以下步驟:①構(gòu)建語料并初步預(yù)處理;②確定基線模型初始參數(shù);③對語料庫進(jìn)行擴(kuò)增與清洗,提升基線模型的效果;④模型對比實(shí)驗(yàn),證明此模型在汽車新聞文本生成任務(wù)上的可行性。
本實(shí)驗(yàn)的語料集包括兩部分:一部分是使用Python爬取某汽車類網(wǎng)站的新聞文本(car_news),通過Google翻譯器將其中句子翻譯成英文,再回翻成中文,由此獲取一對平行語料。回翻后的數(shù)據(jù)作為參考句,原始新聞句子作為目標(biāo)句,共約105萬條語料對;另一部分是來源用于機(jī)器翻譯的高質(zhì)量語料集(mt_data),約25萬條語料對,語料集是中英對應(yīng)語料對,需將英文回翻成中文,獲取平行語料。
為了保持?jǐn)?shù)據(jù)分布的一致性,對car_news和mt_data的文本長度進(jìn)行統(tǒng)計(jì),根據(jù)表1中的統(tǒng)計(jì)結(jié)果刪除語料集中文本長度小于12或大于60的句子[24]后,剩下的集合即為訓(xùn)練集。
表1 語料庫文本長度信息
從訓(xùn)練集中隨機(jī)采樣抽取出來語料對進(jìn)行打分[25-26]:1分表示語義相關(guān)度最低,5分表示語義相關(guān)度最高,刪除相關(guān)度低于2分的語料對,最終獲得2 190條語料對作為測試集。驗(yàn)證集的來源分為兩個(gè)部分:一部分是從某汽車新聞?lì)惥W(wǎng)站選取最新發(fā)布的30篇新聞文本進(jìn)行人工打分,將低于2分的語料對刪除,得到1 190個(gè)語料對;另一部分是將mt_data語料對打亂,隨機(jī)抽取1 000個(gè)語料對。上述2 190個(gè)語料對共同構(gòu)成驗(yàn)證集。
文本數(shù)據(jù)形式的復(fù)雜程度對后續(xù)的實(shí)驗(yàn)結(jié)果會(huì)產(chǎn)生不同的影響。接下來進(jìn)行語句的預(yù)處理流程,包括移除重復(fù)行,移除空格、其他非法符號和帶有html標(biāo)簽的語料,移除含有大量英文的語料,將參考句與目標(biāo)句一致的語料刪除,將訓(xùn)練數(shù)據(jù)從原始格式轉(zhuǎn)為平行語句對。
選取Transformer作為基線模型,探究文本生成的語料構(gòu)造及模型設(shè)計(jì)的可能性。
實(shí)驗(yàn)參數(shù)如下:①編碼端和解碼端的token嵌入向量維數(shù)均設(shè)置為512;②編碼器和解碼器都堆疊6層注意力層,自注意力頭的個(gè)數(shù)設(shè)置為4;③使用Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)為0.000 3;④Transformer模型將dropout機(jī)制應(yīng)用到輸入嵌入向量、各編碼器的輸入和各解碼器的輸入和輸出,dropout_rate設(shè)為0.3;⑤設(shè)置一個(gè)批次的數(shù)據(jù)至多包含64個(gè)句子;⑥根據(jù)實(shí)驗(yàn)數(shù)據(jù)得出文本長度分布,兩個(gè)語料庫最大的長度分別是147和133,數(shù)據(jù)平均長度分別為60和63。因此將原文本的最大長度max_src設(shè)置成60,目標(biāo)文本的最大長度max_tgt設(shè)置成60。
基線模型的性能表現(xiàn)和實(shí)例結(jié)果分別如表2、3所示。
表2 基線模型性能表現(xiàn)
表3 基線模型實(shí)例結(jié)果
從表3中的實(shí)例結(jié)果可以看出,與目標(biāo)句相比,生成句缺少了動(dòng)詞“具有”,句子流暢度一般,但是完整度較高且句意大體相同。因此,選取Transformer模型作為文本生成的基線模型較為合理。接下來對語料庫存在的普遍問題提出解決方法,提升語料庫的質(zhì)量,使得實(shí)驗(yàn)所需的語料庫更加完善,生成句的變化更多。
在語料庫中還存在著一些翻譯不全、相似度過高和信息缺失的語料對,數(shù)據(jù)噪音過大對文本生成結(jié)果會(huì)產(chǎn)生一定的影響。因此,為了訓(xùn)練一個(gè)高質(zhì)量的汽車新聞?lì)I(lǐng)域的文本生成模型,要對數(shù)據(jù)進(jìn)行清洗以去除可控的影響因素。
首先,處理翻譯不全的語料對。通過式(1)能夠快速地計(jì)算出兩個(gè)文本的差異,選取合適的閾值,刪除D值大于閾值的語料對。
(1)
式中l(wèi)(s)和l(t)分別表示參考句s和目標(biāo)句t的長度。
從表4的結(jié)果可以得出,過濾翻譯不全的數(shù)據(jù)對基線模型的Bleu4值有一定的提升,且閾值越大Bleu4值越大,而編輯距離減小。綜合考慮閾值對Bleu4值和編輯距離的影響,確定數(shù)據(jù)清洗實(shí)驗(yàn)參數(shù)D為0.3。
表4 選取不同閾值過濾翻譯不全語料對后的實(shí)驗(yàn)結(jié)果
然后,處理相似度過高的語料對。本研究的目標(biāo)是在保持原意的情況下,生成句與目標(biāo)句的表述差異度越大越好。當(dāng)訓(xùn)練語料中出現(xiàn)大量相似度極高的平行語料對時(shí),模型的編輯距離會(huì)很小,對文本生成的多樣性會(huì)產(chǎn)生限制。如果僅通過編輯距離來設(shè)置閾值進(jìn)行過濾,則長度較短的句子將被過濾掉,因此同時(shí)考慮了編輯距離和文本長度的影響,通過式(2)計(jì)算并選取合適的閾值去除語料庫中相似度過高的語料對。
(2)
式中:e(s,t)表示參考句s與目標(biāo)句t的編輯距離。
由表5可以看出,閾值設(shè)置較小時(shí)能把相似度較高的語料對過濾掉,編輯距離有一定的增大??紤]到閾值設(shè)置過大會(huì)影響句子的流暢度,根據(jù)實(shí)驗(yàn)結(jié)果將E值設(shè)置為0.05。
表5 選取不同閾值過濾相似度過高語料對后的實(shí)驗(yàn)結(jié)果
最后對信息缺失的數(shù)據(jù)對進(jìn)行處理,信息缺失指的是一些特有名詞的專有意義缺失,缺失后會(huì)造成句子意思改變。在本研究中這種特有名詞主要是指除汽車相關(guān)外的名詞、雙引號下字符和數(shù)字等。信息缺失情況在語料庫中僅出現(xiàn)200多條,直接人工處理過濾即可。
為了評估Transformer+VAE模型的文本生成效果,將其與LSTM+Attention模型[27-28]、Transformer模型進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果和文本生成實(shí)例如表6和7所示。
表6 文本生成模型實(shí)驗(yàn)結(jié)果
表7 文本生成實(shí)例
經(jīng)過實(shí)驗(yàn)結(jié)果的統(tǒng)計(jì)得出,Bleu4值越大,生成句的流暢度越高,而編輯距離的值超過17.18后,生成句與目標(biāo)句的語義相差較大。由表6的實(shí)驗(yàn)結(jié)果和表7的文本生成實(shí)例可知,LSTM+Attention模型的Bleu4的值較小,且編輯距離超過了17.18。表現(xiàn)為:“人們是貪婪的動(dòng)物”生成為“人的胃口總是很大的”,兩句句意相差較大,導(dǎo)致編輯距離過大;句子缺少連接詞導(dǎo)致流暢度不高以至于Bleu4值偏小;疑問句生成為陳述句。Transformer模型中的Attention機(jī)制有助于生成較合理通順的文本,可是過于關(guān)注上下文中的某些詞語,使得生成句的表達(dá)過于單一,“購買汽車”變成“買車”、“高端”變成“高檔”,生成句與目標(biāo)句在句式和內(nèi)容表達(dá)方面相差不大。
從表6可以看出,Transformer+VAE模型的編輯距離較大,但未超過17.18,并且Bleu4值最大,說明生成句更貼近目標(biāo)句,且表達(dá)差異更大。從表7中該模型的兩次生成結(jié)果可以看出,句中修飾詞、量詞和名詞都發(fā)生了變化。與原句相比,生成句中量詞“一種”、“一款”有助于提高表意的精確度;修飾詞“貪心”、“寬敞”、“貪得無厭”、“奢華”等讓描述更豐富;動(dòng)詞“考慮”、“思考”、“滿足”、“具備”增強(qiáng)生動(dòng)性;名詞“轎車”、“通過性”、“車尾箱”和“后備箱”保持汽車領(lǐng)域詞匯的專業(yè)性;句子仍然保持原來的疑問句語氣。
通過對文本生成領(lǐng)域方法進(jìn)行歸納,發(fā)現(xiàn)特殊領(lǐng)域的文本生成研究較少,因此本文選取汽車行業(yè)的新聞文本進(jìn)行研究,實(shí)現(xiàn)汽車行業(yè)文本生成的豐富性,給讀者帶來多樣的體驗(yàn)感。結(jié)果表明,基于Transformer+VAE的文本生成方法可以使生成句在保持句意的同時(shí)具有豐富的表達(dá)形式,對其他領(lǐng)域的文本生成具有一定的參考意義。未來研究會(huì)聚焦于不同領(lǐng)域的文本生成研究,實(shí)現(xiàn)跨風(fēng)格的文本生成表達(dá)。