国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種改進(jìn)GraphRNN的多標(biāo)簽文本分類方法

2023-05-12 12:07:00劉漢東鐘學(xué)燕
關(guān)鍵詞:關(guān)聯(lián)標(biāo)簽程度

劉漢東,鐘學(xué)燕,陳 雁,王 欣

(西南石油大學(xué) 計算機(jī)科學(xué)學(xué)院,成都 610500)

1 引 言

多標(biāo)簽分類是機(jī)器學(xué)習(xí)領(lǐng)域中一個重要的學(xué)習(xí)任務(wù),其樣本可以被分配到多個標(biāo)簽上,被廣泛應(yīng)用于文本分類[1]、圖像標(biāo)注[2]、推薦系統(tǒng)[3]等實際場景.對于多標(biāo)簽分類問題,傳統(tǒng)的多標(biāo)簽分類方法可分為問題轉(zhuǎn)換[4-6]和算法適應(yīng)[7,8],在標(biāo)簽數(shù)量較小的情況下效果不錯,但當(dāng)標(biāo)簽空間較大時,輸出空間會出現(xiàn)指數(shù)級增長,最壞情況計算復(fù)雜度達(dá)到2q,q為標(biāo)簽空間大小,在這種情形下傳統(tǒng)方法難以滿足性能需求.

實際上,多數(shù)場景中標(biāo)簽之間存在關(guān)聯(lián),利用標(biāo)簽關(guān)聯(lián)可以降低多標(biāo)簽分類問題的難度.由于傳統(tǒng)方法建模標(biāo)簽關(guān)聯(lián)的能力有限,因此有研究將循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)用于多標(biāo)簽分類[9-11].RNN具有短期記憶能力,常用于處理時間序列數(shù)據(jù),在序列到序列(Sequence to Sequence,Seq2Seq)[12]模型下,基于RNN可以將多標(biāo)簽分類問題轉(zhuǎn)換為多標(biāo)簽序列生成問題[13],能很好地建模標(biāo)簽關(guān)聯(lián).這種方法的關(guān)鍵是如何將多個標(biāo)簽按某種順序轉(zhuǎn)換為標(biāo)簽序列[14,15],事實上,分類結(jié)果受標(biāo)簽順序影響,而現(xiàn)實場景中適合數(shù)據(jù)的標(biāo)簽順序難以事先得知,預(yù)先指定順序可能會破壞標(biāo)簽之間的自然關(guān)聯(lián).對于這一問題,現(xiàn)有研究主要有兩類解決方法:1)使模型具有自適應(yīng)確定合理標(biāo)簽順序的能力[15,16];2)直接生成標(biāo)簽集[17,18],而非標(biāo)簽序列.然而,標(biāo)簽之間的關(guān)聯(lián)是復(fù)雜的,共現(xiàn)頻率高的標(biāo)簽關(guān)聯(lián)程度高,共現(xiàn)頻率低的標(biāo)簽關(guān)聯(lián)程度相對偏低.在建模標(biāo)簽關(guān)聯(lián)時,通常希望關(guān)聯(lián)程度高的標(biāo)簽位置鄰近,而關(guān)聯(lián)程度低的標(biāo)簽相隔較遠(yuǎn),利用標(biāo)簽關(guān)聯(lián)程度可以對標(biāo)簽重排列,有助于分類.現(xiàn)有的兩類方法能建模標(biāo)簽關(guān)聯(lián)并減少模型對標(biāo)簽順序的依賴,但在建模標(biāo)簽關(guān)聯(lián)程度方面存在不足.

在文本分類領(lǐng)域,針對現(xiàn)有方法的不足,本文提出基于改進(jìn)圖循環(huán)神經(jīng)網(wǎng)絡(luò)(Graph Recurrent Neural Network,GraphRNN)[19]的多標(biāo)簽文本分類,能同時解決預(yù)定義標(biāo)簽順序和建模標(biāo)簽關(guān)聯(lián)程度不足的問題.具體地,本文從標(biāo)簽共現(xiàn)信息中挖掘全局性的標(biāo)簽關(guān)聯(lián)程度,構(gòu)建標(biāo)簽圖來表示標(biāo)簽集,將原始問題轉(zhuǎn)化為圖生成問題,從而避免預(yù)定義標(biāo)簽順序;在標(biāo)簽圖生成過程中,節(jié)點生成建模標(biāo)簽關(guān)聯(lián),邊生成建模標(biāo)簽關(guān)聯(lián)程度,最后將生成的標(biāo)簽圖轉(zhuǎn)回為標(biāo)簽集,作為分類結(jié)果.本文主要貢獻(xiàn)有如下兩個方面:

