用于文本情感分析的深度學習方法綜述(中)

文:清華大學深圳研究院 楊余久2018年第五期

    文本情感分析旨在對蘊涵在文本中的觀點和情感進行挖掘和分析,進而可以在個性化服務、推薦系統、輿情監測和產品調研等應用方面提升性能。對于文本情感分析,從機器學習的角度,一般可以把它轉化成分類問題,其中處理的關鍵在于文本表示、特征提取以及分類器模型建立,而傳統方法中最為核心的是情感特征詞典構建。近年來,深度學習方法在圖像、語音等諸多領域取得了令人矚目的進展,相比于傳統的機器學習方法,該方法的最大優勢就是可以從大量的數據樣本中自動地學習出豐富、有效的特征,從而獲得更好的效果。已有研究表明,在文本表示層面,詞語向量表示方法可以獲取文本的語義、語法以及自身結構信息,為情感分析研究提供堅實基礎,并成為當前該領域的研究熱點。本文首先介紹了文本情感分析的概念和問題分類,對深度學習在文本情感分析中的相關工作進行梳理,詳細討論了文本情感分析中的文本表示方法以及深度學習模型,介紹了當前深度學習在文本情感分析應用中存在的問題,并對未來該領域研究方向和趨勢進行了展望。

3.3字符級別

    基于字符流(charactersteam)的文本表示方法將文檔中的字符作為模型的初始輸入,可以獲取每個詞語的結構性信息,并且這種表示方式對語言不敏感,多數文字都是字符形式的,一些非字符形式的文字(如中文),也都有著相對應的字符表示形式(如中文的拼音),當我們訓練好模型后,可以很方便的處理各種語言的文本。但是另外一方面,字符級別的表示難以獲取文檔的結構性和語義性信息,采用這種方法對文本進行表示需要更多的處理,求解問題的計算復雜度也會比較高。

    為了獲取更高層次的文檔結構和語義信息,常常與深度網絡模型相結合,利用深度網絡強大的特征表示和逐層學習特征的能力。ZhangX等人[103]中受到盲文的編碼方法啟發,基于字符對文檔進行編碼,然后利用深度卷積神經網絡對文檔進行話題分類以及情感分析,構造出可以適用于多語言并且準確性也很高的文本處理模型。Dos-SantosCN等人[18]借鑒連續詞語向量的學習思路,首先將字符表里的每個字符表示成連續向量,輸入到卷積神經網絡,獲取詞語向量的字符結構性信息。將這種詞語結構性信息表示加入原來的詞語向量,使詞語向量可以表征更加豐富的信息。

4  深度學習的文本情感分析方法

4.1前饋神經網絡(FNNs)結構及其在文本情感分析應用

    FNNs一般指這樣的網絡:各神經元從輸入層開始,接收前一級輸入,并輸入到下一級,直至輸出層,整個網絡中無反饋,可以用一個無環圖來表示。多層感知機(Multi-LayerPerceptron,MLP)是一種典型的FNN,但MLP是一種淺層網絡,在本文中我們主要討論基于受限玻爾茲曼機(RestrictedBoltzmannMachine,RBM)[21][37][78]的深層前饋神經網絡:深層波爾茲曼機(DeepBoltzmannMachine,DBM)以及深度信任網絡(DeepBeliefNetwork,DBN)。

4.1.1受限玻爾茲曼機(RBM)

    RBM是一種雙層的無向圖模型,第一層是包含若干單元的可見層,也是網絡的輸入層,第二是包含若干單元的隱含層,也是網絡的輸出層,典型的RBM結構如圖5所示,其中是可見層單元狀態,h=(h1,h2,...hn)是隱含層單元狀態,m,n分別為可見層和隱含層的單元數,是網絡的參數,是隱含層與可視層之間的連接矩陣,c=(c1,c2...cn),是隱含層單元的偏置,b=(b1,b2,...bm)是可視層單元的偏置。與一般的網絡不同的是,相同層的單元之間沒有直接連接關系。

圖5RBM的網絡結構

    事實上,RBM是一種基于能量理論的網絡模型(由一般的能量模型到RBM的演化,可以參考[6]中第5節“Energy-BasedModelsandBoltzmannMachines”中的詳細說明),對于能量模型來說,單元的狀態分布只需要滿足指數家族分布中的一種即可[92],對于不同的實際問題可以選擇不同的分布,但有些分布會使模型很難訓練[32]。使所有的單元狀態分布滿足伯努利分布,也即每個單元只有兩個狀態值,并選擇狀態空間為{0,1}時,也即對,可以帶來計算上的很多便利,并且0,1取值也有很好的物理含義,因此多數RBM的單元狀態值選擇{0,1}。

