国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

雙通道卷積神經(jīng)網(wǎng)絡(luò)在文本情感分析中的應(yīng)用

2018-08-28 08:52戴月明吳定會
計算機應(yīng)用 2018年6期
關(guān)鍵詞:正確率向量卷積

李 平,戴月明,吳定會

(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇無錫214122)(*通信作者電子郵箱lplp12@126.com)

0 引言

隨著互聯(lián)網(wǎng)技術(shù)和各大電商平臺的快速發(fā)展,網(wǎng)絡(luò)購物變得越來越簡單也越來越流行,用戶對于各類商品的評價也變得越來越頻繁,對于網(wǎng)絡(luò)購物的體驗不同層次的消費者也提出了不同的需求。高效快速地對消費者的評論進(jìn)行分析和統(tǒng)計,更加深入地了解消費者的需求,成為眾多電商平臺提升自身平臺競爭力的重要方式。

文本情感分析即文本情感傾向的分析,實際就是對文本中語言態(tài)度、觀點、情感傾向等信息的挖掘[1]。目前文本情感分析的主要技術(shù)方向分為兩類:基于情感詞典的文本情感分析和基于機器學(xué)習(xí)的文本情感分析[2]。近年來,隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)量的急劇增加,對于海量數(shù)據(jù)的處理需求也越來越高,深度學(xué)習(xí)就是在這種背景下應(yīng)運而生,深度學(xué)習(xí)算法對于處理比較大的數(shù)據(jù)相比較于傳統(tǒng)的機器學(xué)習(xí)算法有著明顯的優(yōu)勢。2006年Hinton等[3-4]提出了深度置信網(wǎng)絡(luò)結(jié)構(gòu),該算法在深度學(xué)習(xí)領(lǐng)域起了里程碑式作用。深度學(xué)習(xí)可以充分利用海量的文本數(shù)據(jù),完全自動地學(xué)習(xí)抽象的知識表達(dá),在計算機視覺[5]、語音識別和自然語言處理[6-7]等方向取得了顯著的成績。很多基于深度學(xué)習(xí)的模型都取得了很好的效果,其中最具代表性的有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[8]和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[9],其中RNN因為其強大的上下文語義捕捉能力,在序列建模任務(wù)上表現(xiàn)出色,如機器翻譯[10],但是RNN是一個有偏的模型,在構(gòu)建整個文本語義時會傾向于后面的文本,但是實際應(yīng)用中并不是所有的文本重點都放在后面,且RNN的優(yōu)勢是捕捉長距離的信息,對于以句子為主的文本情感分析這一任務(wù)并不適用。相比RNN模型,在文本情感分類任務(wù)中,評論語句往往很短,不用綜合全局信息就可以判斷評論的情感傾向。文獻(xiàn)[11]中首次提出了CNN用于句子分類,并用實驗證明了CNN算法用于句子分類的可行性,但是文章主要針對英文語料進(jìn)行處理;Kalchbrenner等[12]提出了動態(tài)CNN(Dynamic CNN,DCNN)的模型,該模型采用動態(tài)K-Max池化,區(qū)別于傳統(tǒng)的最大池化只保留一個重要信息。文獻(xiàn)[13]提出了Seq_CNN,模型以one-hot作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,但是該方法造成文本表示的空間維度較高;文獻(xiàn)[14]提出了以卷積層作為特征提取,支持向量機(Support Vector Machine,SVM)作為分類器,用于圖像分類。CNN在文本情感分析中的應(yīng)用主要以單通道為主,這種方法存在視角單一、不能充分地認(rèn)識數(shù)據(jù)的特征的問題,雙通道主要來源于計算機視覺,一幅圖由RGB三個顏色通道組成,反映了圖像不同狀態(tài)下的特征。Kim[11]分別采用靜態(tài)詞向量和動態(tài)詞向量作為模型的通道;但考慮到中文文本的復(fù)雜性,本文提出了把字向量和詞向量作為模型的兩個通道,字向量用于捕獲句子的細(xì)粒度信息,詞向量用于捕獲句子間的語義信息,利用細(xì)粒度的字向量輔助詞向量捕捉深層次語義信息。利用多尺寸卷積核,以找出合適的“粒度”,提取更充分的文本特征。經(jīng)過實驗驗證得出,本文提出的雙通道CNN(Dual-Channel CNN,DCCNN)模型泛化能力強,在情感分類方面的正確率和F1值遠(yuǎn)遠(yuǎn)高于普通卷積神經(jīng)網(wǎng)絡(luò)算法。