1)將多標(biāo)簽分類問題轉(zhuǎn)換為標(biāo)簽圖生成問題,可避免預(yù)定義標(biāo)簽順序;

2)利用標(biāo)簽共現(xiàn)信息,建模標(biāo)簽關(guān)聯(lián)程度,可以更細(xì)致地建模標(biāo)簽關(guān)聯(lián).

2 相關(guān)研究

2.1 多標(biāo)簽分類

從利用標(biāo)簽關(guān)聯(lián)的角度分析,多標(biāo)簽分類方法大致可以分為3類[20]:1)一階方法,典型算法如Binary Relevance[4]、ML-KNN[8],這類方法簡單有效,但忽略了標(biāo)簽關(guān)聯(lián);2)二階方法,典型算法如Rank-SVM[7]、Calibrated Label Ranking[5],這類方法考慮標(biāo)簽對兩兩之間的聯(lián)系,如排序問題中標(biāo)簽之間的前后關(guān)系[21];3)高階方法,這類方法能建模多個標(biāo)簽之間的關(guān)聯(lián),但需要預(yù)定義順序,存在累計誤差,典型算法如Classifier Chains[22]、Ensemble Classifier Chains[22].在以上3類方法中,高階方法能夠更好地挖掘標(biāo)簽關(guān)聯(lián),目前圍繞此類方法展開的研究居多.

為了緩解標(biāo)簽順序?qū)lassifier Chains的影響,賴德迪等[23]在Classifier Chains的基礎(chǔ)上根據(jù)標(biāo)簽共現(xiàn)信息采用貪心策略和n-gram方法優(yōu)化標(biāo)簽序列,但在標(biāo)簽序列的優(yōu)化上易陷入局部最優(yōu).肖琳等[24]認(rèn)為標(biāo)簽包含語義信息,利用詞嵌入方法表示標(biāo)簽來隱式地考慮標(biāo)簽關(guān)聯(lián),并在注意力機(jī)制(Attention)下獲取標(biāo)簽的文檔表示,通過感知機(jī)預(yù)測每一個標(biāo)簽的出現(xiàn)概率,但缺乏顯示地對標(biāo)簽關(guān)聯(lián)進(jìn)行建模,僅依靠標(biāo)簽語義難以建模語義上不相似但共現(xiàn)程度較高的標(biāo)簽間的關(guān)聯(lián).得益于圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)強(qiáng)大的特征抽取能力,劉曉玲等[25]基于GCN建模標(biāo)簽高階關(guān)聯(lián),但在建模標(biāo)簽關(guān)聯(lián)時沒有考慮輸入的文本信息,而借助輸入信息可以更好地在特定語義下表示標(biāo)簽關(guān)聯(lián).由于RNN具有記憶能力,近年來,不少研究還利用RNN建模標(biāo)簽高階關(guān)聯(lián),Nam等[10]、Yang等[13]、王浩鑌等[26]在seq2seq模型下,基于RNN將多標(biāo)簽分類轉(zhuǎn)化為多標(biāo)簽序列生成問題,該方法由于使用RNN可以很好地建模標(biāo)簽關(guān)聯(lián),但受限于需要預(yù)定義標(biāo)簽順序.

避免預(yù)定義標(biāo)簽順序的方法主要有兩類:自適應(yīng)確定標(biāo)簽順序和預(yù)測標(biāo)簽集.對于自適應(yīng)確定標(biāo)簽順序的方法,Chen等[16]在圖像分類中利用注意力機(jī)制自動生成標(biāo)簽,但在訓(xùn)練階段仍然需要初始化標(biāo)簽順序;Vinyals等[15]使模型自適應(yīng)選擇概率最大的標(biāo)簽順序用于訓(xùn)練,但訓(xùn)練后期的樣本可能會被施加不合適的標(biāo)簽順序;因此,Vinyals等[15]又通過采樣的方式選擇標(biāo)簽順序訓(xùn)練模型,增加了標(biāo)簽順序多樣性,但易受概率較小的標(biāo)簽順序影響.在預(yù)測標(biāo)簽集的方法中,Yang等[18]提出seq2set模型,將多標(biāo)簽文本分類作為一個強(qiáng)化學(xué)習(xí)問題;Qin等[17]提出set-RNN方法,將標(biāo)簽集概率近似為TopK種排列組合下的序列概率之和,在預(yù)測時,選取集合概率最大的標(biāo)簽集作為預(yù)測結(jié)果.以上兩類方法,均能避免預(yù)定義標(biāo)簽順序,并建模標(biāo)簽關(guān)聯(lián),但沒有對標(biāo)簽關(guān)聯(lián)程度進(jìn)行區(qū)分,而實際上標(biāo)簽關(guān)聯(lián)也有大小之分.

