田小瑜,秦永彬*,黃瑞章,陳艷平
(1.貴州大學 公共大數據國家重點實驗室,貴州 貴陽 550025;2.貴州大學 計算機科學與技術學院,貴州 貴陽 550025)
在傳統的文本分類中,每個文本實例只與一個類別相關聯,而隨著大數據時代的到來,現實世界中的文本實例可能包含復雜且多樣的語義信息,然而傳統的分類方法已不能解決現有的問題。與傳統的文本分類任務相比,多標簽文本分類需要對文本有更深入的理解,進而全面地從文本中提取出與標簽相關的信息來實現精準分類。此外,有效的多標簽文本分類算法可以支持其廣泛的下游任務,如信息檢索、推薦系統、情感分析等。因此,多標簽文本分類引起了業界和學術界的廣泛關注。
到目前為止,研究者們提出了大量的多標簽文本分類算法并都取得了不同程度的成功,它們大致可以分為三類:問題轉化方法[1-3]、算法適應方法[4-5]和深度學習方法。由于深度學習具有較強的特征提取能力,研究人員基于深度學習對多標簽文本分類方法進行了大量的研究。具有代表性的深度學習的方法有CNN[6-8]、RNN[9-11]和注意力機制[12]等,它們都在文本特征表示方面取得了巨大的成功。然而,它們中的大多數都只關注文本的特征表示,而沒有顯式地在文本和標簽之間建立連接。這相當于讓所有標簽共享相同的特征空間,并沒有針對性地為每個標簽提取出與其關聯的辨別信息,進而使得模型的性能受到限制。為了克服這一缺陷,有些模型[13-14]基于序列到序列的方法來提高模型性能,在一定程度上考慮了文本與標簽的特征關聯和標簽之間的相關性,但依然沒有從根本上解決問題。近幾年來,為了從文本特征中提取與標簽相關的鑒別信息,研究者們主要利用標簽文本或標簽描述中的標簽語義信息從文檔中獲取標簽特定的文本表示進而提升模型的分類性能[15-18]。雖然它們在某些情況下獲得了很好的結果,但它們只是專注于從實例特征空間向標簽空間的單向映射來學習標簽特定的文本表示,因此只考慮標簽和文本實例之間的簡單關聯且仍具有提升空間。
如上所述,現有的方法仍然無法充分且有效地利用標簽和文檔之間潛在的相關關系,繼而在提取文本中與標簽關聯的鑒別信息上仍有不足之處。隨著運用在問答任務上的動態共同注意網絡的成功,它首次融合了問題和文本內容的相互依賴表示,以關注兩者的相關部分[19-20]?;诖?,本文在MCAN 框架[21]基礎上提出深度模塊化的標簽注意網絡,以克服現有標簽特定文本特征學習方法的弱點。在網絡構建過程中,本文設計了兩個注意力單元:雙向標簽注意單元和自我注意單元。對于雙向標簽注意單元,一個方向是從文本到標簽,可以獲得每個文本的標簽特定表示;另一個方向是從標簽到文本,可以過濾與標簽無關的噪聲信息,生成干凈的文本特征表示。對于自我注意單元,它可以用來增強文本特征。然后,通過雙向標簽注意單元和自我注意單元的模塊化組合,得到了可以進行深度級聯的模塊化標簽注意網絡層(MLA)。此外,現有的模型往往只從標簽文本或標簽描述中獲取標簽的語義表達,就像單詞嵌入一樣。但在大多數數據集中,標簽的描述信息極少甚至只是一個單詞,這顯然是不夠的。因此,本文采用學習向量化從文本實例中學習豐富的標簽表示。文章的主要貢獻如下:
(1)通過考慮文本和標簽之間的雙向映射,提出了一種深度模塊化的標簽注意網絡來處理多標簽文本分類。
(2)采用學習向量化來構建更加豐富的標簽語義表示。
(3)在三個常用的基準數據集上,運用多個評價指標對深度模塊化雙向標簽注意力的性能進行了深入的比較和分析。
文本語義表示是多標簽文本分類的第一步,對多標簽分類器的性能有重要影響。隨著深度學習的成功,一些研究者傾向于從原始文本中提取特征來區分所有的標簽。而一些研究者假設每個標簽都有自己的鑒別特征,這些特征會表現在帶有該標簽的文本中,他們設計了一些策略來獲取文本中關于標簽的辨別信息且獲得了較理想的表現。下面詳細總結了獲取文本特征表示和標簽特定文本特征表示的方法。此外,還有一些關于標簽語義表示的方法。
對于文本語義表示,研究者提出了一些基于卷積神經網絡(CNN)的模型[6-8],這些方法可以通過共享卷積核自動提取需要的特征。盡管在一定程度上取得了成功,但由于受到卷積核大小的限制,使得局部和整體之間的語義關聯被忽略,大量有價值的信息在池化層中丟失。為了克服這些缺點,研究者們利用循環神經網絡(RNN)并得到了出色的結果,此類方法可以確定文本的長距離依賴關系[9-10]。此外,Lin 等[11]假設對于文本分類,人類不會只是簡單地基于單詞級別的信息而分配文本標簽,而是通?;谒麄儗υ次谋局酗@著意義的理解,例如一些詞組。因此,他們設計了擴張卷積(MDC),在支持接受域的指數擴展的同時不損失局部信息,以產生更高層次的文本語義單元表示。Peng 等結合RNN 和CNN,分別使用雙向RNN 捕捉上下文信息和CNN 捕捉關鍵字[22-23]。
為了獲得特定于標簽的文檔表示,需要建立文本和標簽之間的語義連接。對于這類方法,研究者們假設每個標簽都有其對應的語義表示,進而可以明確地告訴模型要分類什么,并從文本中挖掘出與標簽相關的部分來進行精準分類。Xiao 等提出了標簽特定注意網絡(LSAN)來學習新的文本表示,并將其與自我注意相結合構建標簽特定的文本表示[16]。Liu等假設細粒度的標記級文本表示和標簽嵌入有助于分類,提出了一個標簽嵌入的雙向注意模型,以提高BERT 文本分類框架的性能[18]。Guo 等認為文本的每個部分對標簽推理的貢獻不同,因此雙向注意流被用于兩個方向上的標簽感知文本表示:從文本到標簽和從標簽到文本[24]。盡管這些工作在多標簽分類領域取得了進展,但仍有改進的空間。
為了獲取到標簽的語義表示,可以通過利用標簽結構或者標簽文本或描述嵌入編碼為向量來作為標簽語義表示[15-18]。Chai 等利用強化學習中的抽象/抽取模型獲得標簽描述進而得到標簽的語義表示[25]。Guo 等利用單詞和標簽共現關系構建一個異構圖,然后通過metapath2vec 學習標簽表示[24]。這些方法包括一些文本語義信息挖掘方法[26-27],雖然表現良好,但仍然無法獲取到充分的標簽語義信息。
在大多數多標簽文本分類數據集中,并沒有針對標簽進行具體的描述,大多只是一個標簽詞,并不能提供足夠的標簽語義信息,這會影響模型后續訓練的效果。為了獲取到豐富的標簽語義表示,我們以學習向量化的方式從標記的樣例文本中學習標簽的語義表示C∈Rl×k。首先,我們從帶有標簽i的樣本中隨機選擇一個樣本的語義表示作為標簽i的初始語義表示Ci,然后通過使用與標簽距離最近的樣本表示Pj更新Ci,如果樣列j帶有標簽i,那么更新標簽表示的方式如下所示:
如果樣例j不帶有標簽i,那么更新方式如下:
其中樣例與標簽之間的距離計算公式如下:
根據以上的跟新方法,重復迭代多次,直到達到最大迭代次數,學習得到標簽的語義表示C={C1,C2,…,Cl}∈Rl×k。
如圖1 所示,為了處理文本和標簽的輸入特征,在標簽注意網絡層構建了兩個注意單元,最終輸出為特定于標簽的文本特征,并將其用于分類。這兩個注意單元分別為雙向標簽注意單元和自我注意單元。
圖1 標簽注意網絡(SA是自我注意機制的英文縮寫)Fig.1 Label attention network(SA denotes Self-Attention Mechanism)
對于雙向標簽注意單元,我們利用文本特征和標簽語義表示的相互作用,基于注意力機制從標簽到文本和文本到標簽的方向來結合這兩種表示。雙向標簽注意單元的輸入是文本特征表示xi={w1,w2,…,wn}∈Rn×k和標簽語義表示C={C1,C2,…,Cl}∈Rl×k。為了建立文本和標簽之間的聯系,首先需要計算兩者的相似度矩陣,計算公式如下所示:
其中Sij是指文本中第i個單詞和第j個標簽的相似度。雙向標簽注意單元依賴相似度矩陣S,將其按行歸一化為文本中的每個單詞在標簽中產生的關注權重AT2C=soft max(S);將其按列歸一化為每個標簽在整個文本中產生的關注權重AC2T=soft max(ST)。標簽到文本方向的注意機制是只關注文本中與標簽相關的信息。因此,我們首先在標簽到文本的方向通過公式(5)計算得到一個新的文本表示。通過這種方式,我們可以過濾掉原始文本表示中與標簽無關的噪音信息,使文本中的標簽特征更加明顯。
文本到標簽方向的注意力可以挖掘出文本中特定于每個標簽的語義信息。因此,我們利用(5)中得出的新文本表示基于文本到標簽方向的注意力機制計算得出特定于標簽的文本表示,公式如下所示:
在雙標簽注意單元的基礎上,為了更加充分捕獲文本的多標簽語義,本文還使用了只關注文本特征表示的自注意機制(SA),計算得出來補充可能在雙向標簽注意單元中被忽略的掉的一些特征,公式如下所示:
其中W1∈Rda×k且W2∈Rda×l。最后我們通過水平連接向量和得到第i篇文本綜合的特定于標簽的文本表示Ti∈Rl×k,這是標簽和文檔的雙向依賴表示。
本文將圖1 所示的標簽注意網絡組合得到模塊化的標簽注意網絡(如圖2(左)所示)用于處理多標簽分類的標簽和文本特征,然后將其進行深度級聯,使上一個標簽注意層的輸出直接饋入下一個標簽注意層(如圖2(右)所示)。以前面提到的文本表示xi和標簽語義表示C作為輸入,即xi_0=xi,C_0=C,本文利用m層標簽注意網絡級聯得到深度模塊化標簽注意網絡。MLAi表示第i層標簽注意網絡,其輸入為第i-1 層的輸出,表示形式分別為xi_(i-1)和C_(i-1)。輸出用xi_i和C_i表示,與xi_i隨m變化不同,C_i是不變的,即C_m=C_(m-1)=…C_0,具體的計算過程如下所示:
圖2 深度模塊化標簽注意網絡Fig.2 Deep modular label attention network
(xi_m,C_m)=MLAm(xi_m-1,C_m-1),(8)其中xi_m∈Rl×k是最終的特定于標簽的文本表示。
最后,本文利用特定于標簽的文本表示來預測每個標簽的概率。模型采用帶有非共享參數的l個分類函數{f0,f1,…,f(l-1)},其中fj以xi_m的第j行作為輸入,即第i個文本特定于標簽j的語義特征表示,輸出為第i個文本關于標簽j的預測概率。對所有標簽執行這個過程,得到第i個文本關于所有標簽的預測分數Si={Si0,Si1,…,Sil}。
然后再通過sigmoid 激活函數得到第i個文本 關 于 所 有 標 簽 的 預 測 概 率Pi={Pi0,Pi1,…,Pil}。為了優化分類器,本文采用交叉熵損失函數作為目標損失函數,其詳細的計算公式如下:
(1) Reuters Corpus Volume I(RCV1)
這個數據集來自路透社的80 多萬篇人工標記的新聞文本組成,其中每篇新聞都包含多個主題標簽,標簽總數為103 個。對于每篇文本,它都與多個主題標簽相關聯。
(2) Arvix Academic Paper Dataset(AAPD)
這個數據集是從Arvix 的網站上收集和整理的關于計算機科學領域的論文摘要,總共包括55 840 篇,每一篇摘要被分配多個學科標簽,標簽總數為54。
(3) European Union Law Document(EURLex)
該數據集是與3956 個主題相關的歐盟法律文件。在公共版本3 中有11 585 個訓練實例和3865 個測試實例。
本文在三個公共數據集上驗證了我們提出的模型的性能,這些數據集的劃分細節如表1所示。
表1 實驗數據集統計Table 1 Summary of experimental datasets
為了驗證我們模型的有效性,本文從現有的方法中選擇了六個代表性的模型作為基線。他們分別是XML-CNN[7]、DXML[28]、SGM[13]、Attention-XML[29]、EXAM[15]、LSAN[16]。
XML-CNN:該模型的主要思想是利用卷積神經網絡(CNN)的動態池化技術,結合CNN的優點從原始文本中提取更高級的語義信息,用于多標簽文本分類。
DXML:它在特征空間和標簽空間建立非線性嵌入,改進了傳統的基于深度學習的框架,首次利用標簽圖結構通過深度游走的方式嵌入標簽。
SGM:該方法將多標簽文本分類視為序列生成問題,考慮到標簽之間的相關性,利用序列生成模型將輸入文檔轉換為輸出標簽作為多標簽文本分類器。
Attention-XML:設計了一個以文本語義表示作為輸入的多標簽注意網絡,確定每個標簽的相關組件,然后用一個淺寬的概率標簽樹來處理標簽,尤其是“尾標簽”。
EXAM:將標簽編碼為一個可訓練矩陣,其中每行是每個標簽的表示,然后利用交互層構建文檔和標簽之間的連接來獲得交互特征。最后,基于交互特性設計一個聚合層來計算對數。
LSAN:利用標簽語義信息確定標簽與文檔之間的語義聯系,構建標簽特定的文檔表示。同時,采用自注意機制從文檔內容信息中識別特定于標簽的文檔表示。最后將兩者融合在一起進行分類。
本文使用兩種度量方式來驗證模型的效果,這兩種度量分別是排名第k處的精度(P@k)和排名第k處精度的歸一化折現累積收益(nDCG@k)。P@k定義為只考慮每個預測類別的前k個元素的正確預測次數除以每個預測類別的前k個元素。nDCG@k將每個測試實例的預測分數標準化。根據分類器預測的標簽概率P∈Rl和真實地面標簽y∈{0,1}l,我們將計算P@k和nDCG@k,具體計算過程如下所示:
其中rankk(P)為當前預測結果得分最高的前個標簽索引。計算真實標簽向量y中相關標簽的數量。IDCG@k是DCG@k在理想情況下的最大值。
對于這三個數據集,本文設置文檔的最大長度為500,對于標簽表示和文檔表示,特征維度k為300。此外,我們根據數據集的特點來設置標簽注意網絡層的層數,具體見實驗分析部分。整個網絡通過Adam 進行訓練,學習率為0.001。由于EUR-Lex 數據集標簽總數巨大,故用200 次迭代次數訓練模型,其他數據集均用20 次迭代次數訓練。
如表2—表3 所示,我們分別基于P@k和nDCG@k評價指標驗證本文模型較現有模型的性能優勢,其中每行用粗體標記出最佳結果。不難發現,本文提出的方法在RCV1 和EURLex 數據集上大多數指標都取得了較好的效果。主要有兩個原因,一是我們不僅考慮從文本到標簽的表示,而且還考慮了從標簽到文本的表示。二是利用學習向量量化的方法從實例中學習每個標簽的表示語義表示,可以針對數據集文本的特點捕獲更豐富標簽語義信息,而標簽語義信息可以明確地指導模型分類,提高分類效率。對于AAPD 數據集大部分指標低于LSAN 的原因在于該數據集的標簽總量以及文本平均標簽量較其他兩個數據集少,在標簽語義向文本語義映射時不能完全表達出文本語義,進而影響后續表達效果。因此結合表1-3一起分析可以看出,標簽總量和文本平均標簽量越多,模型對分類性能提升越大。Attention-XML 在RCV1 和AAPD 數據集上的表現優于XML-CNN 和DXML 的情況說明注意機制的重要作用。但該方法的主要缺點是只關注文本的語義表示,沒有直觀地建立標簽和文本的語義連接,這就是我們的模型和LSAN 優于Attention-XML 的原因。本文模型與LSAN 的主要區別在于標簽呈現方式和標簽與文本的語義關聯方式,因此本文模型能夠取得比其他深度學習模型更好的性能。值得一提的是,本文模型都是基于注意力機制改進,因此模型時間復雜度較低且效率較高,在設置的迭代次數內是收斂的。
表2 在實驗數據集(AAPD、RCV1、EUR-Lex)上關于指標P@k (k=1,3,5)的對比結果Table 2 Comparison results on experimental datasets(AAPD, RCV1, EUR-Lex) in the term of P@k (k=1,3,5)
表3 在實驗數據集(AAPD、RCV1、EUR-Lex)上關于指標nDCG@k (k=3,5)的對比結果Table 3 Comparison results on experimental datasets(AAPD, RCV1, EUR-Lex) in the term of nDCG@k (k=3,5)
此外,為了進一步觀察通過學習向量化得到的標簽語義表示效果,本文為RCVI 數據集設置了兩種獲取標簽語義表示的方式:標簽詞嵌入和學習向量化,并將其對比結果列在表4中。結果表明,基于學習向量化方法得到的實驗結果更好,說明該方法可以從標記樣本中學習到更豐富、更準確的標簽語義。
表4 在數據集RCV1上標簽語義表示方法對比結果Table 4 Comparison results on RCV1 for the methods of label semantic presentation
為了進一步驗證雙向標簽注意網絡的效果,本文在三個數據集上進行了雙向標簽注意網絡的消融實驗。本文主要通過與單向標簽注意對比分析來驗證雙向標簽注意網絡的有效性,所謂單向標簽注意即只考慮將從文本到標簽方向的映射繼而獲取特定于標簽的文本表示,對比結果列于表5 和表6。從表5 和表6 中可以很容易地觀察到,本文提出的雙向注意方法在除了AAPD 的其他兩個數據集上的大多數指標上都取得了較好的效果,這充分證明了本文方法可以更充分地捕獲文本中標簽的相關信息,提高分類器的性能。而針對AAPD 數據集,單向注意力的性能優于雙向注意的原因是標簽數量以及文本平均標簽量較少,在標簽的語義映射為文本語義時會有一定的語義缺失,進而影響了模型效果。
表5 在實驗數據集AAPD、RCV1、EUR-Lex上關于指標P@k (k=1,3,5)的消融實驗結果Table 5 Ablation test results on AAPD, RCV1 and EUR-Lex in the term of P@k (k=1,3,5)
表6 在實驗數據集AAPD、RCV1、EUR-Lex上關于指標nDCG@k(k=3,5)的消融實驗結果Table 6 Ablation test results on AAPD, RCV1 and EUR-lex in the term of nDCG@k(k=3,5)
最后,為了進一步觀察不同的雙向標簽注意層對深度模塊化標簽注意網絡的影響,設置深度不同的雙向標簽注意網絡層,表7 表明在RCV1 和ERU-Lex 數據集上,雙向標簽注意網絡的性能與其級聯的層數呈反比,而在AAPD數據集上,雙向標簽注意層為2 的性能最好。由于數據集的不同,雙向標簽注意層的數量是不同的,因此可以根據不同的數據集級聯不同的雙向標簽注意層以獲得最優的性能。
表7 在實驗數據集AAPD、RCV1、EUR-Lex上標簽網絡層數對實驗結果的影響Table 7 Influence of the layer number of the label attention network on AAPD, RCV1, EUR-Lex datasets
本文提出了一種新穎的深度模塊化雙標簽注意網絡,該網絡由雙向標簽注意層獲得特定于標簽的文本表示,利用學習向量化從樣本實例中學習標簽語義表示。大量實驗表明模型在大多數指標上都顯著且持續地優于其他基線模型。未來,在理論方面,我們將繼續優化現有的方法,進一步提高各個指標的性能,例如,設計一種高效的集成方法,充分利用現有模型的優勢。在實際應用中,落實已有方法,創造實用價值。