王德志 梁俊艷
1(華北科技學院計算機學院 河北 廊坊 065201) 2(華北科技學院圖書館 河北 廊坊 065201)
文本數(shù)據(jù)多目標分類中,神經(jīng)網(wǎng)絡模型一般是基于經(jīng)典的多層感知器(Multilayer Perceptron,MLP)、卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)、循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)和長短期記憶網(wǎng)絡(Long Short-Term Memory, LSTM)[1-2]。通過對這些網(wǎng)絡進行修改和優(yōu)化,構建各種不同應用領域的文本分析神經(jīng)網(wǎng)絡模型。所有的神經(jīng)網(wǎng)絡模型均需要對輸入的文本數(shù)據(jù)進行預處理,把文本數(shù)據(jù)轉換為向量數(shù)據(jù)然后進行處理。而在文本數(shù)據(jù)轉換為向量的研究中,主要集中在詞向量模型上[3]。谷歌公司基于詞袋模型原理于2013年發(fā)布了Word2vec模型,它是將詞表征為實數(shù)值向量的高效工具, 利用深度學習的思想,通過大量數(shù)據(jù)訓練,把對應文本中詞處理簡化為K維向量空間中的向量運算,而向量空間上的相似度可以用來表示文本語義上的相似度[4-5]。2014年斯坦福大學學者提出了基于全局矩陣分解方法(Matrix Factorization)和局部文本框捕捉方法的GloVe模型,該模型利用了全局詞共現(xiàn)矩陣中的非零數(shù)據(jù)來訓練,而不是只用了某詞的局部窗口信息。Facebook于2016年開源了基于CBOW模型原理的利用上下文來預測文本的類別的詞向量與文本分類模型工具fastText,其典型應用場景是帶監(jiān)督的文本分類問題。fastText結合了自然語言處理和機器學習中最成功的理念,使用詞袋、n-gram袋表征語句和子字信息,并通過隱藏表征在類別間共享信息,從而提升自然語言情感分類的準確性和速度[6]。ELMo模型是AllenNLP在2018年8月發(fā)布的一個上下文無關模型,其是一種雙層雙向的 LSTM 結構[7]。2018年10月,谷歌公司發(fā)布了基于所有層中的左、右語境進行聯(lián)合調整來預訓練深層雙向表征的新語言表示模型BERT,其特點是可以更長的捕捉句子內(nèi)詞與詞之間的關系,從而提升文本預測的準確性[8-9]。這些模型都實現(xiàn)了文本分詞的向量化,從不同的角度對詞語進行了量化。但是,這些通用詞向量模型在相同的神經(jīng)網(wǎng)絡結構中能否體現(xiàn)出相同的性能,尚缺少對比分析。
Word2vec詞向量可以基于連續(xù)詞袋模型(CBOW)和跳字模型(skip-gram)獲得。其中CBOW模型是基于上下文來預測當前的詞,而skip-gram是基于當前的詞來預測上下文的詞,適用于大型語料庫中。在skip-gram模型中,通過給定的單詞wt來計算出上下文Swt=(wt-k,…,wt-1,wt+1,…,wt+k)。其中k表示上下文中單詞的數(shù)量,k≤n,n為文本的大小,則c-skip-n-gram模型為:
(1)
式中:c表示當前詞所在上下文的長短;n表示訓練文本的數(shù)量。其訓練目標函數(shù)采用最大平均對數(shù)函數(shù),表示為:
(2)
利用上述公式進行模型訓練,當樣本誤差最小時,訓練得到的每個單詞的輸入到隱藏層權值參數(shù)值就是該輸入詞的詞向量。
GloVe模型是一種基于詞共現(xiàn)矩陣的詞向量表示方法。在共現(xiàn)矩陣X中,坐標為(i,j)處的值xij表示目標詞wi與語料庫中上下文中詞wj共同出現(xiàn)的次數(shù),因此X為全局非零矩陣。GloVe模型采用最小二乘法作為訓練損失函數(shù),其表示如下:
(3)
(4)
式中:N為詞典的大小,wi和wj表示詞i和j的向量。bi和bj為矩陣X中i行和j列的偏移值。P(x)為加權函數(shù),實現(xiàn)對訓練中的低頻詞進行系數(shù)衰減操作,從而減少由于低頻詞造成的誤差。在式(4)中β為常量,根據(jù)實驗經(jīng)驗,一般為0.75。
fastText模型采用類似CBOW方法,采用三層網(wǎng)絡結構,即輸入層、隱層和輸出層。其中輸入層輸入的不是簡單的單詞數(shù)據(jù),而是對單詞進行深一步的分詞結構。設分析文本為S,其由n個單詞構成S={w1,w2,…,wn}。則輸入的第t個詞wt被進一步分解為k個子詞wt={c1,c2,…,ck},則最終輸入的訓練文本為:
(5)
該模型輸出為文本的標簽。在做輸出時模型采用分層Softmax,使用哈夫曼編碼對標簽進行處理,從而極大地降低了運算的復雜度。
模型的目標函數(shù)如式(6)所示。式中:N為語料庫數(shù)量;yn為第n個輸入文本對應的類別;f(x)為softmax損失函數(shù);xn為文本的歸一化處理值;A和B為權重矩陣。最終訓練得到輸入層到隱藏的權重參數(shù)就是分詞向量。
(6)
ELMo采用雙向LSTM神經(jīng)網(wǎng)絡模型,其由一個向前和一個向后的LSTM模型構成,目標函數(shù)就是取這兩個模型的最大似然數(shù)。其中,向前LSTM結構為:
(7)
反向LSTM結構為:
(8)
目標函數(shù)為:
(9)
ELMo首先通過訓練此模型完成一定的任務,達到要求,然后就可以利用輸入特定詞,通過上述公式獲得詞向量,即把雙向LSTM模型的每一個中間的權重進行求和,最終就得到詞向量。
BERT模型采用類似ELMo結構,采用雙向模型。但是它所使用不是LSTM模型,而是Transformer編碼器模型,其目標函數(shù)為:
P=F(wi|w1,…,wi-1,wi+1,…,wn)
(10)
BERT與傳統(tǒng)的注意力模型的區(qū)別在于,它采用直接連接注意力機制。通過多層注意力結構,實現(xiàn)多頭注意力能力。
為實現(xiàn)文本多目標分類目的,本文采用微博災害數(shù)據(jù)集為研究對象。微博災害數(shù)據(jù)集來自于CrisisNLP網(wǎng)站。其提供了2013年到2015年的2萬多條條災害相關的微博數(shù)據(jù),并對微博數(shù)據(jù)進行了分類標注。為了實現(xiàn)利用各類通用詞向量模型對相同災害數(shù)據(jù)集處理結果輸出格式的標準化,針對5種常用詞向量模型,采用離線詞向量數(shù)據(jù)集和詞向量生成網(wǎng)絡兩種模式處理災害數(shù)據(jù)集中的關鍵詞。其中,針對Word2vec、GloVe和fastTest三個模型采用官方提供的基于大量新聞信息訓練模型生成的通用詞向量數(shù)據(jù)集。通過查詢常用詞向量數(shù)據(jù)集的形式,在此數(shù)據(jù)集中查詢提取出災害數(shù)據(jù)集中對應的關鍵詞的向量值,并進行存儲。對于ELMo和BERT模型,由于沒有常用詞向量數(shù)據(jù)集,因此采用官方訓練好的模型參數(shù)構建詞向量神經(jīng)網(wǎng)絡模型,然后對災害數(shù)據(jù)集中的關鍵詞利用此神經(jīng)網(wǎng)絡生成對應的詞向量值,并進行存儲。為了實現(xiàn)標準化對比,5類模型最終生成的每個關鍵詞的詞向量維度為(1,300)。如果詞向量達不到此維度,則數(shù)據(jù)進行補零處理,從而保證所有模型處理完后每個關鍵詞都具有(1,300)維度。
針對微博災害數(shù)據(jù)集的詞向量維度和多目標分類要求,基于四種經(jīng)典模型(MLP、CNN、RNN和LSTM)分別設計四種多目標分類模型。
MLP模型采用三層結構,輸入層節(jié)點數(shù)目由詞向量維度及博文中詞個數(shù)構成,如式(11)所示。
N=K×MK=LwordM=max(count(textword))
(11)
式中:K代表詞向量維度采用固定值,根據(jù)分詞模型確定,M由博文中分詞的數(shù)量確定。根據(jù)微博災害數(shù)據(jù)詞向量數(shù)據(jù)集的維度,MLP輸入層為(1,50×300)個神經(jīng)元,中間層為(1,256)個神經(jīng)元,輸出層為(1,6)個神經(jīng)元。
輸出層函數(shù)采用softmax函數(shù),如式(12)所示,隱層輸出函數(shù)f2采用sigmoid函數(shù),w1和w2分別表示輸入層到隱層的全連接網(wǎng)絡權重和隱層到輸出層的權重。
f(X)=softmax(b2+w2(f2(w1X+b1)))
(12)
f2(a)=1/(1+e-a)
(13)
為了提升模型的泛化能力,設計模型的Dropout正則化參數(shù)為0.35,最終輸出層為(1,6)。
為了保障模型的運行效率,根據(jù)在災害數(shù)據(jù)集的數(shù)量和詞向量維度,CNN模型采用具有2層卷積層的一維卷積模型結構,如圖1所示。模型中卷積層為2層,卷積單元維度為(3,1)結構,輸出結果為Conv1D_1-out和Conv1D_2-out。最大池化層單元維度為(2,1)結構,輸出結果為MaxPooling_1-out和MaxPooling_2-out。在第2層最大池化層后是平鋪層(Flatten-out)和隱藏層(Dense-out),最后為輸出層(out-data)。
圖1 卷積神經(jīng)網(wǎng)絡
根據(jù)微博災害數(shù)據(jù)詞向量數(shù)據(jù)集的維度,CNN輸入層維度為(50,300)結構, 兩個卷積層激活函數(shù)采用“ReLU”函數(shù),輸出層激活函數(shù)采用“sigmoid”函數(shù),優(yōu)化器采用“Adam”。
循環(huán)神經(jīng)網(wǎng)絡采用序列式結構,當前單元的計算結果與前一個周期的單元結果建立關聯(lián)關系,獲得新的結果,同時為一個周期的單元結果提供輸入。如此循環(huán)構成遞歸神經(jīng)網(wǎng)絡模型。RNN采用m對n結構,如圖2所示。
圖2 遞歸神經(jīng)網(wǎng)絡模型
根據(jù)微博災害數(shù)據(jù)詞向量數(shù)據(jù),輸入層維度為(1,6),隱藏層維度為(1,256)結構,輸出層維度為(1,6)結構。隱藏層激活函數(shù)采用“ReLU”函數(shù),輸出層激活函數(shù)采用“sigmoid”函數(shù),優(yōu)化器采用“Adam”。為保證模型的泛化性,避免過擬合發(fā)生,Dropout正則化參數(shù)為0.35。
長短期記憶網(wǎng)絡主要為解決RNN網(wǎng)絡無長期記憶能力問題而提出。其主體結構與RNN網(wǎng)絡相同,但是為實現(xiàn)對數(shù)據(jù)的長期記憶,在LSTM神經(jīng)網(wǎng)絡中,每一個神經(jīng)元相當于一個記憶細胞,通過輸入閘門、遺忘閘門和輸出閘門實現(xiàn)控制記憶細胞狀態(tài)的功能,如圖3所示。
圖3 長短期記憶網(wǎng)絡神經(jīng)元結構圖
根據(jù)微博災害數(shù)據(jù)詞向量數(shù)據(jù),輸入層維度為(1,32)。隱藏層維度為(1,256)結構。輸出層維度為(1,6)結構。隱藏層激活函數(shù)采用“ReLU”函數(shù)。輸出層激活函數(shù)采用“sigmoid”函數(shù)。優(yōu)化器采用“Adam”。
本實驗進行了5個通用詞向量模型在4個多目標分類模型中的對比分析。實驗中共使用21 125條微博數(shù)據(jù),其中70%用來進行模型訓練,30%用來模型測試。
圖4展示W(wǎng)ord2vec模型在不同分類模型中的處理結果。可以看出,準確率最高為LTSM,CNN和MLP接近,最低為RNN。RNN出現(xiàn)了過擬合現(xiàn)象。CNN準確率波動較大。RNN在后半程的迭代周期,準確率提升明顯。
圖4 Word2vec模型結果
圖5展示GloVe模型在不同多目標分類模型中的處理結果??梢钥闯?,GloVe模型數(shù)據(jù)在CNN與MLP中性能接近,LSTM次之,RNN最低,RNN模型波動較大。LSTM在最后迭代周期準確率有提升。
圖5 GloVe模型結果
圖6展示了fastText模型在不同多目標分類模型中的處理結果??梢钥闯?, CNN具有較高的測試準確率。其他三種模型準確率相似。MLP和LSTM出現(xiàn)了過擬合現(xiàn)象,準確率變化不大。RNN具有明顯的波動性。
圖6 fastText模型結果
圖7展示了BERT模型在不同多目標分類模型中的處理結果。可以看出,BERT模型數(shù)據(jù)在RNN和LSTM中沒有出現(xiàn)過擬合現(xiàn)象。在測試準確性方面,RNN的結果是最低的。CNN據(jù)具有較好的線性增長和收斂性。
圖7 BERT模型結果
圖8展示了ELMo模型在不同多目標分類模型中的處理結果。可以看出,ELMo模型數(shù)據(jù)在神經(jīng)網(wǎng)絡訓練方面都出現(xiàn)過早收斂問題,測試數(shù)據(jù)的準確率基本相同,區(qū)分度不是很大。其中LSTM表現(xiàn)的數(shù)據(jù)變化最不大,沒有明顯的線性變化過程。
圖8 ELMo模型結果
通過上述模型的分析,可以看出相同的通用詞向量模型,在不同的多目標分類模型中的結果是不一樣的,其中以Word2vec模型表現(xiàn)為最好,GloVe和fastText模型具有相似的表現(xiàn),BERT模型在LSTM模型數(shù)據(jù)表現(xiàn)較理想。ELMo模型在相同神經(jīng)網(wǎng)絡初始參數(shù)條件下出現(xiàn)了過早收斂現(xiàn)象,測試數(shù)據(jù)性能變化不大。
圖9展示了4種分詞模型在MLP模型中的訓練結果比較??梢钥闯?,除ELMo模型外,其他的訓練數(shù)據(jù)較早地出現(xiàn)過擬合和現(xiàn)象。在測試數(shù)據(jù)方面,Word2vec的準確率遠遠高于其他4種模型。而ELMo的測試準確率是最低的。
圖9 MLP模型結果
圖10展示了4種分詞模型在CNN模型中的訓練結果比較??梢钥闯觯珺ERT和GloVe都出現(xiàn)了過擬合現(xiàn)象。BERT、fastText和GloVe的訓練數(shù)據(jù)準確率保持了較好的線性增長。在測試準確率方面,Word2vec具有最高的準確率,ELMo準確率最低,BERT和GloVe具有相似的準確率。
圖10 CNN模型結果
圖11展示了4種分詞模型在RNN模型中的訓練結果比較。除GloVe外,其他4種模型數(shù)據(jù)都沒有出現(xiàn)明顯的過擬合現(xiàn)象,尤其是ELMo、BERT和fastText模型具有相似的訓練數(shù)據(jù)。GloVe雖然訓練數(shù)據(jù)有一定的線性變化,但是測試數(shù)據(jù)卻出現(xiàn)了下降的現(xiàn)象,說明出現(xiàn)了一定的過擬合現(xiàn)象。
圖11 RNN模型結果
圖12展示了4種分詞模型在LSTM模型中的訓練結果比較。BERT模型訓練數(shù)據(jù)準確率有一定的線性增長,但是測試準確率卻出現(xiàn)了下降,說明出現(xiàn)了過擬合現(xiàn)象。而其他4種模型訓練數(shù)據(jù)準確率收斂較快,沒有明顯的線性增長。其中fastText與ELMo數(shù)據(jù)具有類似的訓練結果數(shù)據(jù)。
圖12 LSTM模型結果
通過上述分析可以看出,在MLP和CNN模型中,不同的分詞模型具有不同的性能參數(shù),雖然有些模型出現(xiàn)了過擬合現(xiàn)象,但是還保持較高的測試準確率。而RNN和LSTM模型,隨著沒有出現(xiàn)過擬合現(xiàn)象,但是模型的準確率數(shù)據(jù)收斂較快,跟后期訓練的迭代周期關系不大。而其中fastText和ELMo兩種模型RNN和LSTM中具有相似的結果。
圖13和圖14展示了不同自然語言分析模型的訓練時間和最后測試數(shù)據(jù)的準確率。從訓練時間上分析,Word2vec用時最長,GloVe模型用時最短。從測試數(shù)據(jù)結果分析,Word2vec模型準確率最高,ELMo模型準確率最低。Word2vec模型用的訓練時間最長,同時其測試數(shù)據(jù)準確率也是最高的。用時較少的是ELMo模型,但是其準確率在各個模型中變化不大,也是較小的。Word2vec模型在LSTM模型中測試數(shù)據(jù)獲得實驗的最高準確率,達到了0.934 8,而且模型訓練時間也遠遠小于MLP時間,略高于CNN模型。RNN模型雖然具有較短的訓練時間,但是各個詞分類模型在RNN上的表現(xiàn)不是很理想,一般都低于LSTM模型效果。
圖13 模型訓練時間
圖14 測試數(shù)據(jù)結果
為驗證模型在不同分類樣本中的正確情況,對實驗數(shù)據(jù)除準確率外也進行了精確率、召回率和F1值計算。其中精確率和召回率采用加權平均法,如式(14)和式(15)所示。
(14)
(15)
式中:αi為不同分類樣本占總樣本的比例;N為分類總數(shù),在本實驗中共有6個分類。根據(jù)精確率和準確率計算了F1值,如式(16)所示,綜合評價了模型的性能。實驗結果如表1所示。
F1=2×(PR×Rec)/(PR+Rec)
(16)
表1 精確率、召回率和F1值比較
可以看出,各詞向量模型在CNN模型上的分類結果精確率和準確率較高,差異不大,F(xiàn)1值較高。而各模型在RNN上F1值較小,主要是由于精確率較低造成的。相同詞向量模型在不同的分類模型中,一般F1值較低對應的準確率也較低,其中以RNN和LSTM表現(xiàn)較為明顯,主要是由于精確率較低造成的,其中以fastText在RNN上F1值最低。
為了進行對比分析,本實驗過程也在斯坦福情感樹銀行數(shù)據(jù)集(Stanford-Sentiment-Treebank)和亞馬遜評論數(shù)據(jù)庫(Amazon Review Dataset)進行了驗證,取得了相似的結果。但是準確率等指標相對微博災害數(shù)據(jù)集較低,區(qū)分度不明顯。可能原因是微博災害數(shù)據(jù)集上各分類數(shù)據(jù)分布較均勻,同時在文本隱含信息中具有較高的相似性。而另外兩個數(shù)據(jù)集通用性較強,文本隱含信息過多,分類結果不理想。
綜上所述,從綜合效果上看,Word2vec詞向量模型在LSTM網(wǎng)絡模型中表現(xiàn)出了最佳的性能。這可能有三方面的原因。首先,在災害數(shù)據(jù)集的預處理中,采用了基于詞頻的關鍵詞提取。這導致降低了分詞之間的上下文聯(lián)系,從而導致基于上下文關系的詞向量模型性能的下降,如fastText和ELMo模型。其次,由于LSTM神經(jīng)網(wǎng)絡模型具有長時記憶功能,通過迭代訓練,能夠發(fā)現(xiàn)訓練數(shù)據(jù)集中的共同屬性。因此,在特定領域數(shù)據(jù)集方面,對具有相同特點文本學習能夠體現(xiàn)出更好的性能。最后,就是Word2vec詞向量模型網(wǎng)絡體現(xiàn)結構特點,Word2vec沒有過多依賴上下文的關系進行詞分量,而是更多依靠多維度的信息描述方法。雖然過多的維度描述導致了詞向量數(shù)據(jù)存儲規(guī)模的增大,降低了處理速度,但是它具有更強的通用性,因此,在分詞上下文關系較弱的自然文本分析中能夠體現(xiàn)出更好的性能。
本文基于微博災害數(shù)據(jù)集,對五種通用詞向量模型在文本多目標分類中進行了比較分析。設計了MLP、CNN、RNN和LSTM多目標分類模型。通過實驗分析了五種通用詞向量模型在不同分類模型中的特點。實驗結果表明,Word2vec模型網(wǎng)絡體系結構由于提供了更多的文本隱含信息,因此在微博災害數(shù)據(jù)集情感分類中具有較高的準確性。下一步工作可以針對不同通用詞向量模型設計特殊的神經(jīng)網(wǎng)絡模型,提升多目標分類的準確率。