汪樂樂,張賢坤
(天津科技大學人工智能學院,天津300457)
文本分類是自然語言處理領域中的典型任務之一。根據單個文本所對應標簽數量的不同,可以將其劃分為單標簽文本分類和多標簽文本分類兩種類型,其中多標簽文本分類在實際生活中的應用更為廣泛,例如主題分類[1]、情感分析[2]和標簽推薦[3]等。
相較于單標簽分類,多標簽分類更準確地反映了文本的多樣性和復雜性,但同時也面臨著更多的挑戰。首先是數據的稀疏性問題,每個文本實例可能涉及多個標簽,這會導致標簽組合的數量過于龐大,因此在訓練數據中,很多標簽組合出現較少甚至沒有,這增加了模型訓練的難度。其次是標簽間可能存在依賴關系,也就是說某些標簽的存在或缺失會對其他標簽的預測產生影響,這種依賴關系會增加建模的復雜度。此外,每條文本都對應多個標簽,即包含多個標簽特征。因此,如何尋找與每個標簽最相關且最具有辨別力的標簽特定特征,利用這些特征提升模型的性能和效率具有重要意義。
在以往的多標簽文本分類工作中,研究人員通常先利用各種方法學習文本表示,然后進行分類,其中不同的方法在文本處理階段對于詞權重的處理方式不同。一些前饋神經網絡的方法,例如 DAN[4]和FastText[5],主要思想是將文本中的每個詞映射為相應的向量,并通過計算這些向量的平均值獲得文本表示;基于卷積神經網絡(CNN)的方法利用不同大小的卷積核捕獲文本的字、詞或短語的局部特征;基于Attention 機制的方法,通過向量點積或余弦相似性等計算方式衡量文本中詞向量的相似性,并將其歸一化獲得權重,從而突出文本中不同詞的重要性[6],使模型能夠在表示學習過程中關注重要信息。然而,上述方法都局限于某一文本實例內部,不能從全局判斷文本中的關鍵信息。此外,使用領域專家知識或特定領域的詞典、術語表等外部資源能夠豐富文本的特征表示[7],然而這種方法并不針對特定任務進行優化,因此可能無法充分表達特定任務所需的專業知識。
屬于某一標簽關鍵信息的聚合,相對于具體的文本實例可以更具體、更精準地表示標簽信息。在具體推理中,如果某一文本實例與某一標簽概念最相似,那么該文本實例大概率屬于這一標簽。利用這些更細粒度的全局關鍵信息具有重要意義。
為充分利用標簽的全局概念信息,本文提出一種基于標簽概念的多標簽文本分類方法。根據詞頻和潛在狄利克雷分布(latent Dirichlet allocation,LDA)主題模型提取標簽關鍵詞,并使用與文本編碼相同的方法對這些關鍵詞進行編碼,以獲得標簽概念。在學習和預測階段使用 K 近鄰(K-nearest neighbor,KNN)機制檢索概念集,獲取與當前文本表示最接近的k個標簽概念作為預測結果,并融合原模型預測得到最終預測結果。為了評估KNN 的預測結果,本文引入對比損失進行輔助訓練。在對比學習的過程中,將文本所對應的標簽概念視為正例,同時將其余標簽概念視為負例,以拉近文本表示與對應正例之間的距離,并推算與負例之間的距離。
本文的主要貢獻如下:(1)提出一種基于標簽概念的多標簽文本分類方法,從全局語料中獲取標簽概念,并使用對比損失優化的KNN 輔助預測;(2)本文方法可作為通用框架與其他多標簽文本分類模型結合,提高模型性能;(3)在AAPD 和RCV1-V2 兩個數據集上進行實驗,驗證了本文方法的有效性。
多標簽文本分類任務方法主要分為兩類:一類是基于機器學習的方法,另一類是基于深度學習的方法。
基于機器學習的方法側重特征提取與分類器的設置,并可更細化地分為問題轉換方法和算法自適應方法。問題轉換方法的主要思路是將多標簽分類問題轉換為一個或者多個單標簽分類問題[8],如Label Powerset[9]方法將標簽的組合視為一個新的標簽,將多標簽分類問題轉換為多分類問題。與問題轉換類方法不同,算法自適應類方法的主要思想是改變原有算法使其能適應多標簽分類需求。對于每一個新樣本,ML-KNN[10]方法首先考慮距離該新樣本最近的k個原樣本的標簽集合,再通過計算最大后驗概率,預測該新樣本的標簽集合。基于機器學習的文本分類方法取得了一定成效,但因需要人工提取特征,忽略了文本數據中的順序結構和上下文信息而陷入瓶頸。
近年來,神經網絡和深度學習在多標簽文本分類領域快速發展。由于CNN 能夠使用不同大小的卷積核對文本序列進行滑動窗口操作,從而有效捕獲文本序列中詞或短語的局部特征,因此很快被用于多標簽文本分類任務。Kim[11]首先提出TextCNN 模型,該模型用一層卷積捕獲局部特征,并通過全局池化操作將這些特征整合為文本表示,最后使用全連接層進行分類。XML-CNN[12]設計動態的最大池化,相較于普通的最大池化,其補充了文檔的不同區域更細粒度的特征,同時在池化層和輸出層之間增加隱藏瓶頸層,用于學習緊湊的文本表示,既輕量化了模型,又提高了分類性能。HFT-CNN[13]利用微調技術,將上層標簽信息傳遞到下層,緩解了層級標簽的數據稀疏性。相比基于CNN 的方法,基于循環神經網絡(RNN)的方法可以通過時間步的傳遞捕獲長程相關性。此外,長短期記憶網絡(LSTM)、門控循環單元(GRU)等RNN 變體解決了梯度消失和梯度爆炸問題,因此得到了廣泛應用。SHO-LSTM[14]方法使用了能解決非線性優化問題能力的斑點鬣狗優化器,通過優化LSTM 的初始權重提升模型性能。注意力機制的引入,進一步提高了模型的分類性能。在文本分類任務中,注意力分數可以被理解為是一個重要的權重向量[15]。SGM[16]模型將多標簽文本分類任務看作序列生成問題,考慮標簽間的相互關聯,并引入Attention自動獲取輸入文本的關鍵信息。Xiao 等[17]提出一種將兩組基于歷史信息的注意力機制應用于seq2seq模型的方法,其中一組注意力機制考慮歷史上下文詞匯以增強預測能力,另一組注意力機制考慮歷史標簽信息以緩解錯誤傳播問題。Transformer 是一種基于多頭注意力設計的模型,它克服了RNN 不能并行計算、CNN 捕獲全文的上下文信息效率低下的缺點。HG-Transformer[18]模型將文本建模為圖,并將多層Transfomer 結構用在單詞、句和圖級別捕獲局部特征,最后依據標簽的層次關系生成標簽的表示形式。LightXML[19]是一種輕量級的深度學習模型,采用端到端訓練和動態負標簽采樣。該方法使用生成合作網絡對標簽進行召回和排序,其中標簽召回部分生成負標簽和正標簽,標簽排序部分將正標簽與這些標簽區分開來。在標簽排序的訓練階段中,通過將相同的文本表示作為輸入,動態采樣負標簽,以提升模型的分類性能。MAGNET[20]模型利用圖注意力網絡學習標簽之間的依賴關系,利用特征矩陣和相關系數矩陣生成分類器。該模型通過在圖中傳播信息和捕捉關系,有效解決了語義稀疏性問題,提升了分類性能。LiGCN[21]方法提出了一個可解釋標簽的圖卷積網絡模型,將詞元和標簽建模為異構圖中的節點,解決多標簽文本分類問題,通過這種方式,能夠考慮包括詞元級別關系在內的多個關系。然而,基于圖神經網絡的方法存在過平滑的問題,無法捕獲深度依賴特征。
本文提出一種基于標簽概念的多標簽文本分類方法,模型框架如圖1 所示。本文方法主要包括3 個部分:標簽概念獲取、對比學習和綜合預測。標簽概念獲取部分將訓練集按照標簽劃分,依據詞頻和LDA 主題模型抽取標簽的全局關鍵詞,隨后采用與編碼文本相同的方式對標簽關鍵詞進行編碼,以獲得標簽概念的向量表示;對比學習階段引入對比損失,使文本表示與對應標簽概念之間的距離盡可能小,與其他標簽概念之間的距離盡可能大;綜合預測階段將KNN 預測結果與基礎模型預測結果的加權和作為最終預測結果。