當每個單元的取值為{0,1}時,網絡的能量可以如下描述:

可視層與隱含層的聯合概率分布為:

Z是歸一項。可視層的分布p(v),也即p(v,h)的邊緣分布:

    對RBM網絡模型的訓練是希望最大化p(v)的對數似然,使用隨機梯度進行訓練,并且使用對比差異(ContrastiveDivergence)方法[13]進行梯度的近似計算。更細節的訓練方法可以參看[20],文章給出了很清晰的介紹,并且包含訓練RBM模型的偽代碼。

4.1.2深層波爾茲曼機(DBM)以及深度信任網絡(DBN)

    DBM與DBN都是基于RBM的深層前饋網絡,典型結構如圖6-左、6-中所示。二者有著很多相似,但也具有很多本質的不同,下面嘗試從以下三個方面進行說明:網絡結構、適用問題以及訓練方法。

    從網絡結構上來說,DBM和DBN都可以看作是層疊RBM網絡,都是一種概率圖模型,但是DBM是完全無向圖,可以對應于圖模型中的馬爾科夫隨機場;而DBN的網絡結構中只有最上面的兩層是無方向的,構成了真正的RBM,剩余的層之間是有向的,因此DBN是一種有向圖,可以對應于圖模型中含有很多隱含層以及稠密連接的Sigmoid信任網絡。

    DBM與DBN不同的網絡結構,使得二者適用的問題有所不同。由于DBM具備的結構特性,在輸入和輸出之間可以相互推理,使DBM網絡更適合構造自動編碼機進行特征編碼與提取[35][76]。而DBN中低層單元的狀態只受上一層的影響,也就是推理結構由輸出到輸入,也即由類別(輸出)可以推理出數據的分布(也就是初始輸入),因此DBN一般更適用于做分類[79]。

圖6基于RBM的FNNs典型結構。左:DBN的網絡結構,有向和無向混合圖模型;

中:DBM的網絡結構,無向概率圖模型;右:訓練DBM隱含層時的展開拓撲結構。

    從訓練方法上來看,二者都使用類似的訓練框架:首先使用大量的無標簽數據對網絡進行逐層貪婪的預訓練,然后使用一些有標簽的數據進行網絡參數的調整[8][10]。但是由于網絡結構的不同,二者在預訓練以及參數調整時會有所不同:對于DBN來說,由于網絡的有向性,在訓練時只需要把相鄰兩層看作一個RBM進行逐層訓練即可[8];但是對于DBM來說,除了第一層和最后一層,中間的每一層都受到兩方面的影響,在訓練時一般把相鄰兩層展開成一個三層神經網絡[85][36](如圖6-右所示)。

4.1.3激活函數

    我們知道在RBM模型中,神經單元的狀態取值{0,1},隱含層單元的狀態是根據輸入層的狀態取值以及權值矩陣計算出來的,但是計算的結果并不是0和1,這時往往對計算結果進行映射,然后再輸出給隱含層單元,由于選擇的這個映射函數決定了隱含單元的狀態是否被激活(取1表示激活),這個映射函數一般也被稱為激活函數(ActivationFunction)。

    激活函數一般具備以下兩個特征:可以將輸入映射到神經單元的取值空間;具有連續可導性,因為在網絡的訓練中需要進行梯度的計算。常用的兩個激活函數為Sigmoid函數(也稱為羅杰斯特函數)以及雙曲正切函數tanh,如圖7-左,其中

    Sigmoid函數更符合神經元的自然解釋(它將值映射到0和1,正好對應神經元的狀態,被激活取值為1,否則為0),并且適用較淺層的前饋網絡,如只有一個隱含層的多層感知機(MLP),而雙曲正切函數在深度前饋網絡的訓練中可以獲得更好的效果[28]。GlorotX等人[30]通過實驗展示了不同激活函數的選擇給前饋網絡的訓練帶來的影響。

 

圖7幾種激活函數曲線圖。左:比較常用的Sigmoid函數以及雙曲正切函數;

右:比較適用于稀疏數據的Rectifier函數以及其平滑形式;

Bengio等人[28]提出了適用于稀疏數據的校正神經元以及深度稀疏校正神經網絡,其激活函數是

而為了方便計算梯度,采用平滑形式[16]

    二者的函數曲線如圖7-右所示。這種激活函數更適合于數據本身具備很大稀疏的問題,如采用BOW或者VSM進行特征表示的文本分類問題,包含情感分析。

