林呈宇,王 雷,薛 聰*
(1.中國科學(xué)院 信息工程研究所,北京 100093;2.中國科學(xué)院大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100049)
弱監(jiān)督文本分類是利用弱監(jiān)督源(專家知識)來標(biāo)注數(shù)據(jù)樣本,在這些弱標(biāo)注樣本中訓(xùn)練文本分類模型,最后能夠盡量準(zhǔn)確地對文本進(jìn)行分類的任務(wù)。不同于半監(jiān)督任務(wù),弱監(jiān)督文本分類任務(wù)中沒有用到任何人工標(biāo)注的類別信息,因此常用于商品評論分類、情感分析、新聞主題分類等實際應(yīng)用中。例如在情感分類[1]中,可以利用“差評”→消極(用戶提供的種子詞)這樣的弱監(jiān)督信息來生成大量的弱標(biāo)簽,最終依據(jù)生成的弱標(biāo)簽對文本分類。常見的弱監(jiān)督源包括用戶提供的類別詞[2-4]、專家語義規(guī)則[5]或外部知識庫[6-7]。作為自然語言處理領(lǐng)域中的一個重要子任務(wù),與完全監(jiān)督的文本分類任務(wù)相比,弱監(jiān)督文本分類已經(jīng)被證明在緩解精確標(biāo)注數(shù)據(jù)依賴、跨域數(shù)據(jù)融合、數(shù)據(jù)補(bǔ)全等方面具有優(yōu)越性。
以用戶提供的類別詞為弱監(jiān)督源的文本分類任務(wù)為例,其學(xué)習(xí)框架可以概括為3 個階段[1-4,8-9],如圖1 所示。
1)詞表構(gòu)建。通常用戶提供的類別詞是不完備的,因此需要詞表生成器對其進(jìn)行擴(kuò)充來構(gòu)建類別詞表。常用的擴(kuò)充方法有主題詞發(fā)現(xiàn)方法[8]和詞向量方法[2-4]。前者主要根據(jù)詞共現(xiàn)原理生成類別關(guān)鍵詞;后者通常使用word2vec 訓(xùn)練詞向量,然后基于相似度選取類別詞。
2)樣本標(biāo)注。在步驟1)所構(gòu)建的類別詞表基礎(chǔ)上,為文本生成標(biāo)簽。通常采用顯式匹配方法[2,10-11]和隱式匹配方法[4,12]。顯式匹配方法[2]通常直接統(tǒng)計類別詞在樣本中的出現(xiàn)頻率,選擇最大類別生成弱標(biāo)簽;隱式匹配[12]則是計算類別詞向量和文本語義向量之間的相似度,選擇最相似的類別賦予樣本。
3)樣本分類?;诓襟E2)得到的樣本及其對應(yīng)的弱標(biāo)簽(數(shù)據(jù)),利用監(jiān)督學(xué)習(xí)技術(shù)訓(xùn)練樣本分類器。然而由于弱監(jiān)督文本分類中的低覆蓋率問題導(dǎo)致大量樣本未被識別,如圖1 所示。為了解決該問題,通常采用自訓(xùn)練技術(shù)[10]。首先利用之前訓(xùn)練的模型預(yù)測未匹配語料的高可信標(biāo)簽,并得到擴(kuò)充樣本;然后利用擴(kuò)充樣本重新訓(xùn)練模型,迭代執(zhí)行上述步驟,直到模型性能穩(wěn)定。
圖1 弱監(jiān)督文本分類的學(xué)習(xí)框架Fig.1 Learning framework of weakly-supervised text classification
通過對圖1 的弱監(jiān)督文本分類方法基本框架進(jìn)行分析可以得知,詞表構(gòu)建和樣本標(biāo)注階段會產(chǎn)生大量噪聲,影響分類效果。詞表構(gòu)建時會引入大量的無關(guān)詞,不精確的類別詞表會導(dǎo)致樣本生成錯誤的標(biāo)注,例如,類別為體育:體育,文體,體檢,體重,足球,總體,字體,…。此外,由于文本語義較之單詞語義更為復(fù)雜,根據(jù)單詞為文本生成數(shù)據(jù)標(biāo)注,通常會導(dǎo)致標(biāo)注錯誤,即標(biāo)簽噪聲問題。例如不同語境文本通常存在語義歧義和語義覆蓋問題,例如表1 中以“科技”作為類別詞進(jìn)行標(biāo)注,但是句子3 并未出現(xiàn)該詞,而句子2 出現(xiàn)了,盡管前者不包含該詞,但是屬于該類別,存在未識別現(xiàn)象,而后者則屬于誤識別。
表1 弱監(jiān)督文本分類中的噪聲示例Tab.1 Noise instances in weakly-supervised text classification
為了降低上述噪聲問題,國內(nèi)外學(xué)者展開一系列相關(guān)研究。Mekala 等[2]提出了一種基于上下文語義的詞義去噪方法ConWea,該方法采用最近鄰節(jié)點(K-Nearest Neighbors,KNN)方法對詞的上下文語義進(jìn)行區(qū)分,從而構(gòu)建高準(zhǔn)確的類別詞表,但是該方法忽視了標(biāo)簽噪聲問題。為了克服標(biāo)簽噪聲帶來的不良影響,COSINE(COntrastive Self-training framework)[1]設(shè)計了一種基于對比學(xué)習(xí)的正則化損失函數(shù),該方法通過學(xué)習(xí)更好的樣本表示來對抗標(biāo)簽噪聲的影響。Jindal 等[13]從模型結(jié)構(gòu)的角度,設(shè)計了專門的標(biāo)簽適應(yīng)層來學(xué)習(xí)標(biāo)簽噪聲分布,并計算真實標(biāo)簽分布來克服標(biāo)簽噪聲的影響。為了解決類別詞表引發(fā)的低覆蓋率問題,文獻(xiàn)[1-3,12]中引入自訓(xùn)練技術(shù),使用模型預(yù)測的標(biāo)簽擴(kuò)充訓(xùn)練集以提高數(shù)據(jù)覆蓋率。Meng 等[3]使用模型預(yù)測的高置信度標(biāo)簽來優(yōu)化模型參數(shù),在提高數(shù)據(jù)覆蓋率的同時提高了模型的性能。但是這些方法通常忽視了標(biāo)簽噪聲在該階段對模型性能的影響,在訓(xùn)練的后期,模型會過擬合標(biāo)簽噪聲而性能退化。
綜上,要想提高弱監(jiān)督文本分類的性能,核心要解決的關(guān)鍵問題是:詞表的有效擴(kuò)充與樣本標(biāo)注過程的標(biāo)簽噪聲問題。準(zhǔn)確的類別詞表可以減少生成的錯誤標(biāo)簽;而降低標(biāo)簽生成過程的噪聲,則可以得到更精確的標(biāo)注數(shù)據(jù)。針對這兩個問題,本文歸納了基于 BERT(Bidirectional Encoder Representations from Transformers)的弱監(jiān)督文本分類的一般化方法,并提出了一種標(biāo)簽語義增強(qiáng)的弱監(jiān)督文本分類模型(Label Semantics Enhanced weakly-supervised Text Classification,LSETClass),值得強(qiáng)調(diào)的是該模型還具備多語種泛化能力。在詞表構(gòu)建階段,本文提出了基于Zipf 定律[14]的加權(quán)類別表示的類別詞去噪算法,巧妙利用了語義相似度遞減特性去除類別詞表中的無關(guān)詞。在樣本標(biāo)注階段,本文提出了一種基于MASK 機(jī)制的詞類別預(yù)測方法,能夠結(jié)合自訓(xùn)練模塊解決“句-詞”跨層級語義單元的匹配誤差問題和低覆蓋率問題。在THUCNews 中文數(shù)據(jù)集(20 萬條)、AG News英文數(shù)據(jù)集(12 萬條)和IMDB 英文影評數(shù)據(jù)集的分類準(zhǔn)確率(Acc)與目前最先進(jìn)的弱監(jiān)督文本分類模型LOTClass(Labelname-Only Text Classification)[12]相比,分類準(zhǔn)確率分別取得了5.29個百分點、1.41個百分點和1.86個百分點的提升。
本文的主要工作如下:
1)提出了基于上下文表示的類別詞去噪方法。該方法在充分利用詞上下文語義的基礎(chǔ)上,基于Zipf 定律可以構(gòu)建更準(zhǔn)確的類別表示,最后采用距離監(jiān)督對類別詞表進(jìn)行去噪,降低了類別詞表的噪聲率。另外,超參數(shù)的設(shè)置,也使得該方法的應(yīng)用更靈活。
2)構(gòu)造了標(biāo)簽語義的自訓(xùn)練方法。引入標(biāo)簽語義因素聯(lián)合句向量表示,達(dá)到具有對抗標(biāo)簽噪聲的效果,提高了模型的穩(wěn)定性和魯棒性。
3)本文所提模型LSETClass 在不同語種環(huán)境中都具有效果,本文在中文和英文兩類語言測試環(huán)境下與對比模型相比均有性能提升。
4)總結(jié)了基于BERT 的弱監(jiān)督文本分類模型,并概括出了該類模型的一般化方法。
弱監(jiān)督文本分類旨在基于類別的詞級描述對文檔進(jìn)行分類,而不需要任何人為標(biāo)注的數(shù)據(jù)。對于這類任務(wù),目前的方法按照所采用的技術(shù)可以分為三種,分別為無數(shù)據(jù)分類方法、基于主題模型的方法和基于神經(jīng)網(wǎng)絡(luò)的方法。
無數(shù)據(jù)分類[15]這類方法純粹地從一般知識中學(xué)習(xí),而不需要任何標(biāo)注信息。它通常依賴于Wikipedia 來解釋標(biāo)簽名的語義,并且通過顯式的語義分析來推導(dǎo)文檔的概念相關(guān)性。
基于主題模型的方法[8,16]主題模型能夠很好地捕獲文檔中的詞共現(xiàn)特性,可以挖掘更精準(zhǔn)的類別詞。因此,Li等[8]提出了一種類別詞引導(dǎo)的主題模型方法(Seed-guided Topic Model,STM),使用用戶提供的類別詞來引導(dǎo)主題模型生成相同主題的關(guān)鍵詞,然后基于距離監(jiān)督來生成帶偽標(biāo)簽的偽文檔,最后使用偽文檔訓(xùn)練分類器。但是這類方法挖掘的主題詞通常是上下文無關(guān)的或者詞共現(xiàn)頻率較高的相關(guān)詞,并非同義詞或者真正與主題相關(guān)的詞,因此這類方法的準(zhǔn)確性并不高。
基于神經(jīng)網(wǎng)絡(luò)的方法 由于基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)方法在有監(jiān)督任務(wù)下的出色表現(xiàn),一些研究者[3,9]也將神經(jīng)網(wǎng)絡(luò)方法應(yīng)用到弱監(jiān)督文本分類中。WeSTClass(Weakly-Supervised neural Text Classification)[3]構(gòu)建了一個統(tǒng)一的弱監(jiān)督文本分類框架,通過類別詞生成偽文檔來訓(xùn)練神經(jīng)網(wǎng)絡(luò)分類器,擴(kuò)充了訓(xùn)練語料庫。該方法在隨后被拓展為WeSHClass(Weakly-Supervised Hierarchical text Classification)[9]用于多標(biāo)簽的弱監(jiān)督文本分類任務(wù)。最近由于預(yù)訓(xùn)練語言模型BERT等[17]強(qiáng)大的上下文表示能力有助于減輕噪聲問題,一些學(xué)者也嘗試開發(fā)一種基于預(yù)訓(xùn)練語言模型的弱監(jiān)督文本分類方 法。ConWea(Contextualized Weak supervision for text classification)方法[2]針對之前的方法中的類別詞噪聲問題,使用BERT 獲取詞的上下文表示來挖掘更準(zhǔn)確的類別詞,然后采用相同的方法來訓(xùn)練分類器。LOTClass 模型[12]基于MASK 機(jī)制以預(yù)測的形式擴(kuò)充擴(kuò)充類別詞表,然后將句級的監(jiān)督轉(zhuǎn)換為詞級監(jiān)督來緩減標(biāo)簽噪聲問題,最后為了充分利用完整語料庫中的信息,引入自訓(xùn)練模塊進(jìn)行微調(diào),獲得了接近監(jiān)督學(xué)習(xí)方法的性能。
BERT 模型[17]是當(dāng)前應(yīng)用最廣泛的一種預(yù)訓(xùn)練語言模型,通過自動隨機(jī)的MASK 機(jī)制來預(yù)測文本中的缺失詞,同時利用下一句預(yù)測任務(wù)來聯(lián)合表達(dá)文本的語句序列表示,然后通過無監(jiān)督的最大化MASK 詞項的似然函數(shù)[18]在海量文本下進(jìn)行預(yù)訓(xùn)練?;贐ERT 預(yù)訓(xùn)練語言模型在文本語義特征抽取的良好表現(xiàn),弱監(jiān)督文本分類可以顯著提升效果[1-3,9,12,18-21]。本文綜合國內(nèi)外相關(guān)文獻(xiàn)總結(jié)了BERT 的一般化方法,并針對類別詞表噪聲問題和標(biāo)簽噪聲問題提出了相應(yīng)的改進(jìn)。
現(xiàn)有的基于BERT 的弱監(jiān)督文本分類方法通常是在原有方法的基礎(chǔ)上,利用BERT 強(qiáng)大的上下文表示能力進(jìn)行改進(jìn),其一般化的模型結(jié)構(gòu)如圖2 所示。
圖2 基于BERT的弱監(jiān)督文本分類模型框架Fig.2 Framework of weakly-supervised text classification model based on BERT
1)BERT 模塊用于獲取詞的上下文表示。
2)在詞表生成器模塊,基于BERT 的弱監(jiān)督文本分類方法通常采取判別式方法[1-2,4]或生成式方法[12]。前者通?;贐ERT 的上下文表示,使用無監(jiān)督聚類KNN 或者基于距離監(jiān)督查找類別相關(guān)性單詞;后者通?;贐ERT 的MLM(Masked Language Model)頭來預(yù)測類別詞,取top-k個詞中出現(xiàn)頻次最高的top-p個單詞作為最終的類別詞表。
3)在樣本標(biāo)注器模塊中,大部分基于BERT 的弱監(jiān)督文本分類算法[1,10]通常采用關(guān)鍵詞匹配機(jī)制賦予文本偽標(biāo)簽,這種方法來自以下實驗觀察,即給定一段文本,包含某個類別的關(guān)鍵詞越多,則屬于對應(yīng)類別的概率也就越大。
4)在樣本分類階段,模型采用BERT 等預(yù)訓(xùn)練語言模型作為骨干模型,并應(yīng)用于分類器訓(xùn)練和自訓(xùn)練優(yōu)化階段。自訓(xùn)練的主要思想是迭代地使用當(dāng)前模型的預(yù)測分布P來計算目標(biāo)分布Q,其常見目標(biāo)函數(shù)為KL(Kullback-Leibler)散度函數(shù),如式(1)所示:
其中:N是預(yù)測分布的樣本數(shù)目,K是目標(biāo)分布的樣本數(shù)目。對于目標(biāo)分布Q的計算,主要包括硬標(biāo)簽和軟標(biāo)簽兩種方法。硬標(biāo)簽方法[22]將模型的高置信度預(yù)測轉(zhuǎn)換為one-hot 標(biāo)簽,例如qij=1(pij>ρ),其中1(·)表示指示函數(shù)。軟標(biāo)簽方法[23]則通過平方標(biāo)準(zhǔn)化來增強(qiáng)高置信度預(yù)測并降低低置信度預(yù)測,其具體的計算方法如式(2)所示:
本章將詳細(xì)介紹本文提出的標(biāo)簽語義增強(qiáng)的弱監(jiān)督文本分類模型(LSETClass)。該模型由以下3 個流程組成:基于上下文表示的類別詞構(gòu)建、基于MASK 機(jī)制的類別詞預(yù)測任務(wù)和基于標(biāo)簽語義的自訓(xùn)練模塊,模型如圖3 所示。受MASK 機(jī)制和表示學(xué)習(xí)的啟發(fā),本文設(shè)計了一種基于上下文的類別詞構(gòu)建技術(shù),以構(gòu)建更準(zhǔn)確的類別詞;然后對每個詞執(zhí)行基于MASK 機(jī)制的詞類別預(yù)測任務(wù);另外,由于標(biāo)簽語義包含更豐富的類別語義信息[24],本文設(shè)計了一種基于標(biāo)簽語義的自訓(xùn)練模塊(self-training)在[CLS]詞項上進(jìn)行微調(diào),以將詞級類別預(yù)測擴(kuò)展到句子級的類別預(yù)測任務(wù)。
圖3 LSETClass模型的學(xué)習(xí)框架Fig.3 Learning framework of LSETClass model
基于上下文表示的類別詞構(gòu)建主要解決現(xiàn)有方法存在的類別詞表噪聲問題。該模塊在詞表構(gòu)建的過程中比較類別詞與類別表示之間的相關(guān)度,從而實現(xiàn)對類別詞表的去噪。直覺上,類別詞應(yīng)該是語義上的近義詞,即在對應(yīng)類別的上下文下,具有較近的表示距離。具體而言,先用生成式方法構(gòu)造候選詞列表,對于候選詞列表中的每個單詞,通過對輸入語料庫中該單詞出現(xiàn)的所有語境化表征進(jìn)行平均作為其上下文表示,如式(4)所示:
其中:hw表示單詞w的上下文表示,Di,j表示第i個文檔的第j個詞,ti,j表示單詞w為Di,j時的上下文表示。
然后計算每個單詞與類別表示之間的相關(guān)性,初始時類別表示為類別名的上下文表示,考慮到類別名與類別的相關(guān)度最高,其余詞的相關(guān)性逐漸遞減,因此本文引入Zipf 定律計算類別表示,其計算如式(5)所示:
其中:Kc表示類別c對應(yīng)的詞表大小表示該詞表中的第i個詞,hc表示類別的上下文表示。接著每次選取相關(guān)性最高的詞作為候選詞加入新的類別詞表中,并重新計算類別表示和相關(guān)性,重復(fù)上述步驟,直到剩下單詞與類別表示之間的語義相似性低于閾值σ。該過程的具體流程如圖4 所示。
圖4 基于上下文表示的類別詞構(gòu)建過程Fig.4 Process of constructing category words based on contextual representation
基于MASK 機(jī)制的詞類別預(yù)測任務(wù)主要解決現(xiàn)有方法的匹配機(jī)制在訓(xùn)練數(shù)據(jù)中的標(biāo)簽噪聲問題。該模塊在生成弱標(biāo)注過程中比較當(dāng)前詞的近義詞表與類別詞表之間的匹配程度來生成詞類別標(biāo)注,并使用MASK 機(jī)制來利用上下文語義以預(yù)測詞的類別,從而實現(xiàn)了詞級監(jiān)督下對模型參數(shù)的訓(xùn)練。
該任務(wù)分為兩個階段:查找類別指示性單詞[9]和詞類別預(yù)測。在查找類別指示性單詞階段,針對句子中的每個單詞,使用BERT 模型找到top-k個最相關(guān)單詞,然后將這top-k個單詞與每個類別的類別詞表進(jìn)行比較,選擇交集超過m(m 在詞類別預(yù)測階段,對于每個類別指示性單詞w,一般都采用“[MASK]”詞項掩蔽掉原詞,然后通過交叉熵?fù)p失訓(xùn)練分類器,使得模型可以借助上下文表示hw來預(yù)測該單詞的類別,該計算過程如式(5)(6)所示: 其中:L1表示損失函數(shù),p(cw|hw)表示給定單詞w的上下文表示hw下,單詞w屬于類別cw的概率,W∈RK×h和b∈RK分別是線性層的模型參數(shù)和偏置。采用掩碼機(jī)制的好處是可以讓模型通過上下文表示去預(yù)測類別指示性單詞的類別,而不是簡單地記憶類別關(guān)鍵詞。通過這種方式,BERT 可以學(xué)習(xí)到更好的詞嵌入,從而有助于預(yù)測詞類別。 基于標(biāo)簽語義的自訓(xùn)練模塊主要解決MASK 機(jī)制詞類別預(yù)測結(jié)果向句子級別類別轉(zhuǎn)換和標(biāo)簽噪聲問題。該模塊在自訓(xùn)練過程中使用“[CLS]”詞項作為句向量表示,并預(yù)測其類別,另外通過比較句向量表示與標(biāo)簽表示之間的相似度來增強(qiáng)自訓(xùn)練模塊,從而在實現(xiàn)詞級類別預(yù)測任務(wù)到句子級類別預(yù)測任務(wù)的轉(zhuǎn)換的同時,具有對抗標(biāo)簽噪聲的功能。本文設(shè)計的自訓(xùn)練模塊結(jié)構(gòu)如圖5 所示。 圖5 自訓(xùn)練階段的學(xué)習(xí)框架Fig.5 Learning framework of self-training phase 該模塊通過引入標(biāo)簽嵌入來學(xué)習(xí)標(biāo)簽語義,然后結(jié)合BERT 生成的句向量表示來計算二者的語義相似度,以計算真實的標(biāo)簽分布Q,計算如式(7)所示: 其中:為句子表示的轉(zhuǎn)置,V為標(biāo)簽嵌入表示,W為語義相似度模塊的全連接網(wǎng)絡(luò)參數(shù),b為偏置,q1為模型計算的標(biāo)簽分布,yone_hot為標(biāo)簽的one-hot 向量,α為超參數(shù),Q為計算的真實標(biāo)簽分布。采用本文的標(biāo)簽分布方式相比硬標(biāo)簽方式,可以讓模型具備更好的穩(wěn)定性,如圖6 所示。以交叉熵?fù)p失為例,其計算如式(8)所示: 圖6 硬標(biāo)簽分布圖和本文標(biāo)簽分布圖Fig.6 Distribution of hard-labels and labels in this paper 其中:pic為第i個訓(xùn)練樣本屬于第c個類別的概率,yic為第i個訓(xùn)練樣本對應(yīng)第c個類別的標(biāo)簽,N為訓(xùn)練樣本總數(shù),M為訓(xùn)練類別總數(shù),Li為第個樣本的交叉熵?fù)p失值。因此當(dāng)預(yù)測概率非常小,會導(dǎo)致?lián)p失值很高,反之則損失值很小。 可以看到,硬標(biāo)簽不但損失了正確標(biāo)簽的語義分布,還會導(dǎo)致更大的損失計算值(錯誤標(biāo)簽在訓(xùn)練初始階段的預(yù)測概率較?。?,從而使得模型更容易過擬合錯誤標(biāo)簽。而本文提出的標(biāo)簽分布方式不但保留了正確標(biāo)簽的語義分布,還降低了損失計算值,從而減輕了誤差傳播,降低了模型對標(biāo)簽噪聲的過擬合;同時,實驗也發(fā)現(xiàn)本文所提方法比硬標(biāo)簽具有更好的泛化性能。 因此,本文采用KL 散度來計算目標(biāo)分布Q,如式(9)所示: 其中:p(x)為訓(xùn)練樣本x對應(yīng)的真實分布,q(x)為訓(xùn)練樣本對應(yīng)的預(yù)測分布。因此當(dāng)預(yù)測分布和真實標(biāo)簽分布完全匹配時,KL 散度值為0,并且每50 個batch 更新一次。完整的算法流程如下算法1 所示。 算法1 LSETClass算法流程。 輸入 未標(biāo)注語料庫D;標(biāo)簽名集合C;預(yù)訓(xùn)練語言模型M。 輸出 經(jīng)過訓(xùn)練后的具備K類別分類能力的模型M。 THUCNews 數(shù)據(jù)集 該數(shù)據(jù)集是由清華大學(xué)自然語言處理實驗室提供的公開中文文本分類數(shù)據(jù)集。數(shù)據(jù)集主要包括從新浪新聞RSS 訂閱頻道2005—2011 年間的歷史數(shù)據(jù)中收集的74 萬篇新聞文檔(2.19 GB),每篇文檔對應(yīng)一個類別,總共涉及14 個候選分類類別:財經(jīng)、彩票、房產(chǎn)、股票、家居、教育、科技、社會、時尚、時政、體育、星座、游戲、娛樂。在本文中并未使用完整的THUCNews 數(shù)據(jù)集,而是從中剔除了樣本數(shù)較少的星座、彩票、家居和時尚四類數(shù)據(jù),并把時政改為政治以更好地擴(kuò)充類別詞。 AG News 數(shù)據(jù)集 該數(shù)據(jù)集是由ComeToMyHead 在一年多的活動中,從2 000 多個新聞來源中收集的新聞文章數(shù)據(jù)集。本文遵循LOTClass[12]的方式構(gòu)造數(shù)據(jù)集,從語料庫中選擇了最大的4 個類別,保留了文章的標(biāo)題和描述字段,最終訓(xùn)練集的大小為120 000 篇文檔,測試集的大小為7 600 篇文檔,訓(xùn)練集和測試集中每個類別分別有30 000 篇文檔和1 900 篇文檔。 IMDB 數(shù)據(jù)集 該數(shù)據(jù)集是由Andrew Maas 收集的,用于二元情感分類的數(shù)據(jù)集,包含比以前的基準(zhǔn)數(shù)據(jù)集更多的數(shù)據(jù),提供了25 000 條IMDB 電影評論用于訓(xùn)練,以及25 000 條用于測試。 另外,為了保證類別均衡,本文還分別從上述3 個數(shù)據(jù)集中抽取了一定數(shù)目的數(shù)據(jù),以保證每個類別下的文檔數(shù)相同,并在表2 中記錄了數(shù)據(jù)集的統(tǒng)計信息,其中對THUCNews數(shù)據(jù)劃分為:70%的訓(xùn)練集、15%的驗證集和15%的測試集。同時對每條文本數(shù)據(jù)長度進(jìn)行截斷,閾值為512 個詞;詞庫以外的詞(Out-of-Vocabulary,OOV)將被“UNK”替換。 表2 數(shù)據(jù)集簡介Tab.2 Dataset introduction 與其他弱監(jiān)督文本分類模型的方法相同,本文使用分類準(zhǔn)確率(Accuracy,Acc)來評估模型的準(zhǔn)確性。通過所有預(yù)測正確的標(biāo)簽數(shù)據(jù)TP和所有預(yù)測樣本數(shù)N之比計算得到,反映了模型的預(yù)測準(zhǔn)確度,其表示如式(10)所示: 4.3.1 對比實驗 為了充分驗證本文方法的有效性,分別與完全監(jiān)督、半監(jiān)督和弱監(jiān)督下的文本分類算法進(jìn)行了對比實驗。 1)完全監(jiān)督算法。 TextCNN:由Kim[25]2014 年提出,使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)獲取文本的局部語法語義信息,并且利用多個卷積核提取多維特征,最后對分類的損失函數(shù)進(jìn)行軟邊界優(yōu)化。此外本文還使用SouGou 預(yù)訓(xùn)練詞向量作為Embedding 層的初始化參數(shù)。 長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò):2016年由Liu 等[26]提出,使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)捕獲長短期依賴關(guān)系,并使用LSTM 的最后一層作為文本的編碼表示。本文采用了雙向LSTM 作為編碼器層,使用一個全連接層作為分類器層。此外還使用SouGou 預(yù)訓(xùn)練詞向量作為Embedding 層的初始化參數(shù)。 BERT:由Devlin 等[17]2018 年提出,利用了Transformer 的encoder 部分,具有卓越的上下文表征能力,在多項下游任務(wù)中取得了SOTA(State-Of-The-Art)的結(jié)果。本文采用預(yù)訓(xùn)練BERT 作為編碼器,使用一個全連接層作為分類器層。 2)半監(jiān)督算法。 UDA(Unsupervised Data Augmentation):由Xie 等[27]2019年提出,采用最先進(jìn)的無監(jiān)督數(shù)據(jù)增強(qiáng)技術(shù)來實現(xiàn)數(shù)據(jù)樣本的擴(kuò)充,僅使用少量標(biāo)注數(shù)據(jù)進(jìn)行監(jiān)督訓(xùn)練。該方法還使用反向翻譯[28]和TF-IDF(Term Frequency-Inverse Document Frequency)單詞替換進(jìn)行擴(kuò)展,并采用一致性預(yù)測方法提升模型性能。 3)弱監(jiān)督算法。 LOTClass:由Meng 等[3]2020 年提出,使用預(yù)訓(xùn)練的BERT 作為骨干模型,分三個階段類別詞表構(gòu)建、掩蔽類別詞預(yù)測任務(wù)和自訓(xùn)練微調(diào)來實現(xiàn)弱監(jiān)督文本分類,該方法只需要類別名,而不需要任何標(biāo)注數(shù)據(jù),在英文數(shù)據(jù)集上的性能與基于監(jiān)督學(xué)習(xí)的文本分類方法接近。為了讓LOTClass 能夠適用于中文數(shù)據(jù)集,本文使用追一科技的WoBERT[29]替換了原論文中的BERT,然后將其中的分詞算法修改為適用于中文的分詞算法進(jìn)行實驗。 本文實驗在以下環(huán)境下進(jìn)行:NVIDIA TESLA V100-32G顯卡,Pytorch1.9.0,Python3.7。在訓(xùn)練過程中,本文方法采用追一科技的基于詞細(xì)粒度的WoBERT 預(yù)訓(xùn)練語言模型,其中BERT 模型結(jié)構(gòu)包含12 層Transformers,隱藏層維度為768,Head 數(shù)量為12。對于UDA,本文僅使用EDA(Easy Data Augmentation)算法[30]進(jìn)行數(shù)據(jù)擴(kuò)充,并使用BERT 模型作為骨干模型訓(xùn)練分類器。 對比實驗結(jié)果如表3 所示。實驗結(jié)果表明,本文方法在主要評價指標(biāo)中取得了最好的結(jié)果。在THUCNews 數(shù)據(jù)集上,LSETClass 的準(zhǔn)確率相比較于目前最優(yōu)的弱監(jiān)督文本分類模型LOTClass 有一定的提升,Acc 值提升了5.29 個百分點;在AG News 數(shù)據(jù)集上,LSETClass 的ACC 值相比最優(yōu)模型提升了1.41 個百分點;在IMDB 數(shù)據(jù)集上,LSETClass 的ACC值提升了1.86 個百分點。在所有模型中,本文提出的LSETClass 模型在兩個數(shù)據(jù)集上都取得了總體最好的準(zhǔn)確率值。Meng 等[3]的LOTClass 模型具有接近監(jiān)督學(xué)習(xí)模型的性能,究其原因在于其模型基于MASK 掩碼機(jī)制,構(gòu)造了掩蔽詞類別預(yù)測任務(wù),以此挖掘了文本與詞之間的深度關(guān)聯(lián),一定程度上提高了模型的準(zhǔn)確率,緩解了標(biāo)簽噪聲問題。 4.3.2 消融實驗分析 為了驗證本文提出的詞表去噪方法的有效性,將詞表去噪模塊作為實驗的消融變量?!癓SETClass-WD”表示在不使用詞表去噪模塊的條件下,模型在不同數(shù)據(jù)集上的性能表現(xiàn)。實驗結(jié)果如表3 所示,對比LSETClass 方法,在使用類別詞表去噪方法后,模型的性能在3 個數(shù)據(jù)集上的提升均有所下降,分別提高了2.55 個百分點、0.63 個百分點和1 個百分點。 為了進(jìn)一步驗證該方法的有效性,表4 還給出了詞表去噪模塊下的類別詞(LSETClass)和不使用該模塊的類別詞(LOTClass)的部分結(jié)果,表中加粗的為噪聲詞,可以看到本文提出的類別詞擴(kuò)展方法得到的類別詞表,相比不使用該方法得到的類別詞表,具有更少的無關(guān)詞,降低了詞表噪聲,同時結(jié)合表3 的對比實驗結(jié)果,證明了降低類別詞表噪聲可以提高弱監(jiān)督文本分類模型的性能。 表4 類別詞表在THUCNews數(shù)據(jù)集上的對比結(jié)果Tab.4 Comparison results of category vocabularies on THUCNews dataset 另外,本文還探究了自訓(xùn)練模塊中是否引入標(biāo)簽語義對模型性能的影響,實驗結(jié)果如表3 所示,“LSETClass-LE”表示不使用自訓(xùn)練模塊的結(jié)果,對比“LSETClass”的結(jié)果,可以看到引入標(biāo)簽語義后,模型在3 個數(shù)據(jù)集上的性能分別提升了2.76 個百分點、0.77 個百分點和0.95 個百分點,說明在自訓(xùn)練階段,引入標(biāo)簽語義可以降低該階段標(biāo)簽噪聲對模型性能的影響,另外,自訓(xùn)練模塊的引入可以更充分地利用未匹配數(shù)據(jù)的信息,從而提升了模型的泛化性能。 表3 不同文本數(shù)據(jù)集上的準(zhǔn)確率實驗結(jié)果對比 單位:%Tab.3 Accuracy comparison of experimental results on different text datasets unit:% 本文提出了一種標(biāo)簽語義增強(qiáng)的弱監(jiān)督文本分類模型。通過預(yù)訓(xùn)練語言模型BERT 獲取上下文表示來去噪類別詞表,有效地去除了類別詞表中的無關(guān)詞;利用基于MASK 機(jī)制的詞預(yù)測任務(wù)學(xué)習(xí)詞與類別之間的關(guān)系,減少了詞級-句級語義跨越所帶來的標(biāo)簽噪聲問題,從而提升模型在弱監(jiān)督文本分類任務(wù)上的性能;通過引入標(biāo)簽語義,進(jìn)一步地緩解了自訓(xùn)練階段的噪聲累積。實驗結(jié)果表明,本文方法在3 個公開基準(zhǔn)數(shù)據(jù)集上取得了較好結(jié)果,然而本文方法雖然證明了通過融合標(biāo)簽和文本的內(nèi)在關(guān)系可以提升模型的效果,但是并沒有完全解決標(biāo)簽噪聲問題。在未來的工作中,將在帶標(biāo)簽噪聲的文本分類任務(wù)上考慮引入不同粒度的外部知識,期望通過引入不同的外部知識,以對抵抗標(biāo)簽噪聲的影響,從而在盡量少的標(biāo)注數(shù)據(jù)條件下,高效準(zhǔn)確地預(yù)測標(biāo)簽序列。3.3 基于標(biāo)簽語義的自訓(xùn)練模塊
4 實驗結(jié)果與分析
4.1 數(shù)據(jù)集介紹
4.2 評估方法
4.3 實驗分析
5 結(jié)語