1 卷積神經(jīng)網(wǎng)絡(luò)

CNN是一種經(jīng)典的前饋神經(jīng)網(wǎng)絡(luò),主要受生物中感受野的概念啟發(fā)而提出。CNN早期的應(yīng)用主要是在計算機視覺領(lǐng)域,并在計算機視覺領(lǐng)域取得了很大的成功。隨后大量學(xué)者把它應(yīng)用于自然語言處理,卷積神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)到句子中抽象的特征且無需人工干預(yù),學(xué)習(xí)到的特征可以單獨使用,作為其他分類器的輸入或者直接進(jìn)行情感分類任務(wù)。它的多層結(jié)構(gòu)能夠發(fā)現(xiàn)句子內(nèi)部更高層次抽象特征并且在可接受時間范圍內(nèi)完成訓(xùn)練,所以卷積神經(jīng)網(wǎng)絡(luò)更適合句子級的情感分類任務(wù)。CNN的結(jié)構(gòu)主要有三個方面的特性:局部連接、權(quán)值共享和下采樣。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)都采用全連接的方式,這使得網(wǎng)絡(luò)參數(shù)巨大、訓(xùn)練時間較長,卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)解決了這一問題。對于文本來說,局部的信息往往包含的特征比全局更多,通過局部連接可以提取數(shù)據(jù)的初級特征;在CNN中,同一個卷積核,其所有的神經(jīng)元權(quán)值都相同,一個卷積核只提取一種特征。局部連接和權(quán)值共享減少了神經(jīng)元的連接數(shù)目,這大大降低了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練難度。一個普通的卷積網(wǎng)絡(luò),主要包括卷積、池化、全連接三個部分,一般卷積層直接和輸入連接,通過卷積層獲得特征之后,如果直接使用這些特征訓(xùn)練分類器,需要面臨著巨大的計算量,容易造成網(wǎng)絡(luò)的過擬合。因此,通常采用下采樣來減小網(wǎng)絡(luò)的規(guī)模,用池化操作實現(xiàn)了數(shù)據(jù)的降維,將低層次的局部特征組合成為較高層次的特征,從而對整個文本進(jìn)行表示,經(jīng)過池化進(jìn)一步降低了計算的復(fù)雜度。

2 詞向量與字向量

現(xiàn)有的產(chǎn)品評論文本類型多樣,傳統(tǒng)的文本表示和基于統(tǒng)計的方法,仍停留在對詞匯的表層處理,比如詞袋模型(Bag-Of-Words,BOW)或者是向量空間模型(Vector Space Model,VSM),這樣的淺層模型默認(rèn)單詞之間相互獨立,只包含詞頻信息,忽略了文章的上下文信息,無法表達(dá)相關(guān)性,對文本的語義表達(dá)造成了極大的損失,詞向量的出現(xiàn)避免了使用傳統(tǒng)特征表示產(chǎn)生的一些問題。鑒于CNN中較低層次相當(dāng)于“特征提取器”,卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)到句子中的抽象特征并且無需人工干預(yù)。本文針對這點,采用細(xì)粒度的字向量輔助詞向量(Word2Vec)捕捉更深層次的語義信息。

詞向量因為其在捕捉語義信息和句法信息方面的強大功能,在自然語言處理中引起了極大關(guān)注,所謂詞向量就是通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型,并在訓(xùn)練過程中生成一組向量,這組向量中的每個詞用n維向量表示。對于文本情感分析這類任務(wù)而言,數(shù)據(jù)量小,所以相對而言一個輕量級的模型便可以達(dá)到一個很好的處理結(jié)果。但是在訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時參數(shù)量通常很大,為了避免模型陷入過擬合的危險,本文采用預(yù)先訓(xùn)練的詞向量來減輕過擬合問題。文獻(xiàn)[15]提出,在大規(guī)模的語料上訓(xùn)練得到的詞向量可以改善模型的性能。

字向量作為中文處理的基本單位,在中文文本分析中起著重要作用,使用字向量的目的主要是為了解決未登錄詞的問題,比如:“這個房間高大上”分詞的結(jié)果為“這個/房間 /高大/上”,這個句子中“高大上”為一個詞,分詞后把它切分為兩個詞,這樣導(dǎo)致分詞后的詞組反而改變了句子的語義信息。為了減弱分詞后帶來的問題,模型的另一個通道采用字向量作為輸入,通過細(xì)粒度的字向量輔助詞向量捕捉深層次的語義信息。

