李珍輝,賈任遠(yuǎn),扈菲宇,孫嘉琦
(湖南工程學(xué)院1.計(jì)算機(jī)與通信學(xué)院,湘潭 411104;2.電氣與信息工程學(xué)院,湘潭 411104)
近年來(lái),國(guó)家提出“雙碳”政策,風(fēng)電作為最具開發(fā)規(guī)模的新能源之一,在我國(guó)發(fā)展迅速[1-2].隨著社會(huì)的發(fā)展,風(fēng)電技術(shù)不斷更新迭代,網(wǎng)絡(luò)上積累了大量有價(jià)值的風(fēng)電資料和技術(shù)文獻(xiàn).風(fēng)電文獻(xiàn)具有專業(yè)性強(qiáng)、相對(duì)瀏覽速度慢、學(xué)習(xí)效率低的特點(diǎn).如何利用自然語(yǔ)言處理技術(shù)在海量中文風(fēng)電文獻(xiàn)中自動(dòng)獲取有價(jià)值的信息生成文獻(xiàn)摘要[3-4],成為一個(gè)重要課題.
英文單詞和單詞之間有空格,易于處理.但中文需對(duì)文本進(jìn)行分詞,語(yǔ)法復(fù)雜,處理難度較高.在統(tǒng)計(jì)機(jī)器學(xué)習(xí)領(lǐng)域,劉江鳴等[5]使用隱馬爾可夫模型來(lái)生成自動(dòng)摘要.在圖模型領(lǐng)域,余珊珊等[6]提出將文本的多個(gè)統(tǒng)計(jì)特征引入圖模型的構(gòu)造中,提升摘要抽取的準(zhǔn)確性.HU 等[7]收集了大量微博文本,并通過(guò)人工規(guī)則進(jìn)行篩選,制作了大規(guī)模中文短文本摘要數(shù)據(jù)集,并利用RNN 建立生成式摘要模型,給出了ROUGE 評(píng)價(jià)指標(biāo)的基線,為深度學(xué)習(xí)在中文文本摘要生成上做出了貢獻(xiàn).中文自動(dòng)摘要生成技術(shù)起步晚、難度大、公開數(shù)據(jù)集少[8].且已發(fā)表的風(fēng)電研究文獻(xiàn)在內(nèi)容上具有涉及范圍廣、專業(yè)詞匯多、方法多元化等特點(diǎn),這給摘要的自動(dòng)生成造成了一定困難,導(dǎo)致摘要提取效果較差.大規(guī)模預(yù)訓(xùn)練模型在自動(dòng)摘要生成任務(wù)上的應(yīng)用較少,在風(fēng)電領(lǐng)域的中文文獻(xiàn)上的應(yīng)用幾乎沒(méi)有.
目前,對(duì)于摘要的自動(dòng)生成研究主要采用抽取式方法[9]和生成式方法[10].然而,抽取式方法存在摘要不夠精簡(jiǎn)、語(yǔ)句不連貫[11]等問(wèn)題.針對(duì)抽取式方法存在的問(wèn)題,部分學(xué)者提出了基于深度學(xué)習(xí)的生成式摘要技術(shù),例如,ZHANG 等[12]提出了一種新的基于預(yù)訓(xùn)練的編碼器—解碼器框架,首次將BERT 模型應(yīng)用于文本生成任務(wù);LIU 等[13]通過(guò)對(duì)比學(xué)習(xí)來(lái)彌補(bǔ)學(xué)習(xí)目標(biāo)與評(píng)價(jià)指標(biāo)之間的差距,提出了生成式摘要框架SimCLS;LIU 等[14]利用策略梯度,使用生成對(duì)抗網(wǎng)絡(luò)模型生成摘要,在英文摘要數(shù)據(jù)集CNN/Daily Mail 上獲得明顯效果.但是基于生成對(duì)抗網(wǎng)絡(luò)模型的生成器和判別器模型存在訓(xùn)練量大、難以收斂等問(wèn)題[15].
為解決生成對(duì)抗網(wǎng)絡(luò)的問(wèn)題,本文提出一種基于BART 模型與觀察者機(jī)制的中文風(fēng)電文獻(xiàn)摘要生成算法.首先采用BART 模型并將少量的風(fēng)電文獻(xiàn)數(shù)據(jù)集放入模型下游訓(xùn)練進(jìn)行詞向量權(quán)重的微調(diào)(fine-tune);其次,提出了一種觀察者機(jī)制,即使用成熟的語(yǔ)言模型作為觀察者模型,對(duì)生成摘要的通順程度打分,加速生成器的收斂;最后,由生成器和判別器組成的生成對(duì)抗網(wǎng)絡(luò)替換為由生成器和觀察者組成的觀察者機(jī)制模型.
BART[16]是一個(gè)BERT+GPT 的結(jié)構(gòu),但相對(duì)于BERT[17]中單一的noise 類型,BART 在encoder端嘗試了多種noise.BERT 的這種簡(jiǎn)單替換導(dǎo)致encoder 端的輸入攜帶了有關(guān)序列結(jié)構(gòu)的一些信息,這些信息在文本生成任務(wù)中一般是不會(huì)提供給模型的.而BART 采用更加多樣的noise 破壞掉這些有關(guān)序列結(jié)構(gòu)的信息,防止模型“依賴”這類信息.
如圖1 所示,BART 編碼器的輸入不需要與解碼器的輸出對(duì)齊,允許任意噪聲變換.在這里,用掩碼符號(hào)替換文本的跨度,從而損壞了文檔.使用雙向模型對(duì)損壞的文檔(左)進(jìn)行編碼,然后使用自回歸解碼器計(jì)算原始文檔(右)的可能性.
圖1 BART編碼-解碼結(jié)構(gòu)圖
由于BART 具備自回歸解碼器,因此可以直接應(yīng)用到序列生成任務(wù)(如生成式問(wèn)答和文本摘要)進(jìn)行微調(diào).在這兩項(xiàng)任務(wù)中,從輸入復(fù)制經(jīng)過(guò)處理的信息,與去噪預(yù)訓(xùn)練目標(biāo)緊密相關(guān).encoder(編碼器)的輸入是輸入序列,decoder(解碼器)以自回歸的方式生成輸出.
BART 模型的學(xué)習(xí)準(zhǔn)則為交叉熵?fù)p失函數(shù)(Cross Entropy Loss Function),優(yōu)化算法為梯度下降算法,訓(xùn)練方式為反向傳播算法.交叉熵?fù)p失函數(shù)的計(jì)算公式如下:
其中:
M——類別的數(shù)量;
yic——符號(hào)函數(shù)(0 或1),如果樣本i的真實(shí)類別等于c則取1,否則取0;
pic——觀測(cè)樣本i屬于類別c的預(yù)測(cè)概率.
但BART 模型中針對(duì)中文語(yǔ)料訓(xùn)練的預(yù)訓(xùn)練模型并不常見(jiàn),尤其是風(fēng)電領(lǐng)域,沒(méi)有公開的數(shù)據(jù)集,所以單純使用BART 模型來(lái)做風(fēng)電領(lǐng)域中文文獻(xiàn)摘要生成任務(wù)時(shí)會(huì)由于缺少數(shù)據(jù)集而影響效果.
DNN 語(yǔ)言模型是基于Word2Vec[18]技術(shù)構(gòu)建的詞向量表示模型,中文DNN 語(yǔ)言模型用于輸出切詞結(jié)果并給出每個(gè)詞在句子中的概率值,判斷一句話是否符合語(yǔ)言表達(dá)習(xí)慣.
針對(duì)國(guó)內(nèi)尚無(wú)完備的中文風(fēng)電文獻(xiàn)訓(xùn)練集,以及深度學(xué)習(xí)的生成式模型訓(xùn)練困難的問(wèn)題,本文將中文風(fēng)電文獻(xiàn)摘要生成模型分為預(yù)處理、評(píng)估、訓(xùn)練三個(gè)模塊.預(yù)處理模塊是將風(fēng)電文獻(xiàn)特征詞匯加入BART 模型的詞表中,對(duì)模型進(jìn)行微調(diào),生成新詞匯的詞向量表示,得到損失函數(shù)Loss和摘要序列L.評(píng)估模塊選用百度DNN 模型作為觀察者模型,得到摘要序列的打分值S,并將量綱化的S與Loss 相乘,得到適應(yīng)度F.訓(xùn)練模塊將F作為目標(biāo)函數(shù)進(jìn)行反向傳播,實(shí)現(xiàn)對(duì)生成器模型的訓(xùn)練,當(dāng)F低于某個(gè)值或不再下降時(shí),停止訓(xùn)練,得到風(fēng)電文獻(xiàn)摘要生成模型.如圖2 所示.
圖2 SG-BART-DNN模型圖
使用Jieba 分詞[19]對(duì)風(fēng)電文獻(xiàn)進(jìn)行分詞,將得到的風(fēng)電文獻(xiàn)特有詞匯加入預(yù)訓(xùn)練模型的詞表(Vocab)中.具體操作步驟如下:
(1)導(dǎo)入中文分詞庫(kù)Jieba.
(2)將數(shù)據(jù)集的風(fēng)電文獻(xiàn)使用Jieba 分詞進(jìn)行分詞.
(3)統(tǒng)計(jì)出Vocab 中沒(méi)有的詞匯.
(4)把風(fēng)電文獻(xiàn)的特殊詞匯添加進(jìn)詞表中.
(5)對(duì)模型進(jìn)行微調(diào),生成新詞匯的詞向量表示(word express).
將BART 的自回歸解碼器作為文本生成任務(wù)的生成模型,用于文本摘要生成.在這個(gè)任務(wù)中,信息都是從輸入中復(fù)制出來(lái)的,但經(jīng)過(guò)了處理,這與降噪預(yù)訓(xùn)練目標(biāo)密切相關(guān).在此,編碼器輸入是輸入序列,而解碼器自動(dòng)生成輸出.
在本文中,BART 作為中文風(fēng)電文獻(xiàn)摘要的生成器,輸入為較長(zhǎng)的風(fēng)電文獻(xiàn)源文本Yin,輸出為較短的文本摘要Yout.那么只需把Yin作為BART 編碼器的輸入,把編碼器的隱狀態(tài)和文本摘要Yout共同作為解碼器的輸入,文本摘要Yout作為模型的輸出進(jìn)行自回歸訓(xùn)練,即可實(shí)現(xiàn)BART 模型在中文文本摘要任務(wù)上的微調(diào),如圖3 所示.
圖3 CPT微調(diào)過(guò)程
觀察者模型的打分是一個(gè)在生成者訓(xùn)練過(guò)程之外的數(shù)值,如何把觀察者打分值與生成者訓(xùn)練過(guò)程有機(jī)結(jié)合,成為本算法的關(guān)鍵問(wèn)題.
百度DNN 的打分ppl 為大于0 的實(shí)數(shù),經(jīng)過(guò)測(cè)試,其范圍在[0,+∞),如果將這個(gè)值與BART 訓(xùn)練過(guò)程中的損失函數(shù)直接相乘或者相加會(huì)導(dǎo)致梯度爆炸.使用sigmoid 函數(shù)壓縮ppl 的取值范圍可以有效避免這個(gè)問(wèn)題.
sigmoid 函數(shù)由以下公式定義:
其對(duì)x的導(dǎo)數(shù)可以表示為:
sigmoid 函數(shù)的圖形如圖4.
圖4 sigmoid函數(shù)圖像
本文設(shè)計(jì)算法的學(xué)習(xí)準(zhǔn)則如下:
將公式(4)作為新的學(xué)習(xí)準(zhǔn)則對(duì)模型進(jìn)行訓(xùn)練.實(shí)現(xiàn)觀察者模型對(duì)生成者模型的影響.
使用PyTorch 深度學(xué)習(xí)框架搭建深度學(xué)習(xí)模型,調(diào)用CUDA 對(duì)模型進(jìn)行并行加速.實(shí)驗(yàn)環(huán)境配置如表1 所示.
表1 硬件配置信息表
微軟提出的ROUGE[20]評(píng)價(jià)指標(biāo),目前在自動(dòng)文本摘要領(lǐng)域被廣泛應(yīng)用.ROUGE 通過(guò)計(jì)算生成摘要與人工摘要之間的重合程度來(lái)評(píng)價(jià)摘要的質(zhì)量.
ROUGE 指標(biāo)由一系列的評(píng)價(jià)方法組成,其中最常用的是ROUGE-N 和ROUGE-L.ROUGE-N基于摘要中N-gram 的共現(xiàn)信息來(lái)評(píng)價(jià)摘要,是一種面向N-gram 召回率的評(píng)價(jià)方法.ROUGE-N 定義如式(5).
其中,分母是參考摘要N-gram 的個(gè)數(shù),分子是參考摘要和自動(dòng)摘要共有的N-gram 的個(gè)數(shù).常用的指標(biāo)為ROUGE-1,ROUGE-2 和ROUGE-3.
ROUGE-L 通過(guò)最長(zhǎng)公共子序列(Longest Common Subsequence,LCS)計(jì)算生成摘要與參考摘要的重疊度.ROUGE-L 計(jì)算式見(jiàn)式(6)~式(8).
其中,LCS(X,Y)是生成摘要X和參考摘要Y的最長(zhǎng)公共子序列長(zhǎng)度;M和N分別表示參考摘要和生成摘要的長(zhǎng)度;RL和PL分別表示召回率和準(zhǔn)確率;FL則表示召回率和準(zhǔn)確率的調(diào)和均值.
文檔理解協(xié)會(huì)(Document Understanding Conference,DUC)在使用ROUGE-L 時(shí)將β設(shè)置為一個(gè)很大的數(shù),此時(shí)FL近似等于RL,所以ROUGLE-L一般只考慮召回率.由于缺少公開數(shù)據(jù)集,采用ROUGE-L 指標(biāo)進(jìn)行評(píng)價(jià).
實(shí)驗(yàn)數(shù)據(jù)集共7 621 條數(shù)據(jù),除521 條風(fēng)電文獻(xiàn)摘要任務(wù)的數(shù)據(jù)外,還引入了同樣是科技學(xué)術(shù)文本摘要的公開數(shù)據(jù)集:CSL-json(3 600 條)和Wangfang-json(3 500 條).將三者拼接使用,彌補(bǔ)了下游任務(wù)數(shù)據(jù)樣本不足的問(wèn)題,也提高了模型的泛化能力.
為了保證對(duì)風(fēng)電文獻(xiàn)的敏感性,隨機(jī)抽取100條風(fēng)電文獻(xiàn)文本摘要數(shù)據(jù)作為驗(yàn)證集,其余作為訓(xùn)練集,分別對(duì)單純BART 生成模型和SG-BARTDNN 生成模型進(jìn)行訓(xùn)練.
表2 展示了兩種模型生成摘要的實(shí)例情況.結(jié)果分析表明,SG-BART-DNN 模型對(duì)段落的理解更加充分、全面,且較為簡(jiǎn)潔.
表2 數(shù)據(jù)集摘要樣本實(shí)例
在人工標(biāo)注的100 條風(fēng)電文獻(xiàn)摘要的測(cè)試集上,我們測(cè)試了SG-BART-DNN 摘要生成模型、BART 文本摘要生成模型、傳統(tǒng)抽取式模型Text Rank[21]和預(yù)訓(xùn)練模型GPT 的ROUGE-L 指標(biāo).結(jié)果如表3 所示.
表3 摘要生成模型的ROUGE-L指標(biāo)
基于實(shí)驗(yàn)的結(jié)果,得到以下結(jié)論.
(1)從ROUGE-L 指標(biāo)結(jié)果來(lái)看,本文所提算法SG-BART-DNN 在風(fēng)電文獻(xiàn)摘要數(shù)據(jù)集上的得分明顯高于傳統(tǒng)的文本摘要模型如Text Rank 和GPT,也略高于BART 模型.
(2)與BART 生成的摘要相比,SG-BARTDNN 生成的摘要具備更多的多樣性,對(duì)文獻(xiàn)內(nèi)容的理解也有一定程度的提升.
(3)觀察者模型使用百度DNN 語(yǔ)義模型,既沒(méi)有增加模型的復(fù)雜程度,又保證了訓(xùn)練效果,并有效解決了語(yǔ)法錯(cuò)誤、詞語(yǔ)重復(fù)、內(nèi)容冗余的問(wèn)題.
研究自動(dòng)文本摘要技術(shù)在中文風(fēng)電文獻(xiàn)處理上的應(yīng)用,基于中文風(fēng)電文獻(xiàn)內(nèi)容的特點(diǎn),提出一種基于BART 模型與觀察者機(jī)制的中文風(fēng)電文獻(xiàn)摘要生成算法,將其與單純的BART Fine-tune 模型、抽取式的Text Rank 模型及引入外部信息的GPT 模型進(jìn)行對(duì)比,得到以下結(jié)論:
(1)引入BART 模型進(jìn)行微調(diào),既降低了對(duì)數(shù)據(jù)集體量的依賴,也降低了模型訓(xùn)練的難度.通過(guò)實(shí)驗(yàn),驗(yàn)證該方法能夠有效緩解OOV 問(wèn)題[22]、罕見(jiàn)詞(Rare words)問(wèn)題與詞義理解錯(cuò)誤問(wèn)題.
(2)選擇觀察者DNN 語(yǔ)言模型能夠有效解決語(yǔ)法錯(cuò)誤、詞語(yǔ)重復(fù)、內(nèi)容冗余的問(wèn)題,且未增加模型的復(fù)雜程度.
(3)使用sigmoid 函數(shù)壓縮ppl 的取值范圍,能有效避免將觀察者打分值與BART 訓(xùn)練過(guò)程中的損失函數(shù)直接相乘或者相加導(dǎo)致的梯度爆炸問(wèn)題.
(4)在四種同類型模型的對(duì)比中,SG-BARTDNN 模型對(duì)原文的理解更充分,生成的語(yǔ)句更準(zhǔn)確,在指標(biāo)ROUGE-L 的得分上更高.
然而,由于數(shù)據(jù)集數(shù)量有限,模型生成的摘要水平還未達(dá)到人工摘要的平均水平,在接下來(lái)的工作中,將重點(diǎn)考慮增加數(shù)據(jù)集的數(shù)量和質(zhì)量,進(jìn)行更為全面的實(shí)驗(yàn)研究.