4.1.4FNNs在情感分析上的應用

    DBM以及DBN在被提出時多是應用于圖像相關領域(如MNIST數字手寫體識別[85]),目前也有很多研究人員借鑒在圖像處理中DBM與DBN的應用方法,將二者應用于文本情感分析中。

    比較通用的做法是將文本通過BOW模型表示成0,1特征向量,作為原始輸入,然后構建DBN模型,然后根據逐層貪婪的訓練方法對DBN進行訓練,得到可以直接進行分類的DBN網絡[76][96]。使用這種方式的主要工作在于三點:一是文檔集詞典的構建,選擇那些詞語作為詞典影響著文本的BOW特征表示,也對后續的訓練和分類效果有著很大的影響;二是網絡結構的構建,對于分類問題,網絡的輸入層單元數以及輸出層單元數是確定的,但是使用多少個隱含層以及每層使用多少單元需要仔細考慮,如何確定網絡結構目前還沒有很好的指導方法,需要實驗中積累經驗,一般網絡的規模與數據量的大小具有正相關關系;最后就是有訓練數據的標注,盡管對于DBN的訓練可以先使用大量的無標簽數據進行預訓練,但是在參數調整過程中也需要相對傳統機器學習方法較多的有標簽數據。

    在這個通用方法框架基礎上,有很多研究人員進行改進。SunX等人[86]將微博中由相互評論構成的社交關系引入特征中,與基于情感詞典獲取的特征一起構建了用于微博情感分析的特征向量,然后使用通用的DBN網絡模型進行中文微博的情感分析。ZhouS等人[101]將DBN網絡與主動學習(ActiveLearning)[11]方法相結合,利用主動學習方法得到需要標注的數據進行標注,再對DBN網絡進行參數調整,獲得了更好的情感正負分類效果。在[102]中,ZhouS等人引入了Fuzzy因素,先使用通過DBN訓練方法獲得模型參數,然后根據訓練好的模型計算Fuzzy因子,將Fuzzy因子加入DBN網絡,然后重新訓練得到最后的分類模型。

    除了使用DBN直接進行分類模型的訓練,還有可以使用DBM對文本進行編碼與特征提取,然后用提取出的特征訓練SVM等分類器,僅僅將深度網絡作為自動提取特征的工具。在[29]中GlorotX等人基于這種思想針對大量多領域商品評論數據的情感分析提出了領域自適應的深度學習方法。利用使用rectifier神經單元[28]的DBM自動編碼機對商品評論文本進行特征編碼,在訓練網絡的時候,將不同商品領域內的評論文本混合在一起作為訓練數據。用這種網絡提取的商品評論文本特征可以具備領域適應性,我們只需要使用某一個領域內的商品評論文本的特征以及情感標簽訓練出情感分類器(如SVM),這個情感分類器就可以對其他領域的商品評論文本進行情感分析。

4.2遞歸神經網絡(RNN)結構及其在文本情感分析應用

4.2.1標準RecursiveNN

    標準RecursiveNN模型由GollerC[25]以及SocherR[81]等提出,其網絡結構是一棵二叉樹,葉子節點是所處理問題的基本單元,如句子中的詞語以及圖像中的分割區域,非葉子節點是網絡的隱含節點,在處理的時候一般采用從低到上的方式進行。RecursiveNN模型主要有三種使用方式,一種是不固定網絡結構,希望自動地學習出這種層次性的結構,從而用于句子的詞法樹自動構建以及圖像不同分割區域關系的構建[81];第二種是根據詞法分析得到句子固定的網絡結構,將葉子節點處的詞語表示為向量并作為網絡的參數,然后通過訓練網絡模型得到詞語以及句子的向量表示[77][64];還可以通過固定網絡結構,來學習短語以及句子的情感極性,用于文本的情感分析,下面主要分析RecursiveNN模型在文本情感分析上的應用。

    為了更清楚的表述,我們以三個詞語長度的短語為例說明如何使用遞歸神經進行文本情感分析,如圖8-左上所示。對一個句子或者短語,首先進行詞法分析,獲得如圖所示的詞法樹,然后將處于葉子節點的詞語表示成d維的詞語向量,對于非葉子節點,也將其看作與詞語一樣的單元,其向量表示根據它的兩個子節點使用函數g進行計算。每個節點都會輸出它的情感標簽,對于節點a,其節點標簽可以由

    計算得出,可情感分類的權值矩陣,C是情感類別數目,d是詞語向量維度。對于目前提出的很多種RecursiveNN模型,它們在詞語表示和節點標簽輸出上使用的策略相同,不同的是如何計算隱含父節點的向量表示。