綜上所述,已有方法主要探索如何建模標(biāo)簽高階關(guān)聯(lián),其中又以基于RNN的方法居多,而在利用RNN建模標(biāo)簽高階關(guān)聯(lián)時,存在需要預(yù)定義標(biāo)簽順序的問題,同時缺乏對標(biāo)簽關(guān)聯(lián)程度的建模.

2.2 GraphRNN

GraphRNN是You等[19]提出的一種圖生成模型,其基于RNN,包含節(jié)點生成(Node-level RNN)和邊生成(Edge-level RNN)兩部分,前者生成當(dāng)前圖的拓?fù)浣Y(jié)構(gòu)狀態(tài),后者生成邊信息.模型輸入為初始圖狀態(tài),輸出為不同時刻對應(yīng)的鄰接向量,根據(jù)鄰接向量可還原鄰接矩陣,進(jìn)而得到生成的圖.然而,GraphRNN生成的圖節(jié)點沒有具體含義,這與標(biāo)簽具有實際含義相悖.另外,GraphRNN只輸出鄰接向量,缺少節(jié)點輸出模塊,因而無法直接用于多標(biāo)簽分類,需適當(dāng)改進(jìn).

因此,在利用RNN建模標(biāo)簽高階關(guān)聯(lián)時,不同于現(xiàn)有方法,本文將標(biāo)簽集表示為標(biāo)簽圖,建立圖生成模型并用于多標(biāo)簽文本分類,避免預(yù)定義標(biāo)簽順序.不僅如此,通過圖生成中的邊生成過程還能建模標(biāo)簽關(guān)聯(lián)程度,更細(xì)致地建模標(biāo)簽關(guān)聯(lián).本文與現(xiàn)有研究的主要區(qū)別在于:避免預(yù)定義標(biāo)簽順序,不僅建模標(biāo)簽關(guān)聯(lián),還建模了標(biāo)簽關(guān)聯(lián)程度;改進(jìn)GraphRNN以適用多標(biāo)簽文本分類.

3 基于改進(jìn)GraphRNN的多標(biāo)簽文本分類

3.1 多標(biāo)簽文本分類定義

定義1.假設(shè)樣本輸入空間X?Rd,標(biāo)簽輸出空間L={λ1,λ2,…,λq},當(dāng)前數(shù)據(jù)集為D={(xn,yn)|1≤n≤N},xn∈X表示某樣本輸入信息,yn?L表示某樣本對應(yīng)的標(biāo)簽.多標(biāo)簽文本分類任務(wù)就是從數(shù)據(jù)中學(xué)習(xí)一個決策函數(shù)h:X→2L,使得每個文本被分配到一組標(biāo)簽上去.

3.2 標(biāo)簽圖構(gòu)建

本文將多標(biāo)簽文本分類轉(zhuǎn)換為標(biāo)簽圖生成問題,因此在建立模型之前,需要將文本對應(yīng)的原始標(biāo)簽集轉(zhuǎn)換為標(biāo)簽圖G=(V,E),其中節(jié)點vi∈V表示標(biāo)簽,邊ei,j∈E表示vi與vj的關(guān)聯(lián)程度,可通過標(biāo)簽共現(xiàn)信息進(jìn)行描述,具體做法為根據(jù)標(biāo)簽共現(xiàn)程度大小劃分出多個區(qū)間,不同的區(qū)間對應(yīng)不同的標(biāo)簽關(guān)聯(lián)程度,從而表示標(biāo)簽之間的連邊大小.如圖1所示,將單個文本的所有標(biāo)簽對視為共現(xiàn)標(biāo)簽對,對于N個文本,統(tǒng)計標(biāo)簽頻次、標(biāo)簽對共現(xiàn)頻次,給出標(biāo)簽間的共現(xiàn)程度定義.

圖1 構(gòu)建共現(xiàn)矩陣Fig.1 Generationof the co-occurrence matrix

