余正濤,關 昕,黃于欣,張思琦,趙慶玨
(1. 昆明理工大學 信息工程與自動化學院,云南 昆明 650500;2. 昆明理工大學 云南省人工智能重點實驗室,云南 昆明 650500)
隨著互聯網的發展,網絡治理的問題也逐漸突出,對色情、毒品、邪教、暴力類型的敏感文本進行識別成為一項重要任務。
可以將敏感文本識別看作一種特定領域的分類任務,針對該任務,目前國內外主要的研究方法有兩類: 基于敏感詞典和基于深度學習的研究方法。基于敏感詞典的方法通過制定規則與匹配算法利用敏感詞表中關鍵詞對文本進行過濾。但是敏感詞表需要人工維護,由于網絡新詞、術語、敏感詞變形體更新迭代速度快,構建維護敏感詞表不僅易錯漏,而且耗費較大。近年來,基于深度學習模型自動提取語義特征的文本分類方法取得了很好的效果。但是深度學習方法依賴于大量數據和計算能力,對于敏感信息識別任務來講,目前沒有公開的數據集,人工構建的敏感文本數據集規模較小,不足以支持深度學習大規模參數的訓練。
針對標注數據稀缺的問題,目前有效的方法是利用小樣本學習的思路,通過在元訓練階段使用的通用數據集上的大量學習任務對模型進行訓練,使得元測試階段新的小樣本分類任務出現時,模型能夠利用學到的元知識調整模型參數,通過較少的樣本支撐獲得好的分類效果,能夠很好地應用于敏感信息識別任務中數據規模不足的場景。然而現有的小樣本學習方法通常建立在元訓練和元測試階段的數據集具有相同分布的假設上,針對敏感信息識別任務,元訓練和元測試階段的數據差異較大。在元訓練階段通常選擇使用通用的新聞領域數據集獲取元知識,在元測試階段應用構建的包含色情、毒品、暴恐、邪教等敏感分類的敏感文本數據集進行識別,如圖 1所示,小樣本學習方法會因領域特征分布的巨大差異而在沒見過的敏感領域類中失去泛化性。

圖1 小樣本學習中的領域分布差異
針對以上問題,解決元訓練和元測試階段的數據領域差異問題可以有效提升小樣本方法在測試階段的泛化性能,提升在敏感識別新任務上的分類效果,因此考慮在元測試階段進行微調。元測試階段進行微調時,既要使新的敏感識別任務少量樣本能夠產生良好的泛化性能,又需要考慮對整個模型的大量參數進行調整時避免模型底層學習到的元知識產生災難性的遺忘。因此,本文構建了基于微調原型網絡的敏感信息識別模型,在采用了小樣本學習方法應對敏感信息類別樣本數量不足的問題的基礎上,在元訓練階段中運用了快速適應思想[1],使模型學習到一組易于微調的初始模型參數,使模型在元測試階段能夠通過少量敏感樣本的微調策略取得良好泛化性能。在微調過程中,模型通過凍結部分底層參數來避免可能造成的過擬合現象。
早期的敏感信息識別方法是通過敏感詞典對互聯網上文本進行詞匹配,包括基于BM(Boyer-Moore)算法[2]、WM(Wu-Manber)算法[3]、決策樹算法[4]等方法。基于敏感詞典的方法是最基礎的方法,但是網絡上敏感詞層出不窮,人工維護詞表難以及時更新。
近幾年,隨著深度學習框架的流行與發展,基于深度學習模型的敏感信息識別方法取得了很好的效果。Xu等人[5]使用Text-CNN[6]獲取文本表示,構建文本敏感內容檢測模型,提高了檢測效率。Xu等人[7]通過Word2Vec模型[8]獲得敏感詞嵌入,通過余弦距離計算相似度實現敏感詞拓展,并將拓展敏感詞匯嵌入到潛在狄利克雷分配(Latent Dirichlet Allocation,LDA)模型[9]進行加權進行敏感主題識別。近年來,以Transformer[10]編碼器為基礎的Bert(Bidirectional Encoder Representation from Transformers)[11]、RoBERTa[12]模型等預訓練語言模型,通過大規模無標注語料庫進行自監督訓練來獲得先驗知識和文本表征,使得模型在下游任務上能夠通過微調取得很好的表現。李等人[13]使用預訓練Bert模型針對新聞文本分段提取語義特征,結合抽取的敏感關鍵詞對每段語義向量加權求和,獲得新聞文本的語義編碼,用于敏感信息多分類。深度學習方法能夠自動提取文本語義特征,但需要大規模數據對深度學習模型進行訓練。
在小樣本學習方面,小樣本學習方法最早提出于圖像領域,近年來在基于小樣本的文本分類方面也有相關研究。Dopierre等人[14]嘗試將基于Transformer的文本編碼器結合入多個小樣本學習方法中,通過實驗證明了其應用于自然語言處理領域的有效性。Wei等人[15]結合了課程學習、數據增強和三重損失方法,通過課程指導的噪聲水平漸進的數據增強方法對小樣本模型進行訓練,解決了相對于圖像而言文本數據增強方法使增強數據與原始數據差異性更大、噪聲數據難以學習的問題。
在解決小樣本學習領域差異大的方面,針對圖像分類任務,Chen等人[16]設置了領域遷移場景下的小樣本實驗,證明元訓練階段和元測試階段領域差異過大時對新類領域適應步驟的重要性。之后,Tseng等人[17]通過在特征提取器加入仿射變換層模擬不同域中的特征分布、Li等人[18]通過輔助網絡學習從特定任務支持集中學習特征權重,對跨域小樣本學習任務進行了探索。在文本分類任務上也有相關的研究,Li等人[19]結合了SMLMT方法[20]和大型預訓練語言模型,通過半監督的訓練方法使元學習器掌握泛化到模型沒見過領域的能力。Olah等人[21]提出融入外部知識的方法進行情感分類,通過實驗證明了在兩種不同標簽分類的情感數據集中跨域知識遷移的實現。
為了識別小樣本敏感信息并解決領域差異問題,本文建立了基于微調原型網絡的敏感信息識別模型,即在原型網絡的基礎上,運用了微調方法和快速適應思想。在下文對模型的描述中,把原型網絡元訓練過程的每次迭代表示為一個episode,可以將其看作一個單獨的學習任務。為保留元訓練集和測試集共同的部分,微調差異的部分,在小樣本學習每個episode的微調模塊中凍結文本特征提取器的一部分參數,使用支持集樣本對未凍結的部分參數進行微調,避免災難性的遺忘問題。在元訓練階段,微調部分結束后,使用查詢集計算更新后的特征提取器損失所產生的梯度,使用該梯度對初始參數進行優化,使模型向易于快速適應新任務的方向調整。每個episode訓練過程如圖2所示。