3 雙通道卷積神經(jīng)網(wǎng)絡(luò)

在中文文本處理中,每個句子可以切分成很多字或詞,隱藏層的每個節(jié)點與輸入的每一個局部區(qū)域連接,為了將文本中詞與詞、字與字之間的信息加入到文本建模過程中,實現(xiàn)對評論中每個局部信息進(jìn)行建模,分別采用詞向量和字向量作為兩個不同的模態(tài),將文本中的詞序等信息通過卷積,池化等操作融入文本向量中。

DCCNN模型主要包括三個部分:第一部分采用京東等電商平臺的大量評論分別訓(xùn)練詞向量和字向量,使得模型可以更接近訓(xùn)練樣本的分布。第二部分根據(jù)中文文本的特點設(shè)計兩個通道的卷積神經(jīng)網(wǎng)絡(luò),把詞向量和字向量作為不同的通道,主要應(yīng)用于處理不同環(huán)境下所產(chǎn)生的不同數(shù)據(jù)的融合。詞向量在語義方面的刻畫更精細(xì)些,字向量更能反映文本的基本特征。第三部分通過不同尺寸的卷積核,發(fā)現(xiàn)句子內(nèi)部更高層次抽象的特征,以提取更優(yōu)質(zhì)的文本特征。本文采用的雙通道卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。

圖1 雙通道卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.1 Dual-channel convolutional neural network model structure

3.1 DCCNN 模型構(gòu)建

DCCNN模型的構(gòu)建主要由四個部分組成,分別為查找層、卷基層、池化層以及合并層。

1)查找層:首先采用Word2Vec訓(xùn)練詞向量,通過預(yù)訓(xùn)練的詞向量和字向量可以避免直接訓(xùn)練詞向量帶來的參數(shù)過大問題,一定程度上避免過擬合。假設(shè)詞向量的維度為k,每個評論的長度為n,Xi為第i個詞的詞向量,所以一個長度為n的評論可以描述為:

其中:⊕表示連接操作符;Xi:i+j表示詞向量Xi,Xi+1,…,Xi+j組成的特征矩陣。對于輸入的評論數(shù)據(jù),根據(jù)其索引值,從預(yù)訓(xùn)練的詞向量中,查找出對應(yīng)詞的詞向量,生成詞向量矩陣。

2)卷積層:卷積層的主要目的是通過卷積操作實現(xiàn)對文本數(shù)據(jù)的局部感知,本文通過使用不同尺寸的卷積核對輸入的詞向量與字向量進(jìn)行卷積運算,以盡可能地捕獲更多的上下文信息。本文分別使用了卷積核h=3,h=5和h=7三組不同的卷積核,假設(shè):b為偏置項,Wh表示不同尺寸的卷積核對應(yīng)的權(quán)重矩陣,Wh∈Rh×k。D1和D2分別表示詞向量通道和字向量通道,卷積后的輸出為Chi,代表不同的卷積核輸出的結(jié)果,計算公式如下:

為提高訓(xùn)練收斂速度,激活函數(shù)f采用Relu函數(shù)[16]。

本文使用步幅s=1的卷積,當(dāng)卷積核在評論為n的文本上滑動結(jié)束后,共得到n-h(huán)+1個輸出,所以最終生成的一個特征圖為:

其中C為不同卷積核卷積后生成的特征圖集合。

3)池化層:為了生成固定維度的特征向量以及減弱卷積操作之后帶來的數(shù)據(jù)維度過高問題,往往加入池化操作。本文采用最大池化,對每個通道單獨執(zhí)行池化操作,經(jīng)過最大池化操作后,模型忽略弱的特征并提取出具有代表性的情感極性特征。最大池化公式如下:

其中C(2)為經(jīng)過不同卷積核最大池化后生成的特征圖集合。

假設(shè)每組卷積核的數(shù)量為m,最終池化后輸出的特征集合為C(3),C(3)定義如下:

3.2 DCCNN 模型訓(xùn)練

合并層輸出的特征向量將作為最后sigmoid分類器的輸入,最終輸出情感類別的預(yù)測值的定義如下:

4)合并層:把兩個通道D1和D2所提取的特征序列進(jìn)行串聯(lián),整合出全局信息,形成最終的文本向量集合C(4)。

