方 自 遠
(河南農業職業學院 河南 鄭州 451450)
Non-iterative training Adversarial training
在人們生活和社會生產的諸多領域中,出現了大量自媒體類型的應用[1],如時尚領域的小紅書、體育領域的虎撲、視頻領域的嗶哩嗶哩,以及咨詢服務領域的知乎等[2]。在這些應用中,大量的普通用戶和意見領袖通過個人賬號按照規定的格式上傳文本內容、圖像內容和視頻內容[3],在用戶上傳內容的過程中往往需要指定該內容所屬的類別,從而便于應用的管理和維護[4]。但在用戶指定類別的過程中常常出現錯誤,而這些錯誤直接影響后續自動推薦服務的性能。為了解決該問題,許多應用集成了自媒體上傳內容的類別檢查程序,糾正錯誤的類別標注[5]。
文本內容是許多自媒體應用的重要組成部分,提供了關鍵的信息,因此區分文本內容的類別是其中的重點研究方向。在傳統的文本分類方法中,基于中心的文本分類方法是一種高效率的方法[6],也是目前滿足在線分類條件的主要方法,此類方法利用一些統計方法建模訓練語料庫和訓練樣本集的分布,然后利用距離度量方法將文本分類。此類方法包括許多不同技術的結合,包括隨機森林[7]、k-近鄰[8]和k-means[9]等分類器,以及模糊集分布[10]、字典分布[11]和粗糙集[12]等相似性度量方法。此類傳統方法在時間效率上具有巨大的優勢,但是在分類準確率方面存在明顯劣勢,尤其在處理高維文本數據集時,其分類準確率和時間效率均出現明顯的下降。
深度學習技術具有強大的非線性學習能力,在許多工程領域內取得了成功[13]。許多專家應用深度學習技術對文本進行分類,包括:深度神經網絡[14]、卷積神經網絡[15]和循環神經網絡等模型。循環神經網絡在文本分類問題上表現出較好的效果,但傳統的循環神經網絡對于文本特征的擬合能力依然不足。近期許多研究將分層注意方法[16]引入循環神經網絡,分層注意方法將文本分割為段落,再利用神經網絡并行地處理每個段落,該方法明顯提高了文本分類的性能。但許多研究表明,分層注意方法導致神經網絡的參數出現大量的冗余,導致明顯的過擬合問題[17]。
為了利用分層注意方法的優點,同時解決訓練過程的冗余參數和時間效率問題,提出基于非迭代訓練層次循環神經網絡的快速文本分類算法。本文的工作主要有兩點:① 提出一種對抗訓練算法,為詞匯和語句表示增加擾動,從而緩解過擬合問題。② 給出一種非迭代循環神經網絡的訓練算法,提高模型的訓練速度。
門限循環單元網絡(Gated Recurrent Unit,GRU)是長短期記憶網絡(Long Short-Term Memory,LSTM)的簡化版本,其性能與LSTM十分接近。GRU僅有兩個Gate且沒有LSTM的cell參數,其訓練難度小于LSTM。GRU將不同長度的句子編碼成固定長度的向量表示,通過重置門和更新門控制狀態信息的更新。重置門的計算式為:
rt=σ(Wrxt+Uryt-1+br)
(1)
式中:rt為重置門;br為學習的偏置;σ為Sigmoid函數;xt為時間t的輸入向量;Wr∈Rn×m和Ur∈Rn×n是學習的權重矩陣;yt-1為上一個狀態;m和n分別為詞嵌入維度和隱層單元數量。更新門的計算式為:
zt=σ(Wzxt+Uzyt-1+bz)
(2)
(3)
式中:⊙為矩陣元素的乘法運算;Wy∈Rn×m和Uy∈Rn×n為學習的權重矩陣。最終,GRU新狀態yt的計算式為:
yt=(1-zt)⊙yt-1+zt⊙yt
(4)
如果重置門rt設為0,那么上一個狀態對候選狀態無效果。
層次注意網絡將文本y分割為K個句子,記為{syk|k=1,2,…,K},句子k表示為字詞的向量{wkt|t=1,2,…,T},T為字詞的數量。圖1所示是層次網絡處理文本的一個簡單例子,將文本內容劃分為若干條句子,每個句子分為字和標點符號。