圖1 模型框架Fig. 1 Model framework
為獲得具有全局關鍵信息的標簽概念,本文提出了一種方法,首先基于詞頻和LDA 主題模型抽取標簽關鍵詞,然后將這些關鍵詞編碼成標簽概念。在抽取標簽關鍵詞前,隨機抽取屬于某一標簽的文本語料,構建該標簽的全局語料庫。綜合考慮本實驗使用的數據集和實驗效率,標簽語料庫的數量上限設定為10 000。
從概率角度分析,顯然標簽語料中詞頻越高的詞與該標簽越相關,故對屬于標簽yi的全體文本進行詞頻統計,取前k個詞構成標簽關鍵詞集Keypi。
重復是提高詞影響力的一種方式,故利用LDA主題模型進一步區分關鍵詞。將iy標簽的全局語料主題數設置為2,原因如下:每條文本具有2 個及以上標簽,若將標簽看作主題,則該語料庫所包含主題必有yi標簽主題,剩余標簽主題可統一視為另一主題,且這兩個主題各包含k/2 個主題關鍵詞。極端情況下,詞頻關鍵詞包含yi標簽主題的關鍵詞,且與剩余主題的關鍵詞完全不相干,這樣更關鍵的詞就被篩選出來。采用LDA 主題模型提取影響力前k個主題詞得到標簽關鍵詞集Keyli。
在頻數關鍵詞集Keypi的基礎上添加兩子集的交集,得到標簽yi的最終關鍵詞句,即
采取與文本相同的編碼方式得到標簽yi的概念表示,即Ci=Encoder(Si)。
在預測階段,首先將文本xi輸入到基礎模型,得到基礎模型預測結果yb和期間的文本表示Encoder(xi)。其次,度量該文本表示與所有標簽概念之間的距離,取前p個最近的標簽概念所對應的標簽輔助預測。具體KNN 預測過程為
為防止梯度爆炸或者梯度消失,距離d(a,b)為經Z-score 標準化后的a與b間的歐氏距離。jα表示第j個標簽的權重,與文本表示距離越近的標簽概念權重越大。最后,將KNN 預測結果與基礎模型預測結果yb作加權和,其中KNN 預測權重為λKNN,得到最終預測結果,即
對于多標簽文本分類,通常使用二元交叉熵損失作為損失函數,對于一批含有M個文本的數據來說,其損失LBCE為
其中:yi為第i個文本的真實標簽,為第i個文本的預測標簽值。
此外,為了評估KNN 預測的質量、推動文本編碼時考慮全局的標簽概念特征,引入標簽概念和文本表示的對比損失[22]輔助訓練模型。對于文本ix,計算文本表示與所有標簽概念表示之間的距離,對比損失為
其中:Encoder(xi)為文本 xi的編碼表示,Ci為其真實標簽概念。對比損失LC與文本表示和真實標簽概念表示之間的距離 d (Encoder ( xi), Ci)成正比,因此在模型訓練的過程中,文本編碼會考慮真實標簽概念的影響,使他們之間的距離變得更近;對比損失LC與其他標簽概念間的距離成反比,則會被優化得更遠。綜合考慮兩種損失,模型總體損失函數為
本文在兩個廣泛使用的數據集上對所提出的方法進行評估,數據集相關信息見表1。

