吳德平,時(shí) 翔,王曉東
1. 江蘇安全技術(shù)職業(yè)學(xué)院網(wǎng)絡(luò)與信息安全學(xué)院,江蘇 徐州221011;2. 常州工學(xué)院計(jì)算機(jī)信息工程學(xué)院,江蘇常州213002;3. 徐州市廣聯(lián)科技有限公司,江蘇 徐州221116
安全生產(chǎn)管理是一項(xiàng)復(fù)雜而極其重要的工作,對(duì)安全生產(chǎn)事故全面剖析和研究十分必要。安全生產(chǎn)中的事故傷害可分為事故類(lèi)別、傷害方式、不安全行為和不安全狀況,利用自然語(yǔ)言處理(natural language processing,NLP)技術(shù)對(duì)安全生產(chǎn)事故及原因分類(lèi),為安全生產(chǎn)監(jiān)管、事故隱患排查和分析奠定基礎(chǔ),對(duì)進(jìn)一步強(qiáng)化安全生產(chǎn)指導(dǎo)具有重要意義。
以往文本分類(lèi)通過(guò)利用稀疏詞匯的特征來(lái)表示文本,再用線性模型進(jìn)行分類(lèi)。近年來(lái),主要是采用深度學(xué)習(xí)得到文本的特征表示,如利用word2vec 模型學(xué)習(xí)文本中詞向量的表示,得到文本的語(yǔ)義表示實(shí)現(xiàn)文本分類(lèi)[1]。 又如利用TextRank 算法把文本分割成若干組成單元,構(gòu)建節(jié)點(diǎn)連接圖,用句子之間的相似度作為邊的權(quán)重,通過(guò)迭代計(jì)算句子TextRank 值,抽取排名高的句子組成文本摘要[2]。采用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short-term memory networks,LSTM)實(shí)現(xiàn)分類(lèi)。
2018 年google 推出的基于轉(zhuǎn)換器的雙向編碼表 征(bidirectional encoder representation from trandformers,BERT)模 型 在MultiNLI、SQuAD、SST-2 等11 項(xiàng)NLP 任務(wù)中取得卓越的效果。BERT 模型在大規(guī)模語(yǔ)料庫(kù)或特定領(lǐng)域的數(shù)據(jù)集上通過(guò)自監(jiān)督學(xué)習(xí),進(jìn)行預(yù)訓(xùn)練以獲得通用的語(yǔ)言表示,在下游任務(wù)中進(jìn)行微調(diào)完成相應(yīng)的任務(wù)。BERT 模型的缺點(diǎn)之一是使用詞向量表示文本內(nèi)容時(shí),最大維度為512。當(dāng)輸入文本長(zhǎng)度小于512時(shí),模型性能良好。BERT 是句子級(jí)別的語(yǔ)言模型,該模型能獲得整句的單一向量表示。BERT 預(yù)訓(xùn)練模型對(duì)輸入文本進(jìn)行向量化,能有效提高中文文本語(yǔ)義的捕捉效果[3-4]。
安全生產(chǎn)事故報(bào)告或案例文本通常都有事故單位的情況、事故發(fā)生經(jīng)過(guò)、應(yīng)急處理情況、事故原因分析、事故責(zé)任認(rèn)定、事故處理意見(jiàn)等內(nèi)容,文本從幾百字到數(shù)萬(wàn)字不等,內(nèi)容長(zhǎng)短不一,由于BERT 模型支持的最長(zhǎng)序列字?jǐn)?shù)為512,需要對(duì)原始文本進(jìn)行處理。本文結(jié)合安全生產(chǎn)事故的文本特點(diǎn),先對(duì)文本進(jìn)行摘要處理,再利用BERT 模型進(jìn)行多任務(wù)分類(lèi),實(shí)現(xiàn)安全生產(chǎn)事故分類(lèi)水平的提升。
文本摘要方法主要為抽取式摘要和生成式摘要,抽取式摘要方法根據(jù)單詞和句子的特征從文檔中選擇核心語(yǔ)義句,并將它們組合以生成摘要,句子的重要性取決于句子的特征統(tǒng)計(jì)。抽取式摘要最大化地保證摘要內(nèi)容來(lái)自于原文,避免生成不準(zhǔn)確甚至是錯(cuò)誤的信息。抽取式摘要的缺點(diǎn)是抽取對(duì)象是文本中的句子,當(dāng)要抽取的數(shù)值確定時(shí),會(huì)有正確的摘要句沒(méi)被抽取,造成摘要內(nèi)容的丟失,而被抽取的摘要內(nèi)容也會(huì)有一定的冗余。生成式摘要?jiǎng)t使用了一系列自然語(yǔ)言處理技術(shù),用于理解給定文檔中的主要內(nèi)容,生成更加簡(jiǎn)明精煉的句子來(lái)構(gòu)成摘要。生成式摘要與抽取式摘要相比,摘要更準(zhǔn)確,更靈活,更符合編寫(xiě)習(xí)慣。結(jié)合安全生產(chǎn)事故文本較長(zhǎng)的特點(diǎn)以及BERT 模型對(duì)算力較高的要求,本文采用抽取式+生產(chǎn)式摘要相結(jié)合的方法完成文本的摘要。
對(duì)于長(zhǎng)文本的處理,一般分為3 種方法:截?cái)喾ǎ琍ooling 法,壓縮法。截?cái)喾ù笾路譃轭^截?cái)?、尾截?cái)?、頭+尾截?cái)? 種。截?cái)嗟谋壤齾?shù)是一個(gè)可以調(diào)節(jié)的參數(shù)。Pooling 法將整段的文本拆分為多個(gè)片段,進(jìn)行多次編碼。壓縮法是在斷句后將整個(gè)篇章分割成片段,通過(guò)訓(xùn)練小模型,將無(wú)意義的片段剔除,如剪枝法、權(quán)重因子分解法、知識(shí)蒸餾法等方法。
為提高處理效率,本文采用截?cái)喾?,?duì)原始文本首先按照頭+尾截?cái)?,然后去停用詞,進(jìn)一步精簡(jiǎn)文本,最后構(gòu)建數(shù)據(jù)集。針對(duì)中文長(zhǎng)文本摘要和多標(biāo)簽分類(lèi)的難點(diǎn),設(shè)計(jì)分3 步實(shí)現(xiàn)多標(biāo)簽分類(lèi):第一步使用基于BERT 預(yù)訓(xùn)練模型實(shí)現(xiàn)抽取式文本摘要;第二步使用基于華為的中文預(yù)訓(xùn)練語(yǔ)言模型——哪吒訓(xùn)練模型實(shí)現(xiàn)生成式文本摘要;第三步通過(guò)基于精簡(jiǎn)的BERT(a lite bidirectional encoder representation from transformers,AlBERT)訓(xùn)練模型,借助遷移學(xué)習(xí)的思想進(jìn)行多標(biāo)簽多任務(wù)分類(lèi),最終在數(shù)據(jù)集上取得了較好的多標(biāo)簽分類(lèi)效果[5-6]。
抽取式文本摘要,生成摘要不連貫、字?jǐn)?shù)難以控制、目標(biāo)句主旨不明確。而B(niǎo)ERT 預(yù)訓(xùn)練模型能在一定程度上克服以上缺點(diǎn)。BERT 模型應(yīng)用于具體領(lǐng)域的任務(wù)是通過(guò)使用預(yù)訓(xùn)練和微調(diào)實(shí)現(xiàn),預(yù)訓(xùn)練的目的是在輸入的詞中融入上下文的特征,微調(diào)的目的是使BERT 適應(yīng)不同的任務(wù)。其創(chuàng)新點(diǎn)在于將注意力模型Transformer 的雙向訓(xùn)練應(yīng)用于NLP,經(jīng)過(guò)雙向訓(xùn)練的語(yǔ)言模型比單一向語(yǔ)言模型能更好地理解語(yǔ)言環(huán)境和流程。BERT 中文長(zhǎng)文本摘要模型如圖1。
模型中數(shù)據(jù)集經(jīng)過(guò)分詞并添加一些標(biāo)識(shí)符。在第一個(gè)句子前面添加[CLS]標(biāo)識(shí)符,借助首句最前面的特殊符[CLS],用來(lái)分類(lèi)輸入的兩個(gè)句子間是否有上下文關(guān)系。每個(gè)句子的最后添加[SEP]標(biāo)識(shí)符,起到分割句子的作用。整個(gè)模型結(jié)構(gòu)通過(guò)BERT 接一個(gè)平均池化層得到句子向量[7],即通過(guò)預(yù)訓(xùn)練獲取一個(gè)句子的定長(zhǎng)向量表示,將變長(zhǎng)的句子編碼成定長(zhǎng)向量。Average pooling 主要對(duì)整體特征信息進(jìn)行抽取,local 主要是對(duì)特征映射的子區(qū)域求平均值,然后滑動(dòng)這個(gè)子區(qū)域。模塊間采用average pooling 既能在一定程度上減少維度,更有利于下一級(jí)模塊進(jìn)行特征提取。利用膨脹門(mén)卷積神經(jīng)網(wǎng)絡(luò)(dilate gated convolutional neural network,DGCNN),它是基于CNN+ Attention的高效模型。Attention 用于取代池化操作來(lái)完成對(duì)序列信息的整合。Dense 層將前面提取的特征,經(jīng)dense 層作非線性變化,再映射到輸出空間。對(duì)于圖1 中的句子對(duì),句子的特征值是1,則保留的摘要,句子的特征值是0,則該句舍棄,從而達(dá)到文本抽取式摘要的目的。
圖1 抽取式文本摘要模型Fig. 1 Extractive summarization model
為了進(jìn)一步減小文本的長(zhǎng)度,通過(guò)抽取式模型輸出的摘要,再作為生成式摘要模型的輸入,最終生成輸出得摘要。 生成式摘要通過(guò)改進(jìn)型BERT 來(lái)實(shí)現(xiàn),模型如圖2 所示。BERT 使用的是訓(xùn)練出來(lái)的絕對(duì)位置編碼,有長(zhǎng)度限制,為便于處理長(zhǎng)文本,采用基于華為的NEZHA 預(yù)訓(xùn)練語(yǔ)言模型,利用改模型相對(duì)位置編碼,通過(guò)對(duì)位置差做截?cái)?,使得待處理詞、句相對(duì)位置在有限范圍內(nèi),這樣,輸入序列的長(zhǎng)度不再受限,處理后的語(yǔ)句再通過(guò)生產(chǎn)式指針網(wǎng)絡(luò)(pointer generator networks,PGN)模型生產(chǎn)摘要。 PGN 模型[8]可視為基于attention 機(jī)制的seq2seq 模型和pointer network 的結(jié)合體,該模型既能從給定詞匯表中生成新token,又能從原輸入序列中拷貝舊token,其框架如圖2 所示。圖2 中原文本中各token 的Wi經(jīng)過(guò)單層雙向LSTM 將依次得到編碼器隱藏狀態(tài)序列,各隱藏層狀態(tài)表示為Ht。對(duì)于每一個(gè)時(shí)間步長(zhǎng)t,解碼器根據(jù)上一個(gè)預(yù)測(cè)得到單詞的embeding,經(jīng)LSTM 得到解碼器隱藏層狀態(tài)St,為了在輸出中可以復(fù)制序列中的token,將根據(jù)Ht,St和解碼器輸入Xt計(jì)算生成概率:
圖2 生產(chǎn)式文本摘要模型Fig. 2 Abstractive summarization model
式(1)中,WTh、WTs、WTx、Bptr均為 模型要 學(xué)習(xí)的 參數(shù)。Pgen的作用是判斷生成的單詞是來(lái)自于根據(jù)Pvocab在輸出序列的詞典中采樣,還是來(lái)自根據(jù)注意力權(quán)重ai,t在輸入序列的token 中的采樣,最終token 分布表示如式(2):
其中i:Wi=W表示輸入序列中的token 的W,模型會(huì)將在輸入序列中多次出現(xiàn)的W的注意力分布相加。當(dāng)W未在輸出序列詞典中出現(xiàn)時(shí),Pvocab(W)=0;而當(dāng)W未出現(xiàn)在輸入序列中時(shí),
顯然,該模型基于上下文向量,解碼器輸入及解碼器隱藏層狀態(tài)來(lái)計(jì)算生成詞的概率p,對(duì)應(yīng)Copy 詞的概率為1-p,根據(jù)概率綜合編碼器注意力和解碼器輸出分布得到一個(gè)綜合的基于input 和output的token 分布,從而確定生成的語(yǔ)句。
實(shí)驗(yàn)對(duì)2 000 個(gè)20 種事故類(lèi)別的案例集進(jìn)行處理,采用基于召回率的摘要評(píng)價(jià)(recalloriented understudy for gisting evaluation,ROUGE)作為評(píng)價(jià)指標(biāo),以衡量生成的摘要與參考摘要之間的“相似度”,采用ROUGE-1、ROUGE-2和ROUGE-L作為標(biāo)準(zhǔn),即計(jì)算一元詞、兩元詞及最長(zhǎng)公共子序列的重疊程度。本文提出的模型在訓(xùn)練集上得到ROUGE 評(píng)價(jià)結(jié)果如表1 所示,同時(shí)還給出了其他模型的ROUGE 結(jié)果[9-11]。
表1 不同模型實(shí)驗(yàn)結(jié)果對(duì)比Tab. 1 Comparison of experimental results of different models %
第一個(gè)抽取式模型BERT+BiLIST 是將BERT預(yù)處理后的文本向量經(jīng)過(guò)一個(gè)基于規(guī)則的基本篇章單元識(shí)別模型,再經(jīng)過(guò)基于Transformer 的神經(jīng)網(wǎng)絡(luò)抽取模型,生成最終的摘要。第二個(gè)抽取式模型BERTSUMExt,將多層Transformer 應(yīng)用于句子表示,從輸出中抽取文檔特征,再經(jīng)LSTM 層學(xué)習(xí)特定摘要特征。本文抽取式中文摘要采用的NER 模型式chinese_L-12- H-768_A-12 預(yù)訓(xùn)練模型,通過(guò)BERT + Average pooling 計(jì)算文本向量表示,最后通過(guò)CNN+ Attention 的模型抽取摘要。
第一個(gè)生產(chǎn)式摘要模型CopyNet 通過(guò)深度遞歸生成解碼器的Seq2seq 模型,利用遞歸學(xué)習(xí)目標(biāo)摘要中隱含信息來(lái)提高摘要質(zhì)量。第二個(gè)生產(chǎn)式摘要模型Seq2seq +transformer+PGN 采用基于自注意力的transformer 機(jī)制,組合指針生成網(wǎng)絡(luò)input-feeding 方法。本文生成式中文摘要采用華為的NEZHA 預(yù)訓(xùn)練語(yǔ)言模型,經(jīng)過(guò)基于attention機(jī)制的Seq2seq 模型生產(chǎn)摘要。
實(shí)驗(yàn)數(shù)據(jù)如表1 所示,本文提出的模型較其他模型相比,最終結(jié)果相差不大,一方面,其他模型的評(píng)價(jià)結(jié)果當(dāng)前已達(dá)到很高水平[12],另一方面,采用的數(shù)據(jù)集存在的差異,包括中文和英文差異,也存在不同領(lǐng)域之間的差異。同時(shí),考慮到算力等因素,本實(shí)驗(yàn)采用的兩個(gè)模型能夠提取文本的關(guān)鍵信息,為長(zhǎng)文本進(jìn)行多標(biāo)簽分類(lèi)提供可能。
多標(biāo)簽分類(lèi)就是要將安全生產(chǎn)的事故案例標(biāo)記為物體打擊、車(chē)輛傷害等20 類(lèi)事故類(lèi)別之一;碰撞、爆炸等15 種傷害方式之一;防護(hù)、保險(xiǎn)等裝置缺乏或缺陷等4 大類(lèi)不安全狀態(tài)之一;操作失誤等13 大類(lèi)不安全行為之一,共有52 個(gè)標(biāo)簽。
多標(biāo)簽文本分類(lèi)ALBERT 預(yù)訓(xùn)練模型,該模型最小的參數(shù)只有十幾兆字節(jié),能較好解決模型參數(shù)量大、訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題,效果比BERT 低1%~2%。同時(shí),在沒(méi)有足夠的安全生產(chǎn)類(lèi)標(biāo)注數(shù)據(jù)的情況下,采用遷移學(xué)習(xí)來(lái)提高預(yù)訓(xùn)練的效果。本文采用基于樣本的遷移學(xué)習(xí)方法,模型如圖3 所示。模型主要通過(guò)自制的安全生產(chǎn)事故數(shù)據(jù)集對(duì)模型進(jìn)行預(yù)訓(xùn)練,建立分類(lèi)精度較高、特征提取能力強(qiáng)的學(xué)習(xí)模型。TextCNN 模型能有效抓取文本的局部特征,經(jīng)過(guò)不同的卷積核提取文本信息,再通過(guò)最大池化來(lái)突出各個(gè)卷積操作,從而提取特征信息,拼接后利用全連接層對(duì)特征信息進(jìn)行組合,最后通過(guò)binary crossentropy 損失函數(shù)來(lái)訓(xùn)練模型,將標(biāo)量數(shù)字轉(zhuǎn)換到[0,1]之間,再對(duì)52 個(gè)標(biāo)量分組分類(lèi)。
圖3 多標(biāo)簽文本分類(lèi)模型Fig. 3 Multi-label text classification model
當(dāng)前多標(biāo)簽的學(xué)習(xí)算法[13-15],按解決問(wèn)題的方式可以分為基于問(wèn)題轉(zhuǎn)化法和基于算法適用法兩類(lèi)。問(wèn)題轉(zhuǎn)化法通常只考慮標(biāo)簽的關(guān)聯(lián)性。而考慮多標(biāo)簽的相關(guān)性時(shí)可將上一個(gè)輸出的標(biāo)簽當(dāng)成下一個(gè)標(biāo)簽分類(lèi)器的輸入。對(duì)于事故類(lèi)別、傷害方式等52 個(gè)標(biāo)簽,若采用類(lèi)似于二分類(lèi)方法,所有標(biāo)簽將分布在[0,252-1]空間內(nèi),數(shù)據(jù)會(huì)很稀疏,耗費(fèi)大量資源。因此,采用基于算法適用法來(lái)實(shí)現(xiàn)多標(biāo)簽分類(lèi)算法。設(shè)置TextCNN 參數(shù)字長(zhǎng)為300,卷積核數(shù)目為256,卷積核尺寸為5,標(biāo)簽為52。再利用tf.argmax()對(duì)模型訓(xùn)練獲得的52 個(gè)標(biāo)量,求得4 組列表[0,19:1]、[20,34:1]、[35,38:1]、[39,51:1]中最大數(shù)的索引,最后映射到相應(yīng)標(biāo)簽即可,分類(lèi)結(jié)果如表2所示??梢钥闯?,同一事故類(lèi)別的標(biāo)簽數(shù)越多,分類(lèi)的準(zhǔn)確率越低。另外,考慮算力的因素,本文安全生產(chǎn)事故文本數(shù)據(jù)集數(shù)量上相對(duì)偏少,也導(dǎo)致分類(lèi)準(zhǔn)確率不夠高。
表2 多標(biāo)簽分類(lèi)準(zhǔn)確率Tab. 2 Multi-label classification accuracy %
目前,雖然在一定程度上實(shí)現(xiàn)了安全類(lèi)中文長(zhǎng)文本的多標(biāo)簽分類(lèi),但數(shù)據(jù)集的構(gòu)建需要做大量的工作,事故傷害類(lèi)別多,成因復(fù)雜,要做好安全生產(chǎn)傷害事故及原因的文本分類(lèi),還面臨不少挑戰(zhàn)。數(shù)據(jù)是研究的基石,只要進(jìn)一步完善大規(guī)模、高質(zhì)量的數(shù)據(jù)集,優(yōu)化各種模型及參數(shù),就能進(jìn)一步提升文本分類(lèi)準(zhǔn)確性。