武夢旭
(燕山大學 理學院,河北 秦皇島066004)
識別網絡不良文本問題的實質是文本分類問題,即將網絡文本分為正常文本和不良文本兩類,其中不良文本多是敏感性、攻擊性、辱罵性的內容。對于不良文本信息的攔截過濾技術研究可以追溯到21世紀初,Denning[1]首次提出了垃圾信息過濾的概念,在郵件的接收過程中可以通過郵件內容判斷郵件的緊急性,以保證郵件接收者及時處理緊急郵件。近年來,許多研究人員在社交媒體安全性研究方面取得了長足進步,對不良內容的過濾許多都是基于黑白名單、關鍵字、規(guī)則表達式和分類技術等方法。Njaji、Zhang等[2]利用與仇恨言論相關的主觀性和語義特征,構建包含仇恨動詞的詞典來檢測仇恨言論。Silva、Mondal等[3]根據句子結構提出一個基本表達式來檢測Whisper和Twitter中的仇恨言論,并將這些仇恨言論通過人工標記劃分細粒度。
隨著自然語言處理技術的發(fā)展以及計算機性能的提高,深度學習網絡模型逐漸應用到文本分類領域,憑借其高效的特征提取方法,能夠有效的提升分類效果。卷積神經網絡(Convolutional Neural Network,CNN)和循環(huán)神經網絡(Recurrent Neural Network,RNN)是深度神經網絡的兩個主要結構。Le、Botton等[4]在研究計算機圖像處理時首次提出卷積神經網絡,主要利用卷積核提取局部特征,效果優(yōu)于當時其他技術。Socher、Huval等[5]利用矩陣和向量構建了一個循環(huán)神經網絡(MV-RNN),通過該網絡能夠從任意句法類型和長短不一的句子中學習潛在的語義關系,每個句子生成長度一致的特征向量,實驗結果顯示相比傳統機器學習算法其效果更好。Yang、Zhang等[6]基于兩個前后連接的雙向循環(huán)神經網絡并結合注意力機制(Attention Mechanism)構建分層注意力網絡模型,在單詞層面和句子層面應用兩個級別的注意機制對文本內容進行編碼,取得較好的分類效果。
網絡不良文本多由網民自主創(chuàng)造,具有靈活多變的特點。深度學習模型能自主地學習文本中的特征,可以有效地避免人工標準特征存在的不足,并且深度學習模型能通過不斷的學習來適應文本的變化。
將詞特征和語義特征結合,提出一種基于多特征融合的BiLSTM模型的網絡不良文本分類方法,用于提高檢測的性能,模型結構圖如圖1所示。該方法主要由三部分組成,第一部分是利用N-Gram進行文本詞特征的向量表示,第二部分是使用Word2Vec模型提取深層語義特征,第三部分是將這兩部分的特征向量拼接相融合并使用Softmax激活函數實現分類。
圖1 多特征融合的BiLSTM模型結構圖
1.詞特征提取
選用語法特征作為詞特征。N-Gram是一種基于統計語言模型的算法,對文本內容按照字節(jié)采取大小為N的滑動窗口操作,形成長度是N的字節(jié)片段序列,即將連續(xù)的N個詞作為向量空間中的一個維度。忽視一個文本的詞序、語法,句法,僅將其視為一個詞集合,且假設文中的每個詞的出現都是獨立的,不依賴于其他詞是否出現,則從一個句子中提取N個連續(xù)的單詞,可以獲取到詞的前后信息。
N-Gram模型基于隱馬爾科夫假設,各個詞出現的概率乘積就等于整個句子出現的概率,各個詞出現的概率可以直接通過語料統計計算得到。當一個詞的出現只依賴于前一個詞,概率計算公式如下:
如果一個詞的出現僅依賴于它前面出現的兩個詞時,概率計算公式如下:
公式(1)和(2)中,n表示文本包含的詞數量,每一個詞用 wi表示,P(wi|wi-1)和 P(wi|wi-1wi-2)表示在文本中前1個詞是wi-1和前2個詞是wi-1、wi-2的條件下第i個詞是wi的概率。
在對n值的選取上,n越大計算所依賴的詞越多,可獲得的信息量越多,對未來的預測就越準確,模型效果也越好。然而,考慮到網絡不良文本中存在較多拼寫錯誤和語法不規(guī)范問題,若n取值較大,可以獲得下一個詞更多的約束信息,但很容易出現訓練集中沒有的詞,產生數據稀疏。若n取值較小,則在訓練語料庫中出現的次數更多,統計結果更可信。所以n取值不宜過大,可以取n值為2,選用Bi-gram提取文本詞特征。
2.語義特征提取
采用結合Word2Vec預訓練詞嵌入的BiLSTM(Bi-directional Long Short-Term Memory)模型提取深層語義特征。首先,采用Word2Vec方法中的CBOW模型進行詞向量的表示。其次,BiLSTM作為文本特征的映射器,將CBOW模型學習到的文本詞向量輸入BiLSTM模型的數據通道中,在forward層從前向后計算一遍,在backward層從后往前運算一遍,每個時刻結合forward層和backward層的相應時刻輸出的結果,經過映射和激活函數的處理,將得到一組輸出,并將其進行全連接處理,作為文本語義特征。
(1)Word2Vec
Word2Vec在語料集訓練上主要分為CBOW(Continuous Bag-of-Word Model)和 Skip-Gram兩種模式,結構如圖2所示。其中CBOW是在NNLM的基礎上去除前向反饋神經網絡中的非線性隱層,直接將中間層與輸出層連接,輸入層輸入詞的One-Hot向量,隱藏層直接對輸入的向量累加求和并取平均值的運算,輸出層輸出當前詞的某個向量概率,向量概率最大的位置代表的單詞為預測出的中間詞,即CBOW是從上下文到當前詞的某種映射或者預測,CBOW模型的目標函數是輸出的真實中心詞概率最大,計算公式為:
圖2 CBOW和Skip-Gram模型結構示意圖
公式(3)中,wt表示當前詞匯,wt-c,wt-1,wt+1,…,wt+c表示與wt距離c個單位以內的詞匯,通過相鄰的c個詞匯可以計算wt的概率分布,然后使用中間隱藏層進行均值計算得到詞匯wt的詞向量表示。Skip-Gram則是從當前詞預測上下文,Skip-Gram模型的計算公式如下:
(2)BiLSTM
LSTM模型是RNN的一種變體,RNN存在梯度消失的問題且只有短期記憶。LSTM將短期記憶與長期記憶通過精妙的門控制結合起來,并且在一定程度上緩解了梯度消失的問題,LSTM結構圖如圖3所示。LSTM模型只使用了上文的信息,而沒有考慮到下文的信息,而預測可能需要使用到整個輸入序列的信息,BiLSTM是結合文本從前到后作為輸入的LSTM和從后向前作為輸入的LSTM組合而成,BiLSTM結構圖如圖4所示。
圖3 LSTM結構圖
圖4 BiLSTM結構圖
LSTM包括輸入門、遺忘門、輸出門三個“門”結構,通過對細胞狀態(tài)中信息遺忘和記憶新的信息使得對后續(xù)時刻計算有用的信息得以傳遞,而無用的信息被丟棄,并在每個時間步輸出隱層狀態(tài),遺忘門決定從細胞狀態(tài)中丟棄信息,通過上一個細胞狀態(tài)的輸出和當前細胞的輸入,使用Sigmoid函數輸出一個在0到1之間的數值,1表示完全保留信息,0表示完全舍棄。其計算公式為:
輸出門確定輸出值。確定細胞狀態(tài)的輸出部分ot,然后對細胞狀態(tài)進行過濾處理確定輸入部分ht:
其中xt為t時刻的輸入詞向量,ht-1表示循環(huán)單元上一時刻的隱層狀態(tài),Wf,Wi,Wo,WC分別表示上一時刻輸出值在遺忘門、記憶門、輸出門、臨時細胞狀態(tài)更新中的權重系數,bf、bi、bo、bC表示遺忘門、記憶門、輸出門、臨時細胞狀態(tài)的更新偏置量。
3.輸出層
對本節(jié)模型的前兩部分的中間層輸出向量作拼接的靜態(tài)融合,得到該模型的特征向量,包含了詞和語義兩種特征,然后進行協同訓練使用Softmax激活函數將特征向量轉化成概率,根據概率判斷網絡文本是正常文本或不良文本,其計算公式為:
1.數據采集及標注
通過網絡爬蟲的方式進行網絡文本數據的采集。采用Scrapy框架在微博平臺上獲取相應數據,這個框架爬取數據的結構圖如圖5所示。
圖5 微博數據爬取流程圖
網絡文本分析所需要的數據類型主要包括兩部分:網絡不良文本和網絡正常文本。從微博社區(qū)管理中心的舉報處理大廳收集來自人身攻擊類、辱罵低俗類的微博。從微博首頁收集正常微博,共搜集微博文本數據8000條,并對所有數據集按照8:2的比例分配給訓練集和測試集。對于爬取到的微博文本數據,根據其是否為不良文本用0和1對其進行人工標記,其中不良文本標記為1,正常文本標記為0,實驗數據見表1。
表1 文本分類實驗數據表
2.文本預處理
微博搜集的文本存在噪音干擾大的問題,針對微博文本采取以下方法對文本數據集進行預處理,從而提高網絡不良文本的識別精確度。
(1)去噪
構建正則表達式過濾html、url,去除@及用戶名、情感符號和非中英文的字符,保留文本中的標簽信息以及將繁體字轉為簡體字等。html和url對于判斷文本是否屬于不良文本沒有任何實質作用,故過濾掉html和url;針對帶有@及用戶名的文本,需要排除用戶名對文本的干擾,所以去除@及用戶名;為了防止干擾,將特殊字符及非中英文的字符統一去除掉;針對帶有“#標簽#”的文本數據,如果僅去除符號#和標簽內容,可能會影響微博用戶所要表達的意思,因此保留文本中的標簽內容。
(2)去除停用詞
對于一些沒有意義的詞,例如“的、了、哦”和一些標點等,使用停用詞詞典進行去除。在互聯網上中英文混用的現象非常普遍,而有些無意義的英文單詞的出現也會對不良文本識別產生影響,因此也需要將英文停用詞加入到停用詞典中。本文使用的停用詞詞典是基于哈工大停用詞詞表構造的,在哈工大停用詞詞表的基礎上增加英文停用詞。哈工大停用詞詞表共含有768項中文、標點以及特殊字符,在此基礎上增加英文停用詞640項,新的停用詞詞典共1408項。
(3)分詞
現在的中文分詞工具有很多,本文使用基于結巴分詞的工具來對微博文本進行中文分詞。結巴分詞工具中的自定義詞典可以添加一些最新的網絡熱詞以及縮略詞,但是還有一些不良詞匯及變體沒有收錄。因此,構建不良詞匯詞典,并將不良詞匯詞典添加到結巴分詞工具的自定義詞典中,實現對文本更準確的切分。
3.模型參數設置
模型中會有許多的超參數需要設置,不同超參數的設置會對模型的性能有不同的影響。對這些超參數論文進行基準值設定,超參數基準設定如表2所示。
表2 超參數基準設定值
4.評價標準
在對網絡文本分類過程中,評價指標包括準確率(precision)、召回率(recall)和F1值。在對網絡文本進行分類過程中,有可能會出現4種結果,模型預測結果如表3所示。
表3 模型預測結果
準確率表示在對網絡文本進行分類的過程中,模型正確分類出來的網絡不良文本數和預測出來的網絡不良文本數的比值,準確率的計算公式如下:
召回率表示在對網絡文本進行分類的過程中,模型正確分類出來的網絡不良文本數和實際產生的網絡不良文本數的比值,召回率的計算方式如下:
F1值是用來對精確率以及召回率進行調和的平均值。F1值是對模型的精確率和召回率進行綜合的考慮,與精確率和召回率相比更能反應模型的分類效果。F1值的計算方式如下:
5.實驗結果分析
為了避免實驗結果出現偶然性,對于模型均采用十折交叉驗證取平均值。
(1)對于傳統的機器學習方法,使用樸素貝葉斯分類器和SVM分類器。
SVM的懲罰系數設為1000,徑向基核函數參數設為0.001。
(2)Word2Vec-CNN模型:模型以Word2Vec模型作為詞向量模型,然后把詞向量輸入到CNN模型,CNN利用不同大小的卷積核提取每條數據中詞語的信息,多層CNN可以提取每條數據中的深層信息,然后通過Softmax對文本進行分類。對于CNN設置3、4、5三種高度的卷積核,卷積核個數設置為100。
(3)Word2Vec-LSTM模型:模型以 Word2Vec模型作為詞向量模型,以LSTM模型對文本數據再次提取特征信息,最后通過Softmax對文本進行分類。
(4)Word2Vec-BiLSTM模型:模型以Word2Vec模型作為詞向量模型,以BiLSTM模型對文本數據再次提取特征信息,最后通過Softmax進行分類。
在數據集上,各個模型的實驗結果如表4所示。
表4 各模型實驗結果對比
從實驗結果可以看出本文提出的模型在網絡網絡文本數據集中的評價指標均優(yōu)于其他模型,驗證了本文模型在網絡不良文本分類中的有效性。
實驗數據顯示,在數據相同的條件下,深度學習方法在準確率和召回率上相比于傳統的機器學習方法均有較大的提高,驗證了深度學習模型在網絡不良文本分類上確實優(yōu)于傳統的機器學習方法。
在實驗結果中,樸素貝葉斯和線性SVM模型的分類效果較差,原因主要在于特征選取的方式是以詞頻和逆向詞頻為主,文本中每個詞出現的頻率都較低,無法通過統計詞頻大小進行文本重要性的判斷,所以在網絡不良文本的分類中不占優(yōu)勢。
對比循環(huán)神經網絡和卷積神經網絡,在嵌入層輸入矩陣組成相同的情況下,循環(huán)神經網絡比卷積神經網絡有一定的提高。由于網絡文本存在長短不一的情況,卷積神經網絡只能提取局部的信息,而沒有關心上下文的相關性,循環(huán)神經網絡的優(yōu)勢就會顯現。
對比本文模型和Word2Vec-BiLSTM模型,本文模型在精確率、召回率和F1值上均有提高,原因在于本文模型使用的特征多了一個詞特征,在網絡文本分類的任務中,BiLSTM網絡通過結合詞特征和語特征就能較好地區(qū)分網絡不良文本。
本文對網絡不良文本的特點做了相關分析,針對網絡不良文本分類時特征提取不足導致分類精度不高的問題,將N-Gram提取的詞特征和基于Word2Vec的BiLSTM提取文本語義特征融合,能有效避免文本信息損失,更好地提取文本信息。在數據集上實驗并與其他分類方法進行對比,結果表明,特征融合分類方法比傳統機器學習方法和單一特征提取的深度學習方法具有更好的網絡不良文本分類性能和效果?!?/p>