表1 數據集相關信息Tab. 1 Dataset related information
AAPD[16]是arXiv 上計算機科學領域的論文摘要數據集,共包含55 840 篇摘要、54 個主題,其中每篇摘要對應多個領域主題。
RCV1-V2[23]是一個大型數據集,包含超過80 萬條路透社提供的新聞報道和103 個主題,其中每篇報道對應多個新聞主題。
實驗選取常用多標簽分類評價指標Micro-F1、Macro-F1 和 Micro-Recall 評估實驗性能。Micro-Recall 反映了預測為某一類的樣本中,預測正確的比例,Micro-F1 綜合考慮了預測的總體精確率和召回率,Macro-F1 則是Micro-F1 全體的平均。此外,Micro-F1 指標傾向樣本,任意樣本權重相同;Macro-F1 指標傾向類別,任意類別權重相同。
為了驗證方法的有效性,選取以下模型作為基礎模型:
FastText[5]:用詞向量的平均作為文本表示再進行分類。
TextRNN[24]:使用循環神經網絡捕獲文本的長序列特征信息的分類模型,神經元采用GRU。
TextCNN[11]:使用不同大小的最大池化卷積核捕獲文本特征的分類模型,側重局部特征。
SGM[16]:將多標簽文本分類任務看作生成輸入文本的標簽序列任務。
詞嵌入使用Glove[25]預訓練的300 維詞向量,并隨機初始化詞表以外的單詞。KNN 預測標簽數p在AAPD 數據集上設定為2,在RCV1-V2 數據集上設為3,抽取標簽關鍵詞數為10,KNN 預測權重設定為0.5。模型使用Adam 優化器;模型批次大小為64;初始學習率設置為0.000 1,連續5 個epoch 實驗性能未提升衰減學習率,衰減率為0.1,連續10 個epoch性能未提升則停止訓練。模型均使用PyTorch 框架實現,其余參數與原模型一致。
詳細實驗結果見表2。結果表明:該方法應用在4 個基礎模型上均能提升模型性能,其中在TextCNN上效果最好,在 AAPD 數據集上 Micro-Recall、Micro-F1 和Macro-F1 指標分別提升3.67%、1.66%、4.07%,在RCV1-V2 數據集上則分別提升1.86%、1.02%、2.79%。應用在TextCNN 上效果最好的原因可能是KNN 預測部分補充了TextCNN 最大池化過程中丟失的信息。

