張 立 范馨月
(貴州大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院 貴州 貴陽 550025)
受世界毒情形勢(shì)影響,我國(guó)毒情形勢(shì)嚴(yán)峻復(fù)雜,處于毒品問題蔓延期、毒品犯罪高發(fā)期和毒品治理攻堅(jiān)期。我國(guó)現(xiàn)有吸毒人員300.6萬名,且每年以10%的速度增長(zhǎng),合成毒品泛濫、新增吸毒人員上升、吸毒人員從事違法犯罪活動(dòng)和肇事肇禍等問題日益突出。如何控制吸毒人數(shù),從需求側(cè)來對(duì)毒品問題進(jìn)行源頭治理,是緝毒工作不可回避的問題。目前用得最多的刑偵手段,是基于涉毒人員審問、線人提供的線索、通話記錄和涉毒人員軌跡特征等對(duì)潛在涉毒人員進(jìn)行跟蹤和控制。
近年來,公安禁毒部門建立禁毒信息系統(tǒng),集成了抓獲的吸毒人員基本信息、犯罪信息,以及吸毒人員手機(jī)采集信息包括短信、微信、QQ等手機(jī)App即時(shí)聊天工具等文本信息。吸毒人員聊天文本數(shù)據(jù)包含海量的長(zhǎng)文本和短文本,具有實(shí)時(shí)、涵蓋信息量廣等特點(diǎn),為公安搜集犯罪涉毒證據(jù)提供了有效的背景支撐。但毒圈有特定的“毒語”,不管是販毒人還是買毒人,都通過這個(gè)“語言體系”進(jìn)行交流,以此來判斷對(duì)方是否為“同道中人”,躲避公安機(jī)關(guān)的追捕,而且這些語言非常隱晦,極大增加了公安機(jī)關(guān)的查證和追捕難度,需要禁毒部門人工仔細(xì)瀏覽吸毒人員聊天文本并緊密聯(lián)系上下文語境才能發(fā)現(xiàn)涉毒敏感信息。本文首次采用BERT模型對(duì)吸毒人員聊天文本進(jìn)行挖掘,與貝葉斯預(yù)測(cè)模型的各評(píng)價(jià)指標(biāo)值相比,BERT模型針對(duì)處理暗號(hào)多變的緝毒偵查文本而言效果顯著。由于BERT模型有較好的上下文語境的學(xué)習(xí)能力,挖掘不在管理系統(tǒng)中的潛在涉毒人員,對(duì)禁毒部門的情報(bào)工作提供有力的數(shù)據(jù)支撐,可有效推廣到禁毒警務(wù)工作中去,幫助相關(guān)部門快速精準(zhǔn)地挖掘出海量復(fù)雜網(wǎng)絡(luò)中涉毒人員并及時(shí)追蹤調(diào)查。
自然語言處理(NLP)中詞語表示有非神經(jīng)網(wǎng)絡(luò)學(xué)領(lǐng)域[1-2]和神經(jīng)網(wǎng)絡(luò)領(lǐng)域[3-5]方法,通過預(yù)訓(xùn)練的詞嵌入是現(xiàn)代NLP系統(tǒng)的重要方法。早期人們考慮1-of-N Encoding法,每個(gè)單詞對(duì)應(yīng)一個(gè)向量,但無法捕捉語義信息。Word class法將具有相同屬性的詞化為一類,卻不能完全包含詞之間所有的關(guān)聯(lián)。Word Embedding法則利用詞之間的距離長(zhǎng)短表示關(guān)系強(qiáng)弱,詞嵌入針對(duì)從頭開始學(xué)習(xí)的方法改進(jìn)[6]且可推廣到了更粗的粒度:句子嵌入[7-8]或段落嵌入[9],之后的位置編碼(Position Embedding)提供其捕捉順序序列的能力。ELMo模型[10]對(duì)傳統(tǒng)詞嵌入研究進(jìn)行了多維度概括,通過提取上下文敏感特征,很大程度上解決了傳統(tǒng)LSTM模型單向?qū)W習(xí)的問題。此外,Salton團(tuán)隊(duì)[11]提出向量空間模型,將文本文件表示為標(biāo)識(shí)符(比如索引)向量的代數(shù)模型,但是語義敏感度不佳。傳統(tǒng)的分類算法利用特征工程和特征選擇來從原始文本中提取特征,比如決策樹、樸素貝葉斯和詞頻-逆文本頻率(TF-IDF)等,更加注重分類器的模型自動(dòng)學(xué)習(xí)挖掘和生成能力?;谏疃染矸e神經(jīng)網(wǎng)絡(luò)的文本語義特征學(xué)習(xí)方法,降低對(duì)文本數(shù)據(jù)預(yù)處理的要求,避免復(fù)雜的特征工程,改善了特征抽取過程中的誤差累積問題。2018年由Google提出基于Transformer雙向編碼器表征的BERT模型[12],從語義層面挖掘文本中詞之間潛在的語義關(guān)系,跨越句子表層句法結(jié)構(gòu)的束縛,直接表征文本的寓意,在英文文本分類中取得了不錯(cuò)的效果。
實(shí)驗(yàn)數(shù)據(jù)來源于吸毒信息采集平臺(tái)的吸毒人員聊天文本數(shù)據(jù),包括微信、短信和QQ等即時(shí)聊天工具。每條文本記錄均有唯一對(duì)應(yīng)編號(hào)BJ,可即時(shí)跟蹤對(duì)話者ID信息,時(shí)間跨度為2018年11月至2019年11月,共30萬條原始數(shù)據(jù)。從原始數(shù)據(jù)中剔除廣告信息、單個(gè)表情信息等無效數(shù)據(jù)后,隨機(jī)抽取10 000條文本數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集,主要包含日常聊天、買賣毒品等信息。
做劃分時(shí),每條文本數(shù)據(jù)均只屬于一個(gè)類別,不存在多次劃分的情況。將劃分后的數(shù)據(jù)集隨機(jī)抽取70%的數(shù)據(jù)作為訓(xùn)練集,20%數(shù)據(jù)作為驗(yàn)證集,10%數(shù)據(jù)作為測(cè)試集。其中:訓(xùn)練集包含7 000條文本數(shù)據(jù);驗(yàn)證集包含2 000條文本數(shù)據(jù);測(cè)試集包含1 000條文本數(shù)據(jù)。
對(duì)于漢語的自然語言處理是非常困難的,特別是在實(shí)際聊天文本中出現(xiàn)的方言尤為困難。吸毒信息采集平臺(tái)的吸毒人員聊天文本數(shù)據(jù),與規(guī)范的中文書面語不同,具有方言、同音和諧音等口語問題,采用傳統(tǒng)的特征提取方法進(jìn)行文本分類存在困難[13-14]。比如:
(1) 你今天克不克,整點(diǎn)嘎嘎和子子來吸。
(2) 好餓呀,我們克吃點(diǎn)嘎嘎。
利用實(shí)驗(yàn)省份吸毒信息采集平臺(tái)的吸毒人員聊天文本數(shù)據(jù),通過刪除空白文本數(shù)據(jù)、表情數(shù)據(jù)和廣告文本數(shù)據(jù),得到有效無標(biāo)簽數(shù)據(jù)10 000條。在10 000條文本數(shù)據(jù)中,人工標(biāo)記吸毒人員ID與其他人的聊天文本涉毒標(biāo)簽記為1,不涉及毒品交易文本標(biāo)簽記為0。
利用貝葉斯分類模型預(yù)訓(xùn)練標(biāo)簽文本數(shù)據(jù),針對(duì)確定特征屬性fj所獲取的訓(xùn)練樣本,先對(duì)不同類別計(jì)算概率值p(classi),再對(duì)每個(gè)屬性特征fj計(jì)算所有劃分情況的條件概率p(fj|classi),得每個(gè)判別類別概率為:
(1)
利用傳統(tǒng)的詞向量模型,采用TF-IDF及貝葉斯分類可以達(dá)到一定的效果,但對(duì)于樣例(1)(2)中同樣的詞寓意卻無法準(zhǔn)確識(shí)別,“嘎嘎”在樣例(1)中是某毒品的暗語詞,在樣例(2)中是當(dāng)?shù)胤窖浴叭狻钡囊馑?,即不同語境下相同的字或詞有多種涵義。
一般經(jīng)典的語言模型是按照從左到右的順序計(jì)算下一個(gè)詞出現(xiàn)的概率,如式(2)所示。而BERT是基于Transformer的雙向編碼器表征,即BERT模型的基礎(chǔ)是Transformer[15],旨在聯(lián)合調(diào)節(jié)所有層中的上下文來預(yù)訓(xùn)練深度雙向表示,給出額外的輸出層后對(duì)模型進(jìn)行微調(diào),就能為多個(gè)任務(wù)(回答問題和情感分析等)服務(wù)。
針對(duì)涉毒人員聊天文本此類特殊文本數(shù)據(jù)而言,BERT模型的雙向關(guān)注為特殊文本增添了語境的學(xué)習(xí)能力,即在處理同一個(gè)詞語時(shí),基于這個(gè)詞同時(shí)關(guān)注該詞前后的信息,獲取上下文的語境,如圖1所示。
圖1 BERT模型結(jié)構(gòu)
將打好標(biāo)簽的緝毒文本數(shù)據(jù)的詞embedding、位置embedding和類型embedding三個(gè)embedding的拼接作為BERT模型的輸入,在已預(yù)訓(xùn)練好的BERT中文模型上進(jìn)行微調(diào),使其帶入具體涉毒語境訓(xùn)練上下文關(guān)系,理解敏感詞一詞多義情況。BERT模型流程如圖2所示。
圖2 BERT模型流程
BERT模型來自Transformers模型的Encoder部分,在Transformer的Encoder中,數(shù)據(jù)首先進(jìn)入“self-attention”模塊(如圖3所示),為每條輸入文本的第i(i=1,2,…,N-1,N)個(gè)字學(xué)習(xí)其權(quán)重,得到特征向量Attention(Qi,K,V):
Step1將輸入的字轉(zhuǎn)換成嵌入向量(word embedding)。
Step2借助嵌入向量(word embedding)乘上對(duì)應(yīng)的權(quán)值矩陣得到Qi、Ki、Vi三個(gè)向量。
Step5為確保將每一個(gè)元素的范圍壓縮至(0,1)之間,對(duì)si做Softmax激活函數(shù),點(diǎn)乘Vi,得到加權(quán)后每個(gè)輸入向量的分?jǐn)?shù)Vi。
Step6將所有的Vi相加后最終輸出第i個(gè)字的特征向量Zi。
圖3 “self-attention”模塊結(jié)構(gòu)
得到字的特征向量后,將Zi作為Feed Forward Neural Network模塊的輸入向量,使用線性整流激活函數(shù)進(jìn)行輸出:
式中:W為學(xué)習(xí)的參數(shù)向量;b為偏差向量。
在實(shí)際應(yīng)用過程中,為了模型去關(guān)注多個(gè)不同方面的信息,Transformer運(yùn)用了多個(gè)“self-attention”,等價(jià)于h個(gè)不同的self-attention的集成:
MultiHead(Q,K,V)=[head1,head2,…,headh]×W0
(5)
由于Transformers模型的網(wǎng)絡(luò)結(jié)構(gòu)沒有RNN或者LSTM,不具有捕捉順序序列的能力,為了解決這個(gè)問題,在編碼詞向量時(shí)引入位置向量(Position Embedding):
PE(pos,2i)=sin(pos/10 0002i/dmodel)
(7)
PE(pos,2i+1)=cos(pos/10 0002i/dmodel)
(8)
式中:dmodel為位置向量的長(zhǎng)度;i表示字的維度;pos表示字的位置,字在偶數(shù)位置時(shí),采用正弦函數(shù)進(jìn)行計(jì)算,字在奇數(shù)位置時(shí),采用余弦函數(shù)進(jìn)行計(jì)算,而且根據(jù)正余弦加減定理,在k+p位置向量可以表示為位置k的特征向量的線性變化,使模型能學(xué)習(xí)到詞之間相對(duì)位置關(guān)系。
為了訓(xùn)練模型深度雙向?qū)W習(xí)上下文語境的能力,需同時(shí)進(jìn)行兩種訓(xùn)練:遮蔽語言模型(masked language model)和下一句預(yù)測(cè)(Next Sentence Prediction)。現(xiàn)列舉四條較有代表性的文本細(xì)致描述:
(1) 好多警察啊,我不敢再等你哦,60一顆你看要不要,賞到東西了你不會(huì)覺得不值。
(2) 感冒了,注意多喝水,先吃顆感冒藥。
(3) 昨晚我和他談了下,他說有人說我有紅酒,我說那個(gè),他說是你說的,那天你來我拿給你吃的,所以昨天他才叫你來找我要幾個(gè)紅酒。
(4) 來吃飯,我有個(gè)朋友帶了瓶紅酒。
主要錯(cuò)誤分類存在兩種情況,一種是對(duì)“顆”字非常不敏感,直接將它判定為涉毒文本,另一種是當(dāng)文本含有“紅酒”就判斷為涉毒文本。兩種較為突出的分類錯(cuò)誤均是未對(duì)語境進(jìn)行學(xué)習(xí),現(xiàn)利用BERT訓(xùn)練深度雙向表示的遮蔽語言模型來做這件事情。
有句子“整點(diǎn)嘎嘎和子子來吸”(如圖1所示),現(xiàn)在有15%的概率隨機(jī)屏蔽掉“嘎”這個(gè)字(BERT對(duì)中文是按字劃分的),其中:有80%的概率將“嘎”用[MASK]替換;10%的概率隨機(jī)用“天”替換;10%的概率為原意“嘎”。將“嘎”字對(duì)應(yīng)的embedding輸入到一個(gè)多分類模型中,去預(yù)測(cè)被蓋住的單詞。迫使模型在編碼的時(shí)候不過于依賴當(dāng)前的詞,而是考慮該詞上下文的情況。假設(shè)現(xiàn)在被覆蓋的字被“天”替換,在編碼“天”字時(shí)根據(jù)上文下文的字,應(yīng)該把“天”編碼成“嘎”的語義而不是“天”的語義。
對(duì)于緝毒類別的判斷學(xué)習(xí),BERT模型能雙向?qū)W習(xí)上下文語境關(guān)系,可較好處理一詞多義的情況。但針對(duì)毒圈特定的“毒語”(例如“整點(diǎn)嘎嘎和子子來吸”),BERT模型并不能自己理解“嘎嘎”“子子”是毒品敏感詞,不知道其中具體的含義,考慮在文字編碼中添加敏感詞的影響,重新學(xué)習(xí)輸出任務(wù)具體場(chǎng)景中字的向量表示,可通過增加任務(wù)實(shí)現(xiàn):根據(jù)自建敏感詞庫(kù),提取輸入文本中的敏感詞,將敏感詞學(xué)習(xí)融入BERT預(yù)訓(xùn)練模型,建立BERT-sen預(yù)訓(xùn)練模型。
圖4 BERT-sen模型結(jié)構(gòu)
GELU(x)=xP(X≤x)=xΦ(x)
(11)
圖4中,以“整點(diǎn)嘎嘎和子子來吸”為例,“整點(diǎn)嘎嘎和子子來吸”作為輸入序列,“整”“嘎”“子”“吸”作為敏感字,將輸入序列和敏感字分別放入“Multi-head Self-Attention”層學(xué)習(xí)輸出特征向量(實(shí)線輸出)和敏感向量(虛線輸出);隨后特征向量和敏感向量作為“敏感信息融合層”的輸入,利用字的位置編碼關(guān)系,將含有敏感字的特征向量融入敏感向量信息后輸出輸入序列的融合向量;為保證語境學(xué)習(xí)的時(shí)效性,將融合向量進(jìn)入“Multi-head Self-Attention”層繼續(xù)學(xué)習(xí)上下文結(jié)構(gòu)關(guān)系,得到輸入序列最終向量表示。
使用Python3.7作為實(shí)驗(yàn)工具,將緝毒文本數(shù)據(jù)的7 000條訓(xùn)練集、2 000條驗(yàn)證集、1 000條測(cè)試集放入貝葉斯、BERT和BERT-sen三類模型中進(jìn)行檢驗(yàn)對(duì)比,如表1所示。在類別1(涉毒)測(cè)試文本中,貝葉斯模型的準(zhǔn)確率為0.52,BERT模型的準(zhǔn)確率為0.81(提高了0.29),BERT模型在學(xué)習(xí)類別1(涉毒)文本數(shù)據(jù)時(shí),比貝葉斯模型更加敏感有效;而通過添加敏感詞預(yù)訓(xùn)練學(xué)習(xí)后的BERT-sen模型,學(xué)習(xí)判斷類別1(涉毒)文本數(shù)據(jù)的準(zhǔn)確率較BERT模型有效提高了0.01。BERT模型在緝毒文本分類任務(wù)上總體優(yōu)于貝葉斯模型,且添加敏感詞預(yù)訓(xùn)練后的模型通過更多專業(yè)詞匯學(xué)習(xí)后加深對(duì)緝毒數(shù)據(jù)的認(rèn)識(shí),有效提高了學(xué)習(xí)判別能力。
表1 緝毒文本數(shù)據(jù)實(shí)驗(yàn)結(jié)果
與BERT訓(xùn)練深度雙向表示的遮蔽語言模型有關(guān),當(dāng)模型有機(jī)會(huì)學(xué)習(xí)到上下文語境時(shí),部分敏感詞對(duì)模型分類的影響將會(huì)增加,現(xiàn)從涉毒文本數(shù)據(jù)分類錯(cuò)誤中提取部分內(nèi)容進(jìn)行分析。如表2所示,列舉四個(gè)樣例,樣例4內(nèi)容中含有“冰毒”,但是貝葉斯模型未能成功檢測(cè)到它;樣例1-樣例3內(nèi)容中雖然未含有毒品字樣,但結(jié)合整段文本分析,可以清晰地認(rèn)定其為涉毒文本。
表2 涉毒文本部分錯(cuò)誤分類顯示
續(xù)表2
鑒于緝毒文本數(shù)據(jù)的特殊性,當(dāng)把本屬于涉毒文本的數(shù)據(jù)劃分為非涉毒數(shù)據(jù)時(shí),意味著會(huì)遺漏重要的犯罪線索,不能及時(shí)將犯罪人員繩之以法甚至使其繼續(xù)逍遙法外,此類錯(cuò)誤成本較高,對(duì)社會(huì)影響極大??紤]選取可以學(xué)習(xí)句子上下文語境和深層次語義特征的BERT模型,并有效增加敏感詞預(yù)訓(xùn)練的融合,能較好地避免此類錯(cuò)誤,針對(duì)表2中同類型的文本均較好完成分類工作。
由于吸毒人員聊天文本數(shù)據(jù)的敏感性和分類工作要求的精準(zhǔn)性,需尋求能學(xué)習(xí)上下文語境的分類模型,作為緝毒文本分類工作的有力工具。本文建立了增加敏感詞預(yù)訓(xùn)練的BERT-sen分類模型,實(shí)驗(yàn)數(shù)據(jù)表明,BERT-sen模型能更精準(zhǔn)地對(duì)潛在涉毒人員進(jìn)行挖掘,其主要原因在于其能更好地學(xué)習(xí)敏感詞及其上下文語境。因此,針對(duì)緝毒偵查文本數(shù)據(jù)尋找證據(jù)的這項(xiàng)工作,BERT-sen模型可以作為一個(gè)有力的偵查工具,為相關(guān)禁毒部門管控和打擊涉毒犯罪嫌疑人提供了強(qiáng)有力的數(shù)據(jù)支撐。本文的研究基于禁毒部門的實(shí)際需求,可以有針對(duì)性地推廣到禁毒警務(wù)工作中去,高效地挖掘潛在涉毒人員,可以在本地吸毒人員管控工作中提供決策輔助。
然而模型深受訓(xùn)練數(shù)據(jù)集的影響,數(shù)據(jù)集可以直接影響訓(xùn)練文本中的具體語境情況,因此在挑選數(shù)據(jù)工作的花費(fèi)較昂貴。在今后的工作中,隨著大數(shù)據(jù)產(chǎn)業(yè)的不斷發(fā)展,也將繼續(xù)優(yōu)化文本數(shù)據(jù)分類模型在緝毒文本分析中的應(yīng)用,力求更加快速、精準(zhǔn)地鎖定犯罪者,為后續(xù)工作實(shí)施提供有效證據(jù)。