林銳濤 程超鵬 林 峰 彭顯剛 林幕群 林洪浩
(1.廣東電網(wǎng)有限責任公司汕頭供電局 汕頭 515000)(2.廣東工業(yè)大學自動化學院 廣州 510006)
當今互聯(lián)網(wǎng)飛速發(fā)展,網(wǎng)絡中海量復雜的文本信息噴涌而出。相比于短文本信息的獲取,復雜文本有效信息的獲取方式與現(xiàn)代社會的高效率要求形成了極大的反差。深度學習其強大的數(shù)據(jù)特征學習能力,在自然語言處理[1~4]、圖像識別[5]、語音識別[6]等領域取得豐碩成果,成為當前的研究熱點。在此基礎上,基于深度學習的編碼-解碼模型成為目前針對海量復雜文本自動摘要[7]的主流算法。
該模型先將輸入文本序列壓縮到一個固定維度語義向量,該向量代表了對輸入序列的記憶與理解,在解碼階段,利用語義向量一步一步生成目標序列,使很多seq2seq任務[8]得到很好的解決,但是也存在很大的局限性。模型將輸入序列壓縮成一個固定維度的語義向量,無法完整表達輸入序列信息;同時,以RNN[9~10]編碼為例,前面的序列信息會被后面的序列信息覆蓋,編碼后的語義向量可能只包含序列最后的輸入,序列越長,問題越嚴重[11~12],并且模型的輸出非常依賴對輸入序列的編碼。文獻[13]利用編碼-解碼模型解決文本摘要問題,編碼階段借助CNN捕獲文本特征,解碼階段使用RNN。編碼階段捕獲輸入文本關鍵信息,并將捕獲到的關鍵信息提供給解碼階段,使生成的摘要能夠大致涵蓋原文本的關鍵信息。文獻[14]利用RNN-RNN的編碼-解碼模型解決文本摘要問題,該模型在編碼解碼階段均采用RNN,能夠更好利用語序語義等信息,加強模型推理能力。但該模型對語義向量的依賴性非常強,語義向量在解碼階段只在起始階段輸入,在解碼后期模型若出現(xiàn)語義信息的遺失,生成的摘要將會出現(xiàn)語義不全的情況。文獻[15]在RNN-RNN編碼-解碼模型基礎上增加了注意力機制,一定程度上減少了對文本長度的限制。但是過分關注局部信息,會造成對輸入文本語義的整體把握的缺失,并且模型在解碼階段完全自主生成,對輸入文本的記憶與理解提出了比較高的要求。
針對上述問題,本文提出了一種基于注意力-拷貝機制的復雜文本摘要方法。首先基于編碼-解碼模型,在編碼階段采用CNN[16]和LSTM[17~18]兩種方式編碼,能夠高效捕獲輸入文本的全局特征、增強推理能力;在解碼階段采用LSTM對語言模型進行建模;并使用文本簡化、批量歸一化和計劃采樣對模型進行強化。解碼階段利用了全局語義向量、注意力局部語義向量、前一階段字向量:每個階段都使用全局語義向量進行運算運算,保證每階段都能在整體語義的約束下輸出;同時利用注意力機制[19~21]重點關注輸入文本中不同信息,聯(lián)合全局語義向量,在整體理解文本語義下,根據(jù)當前要生成的內(nèi)容重點關注某些局部信息;最后利用拷貝機制[22]在解碼階段對分布概率進行計算,從而選擇輸出直接從輸入序列復制或者自主生成。通過法律文書數(shù)據(jù)實驗結(jié)果表明,在復雜文本環(huán)境下,本文提出的模型準確率較高,具備較強的命名實體識別與實體關系抽取、推理能力,適合復雜文本摘要的生成。
注意力機制主要思想是,在編碼階段,不直接使用編碼階段最后的語義向量,每階段根據(jù)需要重點關注輸入序列不同部分的信息,產(chǎn)生一個“注意力范圍”表示接下來要重點關注輸入序列的某些部分的信息。類于人類思維方式,以文本摘要為例,生成摘要文本不同內(nèi)容時,也需要根據(jù)要輸出的內(nèi)容而關注輸入文本不同部分的信息。
圖1 是基于注意力機制的編碼-解碼翻譯模型,x1,x2,x3,…,xT是輸入序列,y1,y2,y3,…,yT是輸出序列,h1,h2,h3,…,hT是輸入序列RNN編碼隱藏層狀態(tài)序列,s1,s2,s3,…,sT是RNN解碼隱藏層狀態(tài)序列,st表示解碼階段t時刻的隱藏層狀態(tài)。如式(1)所示,在形式上與普通的編碼-解碼模型相似,區(qū)別在于各階段語義向量Ct不是固定的,而是根據(jù)當前需要“關注”輸入序列不同部分信息而得到的,如式(2)所示,Ct是h1,h2,h3,…,hT的加權值。
圖1 基于注意力機制的編碼-解碼模型
輸入序列各個加權系數(shù)如下:
目前,文本摘要的語義理解不需要模型完美理解輸入文本的語義,只需掌握文本主旨即可。因此,在seq2seq任務中,引入拷貝機制后,輸出階段不再是模型完全自己生成,而是根據(jù)當前的需要,直接從輸入序列復制或者自主生成。圖2是基于拷貝機制的編碼-解碼文本生成模型圖[23],編碼與解碼階段都采用RNN編碼。解碼階段的輸出有兩種模式,G模式與P模式。G模式表示直接生成當前詞,P模式則產(chǎn)生指向輸入文本某個輸入的指針,并將該輸入作為當前的輸出同時提供給下階段計算。
圖2 基于拷貝機制的編碼-解碼模型
圖3 是本文所提出模型的架構圖,基于編碼-解碼模型進行改進,通過編碼對輸入文本進行文本的記憶、推理、理解,并在解碼階段根據(jù)編碼階段掌握的信息生成摘要。在編碼階段采用CNN和LSTM兩種方式的編碼。CNN具備強大的特征捕獲能力,可以高效捕獲輸入文本的全局特征。通過多層CNN編碼,可以較好地理解文本語義,盡可能多地捕獲到一些關鍵信息,為解碼提供輸入文本的整體的語義把握。解碼階段為每階段的計算提供輸入文本語義的整體理解以及約束。
圖3 基于注意力-拷貝機制的編碼-解碼模型
式中,gc表示CNN編碼后的全局語義向量。
模型利用了LSTM的推理能力對輸入文本進行編碼,引入注意力機制后,可以在解碼階段重點關注輸入文本不同的信息;LSTM編碼也能夠為拷貝機制提供所需要的信息。
采用CNN編碼與LSTM編碼可以為解碼提供全局與局部語義信息,CNN能夠高效捕獲輸入原文本特征;LSTM對輸入文本進行編碼,利用注意力機制側(cè)重關注重要輸入,同時為解碼提供某些復制信息的內(nèi)容。采用LSTM對語言模型進行解碼。利用全局語義變量進行運算,能夠獲取輸入文本梗概信息并掌握對輸入文本語義整體的理解,保證整體語義對輸出的約束;利用注意力機制能夠重點關注輸入文本中不同信息,聯(lián)合全局語義向量,可以在整體理解文本語義的基礎上,根據(jù)當前要生成的內(nèi)容重點關注某些局部信息;在人們的語言習慣中,說的字總是與前文相關,前文總是影響著后面的輸出,當我們說了“廣東工業(yè)大”,接下來的字就很有可能是“學”,語言模型中假設當前輸出與歷史輸出是條件概率關系,利用前一階段字向量能讓模型更好地生成自然語言,LSTM利用了前文的狀態(tài)信息,同樣地,語言模型中也利用了前面的輸出。即:
其中s1,s2,s3,s4,… 表示解碼階段輸出的隱藏層狀態(tài),st-1表示解碼前一階段隱藏層狀態(tài),yt-1表示前一階段輸出字向量,gc表示CNN編碼后的全局語義向量,ct表示解碼階段注意力機制下的局部語義向量。
引入拷貝機制后,解碼的每個階段都會計算兩個概率分布,生成概率與拷貝概率,生成概率分布是一個字典大小的概率分布向量,向量的每一維的值代表生成對應字的概率;拷貝概率分布是一個輸入文本長度的概率分布向量,向量中每一維的值代表拷貝輸入文本中對應字的概率。將兩個概率分布相加,得到當前輸出的概率分布,采樣概率最大的字,認為它是當前的輸出。式(11)為生成模式,表示為t時刻生成vi的分數(shù),W0表示被學習的參數(shù);式(12)為拷貝模式,表示t時刻拷貝輸入文本中xj的分數(shù),Wc是被學習的參數(shù)。
模型的優(yōu)化目標是最小化生成與標簽的交叉熵,即最小化式(13)損失函數(shù)。x表示輸入文本,T表示生成文本長度,D表示字典大小,y(t)是一個one-hot向量表示第t時刻的詞,y(t)則表示第t時刻輸出的概率分布。
2.4.1 文本簡化
在編碼階段LSTM的運算效率較低且對文本長度較為敏感,文本太長可能會造成重要信息的覆蓋,影響編碼效果;因此本文在LSTM編碼階段進行規(guī)則匹配文本簡化,保留句子的相對順序,抽取部分關鍵句子。利用文本簡化,在保證提高LSTM編碼速度的同時能夠保留關鍵信息。雖然可能會造成LSTM編碼部分信息的丟失,但由于本文對輸入文本進行兩次編碼,LSTM編碼階段文本簡化造成的部分信息可以從CNN編碼得到補充。同時,文本簡化后能夠得到一段信息稠密的文本,有利于文本信息的有效挖掘。
2.4.2 批量歸一化
批量歸一化由Sergey Loffe與Christian Szegedy提出[24]。神經(jīng)網(wǎng)絡訓練過程中,模型各層參數(shù)不斷更新修改,對應層輸出也不斷更新修改,會導致后續(xù)各層輸入的概率分布發(fā)生變化,因此每層的參數(shù)需要不斷適應新的輸入分布。為了減少訓練時各層參數(shù)和輸入概率分布的劇烈變化,必須降低學習率、同時優(yōu)化初始參數(shù);在深層神經(jīng)網(wǎng)絡中,在做非線性變換前輸入的分布會發(fā)生偏移或變動,一般處于非線性變換函數(shù)取值區(qū)間兩端,對于如sig?moid、tanh等非線性函數(shù),這些地方函數(shù)的導數(shù)非常小,在反向傳播時可能導致梯度消失,對于ReLU非線性函數(shù),又會造成梯度爆炸。因此,深度神經(jīng)網(wǎng)絡很難訓練,收斂很慢。
批量歸一化的思想是,保持每層網(wǎng)絡輸入概率分布的相對穩(wěn)定(0均值、單位方差分布),使得非線性函數(shù)導數(shù)處于一個合理狀態(tài),固定輸入,使得對應層的網(wǎng)絡參數(shù)訓練得更快,達到加快訓練速度的效果。本文在CNN編碼階段增加了批量歸一化,對每個卷積核卷積結(jié)果增加批量歸一化,使得每個卷積核卷積結(jié)果是一個0均值、單位方差的分布,能夠加快訓練效率。
2.4.3 計劃采樣
語言模型中,RNN的目標是最大化輸出序列的似然概率。然而,在神經(jīng)網(wǎng)絡實際訓練中,通常是在給定隱藏狀態(tài)與前一時刻真實輸出字符下,最大化當前字符的概率;而在測試過程中,由于沒有輸出標簽,導致前一時刻字符不一定是正確的字符。若前一時刻字符預測錯誤,那么錯誤可能隨RNN不斷向后傳播。因此,本文在解碼階段引入了計劃采樣方法[25],解決原本RNN訓練與測試階段行為不一致導致的測試時錯誤傳播問題,增強模型自我糾錯的能力。
計劃采樣解決了序列生成任務中由于訓練與測試階段行為不一致可能導致的測試錯誤傳播問題。其主要思想是在訓練時按概率提供前一時刻真實字符或者是RNN前一時刻輸出,當RNN預測錯誤時,迫使RNN自己糾正錯誤避免錯誤不斷向后傳播,其原理如圖4所示。
圖4 計劃采樣
本文使用的中國裁判文書網(wǎng)法律文書數(shù)據(jù)集,包含200萬的案例,每個案例中包含參加人、調(diào)查、審理過程、意見等全部或部分信息及判決結(jié)果,本文將樣本分成三部分,150萬樣本的訓練集,20萬樣本的驗證集以及30萬樣本的測試集。
本 文 采 用BLEU(Bilingual Evaluation under?study)評估方法,同時利用了CNN-LSTM、2CNNLSTM、CNN&LSTM-LSTM、Attention-based CNN&LSTM-LSTM等方法進行對比。BLEU方法由IBM提出,最初用于評估機器翻譯質(zhì)量。機器譯文與人工譯文越接近,其質(zhì)量越高。因此,評估關鍵在于如何定義機器譯文與人工譯文的相似度。BLEU中采用的是比較并統(tǒng)計兩個文本共現(xiàn)n元詞(n-gram)的個數(shù),即統(tǒng)計同時出現(xiàn)在機器譯文與參考譯文中n元詞個數(shù),最后把匹配到的n元詞數(shù)目除以機器譯文n元詞數(shù)目,得到評估結(jié)果。
本文將輸入文本長度上限設置為1000,對于超過長度上限的輸入文本,截取到長度上限,將文本長度上限設置為150,對于超長的文本,截取到文本長度上限。設置最大輸出長度為200。本文設置的其他參數(shù)如表1所示。
表1 實驗參數(shù)選擇
測試集的生成結(jié)果如圖5~6所示,分別是尋釁滋事罪案例和非法拘禁罪案例,BLEU值如表2所示。
圖5 尋釁滋事罪案例
表2 測試集BLEU值
由于本文實驗數(shù)據(jù)集是法律判決,每個案例都只有一個判決結(jié)果,讓專業(yè)的法律人士重新進行判決得到多個標準答案也不具可行性,因此本文在BLEU的評估中,每個樣本都只有一個對比標準,這對本文實驗方法的BLEU值有一定的影響,但本文提出的方法仍然取得0.71的BLEU值。
如圖5、6所示,2CNN-LSTM比CNN-LSTM具有更高的BLEU值,CNN-LSTM在該非法拘禁罪案例中無法生成判決,而是生成一段重復無意義的話。CNN-LSTM與2CNN-LSTM對人名與罪名等關鍵信息的學習主要依賴于CNN的特征匹配能力,模型能夠?qū)W習到人名、罪名,主要是因為在訓練中匹配到相同或相似的特征,這種基于特征匹配的方法要求訓練集中存在較多的樣本,才能基于匹配關鍵信息學習到。CNN&LSTM-LSTM模型解碼階段的LSTM網(wǎng)絡只能利用編碼階段提供最終的狀態(tài)信息,模型對關鍵信息的學習主要還是基于CNN編碼。因此CNN&LSTM-LSTM存在著與前兩個模型相同的問題。從圖6可以看出,該模型將非法拘禁罪案件認定成故意傷害罪,并且模型不斷生成重復的語句,模型已經(jīng)失去約束,LSTM編碼信息只在解碼第一階段提供,可能到最后LSTM編碼的信息已經(jīng)被遺忘。因此,在解碼階段不能很好地約束生成。Attention-based CNN&LSTM-LSTM模型在尋釁滋事罪與非法拘禁罪兩個案例上的表現(xiàn)不錯,但BLEU評估值較低,由于模型生成階段是完全自主生成,自主生成對于模型的記憶、理解能力提出很高的要求,在多被告人的情況下表現(xiàn)并不好,同時與上面幾種模型相似,模型需要很多次訓練之后才能較好地生成人名等信息。
圖6 非法拘禁罪案例
從圖5與圖6的判決生成和表2BLEU值看,本文方法生成的判決與真實判決語義相似度比較高,特別是被告人、罪名認定等法律判決重要的關鍵信息,大部分能夠正確生成,表明模型具有較強的自主判決能力與推理能力。本文模型生成關鍵信息主要是通過拷貝機制基于對語義的理解而決定是否復制而實現(xiàn)的。在訓練中,本文模型只需要不到200個樣本的樣本就能很好地生成名字。同時,在測試中,由于解碼階段提供輸入文本的整體語義理解與注意力機制下重點側(cè)重信息,使得在輸出某些特定信息時全局信息能夠提供語義上的約束,不會生成偏離整體的判決。因此,本文模型出現(xiàn)誤判的案例比較少,即使與真實判決有一些區(qū)別,也是細節(jié)信息如刑期、罰金等的不同,但在整體語義上保持大體一致。
本文提出的基于注意力機制與拷貝機制的編碼-解碼抽象式文本摘要模型,與之前其他文本摘要方法相比,在編碼階段,提供了全局語義向量與注意力機制下的側(cè)重性局部語義向量,保證了摘要生成在全局語義向量的約束下,既能表達輸入文本的完整語義,又能利用注意力機制側(cè)重關注和保留細節(jié)信息;同時本文將拷貝機制運用到了文本摘要中,模仿了人類的思維方式,降低了模型對語義記憶、理解的要求,通過實驗中也驗證了拷貝機制對于實體信息抽取的有效性。
本文也初步討論、驗證抽象式文本摘要在法律自動判決上的應用,從實驗結(jié)果看出,自動判決系統(tǒng)能夠為法官等法律人員提供客觀性建議,減輕法官工作量,提供法院工作效率,也能為人們提供法律領域的預見性策略,指導人們在法治社會的行為。