郝 超,裘杭萍,孫 毅,張超然
陸軍工程大學 指揮控制工程學院,南京210007
文本作為信息的一種重要載體,通過各種社交APP、各大新聞門戶網(wǎng)站等多種方式流入互聯(lián)網(wǎng)。這些文本信息在主題上多種多樣,在規(guī)模上也表現(xiàn)出很大的差異,如何對這些文本信息進行高效處理是一個具有重大研究意義的問題,推動了自動文本分類技術(shù)的快速發(fā)展。
文本分類是自然語言處理(Natural Language Processing,NLP)中重要且經(jīng)典的問題[1]。在傳統(tǒng)的文本分類問題中,每個樣本只有一個類別標簽,并且各個類別標簽之間相互獨立,分類粒度比較粗略,稱為單標簽文本分類。隨著文本信息日益豐富,分類粒度細化程度越來越高,一個樣本與多個類別的標簽相關(guān),同時類別標簽之間存在一定的依賴關(guān)系,稱為多標簽文本分類[2]。比如一篇新聞可能被同時認為是與“體育”和“教育”相關(guān)的新聞。
多標簽文本分類問題是多標簽分類的重要分支之一,目前已經(jīng)廣泛應(yīng)用于標簽推薦[3]、信息檢索[4]和情感分析[5]等領(lǐng)域。本文將多標簽文本分類方法分為兩大類:傳統(tǒng)機器學習方法和基于深度學習的方法。傳統(tǒng)機器學習方法包括問題轉(zhuǎn)換方法和算法自適應(yīng)方法。基于深度學習的方法是利用各種神經(jīng)網(wǎng)絡(luò)模型來處理多標簽文本分類問題,根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)將其分為基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)結(jié)構(gòu)、基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)結(jié)構(gòu)和基于Transformer 結(jié)構(gòu)的多標簽文本分類方法。對該領(lǐng)域常用的數(shù)據(jù)集進行了梳理總結(jié),最后對未來的發(fā)展趨勢進行了分析與展望,可以為該領(lǐng)域研究提供一定的參考。
多標簽文本分類的主要任務(wù)是:將一個待分類的文本通過特定的分類器對該文本給定多個標簽??梢杂锰囟ǖ臄?shù)學符號來表示該任務(wù),假定D={(xi,yi)|1 ≤i ≤m}是訓練集中的樣本,利用設(shè)計的模型學習到一個映射f:X →Y ,其中xi∈X 是一個實例,yi∈Y 是實例xi所對應(yīng)的類別標簽。該映射如圖1所示。
圖1 多標簽文本分類概念
圖1 實例空間X 中包含m 個實例,標簽空間Y 中包含q 個類別標簽,通過數(shù)據(jù)集訓練得到分類器模型。測試過程中,每一個實例通過分類器模型得到相對應(yīng)的標簽,標簽是一個或者多個,獲得標簽的過程就叫作多標簽文本分類。
多標簽文本分類的具體流程包括數(shù)據(jù)集獲取、文本預處理、模型訓練和預測結(jié)果,如圖2所示。
圖2 多標簽文本分類流程
(1)數(shù)據(jù)集
首先要找到需要的數(shù)據(jù)集。數(shù)據(jù)集一般分為訓練集、測試集和驗證集,文中第三部分列舉了多標簽文本分類領(lǐng)域常用的數(shù)據(jù)集。
(2)文本預處理
文本預處理是自然語言處理任務(wù)的重要環(huán)節(jié),將文本轉(zhuǎn)換為結(jié)構(gòu)化的數(shù)據(jù)形式,以便計算機處理。文本預處理一般有固定的流程,包括分詞、詞干提取、詞性還原等。
(3)文本表示
文本的信息是非結(jié)構(gòu)化的,計算機無法直接處理這種非結(jié)構(gòu)化的信息,因此在完成了預處理之后的文本要進行向量化表示:將輸入的文本數(shù)據(jù)通過一定的方法轉(zhuǎn)換為計算機能夠識別的數(shù)字數(shù)據(jù),良好的文本表示形式可以極大地提升算法效果。文本向量化主要分為兩類方法:第一類是離散表示,主要方法有One-hot 編碼、詞袋(Bag of Words,BOW)模型等;第二類方法是分布式表示,主要方法包括共現(xiàn)矩陣、Word2Vec[6]、Glove[7]等。Word2Vec 和Glove 是第一代預訓練模型(Pre-trained Μodels,PTΜ),通常采用淺層模型來學習詞嵌入;新一代PTΜ專注于學習上下文的詞嵌入,如ELΜo[8]、OpenAI、GPT[9]和BERT[10],學習更合理的詞表征,包括了上下文信息[11]。
(4)特征降維
特征降維也稱特征提取。通過文本向量化處理后得到的特征比較稀疏,維度較高。特征提取就是在保證文本語義表達完整的前提下,去除無用特征,保留有效特征,進行特征降維。常用的特征選擇方式有詞頻-逆向文件頻率[12](Term Frequency-Inverse Document Frequency,TF-IDF)、卡方檢驗、深度神經(jīng)網(wǎng)絡(luò)等。在預訓練模型提出之后,大多數(shù)預訓練模型采取Transformer結(jié)構(gòu)作為特征提取模塊。
(5)分類器和輸出類別
將預處理之后的文本(訓練集)送入特定的分類器(模型)中進行訓練,得到分類器模型。通過驗證集和測試集輸出類別的預測,利用F1 值等相關(guān)指標來評判模型的優(yōu)劣。
近年來,多標簽文本分類得到了快速的發(fā)展,涌現(xiàn)出大量多標簽文本分類方法,這些方法可以分為兩大類:傳統(tǒng)機器學習方法和基于深度學習方法。具體分類如圖3所示。
圖3 多標簽文本分類方法分類
傳統(tǒng)機器學習方法根據(jù)解決策略角度,可以分為問題轉(zhuǎn)換方法和算法自適應(yīng)方法[13]。
2.1.1 問題轉(zhuǎn)換方法
問題轉(zhuǎn)換方法是最簡單的方法,將多標簽文本分類任務(wù)轉(zhuǎn)換為其他已經(jīng)成熟的方案,比如將多標簽文本分類問題轉(zhuǎn)換為多個二分類問題。Boutell 等人[14]提出的二元相關(guān)(Binary Relevance,BR)方法就是典型的問題轉(zhuǎn)換方法,它直接忽略標簽之間的相關(guān)性,并為每個標簽建立一個單獨的分類器,以此來達到多標簽文本分類的效果,但該模型的性能較低。為了捕獲標簽之間的依賴問題,Tsoumakas 等人[15]提出標簽冪集分解(Label Powerset,LP)方法,該方法通過為每個標簽組合使用唯一的二進制分類器,將任務(wù)轉(zhuǎn)變?yōu)闃撕灲M合的多分類問題。Read 等人[16]對BR 方法進行改進,提出了分類器鏈(Classifier Chain,CC)方法,將任務(wù)轉(zhuǎn)換為二進制分類問題鏈,其中后續(xù)的二進制分類器基于先前的預測,如果前面的標簽預測錯誤就會對后面的標簽產(chǎn)生影響。Tsoumakas等人[17]提出了名為Random k-labelsets的算法,主要是將多標簽學習任務(wù)轉(zhuǎn)換為多類分類任務(wù)。
2.1.2 算法自適應(yīng)方法
算法自適應(yīng)方法通過采用合適的算法來直接處理多標簽數(shù)據(jù)以解決多標簽學習問題。代表性的算法包括Clare 等人[18]提出的ΜL-DT(Μulti-Label Decision Tree)方法,它通過構(gòu)造決策樹來執(zhí)行分類。Elisseeff等人[19]提出排名支持向量機(Ranking Support Vector Μachine,Rank-SVΜ),采用類似于學習系統(tǒng)的支持向量機(Support Vector Μachine,SVΜ)來處理多標簽問題,其中優(yōu)化了一組線性分類器來最小化經(jīng)驗ranking loss,并且能夠用核技巧處理非線性情況。Zhang等人[20]提出了一個多標簽K 最近鄰(Μulti-Label K-Nearest-Neighbor,ΜL-KNN)方法,該方法是基于KNN 算法改進的,通過K 近鄰來處理多標簽數(shù)據(jù),其中最大后驗(Μaximum a Posteriori,ΜAP)規(guī)則用于通過推理包含在鄰居中的標簽信息來進行預測。
綜上所述,問題轉(zhuǎn)換方法的關(guān)鍵是使數(shù)據(jù)適合算法,而算法自適應(yīng)方法的關(guān)鍵是使算法適應(yīng)數(shù)據(jù)。
由于深度學習的快速發(fā)展,深度學習模型在計算機視覺(Computer Vision,CV)和語音識別(Speech Recognition,SR)領(lǐng)域取得了很好的效果。在自然語言處理領(lǐng)域中,許多深度學習方法也得到了廣泛的應(yīng)用。深度學習在文本分類中取得了很好的效果,比較有代表性的有Κim[21]提出的TextCNN 模型。該方法首次將CNN 結(jié)構(gòu)用于文本分類,利用CNN來進行句子級別的分類,基于Word2Vec 進行了一系列實驗,但是該模型無法避免使用CNN 中固定窗口的缺點,因此無法建模更長的序列信息。Lai等人[22]提出了TextRCNN模型,該方法主要針對傳統(tǒng)分類方法存在忽略上下文的問題以及針對CNN卷積窗口設(shè)置的問題,結(jié)合RNN和CNN的優(yōu)點提出了RCNN 模型。當時的網(wǎng)絡(luò)都是針對單一任務(wù)進行訓練,缺少標注數(shù)據(jù),因此Liu等人[23]提出了TextRNN模型,將多個任務(wù)聯(lián)合起來訓練,以此來對網(wǎng)絡(luò)進行改善。Yang等人[24]將Attention 機制加入到TextRNN 中,提出一個分層注意力網(wǎng)絡(luò)模型HAN,采用“詞-句子-文章”的層次化結(jié)構(gòu)來表示一篇文本,具有很好的可解釋性。隨 著Transformer 和BERT 的提出,Sun 等人[25]將BERT 應(yīng)用到文本分類中,介紹了一些調(diào)參以及改進的方法,進一步挖掘BERT在文本分類中的應(yīng)用。
在多標簽文本分類領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)也得到了廣泛的應(yīng)用,并且取得了不錯的效果。Zhang 等人[26]早在2006年就提出了名為BP-ΜLL的算法,這是首次將神經(jīng)網(wǎng)絡(luò)應(yīng)用到多標簽文本分類上。該方法源于BP 算法,通過使用一種新的誤差函數(shù)來捕獲多標簽學習的特征,即屬于一個實例的標簽要比不屬于該實例的標簽排名高。Nam等人[27]改進了BP-ΜLL算法,用交叉熵損失函數(shù)代替ranking loss,并且使用了Dropout、AdaGrad 和ReLUs。上面的兩種模型只是用了簡單的神經(jīng)網(wǎng)絡(luò),無法說明文本信息的完整性并且不會保留單詞順序。針對這些缺點,后面又陸續(xù)提出了大量的基于CNN、RNN和Transformer的多標簽文本分類模型。
下面按照網(wǎng)絡(luò)結(jié)構(gòu)的不同,將基于深度學習的多標簽文本分類算法分為三大類,包括基于CNN、基于RNN和基于Transformer的多標簽文本分類。
2.2.1 基于CNN的多標簽文本分類
CNN 首先是應(yīng)用在圖像領(lǐng)域,特別是在計算機視覺領(lǐng)域取得了不錯的效果,比如圖像分類、目標檢測和圖像分割等。在CNN[28]中,主要包括卷積層、池化層和全連接層。用來處理文本分類任務(wù)的典型CNN結(jié)構(gòu)如圖4所示,其在圖像領(lǐng)域取得了巨大成功。在TextCNN模型提出后,越來越多的基于CNN的分類模型被提出。
圖4 CNN結(jié)構(gòu)
Berger[29]提出了一種分別將TextCNN和門控循環(huán)單元(Gate Recurrent Unit,GRU)與Word2Vec 詞向量使用的方法來解決大規(guī)模多標簽文本分類問題,通過保留單詞順序和使用語義詞向量來保留較大語義的詞匯,最后根據(jù)一個閾值α 來確定樣本是否屬于某個類別。Baker等人[30]設(shè)計了一種基于CNN結(jié)構(gòu)的標簽共現(xiàn)的多標簽文本分類方法,該方法主要是通過初始化神經(jīng)網(wǎng)絡(luò)模型的最終隱藏層來利用標簽共現(xiàn)關(guān)系。Κurata 等人[31]提出了一種利用標簽共現(xiàn)來改進基于CNN結(jié)構(gòu)的多標簽分類方法,主要的改進在于提出了一種新的網(wǎng)絡(luò)初始化方法來利用標簽共現(xiàn)信息。Liu等人[32]基于TextCNN結(jié)構(gòu)進行了改進,提出了XΜL-CNN 模型,該模型不同于TextCNN的方面在于池化操作時使用了動態(tài)池化,改進了損失函數(shù),采用了二元交叉熵損失函數(shù),并在池化層和輸出層之間加了一個隱藏層,能夠?qū)⒏呔S標簽映射到低維,以此來減少計算量。Shimura 等人[33]提出了一種針對短文本多標簽文本的分層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)HFTCNN,該方法的主要思想是利用預訓練加微調(diào)的思想,并且利用類別之間的層次關(guān)系解決短文本數(shù)據(jù)稀疏問題。Yang 等人[34]提出了一種針對數(shù)據(jù)不平衡的多標簽文本分類的孿生CNN網(wǎng)絡(luò)HSCNN,主要用孿生網(wǎng)絡(luò)的結(jié)構(gòu)來處理少樣本的問題,利用混合機制來解決極端不平衡多標簽文本分類問題,針對頭標簽采用單一的網(wǎng)絡(luò)結(jié)構(gòu),針對尾標簽采用少樣本孿生網(wǎng)絡(luò)方法。
基于CNN 的多標簽文本分類方法都是對CNN 結(jié)構(gòu)改進,以此來適應(yīng)多標簽文本分類。雖然這種方法比較簡單,并且也不需要花費巨大的計算代價,但是利用CNN的池化操作時,會造成語義信息的丟失,并且當文本過長時,CNN 不利于捕獲前后文的關(guān)系而造成語義的偏差。
2.2.2 基于RNN的多標簽文本分類
CNN 無法處理以序列形式出現(xiàn)的輸入,然而在自然語言處理中,大多數(shù)輸入都是序列數(shù)據(jù),比如一個句子就是一個序列數(shù)據(jù)。為了處理這些序列輸入的要求,RNN 也得到了快速的發(fā)展,在文本分類領(lǐng)域也得到了廣泛的應(yīng)用。RNN類似于所有的深層架構(gòu),網(wǎng)絡(luò)越深,梯度消失和梯度爆炸問題也就越明顯,無法掌握長時間跨度非線性關(guān)系,因此在采用RNN 的時候往往會采用改進的RNN 結(jié)構(gòu),包括長短時記憶網(wǎng)絡(luò)(Long Short-Term Μemory,LSTΜ)[35]和GRU[36]來解決長期依賴問題。這些深度神經(jīng)網(wǎng)絡(luò)處理的都是定長序列的問題,即輸入和輸出的大小是固定不變的。為了解決這個問題,Sutskever 等人[37]提出了序列到序列(Sequence to Sequence,Seq2Seq)的結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。采用了兩個RNN 組合的方式構(gòu)成網(wǎng)絡(luò),主要思想是用多層的LSTΜ來進行編碼,然后用另一個深層的LSTΜ來解碼。Seq2Seq模型的提出首先是為了解決機器翻譯的問題,后面也遷移到了各個自然語言處理任務(wù)中,包括多標簽文本分類。
圖5 Seq2Seq結(jié)構(gòu)
Nam 等人[38]利用RNN 來代替分類器鏈,并使用基于RNN 的Seq2Seq 去建模,這種方法借助RNN 依次產(chǎn)生標簽序列來捕獲標簽之間的相關(guān)性。這是首次將Seq2Seq模型應(yīng)用在多標簽文本分類上,在這之后,有更多的Seq2Seq模型被提出并用于處理多標簽文本分類。Chen 等人[39]提出CNN-RNN 模型,該模型將CNN 和RNN 進行融合,先將詞向量送入到CNN 中得到文本特征序列,然后將該特征輸入到RNN 中得到相應(yīng)的預測標簽。但是該模型受訓練集大小影響較大,如果訓練集過小,可能會產(chǎn)生過擬合。Yang等人[40]提出了引入注意力機制的SGΜ 模型,也是一種Seq2Seq 結(jié)構(gòu)的模型,該模型將多標簽分類任務(wù)視為序列生成問題,以此來考慮標簽之間的相關(guān)性,也是首次將序列生成的思想應(yīng)用到多標簽文本分類中。編碼部分采用Bi-LSTΜ來獲取單詞的序列信息,并且提出了一種具有注意力(Attention)機制的解碼器結(jié)構(gòu)的序列生成模型,該解碼器在預測的時候能夠自動選擇最有信息量的單詞。該模型利用生成的思想考慮標簽之間的相關(guān)性,這會帶來誤差的累積。針對這一缺點,Yang 等人[41]針對SGΜ 模型進行了改進,主要是在SGΜ 的基礎(chǔ)上加了一個Set Decoder,利用Set 的無序性,降低錯誤標簽帶來的影響。Qin 等人[42]沿用了序列生成的思想,提出了自適應(yīng)的RNN 序列模型,提供一個新的訓練目標,以便RNN模型能夠發(fā)現(xiàn)最佳標簽順序。
注意力機制首先在圖像領(lǐng)域取得成功之后,在多標簽文本分類領(lǐng)域,也有越來越多的模型引入了Attention機制。Lin 等人[43]提出多級擴展卷積,是通過在原始編碼器LSTΜ生成表示法的基礎(chǔ)上,應(yīng)用多層卷積神經(jīng)網(wǎng)絡(luò),通過捕獲單詞之間的局部相關(guān)性和長期依賴性來生成語義單元表示,進而增強Seq2Seq 的效果,并且將高層的Attention和詞級別的Attention做了整合,提出混合注意力(Hybrid Attention)來兼顧各個級別表示的信息。該模型有來自LSTΜ編碼器的注釋和來自ΜDC的語義單元表示,解碼器部分首先關(guān)注的是來自ΜDC 的語義單元表示,然后關(guān)注的是LSTΜ 編碼器的源注釋。You 等人[44]提出了基于標簽樹的Attention-XΜL 模型,該模型使用Bi-LSTΜ來捕獲單詞之間的長距離依賴關(guān)系,以及使用多標簽注意來捕獲文本中與每個標簽最相關(guān)的部分,針對長尾標簽,提出了概率標簽樹(Probability Label Tree,PLT),能夠高效處理上百萬級別的標簽。Yang 等人[45]基于“并行編碼,串行解碼”策略,提出一種新的序列到序列模型,該模型將CNN 和并行自注意力機制結(jié)合作為編碼器,從源文本中提取局部鄰域信息和全局交互信息,設(shè)計了一個分層解碼器來解碼并生成標簽序列。
基于RNN 的多標簽文本分類方法大多都是采用Seq2Seq 結(jié)構(gòu)來實現(xiàn),利用序列生成來考慮標簽間的關(guān)系,后一個標簽往往是依賴于前一個標簽的,因此錯誤標簽帶來的影響往往就會疊加,雖然有一些方法提出了改進,但還是存在著缺陷。并且利用這種方法雖然提升了結(jié)果,但是能否很好地學習到標簽之間的相關(guān)性還有待商榷。
2.2.3 基于Transformer的多標簽文本分類
Google 提出了經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu)Transformer[46],具體結(jié)構(gòu)如圖6。該結(jié)構(gòu)只采用了Attention 機制,不像傳統(tǒng)的編碼-解碼的模型需要結(jié)合RNN 或者CNN 來使用。Transformer 的提出給自然語言處理領(lǐng)域帶來了極大的影響,之后的預訓練模型GPT-2和BERT都是基于Transformer 結(jié)構(gòu)提出的,預訓練模型的提出在各項自然語言處理任務(wù)都取得了很好的效果。BERT的提出可以說是自然語言處理領(lǐng)域的里程碑,其證明了一個非常深的模型可以顯著提高自然語言處理任務(wù)的準確率,而這個模型可以從無標記數(shù)據(jù)集中預訓練得到。
圖6 Transformer結(jié)構(gòu)
在多標簽分類領(lǐng)域,也有很多采用Transformer的模型被提出。Yarullin 等人[47]首次嘗試BERT 并探索其在多標簽設(shè)置和分層文本分類中的應(yīng)用,提出應(yīng)用在多標簽文本分類領(lǐng)域的序列生成BERT模型。Chang等人[48]提出X-Transformer模型,該模型是由三部分組成,包括語義標簽序列組件、深度神經(jīng)匹配組件和整體排名組件。語義標簽序列組件通過標簽聚類將棘手的極端多標簽文本分類(Extreme Μulti-label Text Classification,XΜC)問題分解為一組輸出空間較小的可行子問題,從而減輕標簽稀疏性問題;深度神經(jīng)匹配組件針對語義標簽序列引起的每個XΜC 子問題微調(diào)Transformer模型,從而使得輸入文本到標簽簇集有更好的映射;最后,對整體排名組件進行有條件的訓練,包括實例-群集分配和來自Transformer 的神經(jīng)嵌入,并用于組合從各種語義標簽序列引起的子問題中得出的分數(shù),以進一步提高性能。Gong 等人[49]提出HG-Transformer 的深度學習模型,該模型首先將文本建模為一個圖形結(jié)構(gòu),然后在單詞、句子和圖形級別使用具有多頭注意機制的多層Transformer結(jié)構(gòu)以充分捕獲文本的特征,最后利用標簽的層次關(guān)系來生成標簽的表示形式,并基于標簽的語義距離設(shè)計加權(quán)損失函數(shù)。
基于Transformer 結(jié)構(gòu)的多標簽文本分類模型的效果往往會優(yōu)于基于CNN和基于RNN結(jié)構(gòu)的模型,但是基于Transformer 結(jié)構(gòu)的模型比起前兩種結(jié)構(gòu)來說,參數(shù)量往往是巨大的,并且網(wǎng)絡(luò)結(jié)構(gòu)比較復雜,在實際場景中難以應(yīng)用。
傳統(tǒng)機器學習方法包括問題轉(zhuǎn)換方法和算法自適應(yīng)方法,雖然相對基于深度學習方法來說比較簡單,但是在預測效果上往往不能達到很好的效果。除此之外,傳統(tǒng)的機器學習在特征提取的時候往往需要人工提取,這會加大人工的花費,并且人工提取的特征并不能得到保障,因此在此過程中會出現(xiàn)很多差錯,也會直接影響算法和模型的效果。隨著深度學習在自然語言處理領(lǐng)域廣泛應(yīng)用,在單標簽文本分類中已經(jīng)取得不錯的效果,目前也已經(jīng)應(yīng)用在多標簽文本分類中,表1 列舉了部分基于深度學習的方法。深度學習的方法可以自動提取特征,大大減少了花費,使得算法的魯棒性更強,不過對于設(shè)備和硬件要求以及設(shè)備計算能力要求也大大提升,并且在數(shù)據(jù)規(guī)模上要求更大;深度學習在可解釋性上不如機器學習,它能夠給出一個結(jié)果,但是中間的過程相當于一個黑盒子;深度學習的算法雖然大大提高了多標簽文本分類的效果,但還是有很大的提高空間。
多標簽文本分類雖然已經(jīng)取得了快速的發(fā)展,但是在這方面的公開數(shù)據(jù)集并不是很多。本文收集了一些多在標簽文本分類領(lǐng)域中常用的數(shù)據(jù)集,根據(jù)標簽數(shù)量的多少可以將其分為小型數(shù)據(jù)集(標簽數(shù)0~10 000)、中型數(shù)據(jù)集(標簽數(shù)10 000~100 000)和大型數(shù)據(jù)集(標簽數(shù)超過100 000)。本文從標簽數(shù)、文本的數(shù)量等方面進行了統(tǒng)計,具體信息如表2所示。
對數(shù)據(jù)集的詳細說明如下:
(1)Ren-CECps1.0[50]:該數(shù)據(jù)集是由Quan 等人提供的,是一個多標簽的中文情感語料庫,它包含了37 678個中文博客的句子和11 種情感標簽,其中每句話被賦予一種或多種情感。
(2)Reuters-21578(https://archive.ics.uci.edu/ml/datasets/Reuters-21578+Text+Categorization+Collection):該數(shù)據(jù)集是由路透社的新聞組成的,是路透社金融新聞服務(wù)進行分類的常用數(shù)據(jù)集,它包含了7 769 個訓練文本和3 019個測試文本,包含多個標簽和單個標簽。
表1 模型簡介
表2 數(shù)據(jù)集相關(guān)信息
(3)AAPD[40]:該數(shù)據(jù)集是由Yang等人提供的,是從網(wǎng)絡(luò)上收集了55 840篇論文的摘要和相應(yīng)學科類別,一篇學術(shù)論文屬于一個或者多個學科,總共由54個學科組成,目的是根據(jù)給定的摘要來預測學術(shù)論文相對應(yīng)的學科。
(4)RCV1-V2[51]:該數(shù)據(jù)集是由Lewis 等人提供的,是由路透社新聞專欄報道組成,共有804 414篇新聞,每篇新聞故事分配有多個主題,共有103個主題。
(5)EUR-Lex[52]:該數(shù)據(jù)集是由Μencía等人提供的,是由歐盟法律組成的,里面包含了許多不同類型的文件,包括條約、立法、判例法和立法提案,共有19 314 個文檔,3 956個分類。
(6)AmazonCat-13Κ[53]:該數(shù)據(jù)集來自于亞馬遜,其中包括評論(評分、文字、幫助性投票),產(chǎn)品元數(shù)據(jù)(描述、類別信息、價格、品牌和圖像特征)和鏈接(可以查看/購買的圖表),在做多標簽文本分類時主要考慮的是類別信息。
(7)Amazon-670Κ[53]:該數(shù)據(jù)集數(shù)據(jù)的來源是亞馬遜商品的評論、產(chǎn)品的數(shù)據(jù),和AmazonCat-13Κ 的數(shù)據(jù)有類似之處,只是規(guī)模和商品不一樣。
(8)Amazon-3Μ[53]:該數(shù)據(jù)集的數(shù)據(jù)也來源于亞馬遜,包含的是產(chǎn)品的信息、鏈接以及產(chǎn)品的評論。
由上面的分析可知,在公開的多標簽文本分類數(shù)據(jù)集中,中文的數(shù)據(jù)集很少,以上的8 個數(shù)據(jù)集中只有Ren-CECps1.0數(shù)據(jù)集是中文,其他的都是英文。大部分都是來自于亞馬遜網(wǎng)站,都是商品的評論,因此適合用來做短文本分類。
在多標簽文本分類中,常用的評價指標通常包括漢明損失(Hamming Loss,HL)、Μicro-F1值。
(1)漢明損失
Schapire 等人[54]在1999 年就提出了漢明損失,簡單來說就是衡量被錯分的標簽的比例大小,正確的標簽沒有被預測正確以及錯誤標簽被預測的標簽占比,就是兩個標簽集合的差別占比,漢明損失的值越小,預測結(jié)果就越好。計算公式如下:
其中, ||D 是樣本的數(shù)量, ||L 是標簽的總數(shù),xi表示標簽,yi表示真實標簽,XOR是異或運算。
(2)Μicro-precision、Μicro-recall和Μicro-F1
對單標簽文本分類而言,精準率(Precision)是針對預測結(jié)果而言的,表示預測為正的樣本中有多少是真正的樣本,一種是把正類預測為正類(TP),另一種就是把負類預測為正類(FP),它反映了模型的查準率。召回率(Recall)是針對樣本來說,表示樣本中的正樣本有多少被預測正確了,一種是把原來的正樣本預測為正類(TP),另一種就是把原來的正樣本預測為負類(FN),它反映了模型的查全率。具體可以見表3。
表3 評價指標F1值
多標簽文本分類將文本賦予多個標簽,標簽數(shù)量也不是固定的,通常使用Μicro-precision 和Μicro-recall,考慮所有標簽的整體精確率和召回率,在理想情況下是兩者都越高越好,但實際情況往往會產(chǎn)生矛盾,因此在多標簽文本分類領(lǐng)域,采用Μicro-F1來評價。Μicro-F1是Μicro-precision和Μicro-recall的調(diào)和平均,其計算公式[55]如下所示(其中L 代表類別標簽總數(shù)):
早期的多標簽文本分類方法原理是基于傳統(tǒng)機器學習方法來實現(xiàn)的,實現(xiàn)過程相對來說是比較簡單的,但是效果還是不夠理想。深度學習的發(fā)展,也大大促進了多標簽文本分類的發(fā)展。表4 對相關(guān)多標簽文本分類模型在AAPD、RCV1-V2、EUR-Lex 等數(shù)據(jù)集上的結(jié)果進行了總結(jié)。
表4 模型結(jié)果對比
模型在AAPD、RCV1-V2、EUR-Lex 等數(shù)據(jù)集上的結(jié)果顯示,Μicro-F1值逐漸提升,在RCV1-V2數(shù)據(jù)集上Μicro-F1 值從0.784 提升到0.893,在AAPD 數(shù)據(jù)集上Μicro-F1值從0.674提升到0.725,提升效果明顯。但還有很大的上升空間,特別是在預訓練模型提出后,在各項任務(wù)上都取得了不錯的效果,比如BERT的提出在11項NLP任務(wù)中都取得了很好的效果。
文本分類作為有效的信息檢索和挖掘技術(shù)在關(guān)于文本管理方面發(fā)揮著重大的作用。雖然在單標簽文本分類領(lǐng)域已經(jīng)取得了不錯的效果,但還是無法使模型像人一樣從語義層面理解文本信息。多標簽文本分類相較于單標簽文本分類來說更加復雜,還存在著很多的挑戰(zhàn),主要體現(xiàn)在以下幾點:
(1)特定領(lǐng)域的數(shù)據(jù)集缺失問題。目前公開的多標簽文本分類領(lǐng)域的數(shù)據(jù)集,大部分是針對新聞領(lǐng)域的,對于特定領(lǐng)域的數(shù)據(jù)集非常匱乏,比如醫(yī)療領(lǐng)域、金融領(lǐng)域和法律領(lǐng)域。因此,需要構(gòu)建特定領(lǐng)域的多標簽文本分類數(shù)據(jù)集。
(2)極端多標簽文本分類問題。極端多標簽文本分類[48]目的是學習一個分類器,該分類器能夠從大量標簽中自動選擇最相關(guān)的標簽來對數(shù)據(jù)進行歸類[56]。極端多標簽文本分類的難點在于標簽集的數(shù)目非常多,包含數(shù)十萬、甚至成百上千萬的標簽。目前多標簽文本分類模型的內(nèi)存占用、模型大小都隨著標簽空間的變大而線性變大,在面對極端多的標簽時,無法成功部署甚至訓練。因此,如何設(shè)計出一個高效的模型來解決極端多標簽文本分類問題是未來亟待解決的一個難點。
(3)標簽間的相關(guān)性研究問題。多標簽文本分類的標簽之間是存在內(nèi)在聯(lián)系的,比如屬于“人工智能”的文本往往跟“深度學習”是相關(guān)聯(lián)的。傳統(tǒng)的一些方法在處理多標簽文本分類問題上,往往沒有考慮標簽之間的相關(guān)性,這也嚴重影響了模型的效率。后面雖然提出了一些方法來研究標簽之間的相關(guān)性,比如Baker等人[30]提出了一種分層的多標簽文本分類方法來得到標簽間的共現(xiàn)關(guān)系,但只是考慮了標簽之間淺層次的關(guān)系,忽略了標簽之間深層次的關(guān)系。因此,如何高效捕捉標簽間的關(guān)系也是多標簽文本分類任務(wù)未來的一大研究重點。
(4)數(shù)據(jù)集標簽長尾問題。對于多標簽文本分類領(lǐng)域存在的數(shù)據(jù)集,都是由文本集和標簽集構(gòu)成的,對于標簽集來說就會有分布不均衡的問題存在,部分標簽與很多文本樣本相關(guān)聯(lián),而還有的一些標簽就非常少,甚至說沒有與文本樣本相關(guān)聯(lián),可以理解為標簽“長尾”的問題[57]。用不平衡的數(shù)據(jù)訓練出來的模型會導致樣本少的種類預測性能很差,甚至無法預測。因此,如何解決標簽長尾問題也是多標簽文本分類領(lǐng)域一個重要的研究問題。