方 瑞,于俊洋,董李鋒
(1.河南大學(xué) 軟件學(xué)院,河南 開封 475000; 2.河南九域騰龍信息工程有限公司,鄭州 450000)
近年來,互聯(lián)網(wǎng)得到快速發(fā)展并已融入人們?nèi)粘I钪小>W(wǎng)絡(luò)社交逐步興起,各種社交平臺相繼推出且文本信息形式逐漸多樣化,出現(xiàn)如微博、社交短信、事件評論、社交郵件和新聞簡訊等多種文本信息。同時,網(wǎng)絡(luò)的信息開放、傳播迅速等特性使色情、暴力、廣告推銷等垃圾文本廣泛散布,擾亂并破壞了社交平臺的綠色環(huán)境。如何從大量文本中對垃圾文本進(jìn)行高效準(zhǔn)確過濾,已成為當(dāng)前重要的研究課題之一。
本文提出一種基于B-Feature特征構(gòu)造和BP神經(jīng)網(wǎng)絡(luò)的垃圾文本過濾模型。采用BERT模型和B-Feature方法構(gòu)造文本特征矩陣,使用BP神經(jīng)網(wǎng)絡(luò)分類器處理特征矩陣后對文本分類,進(jìn)而檢測出垃圾文本并進(jìn)行過濾。
垃圾文本過濾技術(shù)主要包括基于行為模式和基于內(nèi)容的過濾技術(shù)。在基于內(nèi)容的過濾技術(shù)中,文獻(xiàn)[1]針對多樣化內(nèi)容數(shù)據(jù)個性化推薦系統(tǒng)提出基于注意力的網(wǎng)絡(luò)模型來融合用戶多源數(shù)據(jù),以解決不同場景下的推薦問題。文獻(xiàn)[2]利用多粒度特征和混合算法進(jìn)行文檔分析。文獻(xiàn)[3]提出一種語義相似度集成方法識別軟件特征與源碼之間的映射關(guān)系。文獻(xiàn)[4]采用自適應(yīng)遞歸神經(jīng)網(wǎng)絡(luò)模型來關(guān)注特定信息,并挖掘詞語和目標(biāo)的特征關(guān)系。文獻(xiàn)[5]提出分層雙向LSTM網(wǎng)絡(luò)模型,保存句子之間互相聯(lián)系信息并提取其中的特征。在基于行為模式的過濾技術(shù)中,文獻(xiàn)[6]采用一種錯誤定位的方法增強(qiáng)上下文以尋找程序錯誤位置。文獻(xiàn)[7]提出基于時序行為的協(xié)同過濾推薦算法以提升推薦精度。
常用的垃圾文本過濾模型有樸素貝葉斯[8]、支持向量機(jī)(Support Vector Machine,SVM)[9]、決策樹[10]和隨機(jī)森林[11]等。近年來運(yùn)用較廣泛的是樸素貝葉斯模型,該模型邏輯簡單且易于實現(xiàn)[12]。這些垃圾文本過濾模型包括文本表示和分類器分類[13]兩部分,模型框架如圖1所示。其中,虛線箭頭表示測試樣本過程,實線箭頭表示訓(xùn)練樣本過程。
圖1 常用的垃圾文本過濾模型框架Fig.1 Framework of common used junk text filtering model
傳統(tǒng)文本過濾模型在獲取文本特征向量時,雖然邏輯簡單,但需要對文本進(jìn)行分詞處理,分詞的結(jié)果對文本特征獲取影響很大。本文在傳統(tǒng)文本過濾模型的基礎(chǔ)上,提出一種基于B-Feature特征構(gòu)造和BP神經(jīng)網(wǎng)絡(luò)且不需要進(jìn)行分詞的垃圾文本過濾模型。該模型框架如圖2所示。
圖2 本文垃圾文本過濾模型框架Fig.2 Framework of the proposed junk text filtering model
BP神經(jīng)網(wǎng)絡(luò)主體由輸入層、隱藏層和輸出層組成,各層之間采用權(quán)值為W的連接線連接[14]。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structure of BP neural network
BP神經(jīng)網(wǎng)絡(luò)正向傳遞過程較簡單,主要計算傳遞過程中每個節(jié)點輸出值Y。Y由其上層i所有節(jié)點輸出值、節(jié)點j偏置b、節(jié)點j與上層i全部節(jié)點之間的權(quán)值W及所選Sigmoid激活函數(shù)共同確定,Sigmoid激活函數(shù)點輸出值計算公式為:
Y=f(∑Wij×Xi+bj)
(1)
(2)
誤差反向傳遞過程建立在真實值Y和預(yù)期值T之間誤差的基礎(chǔ)上。BP神經(jīng)網(wǎng)絡(luò)通過反向傳播利用誤差項不斷調(diào)整權(quán)值和偏置以獲得最小誤差函數(shù)值。本文使用的誤差函數(shù)是均方差損失函數(shù),其計算公式為:
(3)
其中,tk為輸出層實際結(jié)果,yk為輸出層期望結(jié)果。整個網(wǎng)絡(luò)權(quán)值與閾值通過沿相對誤差平方和最快下降方向來修正。由梯度下降法可知,隱含層權(quán)值的矢量修正與當(dāng)前位置誤差項梯度成正比,第j個輸出節(jié)點權(quán)值修正為:
(4)
其中,η為學(xué)習(xí)率,其取值范圍為[0,1]。權(quán)值Wij計算公式為:
(5)
由梯度下降法得到修正權(quán)值公式為:
ΔWij=-η·δij·Xi
(6)
Δbj=-η·δij
(7)
本節(jié)主要介紹利用B-Feature處理文本構(gòu)造特征矩陣并結(jié)合BP神經(jīng)網(wǎng)絡(luò)模型(B-Feature-BP)進(jìn)行分類的具體過程。B-Feature-BP模型框架如圖4所示。采用BERT模型進(jìn)行文本特征捕捉,利用特征構(gòu)造B-Feature算法將捕捉的特征形成特征矩陣并傳輸?shù)缴蠈?由BP神經(jīng)網(wǎng)絡(luò)進(jìn)行分類過濾。
圖4 B-Feature-BP模型框架Fig.4 Framework of B-Feature-BP model
BERT模型是由Google公司開發(fā)的NLP模型[15]。本文使用BERT模型為句編碼服務(wù),將可變長度的句子轉(zhuǎn)變?yōu)楣潭ㄩL度的向量。句編碼是許多NLP應(yīng)用程序所需的上游任務(wù),例如情感分析和文本分類等。在使用BERT模型時,先在主機(jī)上安裝其服務(wù)器和客戶機(jī),然后啟動架構(gòu)通過本機(jī)該模型得到服務(wù)。BERT模型在啟動后,可對輸入文本進(jìn)行處理以獲取文本句編碼。BERT模型框架如圖5所示。
圖5 BERT模型框架Fig.5 Framework of BERT model
傳統(tǒng)文本分類模型[16]在獲取文本特征向量時,需要對文本進(jìn)行分詞,然后通過算法評估一個詞語對全部文本或者語料庫中某個文本的重要程度,再將重要程度高的詞語轉(zhuǎn)換成特征向量[17],進(jìn)而用其代表全部文本或者該語料庫的特征。由于對文本進(jìn)行有效分詞并確定詞語的重要程度較難,因此傳統(tǒng)文本分類模型具有很大局限性。使用BERT模型獲得文本句編碼,無需對文本進(jìn)行分詞。利用BERT模型服務(wù)時,對于原始輸入序列長度或詞組合方式不同的序列,服務(wù)會為每個序列返回一個代表該序列維度為768的矩陣。采用BERT模型獲取的部分文本句編碼如表1所示。
表1 采用BERT模型獲取的部分文本句編碼Table 1 Partial text sentence coding obtained by BERT model
與傳統(tǒng)文本處理模型不同[18],本文利用BERT模型獲取句編碼矩陣是用每個文本的每行作為一個矩陣,由于不同文本行數(shù)不同,從而文本矩陣大小不同,因此通過BERT模型得到的句編碼矩陣不能直接用于神經(jīng)網(wǎng)絡(luò)輸入。為此,本文提出一種用于對BERT所提取句編碼進(jìn)行特征構(gòu)造的B-Feature方法。
B-Feature方法的具體步驟如下:
步驟1按行讀取文本,將文本所有行向量轉(zhuǎn)換成單個文本向量Q,Q的大小為M×N(N為行向量維度(BERT模型輸出維度為768)。
步驟2將文本向量Q構(gòu)造為列數(shù)為M×N的一維矩陣P。
步驟3將P轉(zhuǎn)換為維度為1、長度為T的矩陣O,其中,如果N>T,則將T后的N-T部分舍去;如果N 設(shè)數(shù)據(jù)集總文本數(shù)為X,各文本行數(shù)分別為n1,n2,…,nx。所有文本行數(shù)平均值L的計算公式為: (8) 矩陣長度T的計算公式為: T=N×L (9) 步驟4回到步驟1。 步驟5將所有矩陣O按行銜接,融合成尺寸為X×T的矩陣E(X為文本文件的總數(shù))。 B-Feature方法框架如圖6所示。 圖6 B-Feature方法框架Fig.6 Framework of B-Feature method 所有文本通過B-Feature方法進(jìn)行特征構(gòu)造處理后,需采用BP神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行分類過濾。但BP神經(jīng)網(wǎng)絡(luò)在傳統(tǒng)訓(xùn)練與測試中的效率和相容性均不理想,因此對BP神經(jīng)網(wǎng)絡(luò)節(jié)點數(shù)進(jìn)行優(yōu)化。增加隱層數(shù)可降低網(wǎng)絡(luò)誤差并提高精度,但會造成網(wǎng)絡(luò)復(fù)雜化,導(dǎo)致增加網(wǎng)絡(luò)訓(xùn)練時間以及出現(xiàn)“過擬合”傾向。在BP神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)采用Sigmoid函數(shù),理論上2個隱藏層網(wǎng)絡(luò)就能處理所有文本分類問題[19],因此,為防止出現(xiàn)過擬合及降低網(wǎng)絡(luò)誤差,本文采用包含2個~4個隱藏層的網(wǎng)絡(luò)結(jié)構(gòu)。 如果隱藏層節(jié)點數(shù)太少,則網(wǎng)絡(luò)不具備必要的學(xué)習(xí)能力和信息處理能力;如果隱藏層節(jié)點數(shù)太多,則會大幅增加網(wǎng)絡(luò)復(fù)雜度并降低效率。與網(wǎng)絡(luò)激活函數(shù)相比,關(guān)于確定隱藏層節(jié)點數(shù)的研究較少[20]。一般用經(jīng)驗公式來確定節(jié)點數(shù): (10) 其中,a為輸入層節(jié)點數(shù),n為輸出層節(jié)點數(shù),c為范圍為(0,10)的常數(shù)。采用B-Feature方法構(gòu)造的特征矩陣與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,特征矩陣作為神經(jīng)網(wǎng)絡(luò)輸入,其維度m決定網(wǎng)絡(luò)輸入層節(jié)點數(shù),因此,根據(jù)式(10)確定節(jié)點數(shù)計算公式為: (11) 選取長、中、短3種文本長度的數(shù)據(jù)集進(jìn)行實驗以驗證本文模型的有效性。長文本數(shù)據(jù)集(THUCNews)是根據(jù)新浪新聞RSS訂閱頻道歷史數(shù)據(jù)篩選過濾生成的新聞文本數(shù)據(jù)集,并按照9∶1的比例劃分?jǐn)?shù)據(jù)個數(shù)得到訓(xùn)練集和測試集。中文本數(shù)據(jù)集采用垃圾郵件數(shù)據(jù)集(Ccert Data Sets of Chinese Emails,CDSCE),按照7∶3的比例劃分?jǐn)?shù)據(jù)個數(shù)得到訓(xùn)練集和測試集。短文本數(shù)據(jù)集采用中文垃圾短信數(shù)據(jù)集,按照8∶2 的比例劃分得到訓(xùn)練集和測試集。實驗數(shù)據(jù)集具體情況如表2所示。 表2 實驗數(shù)據(jù)集Table 2 Experimental data sets 本文采用準(zhǔn)確率(A)、精確率(P)、召回率(R)、F1值(F)作為文本分類方法評價指標(biāo)。將正類預(yù)測結(jié)果為True記作TP,將負(fù)類預(yù)測結(jié)果為False記作TN,將負(fù)類預(yù)測為True記作FP,將正類預(yù)測為False記作FN。準(zhǔn)確率、精確率、召回率和F1值計算公式分別為: (12) (13) (14) (15) 實驗分別采用傳統(tǒng)機(jī)器學(xué)習(xí)算法中的樸素貝葉斯模型、TFIDF-BP模型以及基于Bert特征構(gòu)造的BP 神經(jīng)網(wǎng)絡(luò)分類模型(以下稱為B-Feature-BP模型)在上述3種數(shù)據(jù)集上進(jìn)行文本分類測試。 由圖7可以看出,B-Feature-BP模型在THUCNews數(shù)據(jù)集上準(zhǔn)確率低于樸素貝葉斯模型,但是在CDSCE和中文垃圾短信數(shù)據(jù)集上要優(yōu)于其他兩種模型;B-Feature-BP模型在3個數(shù)據(jù)集上的準(zhǔn)確率較TFIDF-BP模型分別提高7.8%、3.8%和11.7%,在CDSCE、中文垃圾短信數(shù)據(jù)集上的準(zhǔn)確率較樸素貝葉斯模型分別提高2.1%和13.7%,特別是在中文垃圾短信數(shù)據(jù)集上B-Feature-BP模型的準(zhǔn)確率最高達(dá)到0.961。此外,B-Feature-BP模型在3種數(shù)據(jù)集上準(zhǔn)確率都在92%以上,說明該模型能有效對垃圾文本進(jìn)行分類過濾。 圖7 不同模型的準(zhǔn)確率對比Fig.7 Comparison of accuracy of different models 由圖8~圖10可以看出,B-Feature-BP模型在3種數(shù)據(jù)集上的精確率、召回率和F1值均在0.9以上,說明其在各種長度的文本分類中都有良好且穩(wěn)定的表現(xiàn)。樸素貝葉斯模型雖然在長文本高維度的情況下表現(xiàn)優(yōu)異,但是當(dāng)文本長度變短、維度變小的情況下,其分類效果和穩(wěn)定性均不佳。TFIDF-BP模型雖然在各種長度的文本中表現(xiàn)都較穩(wěn)定,但是其分類精確率較其他兩種方法要低。綜合來看,B-Feature-BP模型在3個數(shù)據(jù)集上的表現(xiàn)要比其他兩種模型更優(yōu)。 圖8 不同模型的精確率對比Fig.8 Comparison of precision of different models 圖9 不同模型的召回率對比Fig.9 Comparison of recall of different models 圖10 不同模型的F1值對比Fig.10 Comparison of F1 values of different models 本文提出一種基于B-Feature特征構(gòu)造和BP神經(jīng)網(wǎng)絡(luò)的垃圾文本過濾模型。引入BERT模型對文本進(jìn)行特征構(gòu)造,采用B-Feature方法建立特征矩陣,使用BP神經(jīng)網(wǎng)絡(luò)分類器對垃圾文本進(jìn)行分類和過濾。實驗結(jié)果表明,本文模型較TFIDF-BP模型和樸素貝葉斯模型在垃圾文本分類和過濾上有更好的效果。但由于該模型提取句編碼后的編碼矩陣較大,時間復(fù)雜度較高,而計算資源有限,因此未對BP神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行更大規(guī)模和更長時間的訓(xùn)練。后續(xù)將對模型計算以及迭代速度進(jìn)行優(yōu)化以進(jìn)一步提高文本分類準(zhǔn)確率。4 實驗設(shè)計與結(jié)果分析
4.1 實驗設(shè)計
4.2 實驗結(jié)果與分析
5 結(jié)束語