錢亞冠,方科彬,康 明,顧釗銓,潘 俊,王 濱,Wassim Swaileh
(1. 浙江科技學院 大數(shù)據(jù)學院,浙江 杭州 310023;2. ??低?浙江科技學院 邊緣智能安全聯(lián)合實驗室,浙江 杭州 310023;3. 南京航空航天大學 經(jīng)濟與管理學院, 江蘇 南京 211106;4. 廣州大學 網(wǎng)絡空間先進技術(shù)研究院, 廣東 廣州 510006;5. 塞爾齊.巴黎大學 ETIS 國家實驗室, 巴黎 法國 95032)
文本分類在文檔檢索[1]、網(wǎng)絡搜索[2]、垃圾郵件過濾[3]等應用中有著重要作用,其中文本的詞向量和段落向量表示方法一直是研究者的關(guān)注熱點。詞袋模型(bag-of-words)[4-5]作為早期詞向量表示的代表方法,由于其具有直觀、簡便的特點,在文本分類任務中得到了廣泛的應用。然而,詞袋模型的表示存在稀疏、高維、離散的問題,同時文本表示間存在強正交性[6-7],使得這種表示方法不適合計算文本之間的相似性[8-9]。
段落向量是文本分布式表示中的一個重大發(fā)展。在此之前,長文本的表示方法受到較多的限制,如Socher等人[10]提出的有監(jiān)督方法,通常需要對文本進行語法分析[11],才可以用于長文本的表示,而段落向量的出現(xiàn)實現(xiàn)了長文本表示的無監(jiān)督學習。段落向量主要是通過段落向量化算法(Doc2Vec)[12],利用無監(jiān)督學習[13],將變長文本表示為固定長度的連續(xù)實向量。該方法成功解決了將模型擴展到單詞級表示之外的問題,實現(xiàn)了短語級或句子級表示[14-15]。
近年來,研究者針對段落向量提出了許多改進方法。Elmer等人[16]提出了層次段落向量,利用分層文檔結(jié)構(gòu)提高單詞嵌入的質(zhì)量。Gerek等人[17]通過強制讓段落向量的元素為正,以減少表示嵌入的空間,使段落向量更易于解釋?;舫獾热薣18]提出Doc2Vec與SVM結(jié)合,解決了重名作者姓名識別問題,用以提升作者姓名消歧準確率。
但是上述改進的方法都忽略了Doc2Vec存在的兩個缺陷: ①在學習段落向量的過程中,相比于短段落,長段落會得到更充分的訓練; ②長段落語料往往包含短段落語料的信息,長段落向量的表示優(yōu)于短段落。因此本文提出一種段落向量正向激勵的方法,通過激勵系數(shù)使分類模型在訓練過程中(輸入特征包含長段落向量和短段落向量)傾向長段落向量,從而提升分類準確率。
該方法引入激勵系數(shù)λ,用于選取最優(yōu)的模型。通過在Stanford Sentiment Treebank、IMDB和Amazon Reviews三個數(shù)據(jù)集上進行實驗,結(jié)果證實,通過選取合適的激勵系數(shù),該方法可以顯著提升文本分類模型的準確率。
在眾多文本分布式表示學習模型中,詞向量化(Word2Vec)是較為常用的算法[19],可以將詞轉(zhuǎn)化成向量表示。圖1是一個經(jīng)典的Word2Vec學習詞向量框架,其主要任務是根據(jù)上下文的單詞來預測中間的單詞,訓練詞向量的神經(jīng)網(wǎng)絡結(jié)構(gòu)如下: ①輸入層,上下文詞向量ωt-k,…,ωt+k; ②投影層,將輸入層的詞向量進行連接或平均; ③輸出層,輸出中間詞向量。假定一個句子S由T個單詞{ω1,ω2,…,ωT}組成, 詞向量模型的優(yōu)化目標是最大化平均對數(shù)概率,如式(1)所示。
圖1 學習詞向量框架
(1)
句子S中的第t個單詞所對應的向量表示為ωt∈dω,其中dω表示詞嵌入的維度,k表示窗口距離。在輸出層通過Softmax得到中間詞的預測結(jié)果,與真實標簽計算誤差反向傳播和梯度下降來更新W。
(2)
每個yi是輸出單詞i的非標準化對數(shù)概率,通過式(3)所示公式計算得到:
y=b+Uh(ωt-k,…,ωt+k;W)
(3)
其中,U,b表示Softmax參數(shù),W表示詞向量矩陣,h由從W中提取的詞向量ωt連接或平均后構(gòu)成。
Doc2Vec是使用廣泛的文本特征提取器,可以將段落轉(zhuǎn)化成向量表示。與Word2Vec相比,Doc2Vec將式(3)中的h改由W和D構(gòu)造。
y=b+Uh(ωt-k,…,ωt+k;D+W)
(4)
其中,D∈L×dp表示段落向量矩陣,L表示語料中段落的個數(shù),dp表示段落向量嵌入的維度。其主要任務是根據(jù)段落和段落中上下文的單詞來預測中間的單詞以獲得D。段落向量模型的優(yōu)化目標是最大化平均對數(shù)概率,如式(5)所示。
(5)
具體的訓練步驟如下: ①通過上下文預測中間詞以得到參數(shù)U、b和W; ②固定詞向量矩陣W和Softmax權(quán)重U、b,在輸出層通過Softmax得到中間詞的預測結(jié)果,與真實標簽計算誤差反向傳播和梯度下降來更新D。上述Doc2Vec方法被稱為PV-DM,其框架如圖2所示。
圖2 PV-DM框架
此外,另一種Doc2Vec方法忽略輸入的上下文單詞,通過強制模型由輸出的段落去預測隨機取樣的單詞,該方法被稱為PV-DBOW,其框架如圖3所示。
圖3 PV-DBOW框架
首先,Doc2Vec沒有考慮到訓練過程中長短段落訓練次數(shù)存在差異的情況。Doc2Vec的優(yōu)化目標如式(4)所示,在一個epoch中,Dj的滑動窗口訓練過程如下:
每個滑動窗口代表該epoch中Dj的一次訓練,由此可知一個epoch中Dj的訓練次數(shù)為L-2k次。當段落長短不同時,一個epoch訓練過程中長段落會比短段落獲得更多的訓練次數(shù)。通常隨著訓練次數(shù)的增加,段落向量的表達會更加準確。以圖4為例,設k為1,每個epoch經(jīng)過滑動窗口采樣過程后,長段落的段落向量會被更新6次,而短段落的段落向量只會被更新兩次。
圖4 長短段落語料內(nèi)容
其次,Doc2Vec沒有考慮訓練語料之間的包含關(guān)系。設語料中的一個短段落為dS,其包含的詞為ωs1,ωs2,ωs3,…,ωsT;一個長段落為dL,其包含的詞為ωl1,ωl2,ωl3,…,ωlT,ωl(T+1),…,ωl(T+n)。由于dL中的詞比dS更具有多樣性,所以dS中的一部分詞很可能同時出現(xiàn)在dL中。如果中間詞ωt與上下文ωt-k,…,ωt+k存在一致的情形,當這兩個段落經(jīng)過上述訓練過程時,這兩個段落的向量表示在高維空間中會相互接近,導致在剩余的訓練過程中,長段落向量表示比短段落向量表示獲得更豐富的信息。
以圖5為例,若設k為1,當長短段落經(jīng)過PV-DM框架訓練,并進行兩次滑動窗口采樣后,dS與dL將包含相同的信息以及近似的向量表示。長段落dL會繼續(xù)進行滑動采樣,同時更新段落向量,從而比短段落dS獲得更多的信息。
圖5 長短段落語料內(nèi)容
盡管長段落包含的信息比短段落更為全面,然而在訓練分類模型時,短段落的段落向量和長段落的段落向量的作用等同,使得分類模型的性能受到了限制。
針對上述問題,本文提出段落向量正向激勵方法,在訓練過程中通過適當提高長段落的段落向量作為輸入特征的比重,使文本分類模型向長段落向量有所偏倚。本方法包含: ①段落向量劃分模塊; ②段落向量激勵模塊;③文本分類模塊??蚣苋鐖D6所示。
圖6 段落向量正向激勵框架圖
由于通過Doc2Vec得到的段落向量矩陣D,存在長段落向量表示優(yōu)于短段落向量的情形,本文提出段落向量劃分,將段落向量矩陣D劃分為長段落向量矩陣DL和短段落向量矩陣DS。本文通過一個數(shù)組記錄每個段落的長度,并以中位數(shù)作為劃分DL與DS的依據(jù),目的是讓兩類樣本數(shù)接近,以利于后續(xù)分類模型性能的提升。其中DL用[dL1,dL2,…,dLl]來表示,DS用[dS1,dS2,…,dSs]來表示,l表示語料中長段落的個數(shù),s表示語料中短段落的個數(shù),D∈L×dp,dp表示段落向量嵌入的維度:
(6)
其中⊕號表示矩陣按列向量拼接。具體示例如圖7所示,設l=2,s=2,dp=5。
圖7 段落向量劃分示例
經(jīng)過段落向量劃分后,需進一步對DL和DS進行處理以解決Doc2Vec存在的缺陷。根據(jù)2.1節(jié)的描述,長段落向量的表示優(yōu)于短段落,然而在分類模型訓練過程中,DL和DS發(fā)揮了相同的作用,使得分類模型的性能受到了限制。本文希望分類模型在訓練過程中偏向長段落向量以提升模型性能,因此提出段落向量激勵方法。本文不再將原始段落向量矩陣D直接作為分類模型的輸入特征,而是對D做進一步處理,變?yōu)镈New,使分類模型自動偏向長段落向量。具體而言,是在矩陣D中隨機加入一部分長段落向量,稱之為正向激勵。加入多少長段落向量由激勵系數(shù)λ決定,具體的操作公式表示如式(7)所示。
(7)
(8)
其中,DNew∈(l+s+l*λ)×dp。相關(guān)示例如圖8所示,設l=2,s=2,dp=5,λ=0.5。
圖8 段落向量激勵示例
整個框架的過程如算法1所示。
算法1: 段落向量正向激勵輸入: 待分類文本語料{d1,d2,…,dT},語料長度向量N,激勵系數(shù)λ輸出: 新的模型輸入特征DNewStep 1 使用Doc2Vec訓練語料得到DStep 2 將D根據(jù)段落長度劃分為DL DS① for eachDj∈D② 根據(jù)Nj的大小劃分為:③ D = DL DSStep 3 將DL經(jīng)過激勵系數(shù)λ變?yōu)镈NewL①for eachDLj∈DL② DNewL=DL R(DL,λ)③ R(DL,λ)表示從DL中隨機選擇l×λ個列向量。Step 4 將DNewL和DS合并為DNewDNew=DNewL DS
設分類模型為f(x),一般的文本分類過程如下: ①Doc2Vec訓練得到D。②經(jīng)過分類模型f(D)訓練得到準確率。而本文選擇在過程①和②中間加入段落向量正向激勵方法,將D經(jīng)過處理變?yōu)镈New、使得f(DNew)在訓練過程中模型自動偏向長段落向量進行訓練,這在一定程度上解決了Doc2Vec算法存在的缺陷。在合適的激勵系數(shù)下,f(DNew)性能優(yōu)于f(D),使Doc2Vec算法能夠更好地結(jié)合分類模型以解決現(xiàn)實中的文本分類任務。
本文使用三個常用的文本分類數(shù)據(jù)集來驗證本文方法的有效性。三個數(shù)據(jù)集分別為Stanford Sentiment Treebank數(shù)據(jù)集(SST)[20]、Internet Movie Database數(shù)據(jù)集(IMDB)[21]和Amazon Reviews數(shù)據(jù)集。這些數(shù)據(jù)集中的段落長度差異顯著,其中SST數(shù)據(jù)集中的每個段落由一個句子組成,而IMDB和Amazon Reviews數(shù)據(jù)集中的每個段落都由多個句子組成。
SST數(shù)據(jù)集: 該數(shù)據(jù)集由8 544個訓練句子、2 210個測試句子和1 101個驗證句子組成。此外,其可以考慮分為5細粒度或2細粒度的分類任務。
IMDB數(shù)據(jù)集: 該數(shù)據(jù)集由來自IMDB的100 000條電影評論數(shù)據(jù)組成,其中25 000個帶標記的訓練集、25 000個帶標記的測試集和50 000個未帶標記的訓練集。
Amazon Reviews數(shù)據(jù)集: 該數(shù)據(jù)集從 Xiang Zhang的Google Drive目錄中提取,由4 000 000條Amazon中的客戶評論(輸入文本)和星級評定(輸出標簽)組成,其中標簽1是關(guān)于1星和2星的評論,標簽2是關(guān)于4星和5星的評論。
本文分別對三個數(shù)據(jù)集的語料使用Doc2Vec算法進行訓練并學習得到各自的詞向量和段落向量表示,然后通過卷積神經(jīng)網(wǎng)絡(LeNet-5網(wǎng)絡結(jié)構(gòu))、支持向量機(SVM)(C=0.1,kernel=‘RBF’)以及Logistic分類器(C=0.001,penalty=‘l2’)來預測各自的情感類型。我們在驗證集上使用網(wǎng)格搜索來確定最佳超參數(shù),超參數(shù)設置情況如表1所示。
表1 超參數(shù)設置
最終確定SST數(shù)據(jù)集的最佳窗口大小為8,其余兩個數(shù)據(jù)集的最佳窗口大小為10。分類器的輸入向量是兩個向量的連接,一個是通過PV-DBOW方法得到的400維向量,另一個是通過PV-DM方法得到的400維向量。其中特殊字符,如字符“,”“!”“?”會被當作一個正常的詞來對待。如果段落中的單詞個數(shù)少于窗口大小,本文會預先放置一個特殊的空單詞符號。
為了驗證長、短段落的段落向量在分類模型中的表現(xiàn)差異,本文通過實驗證明段落向量正向激勵方法的有效性。對比實驗劃分為兩組: 第一組不經(jīng)過任何處理,直接將Doc2Vec得到的段落向量矩陣輸入分類模型,第二組則是經(jīng)過段落向量正向激勵方法處理后的段落向量矩陣輸入分類模型。本文選擇較為簡單的分類模型SVM和Logistic,目的是最大限度地剔除模型超參數(shù)對預測準確率帶來的影響,從而更好地分析段落向量表現(xiàn)的差異性。
首先利用Doc2Vec訓練得到段落向量矩陣D,然后利用3.1節(jié)的段落向量劃分方法,獲得短段落向量矩陣DS和長段落向量矩陣DL,分別訓練SVM和Logistic回歸模型。采用獨立的測試集測試上述模型,得到的實驗結(jié)果如表2所示。為了避免實驗的偶然性,本文進行50次重復實驗并取各自準確率的平均值。
表2 重復實驗結(jié)果 (單位: %)
從表2的實驗結(jié)果可以發(fā)現(xiàn),輸入特征為DL的分類模型準確率均高于輸入特征為DS的分類模型,證明長段落向量表示比短段落向量表示更有助于提高分類準確率。
為進一步驗證段落向量正向激勵方法對分類模型性能的影響,本文進行如下對比實驗: ①使用原始段落向量矩陣(λ=0)作為輸入特征并訓練模型; ②使用本文方法(λ分別取0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,2,5)得到新的段落向量矩陣作為輸入特征訓練模型。由于這三個數(shù)據(jù)集的訓練樣本的各類別數(shù)都較為均衡,故只用交叉驗證得到的準確率作為評估指標。
實驗結(jié)果如表3所示,當增加了激勵系數(shù)之后,三個分類模型的性能得到了明顯的提升。但當激勵系數(shù)達到一定值時,準確率不再提高。在SST(2細粒度)實驗中,三個分類模型的最優(yōu)激勵系數(shù)均為0.3;在SST(5細粒度)實驗中,CNN、 SVM和Logistic的最優(yōu)激勵系數(shù)分別為0.4、0.5和0.6;在IMDB實驗中,CNN的最優(yōu)激勵系數(shù)為0.3,SVM和Logistic為0.1;在Amazon Reviews實驗中,CNN、SVM和Logistic的最優(yōu)激勵系數(shù)分別為0.3、0.2和0.1。IMDB和Amazon Reviews的最優(yōu)激勵系數(shù)均小于SST,這表明如果語料中的段落長度普遍較長,長段落向量的表示能力會接近短段落向量,即Doc2Vec存在的缺陷會因為語料段落長度的增加而得到一些緩解,從而只需要較小的激勵系數(shù)就能使分類模型的性能得到提升。此外,本文還發(fā)現(xiàn)最優(yōu)激勵系數(shù)通常在(0.1,0.5)之間。以上兩點有助于我們更快地找到當前語料所需要的最優(yōu)激勵系數(shù)。
表3 實驗結(jié)果匯總 (單位: %)
CNN、SVM以及Logistic分類器性能對比如表4所示??梢钥闯? ①在SST(2細粒度)實驗中,三者的準確率分別提升了1.49%、1.15%、1.07%; ②在SST(5細粒度)實驗中三者的準確率分別提升了2.29%、1.34%、0.99%;③在IMDB實驗中三者的準確率分別提升了0.85%、0.8%、0.61%; ④在Amazon Reviews實驗中三者的準確率分別提升了1.79%、0.8%、0.61%。因此,將Doc2Vec訓練得到的原始段落向量矩陣經(jīng)過段落向量正向激勵方法后,再放入分類模型訓練可以更好地提高文本分類準確率。
表4 不同模型數(shù)據(jù)集下的性能對比 (單位: %)
為進一步分析激勵系數(shù)λ的變化對分類模型性能的影響,我們把實驗結(jié)果表示成折線圖,如圖9至圖12所示。本文發(fā)現(xiàn)三種模型在三個數(shù)據(jù)集上的性能均隨著激勵系數(shù)λ的增大,呈現(xiàn)先上升再下降,最后趨于平穩(wěn)的趨勢。當激勵系數(shù)處于合適的范圍時,長段落的段落向量在分類模型中的地位正處于合理的范圍內(nèi),且短段落的段落向量也能在分類模型中發(fā)揮一定的效果。隨著激勵系數(shù)逐漸增大,短段落的段落向量在分類模型中逐漸失去影響力, 使得模型缺失了過多的短段落信息,從而出現(xiàn)分類模型性能下降的情形。如果激勵系數(shù)趨于無窮大,短段落便徹底在分類模型中喪失了作用,從而性能比λ=0時還有所下降。此外,我們還發(fā)現(xiàn),在IMDB和Amazon Reviews數(shù)據(jù)集實驗中三個模型的性能趨勢和SST基本一致,但是準確率波動程度較小,這可能是由于這兩個數(shù)據(jù)集的語料均由多個句子構(gòu)成,使得長短語料之間的包含關(guān)系對分類模型的性能的影響有所減弱。
圖9 SST(2細粒度)實驗結(jié)果
圖10 SST(5細粒度)實驗結(jié)果
我們又分析了本文方法對訓練時間的影響,結(jié)果如表5所示。因最優(yōu)激勵系數(shù)λ通常落在(0.1,0.5),本文主要分析了λ=0、λ=0.1以及λ=0.5時分類模型訓練所需的時間。通過比較,發(fā)現(xiàn)CNN模型訓練時間增加(6%,26%),SVM模型訓練時間增加(10%,31%),Logistic模型訓練時間增加(8%,30%),表明使用本文方法的模型所需的額外訓練時間均在可接受的范圍內(nèi),因此不在時間效率上評價本文方法的優(yōu)劣。
表5 訓練時間 (單位: s)
我們進一步探究了超參數(shù)Windows和Vector Size對本文方法的影響,表6、表7展示了Logistic模型上的結(jié)果,其中λ選用各個數(shù)據(jù)集對應的最優(yōu)激勵系數(shù)。在保證其他超參數(shù)一致的情況下,隨著Windows和Vector Size的變化,基準模型和正向激勵后模型的準確率出現(xiàn)一定波動,但是經(jīng)過本文方法的分類模型性能均得到了不錯的提升,表明Windows和Vector Size的變化不會影響本文方法在分類模型中的使用。
表6 Windows對本文方法的影響
表7 Vector Size對本文方法的影響
此外,將表6和表7實驗結(jié)果對比可以發(fā)現(xiàn): Windows的變化不會對模型性能帶來顯著的影響,但Vector Size維度過小,會顯著降低模型性能,這可能是由于向量維度過小,出現(xiàn)了欠擬合現(xiàn)象,因此選用合適的Vector Size對模型性能的提升至關(guān)重要。我們在CNN和SVM模型上重復了上述實驗,得到了類似的結(jié)果,由于篇幅的關(guān)系,不再贅述。
本文提出了一種基于段落向量正向激勵的文本分類方法,通過提升長段落的段落向量在分類模型中的地位,從而提高分類模型的性能。實驗結(jié)果表明,該模型可以有效提升模型分類性能,并比本文的對比方法(λ=0)取得了更好的效果,其中最優(yōu)激勵系數(shù)λ通常落在(0.1,0.5)。在未來的研究工作中,我們將重點從Doc2Vec算法內(nèi)部解決其缺陷,使其能夠更好、更快地得到段落向量,從而使模型性能獲得更大的提升。