4.2.2隱含節點的計算

    在標準RecursiveNN中,將兩個子節點的向量表示拼接在一起,然后與父節點全連接,在輸出的時候一般采用雙曲正切函數,對于圖8-左上所示的三元詞組,p1,p2可以按照如下的組合方程計算:

    其中,是權值矩陣,也是標準RecursiveNN中關鍵的參數,它是全局共享的,也就是計算每一個隱含節點時,W是相同的。f(.)就是選擇的非線性輸出函數,并且對于輸入的向量是逐元素作用的。

    Socher等人[80]認為多數參數與詞語有關,并且根據非線性函數計算出來的長短語的向量表示與有所參與的詞語相關,在標準的RecursiveNN中,長短語中的很多詞語僅僅是通過隱含的關系進行相互作用,比如a、b、c共同組成了整個短語,但是a與b、c之間的相互作用很弱。基于這個想法,Soche等人[80]將每個詞語與短語都表示成一個向量和矩陣對的形式,如圖8-左下所示,提出了Matrix-VectorRecursiveNeuralNetwork(MV-RNN)。根據這種表示,隱含節點(p1,P1)可按如下的組合方程計算:

    其中每個詞語矩陣的大小是d*d,以及W與標準RecursiveNN中一樣,用來計算隱含節點的矩陣表示,并且也是全局共享的。(p2,P2)可以類似的計算。

    MV-RNN可以加強組成一個短語的所有詞語之間的相互作用,但是每個詞語以及隱含節點都使用一個矩陣來表示,使網絡參數的太多并且隨著短語長度的不同而變化。在[83]中,作者使用一個基于全局張量的組合方程對所有隱含節點進行計算,并將這種網絡稱為遞歸張量神經網絡(RecursiveNeuralTensorNetwork,RNTN),每個詞語與隱含節點仍然使用d維的詞語向量表示,以p1為例,可以如下計算:

式(22)、(23)中,f(.)以及W與標準RecursiveNN中一樣,是全局張量,每一個分量矩陣

,如圖8-右表示了詞向量維度是2時的情形。

4.2.3RecursiveNNs進行文本情感分析

    使用RecursiveNNs進行文本情感分析時主要需要考慮以下三個方面:詞語向量的初始化;網絡結構,也就是詞法結構的確定;訓練方法以及訓練數據的標注。

    詞語向量可以使用零均值,小方差的高斯噪聲進行隨機的初始化,但一般采用其他連續詞語向量學習方法(如第2節中的word2vec)等預先訓練出來的結果進行初始化可以獲取更好的效果[49][90][84]。

    對于網絡結構,一般是先通過詞法分析構建出詞法分析樹,在固定的樹形結構上構建網絡[83][77][49]。SocherR等人[84]通過引入重構誤差,逐步貪婪的自動構建網絡層次。重構就是根據父親節點的詞向量和重構連接矩陣來重構出兩個子節點的詞向量,根據重構子節點詞向量的與原子節點詞向量誤差來計算重構誤差。逐步貪婪就是每一次選擇兩個相鄰的節點作為兩個子節點,計算父節點的詞向量,然后重構兩個子節點向量,計算重構誤差,每次選擇當前重構誤差最小的組合進行合并,直到合并到根節點。

    對RecursiveNNs的訓練一般是采用有監督的方法,將最小化網絡中每個節點的情感分布與真實標注的誤差之和作為優化目標[83],采用隨機梯度下降以及反向傳播算法進行訓練。因此需要對訓練語句中的每個詞語和短語的情感極性進行標注,這是比較大的人工標注工作量,可以現有的情感詞典幫助訓練[83][77]。而SocherR等人[84]則使用了半監督的方法,在模型的優化目標中,除了考慮最小化情感標簽的誤差之和,還考慮了最小化所有節點的重構誤差之和,重構誤差的計算不需要標注數據。

