高佳希, 黃海燕
(華東理工大學信息科學與工程學院, 上海 200237)
隨著信息化社會的海量文本數(shù)據(jù)流轉,如何高效地從非結構化、信息量龐大的用戶評論中有效地挖掘隱藏的情感傾向變得極其重要[1-2]。情感本身是一個主觀的概念,涉及到人們對于某些人、事或物的看法、觀點、評價[3]。文本情感分析通常是指對文本中所蘊含的情感信息進行分析、總結的過程,又稱為意見挖掘、評價抽取等。文本情感分類是對文本的主觀信息進行分析,對文本所要表達的情感傾向性的好壞及其情感傾向強度進行判斷[4-5],例如在危險辨識系統(tǒng)中,通過預訓練-微調的方式建立事故案例文本的分類模型,實現(xiàn)對事故案例文本的自動分類[6]。
隨著機器學習算法的廣泛應用,基于機器學習算法處理文本情感傾向分析問題被廣泛提出。文獻[7]用樸素貝葉斯算法對文本進行訓練,提取詞性和位置關系作為文本特征,然后在分類階段引入布爾權重為所提取的特征詞分配不同的權重進行情感分類。文獻[8]用最大熵、支持向量機等多種經(jīng)典機器學方法,逐步提高分類準確率。文獻[9]通過對詞語所在語句的語境和該詞語與語句中其他詞語的依賴關系進行分析,構建了基于情感的二分類模型。
傳統(tǒng)的機器學習方法采用高質量的標注數(shù)據(jù)集來進行情感分析,準確率相對于基于情感詞典的方法更高,然而,傳統(tǒng)的機器學習方法需要高質量地選取和構造文本情感特征,當面對龐大且復雜的數(shù)據(jù)集時,情感特征并不能得到很好的構造與選取[10-11]。隨著深度神經(jīng)網(wǎng)絡的發(fā)展[12],研究者們采用深度學習算法處理文本情感分析問題時,在解決文本數(shù)量龐大的數(shù)據(jù)集上取得了優(yōu)異成果[13]。文獻[13]用字級別的詞向量來表示文本的特征,然后用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)模型對文本進行訓練,得到文本的情感分類。文獻[14]提出雙向長短時記憶網(wǎng)絡(Bi-directional Long Short-Term Memory,Bi-LSTM)對已經(jīng)向量化文本進行訓練獲得其文本特征,然后利用自注意力(self-attention)機制動態(tài)地調整所獲取的文本特征的權重,利用Softmax分類器實現(xiàn)對文本的情感歸類。文獻[15]將待分類文本采用文檔主題生成模型( Latent Dirichlet Allocation,LDA)進行主題分類訓練,然后將所得的文本特征矩陣作為輸入,傳遞到門循環(huán)單元(Gate Recurrent Unit,GRU)和 CNN 的融合模型中對文本的情感傾向進行分類。文獻[16]通過深度學習和情感詞典兩種方法分別進行特征提取并情感分類,用Transformer 框架算法得到評論文本的特征詞位置特征映射以及文本語義,之后采用自注意力機制調整特征的權重,得到的文本特征融合實現(xiàn)文本的情感分類。
深度神經(jīng)網(wǎng)絡文本模型在處理文本情感分析問題上是較好的解決思路,但長短時記憶網(wǎng)絡(LSTM)模型的處理速度較慢且容易導致梯度爆炸等問題[17],而CNN 模型由于最大池化機制會過濾大量文本底層信息[18],面對多類型語料庫時難以對語義充分編碼,同時針對情感分析的文本預處理中只能去除通用的停用詞,而不能去除某領域專有名詞的問題。本文構建了一種基于TF-ⅠDF(Term Frequency-Ⅰnverse Document Frequency)和多頭注意力Transformer模型的文本情感分析方法,實現(xiàn)了對多類別評論語料庫的文本情感準確分析。在文本預處理階段,利用TF-ⅠDF 算法對評論文本中不影響文本情感傾向的停用詞進行過濾,對文本進行初步特征提取,之后利用多頭注意力Transformer 模型的編碼器對向量化后的文本進行訓練并合并多個獨立注意力池化層,得到深層文本特征,進而更好地分析文本情感,在具有多類型文本的電商、外賣評論數(shù)據(jù)集上進行了驗證。
詞向量空間模型在文本處理、語義相似度分析、信息檢索等領域被廣泛使用。由于文本信息不能作為神經(jīng)網(wǎng)絡模型的輸入數(shù)據(jù),因此,在詞向量空間模型中將文本轉變?yōu)樵~向量空間中的數(shù)值向量形式,一個文本被看作是由若干個不同的術語構成的集合,每個術語代表文本的一個維度且可根據(jù)其在文本中的重要性進行權值化。假設文本Dj由n個異構維度組成,則文本Dj可以表示成一個n維詞向量,即Dj=(Wj1,Wj2,···,Wjn) ,其中Wji代表第i個術語在文本Dj中的權重。
評論數(shù)據(jù)集文本信息包含不同類別的詞語,有些詞語對文本的情感傾向沒有任何影響,且占用較大空間內存,導致模型訓練時間倍增。因此,在將文本轉化為詞向量前,需要對這一部分詞進行刪減。自然語言處理(NLP)領域一般通過停用詞詞典來剔除停用詞,再對復現(xiàn)次數(shù)進行統(tǒng)計,保留詞頻較大的詞語。當評論文本為某一類產(chǎn)品的評論時,如對書籍的評論中會大量出現(xiàn)“目錄”、“回頭客”等信息,這些信息對文本情感幾乎沒有影響。當產(chǎn)品類別單一時,可采用手動添加停用詞的方法,但當商品類別復雜如電商評論文本時,由于包含產(chǎn)品類別較多,手動添加停用詞是一項非常復雜、繁瑣的工作。因此,采用基于TF-ⅠDF 算法去除停用詞,對多類別評論文本通道中的停用詞進行刪選,其預處理流程如圖1 所示。
圖1 TF-ⅠDF 語料預處理流程Fig.1 TF-ⅠDF data preprocessing process
TF-ⅠDF 算法以統(tǒng)計的形式對文本關鍵詞進行數(shù)據(jù)挖掘,評估文本中某些詞語在整篇文本中的重要程度。當某個字或詞出現(xiàn)在某個文本中的頻率很高,但出現(xiàn)在同一數(shù)據(jù)庫的其他文本中頻率又很低,那么就認為這個詞能夠體現(xiàn)出該文本的特征。TF 是詞頻,指某個詞語在當前文本中出現(xiàn)的次數(shù);ⅠDF 指逆文本頻率指數(shù),是文本中出現(xiàn)某個詞語的文本數(shù)在數(shù)據(jù)集中所占的比例?;赥F-ⅠDF 算法的文本預處理算法步驟為:
步驟1 對輸入文本進行分詞處理,分詞后得到文本(j):
步驟2 根據(jù)詞(wi)在文本j中出現(xiàn)的次數(shù)ni j計算其TF 值:
步驟3 在數(shù)據(jù)集中查找所有包含wi的文件數(shù),記為di,并根據(jù)數(shù)據(jù)集大小D計算wi的ⅠDF 值:
步驟4 根據(jù) TFij, IDFij所得結果,計算詞語wi的TF-ⅠDF 值。
通過式(1)~式(4)可得到文本j中所有詞語的TF-ⅠDF 值,之后由大到小輸出文本。若評論語料庫采用傳統(tǒng)的文本預處理方法,會導致保留下的詞語包含大量產(chǎn)品的專有名詞,因此采用TF-ⅠDF 算法進行文本預處理,得到詞語云圖,從而篩選出更能表達出文本的情感特性,大幅提高后續(xù)模型對文本解碼的效率。
自注意力機制是Attention 機制的一種類型,又稱內部注意力機制,是一個與單個序列的權重系數(shù)以及該序列所在位置相關的注意力機制。在語義解碼過程中進行尋址進程,向量化評論文本數(shù)據(jù)輸入時,自注意力機制首先將輸入的文本轉化成嵌入向量的形式,然后再根據(jù)嵌入向量得到查詢向量(Q),鍵向量(K)和值向量(V),當Q確定時,根據(jù)Q與K之間的相關性,就可以找到與其所對應的V,從而可以得到該注意力機制的最終輸出值。
將自注意力機制的工作過程劃分為3 層,其具體計算流程如圖2 所示,其中 sim 表示相似性,a表示權重系數(shù),A表示注意力值。
圖2 自注意力機制的具體計算流程Fig.2 Specific calculation process of the self-attention mechanism
自注意力機制根據(jù)Q與K的相關性計算所對應的V,其中相似性計算包含點積模型、放縮點積模型、雙線性模型等,其計算公式分別如式(5)~式(7)所示,其中d為向量的維度。
之后進行歸一化處理,通過引入函數(shù)對上述得到的權重進行歸一化處理,可以使重要元素的權重更加突出。以Softmax 函數(shù)為例,值向量對應的權重系數(shù)為:
將權重系數(shù)ai與對應的值向量V進行加權計算,獲取最終的注意力值:
多頭注意力機制(Multi-head-attention)也是注意力機制的一種,由多個Self-attention 機制交互形成,其結構如圖3 所示,其計算表達式為:
圖3 多頭注意力機制的結構圖Fig.3 Structure diagram of multi-head attention mechanism
其中, headh為多頭注意力機制第h個頭計算得到的注意力值,其計算方法與自注意力機制計算方法(式(9))相同;WO為注意力機制層的權重矩陣。相對于單一的自注意力機制只能從整體上對進行注意力計算,多頭注意力機制可以通過對K,Q,V的各維度進行線性映射的方法,得到多組不同的K,Q,V所對應的值向量,將映射后得到的值向量進行拼接后,再一次進行注意力映射,得到最終的值向量輸出,實現(xiàn)不同序列位置的不同子空間的表征信息都能夠用來進行數(shù)據(jù)處理,從而避免了單一注意力機制在去均值操作時模型丟失現(xiàn)象的發(fā)生。
Transformer 模型最早提出于2017 年,是GPT(Generative Pre-Training)模型與BERT(Bidirectional Encoder Representation from Transformers)模型的基礎。Transformer 模型采用encoder-decoder 架構(圖4),圖4 所示的N為編碼器或解碼器的個數(shù), σ 為sigmod 函數(shù)的輸出值。在解碼塊及編碼塊內部完全采用注意力機制代替?zhèn)鹘y(tǒng)深度學習中的卷積神經(jīng)網(wǎng)絡(CNN)和循環(huán)神經(jīng)網(wǎng)絡(RNN)網(wǎng)絡。Transformer模型在訓練文本時不需要循環(huán),而是并行處理所有文本,同時Transformer 模型內部的注意力機制還可以將距離較遠的單詞與當前單詞結合起來,大大提高了文本訓練的速度。
圖4 Transformer 模型結構圖Fig.4 Structure diagram of transformer model
由于Transformer 模型內部編碼器不包含卷積神經(jīng)網(wǎng)絡和遞歸循環(huán)網(wǎng)絡,舍棄了卷積操作而且不具備對文本時序的處理能力,這將導致詞語在文本中的位置發(fā)生變化時,注意力機制的計算結果不會產(chǎn)生任何變化。因此,在多頭注意力Transformer 模型中引入了位置編碼機制,在文本輸入Transformer 模型之前,對詞語的位置進行編碼,得到詞語的位置嵌入,將其余詞語本身的詞嵌入進行相加作為編碼器和解碼器的輸入,詞語位置嵌入(PE)的計算公式為:
其中, pos 為位置信息,i為維度索引,dmodel為向量的維度。通過式(11)將詞語所在的位置映射為一個dmodel維的位置向量。由式(12)三角函數(shù)積化和差公式可知,位于 pos+m位置的詞語,其位置向量可以表示為 pos 位置向量的線性變換, 因此,使用式(10)計算詞語的位置嵌入,不僅可以得到詞語的絕對位置信息,還可以得到詞語的相對位置信息。
本文不需要生成額外的其他文本形式,因此只需要使用Transformer 模型的編碼器結構,編碼器由多個相同的編碼塊組成,編碼塊則由多頭注意力層和前饋神經(jīng)網(wǎng)絡(Feed-forward Neural Networks,F(xiàn)NN)兩部分構成,其結構如圖5 所示。
圖5 多頭注意力Transformer 編碼器結構Fig.5 Encoder structure of multi-head-attention transformer
多頭注意力層是編碼塊的第一層,它由多個縮放點積自注意力機(Scaled-dot-product-attention)組成,當輸入為x時,多頭注意力層通過h個不同的線性變換對x的查詢向量Q,鍵向量K,值向量V進行投影,最后將不同的注意力機制值拼接。多頭注意力層的輸出同公式(10),其中:
其中,Z為前饋神經(jīng)網(wǎng)絡的權重系數(shù);W1,W2為前饋網(wǎng)絡的權重;b1,b2為前饋網(wǎng)絡的偏置。
基于以上框架設計思路,本文使用TF-ⅠDF 算法和多頭注意力Transformer 模型對評論文本所蘊含的情感傾向進行分析實驗。首先利用TF-ⅠDF 算法對文本含義影響較小的詞語進行過濾,并將過濾后的評論文本轉化為詞向量形式,然后輸入多頭注意力Transformer 模型進行迭代訓練獲得文本特征,最后由分類器softmax 根據(jù)所獲得的文本特征對文本進行正例(POSⅠTⅠVE)和負例(NEGATⅠVE)分類。
本實驗在 Ⅰntel(R) Core(TM) i7-8750 CPU @ 2.20 GHz 和Windows10 64 位操作系統(tǒng)的設備上進行,運行環(huán)境為Anaconda 4.7.10。為防止訓練過程抖動,優(yōu)化方法采用Adam 算法,實驗采用earlystopping防止過模型擬合,表1 列出了具體的超參數(shù)。
表1 實驗超參數(shù)Table 1 Experimental hyperparameters
選用waimai_10k 語料庫和電商評論語料庫兩種多相異類型的數(shù)據(jù)集進行實驗,waimai_10k 語料庫來源于某外賣平臺的評論信息,是一個多類型、不均衡的數(shù)據(jù)集,包含已標注的 11 987 條評論,其中NEGATⅠVE 評論7 987 條,POSⅠTⅠVE 評論4 000 條。電商評論語料庫包含多種商品類型,包含62 774 條已標注的電商評論信息,其中POSⅠTⅠVE 評論31 728條,NEGATⅠVE 評論31 046 條。為方便記錄,waimai_10k 語料庫記為Wm_10k,電商評論語料庫記為Ec_60k。為了充分驗證本文算法的檢測效果,選擇全部原始數(shù)據(jù)集作為實驗數(shù)據(jù),且不預先進行任何特征處理或非平衡數(shù)據(jù)處理。將兩種語料庫數(shù)據(jù)集的實驗數(shù)據(jù)按照比例劃分為訓練集、驗證集和測試集,訓練樣本約占70%,驗證樣本約占10%,測試樣本約占20%。
3.2.1 評價指標 對于waimai_10k 語料庫和電商評論語料庫,本實驗采用損失函數(shù)值(Loss)、準確率(Accuracy)、召回率(Recall)、精確率(Precision)、F1值等作為模型泛化能力評價指標,具體計算公式如下:
式(16)中,C為文本特征向量c的集合;p?c、pc分別為文本真實、預測的極性標簽;θ為模型訓練過程中的參數(shù); Θ 為θ的集合;λ為正則化L2 參數(shù)(L2 為范數(shù)最小平均誤差)。式(17)~式(20)中TP 表示正例預測為正例的個數(shù),F(xiàn)P 表示負例預測為正例的個數(shù),F(xiàn)N 表示正例預測為負例的個數(shù),TN 表示負例預測為負例的個數(shù)。為了更好地描述模型準確率、召回率、精確率以及F1 值等評價指標,引入了混淆矩陣的概念。
3.2.2 文本長度指標(Maxlen) 考慮到模型輸入的樣本長度對最終結果有較大的影響,如果輸入樣本的長度設定值過大,則需要向數(shù)據(jù)中填充的零過多,如果輸入樣本的長度設定值太小,數(shù)據(jù)需要舍棄的信息又太多。為了得到較為準確的數(shù)據(jù),對分詞后數(shù)據(jù)集中所有的評論文本的長度進行統(tǒng)計,得到長度分布如圖6 所示??梢钥闯鲈谡Z料庫Wm_10k和Ec_60k 樣本數(shù)據(jù)中,85%的文本書樣本的Maxlen在20 左右,因此選定作為TF-ⅠDF 算法中的詞語數(shù)。
圖6 樣本長度分布圖Fig.6 Diagram of sample length distribution
3.2.3 訓練次數(shù)指標 在多頭注意力Transformer模型中,若訓練次數(shù)(Epoch)太少,情感分類的準確率會太低;訓練次數(shù)太多,會造成時間和內存的浪費。因此,本文在輸入樣本數(shù)(Maxlen)為20 的情況下,對訓練次數(shù)進行了實驗,并對每次訓練的損失函數(shù)值、準確率進行了記錄,結果如圖7 所示。當訓練次數(shù)超過14 次時,分類的準確率與損失函數(shù)值的變化率已擬合,因此,綜合訓練時間及運行所占用內存考慮,最終實驗的訓練次數(shù)選為14 次。
圖7 不同訓練次數(shù)的準確率(a)與損失函數(shù)(b)Fig.7 Accuracy (a) and loss (b) of at different training numbers
本文提出的基于TF-ⅠDF 和多頭注意力Transformer模型的參數(shù)設置為:Maxlen 為20,訓練次數(shù)為14,全連接層輸出維度為3,優(yōu)化器為Adam。將本文模型與LSTM、GRU、Att-BiLSTM 、Att-BiGRU、Transformer等模型進行對比,實驗結果如圖8 所示。相對于LSTM、 GRU 等算法,利用基于Transformer 模型算法處理情感分析不僅分類結果更加準確,在訓練時間上也明顯優(yōu)于 LSTM、BGRU 等算法。
圖8 不同模型的實驗對比曲線Fig.8 Comparison curves of model experiments
以Ec_60k 數(shù)據(jù)集為例,本文模型的準確率達到了98.17%,比LSTM、GRU、Att-LSTM、Att-BGRU和Transformer 模型分別提高了6.51%、6.31%、5.41%、5.02%、1.33%。通過圖8 可以看出,本模型第一次訓練結束的準確率就明顯高于其他幾種文本情感分析模型。此外,從準確率的變化過程來看,本模型的收斂速度明顯快于其他幾組模型。同時實驗均設置了不同文本評論數(shù)據(jù)集Wm_10k 作為對照組,凸顯出本文算法的有效性,且在更大量數(shù)據(jù)集上有更優(yōu)的表現(xiàn)。
為進一步驗證評估本文提出的基于TF-ⅠDF 與多頭注意力Transformer 文本情感分析模型的性能,將其與LSTM、Att-BiLSTM 等模型在情感分析任務中的精確率、召回率以及F1 值進行對比,結果如表2所示。本模型的文本情感分析模型在精確率、召回率及F1 值上都取得了最大值。
表2 不同模型的評價指標Table 2 Evaluation indicators of different model
構建了一種基于TF-ⅠDF 和多頭注意力Transformer模型的文本情感分析模型。在文本預處理時,引入TF-ⅠDF 算法代替?zhèn)鹘y(tǒng)分詞及去除停用詞的工作,對評論文本中停用詞進行過濾,進而將過濾后的文本向量化后,作為多頭注意力Transformer 模型的輸入進行訓練及分類。通過在多類型評論文本的電商和外賣評論語料庫上進行實驗,證明了該方法處理多類型文本情感分類問題的可行性,相較于LSTM、GRU、Att-BiLSTM、Att-BiGRU 和Transformer 等模型,本文所提出的基于TF-ⅠDF 和多頭注意力Transformer的文本情感分析模型可更準確地實現(xiàn)文本的情感分類。