苗小愛 冷雪亮 邵婉露
摘? 要: 情感分析是自然語言處理(NLP)中十分重要的環(huán)節(jié),隨著網(wǎng)絡發(fā)展人們在網(wǎng)絡生活中留下的大量情感評論信息。已有的研究大量使用循環(huán)神經(jīng)網(wǎng)絡(RNN)和卷積神經(jīng)網(wǎng)絡(CNN)做情感分析。近期注意力機制在NLP領域被廣泛使用,并取得突破性進展。為了改善傳統(tǒng)模型,充分利用網(wǎng)絡評論數(shù)據(jù),結合長短時記憶網(wǎng)絡(biLSTM),CNN,并使用Transformer機制構建新模型。新模型中,biLSTM編碼雙上上下文信息,然后CNN部分模擬Text-CNN使用三個不同大小的窗口進行卷積獲取句子間的雙向信息,最后使用沒有前饋操作的Transformer編碼器代替?zhèn)鹘y(tǒng)Max-pooling操作避免信息損失。該模型簡稱為Multi-Model Stack Neural Network(MMSNN)。與傳統(tǒng)biLSTM基線模型和Text-CNN模型在IMDE數(shù)據(jù)集上進行對比,MMSNN在準確率和損失上均獲得最好的效果。
關鍵詞: 自然語言處理;情感分析;transformer;Text-CNN;BiGRU
中圖分類號: TP183? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.036
本文著錄格式:苗小愛,冷雪亮,邵婉露. 基于多模型的混合架構情感分析[J]. 軟件,2020,41(09):133136
【Abstract】: Sentiment analysis is a very important part of natural language processing (NLP). With the Internet, people send a lot of sentiment comment information in online life. Existing researches make extensive use of recurrent neural networks (RNN) and convolutional neural networks (CNN) for sensory analysis. The attention mechanism has been widely used in the NLP field recently, and has achieved breakthrough development. In order to improve the traditional model, make full use of network comment data, combined with long and short time memory network (biLSTM), CNN, and use the Transformer mechanism to build a new model. In the new model, biLSTM encodes double-up context information, then CNN partially simulates Text-CNN to convolve with three windows of different sizes to obtain bidirectional information between sentences, and finally uses a Transformer encoder without feedforward operation instead of traditional Max-pooling Operation to avoid loss of information. The model is referred to as Multi-model Stack Neural Network (MMSNN) for short. Compared with the traditional biLSTM baseline model and Text-CNN model on the IMDE data set, MMSNN achieves the best results in both accuracy and loss.
【Key words】: Natural language processing; Sentiment analysis; Transformer; Text-CNN; BiGRU
0? 引言
隨著社交軟件的多樣化,網(wǎng)絡上的情感數(shù)據(jù)規(guī)模迅速增加,這些文本在各種研究科開發(fā)中廣泛使用,因此情感分析任務在自然語言處理中的一個重要方向?,F(xiàn)有基本模型的問題是:(1)使用RNN模型容易出現(xiàn)梯度爆炸或梯度消失問題。(2)雖然在序列問題上CNN模型(Kim等人[1])能取得很好的效果,但是由于池化操作容易造成信息損失。(3)最近的Transformer機制[2]在NLP領域大放光彩,但是由于結構過于復雜難以訓練,給普通研究者帶來困難。
因此,為了結解決上述問題,提出MMSNN模型并在IMDE數(shù)據(jù)集上取得優(yōu)異的結果。MMSNN模型使用CNN模型zhang[3]等人提出的多通道Text-CNN,這種CNN可以使用不同的窗口獲得不同長度的文本卷積信息,從而提取到更全面的文本信息進行計算,然后使用改自Transformer的編碼器代替池化操作。這里刪除編碼器的前饋層只使用Attention機制。
模型構建及貢獻如下:
(1)將位置信息和使用Word2Vec獲得文本信息相加獲得嵌入矩陣。
(2)使用biLSTM獲取雙向上下文信息,計算詞義和詞間關聯(lián)。
(3)使用3個不同窗口大小的卷積計算句子間的信息以及句子間的聯(lián)系。
(4)修改并使用Transformer的編碼器分別捕獲三個卷積操作后的編碼信息。
(5)將信息傳輸?shù)饺B接層進行線性映射計算文本情感類別。
為了測試模型的普適性將模型在一個在情感分析任務上十分常用的電影評論數(shù)據(jù)集IMDB進行訓練。這是一個二分類電影評論數(shù)據(jù)集,通過在這個數(shù)據(jù)集上的實驗結果,與之前一些經(jīng)典模型進行對比,發(fā)現(xiàn)MMsNN模型在情感分析方面更有優(yōu)勢,效果更好。
1? 相關工作
自然語言處理領域近些年來迎來很多研究者的研究,并且取得了突破性的進展。在使用RNN模型的研究,長短期記憶網(wǎng)絡(LSTM[4])和門控循環(huán)單元(GRU),以及在此基礎上改進的雙向RNN模型BiLSTM和BiGRU,在各類NLP任務中都有十分廣泛的應用。后來有研究者使用一維CNN來做文本分類,但是效果一般,CNN[5]在文本處理時對序列文本的處理效果較好。Kim提出采用一個靜態(tài)通道和一個動態(tài)通道的雙通道CNN,更好的計算語言內容并且在當時獲得很好的效果,緊隨其后,Zhang等人提出的多通道不同窗口的文本分類算法,在kim的基礎上進行了各種實驗和優(yōu)化實現(xiàn)了更好的效果。
Attention模型開始被Bahdanau等人[6]用到了機器翻譯領域進行文本自動對齊,這大大提高了長文本的翻譯準確率。Vaswani等人提出了基于Mult-Head- Attention的Transformer模型,開始在機器翻譯中取得最好的結果后來廣泛應用到其他NLP任務中。最近以Transformer為基礎改進的模型出現(xiàn)很多,由Dai等人[7]提出了Transformer-XL模型,后來Radford等人[8]提出的GPT2和Devlin等人[9]提出的BERT模型取得了十分優(yōu)秀的效果。然后在BERT的基礎上進行改進又獲得一系列優(yōu)秀的模型,如XLNET[10]等。MMSNN模型使用改進Transformer的編碼器模仿替代池化這一工作,并取得很好的效果。最近的工作[11]、[12]和[13]都利用了深度學習做文本處理。
2? 模型設計
MMSNN的嵌入層是將內容嵌入和位置嵌入信息將其做元素加操作。將BiLSTM放到嵌入層之后作為編碼器來收集雙向上下文詞義信息,然后使用Text- CNN的三個通道進行卷積,將卷積后的結果放入改進自Transformer編碼器的結構捕獲關鍵信息。將以上結果連接放入到全連接層,最后全連接層計算的矩陣信息傳入到線性層使用Sigmoid函數(shù)得出分類結果。
2.1? BiLSTM
LSTM模型是由t時刻輸入,單元狀態(tài),候選單元狀態(tài),隱藏狀態(tài),遺忘門,記憶門,輸出門組成。單向LSTM的計算過程為,通過對單元狀態(tài)中信息遺忘然后記憶新的信息傳遞對后續(xù)時刻計算有用的信息,丟棄無用信息。通過上個時刻的隱藏狀態(tài)和當前輸入計算出來的遺忘門,記憶門,輸出門來控制當前時間步的隱藏層狀態(tài),以此獲得長期依賴。其計算過程如下:
BiLSTM就是通過將上述過程中兩個方向捕獲的信息連接起來,將一段文本兩個方向的信息結合起來編碼出其中潛在表達的信息。表示如下:
2.2? 修改的Transformer編碼器結構
Transformer結構在各項NLP任務上均得到應用,僅使用Transformer編碼器或者Transformer解碼器的網(wǎng)絡模型都取得最好的成績。因此參考膠囊網(wǎng)絡的初衷將修改后的Transformer編碼器作為替換Max-pooling的結構從而加強網(wǎng)絡效果。MMsNN中只使用了Transformer的編碼器。Transformer的編碼結構是由6個相同的隱藏層構成,每一層包含兩個子層,第一個子層是多頭注意力層(Multi-Head Attention)第二個子層是一個簡單的全連接層。其中每個子層都進行了殘差連接和歸一化操作。我們的改進是減少編碼器層數(shù),去掉掩蔽和前饋層,不再作為預訓練使用,而是用來計算雙向句子信息。
Transformer使用了Scaled Dot-product Attention操作,它的輸入由維度為d的Query(Q)和Key(K)以及Value(V)組成,計算Key與Query的點積,并應用softmax函數(shù)獲得值的權重。其公式表示如下:
最后Transformer的multi-head attention則是通過h個不同的線性變換對Q,K,V進行投影,最后將不同的Attention結果拼接起來。其公式化表示如下:
2.3? Text-CNN
Zhang等人提出的多通道CNN改自Kim提出的雙通道CNN算法中,證明采取微調策略(Non-Static)的效果比固定詞向量(static)的效果要好。MMSNN模型使用的的是經(jīng)過微調策略的3通道CNN算法。經(jīng)過3個不同大小窗口進行卷積收集的信息更加全面.
最終使用的Text-CNN是將Max-pooling替換為Transformer的編碼器結構,另一個處理是將不同窗口的卷積結果處理為能夠表現(xiàn)卷積結果最優(yōu)的相同尺寸的結果,然后傳入修改自Transformer的編碼器。
2.4? 嵌入層
同現(xiàn)在大多數(shù)工作一樣,在內容嵌入之外還加入了位置嵌入,因為一種語言中的情感表達往往跟句子在不同位置所使用的情感詞匯有關。MMSNN模型使用的嵌入方法是在Transformer中提出的位置嵌入的算法,嵌入位置分奇偶,偶數(shù)位置嵌入是采用正弦計算,奇數(shù)位置嵌入采用的是預先計算。其具體算法如下:
pos表示位置,i是第幾個位置。位置編碼的每個維度對應于正弦曲線。我們選擇此函數(shù)是因為我們假設它會允許模型輕松學習相對位置,因為對于任何固定的偏移量k,都可以表示為的線性函數(shù)。
2.5? 最終模型
MMSNN模型綜合上述三個模塊,將上述三個模型作為我們所設計模型的子層。首先是位置嵌入和內容嵌入的加和作為嵌入層,然后使用Text-CNN的三個不同窗口的卷積計算句子間聯(lián)系,接著使用修改后Transformer編碼器捕獲重要信息。最后將獲得信息輸入到線性層做文本分類并使用交叉熵函數(shù)做損失函數(shù)然后使用Adma進行優(yōu)化。我們的模型如下:
(1)數(shù)據(jù)集位置嵌入加上內容嵌入的和作為嵌入層向量,這里使用按元素加的方法。
(2)使用BiLSTM來編碼文本詞義信息,同時biLSTM結構來獲取雙向文本的相關性。
(3)使用多通道不同窗口大小的CNN獲得BiLSTM編碼的上下文信息,經(jīng)過計算得到更為全面的情感序列信息。
(4)使用修改自Transformer的編碼器替換卷積層之后的池化操作,將卷積結果進行解碼,在訓練中捕獲文本的重點信息。
(5)將捕獲的信息傳遞到一個線性層使用Sigmod函數(shù)計算出得分和結果預測進行分類。然后經(jīng)損失計算和優(yōu)化操作計算網(wǎng)絡權重。
3? 實驗結果
3.1? 數(shù)據(jù)集
IMDB數(shù)據(jù)集:原始數(shù)據(jù)集包括訓練集,測試集,和沒有標簽的數(shù)據(jù)。訓練集25000條,正負各12500條。測試集25000條,正負各12500條。本文將測試集進一步劃分為驗證集和測試集。
3.2? 對比試驗
對比試驗有兩個,一個是基本的基于BILSTM和全連接層的的文本處理方法,第二個是Text-CNN,一個三個不同窗口的卷積神經(jīng)網(wǎng)絡。對比實驗的描述如下:
BiLSTM:作為基準實驗,只是用了biLSTM和全連接層做文本分類,用來測試biLSTM做RNN結構的對比的分類效果。
Text-CNN:使用三通道的一維卷積神經(jīng)網(wǎng)絡上,利用3個不同大小的的卷積窗口進行卷積操作,然后將三部分結果進行最大池化進行連接做文本分類。
3.3? 實驗設置
MMSNN使用了兩層結構,第一層是一個BiLSTM層每個單向是100個神經(jīng)元,連接成一個200維的雙向上下文信息。第二層有兩個子層,第一個子層是CNN,有三個通道,每個通道有各自的窗口,大小分別是2、3、4,過濾器大小為200。第二個子層是修改后的Transformer編碼器,和基本的Transformer編碼器結構一樣有8個head,然后Transformer中進行了Dropout為0.1的正則化運算,最后是一個規(guī)范化層。我們實驗的批次大小為128,嵌入層的維度大小為200,進行12輪訓練。經(jīng)過上述操作可以得出表示這個文本情感的重要信息,先將這個結果使用大小為0.5的dropout正則化,然后將這信息放入到一個線性層,使用了L2正則化,加上上述兩層交叉熵損失來計算我們的模型損失。
3.4? 實驗結果分析
將MMSNN的模型和對比模型進行對比,可以看到如下所示的結果(如圖2所示),相比基線模型BiLSTM+Full_connection和Text-CNN而言MMSNN模型有明顯的優(yōu)勢,所以從結果來看MMSNN使用的帶有修改的Transformer編碼器的模型效果能夠取得更好的效果。MMSNN的評價標準是分類的準確路和分類損失,實驗結果圖2所示。
分析上述實驗結果圖,BiLSTM和MMSNN模型的實驗的訓練準確率的增長幅度極為相似,訓練損失的下降也極為相似。但是總的效果來說都是優(yōu)于Text-CNN的。在進行測試的時候,可以看出來MMSNN模型的實驗也和BiLSTM極為相似但是波動相對較為穩(wěn)定,MMSNN模型的實驗效果在第三輪達到最好評估效果約為86%,BiLSTM是85.5%而Text-CNN相對較差在第九輪獲得為83.3%,同時驗證損失MMSNN模型最低也是在第三輪獲得為0.34,BiLSTM是0.35(第三輪),Text-CNN的損失是0.38(第九輪)。所以總的效果來說是MMSNN模型的實驗取得更好的準確率和更小的損失。
4? 結論與展望
通過這三個實驗的對比可以發(fā)現(xiàn)循環(huán)神經(jīng)網(wǎng)絡結構在情感分析任務上相對卷積神經(jīng)網(wǎng)絡有明顯的優(yōu)勢,這是由于CNN結構中的池化操作存在信息損失的缺陷。但是在結合BiLSTM、Text-CNN和改自Transformer編碼器的結構能夠取得最好的結果,由此也能證明Attention的優(yōu)勢。在單臺計算機的運算條件下,MMSNN模型可以計算出來相當不錯的效果。以后的研究方向會傾向于以下幾點:1. 希望能夠解決池化層導致信息損失帶來的損害,將最近使用的膠囊模型和路由算法來代替卷積和池化操作,而不單是使用Transformer部分結構來代替2. 對模型進行優(yōu)化,希望可以在單臺計算機有限的時間內進行更大規(guī)模的模型運算。3. 根據(jù)最新研究趨勢設計一個能夠將修改的Transformer結構預訓練使用從而盡可能取得更好效果的模型。
參考文獻
[1]Kim Y, Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
[2]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]. Advances in neural information processing systems, pp. 5998-6008, 2017
[3]Zhang Y, Wallace B. A sensitivity analysis of (and practitioners' guide to) convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1510.03820, 2015.
[4]張玉環(huán), 錢江. 基于兩種 LSTM 結構的文本情感分析[J]. 軟件, 2018, 39(1): 116-120.
[5]張曉明, 尹鴻峰. 基于卷積神經(jīng)網(wǎng)絡和語義信息的場景分類[J]. 軟件, 2018, 39(01): 29-34
[6]Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint?arXiv:1409.0473, 2014.
[7]Dai Z, Yang Z, Yang Y, et al. Transformer-xl: Attentive language models beyond a fixed-length context[J]. arXiv preprint arXiv:1901.02860, 2019.
[8]Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9.
[9]Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
[10]Yang Z, Dai Z, Yang Y, et al. Xlnet: Generalized autoregressive pretraining for language understanding[C]//Advances in neural information processing systems. 2019: 5754-5764.
[11]張玲玉, 尹鴻峰. 基于 OAN 的知識圖譜查詢研究[J]. 軟件, 2018, 39(01): 54-59.
[12]吳亞熙, 岑峰. 基于卷積神經(jīng)網(wǎng)絡的多層級目標檢測方法[J]. 軟件, 2018, 39(4): 164-169.
[13]李平舟, 趙朗程. 基于BP神經(jīng)網(wǎng)絡的國家穩(wěn)定性研究[J]. 軟件, 2018, 39(6): 142-146.