定義2.標(biāo)簽共現(xiàn)程度定義為標(biāo)簽之間的正點互信息(Positive Pointwise Mutual Information,PPMI),PPMI可可衡量兩個事物之間的相關(guān)性,其計算如式(1)所示,λa和λb表示來源于L的兩個不同標(biāo)簽,p(λa)和p(λb)分別表示λa和λb的標(biāo)簽頻次,p(λa,λb)表示標(biāo)簽對(λa,λb)的共現(xiàn)頻次.

(1)

由于相關(guān)性高的標(biāo)簽通常共現(xiàn)程度也高,故此處將PPMI用于衡量兩個標(biāo)簽之間的共現(xiàn)程度.根據(jù)定義2,計算L中標(biāo)簽兩兩之間的PPMI,得到q×q的對稱標(biāo)簽共現(xiàn)矩陣M,主對角線上的元素為0,其保存了標(biāo)簽兩兩之間的共現(xiàn)信息,值越大表示二者關(guān)聯(lián)程度越大.假設(shè)vi和vj對應(yīng)的標(biāo)簽恰為λa和λb,其PPMI為Mab,Mab表示標(biāo)簽共現(xiàn)矩陣第a行第b列的元素,則可根據(jù)關(guān)聯(lián)程度閾值θz劃分出多個區(qū)間,進(jìn)而確定標(biāo)簽連邊ei,j.如式(2)所示,θz,z=1,2,…,m,表示標(biāo)簽共現(xiàn)程度大小,值越大關(guān)聯(lián)程度越大,ei,j取值范圍為[0,m]間的整數(shù),0表示不存在連邊,即標(biāo)簽關(guān)聯(lián)程度較低,設(shè)置不同的θz可將標(biāo)簽關(guān)聯(lián)程度劃分成多個區(qū)間,對應(yīng)不同的標(biāo)簽連邊大小.

(2)

標(biāo)簽連邊確定之后即可構(gòu)建標(biāo)簽圖,圖2展示了標(biāo)簽集{A,B,C}轉(zhuǎn)換為標(biāo)簽圖的過程.

圖2 數(shù)據(jù)轉(zhuǎn)換示例Fig.2 Example of data transformation

3.3 模型框架

GraphRNN模型將圖表示為G,其概率分布如式(3)~式(5)所示:

(3)

(4)

(5)

定義3.在改進(jìn)GraphRNN中,將節(jié)點集合表示為V,節(jié)點對應(yīng)的鄰接向量集合表示為S,則G=(V,S),當(dāng)考慮輸入文本信息x時,圖G的條件概率表示為p(G|x),如式(6)所示:

(6)

在式(6)中,π表示某種節(jié)點順序,|V|表示節(jié)點集合大小,vi表示第i個節(jié)點,si表示第i個節(jié)點的鄰接向量,si,t表示si中第t個元素,T表示si元素個數(shù).根據(jù)式(6)單個樣本的條件概率,可得出在所有樣本上的訓(xùn)練目標(biāo),如式(7)所示:

(7)

由此,基于改進(jìn)GraphRNN的多標(biāo)簽文本分類模型框架如圖3所示,包括:Encoder、改進(jìn)GraphRNN和Graph2Seq這3個模塊.模型所使用的RNN均為門控循環(huán)單元[27](Gated Recurrent Unit,GRU),GRU為RNN的一種變體,可緩解RNN存在的梯度爆炸或消失問題,下文將分別介紹這3個模塊.

3.3.1 Encoder

(8)

3.3.2 改進(jìn)GraphRNN

在圖3中,輸入文本信息x經(jīng)encoder編碼后在注意力機(jī)制下被送至改進(jìn)GraphRNN.改進(jìn)GraphRNN即解碼器(Decoder)端,由節(jié)點生成(Node-level RNN)和邊生成(Edge-level RNN)組成,改進(jìn)點包括兩個方面:

圖3 基于改進(jìn)GraphRNN的多標(biāo)簽文本分類模型框架Fig.3 Multi-label text classification model framework based on improved GraphRNN

1)節(jié)點生成添加softmax模塊后生成標(biāo)簽節(jié)點,建模標(biāo)簽關(guān)聯(lián);

2)邊生成由二分類改為多分類,可以建模標(biāo)簽不同的關(guān)聯(lián)程度.

(9)

(10)

(11)

(12)

(13)

(14)

(15)

