郭繼峰,費禹瀟,孫文博,謝培澆,張 健
1(東北林業(yè)大學 信息與計算機工程學院,哈爾濱 150000) 2(無錫科技職業(yè)學院 人工智能學院,江蘇 無錫 214029)
隨著近年來互聯網文本信息的爆發(fā)式增長,極大的增加了閱讀的困難,從繁雜的文本中提取有用的信息變得越顯得格外重要,因此如何高效準確的從中提取信息組成摘要成為了目前互聯網行業(yè)的迫切需求.
在先前的工作中,有研究人員利用隱迪利克雷(LDA)方法生成文檔主題模型以提取文檔集或語料庫的潛在主題信息[1],隨著LDA技術的不斷成熟,主題模型除了用在分類預測的方面[2]也更多的應用在文本摘要方面的工作[3].
現階段文本摘要技術大致分為兩類,抽取式摘要與生成式摘要[4],抽取式摘要技術一般依靠詞頻、統計等抽取原文的詞語或句子,生成式摘要技術一般需要利用神經網絡從中提取文本的特征再通過語料生成所需的摘要,但目前常用的基準序列到序列模型仍然具有事實偏差、不夠還原等問題.目前解決以上問題的主流思想是指針生成網絡[5].
隨著生成對抗網絡(GAN)[6]在圖像領域的廣泛應用,GAN也被嘗試應用在了文本生成中[7].本文使用生成器G來生成文本,并利用鑒別器D作為文本的分類器,D的主要作用是鑒別文本是由機器生成還是人為生成.G和D的對抗學習最終可以協助傳統的網絡結構生成更高質量的文本.
為了能夠生成更加貼近主題信息和原文本的摘要,本文在指針生成網絡的基礎上嘗試融入了LDA主題模型,并將主題信息融入到結合GAN的序列到序列模型中,該模型將利用主題來模擬人類的先驗知識,從而使摘要更多的結合主題生成,在獲得主題詞向量后與上下文共同合成新向量來影響文本的生成.
在目前主流自動摘要方法中抽取式摘要根據特定的約束條件從原文抽取相關且重要的句子,經過組合后組成摘要[8],生成式摘要需要對原文內容及結構加以理解,精煉出原文的主旨和概要,從語言的撰寫來說,生成式摘要更接近人類語言摘要的撰寫方式.
抽取式摘要的現有方法中句子重要度計算通常會結合考慮各種統計學和語言學特征,例如句子的位置、詞頻、詞匯鏈等.句子抽取則大致分為無監(jiān)督和有監(jiān)督兩種,其中無監(jiān)督方法主要包括基于質心的方法[9]、基于圖模型的方法[10],基于主題模型的方法等.有監(jiān)督方法包括支持向量回歸,條件隨機場模型[11]等方法.但是抽取式摘要多是啟發(fā)式算法計算句子分數,缺少對于概率的思考,所以有研究人員開始轉向考慮帶有貝葉斯的方法.2003年Blei等人提出LDA模型[1],將文檔看成是由K個主題隨機產生的,將文本的詞袋作為特征,經過LDA模型訓練后,以新的概率分布來描述文檔的主題.劉娜等人在2014年提出基于LDA的重要主題多文檔自動摘要方法,在DUC2002數據集上生成摘要時優(yōu)先考慮重要主題產生的特征[12].
生成式摘要的研究隨著近年來人工智能技術的發(fā)展而不斷增加,隨著Seq2Seq模型被應用在自然語言領域上,2015年Rush等人首次采用神經模型進行生成式摘要的應用[13],2016年Paulus等人首次提出基于循環(huán)神經網絡的生成式文本摘要[14].
2016年Xing等人考慮將主題信息應用到傳統的Seq2Seq結構中[15],通過從預訓練的LDA模型獲得消息的主題詞,并通過主題注意力合成主題向量,共同影響消息的生成,這一思路被應用在聊天機器人中,使得機器人對話的生成更加具有營養(yǎng).2017年Liu等人提出基于詞和主題來學習主題詞嵌入,有效的提升了對于一詞多義和同音異義的區(qū)分度[16].
同時也有研究者將GAN應用在文本生成提出TextGAN模型[17],后續(xù)有研究者不斷對GAN框架進行改進,以使得生成文本更加適用于各種不同類型的文本.
可以看到,主題信息對于文本生成存在著一定程度的影響.本實驗在基于引入了注意力的編碼器解碼器結構上,對于文本進行LDA主題建模,將文本依據主題分類后生成主題詞向量融合注意力,然后在加入了指針網絡來解決生成符合原文的摘要,并利用生成對抗網絡進行訓練以獲得更優(yōu)秀的文本摘要信息.
不同文章的摘要與文章內容有著密切的聯系,不同文章內容也存在著主題上的差異,LDA是一種常用的主題模型,其基礎是文章是由多個主題構成的,而每個主題都是詞集的一個概率分布[2].
首先對于給定的數據集會有M個文檔,D:{d1,…,dm},文檔d中含有S個句子,N個詞,在LDA模型中,LDA假定N篇文檔中含有K個主題,Wmn代表第m篇文檔中的第n個詞,Tmn代表第m篇文檔的第n個詞的主題.θm表示第m篇文檔的主題概率,服從以α為參數的狄利克雷分布,φk代表第k個主題的對應詞的概率,服從以β為參數的狄利克雷分布,LDA的模型圖如圖1所示.
圖1 LDA模型圖Fig.1 LDA model diagram
本文通過LDA提取主題詞的主要思路為:
1.對于給定文本集合中的每篇文檔,生成一個隱迪利克雷分布模型,得到θm作為主題—文檔分布.
2.每個主題t,依據以β為參數的狄利克雷分布得到分布φk,即主題詞分布.
3.利用主題詞分布和主題文檔分布得到詞Tmn和wmn.
為了獲取詞匯的概率分布,我們利用吉布斯采樣來進行求解,對于當前文檔的每一個詞我們隨機賦予一個主題編號t,隨后重新掃描當前文檔,對于每一個當前詞利用吉布斯采樣公式來更新他的主題編號,重復以上步驟直到采樣收斂,最后統計文檔中各詞的主題,得到該文檔的主題分布.
生成對抗網絡最初于2014年由Goodfellow等人提出[6],最初的GAN由兩個網絡組成,生成器(G)和判別器(D),生成器的輸入是一組隨機的噪聲,然后通過學習樣本來生成新樣本,鑒別器用來鑒別生成的G(z)是否為真.在整個訓練過程中依據公式(1)使生成器和判別器達到動態(tài)平衡:
(1)
圖2 GAN結構圖Fig.2 GAN structure
對于生成器G和判別器D的訓練,我們首先固定生成器的權重,對判別器更新權重,隨后兩方交替迭代直到生成器生成同訓練樣本相同的分布,如公式(2)所示:
Pg=Pdata
(2)
3.3.1 指針生成網絡
指針生成網絡是在基于注意力機制的序列到序列模型上改進的[5],指針網絡更適用于摘要生成領域主要是由于它可以有選擇地從原文中取詞,同時也可以從固定的詞匯表取詞.指針生成網絡和傳統的Seq2Seq模型相比引入了當前詞的權重,而不是直接從一個序列轉化為另一個序列.
傳統引入注意力機制的Seq2Seq模型的基本流程為:
首先將當前字符傳入編碼器,對于給定的文本序列x=x1,x2,…,xt,…,xT,目標序列為y=y1,y2,…,yn,…,yN,注意力機制采用了和以往不同的做法,注意力機制中的定義為如公式(3)所示:
(3)
(4)
eij=η(si-1,hj)
(5)
h是來自每一步隱藏層的狀態(tài),在解碼器部分采用每一個輸入是前一部分詞預測的詞向量,最終隱藏層狀態(tài)ht,同時輸出一個解碼狀態(tài)st用于當前步的預測,公式(4)中αij是來自由公式(5)的eij即隱藏層編碼器最終輸出相似度,η是一個多層感知機.在計算完注意力分布后將得到預測詞表上的概率分布.
在指針網絡中,引入了Pgen如公式(6),Pgen將隱藏層狀態(tài)hi,解碼器狀態(tài)st和當前字符的輸入xi,計算得:
(6)
這其中,w是需要學習的參數,通過σ激活函數激活后,形成Pgen.Pgen代表指針網絡生成的概率,通過引入Pgen獲得生成單詞P(w)的概率分布見公式(7):
緊張的施焊開始了。首先由專人對焊條進行烘干處理,先將焊條放入80攝氏度的烘箱內預熱,以防暴溫造成藥皮斷裂,然后放入460攝氏度的烘箱內烘干,再放入150攝氏度的恒溫箱里。焊工作業(yè)前,從中挑出藥皮完好的焊條放入隨身攜帶的保溫筒,并佩帶面罩、眼鏡,隨身攜帶鋼筋、手把式角砂輪、鋼刷、創(chuàng)錘、扁鏟、焊口檢測器等,一個個“全副武裝”,像是待命沖鋒陷陣。
(7)
當w不在詞典中時,Pvacab=0表示單詞從原始文本中得到,當w在詞典中時,通過生成得到.
3.3.2 融合主題
在采用LDA模型后,公式(8)中每輸入一個文檔D:{d1,…,dm},就對應著一個主題z,這里Cwz表示單詞w被賦值給z的次數,這樣就可以得到文檔的主題向量k.
(8)
為了能夠讓網絡學習到主題信息,本文嘗試在傳統序列的基礎上,引入主題詞,當對于給定的數據集,利用LDA方法生成主題詞后于事先設定的主題中訓練出t1…tk,選取前n個作為對應文本的主題詞.
將主題詞T:(t1,…,tn)表示為詞向量,利用普通編碼器的最終隱藏層狀態(tài)s0作為主題注意力層的輸入,形成(s0,t1,…,tn)的新編碼層,同樣利用注意力機制的原理形成新的主題注意力結果oi,然后將序列注意力和普通注意力疊加得到輸出,總體的框架如圖3所示.
圖3 融合主題的3指針網絡Fig.3 Pointer network withtopic
在decoder層,如公式(9)所示每一步的隱向量和傳統注意力機制一樣將h轉化為ci,然后將主題向量k融入αoj中,其中si是第i-1步的隱藏狀態(tài),hT是句子的最終的隱藏層狀態(tài),η是一個多層感知機.
(9)
本文實驗數據使用gigaword數據集進行實驗[18],該數據集的文本和摘要都較短,其中含有大約380萬個訓練樣本,19萬個驗證樣本和1951個測試樣本進行評估.其輸入的摘要對由原文章的標題和第一句組成.
在構建融合主題的對抗指針生成網絡之前,需要對實驗數據進行預處理,數據是否干凈對實驗結果有很重要的影響,首先將數據集分為訓練集、測試集、驗證集3部分,從訓練集文件中生成的詞典大小為50000,然后利用分詞工具nltk進行分詞、去除停用詞等預處理技術后進行訓練.束搜索大小為5,batch_size為30.
就現在來說,在文本摘要方面評價指標依舊采用ROUGE評價方法[19],它被廣泛用于評估自動文摘以及機器翻譯等方面.ROUGE是一種面向n元詞召回率的評價方法.ROUGE的基本思想是將標準摘要與生成摘要做對比,通過計算兩者之間重復的詞數目作為評價摘要質量的指標,生成的摘要與參考摘要的重合程度越高則ROUGE評分越高[20].本實驗采用ROUGE-1、ROUGE-2、ROUGE-L來作為指標.ROUGE-n的計算方式見公式(10):
(10)
L是LCS(longest common subsequence,最長公共子序列)的首字母,因為Rouge-L使用了最長公共子序列.Rouge-L計算方式由如公式(11)-公式(13)中所示:
(11)
(12)
(13)
其中LCS(X,Y)是X和Y的最長公共子序列的長度,m,n分別表示參考摘要和自動摘要的長度一般指所含詞的個數.R和P分別表示召回率和準確率,F則是需要計算的Rouge-L.β一般被設置為一個很大的數,所以在此時Rouge-L的計算中幾乎只考慮了R的值.
為了更好的確定LDA模型內主題的個數,本文依據文檔—主題的概率分布來確定每篇文檔的最大概率,并依據分布選取前10個概率較大的主題詞作為該文檔的主題特征來擴充.本文設置在[10-50]個主題范圍中選取最合適的主題個數.
圖4 不同主題個數的困惑度Fig.4 Perplexity of different topic numbers
由圖4可以看到,在主題數K選取為36時對于文檔有最優(yōu)的分類效果,此時的困惑度最低,隨著主題數的增加,由于過擬合模型的困惑度會趨于穩(wěn)定,因此本文將主題數設置為36.
為了驗證提出方法的有效性,本文實驗部分將所提出的融入主題的指針生成對抗網絡與其他經典算法和模型進行了對比,對比結果見表1.
表1 所提出模型與其他模型對比Table 1 Proposed model and other models
Lead-n算法是傳統且簡單的算法,選取文章開頭的前n個句子作為摘要,由于新聞文章一般在開頭就會呈現關鍵信息,且gigaword數據較短,所以選取第一句作為驗證生成的摘要.
ABS是RUSH等基于注意力機制的編碼器解碼器結構,該模型經常作為生成式文本摘要的基準模型[13].
BERTSUM模型[21]來自于預訓練模型BERT在抽取式摘要上的改進,達到了最近幾年較好的效果.
從表1可以看出Lead-n算法作為抽取式模型的代表,仍具有著很高的評分,從目前所選取的數據集來看,可能是由于重要信息一般在文本開頭,而且參考摘要較為固定,文章可能存在著多種可用的摘要,這些因素對于抽取式模型的評分也有一定的提升作用,BERTSUM方法同樣來自于BERT在抽取式中的應用,也取得了比較好的效果.對于本文提出的模型較傳統的Seq2Seq和PGN模型都有很大的提升,在ROUGE1和ROUGE2以及ROUGE-L上都有較為顯著的改進,同時所提出的模型較結合GAN及主題的方法也都有一定的提升,相比于BERT在摘要方面的改進也得到了略高的分數.
表2是生成摘要的對比,可以看到,在經由指針網絡對傳統Seq2Seq的改進后,可以有效的改善如重復生成和摘要不還原等以上問題[22],但從表2可以看出,依然存在如關鍵信息保存不全的問題,在融入了主題注意力后得到了其他關鍵的信息,BERTSUM采用抽取式,生成了較完整的句子,但不適用短文本.而最終本文提出的加入了生成對抗網絡的模型結果較其他生成的摘要更加通順,同時因為主題信息的引入,更加貼近原文的含義.
表2 生成摘要對比Table 2 Proposed model and other models
本文提出了一種基于主題的對抗生成指針網絡.首先通過主題建模獲取單詞的主題向量,然后將結合主題的詞向量與注意力相結合,形成新的復合注意力共同影響單詞的生成,并加入對抗生成網絡以在指針覆蓋機制上取得了更好的效果.本文中的生成摘要ROUGE評分較前人的基礎工作提升了5%以上,證明了引入主題信息和GAN網絡對摘要效果提升的有效性.
下一步將嘗試更多其他能有效提升文本摘要的方法,如預訓練模型及其變種,進一步簡化模型,嘗試在其他多領域和模型中繼續(xù)利用主題詞向量來生成更完整和流暢的文本摘要.