4.3卷積神經網絡(CNNs)結構及其在文本情感分析應用

    CNNs最初主要由LeCunY等人提出并應用于圖像領域內的手寫體識別[50][53][51],基于深度CNNs構建的LeNet-5,取得了很好的效果。近年來,深度CNNs在圖像物體分類[42]、圖像語義分割[27]以及語音識別[23]中取得了令人矚目的成果。相比于其他深度網絡模型,CNNs主要具備以下特征:通過卷積核(convolutionkernel,很多文獻中也稱為filter)對輸入進行卷積計算,獲取局部的結構特征[51],并且可以逐層的提取更加接近語義層面的特征表示;通過權值共享的方式可以使用較少的參數來表示更多的神經元連接關系連接[3];可以使用多個通道(很多文獻中也稱為FeatureMaps)對輸入進行多維度的特征提取;在卷積層后的往往會有降采樣層(Subsampling,也常被稱為池化、Pooling),來降低網絡的復雜性。

    基于在圖像和語音領域中使用CNNs的經驗,目前有很多研究人員提出了對文本進行建模和分析的CNNs[47][51][45][40],這些網絡都借鑒了很多CNNs在圖像處理中的做法,但也有很多針對文本處理的改變,當前較為常用的三種用于文本建模和情感分析的CNNs構建方法,如圖9所示。

    基于深度CNNs的文本情感分析方法,一般具有如圖10所示的處理流程,下面對在文本情感分析的三種常用CNNs在各個步驟中的具體操作進行說明,在最后給出應用這些模型進行文本情感分析的方法概述。

4.3.1CNN結構中文本表示

    在用于文本處理中的CNN方法中,首先使用連續向量的方式表示詞語,記為詞典中索引序號為j的詞語的列向量表示,一般先把詞典中所有詞語的向量表示用一個矩陣表示,|V|是詞典的大小,在使用詞語向量時用查表的方式獲取對應詞語的列向量表示:

    Wdic作為CNN網絡的參數,可以有以下處理方式:隨機的初始化,隨著網絡的訓練不斷調整;使用word2vec等方法學習到的詞向量初始化,并一直固定不變;使用詞語向量初始化,并隨著網絡的訓練進行微調。KimY[47]對這些方式都進行了嘗試,通過實驗表明最后一種方式可以獲取最好的效果,而第一種隨機初始化的方式效果最差。而對于長度為ι 的句子,可以按每個詞語在句子中的順序表示成矩陣的形式

    圖9常見的用于文本建模與情感分析的CNNs。左上:所示的網絡中對各個步驟采用的處理方式是比較常用的做法,記為CommonConvolutionalNeuralNetwork(C-CNN)[47];左下:將卷積操作應用于基于能量模型的RBM中,主要用于文本特征提取和降維,記為ConvolutionalRestrictedBoltzmannMachine(CRBM)[40];右:在每個池化層,采用Max-k池化方式,并且每一個池化層的k值動態計算,記為DynamicConvolutionalNeuralNetwork(DCNN)[45]。

圖10CNNs用于文本情感分析的一般處理步驟

4.3.2CNN關鍵步驟:

A、卷積操作

    在用于圖像的CNN網絡中的卷積操作都是矩陣卷積,并且不考慮邊緣補零,也就是將卷積核矩陣在被卷積輸入矩陣上進行滑動,來得到卷積后的結果矩陣。在用于文本情感分析的CNN網絡中,卷積操作有兩種,一種是類似于圖像中的矩陣滑動窗口形式的卷積,一種是向量形式的卷積。記卷積核為,被卷積輸入是句子的矩陣表示C-CNN(如圖9-左上)與CRBM(如圖9-左下)采用矩陣滑動窗口形式的卷積操作,取M的寬度NM=d,n為窗口大小,卷積后將得到一個向量c。

卷積窗口從句子起始詞語到末尾詞語滑動,一般有兩種方式。C-CNN中卷積核與句子起始詞語對齊,每次滑動一個詞語,直到句子末尾,這種情形下c中每一個元素cj可以如下計算:

    在很多文章中,會將這種方式表示成把窗口內的詞語向量拼接成長向量,然后再進行卷積的形式,如[18][2][14],其數學本質與上面所述是一致的。

CRBM中采用n-gram方式,以當前詞語為中心,取前后各(n-1)/2大小的窗口,每次滑動一個詞語,并對進行補零,這種情形下c中每一個元素cj可以如下計算:

DCNN中采用了向量形式的卷積操作,卷積核M的寬度NM也取d,將S以及M中的對應列分別進行向量卷積形式,最后卷積的結果是一個矩陣C。記:

為列向量。

在向量形式的卷積操作中,對卷積核向量與被卷積向量進行卷積操作得到的結果c中的每一個元素cj,可以如下計算:

根據式(26)可以導出兩種操作方式:narrow方式要求ι≥ n ,并使得;wide方式對二者的大小沒有要求,將使,對c中j≤ n-1以及j>ι的元素計算,將會導致對s的索引超出邊界,這時采用補零處理。在DCNN中使用了wide方式,因此