經(jīng)過softmax模塊得到第t步連邊概率分布,如式(16)所示,Wedge表示要學(xué)習(xí)的參數(shù),根據(jù)p(si,t|si,

(16)

在圖3中,當(dāng)預(yù)測節(jié)點標(biāo)簽為“”時,圖生成完畢,得到節(jié)點集合V={v1,v2,…,v|V|}和鄰接向量集合S={s2,s3,…,s|V|},據(jù)此可得到標(biāo)簽圖G.

3.3.3 Graph2Seq

Graph2Seq模塊將生成的標(biāo)簽圖G轉(zhuǎn)換為標(biāo)簽集,作為分類結(jié)果.具體地,由改進(jìn)GraphRNN生成的節(jié)點集合V和鄰接向量集合S可以還原鄰接矩陣,進(jìn)而得到標(biāo)簽圖,在圖上以V中的第1個節(jié)點v1作為起始節(jié)點進(jìn)行廣度優(yōu)先搜索(Breadth-First Search,BFS)得到標(biāo)簽序列作為分類結(jié)果.在圖3中,GraphSeq模塊根據(jù)圖生成結(jié)果構(gòu)建鄰接矩陣,進(jìn)而畫出由標(biāo)簽A、B、C和D構(gòu)成的標(biāo)簽圖,在圖上進(jìn)行BFS得到最終的標(biāo)簽集{A,B,D,C},作為多標(biāo)簽分類結(jié)果.

3.4 基于改進(jìn)GraphRNN進(jìn)行多標(biāo)簽文本分類

將改進(jìn)GraphRNN用于多標(biāo)簽文本分類,包括訓(xùn)練和測試兩個過程,具體描述如算法1.

算法1.基于改進(jìn)GraphRNN的多標(biāo)簽文本分類

輸入:訓(xùn)練集Dtrain={(xu,yu)|1≤u≤U},測試樣本xtest,最大前驅(qū)節(jié)點數(shù)T,結(jié)束標(biāo)識符

輸出:測試樣本標(biāo)簽集合ytest

訓(xùn)練過程:

步驟1.確定訓(xùn)練輪數(shù)epochs,批量大小batchsize,迭代次數(shù)iterations=U/batchsize

步驟2.forepoch= 1 toepochsdo

步驟2.1.foriteration= 1 toiterationsdo

步驟2.1.1.將Dtrain中一個batchsize的數(shù)據(jù)送入模型經(jīng)Encoder編碼,改進(jìn)GraphRNN解碼

步驟2.1.2.計算交叉熵?fù)p失并利用梯度下降法更新模型參數(shù)

步驟3.訓(xùn)練結(jié)束后,得到模型參數(shù),包括Encoder、Attention、改進(jìn)GraphRNN的參數(shù)

測試過程:

步驟4.將測試樣本xtest送入模型經(jīng)Encoder編碼

步驟5.將xtest編碼后的信息送入改進(jìn)GraphRNN解碼

步驟5.1.node-level RNN根據(jù)式(13)預(yù)測節(jié)點vi

步驟5.2.whilevi不為且i≥2 do

步驟5.2.1.fort= 1 toTdo

步驟5.2.1.1.edge-level RNN根據(jù)式(16)得到預(yù)測連邊si,t

步驟5.2.2.得到vi對應(yīng)的鄰接向量si

步驟6.得到預(yù)測節(jié)點集合V={v1,v2,…,v|V|}和預(yù)測鄰接向量集合S={s2,s3,…,s|V|}

步驟7.在Graph2Seq模塊中根據(jù)V和S得到生成圖的鄰接矩陣,進(jìn)一步將鄰接矩陣轉(zhuǎn)換為標(biāo)簽圖G

步驟8.在標(biāo)簽圖G上進(jìn)行BFS遍歷,得到測試樣本預(yù)測標(biāo)簽集合ytest,算法結(jié)束

首先根據(jù)3.2將標(biāo)簽數(shù)據(jù)轉(zhuǎn)換為標(biāo)簽圖.在訓(xùn)練模型時,需要確定圖節(jié)點的順序π.當(dāng)圖節(jié)點數(shù)目較大時,圖節(jié)點順序的組合方式過多,難以將所有的順序納入計算.本文采用You等[19]的方法,在圖上使用BFS以獲得節(jié)點順序.實際上,使用BFS可帶來兩點好處:1)是不同的節(jié)點順序可以對應(yīng)到相同的BFS序列,即BFS序列與節(jié)點順序是一對多關(guān)系;2)是BFS可對節(jié)點順序重排列,使得存在連邊的節(jié)點比較鄰近.進(jìn)一步,為使得關(guān)聯(lián)程度較大的標(biāo)簽鄰近,本文在BFS的基礎(chǔ)上按照標(biāo)簽關(guān)聯(lián)程度由大到小對節(jié)點順序重排列.因此本文在訓(xùn)練模型時將標(biāo)簽圖的概率近似為|V|個BFS序列下的概率之和,如式(17)所示.這|V|個BFS序列分別以各個標(biāo)簽為起點在圖上遍歷所得到.