表2 該方法應用在兩個數據集上的實驗性能對比Tab. 2 Experimental performance comparison of the method applied to two data sets
此外,在調整好局部權重的前提下,本文補充了部分實驗,進一步驗證本文方法仍能通過學習全體實例中的關鍵信息提升模型性能。在 TextCNN、TextRNN 模型上引入Attention 機制作為基礎模型,再結合本文方法進行實驗對比,實驗結果見表3。

表3 引入Attention機制的TextCNN、TextRNN實驗性能對比Tab. 3 Experimental performance comparison of TextCNN and TextRNN with the introduced attention mechanism
通過對表3 中實驗結果與表2 中帶有Attention機制的SGM 相關實驗結果進行綜合分析,可以發現,各基礎模型添加本文方法后,實驗性能均得到一定程度的提升,這表明本文方法能在文本編碼過程中學習標簽的全局關鍵信息,并與Attention 機制具有互補關系。
本文方法中有3 個關鍵參數對實驗結果產生重要影響,分別是KNN 預測的標簽數、獲取標簽概念時的候選標簽關鍵詞數以及KNN 預測權重。因此,結合TextCNN 和FastText 兩個基礎模型,在AAPD數據集上進行參數調節,分析參數對實驗結果的影響。每組實驗固定兩個參數,對剩余參數進行調節。在默認設置下,KNN 預測標簽數為2,標簽關鍵詞數為10,KNN 預測權重為0.5。
3.6.1 KNN 預測標簽數
KNN 預測標簽數p對實驗的影響如圖2 所示。實驗結果表明,模型在p為2 時性能最好。起始點KNN 預測標簽數量為0,即為基礎模型實驗結果,性能較起始點的提升證明了該方法的有效性。分析數據集,AAPD 數據集的平均標簽數為2.4,其中標簽數為2 的數據占比為69.4%,因此推理KNN 預測標簽數應小于樣本最大標簽數,設為該數據集文本對應標簽數的眾數比較合理。此外,p設為3、4 時,各指標性能持續下降,說明預測多余標簽反而會對結果造成干擾。

圖2 KNN預測標簽數對實驗的影響Fig. 2 Effect of the number of labels predicted by KNN on the experiment
3.6.2 標簽關鍵詞數
標簽關鍵詞數k對實驗結果的影響如圖3 所示。當標簽關鍵詞數量為10 時,模型表現最佳。這說明即使面向全局,標簽關鍵信息也是有限的,相對少量的關鍵詞所編碼的標簽概念更具區分度。然而,隨著標簽關鍵詞的增加,對應標簽概念的普適性降低,進而導致實驗性能下降。

圖3 標簽關鍵詞數對實驗的影響Fig. 3 Effect of the number of label key words on the experiment
3.6.3 KNN 預測權重
KNN 預測權重λKNN對實驗結果的影響如圖4 所示。模型性能先增長再降低,性能先增長說明包含全局關鍵信息的KNN 預測結果能彌補文本局部內權重分配不合理的缺陷。當λKNN取1 時,即完全采取KNN 預測時,本文方法結合FastText 模型性能大幅度降低,結合TextCNN 模型的性能幾乎為零。這說明每條文本所含有的關鍵信息是稀疏的,該方法不具備獨立預測能力。

圖4 KNN預測權重對實驗的影響Fig. 4 Effect of KNN prediction weight on the experiment
本文提出了一種基于標簽概念的多標簽文本分類方法。首先,為獲取某一標簽共享在全體實例中的關鍵信息并顯式表達,先利用詞頻和LDA 主題模型提取標簽關鍵詞,再將其編碼為標簽概念。其次,本文方法引入了對比損失,減小文本表示與所對應標簽概念之間的距離,從而在文本編碼過程中能夠充分學習文本所對應標簽的全局關鍵信息。同時,本文方法具有良好的可移植性,可以嵌入現有的多標簽文本分類模型中。在AAPD 和RCV1-V2 兩個數據集上的實驗結果表明,本文方法能有效提升基礎模型的性能。此外,本文還對幾個關鍵參數設定的原因和影響進行了討論。然而,本文方法仍存在一些不足之處。由于綜合預測和對比學習階段需將每一條文本與所有的標簽概念進行對比,對于具有大型標簽集的數據而言,這兩個階段的時間開銷較大,因此不適用于極限多標簽文本分類任務。在后續的研究中,這將成為重點關注和討論的內容。