阿音嘎 顧悅 公安部第一研究所
近年來,我國(guó)互聯(lián)網(wǎng)技術(shù)與行業(yè)飛速發(fā)展,在方便人民群眾生產(chǎn)生活的同時(shí),也出現(xiàn)了各種新的網(wǎng)絡(luò)犯罪形態(tài)和生態(tài)。2017年至2021年,網(wǎng)絡(luò)犯罪案件數(shù)量呈逐年上升趨勢(shì),2018年單年網(wǎng)絡(luò)犯罪案件數(shù)量增幅甚至達(dá)到了50.91%。在網(wǎng)絡(luò)犯罪案件中,金融詐騙類、電子色情服務(wù)類、網(wǎng)上非法交易類案件數(shù)量占比較大,這些網(wǎng)絡(luò)犯罪案件普遍存在文本交互信息量大、社交媒體類媒介依賴度高、犯罪信息集中度高等特點(diǎn),因此在辦理此類案件過程中,自然語言處理技術(shù)得到了廣泛應(yīng)用。文本分類方法是自然語言處理技術(shù)的主要應(yīng)用方法之一,各類文本分類方法已經(jīng)廣泛應(yīng)用于公安信息化行業(yè),有效提高了公安隊(duì)伍對(duì)網(wǎng)絡(luò)犯罪的執(zhí)法效率[1]。
中文分詞方法是文本分類方法的重要組成部分。常規(guī)的中文分詞方法主要包括基于詞典的分類方法[2,3]、基于統(tǒng)計(jì)的分詞方法[4]和基于構(gòu)詞的分詞方法[5]。上述方法在中文分詞上應(yīng)用較為廣泛,但是上述方法主要根據(jù)詞典規(guī)則、統(tǒng)計(jì)特征和局部語義特征進(jìn)行分詞處理,并未考慮長(zhǎng)序列文本中詞與詞之間的語義關(guān)系特征,導(dǎo)致這些方法在復(fù)雜文本的分詞效果上表現(xiàn)一般。中文分詞任務(wù)本質(zhì)上是一個(gè)序列化建模任務(wù),近年來,隨著機(jī)器學(xué)習(xí)的發(fā)展,利用機(jī)器學(xué)習(xí)算法處理序列化建模任務(wù)引起了廣泛研究,在機(jī)器學(xué)習(xí)算法中,循環(huán)遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是處理序列化建模任務(wù)的一種有效算法[6]。例如,F(xiàn)an等人提出了基于多級(jí)上下文的RNN算法,利用RNN的序列處理特性,有效解決了圖像全局序列的識(shí)別問題[7];Nallapati等人將基于注意力機(jī)制的RNN應(yīng)用于序列化文本內(nèi)容翻譯過程中,有效提升了文本翻譯質(zhì)量[8]。然而,由于RNN算法使用鏈?zhǔn)角髮?dǎo)法則求取導(dǎo)數(shù),在處理較長(zhǎng)序列時(shí)會(huì)出現(xiàn)梯度爆炸問題,導(dǎo)致長(zhǎng)距離特征在RNN網(wǎng)絡(luò)中的作用較小,影響了長(zhǎng)序列任務(wù)處理效果[9]。對(duì)此,Hochreiter提出了LSTM算法,利用遺忘門、輸入門和輸出門作為調(diào)節(jié)單元來調(diào)整長(zhǎng)序列對(duì)RNN的影響程度,從而有效解決了RNN的梯度爆炸問題,并在文本分詞領(lǐng)域和文本分類都有著一定的應(yīng)用[10]。例如,Alharbi等人在LSTM基礎(chǔ)上,提出了組長(zhǎng)短期記憶網(wǎng)絡(luò)算法,并將算法應(yīng)用于亞馬遜手機(jī)評(píng)論情感狀態(tài)識(shí)別,取得了較好的效果[11];任智慧等人將LSTM算法應(yīng)用于中文分詞過程中,取得了較好的分詞效果[12]。在2014年,Chung等人在LSTM基礎(chǔ)上提出了GRU網(wǎng)絡(luò),在性能與LSTM持平的基礎(chǔ)上,有效簡(jiǎn)化了計(jì)算負(fù)擔(dān),在分詞和分類任務(wù)上得到了肯定[13,14]。LSTM算法和GRU算法在分詞和分類任務(wù)上都取得了不錯(cuò)的效果。然而LSTM和GRU在中文分詞過程中仍然需要依賴既有訓(xùn)練語料,隨著網(wǎng)絡(luò)的發(fā)展,大量網(wǎng)絡(luò)新詞的出現(xiàn),訓(xùn)練語料更新不及時(shí),導(dǎo)致上述算法在處理含有新型詞匯復(fù)雜文本時(shí)仍然存在分詞失敗的可能性,進(jìn)而影響分類任務(wù)效率。
為解決新詞較多、訓(xùn)練語料更新不及時(shí)導(dǎo)致的文本分類任務(wù)執(zhí)行效率較低問題,文中設(shè)計(jì)了一種基于GRUGlove分詞算法的文本分類方法。首先,在分詞階段,該方法利用GRU算法對(duì)文本進(jìn)行初始分詞,并利用Glove模型對(duì)分詞結(jié)果進(jìn)行補(bǔ)充修正,從而獲得分詞結(jié)果;其次,在分類階段,使用GRU算法作為分類器算法對(duì)文本進(jìn)行分類;最后,將該分類算法應(yīng)用于中文分詞任務(wù)和文本分類任務(wù),來驗(yàn)證算法的有效性。結(jié)果表明,該算法能夠有效識(shí)別到含有新型詞匯的疑似網(wǎng)絡(luò)犯罪文本信息,并能夠?yàn)楣膊块T打擊網(wǎng)絡(luò)犯罪工作提供有效幫助。
在利用自然語言處理技術(shù)辦理一些網(wǎng)絡(luò)犯罪案件的過程中,文本分類方法起到了關(guān)鍵作用。文本分類方法會(huì)將案情資料中包含的大量文本信息,按照公安部門制定的需求進(jìn)行篩選和分類處理,能夠一定程度上縮短公安民警梳理案情資料的時(shí)間,提高案件辦理效率。
常規(guī)的文本分類方法包含文本預(yù)處理、特征提取、文本表示和類別劃分四個(gè)任務(wù)。文本預(yù)處理任務(wù)是文本分類方法中的關(guān)鍵任務(wù)之一,該任務(wù)主要目的是去除文本中不必要的停用詞,并將文本信息進(jìn)行中文分詞和詞性標(biāo)注,為后續(xù)任務(wù)提供精確語料。中文分詞是文本預(yù)處理任務(wù)的關(guān)鍵階段之一,目的是將給定文本信息的中文字符串,按照指定算法,分割為一個(gè)個(gè)具有語言意義的單位。中文分詞的數(shù)學(xué)描述如下:在給定一組文本序列S={w1,w2,…,wm} 中,尋找一個(gè)標(biāo)注序列T={t1,t2, …,tn}使得概率p(t1,t2,…,tn w1,w2,…,wm)最大,T中值取自{B,E,M,S},B表示詞首(Begin),E表示詞尾(End),M表示詞中(Middle),S表示單字成詞(Single)。一個(gè)基本的分詞示例如圖1所示。
圖1 中文分詞過程示例
隨著案情信息形式多樣化、安全信息文本復(fù)雜化和疑似犯罪詞匯新穎化,傳統(tǒng)的中文分詞方法和基于機(jī)器學(xué)習(xí)算法的中文分詞方法在處理此類案情信息時(shí)存在著未考慮詞之間的語義特征和分詞過程依賴于既有詞庫的問題。因此,需要設(shè)計(jì)一個(gè)新的文本方法,解決上述方法存在的兩個(gè)問題,提高公安部門打擊網(wǎng)絡(luò)犯罪案件的效率。
基于GRU-Glove算法的文本信息分類方法主要包括文本預(yù)處理和文本信息分類兩個(gè)階段。在文本預(yù)處理階段,首先將給定文本劃分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù),并進(jìn)行分詞標(biāo)記和分類標(biāo)記;其次,利用word2vec編碼算法獲取輸入和輸出序列,利用GRU對(duì)序列進(jìn)行分詞訓(xùn)練;最后,利用Glove算法對(duì)GRU分詞結(jié)果進(jìn)行修正,獲得分詞模型。在文本信息分類過程中,將完成分詞的向量序列利用GRU算法來進(jìn)行分類訓(xùn)練,獲得文本分類模型。方法框架如圖2所示。
圖2 基于GRU- -Glove算法的文本信息分類方法示意圖
GRU是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的一個(gè)變體算法。在RNN模型中,神經(jīng)元在某時(shí)刻的輸出在下一時(shí)刻可以直接作用到自身。一個(gè)基本的RNN模型如圖3所示。
圖3 RNN模型
由圖3可以看出,RNN主要包括三個(gè)部分:輸入層、隱含層和輸出層。其中,Xt-1是(t-1)時(shí)刻輸入,Qt-1是(t-1)時(shí)刻輸出,U、V分別為輸入層到隱含層、隱含層到輸出層的權(quán)重值,W是相鄰時(shí)刻信息傳遞的權(quán)重值,St-1是(t-1)時(shí)刻隱含層產(chǎn)生的結(jié)果傳遞給下一時(shí)刻隱含層值的值。
GRU網(wǎng)絡(luò)在RNN的基礎(chǔ)上,引入重置門和更新門兩個(gè)概念,將隱含層神經(jīng)元替換為門控循環(huán)單元,有效解決了RNN在處理長(zhǎng)序列信息時(shí)的梯度消失問題。GRU網(wǎng)絡(luò)的門控循環(huán)單元如圖4所示。
圖4 GRU網(wǎng)絡(luò)結(jié)構(gòu)圖
其中xt和yt為t時(shí)刻隱含層的輸入和輸出,ht-1為(t-1)時(shí)刻的隱含層輸出,rt為重置門,用于決定如何將新的輸入信息和前面的記憶信息相結(jié)合;zt為更新門,用于決定前一時(shí)刻的信息被帶入到當(dāng)前時(shí)間步中的量,更新門的值越大,代表前一時(shí)刻狀態(tài)信息帶入越多;ht為候選隱含層狀態(tài),用于保存t時(shí)刻的記憶量,用于下一時(shí)刻計(jì)算。
給定一組文本信息T,將其劃分為訓(xùn)練數(shù)據(jù)T1和測(cè)試數(shù)據(jù)T2,并做好分詞標(biāo)記和分類標(biāo)記。利用word2vec編碼方法將T1的原始數(shù)據(jù)和標(biāo)記數(shù)據(jù)分別進(jìn)行向量化表達(dá),獲得輸入序列X={x1,x2,…,xn}和輸出序列Y={y1,y2,…,yn}。將X和Y作為GRU的輸入序列和輸出序列來訓(xùn)練GRU,訓(xùn)練過程如圖5所示。
圖5 GRU訓(xùn)練過程
輸入序列X進(jìn)入GRU網(wǎng)絡(luò)后,計(jì)算重置門rt和更新門zt的值:
其中Xt為t時(shí)刻輸入的文本向量,Ur、Uz為輸入到更新門和重置門的權(quán)重值,Wr、Wz為上一時(shí)刻記憶到更新門和重置門的權(quán)重值,σ代表sigmoid函數(shù),St-1為(t-1)時(shí)刻的隱含層輸出。同時(shí),計(jì)算候選隱含層狀態(tài)值ht:
Wh為 輸入到激活函數(shù)tanh的權(quán)重值,Uh為整合上一時(shí)刻信息到tanh的權(quán)重值。t時(shí)刻的隱含層輸出St為:
從而輸出層輸出Yt為:
其中V為隱含層輸入到最終輸出值的權(quán)重值。
前向計(jì)算完成之后,利用BP算法對(duì)參數(shù)Wr、Wz、Ur、Uz、Wh、Uh、V進(jìn)行修正。重復(fù)上述迭代過程至訓(xùn)練結(jié)束,獲得訓(xùn)練好的GRU分詞模型。
利用GRU進(jìn)行初步分詞之后,采用Glove模型來修正分詞結(jié)果。文中對(duì)原始Glove模型進(jìn)行了修改:針對(duì)文本中的詞向量Xi和Xj,構(gòu)建共現(xiàn)矩陣Z={Z1,2,Z1,3,…,Zi,j},其中Zi,j為文本Xi和Xj在同一單詞序列窗口中出現(xiàn)的次數(shù),文本Xi和Xj的共現(xiàn)函數(shù)F(Xi, Xj)為:
其中Ωt為t時(shí)刻的文本詞集,f(Zi,j)為權(quán)重函數(shù),定義為:
其中Zmax為最大詞頻閾值,目的是防止過高出現(xiàn)詞頻對(duì)于一般出現(xiàn)詞頻的影響,文中取當(dāng)前分詞結(jié)果的單詞數(shù)量作為Zmax的值。最終,給出新詞的組合判定依據(jù):
其中J(Xi,Xj)為新詞判定狀態(tài),1代表XiXj為新詞,0代表XiX j不成詞,δ為判定閾值。重復(fù)上述過程直至所有J(Xi,Xj)值為0,獲得最終的分詞結(jié)果。
通過上述過程獲得預(yù)處理分詞結(jié)果后,利用word2vec對(duì)分詞結(jié)果中的詞匯進(jìn)行向量化表達(dá),并利用GRU網(wǎng)絡(luò)對(duì)分類標(biāo)記數(shù)據(jù)進(jìn)行訓(xùn)練。前向計(jì)算過程如下:
重置門狀態(tài):
前向計(jì)算完成之后,利用BP算法對(duì)參數(shù)Wr、Wz、Ur、Uz、Wh、Uh、V進(jìn)行修正。重復(fù)上述迭代過程至訓(xùn)練結(jié)束,獲得訓(xùn)練好的GRU分類模型。
為充分驗(yàn)證GRU-Glove算法的有效性,文中分別進(jìn)行了分詞有效性驗(yàn)證實(shí)驗(yàn)和分類有效性驗(yàn)證實(shí)驗(yàn)。
1. 評(píng)價(jià)指標(biāo)
為評(píng)價(jià)算法的有效性,采用正確率(P)、召回率(R)作為度量算法有效性的評(píng)估指標(biāo)。文本分詞各指標(biāo)的具體定義分別為:
2. 實(shí)驗(yàn)參數(shù)
實(shí)驗(yàn)數(shù)據(jù)方面,中文分詞實(shí)驗(yàn)采用NLPCC2015中的中文分詞任務(wù)數(shù)據(jù)集[16]作為基準(zhǔn)數(shù)據(jù),將基準(zhǔn)數(shù)據(jù)按訓(xùn)練數(shù)據(jù)(80%)和測(cè)試數(shù)據(jù)(20%)進(jìn)行劃分;訓(xùn)練數(shù)據(jù)仍以基準(zhǔn)數(shù)據(jù)為準(zhǔn),測(cè)試數(shù)據(jù)中添加微博2022年熱搜數(shù)據(jù)部分詞匯。
對(duì)照算法方面,以LSTM、GRU、傳統(tǒng)分詞工具jieba作為對(duì)照算法,參數(shù)如表1所示。其中Glove模型的閾值δ選擇為0.85,選擇依據(jù)為Xu等人在[15]中對(duì)于Glove模型參數(shù)選擇的論證:閾值δ選擇越大,分詞判定結(jié)果嚴(yán)格,新詞不易被判定;閾值δ選擇越小,分詞判定結(jié)果寬松,分詞質(zhì)量降低。
表1 分詞實(shí)驗(yàn)參數(shù)
3. 實(shí)驗(yàn)結(jié)果分析
表2給出了分詞實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。由表2數(shù)據(jù)可以看出,一方面,相比于jieba,LSTM、GRU和GRU-Glove能夠取得不錯(cuò)的分?jǐn)?shù),這是由于他們能夠?qū)﹂L(zhǎng)文本進(jìn)行語義分析,從而正確識(shí)別出詞匯。另一方面,相比于LSTM、jieba和傳統(tǒng)的GRU算法而言,GRU-Glove算法在處理含有新型詞匯的中文分詞中能夠得到一個(gè)較高的分?jǐn)?shù)(正確率87.63%,召回率85.25%)。
表2 分詞實(shí)驗(yàn)指標(biāo)結(jié)果
表3給出了幾個(gè)算法的分詞結(jié)果樣例,本樣例將網(wǎng)絡(luò)犯罪中日漸增多的比特幣交易信息放在了測(cè)試樣本中。在本例中,“比特幣錢包”和“比特幣”都是在測(cè)試數(shù)據(jù)中新添加的數(shù)據(jù),可以看到,GRU-Glove能夠識(shí)別出“比特幣”這一關(guān)鍵詞信息,而LSTM、GRU都未識(shí)別到。這是由于GRU-Glove算法的Glove模型通過遍歷文本,發(fā)現(xiàn)“比特”和“幣”同時(shí)出現(xiàn)頻率較高,因此判定該詞為一個(gè)新詞,并進(jìn)行了分詞處理。
表3 分詞實(shí)驗(yàn)示例
1. 評(píng)價(jià)指標(biāo)
為評(píng)價(jià)基于GRU-Glove算法的分詞方法,對(duì)文本分類任務(wù)影響程度采用正確率(P)來評(píng)估分類任務(wù)的執(zhí)行結(jié)果。文本分類任務(wù)的正確率定義為:
2. 實(shí)驗(yàn)參數(shù)
文本分類實(shí)驗(yàn)采用復(fù)旦大學(xué)中文文本分類語料作為基準(zhǔn)數(shù)據(jù),將基準(zhǔn)數(shù)據(jù)按訓(xùn)練數(shù)據(jù)(80%)和測(cè)試數(shù)據(jù)(20%)進(jìn)行劃分,分類類別包括政治、軍事、社交、法律、經(jīng)濟(jì)、交通共6個(gè)類別;訓(xùn)練數(shù)據(jù)仍以基準(zhǔn)數(shù)據(jù)為準(zhǔn),測(cè)試數(shù)據(jù)中基于微博2022年熱搜數(shù)據(jù)構(gòu)成分類文本對(duì)測(cè)試數(shù)據(jù)進(jìn)行補(bǔ)充。
對(duì)照算法方面,以GRU算法作為基本分類算法,以jieba、原始GRU分詞和GRU-Glove分詞分別作為分詞階段的方法,進(jìn)行實(shí)驗(yàn)。分詞過程的實(shí)驗(yàn)參數(shù)與上一實(shí)驗(yàn)一致,GRU分類器的實(shí)驗(yàn)參數(shù)如表4所示。
表4 分類實(shí)驗(yàn)參數(shù)
3. 實(shí)驗(yàn)結(jié)果分析
表5給出了分類實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果。由表5數(shù)據(jù)可以看出,相比于采用jieba和原始GRU作為分詞器的GRU模型,采用了GRU-Glove作為分詞器的GRU模型能夠在文本分類上獲得更高的正確率。圖6給出了GRU-Glove-GRU模型和LSTM-GRU模型的訓(xùn)練過程,可以看到,相比于LSTMGRU,GRU-Glove-GRU的收斂速度更快。導(dǎo)致收斂速度快的原因是GRU-Glove-GRU采用GRU-Glove算法進(jìn)行分詞,相比于LSTM分詞手段,GRU-Glove可以從待分類文本中獲得更加精確的特征詞,從而加快算法的訓(xùn)練速度。
表5 分類實(shí)驗(yàn)指標(biāo)結(jié)果
圖6 文本分類實(shí)驗(yàn)訓(xùn)練過程
在公安部門利用自然語言處理技術(shù)打擊網(wǎng)絡(luò)犯罪過程中,針對(duì)互聯(lián)網(wǎng)新型詞匯與日俱增現(xiàn)狀、現(xiàn)有文本分類方法在相關(guān)案情信息分類任務(wù)上存在的低效問題,文中提出了一種基于GRU-Glove算法的文本分類方法。對(duì)比已有方法,文中提出方法的主要優(yōu)勢(shì)包括以下幾個(gè)方面:(1)采用GRU網(wǎng)絡(luò)對(duì)含有新詞文本進(jìn)行分詞處理,避免了傳統(tǒng)分詞方法對(duì)詞典的依賴性,提高了分詞質(zhì)量;(2)在GRU網(wǎng)絡(luò)基礎(chǔ)上,引入Glove算法,針對(duì)訓(xùn)練數(shù)據(jù)中不存在的新詞進(jìn)行了有效識(shí)別,進(jìn)一步提高了分詞結(jié)果的準(zhǔn)確性。結(jié)果表明,采用GRU-Glove算法作為分詞手段的文本分類方法,能夠?qū)行屡d詞匯疑似犯罪文本進(jìn)行正確分詞,并快速歸類疑似犯罪文本,提高公安部門打擊網(wǎng)絡(luò)犯罪效率。
雖然該算法在一定程度上提高了文本分類的效率,但是也存在著計(jì)算復(fù)雜度高、穩(wěn)定性亟待驗(yàn)證的問題。在未來研究中,會(huì)進(jìn)一步優(yōu)化算法的計(jì)算過程,論證算法的穩(wěn)定性,并增加其在打擊網(wǎng)絡(luò)犯罪過程中的實(shí)踐應(yīng)用。