圖2 基于微調原型網絡的敏感信息識別模型

本文采用的原型網絡由文本編碼器和度量模塊構成,文本編碼器Encoder表示為E,從數據集中抽取N個類別構建支持集S與查詢集Q,從支持集和查詢集的輸入文本中提取特征,得到文本特征向量矩陣VS、VQ如式(1)所示。
VS=E(Xs),VQ=E(Xq)
(1)

(2)
具體來說,將支持集樣本Xs特征表示Vs中,對每個相同類中樣本的特征向量{vn,1,vn,2,…,vn,k}做平均作為該類的原型,計算如式(3)所示。
(3)
其中,n表示支持集中的第n個類,K表示支持集中每個類中包含K個樣本。
(4)
其中scorei,n表示查詢集中第i個樣本與第n個類原型之間的評分。

(5)

在原型網絡的基礎上,在episode中加入對模型進行微調的步驟,并基于快速適應思想在元訓練階段通過大量學習任務對模型進行訓練,獲得一組好的初始學習參數,可以在元測試階段的學習任務上迅速調整適應。


算法1. 基于快速適應思想的微調算法對文本特征提取器E進行參數初始化得到θE數據集生成N-way K-shot學習任務1.While do: 2. 凍結前L層參數θE(L)3. 對支持集S劃分mini_batch4. While mini_batch do: 5. 使用線性分類器計算損失Loss_si6. 使用Loss_si更新后l層參數θE(l),得到θ~E(l)7. End while8. 使用結合θE(L)與θ~E(l)得到的E~_ft計算查詢集Q上的損失Loss_ft9. 使用Loss_ft計算參數梯度gE~_ft(L)、gE~_ft(l)10. 更新初始參數θE: θ~E(L)=θE(L)-lrgE~_ft(L) θ~E(l)=θE(l)-lrgE~_ft(l)11.End while
具體過程如下:

在每個小批次中,將si輸入E進行特征提取得到文本特征向量Vsi。使用一個線性分類器C對Vsi進行預測并計算這一批次的損失Loss_si,如式(6)、式(7)所示。





元訓練階段使用的數據集有兩類,第一類是來自Zhou等人的中文新聞標題數據[22],包含32個類別,共63 800個樣本,平均樣本長度為18。第二類是復旦大學計算機信息與技術系國際數據庫中心自然語言處理小組提供的復旦大學中文文本分類語料庫,包含20個類別,共19 637個樣本,平均樣本長度為259。
元測試階段由于沒有公開的敏感文本數據集,從新浪微博上爬取文本并進行標注,構建敏感文本數據集,包含色情、毒品、邪教、暴力和正常五種類型。文本中包含鏈接、特殊符號等多種干擾,因此采用預處理方式對爬取到的文本進行清洗。敏感文本數據集具體類別對應數據量如表1所示。