圖1 層次網絡處理文本內容的簡單例子
通過Word2vec(也稱為word embeddings)將字詞的One-Hot編碼轉化為低維度的連續值(稠密向量),意思相近的詞被映射到向量空間內靠近的位置。映射后的向量表示為xkt=Wewkt,We∈Rdx|V|為字詞的嵌入矩陣,其中:dx為向量維度;V為詞匯表中詞的編號。We的每一行對應第i個字詞的嵌入。圖2所示是層次注意GRU的網絡結構,網絡包含門循環單元、字詞編碼器和注意單元。

圖2 層次注意GRU的網絡結構
xkt=Wewkt
(5)
(6)
(7)

每個字詞對句子表示的重要性不同,因此,通過引入注意方法區分每個字詞的貢獻。注意方法通過積累之前的輸出向量,分析字詞表示或者句子表示的完整語義信息。本文網絡采用該方法提取字詞和句子中的重要信息,注意方法的輸出是字詞或者句子的高階表示。根據文獻[18]的驗證結果,注意層的字詞表示準確率高于平均池化層和最大池化層。字詞對句子語義重要性的計算式總結為:
ukt=tanh(Wwhkt+bw)
(8)
(9)
(10)
式中:ukt為hkt的隱層表示,隨機初始化uw,在網絡的訓練過程中學習uw。
首先將詞匯標注信息輸入單層感知機,感知機以sine()為激活函數,感知機輸出的隱層表示記為ukt。然后Softmax函數處理ukt,計算正則權重αkt。最后通過累加字詞的隱層表示計算出句子的表示向量。
給定一個文本y,將文本表示為句子表示向量的集合,再次運用雙向GRU處理句子表示向量,分析句子的上下文信息。文本表示的計算式為:
(11)
(12)
再次引入注意力機制計算句子對文本的重要性,獲得文本y的向量表示,其計算式為:
uk=tanh(Wshk+bs)
(13)
(14)
(15)
式中:隨機初始化us,在訓練過程中學習us;v表示包含語義信息的詞匯。通過Softmax層將輸入的數值轉化為條件概率,Softmax函數的計算式為:
p=softmax(Wcv+bc)
(16)
為了解決層次注意網絡的過擬合問題,提出了對抗訓練方法,通過對抗訓練為網絡引入擾動。圖3所示是對抗訓練層次門循環神經網絡的結構,其中虛線部分是嵌入的對抗處理模塊。

圖3 對抗訓練的層次門循環神經網絡
(17)

設x表示輸入,θ表示分類器y的參數。在對抗訓練分類器的過程中,損失函數L的計算式為:
L=-logp(y|x+rAT;θ)
(18)

(19)
式中:g=▽xlogp(y|x;θ);ε為擾動系數,ε在后向傳播中學習獲得。