由式(8)可知Loss≥0,假設(shè)訓(xùn)練樣本的標(biāo)簽為y=1,可知Loss=-ln(),當(dāng)≈1時,此時Loss=0;當(dāng)訓(xùn)練樣本標(biāo)簽為y=0時,可知Loss=-ln(1-),當(dāng)≈0時,此時Loss=0。所以當(dāng)損失值接近0時,訓(xùn)練樣本值和實際輸出值越接近。模型訓(xùn)練通過Adam算法[17]最小化目標(biāo)函數(shù),通過反向傳播算法進(jìn)行參數(shù)更新。

4 實驗結(jié)果及分析

4.1 數(shù)據(jù)集與模型參數(shù)設(shè)置

本實驗采用的語料集主要包括路由器、計算機、手機等相關(guān)電子產(chǎn)品相關(guān)的中文語料庫以及譚松波老師整理的書評,酒店評論等,經(jīng)過人工整理,共收集26 925條評論數(shù)據(jù),類別已經(jīng)給定,其中積極評論13578條、消極評論各13338條。數(shù)據(jù)集網(wǎng)址為:https://pan.baidu.com/s/1o9pYXYi。為了驗證本文算法的有效性,選取其中80%作為訓(xùn)練語料,20%作為測試語料。實驗計算機環(huán)境為:Intel Core i7-4790CPU@3.60 GHz,內(nèi)存 8 GB,Linux 操作系統(tǒng)。

本文所提模型的參數(shù)設(shè)置如表1所示。

表1 DCCNN參數(shù)設(shè)置Tab.1 DCCNN parameter setting

4.2 評價標(biāo)準(zhǔn)

本文對文本情感分類的評價標(biāo)準(zhǔn)主要從分類的正確率和F1進(jìn)行度量。對于給定樣本容量為N,樣本xi的實際標(biāo)簽為yi,分類標(biāo)簽為^,正確率(Accuracy)計算公式為:

F1為精準(zhǔn)率和召回率的調(diào)和平均值,假設(shè)精準(zhǔn)率為P,召回率為R,具體計算公式如下:

其中:TP表示被分類器正確分類的正例數(shù)據(jù);TN表示被分類器正確分類的負(fù)例數(shù)據(jù);FP表示被錯誤地標(biāo)記為正例數(shù)據(jù)的負(fù)例數(shù)據(jù);FN表示被錯誤地標(biāo)記為負(fù)例數(shù)據(jù)的正例數(shù)據(jù)。

4.3 實驗步驟

實驗步驟如下:

1)首先對原始文本應(yīng)用結(jié)巴分詞。

2)采用Word2Vec訓(xùn)練詞向量,語料采用爬蟲爬取的各大電商的評論數(shù)據(jù),訓(xùn)練詞向量的語料。

3)把詞語轉(zhuǎn)換成詞序列,經(jīng)過處理后的數(shù)據(jù),每個詞都有唯一索引。

4)把帶索引值的詞語輸入詞向量表中,查找出對應(yīng)詞的詞向量,生成矩陣作為模型的輸入。

5)把原始文本轉(zhuǎn)化成單個字存儲。

6)采用Word2Vec訓(xùn)練字向量,語料為訓(xùn)練樣本集。

7)把字轉(zhuǎn)換成字序列,經(jīng)過處理后的數(shù)據(jù),每個字都有唯一索引。

8)把帶有索引的字輸入字向量表中,查找出對應(yīng)字的字向量,生成矩陣作為模型的輸入。

9)采用式(8)的損失函數(shù),開始訓(xùn)練模型。10)采用測試集評估模型性能。

4.4 模型對比結(jié)果

實驗一 為了驗證DCCNN算法的有效性,采用DCCNN算法與以下幾種經(jīng)典算法進(jìn)行對比:

1)邏輯回歸分類算法(Lg):采用Word2Vec訓(xùn)練詞向量,句子向量采用詞向量的平均值,邏輯回歸分類器進(jìn)行情感分類。

2)靜態(tài)詞向量(Static_CNN)[11]:模型訓(xùn)練過程中,詞向量保持不變。

3)非靜態(tài)詞向量(Non_Static_CNN)[11]:模型訓(xùn)練過程中,詞向量會被微調(diào)。

4)隨機初始化詞向量(Rand_Static)[11]:模型訓(xùn)練過程中,詞向量隨機初始化。

5)多通道卷積神經(jīng)網(wǎng)絡(luò)(S_Non_CNN)[11]:采用靜態(tài)詞向量和非靜態(tài)詞向量兩個通道進(jìn)行卷積運算。

6)CNN+SVM:采用CNN作為特征提取器,SVM作為分類器。

7)Seq_CNN[13]:以 One-hot作為 CNN 模型輸入,進(jìn)行卷積運算。

