張昊東 董 雷
(1.武漢郵電科學(xué)研究院 武漢 430000)(2.武漢理工光科股份有限公司 武漢 430000)
隨著中國(guó)城市化進(jìn)程的加速,我國(guó)涌現(xiàn)出一系列超級(jí)大都會(huì)城市,人口的密集導(dǎo)致了城市火災(zāi)案件頻發(fā)。另外,隨著我國(guó)經(jīng)濟(jì)的迅猛發(fā)展,人民群眾的家中也出現(xiàn)了各式各樣的新式電器,且人均擁有量也不斷提升,這也導(dǎo)致了城市火災(zāi)案件數(shù)量不斷攀升,且難以防范。以上所述的現(xiàn)實(shí)環(huán)境都對(duì)我國(guó)新時(shí)代下各省市的消防系統(tǒng)建設(shè)提出了更高的要求。更智能、更迅速地成為各省市消防系統(tǒng)建設(shè)的共同導(dǎo)向[1]。在消防系統(tǒng)各子模塊中,消防接警是最重要、最常用、最亟待提升的信息化模塊[2]?,F(xiàn)代消防接警信息來(lái)源已不只是來(lái)自于話務(wù),更多的信息由于群眾使用習(xí)慣、害怕?lián)?zé)等原因來(lái)自于互聯(lián)網(wǎng)(微信公眾號(hào)、微信小程序、支付寶小程序等)文字渠道。但在系統(tǒng)實(shí)踐過(guò)程中,由于各地接警中心人力有限,且信息較短(單條20 字以下)、數(shù)量較多,以上提到的互聯(lián)網(wǎng)文字報(bào)警信息往往沒(méi)有被很好地利用[3]。
為此,我國(guó)企業(yè)、科研單位對(duì)其做了大量的研究,提出了許多不同的解決思路。但大都基于關(guān)鍵詞標(biāo)注、分級(jí)推送等傳統(tǒng)思想,并沒(méi)有深入到文本本身語(yǔ)義層次進(jìn)行分析、處理[4]。
本文設(shè)計(jì)了一套互聯(lián)網(wǎng)文字消防接警輔助系統(tǒng),幫助接警員預(yù)篩有效消防報(bào)警信息,并通過(guò)語(yǔ)義分析對(duì)有效消防報(bào)警信息進(jìn)行分類(火災(zāi)、搶險(xiǎn)救援、反恐排爆、公務(wù)執(zhí)勤四類),有效節(jié)省接警員反應(yīng)時(shí)間,提高接警中心作業(yè)效率。經(jīng)實(shí)驗(yàn)證明,本消防接警輔助系統(tǒng)的文本算法部分相較于工業(yè)領(lǐng)域常用算法和經(jīng)典算法具有較高的識(shí)別率與性能。
RoBERTa是一個(gè)預(yù)訓(xùn)練的語(yǔ)言表征模型[5],其基于2018 年10 月Google 發(fā)布的BERT[6]模型,從如下三個(gè)方面進(jìn)行了改進(jìn)。
1)增加中文語(yǔ)料,增強(qiáng)對(duì)中文文本的處理能力;
2)增大數(shù)據(jù)的訓(xùn)練量;
3)改進(jìn)數(shù)據(jù)生成方法。
各類優(yōu)化的結(jié)果體現(xiàn)在測(cè)試上,RoBERTa 較之與BERT 在互聯(lián)網(wǎng)新聞情感分析、自然語(yǔ)言推斷[7]、問(wèn)題匹配語(yǔ)任務(wù)[8]、閱讀理解[9]測(cè)試上均強(qiáng)于BERT,領(lǐng)先BERT模型1%~2%[10~12],如表1所示。
表1 RoBERTa與BERT能力對(duì)比表
RCNN 模型是一種CNN 簇變種模型[13]。相較于傳統(tǒng)的文本信息處理模型RNN,既關(guān)注了文本所隱含的時(shí)間信息,也利用了循環(huán)層的形式實(shí)現(xiàn)了卷積的效果,對(duì)文本信息進(jìn)行了宏觀上的提煉[14~15]。如圖1 所示,利用left context 和right context 的信息與當(dāng)前詞鏈接,以循環(huán)層的形式形成了實(shí)質(zhì)上的卷積。
圖1 RCNN原理圖
具體來(lái)說(shuō),其是借用雙向RNN 的形式將當(dāng)前上下文wi的左側(cè)文本表示cl(wi)以及右側(cè)文本表示cr(wi),與當(dāng)前詞向量wi鏈接,構(gòu)成后序卷積層進(jìn)行輸入。舉例子來(lái)說(shuō),我們以上圖表示進(jìn)行說(shuō)明,South的詞向量將會(huì)鏈接其左側(cè)文本表示cl(w7)、右側(cè)文本表示cr(w5),然后構(gòu)成后序卷積層進(jìn)行輸入。鏈接形式如式(1)所示。
在鏈接完成后,鏈接信息會(huì)輸入進(jìn)一個(gè)卷積核大小為len*1(len 為詞向量長(zhǎng)度)的卷積層,該卷積層的激活函數(shù)在此規(guī)定為tanh,具體如式(2)所示。
在最后經(jīng)過(guò)以上處理的文本語(yǔ)義信息,將通過(guò)池化層進(jìn)行池化操作[16],并通過(guò)softmax 函數(shù)最終生成對(duì)應(yīng)的概率分布。如式(3)所示。
本文所使用的深度學(xué)習(xí)后端分類算法是基于RCNN 模型的基礎(chǔ)上改進(jìn)而來(lái)。主要改進(jìn)內(nèi)容如下。
1)調(diào)整激活函數(shù)為ReLU,有效緩解過(guò)擬合問(wèn)題,提升神經(jīng)網(wǎng)絡(luò)稀疏性,加快模型反向傳播速度。
2)改池化層均值池化為最大池化,降維數(shù)據(jù),提取特征差異最大值。
3)在池化層處理之后,加入dropout 操作,以減輕神經(jīng)元間的耦合現(xiàn)象,增強(qiáng)模型魯棒性。以公式來(lái)體現(xiàn),dropout 之前模型神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)表示為式(4)。
在進(jìn)行dropout 之后,該模型神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)表示為式(5)。
4)調(diào)節(jié)隱層數(shù)量,以期達(dá)到更合理的模型抽象能力,更加適配短文本場(chǎng)景。
5)調(diào)節(jié)卷積核尺寸和數(shù)量,以期達(dá)到計(jì)算量和模型抽象能力的平衡。
本文算法部分主要流程如下:
1)讀取原始訓(xùn)練數(shù)據(jù),劃分?jǐn)?shù)據(jù)集。
2)配置pad_size(每句話處理成的長(zhǎng)度)、學(xué)習(xí)率、epoch數(shù)、類別數(shù)。
3)配置隱層層數(shù)、卷積核尺寸、卷積核數(shù)量。
4)將訓(xùn)練語(yǔ)料輸入前置RoBERTa 模型中進(jìn)行信息抽取。
5)對(duì)padding 部分進(jìn)行mask,保持與句向量保持同樣尺寸。
6)將句向量輸入改進(jìn)后的RCNN模型。
7)在模型收斂或達(dá)到指定batch后結(jié)束模型的訓(xùn)練。
本系統(tǒng)總體設(shè)計(jì)包含三個(gè)部分:后端邏輯處理部分、模型數(shù)據(jù)迭代清洗入庫(kù)部分以及深度學(xué)習(xí)短文本分類部分。其中后端邏輯處理部分負(fù)責(zé)請(qǐng)求接入及結(jié)果回送、定時(shí)消防報(bào)警信息推送以及深度學(xué)習(xí)模塊調(diào)啟。模型數(shù)據(jù)迭代清洗入庫(kù)部分負(fù)責(zé)定時(shí)從給定已標(biāo)注的業(yè)務(wù)數(shù)據(jù)庫(kù)中抽取和清洗數(shù)據(jù),注入已有訓(xùn)練及測(cè)試集,重新訓(xùn)練模型。深度學(xué)習(xí)短文本分類部分負(fù)責(zé)定義并訓(xùn)練模型,該部分為該系統(tǒng)的核心部分。各部分的關(guān)系如圖2所示。
圖2 總體設(shè)計(jì)中各模塊之間的關(guān)系
該部分向外分別提供請(qǐng)求接入及結(jié)果回送與定時(shí)消防報(bào)警信息推送兩個(gè)功能支撐。監(jiān)聽(tīng)給定端口,一旦有請(qǐng)求介入,該部分引擎將先把信息從以json形式表現(xiàn)的請(qǐng)求參數(shù)中的信息提取出來(lái),做一部分信息過(guò)濾工作(實(shí)踐證明現(xiàn)實(shí)網(wǎng)絡(luò)接入數(shù)據(jù)有大量罵人語(yǔ)句等無(wú)用信息,該部分將對(duì)此類信息進(jìn)行過(guò)濾),若信息通過(guò)過(guò)濾后,切換系統(tǒng)態(tài)調(diào)啟python 進(jìn)程,進(jìn)行預(yù)測(cè)并返回預(yù)測(cè)結(jié)果。除了提供以上請(qǐng)求接入及結(jié)果回送功能以外,本部分還提供定時(shí)消防報(bào)警信息推送功能的支持。通過(guò)@Scheduled注解配置定時(shí)任務(wù),每次定時(shí)任務(wù)開(kāi)始時(shí)從指定熱點(diǎn)數(shù)據(jù)庫(kù)讀取數(shù)據(jù),若數(shù)據(jù)量不夠則結(jié)束此次定時(shí)任務(wù),等待下一次定時(shí)任務(wù),若數(shù)據(jù)量足夠,則切換系統(tǒng)態(tài)調(diào)啟python 進(jìn)程,對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè),并以json 數(shù)據(jù)格式為載體推送至遠(yuǎn)端服務(wù)器。具體處理流程如圖3所示。
圖3 后端邏輯處理部分詳細(xì)設(shè)計(jì)
該部分通過(guò)@Scheduled注解配置定時(shí)任務(wù),從給定已標(biāo)注的業(yè)務(wù)數(shù)據(jù)庫(kù)中抽取和清洗數(shù)據(jù),注入已有訓(xùn)練及測(cè)試集,重新訓(xùn)練模型。具體處理流程如圖4所示。
圖4 模型數(shù)據(jù)迭代清洗入庫(kù)部分詳細(xì)設(shè)計(jì)
對(duì)于后端邏輯處理部分與模型數(shù)據(jù)迭代清洗入庫(kù)部分。作者使用調(diào)試、postman工具測(cè)試、日志追蹤等形式進(jìn)行了功能驗(yàn)證,功能完好,可以使用,典型測(cè)試場(chǎng)景如圖5。
圖5 測(cè)試典型場(chǎng)景
對(duì)于核心功能深度學(xué)習(xí)短文本分類部分,作者使用了上海立信會(huì)計(jì)金融學(xué)院所提供的防災(zāi)減災(zāi)數(shù)據(jù)集再加上作者自己在互聯(lián)網(wǎng)上爬取、標(biāo)注的數(shù)據(jù)以及業(yè)務(wù)數(shù)據(jù),共同構(gòu)建了該分類數(shù)據(jù)集。該數(shù)據(jù)集以中文為主,共計(jì)16800 條數(shù)據(jù)。在這16800條數(shù)據(jù)中,筆者利用sklearn工具以6∶1∶1的比例進(jìn)行分割,選取12600 條數(shù)據(jù)用于訓(xùn)練,2100 條數(shù)據(jù)用于驗(yàn)證,2100條數(shù)據(jù)進(jìn)行測(cè)試。
測(cè)試模型所依賴的語(yǔ)言為python 語(yǔ)言。實(shí)驗(yàn)各硬軟件環(huán)境數(shù)據(jù)如表2所示。
表2 實(shí)驗(yàn)硬軟件環(huán)境
將本文所設(shè)計(jì)的短文本分類系統(tǒng)與工業(yè)界常用算法RoBERTa+BiLSTM,以及傳統(tǒng)算法RNN 相比較。從模型預(yù)測(cè)能力、模型工作效率兩個(gè)方向上對(duì)模型進(jìn)行評(píng)價(jià)。以準(zhǔn)確率(分類正確樣本占總樣本比例)、識(shí)別效率(模型處理10 個(gè)短文本所需時(shí)間)作為評(píng)價(jià)標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果如表3、圖6所示。
圖6 實(shí)驗(yàn)結(jié)果條形圖
表3 實(shí)驗(yàn)結(jié)果表
從以上圖表可以看出,在準(zhǔn)確率上,本文所提出的模型較工業(yè)界常用模型(RoBERTa+BiLSTM)有所提升,較經(jīng)典RNN 模型有大幅提升,但在模型時(shí)間效率上不如經(jīng)典RNN 模型,但與工業(yè)界常用模型在同一水平上。
本文設(shè)計(jì)研究了一種基于RoBERTa 和RCNN的互聯(lián)網(wǎng)文字消防接警輔助系統(tǒng),提出了一套后端邏輯設(shè)計(jì)方案及深度學(xué)習(xí)短文本分類模型。經(jīng)實(shí)驗(yàn)證明,后端邏輯設(shè)計(jì)方案切實(shí)可用,深度學(xué)習(xí)短文本分類方案較工業(yè)界常用方案及經(jīng)典方案在準(zhǔn)確率上進(jìn)行了提升,并保證了不錯(cuò)的時(shí)間效率。在新時(shí)代、新形勢(shì)下的人民消防工作下,該設(shè)計(jì)及系統(tǒng)具有相當(dāng)?shù)膶?shí)戰(zhàn)意義,有助于節(jié)約國(guó)家財(cái)務(wù)成本,有助于保障人民群眾的生命健康權(quán)。