(20)
式中:g=▽xlogp(y|X;θ)。
句子的對抗擾動rs_AT計算式為:
(21)
式中:g=▽xlogp(y|S;θ)。
對抗訓練對字詞所造成的損失計算式為:
(22)
對抗訓練對句子所造成的損失計算式為:
(23)
式中:N為字詞和句子的數量。
梯度下降法是RNN常用的迭代訓練算法,但該訓練方法計算成本很高,且部分參數需要人工調節。本文設計了一種非迭代訓練算法,通過線性函數逼近激活函數,學習RNN連接的權重。
(1) LSTM網絡泛化模型。本文的GRU網絡是LSTM網絡的簡化版本,LSTM網絡解決了RNN的梯度消失問題,本文的非迭代訓練方法也同樣適用于其他的LSTM網絡,因此本文以LSTM模型為例介紹非迭代訓練的方法。LSTM的網絡模型的相關介紹可參考文獻[19]。
(2) LSTM非迭代訓練算法。本文通過線性函數逼近激活函數,以實現對于循環連接權重的學習。針對本文GRU模型所采用的sine激活函數,采用Taylor序列擴展逼近sine激活函數,其計算式為:
(24)
使用一階多項式獲得輸出權重,其計算式為:
(25)
式中:M為句子的最大詞匯數量;Q為文章的最大句子數量。
LSTM的非迭代訓練步驟為:
Step1隨機初始化wi、bi。
Step2使用線性函數逼近激活函數,計算H。
Step3對H進行正則化處理,避免產生奇異矩陣。
Step4使用廣義的Moore-Penrose偽逆計算θ=[β,α]T。
非迭代訓練主要包含三個步驟:(1) 為網絡的輸入權重和偏差分配隨機值。(2) 計算輸出矩陣H。(3) 使用Moore-Penrose偽逆計算參數向量θ和輸出權重β。假設網絡共有F個輸入節點、M個隱層節點和1個輸出節點,共有N個輸入向量。
步驟(1):分配隨機值的時間復雜度和空間復雜度均為常量,關于值的數量呈線性關系,等于輸入層的權重和偏差之和。步驟(2):輸出矩陣H是一個N×M的矩陣,包含F維的輸入向量,計算H矩陣共需要NM(F+c)次運算,c為常量的浮點數運算。步驟(3):計算H的偽逆:如果M≤N,需要O(NM)的計算復雜度,否則為O(NM+N2M)。因為訓練數據的數量遠大于隱層節點的數量,所以計算θ共需要O(NM)次運算。測試過程需要計算β矩陣,每個數據需要O(M(F+c)+M)次運算。最終訓練模型的總體時間復雜度為:O(NM(F+c)+NM),總體空間復雜度為O(FM+2M+NM)。
硬件環境為Intel Xeon 64位12核處理器,主頻2.0 GHz,內存24 GB。編程環境為MATLAB R2016b。使用Adam優化器迭代訓練本文的RNN網絡,該訓練模型簡稱為HRNN,迭代訓練的學習率范圍為10-6~10-2,權重衰減懲罰因子范圍為0.90~0.99,采用網格搜索從范圍10~200中選擇最優的epoch數量,批大小設為32。此外,使用本文的非迭代訓練方法訓練本文的RNN網絡,該模型簡稱為SRNN,SRNN和HRNN權重和偏差的隨機初始化均服從均值為0、標準偏差為0.01的高斯分布。GRU的隱層節點數量設為25,失活率(Dropout)設為0.1。經過預處理實驗,將對抗訓練的ε值設為0.3,此時為最小化過擬合的網絡。每組參數的實驗獨立運行30次,將30次結果的平均值作為最終的性能值。
(1) 實驗的英文文本數據集。使用6個公開的英文文本數據集進行仿真實驗,表1所示是6個英文數據集的介紹。Reuter是標記的新聞數據集,從該數據集選擇8個出現頻率高的新聞類別,分別為:earning、acquisition、crude、trade、money、interest、grain和ship。Amazon是亞馬遜數據集的商品介紹文本集,選擇4個出現頻率高的商品類型,分別為:books、DVD、electronics和kitchen。Snippet是一個短新聞數據集,共有8個類別,分別為:business、computers、culture arts、education science、engineering、health、politics society和sports。SST-1和SST-2均為電影檔案數據集,共有5個類別,分別為:very positive、positive、neutral、negative和very negative。TREC是一個開放領域的問答檔案數據集,共有6個類別,分別為:abbreviation、entity、person、description、location和numeric information。

表1 英文文本數據集的基本信息
對6個數據集進行統一的預處理:將大寫字母轉化為小寫字母,刪除其中非utf-8字符串解碼器的特殊字符,最終共保留72種字符。將所有文本擴展為統一長度,該長度為每個數據集最長文本的長度。
(2) 比較算法介紹。選擇5個英文文本分類算法作為比較算法:① ConGDR[19]:由Mujtaba等提出的一種基于概念圖的文本表示方法,根據概念圖之間的相似性將文本分類。② DKVR[20]:由Hsieh等提出的分布式向量文本表示方法,通過向量間的相似性評估文本之間的距離。③ LST_SVM[21]:由Kumar等提出的最小二乘孿生支持向量機的文本分類算法,利用簡單詞袋模型表示字詞,利用孿生支持向量機學習文本之間的高維非線性關系。④ LSTM_DSR[22]:由Huang等提出的基于LSTM的深度句子表示方法,通過循環訓練提高每層神經網絡的信息量,積累的表示提高了句子的表示效果。⑤ CNN_CNC[23]:由Lauren等提出的基于卷積神經網絡的短文本分類算法。該網絡第1層是自然語言處理層,嵌入層的輸入為文本矩陣,文本矩陣的長度設為文本長度的最大值。
(3) 分類準確率。圖4所示是6個英文文本數據集的平均分類準確率結果。總體而言,基于神經網絡的分類算法LSTM_DSR、CNN_CNC、HRNN和SRNN優于傳統算法ConGDR、DKVR,并且也好于機器學習算法LST_SVM。將HRNN與LSTM_DSR進行比較,LSTM_DSR是一種正常反向傳播訓練的LSTM方法,HRNN是本文設計的對抗訓練算法,HRNN的分類準確率均優于LSTM_DSR,由此可得出結論,本文算法有效地緩解了過擬合問題,提高了文本分類的性能。

