張 輝 王靖亞 仝 鑫
·偵查學(xué)研究·
BERT-CharCNN聯(lián)合模型微博作者身份驗(yàn)證研究
張 輝 王靖亞 仝 鑫
針對現(xiàn)有微博作者身份驗(yàn)證方法存在的特征工程復(fù)雜和模型表征能力不足等問題,可采用一種能夠捕捉文本綜合特征的BERT-CharCNN聯(lián)合模型。一方面,利用CharCNN提取微博文本字、詞級的特征;另一方面,利用BERT提取微博文本句子、段落級的特征。對兩個特征進(jìn)行拼接得到最后的特征向量,使得神經(jīng)網(wǎng)絡(luò)能夠較好地進(jìn)行微博作者身份驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該聯(lián)合模型對微博作者身份驗(yàn)證的準(zhǔn)確率優(yōu)于單分支的BERT和CharCNN模型。
微博文本;作者身份驗(yàn)證; CharCNN; BERT
警方如果已經(jīng)掌握了重點(diǎn)人員范圍及其在網(wǎng)上發(fā)表過的言語庫,便可以通過分析每個人寫作的風(fēng)格特點(diǎn)將匿名文本映射到某個重點(diǎn)人員,這個過程稱為作者身份驗(yàn)證。[1]早期作者身份驗(yàn)證以人工特征建模為基礎(chǔ),Yule通過分析英文散文的作者在一篇文章中使用不同長度句子的頻率進(jìn)行作者身份的驗(yàn)證[3];呂英杰通過抽取詞匯、句法、結(jié)構(gòu)、內(nèi)容四個方面的特征,采用樸素貝葉斯算法、決策樹算法C4.5和支撐向量機(jī)SVM三種文本分類算法對作者進(jìn)行驗(yàn)證。[2]神經(jīng)網(wǎng)絡(luò)簡化了特征建模的過程,郭旭、祁瑞華提出了一種以RNN神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的作者身份驗(yàn)證模型,實(shí)現(xiàn)了自動的文本特征提取。[4]由于單一的神經(jīng)網(wǎng)絡(luò)無法有效捕捉微博文本多層面的特征,本文提出BERT-CharCNN聯(lián)合模型,使得神經(jīng)網(wǎng)絡(luò)既能提取微博字、詞級的特征,又能提取句子、段落級的特征并進(jìn)行融合,與現(xiàn)有模型相比,在微博作者身份驗(yàn)證任務(wù)上有更好的表現(xiàn)。
BERT-CharCNN模型的整體結(jié)構(gòu),見圖1。該模型由BERT和CharCNN兩大部分組成,其中BERT用于提取微博文本的句子、段落級特征,CharCNN用于提取微博文本的字、詞級特征。用pytorch的融合函數(shù)cat()對兩種網(wǎng)絡(luò)模型得到的特征向量進(jìn)行拼接處理,得到的融合向量輸入分類器進(jìn)行文本到作者的對應(yīng)。
圖1 BERT-CharCNN聯(lián)合模型
BERT是由Jacob Devlin等人于2018年提出的一種語言模型。[5]它使用兩個無監(jiān)督預(yù)測任務(wù)對模型進(jìn)行訓(xùn)練,其中MASK LM任務(wù)捕捉詞語級別的特征,Next Sentence Prediction任務(wù)捕捉比詞更高級別的句子級別的特征,二者結(jié)合使模型能夠很好地捕捉到微博文本的綜合特征。BERT模型見圖2。
圖2 BERT模型
1.Masked LM。該任務(wù)是為了訓(xùn)練模型深度雙向表示的能力。BERT在訓(xùn)練模型時(shí)隨機(jī)遮蔽一部分詞,然后通過上下文預(yù)測該詞。隨機(jī)屏蔽詞的方式為80%的時(shí)間用標(biāo)記[MASK]替換,10%的時(shí)間用隨機(jī)單詞替換,10%的時(shí)間保持原詞不變。模型在進(jìn)行預(yù)測時(shí)不知道它被要求預(yù)測哪些單詞,也不知道哪些單詞已經(jīng)被隨機(jī)單詞替換,因此它被迫學(xué)習(xí)每個詞的分布式上下文表示,這有利于捕捉文本詞之間的關(guān)系和特征。
2.Next Sentence Prediction。該任務(wù)是為了訓(xùn)練模型判斷句子B是否為句子A的下文,理解句間關(guān)系。在判斷時(shí),如果B為A的下文則輸出“IsNext”,不是的話則輸出“NotNext”,這個關(guān)系保存在特殊標(biāo)記[CLS]中。當(dāng)選擇句子A和B作為訓(xùn)練樣本時(shí),B有50%的可能是A的下一個句子,50%的可能為來自語料庫的隨機(jī)句子,該過程增強(qiáng)了模型對句間關(guān)系的理解,提高了模型捕捉微博文本深層語法特征的能力。
字符級卷積神經(jīng)網(wǎng)絡(luò)(CharCNN)是由Yoon Kim等人在2016年提出的一種字符級的卷積神經(jīng)網(wǎng)絡(luò)。[6]網(wǎng)絡(luò)文本多為口語化表達(dá),傳統(tǒng)的網(wǎng)絡(luò)模型無法提取文本比詞級更小的字級特征,CharCNN網(wǎng)絡(luò)模型可以有效提取文本的字級特征,從而較好地對作者的書寫習(xí)慣進(jìn)行特征提取。CharCNN文本分類模型見圖3。
圖3 CharCNN模型
該模型共有如下6層。
1.輸入層。輸入層將文本轉(zhuǎn)換為向量矩陣。在自然語言處理任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)中,需將文本轉(zhuǎn)換為向量矩陣后輸入到卷積層進(jìn)行特征提取,基于字符級輸入的CharCNN將文本轉(zhuǎn)換為字符向量矩陣。
2.卷積層。卷積層用于文本特征提取。在該層設(shè)定不同的卷積核尺寸調(diào)整特征提取的粒度,通過移動卷積核對輸入層獲得的字符向量矩陣進(jìn)行掃描,提取文本的局部特征信息。
3.池化層。在卷積層提取特征后,池化層對特征再次進(jìn)行提取。最大池化既可以保留文本最顯著的特征,同時(shí)減少參數(shù)量,防止過擬合,提高模型泛化能力。
4.高速網(wǎng)絡(luò)層。為了緩解當(dāng)深度網(wǎng)絡(luò)層數(shù)較多時(shí)梯度爆炸和梯度消失的問題,CharCNN加入了高速網(wǎng)絡(luò)層。普通前饋神經(jīng)網(wǎng)絡(luò)對輸入進(jìn)行非線性化后直接傳遞給下一層,而高速網(wǎng)絡(luò)的每一層都有兩個通道,一個是通過transform gate對輸入進(jìn)行非線性處理,一個是通過carry gate直接傳遞輸入并不處理。
5.LSTM-RNN層。與傳統(tǒng)RNN相比,引入記憶門控(Input gate)、忘記門控(Forget gate)和輸出門控(Output gate)。由拼接向量乘以權(quán)重矩陣之后,再通過一個激活函數(shù)轉(zhuǎn)換成0到1之間的數(shù)值,來作為一種門控狀態(tài)。通過門控結(jié)構(gòu)有效解決了梯度消失的問題。
6.分類層。將經(jīng)過LSTM-RNN層處理得到的向量,連接一個全連接層后輸入到Softmax進(jìn)行分類。在聯(lián)合模型中CharCNN只需要獲得特征向量,無需進(jìn)行分類,在設(shè)計(jì)模型時(shí)去掉該層。
實(shí)驗(yàn)所使用的數(shù)據(jù)集為爬蟲爬取的新浪微博10位博主的公開博文,每位1000篇。為使模型能夠更好地體現(xiàn)驗(yàn)證效果,設(shè)置訓(xùn)練集為作者前四年的微博,驗(yàn)證集和測試集設(shè)置為近一年的微博。設(shè)置訓(xùn)練集、驗(yàn)證集和測試集的比例為7﹕2﹕1,將每條微博按照博主id為其加上相應(yīng)的標(biāo)簽(0-9),具體情況見表1。為了能更好地使文本反映作者的寫作特征,實(shí)驗(yàn)對數(shù)據(jù)集中的標(biāo)點(diǎn)符號、停用詞等均進(jìn)行了保留。
表1 數(shù)據(jù)集
CharCNN使用的預(yù)訓(xùn)練字向量為北京師范大學(xué)和人民大學(xué)的研究者提供的“中文詞向量語料庫”中基于NLPIR中文微博數(shù)據(jù)集訓(xùn)練的字向量。[7]
實(shí)驗(yàn)?zāi)P偷膮?shù)如下:CharCNN的dropout為0.7,學(xué)習(xí)率為1e-3,卷積核的尺寸為(3,4,5),卷積核的數(shù)量為100。BERT的學(xué)習(xí)率為5e-5,batch size為64。CharCNN得到的特征向量維度為batch_size*(256*3),BERT得到的特征向量維度為batch_size*768,經(jīng)過Pytorch中cat()函數(shù)向量拼接后得到的特征向量維度為batch_size*(768+256*3)。
為了體現(xiàn)BERT-CharCNN聯(lián)合模型相較單分支的模型在微博作者身份驗(yàn)證任務(wù)中的優(yōu)越性,在相同的數(shù)據(jù)集上設(shè)置了對比實(shí)驗(yàn),此外還引用了徐曉霖提出的CNN+LSTM模型[8]進(jìn)行比較。實(shí)驗(yàn)步驟如下。
1.文本預(yù)處理。將微博數(shù)據(jù)按照7﹕2﹕1的比例劃分訓(xùn)練集、驗(yàn)證集和測試集。
2.將預(yù)處理好的文本輸入到CharCNN、CNN+LSTM、BERT以及BERT-CharCNN四種模型,對作者身份進(jìn)行驗(yàn)證,并計(jì)算準(zhǔn)確率、召回率和F1值。
實(shí)驗(yàn)結(jié)果如表2所示。由表可知,四種方法的準(zhǔn)確率都達(dá)到了75%以上, CharCNN以及BERT的F1值分別為78.97%和83.10%,而BERT-CharCNN模型的三項(xiàng)實(shí)驗(yàn)評測指標(biāo)均高于兩個單分支模型,證明BERT-CharCNN聯(lián)合模型綜合了兩種模型的優(yōu)點(diǎn),在作者身份驗(yàn)證任務(wù)上的表現(xiàn)更好。另一組對照試驗(yàn)CNN+LSTM模型的F1值為82.78%,相較其在實(shí)驗(yàn)②中的準(zhǔn)確率有所下降,這是因?yàn)樽髡呱矸蒡?yàn)證任務(wù)語料時(shí)間跨度較大,單一模型無法有效地進(jìn)行特征捕捉,BERT-CharCNN模型較其準(zhǔn)確率約有5%的提升,體現(xiàn)了BERT-CharCNN聯(lián)合模型處理作者身份驗(yàn)證任務(wù)的效果更好。
表2 實(shí)驗(yàn)結(jié)果
為了進(jìn)一步體現(xiàn)BERT-CharCNN聯(lián)合模型在微博作者身份驗(yàn)證任務(wù)上的優(yōu)越性,本文對4種不同模型的訓(xùn)練過程進(jìn)行了研究,結(jié)果如圖4所示。
圖4 驗(yàn)證集準(zhǔn)確率變化曲線
從圖4中可以看出,BERT-CharCNN聯(lián)合模型在epoches=25時(shí)達(dá)到了較高的準(zhǔn)確率。在整個訓(xùn)練過程中, BERT-CharCNN聯(lián)合模型收斂速度快,訓(xùn)練過程穩(wěn)定,并在整個訓(xùn)練過程中始終保持準(zhǔn)確率領(lǐng)先,證明了BERT-CharCNN模型特征抽取的能力和效果優(yōu)于其他模型。
在進(jìn)行作者身份驗(yàn)證的時(shí)候,提取文本特征的質(zhì)量對最后的驗(yàn)證結(jié)果有著很大的影響。本文提出的BERT-CharCNN聯(lián)合模型在前人研究的基礎(chǔ)上,將微博文本字、詞級特征提取效果較好的CharCNN模型與句子、段落級特征提取效果較好的BERT模型進(jìn)行聯(lián)合,取得了優(yōu)于傳統(tǒng)方法的結(jié)果。下一步的研究方向?yàn)獒槍π颖镜淖髡呱矸蒡?yàn)證問題。
[1]Halvani O, Winter C, Graner L.//Proceedings of the 12th international conference on availability, reliability and security. 2017,pp.1-10.
[2]Yule G U.. Biometrika, 1939, Vol.30, pp.363-390.
[3]呂英杰、范靜、劉景方:《基于文體學(xué)的中文UGC作者身份識別研究》,《現(xiàn)代圖書情報(bào)技術(shù)》2013年第9期。
[4]祁瑞華、郭旭、劉彩虹:《中文微博作者身份識別研究》,《情報(bào)學(xué)報(bào)》2017年第1期。
[5]Devlin J, Chang M W, Lee K, et al. Bert:g. arXiv preprint arXiv:1810.04805, 2018.
[6]Kim Y, Jernite Y, Sontag D, et al.arXiv preprint arXiv:1508.06615, 2015.
[7]Li S, Zhao Z, Hu R, et al.. arXiv preprint arXiv:1805.06504, 2018.
[8]徐曉霖、蔡滿春、蘆天亮:《基于深度學(xué)習(xí)的中文微博作者身份識別研究》,《計(jì)算機(jī)應(yīng)用研究》2020年第1期。
D918.2
A
1672-1020(2020)06-0067-05
2020-10-15
張輝(1996-),男,山東棗莊人,漢族,中國人民公安大學(xué)2018級警務(wù)信息工程與網(wǎng)絡(luò)安全學(xué)院碩士研究生;王靖亞(1966-),女,陜西西安人,漢族,中國人民公安大學(xué)警務(wù)信息工程與網(wǎng)絡(luò)安全學(xué)院教授;仝鑫(1995-),男,河南鄭州人,漢族,中國人民公安大學(xué)2019級警務(wù)信息工程與網(wǎng)絡(luò)安全學(xué)院碩士研究生,北京,102600。
[責(zé)任編輯:金晞]