郝 超, 裘杭萍, 孫 毅
(陸軍工程大學 指揮控制工程學院, 南京 210007)
在全球信息化大潮的推動下, 大數(shù)據(jù)得到了快速的發(fā)展, 人們處在一個海量數(shù)據(jù)的世界, 每時每刻都有新的數(shù)據(jù)信息產生, 這些數(shù)據(jù)不僅數(shù)量大并且還具有多樣性, 這也使得人們用傳統(tǒng)手段統(tǒng)計此類數(shù)據(jù)的時候變得困難[1]. 如何高效地處理這些數(shù)據(jù)是一個很有研究意義的問題, 這也推動著自動分類技術的發(fā)展.傳統(tǒng)的文本分類問題中每個樣本只對應一個標簽類別, 屬于單標簽文本分類. 但在現(xiàn)實生活中, 樣本信息往往不夠理想, 一個樣本可能擁有更加復雜的語義和內容[2]. Schapire 等人[3]提出了多標簽學習, 與單標簽文本分類不同, 多標簽學習指的是從標簽集中為每個樣本分配最相關的標簽子集的過程, 從而能夠更加準確地、有效地表示單標簽文本分類中不能表達復雜語義和內容. 比如題為“打造特色體育教學, 推進陽光體育運動”的新聞可能被同時認為與“體育”和“教育”兩者相關, 一條微博可能同時與“新冠”“疫苗”和“醫(yī)療”有關等等.
目前, 有關多標簽文本分類已經(jīng)提出很多方法, 這些方法主要可以分為3 大類: 問題轉換方法、算法自適應方法和基于深度學習方法.
問題轉換方法是最經(jīng)典的方法, 通過將多標簽分類問題轉化為多個單標簽分類問題來解決, 代表性的方法包括二元相關(binary relevance, BR)[4]、標簽冪集分解(label powerset, LP)[5]和分類器鏈(classifier chain,CC)[6]. BR 方法將多標簽分類問題分解為多個二分類問題來進行處理; LP 方法通過將標簽組合看成分類類別, 將多標簽分類問題轉化為多分類問題來處理;CC 方法將多標簽分類任務轉化為二進制分類問題鏈,后續(xù)的二進制分類器鏈基于前面的進行預測.
算法自適應方法通過擴展相應的機器學習方法來直接處理多標簽分類問題, 代表性的方法包括ML-DT(multi-label decision tree)、排名支持向量機(ranking support vector machine, Rank-SVM)和多標簽K 最近鄰(multi-label K-nearest-neighborhood, ML-KNN). MLDT 方法通過構造決策樹來執(zhí)行分類操作; Rank-SVM方法通過支持向量機(support vector machine, SVM)來處理多標簽分類問題; ML-KNN 方法通過改進KNN方法以實現(xiàn)通過K 近鄰來處理多標簽數(shù)據(jù).
隨著深度學習的發(fā)展許多基于深度學習的多標簽文本分類方法被提出, 代表性的方法包括TextCNN[7]、XML-CNN[8]、CNN-RNN[9]、SGM[10]和MAGNET[11].TextCNN 首次將CNN 應用于文本分類; XML-CNN 方法是對TextCNN 方法的改進, 采用了動態(tài)池化和二元交叉熵損失函數(shù); CNN-RNN 方法通過將CNN 和RNN進行融合來實現(xiàn)多標簽分類; SGM 方法采用Seq2Seq結構, 首次將序列生成的思想應用到多標簽文本分類中; MAGNET 方法利用Bi-LSTM 提取文本的特征, 用圖神經(jīng)網(wǎng)絡構建各標簽之間的內在聯(lián)系.
現(xiàn)有的方法沒能充分考慮標簽之間的相關性, 從而影響了分類效果. 針對此問題, 本文提出了一種基于BERT 和圖注意力網(wǎng)絡(graph attention network, GAT)的模型, 主要利用BERT 模型獲得文本的上下文表示,通過Bi-LSTM 和膠囊網(wǎng)絡分別提取全局特征和局部特征, 利用GAT 捕獲標簽之間的相關性, 從而來提升分類的性能.
多標簽文本分類(multi-label text classification,MLTC)的主要任務是通過若干類別標簽對文本樣本進行標注分類, 可形式化描述:d維的實例空間X=Rd,q個標簽組成的標簽空間Y={y1,y2,y3,···,yq}, 訓練集為D={(xi,Yi)|1 ≤i≤m}, 模型通過從實例空間到標簽空間學習一個映射:h:X→2Y多標簽文本分類任務.其中, 在每個實例(xi,Yi)中,xi∈X是d維特征向量,Yi?Y是實例xi的標簽集合, 測試樣本通過映射h便可得到相應的標簽集合[12].
本文提出的模型主要包括BERT 模塊、特征提取與融合模塊、GAT 分類器模塊3 個部分, 具體的框架如圖1 所示.
圖1 模型框架
文本信息對于人而言是可以直觀理解的, 但是對于計算機而言無法直接處理, 因此需要將文本轉化為計算機能夠處理的數(shù)據(jù). 傳統(tǒng)的文本表示包括one-hot和矩陣分解, 但是在表示的時候會產生維度災難、花費代價高等缺點, 隨著神經(jīng)網(wǎng)絡的發(fā)展, 詞嵌入(word embedding)作為一種新的詞表示方式出現(xiàn), 使用一個連續(xù)、低維、稠密的向量來表示單詞, 簡稱為詞向量.Word2Vec[13]和Glove[14]是一種靜態(tài)的詞向量表示方式, 對于任意一個詞, 其向量是恒定的, 不隨其上下文的變化而變化. 比如“apple”一詞在“APPLE Inc”和“apple tree”中有同樣的詞向量, 但是這兩處的意思是明顯不一樣的, 一個代表的是蘋果科技公司, 一個代表蘋果樹, 靜態(tài)詞向量無法解決一詞多義的問題.
為了更好的文本, 本文采用了預訓練模型BERT[15]來計算每個單詞的上下文表示, 依據(jù)不同的上下文對同一個單詞有不同的表示, BERT 模型由多層Transformer構成, 接受512 個詞的序列輸入, 并輸出該序列的表示,流程如圖2 所示. 對于由k個詞組成的文檔作為輸入W=[w1,w2,···,wk], 經(jīng)過BERT 模型得到相對應的詞向量E=[e1,e2,···,ek].
圖2 BERT 模塊
在圖卷積網(wǎng)絡(graph convolutional network, GCN)中, 一個節(jié)點的相鄰節(jié)點具有相同的權重, 然而在圖結構中相鄰節(jié)點的重要性存在一定差異. 在GAT 中引入“注意力機制”[16]對此缺點進行改進, 通過計算當前節(jié)點和相鄰節(jié)點的“注意力系數(shù)”, 在聚合相鄰節(jié)點時進行加權, 使得當前節(jié)點更加關注重要的節(jié)點. 因此, 本文采用了GAT[17], 利用圖注意力訓練得到的結果作為該模型的分類器, 以便更好地挖掘標簽之間的相關性.結構如圖3 所示.
圖3 GAT 分類器
在此模塊中, 將標簽向量矩陣和鄰接矩陣作為GAT 輸入, 經(jīng)過兩層的GAT 得到最終的分類器. 標簽向量采用Stanford 官方預訓練好的Glove 詞向量, 其中包括有50 維、100 維和300 維3 種, 為了使標簽包含更多的語義信息, 本文采用300 維的Glove 詞向量作為GAT 的輸入. 通過數(shù)據(jù)驅動[18]的方式建立鄰接矩陣, 首先獲得訓練數(shù)據(jù)集中的標簽共現(xiàn)矩陣M∈Rc×c,頻率向量F∈Rc,Fi表示的就是標簽i在訓練集中出現(xiàn)的頻率, 其中,c代表的是標簽數(shù)量. 通過以下計算能夠獲得初始鄰接矩陣A:
用如下公式更新l層的每個節(jié)點i的向量表示, 其中W是一個訓練參數(shù):
其中, ‖代表連接操作.
在本文模型中, 采用了Vaswani 等人[16]提到的多頭注意力, 通過不同的注意力來獲得更多的標簽間的關系. 此操作將被復制K次, 每一次的參數(shù)都是不相同的, 最終將K次結果求均值得到最終的輸出, 其計算公式如下:
將BERT 模塊得到詞向量分別作為Bi-LSTM 和膠囊網(wǎng)絡的輸入, 之后進行特征提取. 在特征提取時采用Bi-LSTM 來提取全局特征, 并通過膠囊網(wǎng)絡來兼顧局部特征, 最后通過特征融合的方式得到最終的特征向量. 這樣能夠充分利用上下文信息, 減少特征的丟失,從而帶來更好的分類效果.
(1)膠囊網(wǎng)絡
通過對卷積神經(jīng)網(wǎng)絡進行改進形成了膠囊網(wǎng)絡,在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡中, 池化步驟往往采用的是最大池化或者平均池化, 此過程中會造成特征信息大量丟失. 針對這一問題, Hinton 提出的膠囊網(wǎng)絡[19]用神經(jīng)元向量代替卷積神經(jīng)網(wǎng)絡中的單個神經(jīng)元節(jié)點, 能夠確保保存更多的特征信息, 提取到局部特征.
動態(tài)路由是膠囊網(wǎng)絡的核心機制, 通過動態(tài)路由來訓練神經(jīng)網(wǎng)絡, 能夠獲取文本序列中的單詞位置信息并捕獲文本的局部空間特征, 動態(tài)路由的過程如圖4所示.
圖4 膠囊網(wǎng)絡
在膠囊網(wǎng)絡中, 底層膠囊ui將輸入向量傳遞到高層膠囊u?j|i的過程稱為路由, 高層膠囊和底層膠囊的權重通過動態(tài)路由獲得, 過程如下:
其中,Wij為權重矩陣;cij為耦合系數(shù).
cij用來預測上一層膠囊和下一層膠囊的相似性,其通過動態(tài)路由的過程來決定, 并且輸入層和輸出層之間所有cij值和為1;bij的初始值設置為0, 通過迭代更新.
傳統(tǒng)的神經(jīng)網(wǎng)絡中, 多數(shù)情況下會使用Sigmoid、tanh 和ReLU 等激活函數(shù), 但在膠囊網(wǎng)絡中創(chuàng)建了一個新的激活函數(shù)Squash, 只會改變向量的長度, 不會改變向量的方向. 其中,sj通過耦合系數(shù)cij和u?j|i加權求和來得到, 作為Squash函數(shù)的輸入.
通過膠囊網(wǎng)絡動態(tài)路由的迭代, 可以獲得局部特征Hc=(v1,v2,v3,···,vk).
(2) Bi-LSTM
長短時記憶網(wǎng)絡(long short-term memory, LSTM)[20]能夠有效緩解梯度消失問題, 但RNN 和LSTM 都只能依據(jù)前一時刻的信息來預測下一時刻的輸出. 在有些問題中, 當前時刻的輸出除了與之前的狀態(tài)有關外, 還可能和未來的狀態(tài)有一定的聯(lián)系. 比如在對缺失單詞進行預測時, 往往需要將其上下文同時考慮才能獲得最準確的結果.
雙向長短時記憶網(wǎng)絡(bi-directional long short-term memory, Bi-LSTM)[21]有效地改善了這一問題. 一個前向的LSTM 和一個后向的LSTM 組合成Bi-LSTM. 通過前向和后向的特征提取, 能夠更好地建立上下文之間的關系, 從而捕獲全局文本特征. Bi-LSTM 結構如圖5 所示, 計算公式如下:
圖5 Bi-LSTM 結構
(3)特征融合
傳統(tǒng)的模式識別通常運用的是人工設計的特征,經(jīng)過特征提取算法得到特征數(shù)據(jù); 神經(jīng)網(wǎng)絡相比與傳統(tǒng)模式識別, 具有自動提取特征的特點和更好的特征提取效果, 特征的優(yōu)劣影響分類結果的好壞. 因此, 需要提取較優(yōu)的特征. 膠囊網(wǎng)絡作為對卷積神經(jīng)網(wǎng)絡的改進, 在提取局部特征的時候有著不錯的效果; Bi-LSTM通過前向和后向的傳播, 能夠較好關聯(lián)上下文信息, 提取全局特征.
在本文模型中, 充分的發(fā)揮兩者的優(yōu)勢, 分別采用膠囊網(wǎng)絡和Bi-LSTM 來提取文本的局部和全局的特征, 通過特征融合的方式將兩者特征提取結果進行信息的融合連接. 融合連接有兩種常用方式: 第一種是相加融合, 通過直接將對應維度的數(shù)據(jù)進行相加實現(xiàn), 這種方式不會改變特征向量的維度, 能夠避免維數(shù)災難;另一種是拼接融合, 通過將維度進行拼接來實現(xiàn), 這種方式會是將兩種特征向量拼接后, 維度會變大[22]. 由于拼接融合會導致維度增大, 可能會造成維度災難, 因此,本文選擇相加融合的方式.
膠囊網(wǎng)絡提取的特征可以用Hc=(v1,v2,v3,···,vk)來表示, Bi-LSTM 提取的特征可以用HL=(h1,h2,h3, ···,hk)來表示, 通過相加融合的方式, 可以得到新的特征H, 從而提升模型的效果.
通過分類器訓練獲得的每個標簽向量和膠囊網(wǎng)絡以及Bi-LSTM 獲得的融合特征向量相乘就可以得到標簽最終的得分, 得到最終的結果. 計算公式如下:
在實驗中, 損失函數(shù)選擇二元交叉熵(binary cross entropy loss), 它廣泛應用于神經(jīng)網(wǎng)絡分類訓練任務中.假設文本的真實值是y∈Rc,yi={0,1}表示標簽i是否屬于該文本, ^yc表示的是模型的預測值. 具體的計算公式如下:
其中, σ(·)代表的是Sigmoid 函數(shù).
本文采用了多標簽文本分類領域常用的數(shù)據(jù)集.包括Reuters-21578 和AAPD, 表1 為數(shù)據(jù)集詳細信息.
表1 數(shù)據(jù)集簡介
Reuters-21578: 該數(shù)據(jù)集是由路透社新聞組成的,收集了10788 條來自路透社的新聞, 包括7769 條訓練集和3019 條測試集組成, 一共包含90 個類別.
AAPD[9]: 該數(shù)據(jù)集是由Yang 等人提供. 是從網(wǎng)絡上收集了55840 篇論文的摘要和相應學科類別, 一篇學術論文屬于一個或者多個學科, 總共由54 個學科組成.
本實驗利用了GAT 來捕獲標簽之間的關系, 在進行實驗時, 主要采用了兩層帶有多頭注意力的GAT 層.在對句子和標簽進行表示時候, 均采用了BERT 向量獲得其表示. 對于Reuters-21578 和AAPD 數(shù)據(jù)集, 模型的批處理大小Batch Size 均設置為250, 訓練過程中使用了Adam 優(yōu)化器來使目標函數(shù)最小化, 學習率大小Learning Rate 設置為0.001, 并且在模型中添加了Dropout 層來防止過擬合, Dropout 的值取0.5, 多頭注意力機制頭的個數(shù)K=8. 表2 為實驗參數(shù)的匯總.
表2 網(wǎng)絡參數(shù)說明表
在本文的實驗中, 使用Micro-precision、Microrecall、Micro-F1[23]和漢明損失[3]作為評價指標, 其中,將Micro-F1 作為主要的評價指標, 各個指標的具體計算公式如下:
其中,L代表類別標簽數(shù)量,TP代表原來是正樣本被預測為正的數(shù)量,FP代表原來是正樣本被預測為負的數(shù)量,FN代表原來是負樣本被預測為正的數(shù)量.
漢明損失指的是被錯分的標簽的比例大小, 也就是兩個標簽集合的差別占比. 其計算公式如下:
其中, |S|是樣本的數(shù)量, |L|是標簽的總數(shù),xi表示標簽,yi表示真實標簽, XOR 是異或運算.
3.4.1 實驗對比
為了驗證本文提出模型的有效性, 選擇與現(xiàn)有的多標簽文本分類方法: BR[4]、CC[6]、ML-KNN[24]、CNN[7]、CNN-RNN[9]、S2S+Attn[25]、MAGNET[11]進行對比實驗.
本文提出的方法在Reuters-21578 和AAPD 數(shù)據(jù)集的結果如表3 和表4. 在正確率(P)、召回率(R)、F1 值和漢明損失(HL) 4 個常用的評價指標上與其他模型進行了對比, P、R 和F1 中的“+”代表該值越高,模型的效果越好, HL 這一列中的“–”代表該值越小, 模型的效果越好. 其中實驗的最佳結果由加粗黑體表示.
表3 Reuters-21578 數(shù)據(jù)集上結果對比
表4 AAPD 數(shù)據(jù)集上結果對比
從表3 和表4 的實驗結果可以看出, 本文提出的模型在Reuters-21578和AAPD 數(shù)據(jù)集上大部分評價指標上都展示了最好的結果. 在Reuters-21578 數(shù)據(jù)集上, 與CNN-RNN 相比在F1 值上面提升了接近4%, 漢明損失的值也取得了最優(yōu)的結果; 在AAPD 數(shù)據(jù)集上,本文模型在召回率、F1 值和HL 值上相比于其他模型均達到了最佳效果, 其中F1 值比最優(yōu)模型MAGNET提升了約1.5%. 在準確率指標上, 傳統(tǒng)的CNN 表現(xiàn)最佳, 本文模型次之. 主要原因在于CNN 是基于字符級別的模型, 利用網(wǎng)絡特點細粒度地抓取標簽與字符文本之間的關聯(lián), 從而提高模型的準確率, 另外, 在實驗訓練方面, CNN 在分類任務上超參數(shù)調整較小, 也是其在準確率上取得最佳表現(xiàn)的原因之一. 綜合4 類評價指標的實驗結果來看, 本文提出的模型比其他模型更具適用性, 在有效提升F1 值、召回率和減少漢明損失的同時, 兼顧了多標簽文本分類的準確率.
從實驗結果看, 深度學習方法普遍要比傳統(tǒng)機器學習方法(包括BR、CC、LP 等方法)表現(xiàn)更好. 這主要是由于傳統(tǒng)機器學習方法處理此類問題的時候是利用人來提取特征, 往往會帶來一些誤差, 并且在一些復雜情況下, 有更多的局限性. 而深度學習方法最大的進步就是能夠自動提取特征, 從而比傳統(tǒng)機器學習方法有更好的效果, 在特征提取上, 深度學習領域也涌現(xiàn)出了很多方法, 本文提出的方法采用了Bi-LSTM 和膠囊網(wǎng)絡的方法, 比只采用了Bi-LSTM 的模型MAGNET有著更好的效果, 證明了膠囊網(wǎng)絡的有效性.
在處理多標簽文本分類問題的時候, 標簽之間的相關性是非常重要的信息之一. 傳統(tǒng)的機器學習模型在處理多標簽文本分類問題上沒有考慮標簽之間的相關性, 本文提出的方法利用GAT 來捕獲標簽之間的相關性并建模, 從而來生成分類器, 提升了在多標簽文本分類任務上的效果.
綜上可知, 本文提出的方法與傳統(tǒng)機器學習方法和現(xiàn)有的深度學習方法相比, 取得了具有競爭力的結果.
3.4.2 不同詞向量比較
為了驗證BERT 在詞向量上的表現(xiàn), 采用了一組對比實驗來說明. 采用了目前比較常用的3 種詞向量包括Word2Vec 向量、Glove 向量和BERT 向量, 并且在對比實驗中加入隨機向量(random). 在Reuters-21578數(shù)據(jù)集上進行比較, 結果如圖6 所示.
從圖6 可以看出, Word2Vec 向量和Glove 向量的結果接近, 隨機向量的結果是最差的, BERT 向量的結果是最好的, 因此, 用BERT 向量能夠提升本文方法的準確率.
圖6 Reuters-21578 數(shù)據(jù)集詞向量比較
本文提出了一種基于BERT 和GAT 的模型HBGA來解決多標簽文本分類問題, 該模型是一個端到端的結構. 首先, 利用BERT 模型獲取文本的上下文向量,通過GAT 來捕獲標簽之間的注意力依賴結構, 使用特征矩陣和鄰接矩陣來探索標簽之間的關系, 進行訓練后形成一個分類器, 利用Bi-LSTM 和膠囊網(wǎng)絡分別提取文本的全局特征和局部特征, 進行特征融合獲得文本的特征向量, 最后將分類器和特征向量進行整合得到最終的結果. 實驗結果表明, 提出的模型在F1 值上均優(yōu)于對比模型, 有效地提升了多標簽文本分類的性能. 目前模型僅僅在標簽集小的數(shù)據(jù)集下取得不錯的效果, 在接下來的工作中, 將探究如何在大規(guī)模標簽集下的提升性能.