黃玉蘭,劉瑞安,胡 昕,任 超,徐宇輝
(天津師范大學,天津 300000)
當下,第五代移動通信技術(shù)(5G)正發(fā)展得如火如荼,人類迎來了信息多元化時代,文本數(shù)據(jù)呈現(xiàn)浪潮式激增,其中新聞文本占據(jù)重要地位。利用自然語言處理技術(shù)(Natural Language Processing,NLP)可以識別新聞文本中的實體、情感、類型等信息,把文本劃分為多個獨立的類別,有助于更好地傳播新聞資訊,滿足人們查找信息的需求。
近年來,文本分類技術(shù)廣泛應(yīng)用在情感分析、智能電子商務(wù)及醫(yī)療等多個領(lǐng)域,文本分類算法也經(jīng)歷了一系列的演變。在早期,知識工程是主流的分類方法,其類別規(guī)則由專業(yè)人員制定,通過人工標注大量文本形成數(shù)據(jù)集,因而這種方法存在費時費力、錯誤率極高且類別缺乏客觀性等缺點。后來,機器學習技術(shù)的出現(xiàn),基于淺層學習的文本分類方法逐漸興起,并逐步替代了傳統(tǒng)的知識工程方法。具有代表性的是樸素貝葉斯分類器(Naive Bayes,NB)[1]、支持向量機(Support Vector Machine,SVM)[2]、K 近鄰(K-Nearest Neighbor,KNN)[3]以及決策樹(Decision Tree,DT)[4]。但此類方法容易丟失文本內(nèi)的前后位置關(guān)系和語境,導致單詞語義理解不準確。自2010 年代以來,文本分類逐漸轉(zhuǎn)向深度學習模式。2011 年,Ronan 等[5]首次將淺層深度學習框架應(yīng)用于NLP 領(lǐng)域,結(jié)果甚至超越了當時現(xiàn)有的其他自然語言處理方法,于是大量的深度學習方法應(yīng)用于文本分類任務(wù)。2014 年,Yoon 等[6]最早將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)用于文本分類,我們也將該CNN 網(wǎng)絡(luò)叫做textCNN。2022 年,張?zhí)鸬萚7]提出使用2 個不同尺寸的BiGRU 和膠囊網(wǎng)絡(luò)進行文本情感分類研究,在電影評論IMDB 和SST-2 數(shù)據(jù)集上有效提高了文本情感分類的效果。
本文提出一種融合BiGRU 和多頭注意力機制的混合神經(jīng)網(wǎng)絡(luò)模型-BMCapsNet 模型。使用BiGRU 提取上下文特征,結(jié)合多頭注意力機制重新進行權(quán)重分配,利用膠囊網(wǎng)絡(luò)進行更深層次的語義信息提取,最后通過類別膠囊進行文本分類,彌補了CNN 的缺陷。
針對CNN 著力于檢測特征圖中的重要特征而忽略高層特征和低層特征之間的位置與姿態(tài)關(guān)系,2011 年Geoffrey 等[8]首次提出膠囊的概念。具體做法是從輸入圖像中提取姿態(tài),以原始姿態(tài)輸出變換后的圖像,輸出的向量既代表特征存在的概率又含有實例化參數(shù)。2017 年Sara 等[9]率先將這一概念應(yīng)用到神經(jīng)網(wǎng)絡(luò)中,采用一種新的動態(tài)路由算法來選擇重要的高層膠囊,實驗表明,在圖像分類領(lǐng)域,膠囊的魯棒性明顯優(yōu)于CNN。2018 年Zhao 等[10]將膠囊網(wǎng)絡(luò)遷移到文本分類任務(wù)中,提出了2 種膠囊網(wǎng)絡(luò)結(jié)構(gòu),均由N-gram 卷積層、初級膠囊層、卷積膠囊層以及全連接膠囊層組成。在6 個標準數(shù)據(jù)集上進行了一系列的實驗,結(jié)果表明膠囊網(wǎng)絡(luò)在6 個數(shù)據(jù)集中有4 個達到最佳結(jié)果,驗證了膠囊網(wǎng)絡(luò)的有效性。近年來,膠囊網(wǎng)絡(luò)在文本分類領(lǐng)域得到了廣泛的研究。2020 年胡春濤等[11]提出LSTM連接膠囊網(wǎng)絡(luò)模型用于文本分類,證明了膠囊網(wǎng)絡(luò)的文本特征提取能力優(yōu)于CNN。2021 年朱海景等[12]利用分組反饋路由機制,將膠囊分組方法運用于文本分類任務(wù)中,實驗證明,其在參數(shù)數(shù)量和訓練時間上有明顯減少。
本文提出的BMCapsNet 模型如圖1 所示,該模型由全局特征提取模塊、膠囊網(wǎng)絡(luò)分類模塊組成。
圖1 模型結(jié)構(gòu)
2.1.1 BiGRU
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)適用于處理序列數(shù)據(jù)用于預(yù)測,但卻受到短時記憶的制約。在反向傳播過程中,還面臨梯度消失的問題。針對RNN 的缺陷,學者們提出了LSTM,而GRU 是其的一個變體。它們都具有稱為“門”的內(nèi)部機制,可以調(diào)節(jié)信息流。這些“門”可以選擇性地保留序列中的重要數(shù)據(jù),刪除不相關(guān)的信息。與LSTM相比,GRU 使用隱藏狀態(tài)來進行信息的傳遞,減少張量運算,提高訓練速度。GRU 單元結(jié)構(gòu)如圖2 所示。
圖2 GRU 單元結(jié)構(gòu)
該單元結(jié)構(gòu)由重置門rt和更新門zt組成。重置門允許我們控制可能還想記住的過去狀態(tài)的數(shù)量;更新門允許我們控制新狀態(tài)中有多少個是舊狀態(tài)的副本。GRU 單元在時刻t 的更新過程如式(1)—式(4)所示
式中:xt為當前時刻的輸入;ht為當前時刻的隱藏狀態(tài);ht-1為前一時刻隱藏狀態(tài);σ 為sigmoid 激活函數(shù);Wr、Wz、Wc、Ur、Uz、Uc為權(quán)重矩陣;br、bz、bc為偏置項;*表示向量間的點乘運算。
在GRU 中,狀態(tài)是從前往后順序輸出的。如果在文本分類過程中,當前時刻的輸出同前一時刻狀態(tài)及后一時刻狀態(tài)都產(chǎn)生聯(lián)系,那將更有利于文本深層次特征的提取,本文借助BiGRU 來建立這種聯(lián)系。2 個單向、方向相反的GRU 組成一個BiGRU,輸出由這2 個GRU 的狀態(tài)共同決定。t-1 時刻的前向隱層狀態(tài)和反向隱層狀態(tài)加權(quán)求和得到BiGRU 在時刻t 的隱層狀態(tài),計算如式(5)—式(7)所示:
2.1.2 多頭注意力
注意力機制源于人對外部信息的處理能力。人在每一時刻接收的信息龐大且復(fù)雜,遠遠超過人腦的處理能力。因此人在處理信息的時候,會將注意力放在需要關(guān)注的信息上,過濾無關(guān)的外部信息,這種處理方式被稱為注意力機制。而多頭注意力機制是將注意力機制擴展到多個頭,從而增強模型對于不同特征的關(guān)注度。
首先,將經(jīng)過BiGRU 層提取后的句子矩陣線性變換并分割為3 個矩陣:值向量(V),鍵向量(K),查詢向量(Q)。其次,將V,K,Q 線性投影到不同的子空間,得到多個頭。再次,對每個頭進行自注意力計算,得到該頭的輸出
式中:dk是鍵向量的維度,KT為鍵向量的權(quán)重,利用softmax 相似度進行歸一化。最后,將所有頭的輸出拼接在一起,進行線性變換??梢员硎緸?/p>
式中:h 表示頭的數(shù)量,headi表示第i 個頭的輸出,WO是輸出變換矩陣。
多個神經(jīng)元組成一個膠囊,而圖像中出現(xiàn)的特定實體的各種屬性分別由各個神經(jīng)元表示。這些屬性包含了許多不同類型的實例化參數(shù),例如姿態(tài)(位置、大小、方向)、變形、速度和紋理等,而其中一個非常特殊的屬性是圖像中某個類別實例的存在,它的輸出數(shù)值大小是實體存在的概率。主要分為初級膠囊層、分類膠囊層和文本膠囊層。
2.2.1 初級膠囊層
在這層中,多頭注意力層中的標量輸出用矢量輸出膠囊替代,從而保留了單詞的局部順序和語義表示。其工作原理主要分為3 步。
第一步,矩陣轉(zhuǎn)化
式中:Ui為低層特征,Wij為低層特征和高層特征的空間關(guān)系,Uj|i為由低層特征推出的高層特征。
第二步,輸入加權(quán)求和
式中:Cij為耦合系數(shù),一層膠囊網(wǎng)絡(luò)所有的耦合系數(shù)和為1,通過動態(tài)路由算法自動調(diào)整。
第三步:非線性激活
采用向量的新型非線性激活函數(shù),又叫Squashing函數(shù),主要功能是使得Vj的長度不超過1,而且保持Vj和Sj同方向。
2.2.2 動態(tài)路由算法
在式(11)中,Cij由迭代動態(tài)路由過程確定。通過計算預(yù)測向量Uj|i與輸出向量Vj之間的一致性來迭代更新權(quán)重bij。
整個動態(tài)路由算法流程如圖3 所示。
圖3 動態(tài)路由算法流程
首先初始化所有的bij為0,那么
后續(xù)一直迭代,根據(jù)式(13)更新bij,迭代3 次,得到最終的輸出向量V。
2.2.3 分類膠囊層
分類膠囊層的輸入為初級膠囊層的輸出,包含的是高階膠囊,此時每個膠囊代表文本可能所屬的類別。由于膠囊允許多個分類同時存在,所以不能直接用傳統(tǒng)的交叉熵損失,一種替代方案是用間隔損失
式中:k 是分類;Tk是分類的指示函數(shù)(k 類存在為1,不存在為0);m+為上界,懲罰假陽性,即預(yù)測k 類存在但真實不存在,識別出來但錯了;m-為下界,懲罰假陰性,即預(yù)測k 類不存在但真實存在,沒識別出來λ 是比例系數(shù),調(diào)整兩者比重。實驗中取m+為0.9,m-為0.1,λ為0.5。
2.2.4 文本膠囊層
分類膠囊層的輸出被壓扁成一個膠囊列表,并送入文本膠囊層。對其進行全連接操作,通過softmax 分類器進行概率預(yù)測,完成最后的分類預(yù)測。
為評估BMCapsNet 模型的有效性,選取THUCNews 新聞標題數(shù)據(jù)集和今日頭條新聞標題數(shù)據(jù)集進行實驗。其中,THUCNews 新聞標題數(shù)據(jù)集是根據(jù)新浪新聞頻道2005—2011 年的歷史數(shù)據(jù)篩選過濾生成,收錄共74 萬篇新聞文檔。本文從中抽取了20 萬條新聞標題數(shù)據(jù),一共涵蓋10 個類別,每個類別各2 萬條文本數(shù)據(jù)。今日頭條新聞標題數(shù)據(jù)集包含382 688 條新聞文本,從中抽取10 萬條新聞標題數(shù)據(jù),涵蓋10 個類別,每個類別各1 萬條文本數(shù)據(jù)。2 個數(shù)據(jù)集中訓練集、驗證集和測試集的劃分比例都為18∶1∶1。
實驗的預(yù)處理部分首先對2 個數(shù)據(jù)集進行異常文本處理,去除樣本中既包含新聞的標題內(nèi)容,又包含其正文內(nèi)容的異常文本,最終THUCNews 新聞標題數(shù)據(jù)集每個句子長度固定為32,今日頭條標題數(shù)據(jù)集每個句子長度固定為50。其次,對其進行語料清洗、中文分詞和去停用詞,實現(xiàn)去噪目的。最后,進行詞頻統(tǒng)計與過濾,本文將詞頻小于5 的詞匯定義為低頻詞,保留詞頻大于5 的單詞。對剩余單詞,構(gòu)建詞典。
為驗證BMCapsNet 模型在文本分類中的效果,實驗均采用pycharm 集成開發(fā)環(huán)境,編程語言為python3.8,深度學習框架為PyTorch。服務(wù)器配置如下:處理器為10 核Intel(R)Xeon(R)Gold 6148 CPU,運行內(nèi)存71 GB,GPU 為Tesla V100-SXM2,16 GB 顯存。
使用300 維SougouNews 預(yù)訓練字向量來初始化字嵌入矩陣,使用Adam 優(yōu)化器,學習率為0.001。膠囊維度為16,膠囊數(shù)量為10。GRU 隱藏單元為128,多頭注意力頭數(shù)為8,動態(tài)路由迭代次數(shù)為3。
本文采用的評價指標為準確率(accuracy)
式中:TP 為本身是正類,結(jié)果劃分是正類;TN 為本身是正類,結(jié)果劃分為負類;FP 為本身是負類,結(jié)果劃分為正類;FN 為本身是負類,結(jié)果劃分為負類。準確率為所有正確的分類的比重。
為驗證BMCapsNet 模型的有效性,將BMCapsNet模型分別與TextCNN、TextRNN、TextRNN+Attention、TextRCNN、DPCNN、Transformer、BiGRU 基線模型和BiGRU-CapsNet 模型進行對比。為減少實驗誤差帶來的影響,準確率均取3 次重復(fù)實驗的平均值,其中最佳實驗結(jié)果用粗體標出,實驗結(jié)果見表1。
表1 不同模型最優(yōu)分類結(jié)果(準確率)
與其他基線模型相比,BMCapsNet 模型在2 個數(shù)據(jù)集上準確率均達到最高。相比于TextCNN,在THUCNews 新聞標題數(shù)據(jù)集的準確率提升了3.03 個百分點,在今日頭條新聞標題數(shù)據(jù)集的準確率提高了3.85 個百分點,驗證了模型的有效性。
對比BiGRU-CapsNet 與BMCapsNet 模型發(fā)現(xiàn),BMCapsNet 模型在2 個數(shù)據(jù)集的準確率均高于Bi-GRU-CapsNet 模型,說明引入多頭注意力機制提高了模型的特征提取能力。其將輸入數(shù)據(jù)劃分為多個“頭”,使模型能夠并行捕捉輸入數(shù)據(jù)中的不同特征和模式,提高分類效果,驗證了多頭注意力對分類準確率的影響。
本文提出一種融合BiGRU 和多頭注意力機制的膠囊網(wǎng)絡(luò)文本分類模型,在THUCNews 新聞標題數(shù)據(jù)集和今日頭條新聞標題數(shù)據(jù)集上證明了其有效性,說明所提模型適用于短文本分類。在后續(xù)的工作中,將進一步優(yōu)化動態(tài)路由算法,減少模型參數(shù),進而提高模型的訓練速度與準確率。