這里主要采用回調(diào)函數(shù),選取測試集正確率最高的作為模型的正確率和F1值。模型名稱以及其正確率和F1值結(jié)果如表2所示。

表2 不同模型下的分類結(jié)果Tab.2 Classification results under different models

從表2可以看出:DCCNN的正確率和F1值分別取得了0.958和0.959。CNN+SVM 和Seq_CNN取得了相對較低的分類結(jié)果,這是因為Seq_CNN的輸入特征忽略了句子的語義信息,SVM對于卷積后提取的大量特征,學(xué)習(xí)能力欠佳;Non_Static_CNN在實驗中取得了僅此于DCCNN算法的F1和正確率,說明通過具體任務(wù)微調(diào)的詞向量可以取得更好的效果;S_Non_CNN多通道模型在F1和正確率上分別取得了0.941和0.942的結(jié)果??梢钥闯霰疚奶岢龅腄CCNN雙通道模型是有效的,在F1和正確率上比S_Non_CNN提升了1.7個百分點。DCCNN通過引入字向量通道,可以擴大特征的覆蓋范圍,提取更加豐富的語義信息。

實驗二 SVM在2002年首次被Pang等[18]用于情感分析中,實驗二分別采用BOW+SVM算法、Word2Vec+SVM算法與DCCNN算法作對比。其中BOW+SVM算法表示:采用BOW表示文本特征,SVM作為分類器;Word2Vec+SVM算法表示:采用Word2Vec訓(xùn)練詞向量,采用詞向量的平均值作為句向量,SVM作為分類器。不同算法正確率以及F1值結(jié)果如圖2所示。

由圖2可以看出,在評論情感分類實驗中,采用Word2Vec+SVM算法性能高于Bow+SVM算法,這是因為傳統(tǒng)的BOW忽略了句子的語義信息,所以采用SVM分類結(jié)果相對較差,經(jīng)過Word2Vec訓(xùn)練詞向量,獲取句子的語義信息,使得SVM分類性能明顯提高。在實驗中可以看出,DCCNN模型的正確率以及F1值都明顯優(yōu)于采用SVM分類器,這說明淺層機器學(xué)習(xí)算法在數(shù)據(jù)量過多的情況下,擬合能力有限,DCCNN模型在評論的情感分析中是有效的。

圖2 不同算法分類結(jié)果Fig.2 Classification results of different algorithms

4.5 迭代次數(shù)

在實驗中,為了表示不同模型下文本情感分類的效果,采用折線圖統(tǒng)計了在不同迭代次數(shù)下各模型的正確率和F1值,結(jié)果如圖3所示。

圖3 不同模型在不同迭代次數(shù)下的分類結(jié)果對比Fig.3 Comparison of classification results of different models under different iterations

由圖3可以看出:Lg模型正確率和F1最低,其正確率和F1值大約在0.88左右;S_Non_CNN模型的正確率波動幅度較于其他模型較大,導(dǎo)致出現(xiàn)這種情況的原因可能是靜態(tài)詞向量通道的詞向量質(zhì)量較差;DCCNN算法情感分類正確率和F1值一直高于其他算法,且波動幅度較小,在迭代次數(shù)為12時,DCCNN模型取得了最高的正確率和F1值,其值超過0.95,此時為了避免模型的過擬合,可以停止迭代。

5 結(jié)語

本文結(jié)合中文評論語料特點,針對淺層機器學(xué)習(xí)忽略句子的局部語義特征等問題,提出了一種新的文本情感分析方法DCCNN模型。該模型分別在字向量和詞向量兩個不同的通道上進(jìn)行卷積,利用細(xì)粒度的字向量輔助詞向量捕捉深層次的語義信息,以此得到更優(yōu)質(zhì)的特征,從而提高文本情感分類的正確率。從實驗結(jié)果可看出,本文提出的雙通道卷積神經(jīng)網(wǎng)絡(luò)在文本情感分類上具有更高的正確率和F1值。卷積神經(jīng)網(wǎng)絡(luò)在文本情感分析的應(yīng)用中還存在許多問題,如何將模型應(yīng)用于實際的工程中,將是下一步的工作重點。

猜你喜歡
正確率向量卷積
向量的分解
個性化護(hù)理干預(yù)對提高住院患者留取痰標(biāo)本正確率的影響
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
聚焦“向量與三角”創(chuàng)新題
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計
從濾波器理解卷積
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
基于兩種LSTM結(jié)構(gòu)的文本情感分析
生意
生意