王敏蕊,高 曙,袁自勇,袁 蕾
(武漢理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢430063)(*通信作者電子郵箱gshu418@163.com)
文本分類是自然語(yǔ)言處理領(lǐng)域的重要問(wèn)題之一,傳統(tǒng)的監(jiān)督學(xué)習(xí)方法大多假設(shè)數(shù)據(jù)樣本是單標(biāo)簽形式的,即一個(gè)樣本對(duì)應(yīng)一個(gè)類別標(biāo)簽,但現(xiàn)實(shí)生活中,往往并不如此理想,一個(gè)數(shù)據(jù)樣本通常會(huì)表達(dá)極其復(fù)雜的多重語(yǔ)義。與單標(biāo)簽不同,多標(biāo)簽樣本給一個(gè)樣本標(biāo)注多個(gè)標(biāo)簽,從而更加準(zhǔn)確、有效地表達(dá)單標(biāo)簽所不能表達(dá)的復(fù)雜語(yǔ)義關(guān)系。多標(biāo)簽文本在日常生活中十分常見(jiàn),例如:一條新聞可能同時(shí)包含“華為”“5G”“通信技術(shù)”等多個(gè)主題,一條微博可能同時(shí)標(biāo)注“明星”“綜藝”“搞笑”等多個(gè)標(biāo)簽,因此,研究多標(biāo)簽文本分類對(duì)挖掘具有豐富語(yǔ)義的現(xiàn)實(shí)世界文本對(duì)象具有重要的意義。
多標(biāo)簽的傳統(tǒng)分類方法包括二值分類(Binary Relevance,BR)方法、分類器鏈(Classifier Chain,CC)等。BR方法不考慮標(biāo)簽之間的相關(guān)性,但由于其簡(jiǎn)單而應(yīng)用廣泛。CC 方法考慮每一個(gè)標(biāo)簽與其他所有標(biāo)簽之間的關(guān)系,將多標(biāo)簽學(xué)習(xí)問(wèn)題轉(zhuǎn)化為一組有序的二分類問(wèn)題,其中,每個(gè)二分類器的輸入都要基于之前分類器的預(yù)測(cè)結(jié)果。傳統(tǒng)多標(biāo)簽分類方法中文本特征的提取往往需要人工干預(yù),容易帶來(lái)噪聲,同時(shí)又非常耗費(fèi)人力。近年來(lái),深度學(xué)習(xí)方法在單標(biāo)簽文本分類任務(wù)上取得了非常好的成績(jī)[1-3],但國(guó)內(nèi)外基于深度學(xué)習(xí)的多標(biāo)簽文本分類模型尚處于研究階段,針對(duì)現(xiàn)有深度學(xué)習(xí)模型挖掘標(biāo)簽相關(guān)性效果差問(wèn)題,有學(xué)者提出將多標(biāo)簽文本分類問(wèn)題看作標(biāo)簽序列生成,并取得了較好效果[4-6]。對(duì)于多標(biāo)簽文本分類,每個(gè)樣本對(duì)應(yīng)的標(biāo)簽集都可以看作一個(gè)標(biāo)簽序列,為文本進(jìn)行多標(biāo)簽標(biāo)注可以看成標(biāo)簽序列生成,而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)及其變體已應(yīng)用于各種序列建模任務(wù)中。文獻(xiàn)[5]中首次將多標(biāo)簽文本分類看作序列生成任務(wù),序列生成模型(Sequence Generation Model,SGM)中Decoder 使用RNN 的變體長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò),基于已經(jīng)預(yù)測(cè)的標(biāo)簽產(chǎn)生下一個(gè)標(biāo)簽,這種順序結(jié)構(gòu)由于考慮了標(biāo)簽之間的相關(guān)關(guān)系,從而獲得了更好的多標(biāo)簽文本分類效果。但是由于其序列性,容易造成累計(jì)誤差。針對(duì)以上問(wèn)題,本文受到膠囊網(wǎng)絡(luò)中的動(dòng)態(tài)路由(Dynamic Routing,DR)思想啟發(fā),將序列生成模型和動(dòng)態(tài)路由方法結(jié)合,增加動(dòng)態(tài)路由聚合層,克服序列生成中的累積誤差缺陷,并將其應(yīng)用于多標(biāo)簽文本分類。本文的主要工作如下:
1)將序列生成模型與膠囊網(wǎng)絡(luò)中的動(dòng)態(tài)路由思想結(jié)合,設(shè)計(jì)了一種基于動(dòng)態(tài)路由的解碼器結(jié)構(gòu)。這種解碼器結(jié)構(gòu)能減弱序列生成模型中累積誤差的影響,其中,優(yōu)化的動(dòng)態(tài)路由算法能提升語(yǔ)義聚合效果。
2)利用所提出的解碼器結(jié)構(gòu),構(gòu)建了基于動(dòng)態(tài)路由的序列生成模型(SGM based on DR,DR-SGM),并將DR-SGM 應(yīng)用于多標(biāo)簽文本分類。該模型能通過(guò)其順序結(jié)構(gòu)捕捉標(biāo)簽相關(guān)性,從而提升多標(biāo)簽分類效果。
3)將本文模型在三個(gè)多標(biāo)簽文本數(shù)據(jù)集進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明,本文模型性能優(yōu)于7個(gè)基準(zhǔn)模型。
多標(biāo)簽文本分類任務(wù)一直是自然語(yǔ)言處理領(lǐng)域一個(gè)十分重要卻又富有挑戰(zhàn)性的任務(wù)。多年來(lái),國(guó)內(nèi)外學(xué)者在多標(biāo)簽文本分類領(lǐng)域投入了大量研究。多標(biāo)簽文本分類,顧名思義,即是對(duì)具有多個(gè)標(biāo)簽的文本樣本進(jìn)行標(biāo)簽預(yù)測(cè),它相對(duì)于單標(biāo)簽文本分類更加復(fù)雜?,F(xiàn)有的多標(biāo)簽文本分類方法可劃分為傳統(tǒng)方法和深度學(xué)習(xí)方法,綜述如下:
按照解決策略準(zhǔn)則,傳統(tǒng)機(jī)器學(xué)習(xí)方法中將多標(biāo)簽分類分為問(wèn)題轉(zhuǎn)化和算法適應(yīng)兩類。問(wèn)題轉(zhuǎn)化方法指將多標(biāo)簽問(wèn)題轉(zhuǎn)化為一個(gè)或一組單標(biāo)簽問(wèn)題,從而運(yùn)用已有的單標(biāo)簽算法解決,如標(biāo)簽冪集(Label Powerset,LP)[7]、分類器鏈[8]等。算法適應(yīng)方法指通過(guò)改進(jìn)現(xiàn)有單標(biāo)簽算法以完成多標(biāo)簽學(xué)習(xí)任務(wù)。例如:Osojnik 等[9]設(shè)計(jì)了一種基于流式多目標(biāo)回歸器iSOUP-Tree 的多標(biāo)簽分類方法;李兆玉等[10]為每個(gè)訓(xùn)練樣本的近鄰集合計(jì)算其近鄰密度和近鄰權(quán)重,提出了一種基于引力模型的多標(biāo)簽分類算法;劉慧婷等[11]設(shè)計(jì)了基于去噪自編碼器和矩陣分解的聯(lián)合嵌入多標(biāo)簽分類算法Deep AE-MF。
基于深度學(xué)習(xí)模型的多標(biāo)簽文本分類模型尚處研究階段,并沒(méi)有很完整的體系分類,但已經(jīng)有學(xué)者取得了一些成果:Baker 等[12]設(shè)計(jì)了一種基于卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)架構(gòu)的標(biāo)簽共現(xiàn)的多標(biāo)簽文本分類方法;Kurata 等[13]提出了一種新穎的基于標(biāo)簽共現(xiàn)神經(jīng)網(wǎng)絡(luò)初始化方法;Shimura等[14]提出一種針對(duì)短文本多標(biāo)簽文本的分層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該方法利用類別之間的層次關(guān)系解決短文本數(shù)據(jù)稀疏問(wèn)題;Yang 等[15]提出了一種可以“重新考慮”預(yù)測(cè)的標(biāo)簽的深度學(xué)習(xí)框架;宋攀等[16]提出了一種基于神經(jīng)網(wǎng)絡(luò)探究標(biāo)簽依賴關(guān)系的算法執(zhí)行多標(biāo)簽分類任務(wù);Liu等[17]針對(duì)極端多標(biāo)簽文本分類中巨大的標(biāo)簽空間引發(fā)的數(shù)據(jù)稀疏性和可擴(kuò)展性,考慮標(biāo)簽共現(xiàn)問(wèn)題,提出了專為一種多標(biāo)簽學(xué)習(xí)設(shè)計(jì)的新的卷積神經(jīng)網(wǎng)絡(luò)模型;He 等[18]將標(biāo)簽關(guān)聯(lián)、缺失標(biāo)簽和特征選擇聯(lián)合起來(lái),提出一種新的多標(biāo)簽分類學(xué)習(xí)框架;Banerjee 等[19]將多標(biāo)簽文檔按層次劃分,制定了一種新的基于遷移學(xué)習(xí)的分類策略HTrans。序列生成思想應(yīng)用于多標(biāo)簽文本分類已有部分成果:Chen 等[4]提出通過(guò)將CNN 與RNN組合以捕捉全局和局部文本語(yǔ)義,并通過(guò)RNN 輸出標(biāo)簽序列;Yang 等[5]首次提出將序列生成思想應(yīng)用于多標(biāo)簽文本分類;Qin等[6]延續(xù)序列生成思想,構(gòu)建新的訓(xùn)練目標(biāo),以便RNN能發(fā)現(xiàn)最佳標(biāo)簽順序。
綜上所述,深度學(xué)習(xí)方法被越來(lái)越多地應(yīng)用于多標(biāo)簽文本分類領(lǐng)域,序列生成模型是多標(biāo)簽文本分類中一次成功的嘗試,但其標(biāo)簽序列生成過(guò)程中容易產(chǎn)生累積誤差,嚴(yán)重影響時(shí)間靠后的標(biāo)簽生成,從而降低標(biāo)簽標(biāo)注準(zhǔn)確率。本文主要針對(duì)這個(gè)不足展開(kāi)研究工作。
多標(biāo)簽文本指一個(gè)實(shí)例被多個(gè)標(biāo)簽標(biāo)注的文本,多標(biāo)簽文本分類問(wèn)題的目標(biāo)是為每個(gè)未分類文本樣本標(biāo)注合適的類別標(biāo)簽。形式化地描述為:
假設(shè)文本樣本空間X={x1,x2,…,xm},對(duì)應(yīng)包含n個(gè)類別的標(biāo)簽空間Y={y1,y2,…,yn},現(xiàn)有多標(biāo)簽文本訓(xùn)練集D=,多標(biāo)簽分類任務(wù)的目的就是利用訓(xùn)練集D學(xué)習(xí)到一個(gè)分類器C:X→2Y。對(duì)于每一個(gè)樣本xi,都有一個(gè)標(biāo)簽集合Yi與之關(guān)聯(lián)[20]。
為更好探究標(biāo)簽之間的相關(guān)性,本文構(gòu)建了一種基于動(dòng)態(tài)路由的RNN 序列生成模型(DR-DGM),以取得更好的多標(biāo)簽文本分類效果。
序列生成模型Seq2Seq(Sequence to Sequence)是一種Encoder-Decoder結(jié)構(gòu),最早應(yīng)用于機(jī)器翻譯任務(wù)中,并在當(dāng)時(shí)取得了巨大成功。其主要思想是通過(guò)深度神經(jīng)網(wǎng)絡(luò)將原始輸入的可變長(zhǎng)序列映射到另一可變長(zhǎng)度的序列中。其中,使用的深度神經(jīng)網(wǎng)絡(luò)通常是RNN,常用的有LSTM 神經(jīng)網(wǎng)絡(luò)和門(mén)控循環(huán)單元網(wǎng)絡(luò)(Gated Recurrent Unit,GRU)。Seq2Seq 模型結(jié)構(gòu)如圖1所示,主要包括三部分:
1)編碼器(Encoder):讀取原始語(yǔ)言序列,將其編碼成為一個(gè)固定長(zhǎng)度的具有原始語(yǔ)言信息的向量。
2)中間狀態(tài)變量:對(duì)所有輸入內(nèi)容的集合。
圖1 序列生成模型結(jié)構(gòu)Fig.1 Architecture of sequence generation model
3)解碼器(Decoder):根據(jù)中間狀態(tài)變量,得到解空間的概率分布,最終生成輸出可變長(zhǎng)序列。
受序列生成模型啟發(fā),有學(xué)者創(chuàng)新性地將多標(biāo)簽分類問(wèn)題看作標(biāo)簽序列生成問(wèn)題。在Encoder 層使用雙向長(zhǎng)短期記憶(Bi-directional Long Short-Term Memory,Bi-LSTM)神經(jīng)網(wǎng)絡(luò)+Attention 結(jié)構(gòu)捕獲語(yǔ)義信息,在Decoder 層的每一時(shí)刻都進(jìn)行一次標(biāo)簽序列生成,預(yù)測(cè)的標(biāo)簽集合由各個(gè)時(shí)刻生成的標(biāo)簽組成。
序列生成模型利用LSTM 順序地生成標(biāo)簽以捕獲標(biāo)簽之間的相關(guān)性,但也是由于其順序結(jié)構(gòu),上一時(shí)刻的輸出對(duì)下一時(shí)刻的標(biāo)簽生成具有重要影響,如果上一時(shí)刻包含錯(cuò)誤信息,那么下一時(shí)刻的標(biāo)簽輸出大概率也是錯(cuò)誤的。為了盡可能將上一時(shí)刻的正確信息傳導(dǎo)下去,本文受膠囊網(wǎng)絡(luò)[21-22]啟發(fā),使用動(dòng)態(tài)路由聚合解碼器結(jié)構(gòu)中的信息,以提升文本語(yǔ)義信息傳遞的聚合效果,從而更好地降低錯(cuò)誤信息的疊加。
為解決傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)無(wú)法捕捉圖像特征位置相對(duì)關(guān)系的缺點(diǎn),膠囊網(wǎng)絡(luò)[21]應(yīng)運(yùn)而生。在文本處理中,膠囊網(wǎng)絡(luò)中的動(dòng)態(tài)路由過(guò)程能捕捉部分-部分、部分-整體的位置信息[22],也能更好地聚合文本語(yǔ)義信息[23]。本文將動(dòng)態(tài)路由過(guò)程應(yīng)用于序列生成模型的解碼器結(jié)構(gòu)中,具體結(jié)構(gòu)如圖2所示。
圖2 基于動(dòng)態(tài)路由的解碼器結(jié)構(gòu)Fig.2 Decoder based on dynamic routing
圖2中省略了Encoder層和中間語(yǔ)義變量ci∈{c1,c2,…,cn} 的詳細(xì)內(nèi)容,在計(jì)算得到Decoder 層隱含變量si∈{s1,s2,…,sn}后,將其輸入動(dòng)態(tài)路由聚合層(具體的路由優(yōu)化算法如算法1 所示),最后輸出到Softmax 層進(jìn)行分類并得到解空間的標(biāo)簽概率分布,每一時(shí)刻的輸出為解空間中概率最大的標(biāo)簽。其中,標(biāo)簽的預(yù)測(cè)以<EOS>標(biāo)志為結(jié)束。此外,動(dòng)態(tài)路由聚合層的參數(shù)是全局共享的,這樣能減弱累積誤差產(chǎn)生的影響。
同時(shí),本文探索了兩種策略以優(yōu)化動(dòng)態(tài)路由的聚合效果。首先,為解決動(dòng)態(tài)路由過(guò)程中的類別分布稀疏問(wèn)題,本文使用sparsemax代替動(dòng)態(tài)路由中的softmax[24],如式(1):
其中:ΔK-1?{p∈RK|1Tp=1,p≥0},表示(K-1)維單形,從RK到ΔK-1的映射能夠更有效地將實(shí)際權(quán)重向量轉(zhuǎn)化為概率分布。sparsemax 將輸入向量的歐氏距離投影轉(zhuǎn)化為概率單形,這種投影方法使得sparsemax 更適用于類別稀疏的情況。其次,為加強(qiáng)低層膠囊到高層膠囊的連接強(qiáng)度,引入高層膠囊權(quán)重系數(shù)wj(j表示第j個(gè)高層膠囊),wj是高層膠囊vj的模(具體計(jì)算方法參見(jiàn)算法1中描述),并用于修正下一次低層膠囊對(duì)高層膠囊的連接強(qiáng)度,在迭代過(guò)程中提升對(duì)分類結(jié)果有重要影響的膠囊權(quán)重。
依據(jù)以上兩點(diǎn)改進(jìn),設(shè)計(jì)動(dòng)態(tài)路由優(yōu)化算法如算法1 所示。其中,squash表示非線性激活函數(shù)[21]。
算法1 動(dòng)態(tài)路由優(yōu)化算法。
綜上所述,本文將膠囊網(wǎng)絡(luò)中的動(dòng)態(tài)路由算法進(jìn)行優(yōu)化,然后將其與解碼器結(jié)構(gòu)融合,構(gòu)建了如圖2 所示的基于動(dòng)態(tài)路由的解碼器結(jié)構(gòu)。
利用2.2 節(jié)所提出的解碼器結(jié)構(gòu)及優(yōu)化的路由算法,設(shè)計(jì)基于動(dòng)態(tài)路由的RNN序列生成模型框架(DR-SGM),如圖3所示,其中D/R 膠囊圖標(biāo)具體細(xì)節(jié)即圖2 所展示內(nèi)容。模型主要由以下幾個(gè)部分組成:
1)輸入層。對(duì)原始文本進(jìn)行預(yù)處理,然后使用word2vec詞嵌入技術(shù)將其轉(zhuǎn)換為數(shù)字表示的詞向量,模型的輸入為多個(gè)詞向量組合得到句子向量。
2)Encoder 層。假設(shè)輸入的句子中含有m個(gè)單詞,向量化后該句子可表示為(e1,e2,…,ei,…,em),其中ei表示該句子中第i個(gè)詞對(duì)應(yīng)的詞向量。Encoder 層使用Bi-LSTM+Attention機(jī)制,具體計(jì)算過(guò)程見(jiàn)式(2)~(5):
其中:hi表示第i個(gè)單詞對(duì)應(yīng)Enocder 層中的隱含狀態(tài),它由i時(shí)刻前向LSTM和反向LSTM聯(lián)結(jié)而成;αti表示在t時(shí)刻,Attention 機(jī)制為第i個(gè)單詞分配的權(quán)重;Wa、Ua、都是權(quán)重系數(shù)。
3)中間語(yǔ)義層。每一時(shí)刻的中間語(yǔ)義向量ct由Encoder層中隱含狀態(tài)hi計(jì)算得到,其計(jì)算公式如式(6):
4)Decoder 層。t時(shí)刻Decoder 層的隱含向量st首先由中間語(yǔ)義向量ct計(jì)算得到,公式如(7)。
其中:g(yt-1)代表概率分布yt-1中最高概率標(biāo)簽的全局嵌入[5]。
然后將隱含向量st輸入動(dòng)態(tài)路由聚合層,即圖3中的D/R膠囊圖標(biāo)。
其中,DR代表動(dòng)態(tài)路由過(guò)程,具體內(nèi)容見(jiàn)2.2節(jié)。
5)輸出層。輸出層在每一個(gè)時(shí)刻都會(huì)輸出一個(gè)標(biāo)簽概率分布yt,每次取最高概率標(biāo)簽作為當(dāng)前時(shí)刻的“標(biāo)簽序列生成”,yt的計(jì)算公式如下:
其中:Wo、Wd和Vd是權(quán)重系數(shù);It是為了保證不預(yù)測(cè)重復(fù)標(biāo)簽的掩碼向量;f是非線性激活函數(shù)[5]。
由圖3可知,DR-SGM 模型在SGM+GE(SGM+Global Embedding)模型[5]的基礎(chǔ)上進(jìn)行了改進(jìn),首先,使用sparsemax和迭代權(quán)重w優(yōu)化動(dòng)態(tài)路由策略;然后,添加動(dòng)態(tài)路由層,使用優(yōu)化的動(dòng)態(tài)路由算法改進(jìn)解碼器結(jié)構(gòu),以強(qiáng)化語(yǔ)義聚合效果,捕獲文本關(guān)系,削弱因順序結(jié)構(gòu)造成的累積誤差;最后,在以上工作的基礎(chǔ)上,構(gòu)建基于動(dòng)態(tài)路由的序列生成模型。
算法2 基于DR-SGM的多標(biāo)簽文本分類算法。
輸入 多標(biāo)簽文本數(shù)據(jù)集(x(n),y(n))(n=1,2,…,N),訓(xùn)練輪數(shù)r;
圖3 基于動(dòng)態(tài)路由的RNN序列生成模型(DR-SGM)架構(gòu)Fig.3 Architecture of RNN sequence generation model based on Dynamic Routing(DR-SGM)
利用DR-SGM 模型,設(shè)計(jì)多標(biāo)簽文本分類算法如算法2所示。首先對(duì)文本進(jìn)行去停用詞、分詞,將其轉(zhuǎn)化為詞向量后進(jìn)行本地結(jié)構(gòu)化存儲(chǔ)。句子轉(zhuǎn)化為詞向量矩陣后輸入DRSGM 模型,通過(guò)Encoder 層得到各個(gè)時(shí)刻的中間語(yǔ)義向量ci,再計(jì)算出Decoder 層隱含向量si,轉(zhuǎn)化為膠囊向量后作為動(dòng)態(tài)路由優(yōu)化算法的輸入,進(jìn)行三次路由迭代。最后通過(guò)Softmax輸出標(biāo)簽序列。輸出層在每個(gè)時(shí)刻的輸出中選擇輸出標(biāo)簽序列中最大概率的標(biāo)簽加入預(yù)測(cè)標(biāo)簽序列,以<EOS>為序列生成結(jié)束標(biāo)志。每次訓(xùn)練完成后,在測(cè)試數(shù)據(jù)集上驗(yàn)證模型分類效果,對(duì)模型參數(shù)進(jìn)行迭代更新,共享動(dòng)態(tài)路由層參數(shù),并通過(guò)Adam優(yōu)化器優(yōu)化神經(jīng)網(wǎng)絡(luò)。
本文采用RCV1-V2、AAPD 和Slashdot 作為實(shí)驗(yàn)數(shù)據(jù)集:公開(kāi)數(shù)據(jù)集RCV1-V2 是路透社公布的新聞數(shù)據(jù)集,包含804 414 篇新聞,共103 個(gè)主題;AAPD 數(shù)據(jù)集是arxiv 網(wǎng)站的論文摘要數(shù)據(jù)集,包含55 840 個(gè)論文標(biāo)題和摘要,共54 個(gè)主題;Slashdot 是一個(gè)社交網(wǎng)絡(luò)數(shù)據(jù)集,包含24 072 個(gè)文檔,共291個(gè)主題。數(shù)據(jù)集的具體信息如表1所示。
表1 數(shù)據(jù)集詳細(xì)信息Tab.1 Detail of datasets
采用F1 值、漢明損失(Hamming Loss,HL)作為性能評(píng)價(jià)指標(biāo),如式(11)、(12):
其中:Precision代表準(zhǔn)確率,Recall代表召回率,M為樣本數(shù),Yi是真實(shí)標(biāo)簽集合,是預(yù)測(cè)標(biāo)簽集合,為樣本預(yù)測(cè)標(biāo)簽集合和真實(shí)標(biāo)簽集合的對(duì)稱差分。F1 值越大多標(biāo)簽分類效果越好,而HL是衡量樣本中誤分標(biāo)簽平均數(shù)量的指標(biāo),HL越小,誤分標(biāo)簽數(shù)量越少,多標(biāo)簽分類模型性能越好。
本文實(shí)驗(yàn)基于Tensorflow 框架,使用Numpy、Keras 庫(kù)進(jìn)行開(kāi)發(fā),編程語(yǔ)言是Python3.6。數(shù)據(jù)集被隨機(jī)洗亂,其中90%作為訓(xùn)練集,剩余10%作為測(cè)試集。詞向量使用預(yù)訓(xùn)練的300 維word2vec 詞向量,不在字典中的低頻單詞用全0 表示。RCV1-V2固定句子長(zhǎng)度為500,AAPD 數(shù)據(jù)集固定句子長(zhǎng)度為300,Slashdot 數(shù)據(jù)集固定句子長(zhǎng)度為120,多余截去,不足用0補(bǔ)齊。此外,dropout設(shè)置為0.5,學(xué)習(xí)率設(shè)置為0.001,并使用Adam優(yōu)化器和交叉熵?fù)p失函數(shù)訓(xùn)練數(shù)據(jù)。
本文使用以下基準(zhǔn)模型與本文構(gòu)建的DR-SGM 模型進(jìn)行對(duì)比:
1)二值分類(Binary Relevance,BR):BR 算法將多標(biāo)簽分類任務(wù)分解成n個(gè)獨(dú)立的二元分類問(wèn)題,每一個(gè)二元分類問(wèn)題對(duì)應(yīng)于標(biāo)簽空間中的某一特定標(biāo)簽。
2)分類器鏈(Classifier Chain,CC):CC 將多標(biāo)簽學(xué)習(xí)問(wèn)題轉(zhuǎn)化為一組有序的二分類問(wèn)題,其中每個(gè)二分類器的輸入都要基于之前分類器的預(yù)測(cè)結(jié)果。
3)標(biāo)簽冪集(Label Powerset,LP):LP 將多標(biāo)簽學(xué)習(xí)問(wèn)題轉(zhuǎn)化為多類分類問(wèn)題進(jìn)行學(xué)習(xí)。它將訓(xùn)練數(shù)據(jù)集的標(biāo)簽集合每個(gè)不同的標(biāo)簽子集成為labelset,看作是單標(biāo)簽分類任務(wù)中多類分類問(wèn)題的不同類別值,然后利用分類器進(jìn)行求解。
4)CNN-RNN[4]:利用CNN 捕獲全局文本特征后輸入RNN進(jìn)行局部語(yǔ)義特征捕獲,同時(shí)考慮標(biāo)簽相關(guān)性。
5)序列生成模型(SGM)[5]:將多標(biāo)簽文本分類問(wèn)題轉(zhuǎn)換為標(biāo)簽序列生成問(wèn)題。
6)SGM+GE(Global Embedding,全局嵌入)[5]:在序列生成模型的基礎(chǔ)上使用Global Embedding。
7)set-RNN(Adapting RNN to Multilabel Set Prediction,自適應(yīng)RNN)[6]:同樣將多標(biāo)簽文本分類問(wèn)題轉(zhuǎn)換為標(biāo)簽序列生成問(wèn)題,提出新的訓(xùn)練和預(yù)測(cè)目標(biāo),使RNN 能發(fā)現(xiàn)最佳標(biāo)簽順序。
其中:1)~3)是傳統(tǒng)機(jī)器學(xué)習(xí)算法,均使用梯度提升決策樹(shù)作為基分類器;4)~7)是基于RNN的深度學(xué)習(xí)模型。
膠囊維數(shù)對(duì)動(dòng)態(tài)路由過(guò)程有重要影響,膠囊維數(shù)過(guò)少可能無(wú)法有效捕捉文本語(yǔ)義,膠囊維數(shù)過(guò)多可能導(dǎo)致噪聲出現(xiàn)。因此,本文對(duì)動(dòng)態(tài)路由的膠囊數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響進(jìn)行了探索,結(jié)果如表2 所示。在RCV1-V2 和Slashdot 上,低層膠囊數(shù)/高層膠囊數(shù)為32/16時(shí)取得較好效果。而在AAPD 數(shù)據(jù)集上,低層膠囊數(shù)/高層膠囊數(shù)為16/8時(shí)取得較好效果。就平均文本長(zhǎng)度,RCV1-V2 和Slashdot 數(shù)據(jù)集中文本更短小,可能需要更多的膠囊進(jìn)行語(yǔ)義信息捕獲。此外,并不是膠囊數(shù)越多,性能越優(yōu),也出現(xiàn)了膠囊數(shù)增多,性能不變甚至下降的情況,這可能是因?yàn)槎嘤嗄z囊捕獲了額外的無(wú)關(guān)語(yǔ)義信息,從而對(duì)計(jì)算結(jié)果造成負(fù)影響。
表2 膠囊數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響Tab.2 Effect of the number of capsules on experimental results
在RCV1-V2、AAPD 和Slashdot 數(shù)據(jù)集上,分別利用F1 值和HL兩個(gè)性能指標(biāo),測(cè)試了上述6 個(gè)基準(zhǔn)模型以及本文提出DR-SGM 模型,實(shí)驗(yàn)結(jié)果如表3 所示,“—”表示不可獲取。其中F1值越大,反映模型性能越好,HL則正好相反。
表3 實(shí)驗(yàn)結(jié)果Tab.3 Results of experiments
從表3 可以看出(最佳結(jié)果在表格中用下劃線標(biāo)出),在RCV1-V2、AAPD 以及Slashdot數(shù)據(jù)集上,DR-SGM 模型的大部分評(píng)估標(biāo)準(zhǔn)相對(duì)于基準(zhǔn)模型都取得了最優(yōu)的效果,只有在AAPD 數(shù)據(jù)集上,其HL比set-RNN 模型略遜一籌,低了0.4%。然而相對(duì)于SGM+GE 模型(在其基礎(chǔ)上改進(jìn)),在RCV1-V2 數(shù)據(jù)集上,其F1 值提升了1.25%,HL提升了5.3%;在AAPD 數(shù)據(jù)集和Slashdot數(shù)據(jù)集上,其F1值和HL均有一定程度提升。
從實(shí)驗(yàn)結(jié)果看,深度學(xué)習(xí)方法(包括本文提出的DR-SGM以及CNN-RNN、SGM 和set-RNN)相較傳統(tǒng)方法(包括BR、CC和LP 等),無(wú)疑有著更加優(yōu)秀的結(jié)果。傳統(tǒng)方法非常依賴于特征工程,而復(fù)雜的特征工程往往帶來(lái)繁瑣的工作和人工操作錯(cuò)誤的風(fēng)險(xiǎn)。對(duì)于一些復(fù)雜的情況,傳統(tǒng)方法由于特征工程的局限常常無(wú)法進(jìn)行處理。而深度學(xué)習(xí)方法可以自動(dòng)提取特征,完全消除了特征工程帶來(lái)的負(fù)面影響。此外,數(shù)據(jù)集Slashdot、RCV1-V2、AAPD 包含標(biāo)簽數(shù)分別為291、103、54。在各種分類方法下,相對(duì)于其他數(shù)據(jù)集,擁有近三百個(gè)標(biāo)簽的Slashdot分類結(jié)果顯然十分不理想,其原因可能是樣本數(shù)量與標(biāo)簽量的不匹配。Slashdot的標(biāo)簽數(shù)量是RCV1-V2的近3倍,AAPD 的5 倍多,但是其樣本量只有RCV1-V2 的約1/30,AAPD 的約1/2,能夠訓(xùn)練的樣本數(shù)量不足以匹配龐大的標(biāo)簽數(shù),同時(shí)文本長(zhǎng)度短,能捕捉的語(yǔ)義信息少,因而造成分類評(píng)價(jià)結(jié)果差。然而數(shù)據(jù)集RCV1-V2 的標(biāo)簽數(shù)是AAPD 的約2倍,其分類效果卻明顯優(yōu)于AAPD 數(shù)據(jù)集,這可能是因?yàn)镽CV1-V2 數(shù)據(jù)集的樣本數(shù)更多,大約為AAPD 的15 倍,因此模型能夠?qū)W習(xí)到的內(nèi)容更多,從而分類效果更好。由此可見(jiàn),多標(biāo)簽文本分類方法對(duì)樣本數(shù)量的依賴性很大,同時(shí),標(biāo)簽數(shù)量和文本長(zhǎng)度也是影響分類效果的重要因素。
就各種深度學(xué)習(xí)方法而言,由于在多標(biāo)簽文本分類任務(wù)中,標(biāo)簽相關(guān)性是極其重要的信息之一,捕捉標(biāo)簽相關(guān)性對(duì)多標(biāo)簽文本分類具有重大意義,而CNN-RNN模型中并沒(méi)有考慮到標(biāo)簽相關(guān)性問(wèn)題,但DR-SGM模型通過(guò)LSTM順序結(jié)構(gòu)處理標(biāo)簽序列,每一個(gè)生成的標(biāo)簽都充分考慮了之前標(biāo)簽的信息,從而取得了比它更好的效果;DR-SGM 模型是基于SGM+GE模型進(jìn)行優(yōu)化,相對(duì)于原始的SGM 模型或SGM+GE 模型都有一定性能上的提升,其原因可能在于,動(dòng)態(tài)路由方法能夠額外捕獲文本中部分-部分、部分-整體的位置信息,同時(shí)因?yàn)閯?dòng)態(tài)路由聚合層共享了全局參數(shù),削弱了前一時(shí)刻的文本信息對(duì)后面時(shí)刻的影響,從而降低RNN 循序結(jié)構(gòu)造成的累積誤差。set-RNN模型通過(guò)數(shù)學(xué)方法修改模型訓(xùn)練的方法和目標(biāo),使其能發(fā)現(xiàn)最佳標(biāo)簽順序,誤分標(biāo)簽數(shù)較少,Hamming Loss指標(biāo)表現(xiàn)更好,但是,相對(duì)于DR-SGM,它在有效捕捉文本語(yǔ)義方面略微遜色,因此F1值結(jié)果略遜一籌。
綜上所述,無(wú)論是和傳統(tǒng)方法相比,還是和現(xiàn)有的深度學(xué)習(xí)方法相比,DR-SGM都取得了有競(jìng)爭(zhēng)力的結(jié)果。
本文沿用將序列生成模型應(yīng)用于多標(biāo)簽文本分類的思想,將多標(biāo)簽文本分類看作一個(gè)標(biāo)簽序列生成問(wèn)題,不同于以往的解碼器結(jié)構(gòu),本文借鑒膠囊網(wǎng)絡(luò)思想,將動(dòng)態(tài)路由應(yīng)用于序列生成中的解碼器結(jié)構(gòu),構(gòu)建了DR-SGM 模型。在Encoder層,通過(guò)使用BiLSTM+Attention 結(jié)構(gòu)最大限度捕捉語(yǔ)義信息;在Decoder 層,增加了動(dòng)態(tài)路由聚合層聚合文本信息,從而額外捕獲了文本中部分-部分、部分-整體的位置信息,同時(shí)通過(guò)在全局范圍內(nèi)共享動(dòng)態(tài)路由參數(shù),在一定程度上減輕了序列生成產(chǎn)生累積誤差的負(fù)面影響,而且,在設(shè)計(jì)的動(dòng)態(tài)路由算法中,為解決路由過(guò)程中類別稀疏問(wèn)題,采用sparsemax 代替Softmax;為加強(qiáng)低層膠囊到高層膠囊的連接強(qiáng)度,引入權(quán)重系數(shù)w在動(dòng)態(tài)路由過(guò)程進(jìn)行迭代加權(quán)。此外,面向多標(biāo)簽文本分類領(lǐng)域,制定了基于DR-SGM 的多標(biāo)簽文本分類算法,實(shí)驗(yàn)結(jié)果表明,相比7 個(gè)基準(zhǔn)模型,本文設(shè)計(jì)的DR-SGM 模型取得了較好的分類效果。
在多標(biāo)簽文本分類領(lǐng)域,仍然有許多問(wèn)題值得探索,例如序列生成模型極度依賴標(biāo)簽順序,而在現(xiàn)實(shí)生活中標(biāo)簽集合是無(wú)序的;同時(shí)多標(biāo)簽文本中往往存在大量樣本不均衡的情況,對(duì)部分類別標(biāo)簽樣本的偏向性會(huì)嚴(yán)重影響分類模型的分類效果。