朱 磊 董林靖 黑新宏 王一川 彭 偉 劉雁孝 盤 隆
1(西安理工大學(xué) 西安 710048) 2(陜西省網(wǎng)絡(luò)計算與安全技術(shù)重點實驗室(西安理工大學(xué)) 西安 710048)3(深圳市騰訊計算機系統(tǒng)有限公司 廣東深圳 518054)
隨著我國城市中各種各樣的安全突發(fā)事件不斷增多,形成了大量的案例文本信息.現(xiàn)階段公共安全事件輿情中的知識與信息不能有效地抽取和復(fù)用,無法為公共安全事件管理提供充分的協(xié)助和預(yù)警.在現(xiàn)有的自然語言處理研究領(lǐng)域,對中文公共安全事件領(lǐng)域的語料分析研究[1]較少.命名實體識別是領(lǐng)域工作中的基礎(chǔ),直接影響自然語言處理任務(wù)中語法分析、語義分析和關(guān)系抽取任務(wù)的性能,其主要的目的是從非結(jié)構(gòu)化文本中識別預(yù)定義實體[2].
基于規(guī)則和詞典的命名實體識別方法[3]主要是人工構(gòu)建有限規(guī)則,結(jié)合專家構(gòu)建的實體詞匯表,對每條規(guī)則設(shè)置權(quán)重,然后通過實體與規(guī)則的匹配程度來進行實體類型分類.但是人工制定這些規(guī)則的成本較大,構(gòu)建詞匯表與數(shù)據(jù)量相差懸殊,經(jīng)過制訂固定的規(guī)則模板來識別出結(jié)構(gòu)復(fù)雜的命名實體;這樣的方法雖然準確率相對較高,然而工作量巨大,可行性較低;其次,人為制訂的規(guī)則模板復(fù)用性太低,不同領(lǐng)域數(shù)據(jù)結(jié)構(gòu)可能不同,將此規(guī)則模板遷移至其他領(lǐng)域不適用.
基于統(tǒng)計機器學(xué)習的方法可以將命名實體識別任務(wù)當作詞組級別的多分類任務(wù),先使用模型識別出實體的邊界,再使用分類器對文本中的命名實體進行分類[4];或者將命名實體識別任務(wù)當作字符級別的序列標注任務(wù)[5]:首先,根據(jù)領(lǐng)域數(shù)據(jù)人為預(yù)先定義若干個實體類別,對于文本中每個字符可以有多個候選的類別標簽;然后根據(jù)每個字符在實體中的位置,確定每個字符的標簽,最終將1組字符的標簽整理在一起,獲得識別出的實體和實體所屬類別[6].
基于神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習[7]使用詞向量來表示詞語的方法,加入詞向量減少了人為特征工程的工作量,能夠潛移默化地發(fā)現(xiàn)人工選擇特征時未包含的語義信息.該方法還解決了在基于詞典方法中由于高維度向量空間而出現(xiàn)的數(shù)據(jù)密度稀疏的問題,并且能夠?qū)⒉煌Y(jié)構(gòu)的文本轉(zhuǎn)化為相同維度大小的矩陣進行向量表示.
為了研究中文公共安全事件的命名實體識別方法,本文分析了《中文突發(fā)事件語料庫》,將預(yù)訓(xùn)練模型作為研究重點.在對比了現(xiàn)有基于BERT模型的工作[8]基礎(chǔ)上,本文提出了優(yōu)化的中文預(yù)訓(xùn)練模型RoBERTa+完成公共安全領(lǐng)域的預(yù)訓(xùn)練任務(wù).具體地,將更新的安全領(lǐng)域詞典和10萬條新聞?wù)Z料嵌入到預(yù)訓(xùn)練模型中,同時使用動態(tài)的全詞覆蓋機制修正網(wǎng)絡(luò)參數(shù).將預(yù)訓(xùn)練語言模型以及輸出的動態(tài)詞向量作為下游命名實體識別任務(wù)的輸入進行微調(diào).接著采用BiLSTM-CRF模型提取文本的上下文關(guān)系,并標注出實體字符的類別.經(jīng)實驗證明,基于領(lǐng)域預(yù)訓(xùn)練的公共安全事件命名實體識別的性能均得到了提升.
BERT模型是基于Transformer模型的雙向編碼器表示[9],其結(jié)構(gòu)如圖1所示.BERT模型能夠?qū)W習句子中詞和詞之間的上下文關(guān)系,當處理1個詞時,能同時考慮到當前詞的前一個詞和后一個詞的信息,從整體獲取詞的語義特征.
圖1 Transformer編碼單元Encoder
Transformer編碼單元主要運用了多層Self-Attention機制,其中Self-Attention機制為輸入向量的每個單詞學(xué)習一個權(quán)重.雙向的Transformer編碼器的連接組成BERT模型結(jié)構(gòu),它可以獲取所在層中的左右2側(cè)語境.
Hochreiter等人[10]在1997年提出了長短時記憶網(wǎng)絡(luò)(long short-term memory,LSTM)能夠解決循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)在時間維度上出現(xiàn)的梯度消失問題.LSTM主要利用其特有的3個門結(jié)構(gòu)來保持和更新狀態(tài),以達到長期記憶功能,并能夠選擇性地遺忘部分歷史信息.LSTM模型將部分輸入信息與通過遺忘門、輸入門和輸出門獲得的狀態(tài)結(jié)合形成輸出狀態(tài),從而達到可以比RNN捕獲更長距離的依賴信息.此外,為了同時反映每個字符與上文信息和下文信息之間的關(guān)系,Graves等人[11]提出了BiLSTM模型.將文本向量按照從左向右及從右向左的順序分別輸入正序及逆序LSTM單元.BiLSTM模型可以考慮上下文2個方向的信息,綜合輸出字標簽得分向量.
Lafferty等人[12]在2001年首次提出條件隨機場模型CRF,條件隨機場模型在自然語言處理領(lǐng)域中主要應(yīng)用是文本序列化標注.條件隨機場可以實現(xiàn)在給定一組隨機的X的條件下,它能夠輸出目標Y的條件概率分布.在命名實體識別任務(wù)中使用CRF模型主要是為了給BiLSTM模型輸出的每組預(yù)測標簽添加一些實體內(nèi)位置約束,從而保證每組預(yù)測標簽的有序性.
事實上,相鄰字標簽之間是存在約束關(guān)系的.如圖2所示,例如標簽“B-PER”和標簽“I-LOC”相鄰,文本開頭的字標簽不可能是“I-”標簽或者“O”標簽.CRF模型能夠自動學(xué)習到各字標簽之間的約束信息,利用每個字標簽的得分與字標簽之間的轉(zhuǎn)移得分來計算不同標簽序列出現(xiàn)的概率,從中選取出現(xiàn)概率最大的序列,并將具有合法性的序列作為文本最優(yōu)標簽序列.
圖2 CRF線性鏈式結(jié)構(gòu)圖
為了提升公共安全領(lǐng)域事件實體的識別效率,本文在公開的新聞領(lǐng)域數(shù)據(jù)集上進行預(yù)訓(xùn)練,對RoBERTa進行優(yōu)化,提出基于領(lǐng)域預(yù)訓(xùn)練的公共安全領(lǐng)域命名實體識別模型.在提出的模型中:首先對輸入字符進行向量映射,接著使用RoBERTa進行預(yù)訓(xùn)練,生成預(yù)訓(xùn)練語言模型及含有語義的動態(tài)字詞向量;然后使用BiLSTM對輸入信息進行上下文特征提取,對每一個字符輸出每個預(yù)定義類的標簽預(yù)測分值;最后,使用CRF自動學(xué)習轉(zhuǎn)移特征,通過添加約束條件保證預(yù)測的標簽順序的合法性,選取最優(yōu)標注序列生成實體識別結(jié)果.模型結(jié)構(gòu)如圖3所示:
國家對建筑材料的質(zhì)量有著嚴格的規(guī)定和劃分,個別企業(yè)也有自己的材料使用質(zhì)量標準,但是個別施工單位為了追求額外效益,會有意無意地在工程項目建設(shè)過程中使用一些不規(guī)范的工程材料,造成工程項目的最終質(zhì)量存在問題。
圖3 RoBERTa-BiLSTM-CRF模型結(jié)構(gòu)
RoBERTa 模型的輸入是由3種embedding相加得到:token embeddings,segment embeddings,position embeddings.token embeddings是詞向量,第1個單詞是 CLS 標志,可以用于分類任務(wù);segment embeddings用來區(qū)分2種句子,可以用于以2個句子為輸入的分類任務(wù);position embeddings表示位置.3種embedding都是通過訓(xùn)練得來的.
本文提出PreTrain100K+RoBERTa+-BiLSTM-CRF模型主要是對RoBERTa模型進行改進,采用數(shù)據(jù)增強的方式加強深度學(xué)習模型對公共安全領(lǐng)域的命名識別能力.在爬取的部分公共安全事件詞典的基礎(chǔ)上,對RoBERT進行了2步改進:1)將原始的單字符掩碼機制修改為全詞掩碼機制,并在分詞函數(shù)中引入公共安全事件實體詞典;2)對改進的RoBERTa模型進行領(lǐng)域預(yù)訓(xùn)練,即在爬取的10萬條新聞?wù)Z料庫上進行詞掩蓋預(yù)訓(xùn)練任務(wù).
RoBERTa模型在輸入時采用動態(tài)掩碼機制,該機制采用以字符為單位進行切分.在生成訓(xùn)練樣本時,句中的詞會被切分為多個詞組,并且這些詞組會被隨機掩碼.但是中文和英文的區(qū)別是英文最小的單位是一個單詞,而中文最小的單位是以字為粒度進行切分,單個字可能不包含完整的語義信息.在中文中包含語義信息的單位是詞,詞是由1個或多個字組成,并且1個完整的句子中詞和詞之間沒有明顯的邊界標志.
本文采用全詞掩碼機制來替換字符掩碼機制.如果1個完整的詞的部分子詞被掩碼,那么意味著同屬于該詞的其他部分也應(yīng)該被掩蓋掉.基于這個中文語法,全詞掩碼使模型能夠更好地學(xué)習中文語言表述方式.具體實例如表1所示:
學(xué)校對實驗教學(xué)的管理是根本性管理。對是否能夠真正實現(xiàn)、實踐實戰(zhàn)能力強的應(yīng)用型專業(yè)人才培養(yǎng)目標,具有根本性、決定性作用。
表1 全詞Mask
針對表1的情況,在全詞掩碼機制中,首先對文本進行分詞操作,并且在分詞過程中引入公共安全事件的實體詞典,使其能全詞掩碼機制預(yù)測時保留公共安全事件文本實體完整的語義,具體模型結(jié)構(gòu)如圖4所示:
圖4 PreTrain100K+RoBERTa+模型結(jié)構(gòu)
同時,為了增強中文相關(guān)背景知識的遷移和學(xué)習,本文以公開的微軟亞洲研究院MSRA數(shù)據(jù)集、人民日報語料集和今日頭條中文新聞數(shù)據(jù)集作為預(yù)訓(xùn)練語料.新聞?wù)Z料中也包含公共安全事件的語料,與本文特定任務(wù)語料十分相關(guān),方便用于領(lǐng)域預(yù)訓(xùn)練.這些新聞?wù)Z料包含了10萬條未標注的新聞,將這些語料輸入到RoBERTa-base版本[13]預(yù)訓(xùn)練模型中.在大規(guī)模無標注的語料上采用自監(jiān)督的方式訓(xùn)練語言模型,并且將訓(xùn)練后的語言模型與下游任務(wù)模型連接,采用微調(diào)方式調(diào)優(yōu)模型參數(shù).在預(yù)訓(xùn)練語料中,MSRA語料集包含46 365條數(shù)據(jù),人民日報語料集包含23 061條數(shù)據(jù),今日頭條新聞數(shù)據(jù)集包含30 626條數(shù)據(jù),共計10萬余條語料數(shù)據(jù).
本文使用Python語言和Tensorflow框架.實驗運行環(huán)境為Win10操作系統(tǒng),內(nèi)存64GB,處理器型號為lntel?CoreTMi7-10700CPU@2.90 GHz,GPU顯卡型號為NVIDIAGeForceRTX2080Ti.
本文的實驗數(shù)據(jù)是公開的安全事件案例《中文突發(fā)事件語料庫》(Chinese Emergency Corpus,CEC).CEC[14]數(shù)據(jù)集共有332條公共安全事件實例,該數(shù)據(jù)集含有5類預(yù)定義的實體.針對denoter,time,location,participant,object標簽進行命名實體識別,將標簽分別簡記為DEN,TIME,LOC,PAR,OBJ,分別表示行為、時間、位置、參與者和對象.
在實驗中,根據(jù)CEC實例數(shù)目對文檔進行劃分,在332條數(shù)據(jù)集中選取30條規(guī)范作為驗證集,其次對332條數(shù)據(jù)集按7∶3的比例劃分訓(xùn)練集和測試集,具體數(shù)目信息如表2所示:
表2 數(shù)據(jù)集類別及字符數(shù)
注:362條數(shù)據(jù)中有30條重復(fù)實例.
本文以漢字作為輸入單元,標注體系選用經(jīng)典的BIO方法.BIO是B(begin),I(intermediate),O(other)的縮寫,其中,begin指所識別對象開始位置上的字符,intermediate指所識別對象最中間的字符,other指所識別對象中的非實體字符.本文數(shù)據(jù)集中5類預(yù)定義實體轉(zhuǎn)化的待預(yù)測標簽如表3所示:
表3 待預(yù)測標簽
實體邊界和實體標注是NER評估主要的方向.在預(yù)測過程中,只有當實體標簽的類型與預(yù)定義的實體類型完全一致時,才判斷該實體預(yù)測正確.NER的評價指標為:Accuracy(精確率)、Precision(準確率)、Recall(召回率)和F1值.具體公式為
(1)
(2)
(3)
(4)
其中:TP統(tǒng)計實體實際標簽和預(yù)測標簽都是正確的實體數(shù)目;TN統(tǒng)計實體實際標簽和預(yù)測標簽都是錯誤的實體數(shù)目;FP統(tǒng)計實體實際標簽是錯誤的但預(yù)測的標簽是正確的實體數(shù)目;FN統(tǒng)計實體實際標簽是正確的但預(yù)測的標簽是錯誤的數(shù)目.
深度學(xué)習的效果很大程度上取決于參數(shù)調(diào)節(jié)的好壞.深度學(xué)習超參數(shù)中最重要的2個可調(diào)參數(shù)是學(xué)習率和批樣本數(shù)量.由于硬件限制,批樣本數(shù)量的選取存在上限.針對RoBERTa-BiLSTM-CRF模型,在機器上訓(xùn)練:當batch_size>22時,就會出現(xiàn)內(nèi)存溢出;當batch_size=22時,既可以保證不發(fā)生內(nèi)存溢出,還能夠保證GPU利用率達到90%以上.因此本文將確定batch_size的大小,分別研究學(xué)習率和迭代次數(shù)對模型擬合度的影響.
2.5.1 學(xué)習率對模型訓(xùn)練的影響
學(xué)習率在模型迭代訓(xùn)練中把握著整個過程的學(xué)習進度,直接關(guān)系到模型的可優(yōu)化空間.同時,將學(xué)習率調(diào)至最優(yōu)才能夠讓梯度下降得最快.設(shè)置不同學(xué)習率觀察RoBERTa-BiLSTM-CRF模型的準確率、精確率、召回率和F1值變化,實驗結(jié)果對比如圖5所示:
圖5 學(xué)習率對模型性能的影響
在圖5中,當學(xué)習率大于10-4時,準確率不超30%,精確率、召回率和F1值都不到10%.以指數(shù)形式逐漸減小學(xué)習率,當學(xué)習率等于10-4時,準確率和F1值達到最優(yōu).但是當學(xué)習率小于10-5時,性能在不斷下降.所以,本文的模型將學(xué)習率設(shè)置為最優(yōu)值10-4.
2.5.2 迭代次數(shù)對模型訓(xùn)練的影響
用全部數(shù)據(jù)對模型進行多次完整的訓(xùn)練稱為迭代訓(xùn)練.確定batch_size和learning_rate的大小,多次改變迭代次數(shù)的大小,觀察模型的準確率的變化情況.在實驗中,設(shè)定迭代次數(shù)范圍為[50,350],從50開始步長為50依次增大設(shè)置,實驗結(jié)果如圖6所示.
圖6 迭代次數(shù)對模型性能的影響
從圖6可以看出,當?shù)螖?shù)為250時,準確率和F1都達到最優(yōu).同時,在250次時模型性能已經(jīng)趨于穩(wěn)定,并且波動較小,所以將迭代次數(shù)設(shè)置為250為最佳.
除了學(xué)習率和迭代次數(shù),模型的其他參數(shù)同樣通過類似的部分實驗獲取,具體超參數(shù)設(shè)定如表4所示:
表4 參數(shù)值設(shè)置
本文針對中文公共突發(fā)事件語料庫CEC進行分析,通過對中文預(yù)訓(xùn)練模型的優(yōu)化,構(gòu)建公共安全領(lǐng)域的PreTrain100K+RoBERTa+-BiLSTM-CRF模型.在實現(xiàn)中,我們選擇BiLSTM-CRF,BERT-BiLSTM-CRF和未加領(lǐng)域預(yù)訓(xùn)練的RoBERTa+-BiLSTM-CRF等模型作為對比實驗,具體的實驗結(jié)果如表5所示.
表5 實體識別模型實驗結(jié)果對比 %
首先,對比BiLSTM-CRF和BERT-CRF模型的實驗結(jié)果,后者的F1值比前者高10.85%.由此可看出,BERT模型[15]依據(jù)單詞上下文計算的表示向量,比Word2Vec直接在此表中查找某個詞的表示向量更具有語義信息.因此,后者的效果要優(yōu)于前者.
對比BERT-CRF,增加了BiLSTM模型,性能得到了顯著提高,F(xiàn)1值提高了8.41%.這種情況說明了在BERT預(yù)訓(xùn)練模型后直接使用CRF模型,缺少BiLSTM學(xué)習觀測序列上的依賴關(guān)系,整個模型在觀測序列上學(xué)習力就會下降.相比較BERT-BiLSTM-CRF,RoBERTa的預(yù)訓(xùn)練效果性能更好,從結(jié)果可以得到RoBERTa-BiLSTM-CRF模型將精確率提高了0.66%,F(xiàn)1值提高了0.85%.因為原版的BERT依賴隨機掩碼和預(yù)測token,在數(shù)據(jù)預(yù)處理期間執(zhí)行1次掩碼,得到1個靜態(tài)掩碼;借助于動態(tài)掩碼機制,RoBERTa模型對預(yù)訓(xùn)練語料中的實體名詞進行不同概率和順序的多次訓(xùn)練,從而增強安全領(lǐng)域的實體名詞嵌入表示.因此,后者表現(xiàn)優(yōu)于前者.對比加入原始版的RoBERTa的模型,本文改進的RoBERTa+-BiLSTM-CRF模型的F1值表現(xiàn)較好.說明了加入實體詞典的全詞Mask機制能夠保留領(lǐng)域?qū)嶓w完整的語義,對下游公共安全事件命名實體識別任務(wù)有一定的提升.
對比RoBERTa+-BiLSTM-CRF模型,本文提出的PreTrain100K+RoBERTa+-BiLSTM-CRF模型將準確率和F1值分別提高了0.28%和0.29%.說明了對RoBERTa+模型在大規(guī)模的無標注語料上進行領(lǐng)域預(yù)訓(xùn)練后能夠在一定程度上使模型學(xué)習到公共安全領(lǐng)域文本的領(lǐng)域特征,進而提升命名實體識別的性能.同時,實驗結(jié)果對比提升效果較小,說明領(lǐng)域預(yù)訓(xùn)練語料不足,需要大量相關(guān)領(lǐng)域數(shù)據(jù)進行充分預(yù)訓(xùn)練.
本文主要是對公共安全領(lǐng)域進行中文命名實體識別研究,提出了改進的命名實體識別模型PreTrain100K+RoBERTa+-BiLSTM-CRF.在對原始的RoBERTa模型進行領(lǐng)域預(yù)訓(xùn)練優(yōu)化過程中,加入公共安全領(lǐng)域詞典的全詞Mask機制,并且對相關(guān)的10萬條中文語料庫進行預(yù)訓(xùn)練,使PreTrain100K+RoBERTa+模型具備更好的中文語言模型能力.然后,將生成的預(yù)訓(xùn)練語言模型和領(lǐng)域?qū)嶓w輸入到BiLSTM-CRF模型[16]中進行實體識別訓(xùn)練.該模型在中文突發(fā)事件語料庫CEC上取得了較好的性能.
未來計劃在擴充公共安全事件語料的基礎(chǔ)上再進行預(yù)訓(xùn)練模型的優(yōu)化,并且還計劃在命名實體識別任務(wù)中加入領(lǐng)域?qū)嶓w關(guān)系特征,從而提升公共安全領(lǐng)域的信息識別能力.