(17)

另外,為保證不同節(jié)點下生成的鄰接向量長度一致,本文設(shè)置統(tǒng)一的前驅(qū)節(jié)點數(shù)T作為超參數(shù),對前驅(qū)節(jié)點個數(shù)進(jìn)行限制,使得邊生成最大長度保持一致.例如,若設(shè)置T為2,以圖2中原始標(biāo)簽順序排列,則標(biāo)簽C對應(yīng)的鄰接向量可表示為[1 2]T.

圖4 圖生成示例Fig.4 Example of graph generation

在預(yù)測階段,輸入信息經(jīng)過編碼后,即可利用改進(jìn)GraphRNN模塊進(jìn)行節(jié)點生成和邊生成.圖4為圖生成示例.在初始時,既沒有節(jié)點也沒有邊,首先進(jìn)行節(jié)點生成,生成第個節(jié)點A后,由于不允許自環(huán),在下一步繼續(xù)進(jìn)行節(jié)點生成;當(dāng)?shù)?個節(jié)點B生成后,開始生成B的連邊,B節(jié)點連邊生成完畢后,又通過節(jié)點生成得到C.后續(xù)過程中,節(jié)點生成和邊生成往復(fù)進(jìn)行,直到節(jié)點生成“”,生成過程停止.根據(jù)生成的邊可得到鄰接向量,根據(jù)生成的節(jié)點和鄰接向量可還原鄰接矩陣,再將鄰接矩陣轉(zhuǎn)換成標(biāo)簽圖,最后在標(biāo)簽圖上使用BFS,將得到的BFS序列作為分類結(jié)果,例如圖4中轉(zhuǎn)換后得到的標(biāo)簽集為{A,B,D,C}.

4 實 驗

4.1 實驗設(shè)置

本文采用文本數(shù)據(jù)集AAPD[13]和SLASHDOT[17]作為實驗數(shù)據(jù).AAPD來源于arxiv論文數(shù)據(jù)集,共54840條數(shù)據(jù),標(biāo)簽數(shù)量為54,SLASHDOT來源于Qin等[17]整理的科技新聞數(shù)據(jù),共24072條數(shù)據(jù),標(biāo)簽數(shù)量為291.數(shù)據(jù)集詳細(xì)信息如表1所示.

表1 數(shù)據(jù)集信息Table 1 Datasets information

由于數(shù)據(jù)集文本長度不一,本文對數(shù)據(jù)集設(shè)定閾值進(jìn)行截斷,AAPD最大長度設(shè)置為500,SLASHDOT最大設(shè)置長度為120,低于閾值長度的文本使用“”進(jìn)行填充.樣本標(biāo)簽使用“”和“”作為首尾填充,并用“”填充保證標(biāo)簽數(shù)量一致.在構(gòu)建標(biāo)簽圖時,本文分別取兩個數(shù)據(jù)集標(biāo)簽共現(xiàn)矩陣M的上三角矩陣中0以外的元素,并將它們由小到大排序,設(shè)置θ1、θ2、θ3為第25、50、75百分位數(shù),從而將標(biāo)簽關(guān)聯(lián)程度劃分為0、1、2、3這4個類別.Encoder使用word2vec[28]訓(xùn)練詞向量作為初始嵌入,大小為300.神經(jīng)網(wǎng)絡(luò)使用GRU,encoder和改進(jìn)GraphRNN網(wǎng)絡(luò)層數(shù)均為2,node-level RNN神經(jīng)元大小設(shè)置為300,edge-level RNN神經(jīng)元大小設(shè)置為256.Dropout大小設(shè)置為0.5,優(yōu)化器使用Adam,學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練輪數(shù)為20.計算機(jī)配置為Ubuntu64位操作系統(tǒng),CPU型號Intel(R) Core(TM) i9900KF @ 3.60GHz,內(nèi)存32G,GPU為GeForce RTX2080 Super,顯存大小8G.本文對數(shù)據(jù)集進(jìn)行隨機(jī)劃分,其中訓(xùn)練集、驗證集和測試集分別占比80%、10%和10%,前驅(qū)節(jié)點數(shù)T作為超參數(shù)在驗證集上進(jìn)行調(diào)節(jié).