(a) Reuter、Amazon和Snippet數據集的結果

(b) SST-1、SST-2和TREC數據集的結果圖4 英文文本分類的平均準確率
(4) 訓練效率實驗。迭代訓練算法和非迭代訓練算法的時間效率的對比結果如表2所示。結果顯示,隱層節點越多,訓練時間越長。隱層節點為25時,分類準確率最高,而此時HRNN的訓練時間較高,本文非迭代訓練算法SRNN的訓練時間僅為HRNN的10%~20%之間,而SRNN的分類準確率略低于HRNN,但依然高于ConGDR、DKVR、LST_SVM、LSTM_DSR和CNN_CNC算法。

表2 英文文本的訓練時間

續表2
(1) 實驗的中文文本數據集。使用中國科學院漢語詞法分析系統(Institute of Computing Technology Chinese Lexical Analysis System,ICTCLAS)處理數據集,刪除常用的停用詞。采用復旦大學的文本分類語料庫,選擇經濟、政治、宇航、醫療、軍事、藝術和歷史7個大類的文檔集,刪除其中與正文無關的信息。

表3 中文文本數據集的基本信息
(2) 比較算法介紹。選擇兩個中文文本分類算法作為比較算法:① CC[24]:根據領域本體圖結構模型創建中文文本分類的本體學習框架,并建立中文術語-術語關系映射。基于概念聚類本體圖半監督地學習中文文本的類別。② DBN[25]:一種深度置信網絡的中文文本分類模型,分別以文本的TF-IDF和LSI特征作為輸入,利用深度置信網絡強大的特征學習能力獲取深層次特征。
(3) 分類性能實驗。一般采用宏F1(MF1)指標評價中文文本的分類性能。MF1的計算式為:
(26)
式中:Pi為類i的查準率;Ri為類i的查全率;m為分類數量。
圖5所示是7個中文文本數據集的平均分類性能結果。總體而言,基于神經網絡的分類算法DBN、HRNN和SRNN優于傳統算法CC。HRNN和SRNN的分類準確率均優于DBN,由此可得出結論,本文的對抗訓練算法和分層注意方法有效地提高了中文文本的分類性能。

圖5 中文文本分類的平均MF1結果
(4) 訓練效率實驗。迭代訓練算法和非迭代訓練算法的時間效率比較結果如表4所示。結果顯示,隱層節點越多,訓練時間越長。隱層節點為25時,此時的分類準確率最高,而此時HRNN的訓練時間較高,本文非迭代訓練算法SRNN的訓練時間大約為HRNN的1.5%,而SRNN的分類準確率略低于HRNN,但依然高于DBN算法和CC算法。
將分層注意力機制與循環神經網絡結合,能夠提高對文本分類的準確率,但存在過擬合問題和訓練時間過長的問題。本文設計對抗訓練方法最小化分層注意循環神經網絡的過擬合問題,并提出非迭代訓練算法加快循環神經網絡的訓練速度。最終對中文文本數據集和英文文本數據集均完成了仿真實驗,結果表明本文的對抗訓練算法有效地緩解了分層注意循環神經網絡的過擬合問題,而非迭代訓練算法有效地加快了訓練速度,非迭代訓練算法的訓練時間大約為傳統方法的1.5%。
因為實驗條件的限制,本文算法目前僅在小規模文本數據集上完成了驗證實驗,未來將研究利用高性能機器對大規模文本數據集進行實驗,評估本文算法的可擴展能力。