B、多通道卷積

    在CNN網絡中,為了可以獲取輸入的更多維度特征,往往會使用多個卷積核進行特征提取,借助于圖像里面的彩色通道概念,也常稱為多通道卷積。在處理文本情感分析的CNN網絡,根據卷積方法以及網絡結構的不同,對多通道卷積會有不同的處理方式。一般來說,使用矩陣滑動窗口卷積方式,每個卷積通道可以得到一個結果向量,相互之間沒有影響。而對于使用列向量分量形式的卷積方式,每個卷積通道得到一個結果矩陣,可以作為后續卷積層的輸入(一般還會經過Pooling和分線性映射,這里先忽略)。在后續卷積層進行卷積時,每個通道的輸入是上一層所有的卷積結果矩陣,如圖9-右所示,我們記Cji為第j卷積層的第i通道的卷積結果,Mji為j卷積層第i個第卷積核,j卷積層共有mj個通道,那么第j+1卷積層的輸出結果是:

*表示卷積操作。

C、池化(Pooling)

    在CNN網絡中,卷積層之后一般都會有一個池化層進行降采樣,池化層的主要目的是降低經過卷積操作后獲取的局部特征的維度,并且對這些特征進行整合,獲取更高層次的特征。常用的池化方法有以下幾種:MaxPooling,k-MaxPooling,Dynamick-MaxPooling以及Folding。

    MaxPooling適用于采用滑動窗口卷積方式的網絡:每個通道在卷積操作后得到一個列向量,取每個列向量的最大值,組成新的特征向量,輸出給全連接層。使用MaxPooling的CNN網絡,一般只含有一個卷積層,因為在Pooling后輸入已經轉換成一維向量,不再適合進行卷積操作。類似于MaxPooling的方式,也可以取卷積后得到列向量的最小值或者平均值。

    k-MaxPooling適用于采用列向量分量卷積方式的網絡:每個通過在卷積操作后得到一個矩陣,取矩陣中每一列的最大k值組成新的矩陣。k-MaxPooling相當于把原來的句子長度變為了固定的k,為處理不同長度的文本提供了便利。在Pooling后得到的依然是矩陣,可以繼續添加卷積層進行更高層次特征的提取。一般我們希望獲取的特征維度是逐步降低的,因此每一個卷積層之后的Pooling層所取的k值是需要逐步減小的,這種可以動態變化k值的Pooling方法稱為Dynamick-MaxPooling。第j Pooling層的k值可以如下計算:

    其中,Ktop是設定最后一個Pooling層的值,J為Pooling層的個數,ι是文本句子長度,[]是向上取整函數。

    Folding則類似于圖像卷積層后的降采樣,通過把相鄰兩個列向量以取平均、最大或最小的方式進行合并,把維度為ι xd的矩陣將采樣為lxd/2。

D、非線性映射

    對于多層CNN網絡,有時在卷積以及Pooling后,并不會直接輸入給下一個卷積層,而是經過一個非線性函數映射后,再輸入給下一層,常用的函數有Tanh,Sigmoid,Rectier等。Rectier函數在文本處理中是一個比較好的選擇,在[47]中作者使用實驗進行了說明。事實上,我們從三個函數的形狀以及導函數中也可以看出Rectier函數的一些好處,它的導函數在大于0的時候為1,可以很好的把后一層的誤差傳播回前一層,會加快訓練的收斂速度。 

F、全連接層

    類似于C-CNN和DCNN這樣直接應用于情感分類的網絡,都會在最后的Pooling層之后加上若干層全連接層。只接一個全連接層的網絡一般使用Softmax分類方法進行文本情感類別的判斷;而連接多個全連接層的網絡,則把后面的全連接部分當作一個多層感知機,并使用dropout[34]方式優化網絡的訓練方式。

4.3.3CNN在文本情感分析應用

    使用CNNs網絡進行文本情感分析有兩個主流的用法:一種是在CNNs網絡的最后加上若干全連接層,直接進行文本情感分類[47][45][18][73][14][47];另外一種是使用CNNs進行文本的特征提取,然后使用SVM等分類器進行情感分類[40][2][69]。

    KimY[47]利用類似C-CNN的網絡處理包含情感分類在內的許多語句分類問題,不同的是,在初始輸入時,就采用了兩個通道:一個是使用word2vec訓練好的詞向量進行詞語和文本表示,并且這些詞語向量是固定的,稱為靜態特征通道;另外一個與第一個類似,但是會在整個CNN網絡的訓練過程中進行微調,稱為動態特征通道。Dos-SantosCN等人[18]采用深度卷積神經網絡來做電影評論和Twitter文本的情感正負分類,與一般的詞語表示不同,作者在學習詞語的向量表示時加入了字符級別的詞語向量。字符級別的詞語向量的學習類似于由詞語向量獲取句子向量的方式:將字符詞典中的每個字符表示成向量形式,然后使用類似C-CNN的網絡獲取詞語字符級別的向量表示。得到詞語的字符級別的向量表示之后,加入詞語級別的向量表示,再使用類似C-CNN的網絡學習語句的向量表示,然后輸入全連接層進行情感正負分類。

    HuynhT等人[40]提出了CRBM網絡,用于逐層的學習文本特征,然后進行商品評論的主觀性和情感正負的分類。如前面對CRBM網絡的介紹,每次使用k個相同大小但權值不同的卷積核對輸入的句子矩陣進行卷積,將詞語向量的維度由d變為k。每次卷積操作后不進行Pooling以及其他的處理,直接輸入給下一個卷積層。在最后一次卷積后,將句子中所有的詞語向量相加取平均,作為句子的特征向量,訓練SVM并進行分類。

