汪樂樂,張賢坤
(天津科技大學(xué)人工智能學(xué)院,天津300457)
文本分類是自然語言處理領(lǐng)域中的典型任務(wù)之一。根據(jù)單個文本所對應(yīng)標簽數(shù)量的不同,可以將其劃分為單標簽文本分類和多標簽文本分類兩種類型,其中多標簽文本分類在實際生活中的應(yīng)用更為廣泛,例如主題分類[1]、情感分析[2]和標簽推薦[3]等。
相較于單標簽分類,多標簽分類更準確地反映了文本的多樣性和復(fù)雜性,但同時也面臨著更多的挑戰(zhàn)。首先是數(shù)據(jù)的稀疏性問題,每個文本實例可能涉及多個標簽,這會導(dǎo)致標簽組合的數(shù)量過于龐大,因此在訓(xùn)練數(shù)據(jù)中,很多標簽組合出現(xiàn)較少甚至沒有,這增加了模型訓(xùn)練的難度。其次是標簽間可能存在依賴關(guān)系,也就是說某些標簽的存在或缺失會對其他標簽的預(yù)測產(chǎn)生影響,這種依賴關(guān)系會增加建模的復(fù)雜度。此外,每條文本都對應(yīng)多個標簽,即包含多個標簽特征。因此,如何尋找與每個標簽最相關(guān)且最具有辨別力的標簽特定特征,利用這些特征提升模型的性能和效率具有重要意義。
在以往的多標簽文本分類工作中,研究人員通常先利用各種方法學(xué)習(xí)文本表示,然后進行分類,其中不同的方法在文本處理階段對于詞權(quán)重的處理方式不同。一些前饋神經(jīng)網(wǎng)絡(luò)的方法,例如 DAN[4]和FastText[5],主要思想是將文本中的每個詞映射為相應(yīng)的向量,并通過計算這些向量的平均值獲得文本表示;基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的方法利用不同大小的卷積核捕獲文本的字、詞或短語的局部特征;基于Attention 機制的方法,通過向量點積或余弦相似性等計算方式衡量文本中詞向量的相似性,并將其歸一化獲得權(quán)重,從而突出文本中不同詞的重要性[6],使模型能夠在表示學(xué)習(xí)過程中關(guān)注重要信息。然而,上述方法都局限于某一文本實例內(nèi)部,不能從全局判斷文本中的關(guān)鍵信息。此外,使用領(lǐng)域?qū)<抑R或特定領(lǐng)域的詞典、術(shù)語表等外部資源能夠豐富文本的特征表示[7],然而這種方法并不針對特定任務(wù)進行優(yōu)化,因此可能無法充分表達特定任務(wù)所需的專業(yè)知識。
屬于某一標簽關(guān)鍵信息的聚合,相對于具體的文本實例可以更具體、更精準地表示標簽信息。在具體推理中,如果某一文本實例與某一標簽概念最相似,那么該文本實例大概率屬于這一標簽。利用這些更細粒度的全局關(guān)鍵信息具有重要意義。
為充分利用標簽的全局概念信息,本文提出一種基于標簽概念的多標簽文本分類方法。根據(jù)詞頻和潛在狄利克雷分布(latent Dirichlet allocation,LDA)主題模型提取標簽關(guān)鍵詞,并使用與文本編碼相同的方法對這些關(guān)鍵詞進行編碼,以獲得標簽概念。在學(xué)習(xí)和預(yù)測階段使用 K 近鄰(K-nearest neighbor,KNN)機制檢索概念集,獲取與當(dāng)前文本表示最接近的k個標簽概念作為預(yù)測結(jié)果,并融合原模型預(yù)測得到最終預(yù)測結(jié)果。為了評估KNN 的預(yù)測結(jié)果,本文引入對比損失進行輔助訓(xùn)練。在對比學(xué)習(xí)的過程中,將文本所對應(yīng)的標簽概念視為正例,同時將其余標簽概念視為負例,以拉近文本表示與對應(yīng)正例之間的距離,并推算與負例之間的距離。
本文的主要貢獻如下:(1)提出一種基于標簽概念的多標簽文本分類方法,從全局語料中獲取標簽概念,并使用對比損失優(yōu)化的KNN 輔助預(yù)測;(2)本文方法可作為通用框架與其他多標簽文本分類模型結(jié)合,提高模型性能;(3)在AAPD 和RCV1-V2 兩個數(shù)據(jù)集上進行實驗,驗證了本文方法的有效性。
多標簽文本分類任務(wù)方法主要分為兩類:一類是基于機器學(xué)習(xí)的方法,另一類是基于深度學(xué)習(xí)的方法。
基于機器學(xué)習(xí)的方法側(cè)重特征提取與分類器的設(shè)置,并可更細化地分為問題轉(zhuǎn)換方法和算法自適應(yīng)方法。問題轉(zhuǎn)換方法的主要思路是將多標簽分類問題轉(zhuǎn)換為一個或者多個單標簽分類問題[8],如Label Powerset[9]方法將標簽的組合視為一個新的標簽,將多標簽分類問題轉(zhuǎn)換為多分類問題。與問題轉(zhuǎn)換類方法不同,算法自適應(yīng)類方法的主要思想是改變原有算法使其能適應(yīng)多標簽分類需求。對于每一個新樣本,ML-KNN[10]方法首先考慮距離該新樣本最近的k個原樣本的標簽集合,再通過計算最大后驗概率,預(yù)測該新樣本的標簽集合?;跈C器學(xué)習(xí)的文本分類方法取得了一定成效,但因需要人工提取特征,忽略了文本數(shù)據(jù)中的順序結(jié)構(gòu)和上下文信息而陷入瓶頸。
近年來,神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)在多標簽文本分類領(lǐng)域快速發(fā)展。由于CNN 能夠使用不同大小的卷積核對文本序列進行滑動窗口操作,從而有效捕獲文本序列中詞或短語的局部特征,因此很快被用于多標簽文本分類任務(wù)。Kim[11]首先提出TextCNN 模型,該模型用一層卷積捕獲局部特征,并通過全局池化操作將這些特征整合為文本表示,最后使用全連接層進行分類。XML-CNN[12]設(shè)計動態(tài)的最大池化,相較于普通的最大池化,其補充了文檔的不同區(qū)域更細粒度的特征,同時在池化層和輸出層之間增加隱藏瓶頸層,用于學(xué)習(xí)緊湊的文本表示,既輕量化了模型,又提高了分類性能。HFT-CNN[13]利用微調(diào)技術(shù),將上層標簽信息傳遞到下層,緩解了層級標簽的數(shù)據(jù)稀疏性。相比基于CNN 的方法,基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的方法可以通過時間步的傳遞捕獲長程相關(guān)性。此外,長短期記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)等RNN 變體解決了梯度消失和梯度爆炸問題,因此得到了廣泛應(yīng)用。SHO-LSTM[14]方法使用了能解決非線性優(yōu)化問題能力的斑點鬣狗優(yōu)化器,通過優(yōu)化LSTM 的初始權(quán)重提升模型性能。注意力機制的引入,進一步提高了模型的分類性能。在文本分類任務(wù)中,注意力分數(shù)可以被理解為是一個重要的權(quán)重向量[15]。SGM[16]模型將多標簽文本分類任務(wù)看作序列生成問題,考慮標簽間的相互關(guān)聯(lián),并引入Attention自動獲取輸入文本的關(guān)鍵信息。Xiao 等[17]提出一種將兩組基于歷史信息的注意力機制應(yīng)用于seq2seq模型的方法,其中一組注意力機制考慮歷史上下文詞匯以增強預(yù)測能力,另一組注意力機制考慮歷史標簽信息以緩解錯誤傳播問題。Transformer 是一種基于多頭注意力設(shè)計的模型,它克服了RNN 不能并行計算、CNN 捕獲全文的上下文信息效率低下的缺點。HG-Transformer[18]模型將文本建模為圖,并將多層Transfomer 結(jié)構(gòu)用在單詞、句和圖級別捕獲局部特征,最后依據(jù)標簽的層次關(guān)系生成標簽的表示形式。LightXML[19]是一種輕量級的深度學(xué)習(xí)模型,采用端到端訓(xùn)練和動態(tài)負標簽采樣。該方法使用生成合作網(wǎng)絡(luò)對標簽進行召回和排序,其中標簽召回部分生成負標簽和正標簽,標簽排序部分將正標簽與這些標簽區(qū)分開來。在標簽排序的訓(xùn)練階段中,通過將相同的文本表示作為輸入,動態(tài)采樣負標簽,以提升模型的分類性能。MAGNET[20]模型利用圖注意力網(wǎng)絡(luò)學(xué)習(xí)標簽之間的依賴關(guān)系,利用特征矩陣和相關(guān)系數(shù)矩陣生成分類器。該模型通過在圖中傳播信息和捕捉關(guān)系,有效解決了語義稀疏性問題,提升了分類性能。LiGCN[21]方法提出了一個可解釋標簽的圖卷積網(wǎng)絡(luò)模型,將詞元和標簽建模為異構(gòu)圖中的節(jié)點,解決多標簽文本分類問題,通過這種方式,能夠考慮包括詞元級別關(guān)系在內(nèi)的多個關(guān)系。然而,基于圖神經(jīng)網(wǎng)絡(luò)的方法存在過平滑的問題,無法捕獲深度依賴特征。
本文提出一種基于標簽概念的多標簽文本分類方法,模型框架如圖1 所示。本文方法主要包括3 個部分:標簽概念獲取、對比學(xué)習(xí)和綜合預(yù)測。標簽概念獲取部分將訓(xùn)練集按照標簽劃分,依據(jù)詞頻和LDA 主題模型抽取標簽的全局關(guān)鍵詞,隨后采用與編碼文本相同的方式對標簽關(guān)鍵詞進行編碼,以獲得標簽概念的向量表示;對比學(xué)習(xí)階段引入對比損失,使文本表示與對應(yīng)標簽概念之間的距離盡可能小,與其他標簽概念之間的距離盡可能大;綜合預(yù)測階段將KNN 預(yù)測結(jié)果與基礎(chǔ)模型預(yù)測結(jié)果的加權(quán)和作為最終預(yù)測結(jié)果。
圖1 模型框架Fig. 1 Model framework
為獲得具有全局關(guān)鍵信息的標簽概念,本文提出了一種方法,首先基于詞頻和LDA 主題模型抽取標簽關(guān)鍵詞,然后將這些關(guān)鍵詞編碼成標簽概念。在抽取標簽關(guān)鍵詞前,隨機抽取屬于某一標簽的文本語料,構(gòu)建該標簽的全局語料庫。綜合考慮本實驗使用的數(shù)據(jù)集和實驗效率,標簽語料庫的數(shù)量上限設(shè)定為10 000。
從概率角度分析,顯然標簽語料中詞頻越高的詞與該標簽越相關(guān),故對屬于標簽yi的全體文本進行詞頻統(tǒng)計,取前k個詞構(gòu)成標簽關(guān)鍵詞集Keypi。
重復(fù)是提高詞影響力的一種方式,故利用LDA主題模型進一步區(qū)分關(guān)鍵詞。將iy標簽的全局語料主題數(shù)設(shè)置為2,原因如下:每條文本具有2 個及以上標簽,若將標簽看作主題,則該語料庫所包含主題必有yi標簽主題,剩余標簽主題可統(tǒng)一視為另一主題,且這兩個主題各包含k/2 個主題關(guān)鍵詞。極端情況下,詞頻關(guān)鍵詞包含yi標簽主題的關(guān)鍵詞,且與剩余主題的關(guān)鍵詞完全不相干,這樣更關(guān)鍵的詞就被篩選出來。采用LDA 主題模型提取影響力前k個主題詞得到標簽關(guān)鍵詞集Keyli。
在頻數(shù)關(guān)鍵詞集Keypi的基礎(chǔ)上添加兩子集的交集,得到標簽yi的最終關(guān)鍵詞句,即
采取與文本相同的編碼方式得到標簽yi的概念表示,即Ci=Encoder(Si)。
在預(yù)測階段,首先將文本xi輸入到基礎(chǔ)模型,得到基礎(chǔ)模型預(yù)測結(jié)果yb和期間的文本表示Encoder(xi)。其次,度量該文本表示與所有標簽概念之間的距離,取前p個最近的標簽概念所對應(yīng)的標簽輔助預(yù)測。具體KNN 預(yù)測過程為
為防止梯度爆炸或者梯度消失,距離d(a,b)為經(jīng)Z-score 標準化后的a與b間的歐氏距離。jα表示第j個標簽的權(quán)重,與文本表示距離越近的標簽概念權(quán)重越大。最后,將KNN 預(yù)測結(jié)果與基礎(chǔ)模型預(yù)測結(jié)果yb作加權(quán)和,其中KNN 預(yù)測權(quán)重為λKNN,得到最終預(yù)測結(jié)果,即
對于多標簽文本分類,通常使用二元交叉熵損失作為損失函數(shù),對于一批含有M個文本的數(shù)據(jù)來說,其損失LBCE為
其中:yi為第i個文本的真實標簽,為第i個文本的預(yù)測標簽值。
此外,為了評估KNN 預(yù)測的質(zhì)量、推動文本編碼時考慮全局的標簽概念特征,引入標簽概念和文本表示的對比損失[22]輔助訓(xùn)練模型。對于文本ix,計算文本表示與所有標簽概念表示之間的距離,對比損失為
其中:Encoder(xi)為文本 xi的編碼表示,Ci為其真實標簽概念。對比損失LC與文本表示和真實標簽概念表示之間的距離 d (Encoder ( xi), Ci)成正比,因此在模型訓(xùn)練的過程中,文本編碼會考慮真實標簽概念的影響,使他們之間的距離變得更近;對比損失LC與其他標簽概念間的距離成反比,則會被優(yōu)化得更遠。綜合考慮兩種損失,模型總體損失函數(shù)為
本文在兩個廣泛使用的數(shù)據(jù)集上對所提出的方法進行評估,數(shù)據(jù)集相關(guān)信息見表1。
表1 數(shù)據(jù)集相關(guān)信息Tab. 1 Dataset related information
AAPD[16]是arXiv 上計算機科學(xué)領(lǐng)域的論文摘要數(shù)據(jù)集,共包含55 840 篇摘要、54 個主題,其中每篇摘要對應(yīng)多個領(lǐng)域主題。
RCV1-V2[23]是一個大型數(shù)據(jù)集,包含超過80 萬條路透社提供的新聞報道和103 個主題,其中每篇報道對應(yīng)多個新聞主題。
實驗選取常用多標簽分類評價指標Micro-F1、Macro-F1 和 Micro-Recall 評估實驗性能。Micro-Recall 反映了預(yù)測為某一類的樣本中,預(yù)測正確的比例,Micro-F1 綜合考慮了預(yù)測的總體精確率和召回率,Macro-F1 則是Micro-F1 全體的平均。此外,Micro-F1 指標傾向樣本,任意樣本權(quán)重相同;Macro-F1 指標傾向類別,任意類別權(quán)重相同。
為了驗證方法的有效性,選取以下模型作為基礎(chǔ)模型:
FastText[5]:用詞向量的平均作為文本表示再進行分類。
TextRNN[24]:使用循環(huán)神經(jīng)網(wǎng)絡(luò)捕獲文本的長序列特征信息的分類模型,神經(jīng)元采用GRU。
TextCNN[11]:使用不同大小的最大池化卷積核捕獲文本特征的分類模型,側(cè)重局部特征。
SGM[16]:將多標簽文本分類任務(wù)看作生成輸入文本的標簽序列任務(wù)。
詞嵌入使用Glove[25]預(yù)訓(xùn)練的300 維詞向量,并隨機初始化詞表以外的單詞。KNN 預(yù)測標簽數(shù)p在AAPD 數(shù)據(jù)集上設(shè)定為2,在RCV1-V2 數(shù)據(jù)集上設(shè)為3,抽取標簽關(guān)鍵詞數(shù)為10,KNN 預(yù)測權(quán)重設(shè)定為0.5。模型使用Adam 優(yōu)化器;模型批次大小為64;初始學(xué)習(xí)率設(shè)置為0.000 1,連續(xù)5 個epoch 實驗性能未提升衰減學(xué)習(xí)率,衰減率為0.1,連續(xù)10 個epoch性能未提升則停止訓(xùn)練。模型均使用PyTorch 框架實現(xiàn),其余參數(shù)與原模型一致。
詳細實驗結(jié)果見表2。結(jié)果表明:該方法應(yīng)用在4 個基礎(chǔ)模型上均能提升模型性能,其中在TextCNN上效果最好,在 AAPD 數(shù)據(jù)集上 Micro-Recall、Micro-F1 和Macro-F1 指標分別提升3.67%、1.66%、4.07%,在RCV1-V2 數(shù)據(jù)集上則分別提升1.86%、1.02%、2.79%。應(yīng)用在TextCNN 上效果最好的原因可能是KNN 預(yù)測部分補充了TextCNN 最大池化過程中丟失的信息。
表2 該方法應(yīng)用在兩個數(shù)據(jù)集上的實驗性能對比Tab. 2 Experimental performance comparison of the method applied to two data sets
此外,在調(diào)整好局部權(quán)重的前提下,本文補充了部分實驗,進一步驗證本文方法仍能通過學(xué)習(xí)全體實例中的關(guān)鍵信息提升模型性能。在 TextCNN、TextRNN 模型上引入Attention 機制作為基礎(chǔ)模型,再結(jié)合本文方法進行實驗對比,實驗結(jié)果見表3。
表3 引入Attention機制的TextCNN、TextRNN實驗性能對比Tab. 3 Experimental performance comparison of TextCNN and TextRNN with the introduced attention mechanism
通過對表3 中實驗結(jié)果與表2 中帶有Attention機制的SGM 相關(guān)實驗結(jié)果進行綜合分析,可以發(fā)現(xiàn),各基礎(chǔ)模型添加本文方法后,實驗性能均得到一定程度的提升,這表明本文方法能在文本編碼過程中學(xué)習(xí)標簽的全局關(guān)鍵信息,并與Attention 機制具有互補關(guān)系。
本文方法中有3 個關(guān)鍵參數(shù)對實驗結(jié)果產(chǎn)生重要影響,分別是KNN 預(yù)測的標簽數(shù)、獲取標簽概念時的候選標簽關(guān)鍵詞數(shù)以及KNN 預(yù)測權(quán)重。因此,結(jié)合TextCNN 和FastText 兩個基礎(chǔ)模型,在AAPD數(shù)據(jù)集上進行參數(shù)調(diào)節(jié),分析參數(shù)對實驗結(jié)果的影響。每組實驗固定兩個參數(shù),對剩余參數(shù)進行調(diào)節(jié)。在默認設(shè)置下,KNN 預(yù)測標簽數(shù)為2,標簽關(guān)鍵詞數(shù)為10,KNN 預(yù)測權(quán)重為0.5。
3.6.1 KNN 預(yù)測標簽數(shù)
KNN 預(yù)測標簽數(shù)p對實驗的影響如圖2 所示。實驗結(jié)果表明,模型在p為2 時性能最好。起始點KNN 預(yù)測標簽數(shù)量為0,即為基礎(chǔ)模型實驗結(jié)果,性能較起始點的提升證明了該方法的有效性。分析數(shù)據(jù)集,AAPD 數(shù)據(jù)集的平均標簽數(shù)為2.4,其中標簽數(shù)為2 的數(shù)據(jù)占比為69.4%,因此推理KNN 預(yù)測標簽數(shù)應(yīng)小于樣本最大標簽數(shù),設(shè)為該數(shù)據(jù)集文本對應(yīng)標簽數(shù)的眾數(shù)比較合理。此外,p設(shè)為3、4 時,各指標性能持續(xù)下降,說明預(yù)測多余標簽反而會對結(jié)果造成干擾。
圖2 KNN預(yù)測標簽數(shù)對實驗的影響Fig. 2 Effect of the number of labels predicted by KNN on the experiment
3.6.2 標簽關(guān)鍵詞數(shù)
標簽關(guān)鍵詞數(shù)k對實驗結(jié)果的影響如圖3 所示。當(dāng)標簽關(guān)鍵詞數(shù)量為10 時,模型表現(xiàn)最佳。這說明即使面向全局,標簽關(guān)鍵信息也是有限的,相對少量的關(guān)鍵詞所編碼的標簽概念更具區(qū)分度。然而,隨著標簽關(guān)鍵詞的增加,對應(yīng)標簽概念的普適性降低,進而導(dǎo)致實驗性能下降。
圖3 標簽關(guān)鍵詞數(shù)對實驗的影響Fig. 3 Effect of the number of label key words on the experiment
3.6.3 KNN 預(yù)測權(quán)重
KNN 預(yù)測權(quán)重λKNN對實驗結(jié)果的影響如圖4 所示。模型性能先增長再降低,性能先增長說明包含全局關(guān)鍵信息的KNN 預(yù)測結(jié)果能彌補文本局部內(nèi)權(quán)重分配不合理的缺陷。當(dāng)λKNN取1 時,即完全采取KNN 預(yù)測時,本文方法結(jié)合FastText 模型性能大幅度降低,結(jié)合TextCNN 模型的性能幾乎為零。這說明每條文本所含有的關(guān)鍵信息是稀疏的,該方法不具備獨立預(yù)測能力。
圖4 KNN預(yù)測權(quán)重對實驗的影響Fig. 4 Effect of KNN prediction weight on the experiment
本文提出了一種基于標簽概念的多標簽文本分類方法。首先,為獲取某一標簽共享在全體實例中的關(guān)鍵信息并顯式表達,先利用詞頻和LDA 主題模型提取標簽關(guān)鍵詞,再將其編碼為標簽概念。其次,本文方法引入了對比損失,減小文本表示與所對應(yīng)標簽概念之間的距離,從而在文本編碼過程中能夠充分學(xué)習(xí)文本所對應(yīng)標簽的全局關(guān)鍵信息。同時,本文方法具有良好的可移植性,可以嵌入現(xiàn)有的多標簽文本分類模型中。在AAPD 和RCV1-V2 兩個數(shù)據(jù)集上的實驗結(jié)果表明,本文方法能有效提升基礎(chǔ)模型的性能。此外,本文還對幾個關(guān)鍵參數(shù)設(shè)定的原因和影響進行了討論。然而,本文方法仍存在一些不足之處。由于綜合預(yù)測和對比學(xué)習(xí)階段需將每一條文本與所有的標簽概念進行對比,對于具有大型標簽集的數(shù)據(jù)而言,這兩個階段的時間開銷較大,因此不適用于極限多標簽文本分類任務(wù)。在后續(xù)的研究中,這將成為重點關(guān)注和討論的內(nèi)容。