表1 敏感文本數據集分布
3.2.1 參數設置
對所有小樣本模型,使用Hugging Face提供的兩類中文BERT、RoBERTa[23-24]預訓練模型作為文本編碼器進行實驗。預訓練模型在大規模語料庫上進行無監督訓練來獲取先驗知識,其中,RoBERTa預訓練模型相比起BERT,在數據量、訓練步、批數量、優化器和訓練任務上都有了改進,在自然語言處理多種任務上都取得了更好的效果。在以下實驗訓練過程中,文本截取最大長度為64,優化算法為Adam[25],對元訓練階段小樣本模型訓練10 000個Episode,每個Episode的支持集中選取每類5、10、20個樣本作為支持集,每類10個樣本作為查詢集。
3.2.2 評價指標
本文通過計算宏平均(Macro Average)下的精確率(Pre)、召回率(Re)、F1值作為評價指標,計算過程如式(12)~式(14)所示。
式中涉及基于混淆矩陣的判誤指標,對某一類n而言,以“真、假”表示真實值是否屬于該類,以“正、負”表示預測值是否屬于該類,則其中TP表示真正例,FP表示假正例,TN表示真負例,FN表示假負例。
3.2.3 基線模型
選取了當前最優的小樣本學習網絡作為基線模型進行對比實驗,基線模型的選取如下所示:
Vinyals等人提出的匹配網絡[26](Matching network): 計算查詢集樣本與支持集樣本間的相似度,通過注意力核函數計算查詢集與支持集特征向量間的距離并歸一化,得到預測值。
Geng等人提出的歸納網絡[27](Induction network): 將支持集各類樣本特征向量送入歸納模塊,通過動態路由算法得到各類別特征映射,通過關系模塊得到查詢集與各類別向量的相似度評分,獲得預測值。
Snell等人提出的原型網絡[28](Prototype network): 是本文的基礎模型,計算支持集中各類樣本特征向量的平均值得到各個類原型,計算查詢集特征向量與各類原型間的距離,得到預測值。
Sung等人提出的關系網絡[29](Relation network): 將支持集各類特征向量相加作為類的特征映射,將支持集中樣本與類映射連接進入關系模塊進行相似度比較,得到相似度評分,獲得預測值。
當使用中文新聞標題數據集20個類別作為訓練集,選擇微調層數為BERT模型中頂層起1層線性層與2層Transformer Encoder層包含的層數,使用N-wayK-shot分別表示每個Episode中支持集的類別數與每個類別選取的樣本數,支持集設置為5-wayk-shot(k=5,10,20)。為了更充分地驗證模型性能,使用BERT、RoBERTa兩類預訓練模型作為特征提取器進行實驗,與其他基線小樣本模型在不同支持集規模下進行對比實驗,實驗結果如表2所示,其中“微調原型網絡”表示本文提出的模型,“+BERT”“+RoBERTa”分別表示采用不同的文本特征提取器。

表2 基線模型對比實驗 (單位: %)
從表2兩組實驗中可以看出,基線模型中原型網絡取得了最好的效果,同時,微調原型網絡相比所有基線模型都有了很大的提升,實驗證明了本文提出的快速適應的微調原型網絡在敏感信息識別任務的有效性。首先,由于實驗中在元訓練階段使用通用的新聞標題數據集,元測試階段使用敏感文本數據集,在面臨巨大領域差異的情況下,只包含了文本編碼器與計算查詢集樣本與支持集原型間歐氏距離的度量模塊兩部分的簡單原型網絡,即本文的基礎模型,相比較于其他基線模型取得了較好的效果,由于原型網絡僅通過文本編碼器完成了上游通用知識的學習而不需要依賴額外的權重參數,使得預訓練模型發揮了巨大的作用,通過上下兩組BERT與RoBERTa實驗可以看出,與其他基線模型對比,RoBERTa預訓練模型在簡單原型網絡上性能提升最為明顯。而本文提出的快速適應微調策略的原型網絡在簡單原型網絡的基礎上,在訓練階段獲得易于快速適應的初始參數,并使用測試階段敏感任務支持集中的樣本對模型進行小批次的微調實現對敏感領域的泛化性,相較于原型網絡,在兩組不同預訓練模型的對比實驗中都實現了更進一步的性能提升。相比之下,較為先進的歸納網絡在得到支持集樣本的表示后,使用動態路由算法歸納類別特征來獲取類的表示,但在面對巨大領域差異的敏感信息分類任務時沒有取得預期的效果。
使用BERT與RoBERTa預訓練模型作為文本特征提取器的兩組實驗間進行對比可以看出,總體來說RoBERTa組的性能相比BERT組有所提升,同時兩組實驗中采用不同預訓練模型后產生的性能趨勢基本相同。首先,在基線模型中,使用RoBERTa預訓練模型組相比BERT組在模型性能上有一定提升,尤其匹配網絡與原型網絡中相比BERT組性能有了很大提升,在支持集規模較小時性能提升更為明顯,k=5時模型性能提升約10%;而在微調原型網絡即本文模型中,隨著支持集的規模擴大,RoBERTa預訓練模型的優勢逐漸被彌補。同時,在兩組實驗中均可看出,隨著支持集規模擴大,小樣本模型的效果基本都有所提升,整體性能趨勢相同,而相比之下微調原型網絡效果的提升最為明顯,證明了快速適應微調策略的有效性。由于兩種預訓練模型對本文提出的快速適應微調原型網絡的性能影響趨勢總體相同,以下均采用BERT預訓練模型作為文本特征提取器進行試驗。
3.3.2 消融實驗
為證明快速適應微調原型網絡的有效性,設計了消融實驗。使用中文新聞標題數據集20個類別作為訓練集,支持集大小為20-shot,(-)快速適應微調策略指不進行微調,僅使用單純的原型網絡; (-)凍結參數指微調原型網絡在微調過程中對所有參數進行更新,不凍結底層參數; (-)快速適應方法指當微調原型網絡設置參數微調層數為頂層起1層線性層與2層Transformer Encoder層所包含的參數,在元訓練過程每個episode中使用微調后的文本特征提取器直接計算損失,不使用快速適應方法尋找對少數樣本敏感的初始參數。實驗結果如表3所示。

