史振杰, 董兆偉, 龐超逸, 張百靈, 孫立輝
(河北經(jīng)貿(mào)大學 信息技術(shù)學院, 石家莊 050061)
隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)已經(jīng)融入到人們生活的方方面面。網(wǎng)絡(luò)上具有平等、自由、共享、虛擬等特點,近年來,互聯(lián)網(wǎng)上出現(xiàn)越來越多的網(wǎng)絡(luò)應(yīng)用,例如微博,論壇,電子商務(wù)等等,其中,電子商務(wù)指的是買賣雙方在不相見的互聯(lián)網(wǎng)平臺進行交易的商貿(mào)活動。電商應(yīng)用平臺的飛速發(fā)展改變了社會的生活方式,給人們的生活帶來了極大的便利。同時,各電商平臺之間的競爭也尤為激烈,為了增強競爭力,各平臺不僅保證商品的質(zhì)量和價格合理外,還要了解消費者對商品和服務(wù)的反饋,以便更好地制定相應(yīng)的營銷策略。如今,很多電商平臺都涉及了評論系統(tǒng),消費者在系統(tǒng)中可以自由發(fā)表自己的觀點與看法[1],表達自己的情感,在這些評價、觀點與情感中,包含著許多有價值的信息,這些信息反映了消費者對于商品的主觀感受,對于其他消費者挑選符合心意的商品具有極大的參考價值[2],同時,也是商家改進自身營銷模式的重要依據(jù)。
近年來,隨著深度學習的發(fā)展以及自然語言領(lǐng)域的使用,越來越多的學者采用深度學習技術(shù)來處理海量的文本信息。深度學習可以經(jīng)過多層次的學習,自動學習到數(shù)據(jù)的本質(zhì)特征,能夠在預(yù)測與分類任務(wù)中獲得較高的準確率。例如常用的網(wǎng)絡(luò)有:長短期記憶網(wǎng)絡(luò)[3]、卷積神經(jīng)網(wǎng)絡(luò)[4]、循環(huán)神經(jīng)網(wǎng)絡(luò)[5]等。
Mikolov等人[6]提出一種使用Skip-gram和CBOW的方式學習詞的分布式表示,通過這樣的方式可以在一定程度上表示出詞語之間的相關(guān)性,得到詞語在更高維空間的映射。為了彌補RNN網(wǎng)絡(luò)自身在梯度傳遞上的缺陷,Hochreiter等人[7]提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)化形式,長短時記憶網(wǎng)絡(luò)LSTM,在一定程度上解決了梯度爆炸或者梯度消失的問題。Denil等人[8]提出一種多層次的CNN模型來提取文本中的特征,通過多層次的卷積與池化結(jié)構(gòu),加強對句子中關(guān)鍵的局部特征的獲取,以達到更好的效果。Kalchbrenner等人[9]將靜態(tài)卷積網(wǎng)與動態(tài)卷積網(wǎng)相結(jié)合,對于解決不同文本的不同長度具有較好的效果。Zhou等人[10]提出了將CNN與RNN的特點相結(jié)合,先對文本用CNN進行分布特征的提取,再用RNN進行序列特征的提取,最后用于分類。Cao等人[11]改變了兩種模型順序,由此提取出來的特征用于文本分析。Yogatama等人[12]采用生成對抗模型,其中一部分模型用于生成數(shù)據(jù),另一部分通過預(yù)測數(shù)據(jù)來進行分析。
李然[13]在進行本文情感分析時采用了神經(jīng)網(wǎng)絡(luò)語言模型,通過自適應(yīng)的學習短文本向量,提取更深層次的語義信息,在大規(guī)模的商品評論數(shù)據(jù)集上表明了深度學習的分類性能更好。胡朝舉等人[14]提出了一種將CNN與GRU相結(jié)合的方法,不僅能采用CNN捕捉句子的局部特征,而且能夠較好地獲取句子的上下文信息,實驗獲得了較高的F值。陳葛恒[15]針對GRU網(wǎng)絡(luò)只能前向?qū)W習而不能預(yù)測到后面的信息問題,提出了雙向的GRU來進行句子前后信息的學習,有效地解決了上下文之間的關(guān)聯(lián)性。馮興杰等人[16]使用注意力模型與CNN相結(jié)合的方法,能夠減少人為對于特征的構(gòu)造,在相關(guān)數(shù)據(jù)集上結(jié)果表明,與傳統(tǒng)的機器學習方法和卷積神經(jīng)網(wǎng)絡(luò)相比有著明顯的提升。馬思丹等人[17]根據(jù)詞向量的特點,提出了一種加權(quán)Word2Vec的文本分類方法,通過設(shè)置文本詞語相似度閾值,分為加權(quán)的部分與不加權(quán)的部分,在此基礎(chǔ)上進行分類,實驗表明該方法比傳統(tǒng)的TF-IDF效果要好。
在以上的研究中,都使用了基于深度學習的方法進行情感分析,這種方法雖然在一定程度上表現(xiàn)優(yōu)異,但是要進行長時間的訓練,而且需要大量的語料用于學習,語料不足時很難達到滿意的效果。
綜上,針對現(xiàn)有的文本情感分析方法特征提取不充分,難以表達句子的復(fù)雜語義,不能關(guān)注上下文信息等問題,提出了一種基于BERT-CNN的網(wǎng)絡(luò)結(jié)構(gòu),通過BERT結(jié)構(gòu)進行語義的向量化表達,運用卷積網(wǎng)絡(luò)結(jié)構(gòu)來進一步提取局部特征,最后使用Softmax分類器進行文本的情感分類,在某手機的評論數(shù)據(jù)集中,相比于其他模型,準確率有一定的提升。
本文的主要工作如下:
(1)利用BERT對評論信息的句子進行向量化表達,充分考慮了句子中每一個詞語對其他上下文中詞語的影響,以及同一個詞語在不同語境中的不同含義表達。
(2)先利用BERT網(wǎng)絡(luò)結(jié)構(gòu)來處理文本中上下文特征的提取,再對已經(jīng)提取的特征使用卷積神經(jīng)網(wǎng)絡(luò)CNN進行局部語義特征提取,既能同時利用BERT與CNN特征提取的優(yōu)勢,又能很好地解釋要處理文本的語義,從而提高文本情感分析的準確率。
BERT的出現(xiàn)在自然處理領(lǐng)域帶來了很大的提升,之前的模型是從左向右或者是將從左向右和從右向左的訓練結(jié)合起來,而BERT使用了多層Transformer模型[18],實現(xiàn)了將句子中的每個詞的信息都涵蓋進詞向量中去,實驗的結(jié)果表明,雙向訓練的語言模型對語境的理解會比單向的語言模型更深刻,其中文本分類中,用到了Transformer中的Encoder。
BERT中的Transformer由6個Encoder-Decoder疊加組成,在結(jié)構(gòu)上是相同的,但是彼此間卻不共享權(quán)重[19]。注意力機制運算如圖1所示。圖1即為一層編碼器(Encoder)和對應(yīng)的一層解碼器(Decoder),在Encoder中,輸入(input)經(jīng)過Embedding后,要做位置嵌入(positional Encoding),然后是多頭注意力機制(multi-head Attention),再經(jīng)過全連接層[20],每個子層之間都有殘差連接。
圖1 注意力機制計算圖
多頭注意力機制就是將一個詞的向量切分成h個維度,求Attention的相似度時每個h維度計算,由于每個單詞在高維空間表示唯一個向量,每一維空間都可以學到不同的特征,相鄰空間所學結(jié)果更相似,相較于全體空間放到一起對應(yīng)更加合理。比如對于vector-size=512的詞向量,取h=8,每64個空間做一個Attention,學到的結(jié)果更加準確。
自注意力機制中,每個詞都可以無視方向與距離,有機會直接和句子中的每個詞進行編碼。權(quán)重的大小代表了兩者之間聯(lián)系的深刻度,一般意義來說,模糊詞所連的邊都比較深。
位置嵌入能夠表示句子的序列信息的順序,對于模型學習句子的含義有重要的影響。Transformer計算token的位置信息使用了正弦波,類似模擬信號的周期性變化,這樣的循環(huán)函數(shù)在一定程度上能夠增加模型的泛化能力。運算公式如下所示:
PE2i(p)=sin(pos/100 0002i/dpos),
PE2i+1(p)=cos(pos/100 0002i/dpos),
(1)
將id為p的位置映射為一個d維的位置向量,這個向量的第i個元素的數(shù)值就是Ei(p)。
但BERT直接訓練一個position Embedding來保留位置信息,每個位置隨機初始化一個向量,加入模型進行訓練,能夠得到一個包含位置信息的Embedding,最后這個Position Embedding與Word Embedding進行直接拼接。
此外,BERT使用masked language model做到了真正意義上的雙向編碼,隨機屏蔽預(yù)料中15%的token,然后將被屏蔽的token位置輸出的最終隱層向量輸送到分類器,預(yù)測被屏蔽的token,其中類似于完形填空,雖然能夠看到所有的位置信息,但需要預(yù)測的詞已經(jīng)被特殊符號所代替,可以直接進行編碼。但是確定屏蔽掉的單詞后,并沒有直接去掉,而是80%的會被直接替換,10%會被替換為任意單詞,10%會保留原始token。這是為了增強模型的魯棒性,避免出現(xiàn)模型不認識的單詞,增強其泛化能力。
在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,把每個神經(jīng)元都連接到下一層的每個神經(jīng)元上,這就是全連接,在CNN中,對輸入層進行卷積得到輸出,這就不是全部連接而成為了局部連接,即輸入的局部區(qū)域連接到一個神經(jīng)元上,每一層都用不同的卷積核,再將其組合起來。池化層是卷積神經(jīng)網(wǎng)絡(luò)中的一層重要結(jié)構(gòu),在卷積層之后應(yīng)用,池化層對其輸入進行下采樣,最常用的方法就是保留最大信息,一般是經(jīng)過窗口化的最大池化。
卷積的作用可以認為是發(fā)現(xiàn)一種特征,而池化的作用是減少輸出維度同時保留顯著的信息[21]。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層中的卷積核類似于一個滑動的窗口,如圖2所示,在整個輸入圖像中進行特定步長的滑動,經(jīng)過卷積運算后,能夠得到輸入圖像的特征圖,這個特征圖就是卷積層提取出來的局部特征,這個卷積核是參數(shù)共享。在整個網(wǎng)絡(luò)的訓練過程中,包含權(quán)值的卷積核也會隨之更新,直到訓練完成。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
全連接層的作用主要是對特征進行整合,池化層的輸出以全連接的形式傳遞給全連接層,通過分類器得到分類,再將預(yù)測的結(jié)果與實際的結(jié)果進行比較,通過反向傳播的方式更新網(wǎng)絡(luò)參數(shù)。
在自然語言處理中,多數(shù)任務(wù)的輸入不再是圖片,而是以矩陣表示的句子或文檔。矩陣的每一行對應(yīng)一個token(象征),一般是一個單詞或字符,也即每一行代表一個詞向量。在圖像中,卷積核劃過的是圖像中的一塊區(qū)域,在自然語言領(lǐng)域一般用卷積核劃過矩陣的一行,即單詞。然后卷積核的寬度就是矩陣的寬度,而高度不是固定的,需要進行設(shè)置。
整個BERT-CNN神經(jīng)網(wǎng)絡(luò)模型主要分為BERT層、CNN層和情感分類輸出層,整體框架如圖3所示。
圖3 BERT-CNN模型結(jié)構(gòu)圖
BERT-CNN神經(jīng)網(wǎng)絡(luò)模型的情感分類輸出層基本相似,但是詞向量輸入層有差別,BERT-CNN神經(jīng)網(wǎng)絡(luò)模型采用預(yù)訓練語言模型BERT作為文本信息的表示,而傳統(tǒng)神經(jīng)網(wǎng)絡(luò)語言模型采用Word2Vec作為文本信息的表示。此外,BERT-CNN將BERT輸出的詞向量經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)做進一步特征提取,增強了模型的健壯性。CNN層分為卷積與池化兩部分:
對BERT層的輸出矩陣B={H1,H2,...,Hn}進行卷積操作,假設(shè)卷積核長度為m,即每次對m個分詞向量進行卷積操作,卷積核滑動的步長一般設(shè)為1,對文本矩陣進行上下滑動,則B可以分成{H1:m,H2:m+1,...,Hn-m+1:n},其中,Hi:j表示向量Hi到Hj的所有向量的級聯(lián),對于每一個分量執(zhí)行卷積操作后得到向量C={c1,c2,...,cn-m+1},而ci是對分量Hi:i+m-1執(zhí)行卷積操作后得到的值,稱為一個局部特征映射,計算公式如下所示:
ci=WTHi:i+m-1+b,
(2)
其中,W是卷積核的參數(shù),按照均勻分布隨機初始化,并在模型訓練過程中不斷學習,b是偏置變量。
接著對卷積捕獲的文本特征映射向量C={c1,c2,...,cn-m+1}進行池化操作,研究中采用了最大池化方式,公式可表示為:
(3)
上述為1個卷積核經(jīng)過卷積、池化操作得到的結(jié)果,對于q個卷積核得到的結(jié)果如下:
(4)
為了提取更好的特征,研究采用3種不同尺寸的卷積核去提取特征,經(jīng)過池化后,再將不同尺寸的卷積核提取的特征拼接在一起作為輸入到分類器中的特征向量。如圖4所示。
圖4 CNN層結(jié)構(gòu)圖
卷積操作實質(zhì)上完成了對文本特征中表示局部重要信息的捕獲,池化操作則完成了局部重要特征的提取。此后CNN層的輸出向量經(jīng)過拼接得到最終的向量,輸入到情感分類器中進行分類,得到模型對于每條輸入數(shù)據(jù)對應(yīng)的情感類別。
在前述流程后,研究中將通過平均池化得到的句向量利用全連接層來獲取抽象特征。同時,該網(wǎng)絡(luò)層使用ReLU激活函數(shù),為了增強模型的泛化能力,再增加一層全連接層進行輸出,由于本次分類是多標簽分類任務(wù),則需要經(jīng)過分類器進行分類。
在模型中,BERT作為評論文本的編碼器,使用BERT語言模型的嵌入功能,將每一條評論編碼到各詞向量堆疊而成的句子。作為新的特征用作CNN層的輸入,為了防止過擬合,在全連接層前面加入一層丟棄率為0.5的dropout層。
本文模擬實驗環(huán)境配置見表1。
本節(jié)在京東某手機評論數(shù)據(jù)集上對比了混合模型BERT-CNN與其他幾種模型,不僅進行了模型準確性,穩(wěn)定性的對比,同時對比了模型訓練耗時程度。
采用幾種不同的模型進行實驗,研究得到的各指標的實驗結(jié)果見表2,時間對比結(jié)果見表3。
表1 實驗環(huán)境配置表
表2 實驗結(jié)果表
表3 時間表
比較表2中BERT-CNN模型和其他幾種常用模型,例如LSTM,BiGRU-Attention??梢钥闯觯啾扔谶@幾種常用模型,混合模型BERT-CNN在準確率與F值上都有了明顯的提升,這說明了BERT-CNN在該京東手機評論數(shù)據(jù)集上,情感分類效果比較好,同時,對比單獨地使用BERT或者TEXTCNN進行文本分類,也得到了顯著提升。
對比表3中BERT-CNN模型和其他模型所用的時間可以看出,除了BERT模型以外,其它模型雖然準率與F值相對較低,但是所用時間相比混合模型BERT-CNN明顯少很多,這說明了BERT預(yù)訓練詞向量模型,需要耗費大量的時間進行句子中詞向量的表示。BERT-CNN效果較好,但時間花費也很大。
近年來,電子商務(wù)發(fā)展?jié)u趨火爆,電商評論情感分析已然成為一個研究熱點,為了更好地進行研究,本文提出了結(jié)合BERT的詞向量,與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的BERT-CNN網(wǎng)絡(luò)模型用于電商評論研究和分析中。該模型先利用BERT進行詞向量編碼表示文本的語義信息,然后在此基礎(chǔ)上使用卷積神經(jīng)網(wǎng)絡(luò)對文本特征進行更加深入提取,實現(xiàn)模型對于文本信息語義的深層理解,完成對電商評論的情感分析。使用某手機的評論數(shù)據(jù)集進行仿真實驗,實驗結(jié)果表明,BERT-CNN模型較大程度地提升了情感分類的性能。
BERT模型使用過程中,參數(shù)量較大,訓練及加載都會耗費大量時間,所以,研究對BERT模型進行壓縮,在模型精度不會受到較大損失條件下降低模型的復(fù)雜度這也是后續(xù)一項重要的研究工作。