李飛鴿,王 芳,黃樹(shù)成
(江蘇科技大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江,212100)
在移動(dòng)互聯(lián)時(shí)代,文本數(shù)據(jù)呈現(xiàn)爆炸式增長(zhǎng)。通過(guò)對(duì)文本數(shù)據(jù)進(jìn)行多標(biāo)簽標(biāo)注,能夠快速查詢(xún)所需信息。根據(jù)文本信息關(guān)聯(lián)的標(biāo)簽個(gè)數(shù)可分為單標(biāo)簽文本和多標(biāo)簽文本[1]。
目前,傳統(tǒng)文本分類(lèi)方法通過(guò)人為設(shè)計(jì)規(guī)則提取文本數(shù)據(jù)特征,造成文本分類(lèi)結(jié)果誤差較大并且提取的文本表征較差[2]?,F(xiàn)階段,基于深度學(xué)習(xí)的多標(biāo)簽分類(lèi)方法逐漸成為主流,通過(guò)數(shù)據(jù)清洗、去重等操作提高文本提取的質(zhì)量。
為此,本文提出一種基于Albert(A Lite BERT)和TextCNN(Text Convolutional Neural Network)的中文文本分類(lèi)研究方法。其中,Albert 是一種預(yù)訓(xùn)練模型,文本數(shù)據(jù)首先經(jīng)過(guò)Albert內(nèi)部的雙向Transformer 編碼器獲得相應(yīng)的動(dòng)態(tài)文本詞向量;然后使用TF-IDF 算法抽取文本數(shù)據(jù)中權(quán)重最高的5 個(gè)詞構(gòu)建關(guān)鍵詞表;接下來(lái)將關(guān)鍵詞表與詞向量進(jìn)行向量拼接構(gòu)成融合關(guān)鍵詞信息的多義詞向量,并將其作為T(mén)extCNN嵌入層的輸入;最后實(shí)現(xiàn)多標(biāo)簽文本分類(lèi)。
詞向量是文本數(shù)據(jù)向量化的一種主要表現(xiàn)形式,當(dāng)前存在靜態(tài)詞向量和動(dòng)態(tài)詞向量?jī)煞N。其中,靜態(tài)詞向量通過(guò)Word2vec 模型和Glove 模型獲??;動(dòng)態(tài)詞向量則通過(guò)BERT(Bidirectional Encoder Representations from Transformers)模型獲取。例如,Radford 等[3]提出Word2vec 模型包含Cbow 和Skip-Gram 兩種方法,但均未充分利用語(yǔ)句間的整體信息。Penington 等[4]基于統(tǒng)計(jì)學(xué)詞匯共現(xiàn)技術(shù)提出Glove 模型訓(xùn)練詞向量,考慮了文本數(shù)據(jù)的全部信息。Devlin 等[5]提出BERT 預(yù)訓(xùn)練模型,通過(guò)注意力機(jī)制將任意兩個(gè)單詞位置間距轉(zhuǎn)換為1,同時(shí)基于遮掩語(yǔ)言模型和句子上下文關(guān)系預(yù)測(cè)學(xué)習(xí)任務(wù),能在海量文本數(shù)據(jù)中自主學(xué)習(xí)字符、語(yǔ)義級(jí)文本特征,并將學(xué)習(xí)到的文本特征向量應(yīng)用于下游任務(wù)。Lan 等[6]提出Albert 模型改善BERT 訓(xùn)練參數(shù)過(guò)多、訓(xùn)練時(shí)間過(guò)長(zhǎng)等問(wèn)題。
目前,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)在文本分類(lèi)中發(fā)展迅速,例如樸素貝葉斯方法[7]和支持向量機(jī)(SVN)。其中,樸素貝葉斯方法屬于概率論分類(lèi)算法,根據(jù)特征屬性對(duì)某個(gè)對(duì)象進(jìn)行分類(lèi);支持向量機(jī)通過(guò)簡(jiǎn)單的直覺(jué)和嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)方法解決最小化問(wèn)題,應(yīng)用拉格朗日定理解決約束優(yōu)化問(wèn)題。
謝金寶等[8]提出一種基于語(yǔ)義理解的多元特征融合文本分類(lèi)模型,通過(guò)神經(jīng)網(wǎng)絡(luò)嵌入各層通路,提取不同層次的文本特征表示。孫松濤等[9]使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)將文本內(nèi)容詞向量融合成句子向量,并將句子向量作為訓(xùn)練多標(biāo)簽分類(lèi)器的語(yǔ)料。Long 等[10]采用多通道CNN 模型進(jìn)行監(jiān)督學(xué)習(xí),將詞矢量作為模型輸入特征,可以在不同的窗口大小進(jìn)行語(yǔ)義合成,完成文本分類(lèi)任務(wù)Kim 等[11]提出文本卷積神經(jīng)網(wǎng)絡(luò)模型通過(guò)一維卷積獲取句子中n-gram 的特征表示,通過(guò)卷積核窗口抽取深層文本局部特征表示。實(shí)驗(yàn)表明,該模型對(duì)文本數(shù)據(jù)淺層特征具有較強(qiáng)的抽取能力。
1.3.1 TF-IDF
在中文文本數(shù)據(jù)中,詞的重要程度與出現(xiàn)次數(shù)呈現(xiàn)正相關(guān)。其中,頻數(shù)(Term Frequency,TF)為詞在一個(gè)文本數(shù)據(jù)中出現(xiàn)的次數(shù),逆文檔(Inverse Document Frequency,IDF)用來(lái)衡量詞的重要程度[12]。具體計(jì)算公式如下:
其中,N代表整個(gè)語(yǔ)料集中的文本總數(shù),|{j:ti∈dj}|表示詞ti在整個(gè)語(yǔ)料中存在的文檔數(shù)。當(dāng)一個(gè)詞出現(xiàn)次數(shù)越多,IDF 值越小且無(wú)限趨近于0,為了避免零值,分母加上0.01。
1.3.2 Albert模型
模型內(nèi)部Transformer 編碼器使用編碼特征提取器提取文本數(shù)據(jù)特征,特征向量經(jīng)過(guò)雙向Transformers 編碼器獲得相應(yīng)的動(dòng)態(tài)詞向量輸出。如圖1 所示,輸出向量包括兩種形式,其中C={C1,C2,…,CN}表示初始輸入文本數(shù)據(jù)中的字符,經(jīng)過(guò)Albert 模型訓(xùn)練最終輸出動(dòng)態(tài)字向量特征表示Z={Z1,Z2,…,ZN}和CLS句子級(jí)別向量表示。
Fig.1 Albert model structure圖1 Albert模型結(jié)構(gòu)
Albert 采用基于Seq2Seq 模型的Transformer 編碼器[13]提取各網(wǎng)絡(luò)層的多頭自注意力機(jī)制層[14]和前饋網(wǎng)絡(luò)層。其中,對(duì)于前者通過(guò)b個(gè)不同線(xiàn)性變換對(duì)A、B、C 進(jìn)行投影,拼接注意力結(jié)果;對(duì)于后者提供非線(xiàn)性變換,融合文本內(nèi)容位置信息,并且每個(gè)子層都含有Add&Norm 層與上層相加后的輸入與輸出。
此外,將隱藏層歸一化為標(biāo)準(zhǔn)正態(tài)分布,加速模型收斂速度,計(jì)算公式如下:
1.3.3 TextCNN模型
CNN 主要使用矩陣表示句子,特點(diǎn)是捕捉文本數(shù)據(jù)的局部信息[15]。具體的,利用矩陣的行代表單詞或字符,即矩陣一行代表一個(gè)詞向量。TextCNN 由CNN 衍變而來(lái),主要用于文本分類(lèi)領(lǐng)域,可設(shè)置過(guò)濾核范圍對(duì)文本不同大小的局部特征進(jìn)行組合和篩選。如圖2 所示,TextCNN 包含嵌入層、卷積層、池化層和全連接層。
Fig.2 TextCNN model圖2 TextCNN模型
(1)嵌入層。如圖3 所示,該層將文本數(shù)據(jù)向量轉(zhuǎn)化為指定大小,矩陣中每一行對(duì)應(yīng)一個(gè)詞。例如,句子X(jué)有n個(gè)詞代表矩陣行數(shù),則句子矩陣大小表示為:
其中,Xi為當(dāng)前文本中的第i個(gè)詞,⊕為向量拼接操作。
(2)卷積層。TextCNN 模型使用卷積核過(guò)濾器與輸入層句子矩陣計(jì)算單位節(jié)點(diǎn)矩陣[16]。該矩陣能提取不同的層次特征,然后通過(guò)非線(xiàn)性激活函數(shù)得到特征映射矩陣C=[c1,c2,…,cn],特征公式為:
Fig.3 TextCNN convolutional layer model圖3 TextCNN卷積層模型
其中,W為輸出卷積核的權(quán)重矩陣,H為偏置參數(shù),f為激活函數(shù)。
(3)池化層。目前,主要使用最大池化算法[17]拼接特征向量,構(gòu)成一維向量表示以聚合重要特征,從而減少神經(jīng)網(wǎng)絡(luò)參數(shù)和特征向量個(gè)數(shù),達(dá)到降維效果,在一定程度上也防止了過(guò)擬合現(xiàn)象。具體計(jì)算公式如下:
(4)全連接層。由于TextCNN 模型參數(shù)過(guò)多,為了避免過(guò)擬合現(xiàn)象發(fā)生,在全連接層加入Dropout 使神經(jīng)元一定概率置0,減少網(wǎng)絡(luò)對(duì)連接的過(guò)度依賴(lài)。然而,無(wú)論是前向還是反向傳播,為了保持信息總量不變,需要根據(jù)Dropout概率進(jìn)行修正補(bǔ)償。
此外,在全連接層后接入softmax 函數(shù)層得到標(biāo)簽概率分布,具體計(jì)算公式如下:
為了高效管理互聯(lián)網(wǎng)的海量中文文本數(shù)據(jù),提出基于Albert 和TextCNN 的中文文本分類(lèi)方法(簡(jiǎn)稱(chēng)為ATT),如圖4所示。
Fig.4 ATT model圖4 ATT模型
該模型首先使用Albert 預(yù)訓(xùn)練模型獲取多義詞向量,基于TF-IDF 算法構(gòu)建當(dāng)前文檔關(guān)鍵詞表,通過(guò)向量拼接方法將兩者融合成具有關(guān)鍵詞信息的多義詞向量。然后,將其作為嵌入層的輸出和卷積層的輸入,使用調(diào)整的卷積核窗口獲取文本數(shù)據(jù)深層局部語(yǔ)義特征。最后,通過(guò)Sigmoid函數(shù)計(jì)算文本數(shù)據(jù)的標(biāo)簽類(lèi)別。
(1)嵌入層。該層對(duì)文本數(shù)據(jù)進(jìn)行預(yù)處理,包括數(shù)據(jù)清洗、分詞等操作。本文在詞向量上進(jìn)行改進(jìn),使用縱向拼接方式進(jìn)行向量拼接生成固定長(zhǎng)度的維度矩陣。例如,首先訓(xùn)練得到一個(gè)DN×S矩陣,其中N為文本字符個(gè)數(shù),S為Albert 代表的自定義維度;然后將TF-IDF 計(jì)算的關(guān)鍵詞表構(gòu)建成DM×S,選取M中前5個(gè)關(guān)鍵詞組成關(guān)鍵詞表,因此每個(gè)子文檔不同關(guān)鍵詞的TF-IDF 值各不相同;接下來(lái)將每個(gè)子文檔的關(guān)鍵詞信息進(jìn)行拼接構(gòu)成整個(gè)文檔的關(guān)鍵詞表;最后將預(yù)處理后的文本數(shù)據(jù)融合Albert-TF-IDF 詞向量模型得到Oi:j=(O1,O2,…,On),并將其作為嵌入層輸出。如圖5所示。
Fig.5 Vector fusion strategy圖5 向量融合策略
(2)卷積層。為解決中文文本數(shù)據(jù)的語(yǔ)言特點(diǎn),基于hellonlp 對(duì)卷積層進(jìn)行超參數(shù)調(diào)整。具體為,將卷積核的窗口大小h設(shè)置為3、4、5、6,使用不同大小卷積核捕獲文本多字符特征和多個(gè)相鄰字之間的隱藏相關(guān)性。具體公式如下:
其中,h為卷積核大小,Q為輸出卷積核的權(quán)重矩陣,E為偏置參數(shù),f為激活函數(shù),Z為是卷積層提取到的特征向量。
(3)池化層。該層對(duì)卷積層的特征矩陣進(jìn)行壓縮,提取主要局部特征。本文采用最大池化方式獲得主要的局部特征,丟棄部分次要特征,將計(jì)算結(jié)果拼接構(gòu)成新矩陣,具體計(jì)算公式如下:
其中,Z為卷積矩陣,Y為最大池化后矩陣。通常情況下,新矩陣維度會(huì)變小,可為后續(xù)操作減少訓(xùn)練參數(shù),如圖6所示。
(4)全連接分類(lèi)層。首先將池化層輸出結(jié)果進(jìn)行Sigmoid 函數(shù)歸一化,得到文本標(biāo)簽概率分布矩陣R。然后,取出R超過(guò)設(shè)定閾值的索引得到中文多標(biāo)簽文本分類(lèi)的結(jié)果。具體計(jì)算公式如下:
Fig.6 Maximum pooling model圖6 最大池化模型
然而,當(dāng)在多標(biāo)簽文本分類(lèi)問(wèn)題中使用Sigmoid 非線(xiàn)性激活函數(shù)時(shí),為判斷實(shí)際概率和期望值間的差距,需要使用交叉熵?fù)p失函數(shù)判定式:
其中,i為標(biāo)簽個(gè)數(shù),n為Sigmoid 函數(shù)的結(jié)果,n∈[0,1],若Sigmoid 函數(shù)計(jì)算的值超過(guò)閾值,Ri=1。
本文實(shí)驗(yàn)環(huán)境基于Centos 操作系統(tǒng),處理器為AMD 3600 3.60GHz,內(nèi)存為16G,顯卡為RTX2080Ti,硬盤(pán)大小為512G。底層框架為T(mén)ensorflow,使用Python 語(yǔ)言編程。
通過(guò)爬蟲(chóng)技術(shù)在今日頭條等網(wǎng)站爬取82 102 篇新聞數(shù)據(jù)。為了保證數(shù)據(jù)的有效性和真實(shí)性,去除低于200 個(gè)字符的文本數(shù)據(jù),最后得到63 290 篇數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。然后利用各大新聞網(wǎng)站上的主題進(jìn)行標(biāo)簽去重后得到30 個(gè)標(biāo)簽,設(shè)定驗(yàn)證集、測(cè)試集、訓(xùn)練集比例為1∶1∶8。
在固定其他參數(shù)前提下,經(jīng)過(guò)多次實(shí)驗(yàn)改變模型可變參數(shù)數(shù)值,得到最優(yōu)參數(shù)如表1所示。
Table 1 Model parameters表1 模型參數(shù)
為了比較不同模型的優(yōu)劣,采用精確率、召回率、F1 對(duì)模型進(jìn)行評(píng)估。P(Positive)代表1、N(Negative)代表0、T(True)代表正確和F(False)代表錯(cuò)誤避免數(shù)字造成的歧義。其中,精確率(Precision)表示所有被預(yù)測(cè)為正的樣本中,真正是正樣本的百分比;召回率(Recall)表示在實(shí)際為正的樣本被預(yù)測(cè)為正樣本的百分比;F1即精確值和召回率的調(diào)和均值。具體公式如式(15)-式(17)所示:
為體現(xiàn)本文模型的優(yōu)勢(shì),在構(gòu)建的中文新聞文本數(shù)據(jù)集中將ATT 與BR 算法[18]、CC[19]算法、Word2vec、Albert、TextCNN 進(jìn)行比較。
Table 2 Model comparison表2 模型比較
由表2 可知,Albert、word2vec 模型的F1 值分別為83.77%和82.79%,說(shuō)明Albert 生成的多義詞向量特征向量多樣化、代表性更高。Albert、ATT 模型的F1 值分別為83.77%和85.65%,說(shuō)明融入TF-IDF 算法的關(guān)鍵詞信息可避免Albert 生成詞向量時(shí)丟失部分詞。傳統(tǒng)TextCNN、本文模型的F1 值分別為83.39%和85.65%,說(shuō)明較大的卷積核窗口能理解中文文本局部上下文語(yǔ)意。
本文提出一種基于改進(jìn)的詞向量和TextCNN 的多標(biāo)簽文本分類(lèi)模型。其中,Albert 能更好使用雙向編碼器獲取上下文信息,TF-IDF 算法抽取文本數(shù)據(jù)中權(quán)重最高的5個(gè)詞構(gòu)建關(guān)鍵詞表,將關(guān)鍵詞表與Albert 生成的詞向量進(jìn)行向量拼接,構(gòu)成一個(gè)融合關(guān)鍵詞信息的多義詞向量。為了適用中文文本數(shù)據(jù)特點(diǎn),通過(guò)調(diào)整卷積核窗口大小使TextCNN 更好地捕捉文本局部信息,避免丟失部分特征信息。在新聞評(píng)論數(shù)據(jù)集的實(shí)驗(yàn)表明,本文模型相較于基線(xiàn)模型效果更好,在一定程度上提升了訓(xùn)練效果。
然而,本文數(shù)據(jù)集僅來(lái)源于新聞評(píng)論,下一步將擴(kuò)充實(shí)驗(yàn)數(shù)據(jù)集以提升模型的適用性和可靠性。