表3 消融實驗 (單位: %)
從表3可以看出,模型每個模塊都產生一定的效果,其中凍結參數的操作起到了關鍵的效用。當不進行凍結底層參數操作,僅使用支持集少量樣本對所有參數進行微調時,模型的效果甚至比簡單的原型網絡降低約6%,少量數據對底層參數的調整使模型產生了災難性的遺忘;當微調原型網絡使用快速適應方法時,整體效果相比(-)快速適應方法提升了1%左右,說明一組好的初始參數能夠使模型在使用少量樣本進行簡單微調后取得更好的效果。
3.3.3 不同微調層數實驗
當中文新聞標題數據集20個類別作為訓練集,支持集大小選擇為20-shot,對微調模塊選擇不同層數的參數進行實驗,實驗設置選取特征提取器頂層1層線性層分別加1、2、3、4層Transformer Encoder層所包含的參數進行微調,觀察不同微調層數對快速適應微調策略性能的影響。實驗結果如圖3所示。

圖3 不同微調層數對實驗結果的影響
通過圖3可以看出,當微調參數為兩個Transformer Encoder層時,模型取得了最好的效果,但當微調參數繼續增加至3層、4層Transformer Encoder層時,性能反而呈現下降趨勢。分析表中結果,推測當微調層數過大時,模型通過元學習階段獲得的底層通用知識也被一并調整,而僅使用支持集的少量樣本對參數進行微調使模型產生了過擬合現象。
3.3.4 不同數據集規模實驗
當支持集大小選擇為20-shot,微調層數選擇頂層起1層線性層與1層Transformer Encoder層所包含的參數,對元學習階段使用不同數據集進行實驗。分別使用從新聞標題數據集中選取20個類別、使用新聞標題數據集全部32個類別、使用復旦大學中文文本分類語料庫20個類別作為元訓練階段數據集,使用敏感文本數據集作為元測試階段數據集。實驗結果如表4所示。

表4 不同數據集規模對實驗結果的影響 (單位: %)
分析表中的結果可以看出,當元訓練階段數據規模擴大時,模型性能有了一定的提升,而相對于原型網絡,微調策略縮小了數據規模差異帶來的性能差距。在選擇元訓練階段數據集時,使用樣本平均長度較小的新聞標題數據集的不同類別數量作為對比,當元訓練階段訓練的類別增加時,原型網絡與微調原型網絡的性能均增加了不到1%,模型的性能提升較為有限。當選取使用等同類別數量(20類)的不同數據集做對比時,樣本平均長度更長的復旦大學中文文本語料庫在原型網絡中提升了5%,而在微調原型網絡中提升了1%,可以看出,元訓練階段隨著數據規模的擴大,模型在元訓練階段獲得的元知識增加,模型的性能會相應上升,而微調原型網絡減小了對元訓練階段數據規模的需求,使得較小的元訓練數據集也能起到很好的效果。
本文提出了基于微調原型網絡的小樣本敏感信息識別方法,通過小樣本學習框架解決敏感文本數據類別樣本不足的問題,并提出了快速適應的微調方法,在元訓練階段獲得易于調整的初始參數,在元測試階段對特征提取器凍結一部分參數并進行微調,來解決元訓練階段通用領域數據集和元測試階段敏感文本數據集領域分布差異大、跨域不適應的問題。通過實驗,證明了模型在解決敏感信息識別任務的有效性。