(18)

(19)

(20)

q表示標(biāo)簽空間大小,N表示樣本總數(shù).HL計算預(yù)測標(biāo)簽和真實標(biāo)簽的對稱差集,值越小越好,instance-F1、label-F1分別度量樣本、標(biāo)簽的F1值,值越大越好.

表2 不同方法實驗結(jié)果Table 2 Experimental results of different methods

本文使用設(shè)置對比方法如下:

1)Binary Relevance[4](BR):將多標(biāo)簽分類問題轉(zhuǎn)換為二分類問題,沒有利用標(biāo)簽之間的相關(guān)性.

2)Classifier Chains[22](CC):將多個BR級聯(lián)起來,前一分類器輸出作為后一分類器輸入,該方法能考慮到標(biāo)簽之間的高階關(guān)聯(lián).

3)Ensemble Classifier Chains[22](ECC):在Classifier Chains的基礎(chǔ)上,隨機(jī)集成11種標(biāo)簽順序訓(xùn)練模型.

4)Seq2seq-GRU[10]:在seq2seq模型下基于GRU,按標(biāo)簽頻次降序訓(xùn)練模型,生成多標(biāo)簽序列.

5)Set-RNN[17]:將多標(biāo)簽視為標(biāo)簽集合,直接生成多標(biāo)簽集合.

6)改進(jìn)GraphRNN:本文方法,將原始問題轉(zhuǎn)換為標(biāo)簽圖生成問題,在圖上進(jìn)行BFS得到分類結(jié)果.

4.2 結(jié)果和分析

實驗結(jié)果如表2所示,本文方法在instance-F1和label-F1上均表現(xiàn)最優(yōu).具體地,在兩個數(shù)據(jù)集上,對于傳統(tǒng)方法,CC建模標(biāo)簽高階關(guān)聯(lián),除了HL以外表現(xiàn)優(yōu)于BR,ECC在CC基礎(chǔ)上集成多種標(biāo)簽順序下模型的結(jié)果,相比CC取得更好的效果,尤其在HL上優(yōu)于其他方法.而seq2seq-GRU利用神經(jīng)網(wǎng)絡(luò)建模標(biāo)簽高階關(guān)聯(lián),能獲取更復(fù)雜的標(biāo)簽依賴,在instance-F1及l(fā)abel-F1表現(xiàn)優(yōu)于BR、CC和ECC.由于set-RNN預(yù)測標(biāo)簽集合,免受不當(dāng)?shù)臉?biāo)簽順序可能破壞標(biāo)簽自然關(guān)聯(lián)的影響,效果優(yōu)于seq2seq-GRU.相比于set-RNN,改進(jìn)GraphRNN在instance-F1和label-F1上均取得最優(yōu)效果,說明本文方法能更好地建模標(biāo)簽之間的關(guān)聯(lián).然而,CC、seq2seq-GRU、set-RNN和本文方法在HL指標(biāo)上均表現(xiàn)不佳,其原因可能為累計誤差使得誤分類標(biāo)簽較多,預(yù)測標(biāo)簽數(shù)量相對真實標(biāo)簽較大,即真實標(biāo)簽集中不存在的標(biāo)簽也出現(xiàn)在預(yù)測標(biāo)簽中.

4.2.1 前驅(qū)節(jié)點數(shù)T的影響

在構(gòu)建標(biāo)簽圖時,設(shè)置不同的前驅(qū)節(jié)點數(shù)T,影響鄰接向量的長度,代表著模型對標(biāo)簽關(guān)聯(lián)程度建模的能力.本文設(shè)置不同的前驅(qū)節(jié)點數(shù)T進(jìn)行對比實驗,結(jié)果如表3所示,在AAPD上設(shè)置為2時表現(xiàn)最好,為1時其次,設(shè)置為4時較差,在SLASHDOT上設(shè)置為3時最好,為1和5時較差.以上結(jié)果說明,在設(shè)置T時,應(yīng)根據(jù)數(shù)據(jù)集平均標(biāo)簽數(shù)進(jìn)行設(shè)置,不宜過小或過大.當(dāng)T過小時,難以建模更多的標(biāo)簽關(guān)聯(lián)程度;而T較大時可以考慮更多標(biāo)簽之間的關(guān)聯(lián)程度,若設(shè)置過大則表現(xiàn)不佳,說明模型邊生成能力有限,對于位置較遠(yuǎn)的前驅(qū)節(jié)點,無法準(zhǔn)確地預(yù)測與之的關(guān)聯(lián)程度;對于平均標(biāo)簽數(shù)量較大的數(shù)據(jù)集,通常需要更大的T.實際上,較大的前驅(qū)節(jié)點數(shù)也會增加模型訓(xùn)練開銷,在計算資源有限的情況下,需要在模型性能和計算開銷上進(jìn)行綜合考量,因此文本方法更適用于樣本標(biāo)簽較少的情況.