4.4循環神經網絡(RNNs)結構及其在文本情感分析應用

    循環神經網絡(RecurrentNNs)有著很長時間的發展歷史,可參考[97]中介紹,主要被應用于語音處理相關問題,近年來,RecurrentNNs被廣泛應用于文本處理相關問題,可以參見總結的文章列表。本文主要對基礎的RecurrentNNs以及最常用的變種網絡進行介紹,并將使用RecurrentNNs進行文本建模和情感分析的方法進行總結。

4.4.1基礎RecurrentNNs

    與其他幾種神經網絡不同的是,RecurrentNNs的每個單元的狀態是帶有時序的(時序可以對應于文本中文字出現的先后順序),其隱含層的輸出可以被緩存起來,作為下一個時序輸入的一部分,因此RecurrentNNs中的隱含層單元一般也被稱為記憶單元。隱含層上一時序的狀態被緩存起來,在本時序與輸入層一起作為隱含層的廣義輸入,廣義輸入與隱含層是全連接的。如圖11-左所示,我們以含有一個隱含層的基礎RecurrentNN為例,對網絡結構和訓練方法進行討論。

    記xt為輸入,對于文本情感分析問題,一般是當前n-gram詞組或者句子的詞語向量拼接向量,每個時序處理一個n-gram詞組或者一個句子。記ht為隱含層,yt為輸出,網絡各層單元的值可以看作帶有時序的狀態,t為當前處理時序。記U、W、H分別為隱含層上一時序的緩存與隱含層之間、輸入層與隱含層之間、隱含層與輸出層之間的全連接權值矩陣。各層的狀態更新方程如下:

f(.),g(.)表示非線性激活函數,一般f(.)選用Sigmoid函數,g(.)選擇Sigmoid函數或者tanh函數。

    RecurrentNNs在計算當前時序的狀態時,可以考慮前面很多時序的影響,對應于文本就是可以處理當前詞組(語句)之前的很多詞組(語句)的影響。網絡的節點狀態具有時序關系,在訓練的時候也與其他的網絡有所不同,常用的方式是基于時序的反向傳播算法(Back-PropagationThroughTime,BPTT)[5][70]。如圖11-中所示,我們將相鄰三個時序的節點關系展開,進行反向傳播時的梯度傳播路徑,事實上,在正向的狀態計算時,實質也是將需要考慮的時序進行類似的展開。

4.4.2Long-Short-Term-Memory

    基本的RecurrentNNs具有較大的缺陷:很難考慮較遠時間前、后輸入的影響作用(對應于文本語句的建模就是無法處理較長長度的句子),當時序序列過長,訓練網絡時會出現梯度膨脹和消失問題[31][66],導致無法學習網絡參數。

    針對基礎RecurrentNNs的缺陷,人們提出了很多使用門的記憶單元來構建網絡。

    中Long-Short-Term-Memory(LSTM)[26][39]可以根據輸入和記憶單元的狀態自動地決定隱含單元的動作:遺忘記憶狀態、接收輸入、輸出狀態值到后續網絡層,是目前RecurrentNNs中使用最廣泛的隱含記憶單元。

    常用的LSTM單元如圖11-右所示。從LSTM單元外部來說,對于使用LSTM構建的網絡,它與基礎RecurrentNNs中隱含單元是類似的:接收輸入層的輸入xt,經過非線性映射向下一層傳遞本層的輸出值ht。在LSTM內部,除了可以緩存上一時序的隱含層狀態之外,還添加了分別控制接受輸入、進行輸出以及選擇遺忘的“門”,分別使用git、got、gft表示在當前時序t時三個門的開閉狀態。控制三個門的輸入是相同的:當前時序的輸入xt以及隱含層緩存狀態st-1,因此我們也知道,對于同一隱含層的不同LSTM單元,它們共享三個門的狀態。不同的是各自的權值矩陣,分別用Wi、Wo、Wf表示輸入與三個門之間的連接權值矩陣Ui、Uo、Uf,表示隱含層緩存狀態與三個門之間的連接權值矩陣。在時序t時,三個門的開關狀態可以如下計算:

