黃立星,咸儆醒
(南京恩瑞特實業(yè)有限公司,南京 210013)
隨著序列生成模型在機器翻譯領(lǐng)域的深入應(yīng)用,相關(guān)研究人員開始將序列生成模型應(yīng)用于多標(biāo)簽文本分類領(lǐng)域中[1],通過將文本數(shù)據(jù)作為輸入序列,文本所對應(yīng)的標(biāo)簽集作為輸出序列,從而轉(zhuǎn)化為Seq2Seq問題。盡管目前基于序列生成的多標(biāo)簽文本分類取得了不錯的成績,但其運用到不同場景中仍存在一些不足。例如在序列生成過程中,為了避免編碼器層中的中間語義向量由于信息壓縮帶來的信息損失,常常采用詞粒度的注意力來緩解這一缺點[2];然而對于長序列數(shù)據(jù),基于詞粒度的注意力未能很好地進(jìn)行中間語義向量編碼。針對這些詞粒度的缺點,我們通過借鑒HAN層次化注意力機制的思想,將層次化注意力運用于編碼器層,進(jìn)而得到句子粒度的隱藏層狀態(tài)信息,之后利用解碼器層基于句子粒度的隱藏層狀態(tài)信息進(jìn)行注意力操作。針對序列生成過程中存在的重復(fù)標(biāo)簽生成問題,本文采用引入輔助向量的方法,可有效避免重復(fù)標(biāo)簽生成問題;最后基于開源RCV1-V2數(shù)據(jù)集對提出的改進(jìn)算法進(jìn)行了有效性的驗證。實驗結(jié)果表明,基于層次化注意力機制的改進(jìn)算法以及輔助向量的改進(jìn)算法進(jìn)一步提高了分類結(jié)果的準(zhǔn)確率以及召回率。
Seq2Seq模型基于Encoder-Decoder框架,該模型由編碼器(Encoder)和解碼器(Decoder)所組成,其中Encoder、Decoder之間的連接由En?coder層產(chǎn)生的中間語義向量進(jìn)行控制。Seq2Seq模型解決了傳統(tǒng)RNN模型處理序列問題過程中要求輸入、輸出序列長度為等長的問題。近年來,Seq2Seq模型被廣泛運用于機器翻譯、情感對話生成、文本自動摘要、圖片自動描述等領(lǐng)域。
基于Seq2Seq模型的多標(biāo)簽文本分類網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Seq2Seq序列生成多標(biāo)簽文本分類模型示意圖
如圖1所示,該模型主要由編碼器、解碼器組成,其中SF表示softmax輸出層。為了避免編碼器層在處理長序列數(shù)據(jù)集中存在的信息壓縮問題,在解碼層進(jìn)行解碼的過程中往往引入atten?tion機制。其中編碼器層、解碼器層的具體定義以及功能將在接下來的小節(jié)中進(jìn)行詳細(xì)闡述。
首先定義(w1,w2,w3…wn)為文本的單詞序列表示,其中wi表示該文本第i個詞的one-hot編碼表示,通過嵌入層矩陣E∈Rk*v得到wi詞所對應(yīng)的詞向量xi,其中嵌入矩陣中的k代表該詞的向量維度,v對應(yīng)詞典表的總數(shù)。
得到詞向量序列后,將該序列作為編碼器層的輸入,通過編碼器層得到每個單詞對應(yīng)的隱藏狀態(tài)信息。本文編碼器層采用Bi-LSTM網(wǎng)絡(luò),Bi-LSTM通過前后兩個不同方向?qū)υ~向量序列進(jìn)行處理,并計算出每個單詞對應(yīng)的隱藏狀態(tài)信息,之后通過級聯(lián)前后方向上的隱藏狀態(tài)信息,從而得到第i個單詞的最終隱藏狀態(tài)信息。上述過程分別由公式(1)、(2)、(3)進(jìn)行表示。
其中hi為單詞i的最終隱藏狀態(tài)信息。
基于Seq2Seq模型輸出文本所對應(yīng)的類別標(biāo)簽時,由于組成文本序列的不同單詞對其輸出結(jié)果影響不同,因此通過注意力層可以關(guān)注文本序列中的不同單詞。文本序列經(jīng)過編碼器層后,由解碼器層與編碼器層進(jìn)行注意力操作從而產(chǎn)生上下文向量,將其作為下一時刻解碼器層的輸入?yún)?shù),從而影響類別標(biāo)簽的輸出。其計算過程可分別由公式(4)、(5)、(6)進(jìn)行表示。
上述公式(4)中eti表示t時刻解碼器層的狀態(tài)信息與編碼器層第i時刻注意力值的計算,經(jīng)過公式(5)之后進(jìn)行歸一化操作,最后通過不同時刻對應(yīng)的不同權(quán)重與編碼器不同時刻的隱藏層狀態(tài)信息進(jìn)行乘積求和操作,從而得到當(dāng)前時刻的上下文向量ct。
解碼器層得到當(dāng)前t時刻所對應(yīng)的隱藏層狀態(tài)信息st后,通過連接全連接層,同時采用softmax函數(shù)作為全連接層的輸出函數(shù),之后根據(jù)不同的閾值來判斷該標(biāo)簽是否屬于該文本。其中st可以由公式(7)表示,具體輸出過程可分別由公式(8)、(9)進(jìn)行表示。
公式(7)中,st-1表示t- 1時刻編碼器層中隱藏層狀態(tài)信息,g(yt-1)表示t- 1時刻輸出的標(biāo)簽類別,ct-1表示t- 1時刻產(chǎn)生的上下文向量;公式(8)表示全連接操作;公式(9)表示模型的輸出函數(shù)。
基于RNN模型的序列生成過程中,常常通過引入注意力機制來改善由于文本序列長度的增加而造成編碼器層產(chǎn)生的中間語義向量存在信息丟失等問題?,F(xiàn)有注意力值的計算主要基于文本序列的注意力分布,通過該分布從而得到文本序列信息的加權(quán)平均,將其作為解碼器層的輸入?yún)?shù),進(jìn)行標(biāo)簽序列的生成工作。當(dāng)前,文本處理領(lǐng)域的注意力值的計算主要基于詞粒度,然而現(xiàn)實文本數(shù)據(jù)中存在大量結(jié)構(gòu)信息,需考慮文本結(jié)構(gòu)信息如何更好地對中間語義向量進(jìn)行表示。
HAN注意力模型是由Yang等[3]于2016年提出,作者通過考慮文本結(jié)構(gòu)信息,提出一種具有層次化結(jié)構(gòu)的注意力模型,從而更好地對文本語義信息進(jìn)行表示。文本分類過程中,不同單詞和句子對文本信息的表示存在不同的影響,并且同一個單詞和句子在不同的語境中也有不同的重要性,因此作者在對單詞以及句子建模時分別引入了注意力機制,該模型基于不同句子和單詞給予不同的注意力權(quán)重,從而得到更好的文本表示。最后作者基于公開數(shù)據(jù)集對HAN模型的有效性進(jìn)行了驗證,結(jié)果顯示其提出的模型相較以往的模型效果提升顯著。
本文對HAN注意力模型進(jìn)行改進(jìn),通過將多標(biāo)簽文本分類Seq2Seq架構(gòu)中的編碼器層采用HAN模型來進(jìn)行表示,從而考慮到文本結(jié)構(gòu)化信息對中間語義向量產(chǎn)生的影響,最后由解碼器層的狀態(tài)信息與編碼器中以句子為維度的隱層狀態(tài)信息進(jìn)行計算,從而獲得更好的中間語義信息表示?;贖AN模型的編碼器層網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 HAN編碼器層示意圖
如圖2所示,該模型結(jié)構(gòu)主要由詞編碼器、單詞級別注意力機制,以及句子編碼器所組成,其功能以及過程下面將詳細(xì)闡述。
假設(shè)一篇文檔si由L個句子所組成,給定一個句子包含Ti個單詞,wit表示第i個句子中的第t個單詞,其中t∈[ 1,T],T表示詞典總數(shù)。由單詞序列組成的句子wit,t∈ [0,T],首先通過嵌入層矩陣we得到xit,xit表示單詞wit由one-hot編碼到詞向量的映射,完成句子中單詞對應(yīng)詞向量的映射之后,作為編碼器層的輸入,為了避免傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)處理序列過程中忽略未來上下文信息,本文采用雙向LSTM架構(gòu)作為詞編碼層的網(wǎng)絡(luò)結(jié)構(gòu),通過訓(xùn)練序列向前、向后兩個方向的循環(huán)神經(jīng)網(wǎng)絡(luò)共同決定模型的輸出。其中前后兩個方向的計算過程由公式(10)、(11)表示。
通過將前后兩個方向得出的隱藏層狀態(tài)信息進(jìn)行關(guān)聯(lián),從而得到考慮上下文信息之后的隱藏層狀態(tài)。其過程由公式(12)表示。
由于一個句子中的不同單詞含義并不相同,通過attention機制選擇出對句子的含義有重要影響的單詞,通過更多關(guān)注于這些單詞,從而得到句向量更好的表示。首先將句編碼器層中不同單詞對應(yīng)不同時刻的隱藏層狀態(tài)信息hit輸入到單層感知機中,得到輸出結(jié)果uit作為hit的隱含表示。其過程由公式(13)表示。
為了衡量不同單詞對于句子含義的重要性,本文采用詞向量與隨機初始化向量uw之間的相似度來進(jìn)行表示,之后通過對句子中每個單詞相似度進(jìn)行softmax操作,得到歸一化向量權(quán)重ait,其中ait表示第i個句子中第t個單詞的重要程度。其過程可以由公式(14)表示。
其中ww,uw,b作為模型訓(xùn)練參數(shù),通過訓(xùn)練過程中反向傳播算法得出。得到不同單詞對應(yīng)的attenion權(quán)重后,可以將句子的向量表示由組成句子的單詞進(jìn)行表示,對應(yīng)其單詞不同時刻的隱藏狀態(tài)信息加權(quán)求和。其過程由公式(15)所示。
得到句子向量si的表示之后,采用同樣類似的方式得到基于句子粒度的隱藏層狀態(tài)信息,其中不同句子在不同時刻下隱藏層的狀態(tài)信息可由公式(16)、(17)、(18)表示。
得到不同句子在其不同時刻的隱藏層狀態(tài)信息之后,解碼器在解碼過程中,通過解碼層中的隱藏層狀態(tài)信息與編碼器中以句子為粒度的不同時刻隱藏層狀態(tài)信息進(jìn)行注意力機制的操作,從而從傳統(tǒng)關(guān)注于詞粒度的重要性轉(zhuǎn)化為基于句子粒度的重要性。
由于訓(xùn)練數(shù)據(jù)的特點或模型參數(shù)訓(xùn)練不充分的因素,基于Seq2Seq模型的序列生成過程中,其解碼過程會出現(xiàn)重復(fù)輸出某個字符等問題。機器翻譯過程中常常需要考慮到重復(fù)字符的出現(xiàn)問題;然而在處理多標(biāo)簽文本分類場景下,通過將多標(biāo)簽文本問題轉(zhuǎn)化為序列生成問題,如果序列生成重復(fù)標(biāo)簽,意味著該標(biāo)簽為無用標(biāo)簽。為解決重復(fù)標(biāo)簽生成問題,本文擬采用在解碼階段加入限制,來避免重復(fù)標(biāo)簽的生成問題。
從公式(20)中可以得出序列生成輸出標(biāo)簽的概率分布,通過引入輔助向量vt,其中在t時刻預(yù)測輸出標(biāo)簽時,如果前面已經(jīng)預(yù)測出了標(biāo)簽li,將li標(biāo)簽對應(yīng)的vt向量中索引位置i值設(shè)置為負(fù)無窮大,其余位置為0,通過softmax函數(shù)對負(fù)無窮的計算結(jié)果為0,從而避免解碼過程中出現(xiàn)重復(fù)標(biāo)簽的問題。
其中vt向量維度對應(yīng)標(biāo)簽集數(shù)量,i表示標(biāo)簽索引。
為了驗證本文所提改進(jìn)算法的有效性,本文采用RCV1-V2數(shù)據(jù)集[4]。該數(shù)據(jù)集為開源的新聞故事手工分類而成,可供后續(xù)研究者研究之用。其中每個新聞故事可以分配多個主題,總共有103個主題。
3.2.1 層次化注意力的影響
為了驗證層次化注意力機制對多標(biāo)簽文本分類效果的影響,在生成標(biāo)簽序列過程中的編碼器層分別采用使用層次化注意力機制和未使用該機制來進(jìn)行實驗的對比工作。其中基于層次化注意力的改進(jìn)模型本文簡稱為HSGM、普通序列生成模型為SGM[5],同時以BR、CC、LP等常見多標(biāo)簽文本分類算法作為參考基準(zhǔn)模型。最后基于Hamming-Loss、F1等指標(biāo)進(jìn)行模型評估。
在模型訓(xùn)練之前需對數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,其中詞表大小設(shè)置為5000,如果文檔中存在詞表范圍以外的單詞,則用“unk”字符進(jìn)行表示,同時每篇文檔由20個句子、每個句子對應(yīng)20個單詞進(jìn)行文檔單詞截取或補全。HSGM模型訓(xùn)練的相關(guān)參數(shù)設(shè)置如下:詞向量維度為256維,句子向量維度為400維,句子維度為512維,同時以句子為粒度的隱藏層中維度、解碼器層隱藏層信息維度分別為256維和512維。詞粒度、句子粒度、解碼器層均采用雙向LSTM網(wǎng)絡(luò)作為基礎(chǔ)模型,之后采用反向傳播算法以及隨機梯度下降算法對模型進(jìn)行訓(xùn)練,最終實驗結(jié)果如表1所示。
表1 層次化注意力實驗對比表
由表1可知,基于傳統(tǒng)的BR二分類算法在其精確率以及F1相關(guān)指標(biāo)上表現(xiàn)不錯,對比當(dāng)前常用多標(biāo)簽文本分類算法以及本文提出的基于層次化注意力機制分別在RCV1-V2數(shù)據(jù)集中通過相關(guān)評估指標(biāo)驗證改進(jìn)算法的有效性,從表中可以得出Mirco-Precision提高了0.7%,Mirco-F1指標(biāo)提升了1%。從表中可以看出基于層次化注意力機制可以進(jìn)行更好的中間語義向量的生成,從而提高多標(biāo)簽文本分類的精確率以及F1指標(biāo)。
3.2.2 輔助向量的影響
為了驗證引入輔助向量算法的有效性,本文首先采用經(jīng)過結(jié)構(gòu)化注意力改進(jìn)算法的Seq2Seq模型作為分類基礎(chǔ)模型。其次,在此基礎(chǔ)上通過對比引入輔助向量以及未引入輔助向量來驗證輔助向量算法對多標(biāo)簽文本分類結(jié)果的影響,定義引入輔助向量的模型為VSGM,最終實驗結(jié)果如表2所示。
表2 輔助向量實驗對比表
通過表2可以看出,引入輔助向量后多標(biāo)簽文本分類指標(biāo)Hamming-loss降低了0.11%,Mirco-P提升了0.2%,同時Mirco-F1指標(biāo)提升了0.2%。綜上所述,引入輔助向量的方法可以進(jìn)一步提升分類模型的精確率以及召回率。
本文通過借鑒HAN模型的思想將層次化注意力機制運用于編碼器層中,將文本結(jié)構(gòu)信息作用于構(gòu)建隱藏層狀態(tài)信息的過程中。針對標(biāo)簽序列生成過程中出現(xiàn)重復(fù)標(biāo)簽問題,通過引入輔助向量,在解碼過程中加入解碼限制,有效地避免了重復(fù)標(biāo)簽問題。最后基于開源RCV1-V2數(shù)據(jù)集,通過對比當(dāng)前常用多標(biāo)簽文本分類算法以及本文所提改進(jìn)算法的評分指標(biāo),驗證了本文所提改進(jìn)算法的有效性。