表3 不同T的實驗結(jié)果

4.2.2 消融實驗

為驗證邊生成過程對標(biāo)簽關(guān)聯(lián)程度的建模是否能幫助模型提升性能,本文在設(shè)計消融實驗時,去掉改進(jìn)GraphRNN的邊生成模塊,只進(jìn)行節(jié)點生成,并與完整的基于改進(jìn)GraphRNN的方法進(jìn)行對比,實驗結(jié)果如表4所示.

表4 消融實驗結(jié)果Table 4 Result of ablation experiment

從表4中可以看出,包含邊生成模塊的改進(jìn)GraphRNN方法,在instance-F1、label-F1和HL3個指標(biāo)上,相比不包含邊生成模塊,均表現(xiàn)更好.對標(biāo)簽關(guān)聯(lián)程度的建模是對標(biāo)簽關(guān)聯(lián)細(xì)粒度的區(qū)分,消融實驗結(jié)果表明本文對標(biāo)簽關(guān)聯(lián)程度的建模,能夠增強(qiáng)模型建模標(biāo)簽關(guān)聯(lián)的能力.

5 結(jié) 語

本文提出基于改進(jìn)圖循環(huán)神經(jīng)網(wǎng)絡(luò)的方法來解決多標(biāo)簽文本分類問題.為描述標(biāo)簽之間關(guān)聯(lián)性,本文將多標(biāo)簽表示為標(biāo)簽圖,其中節(jié)點表示標(biāo)簽,邊表示標(biāo)簽共現(xiàn)信息,從而將多標(biāo)簽文本分類轉(zhuǎn)換為標(biāo)簽圖生成問題.標(biāo)簽圖的生成不僅捕獲了標(biāo)簽高階關(guān)聯(lián),還能對標(biāo)簽關(guān)聯(lián)程度進(jìn)行區(qū)分,同時避免預(yù)定義標(biāo)簽順序,減少模型對于標(biāo)簽順序的依賴.本文提出的方法在instance-F1和label-F1指標(biāo)上均優(yōu)于基線方法,表明對標(biāo)簽關(guān)聯(lián)程度的建模有效地增強(qiáng)了模型建模標(biāo)簽關(guān)聯(lián)的能力,但在HL指標(biāo)表現(xiàn)不佳,可能是受累計誤差影響,下一步工作將對此問題展開研究.

猜你喜歡
關(guān)聯(lián)標(biāo)簽程度
男女身高受歡迎程度表
意林(2021年2期)2021-02-08 08:32:47
“一帶一路”遞進(jìn),關(guān)聯(lián)民生更緊
無懼標(biāo)簽 Alfa Romeo Giulia 200HP
車迷(2018年11期)2018-08-30 03:20:32
不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
海峽姐妹(2018年3期)2018-05-09 08:21:02
奇趣搭配
智趣
讀者(2017年5期)2017-02-15 18:04:18
標(biāo)簽化傷害了誰
基于多進(jìn)制查詢樹的多標(biāo)簽識別方法
斷裂對油氣富集程度的控制作用
斷塊油氣田(2014年6期)2014-03-11 15:33:53
幸福的程度
临颍县| 黎川县| 五华县| 高青县| 敦化市| 诸暨市| 宣威市| 左权县| 益阳市| 绵竹市| 崇左市| 渝北区| 麻江县| 华宁县| 沁阳市| 高唐县| 温州市| 饶阳县| 玉龙| 阳西县| 汾阳市| 尼玛县| 奈曼旗| 南部县| 佛教| 永泰县| 达孜县| 读书| 盖州市| 太康县| 洛扎县| 新河县| 光山县| 泾川县| 台南县| 宕昌县| 宁陕县| 鄂温| 大英县| 陈巴尔虎旗| 和龙市|