其中σ (.)表示Sigmoid函數。隱含單元的內部狀態st以及輸出ht按如下方程更新:

    對由LSTM單元構建的RecurrentNNs,訓練方法也是采用BPTT的思路。除了LSTM,目前也有許多基于“門”的RecurrentNNs單元[12][88],它們的主要思想基本一致,都是希望這些記憶單元可以自動地處理時序關系,可以自動地決定記憶單元的數據輸入、狀態輸出以及記憶遺忘。

4.4.3基于RecurrentNNs的文本情感分析

    將RecurrentNNs應用于文本情感分析問題的處理,主要有兩種方式。第一種基于語言模型對文本詞語序列進行建模,然后學習詞語向量表示[59][75]。對于詞語的處理方法與word2vec方法中很類似,都是將詞語表示成詞語向量。然后在每個時序向RecurrentNNs輸入一個n-gram詞組的詞語向量(由各個詞語的詞語向量拼接而成),模型的輸出是對n-gram詞組的中心詞語的概率分布進行估計。

    第二種方式是對語句或者文檔進行建模,獲取語句或者文檔的向量形式特征,然后再進行文本情感分析。RongW等人[72]使用含有兩層基礎回環隱含層的網絡組成對偶形式的RecurrentNN來學習電影評論語句的向量表示,然后分析這些影評的情感分布。KirosR等人[46]以及TangD等人[75]則使用基于門單元構建的深度網絡對語句進行建模。

4.5深度網絡的參數學習

    一般來說,對于深度網絡的參數訓練都是采用基于SGD的BP算法,根據所處理的具體問題并結合使用的網絡結構定義需要優化的目標函數,確定需要解決的優化問題,將對網絡參數的訓練轉化為對優化問題的求解。

    深度學習方法中求解優化問題的方法一般都是使用SGD算法,當然是否有其他更好的優化方法,是一個值得探索的問題。其關鍵在于如何將在輸出層產生的參數梯度傳播到中間的隱含層以及輸入層,來更新網絡參數。當網絡結構確定時,反向傳播的過程一般就可以方便的進行:對于FNNs以及RecursiveNNs,梯度反向傳播的過程就是輸出正向計算的逆過程;而對于CNNs,由于Pooling層的存在,在Pooling前后層之間的梯度傳播需要更多的考慮,如對于Max-Pooling方式,梯度反向傳播時將梯度按照Pooling前所有單元值進行加權平均分配還是直接將梯度全部給予具有最大值的單元。

    關于深度網絡模型的具體訓練方式,本文沒有一一給出詳細說明,BP算法更像是一種訓練框架而不是具體的某種具體算法,不同的網絡以及不同問題定義出的目標函數都會導致BP算法中梯度計算方式的不同,我們很難統一的給出BP算法的具體過程,每種深度網絡的具體訓練方式,請參閱相關文獻。CNNs在文本建模和文本情感分析問題中被廣泛使用,在附錄A中我們給出了一個淺層CNN網絡的梯度推導,并給出了一種在多核集群中,基于MPI的訓練方法。(未完待續)

中傳動網版權與免責聲明:

凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

伺服與運動控制

關注伺服與運動控制公眾號獲取更多資訊

直驅與傳動

關注直驅與傳動公眾號獲取更多資訊

中國傳動網

關注中國傳動網公眾號獲取更多資訊

熱搜詞
  • 運動控制
  • 伺服系統
  • 機器視覺
  • 機械傳動
  • 編碼器
  • 直驅系統
  • 工業電源
  • 電力電子
  • 工業互聯
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機界面
  • PLC
  • 電氣聯接
  • 工業機器人
  • 低壓電器
  • 機柜
回頂部
點贊 0
取消 0
往期雜志
  • 2025年 第1期

    2025年 第1期

    伺服與運動控制

    2025年 第1期

  • 2024年第1期

    2024年第1期

    伺服與運動控制

    2024年第1期

  • 2023年第4期

    2023年第4期

    伺服與運動控制

    2023年第4期

  • 2023年第3期

    2023年第3期

    伺服與運動控制

    2023年第3期

  • 2023年第2期

    2023年第2期

    伺服與運動控制

    2023年第2期