技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 用于文本情感分析的深度學(xué)習(xí)方法綜述

用于文本情感分析的深度學(xué)習(xí)方法綜述

時(shí)間:2018-11-22 13:12:52來(lái)源:清華大學(xué)深圳研究院 楊余久

導(dǎo)語(yǔ):?文本情感分析旨在對(duì)蘊(yùn)涵在文本中的觀點(diǎn)和情感進(jìn)行挖掘和分析,進(jìn)而可以在個(gè)性化服務(wù)、推薦系統(tǒng)、輿情監(jiān)測(cè)和產(chǎn)品調(diào)研等應(yīng)用方面提升性能。

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

3.3字符級(jí)別

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

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

4  深度學(xué)習(xí)的文本情感分析方法

4.1前饋神經(jīng)網(wǎng)絡(luò)(FNNs)結(jié)構(gòu)及其在文本情感分析應(yīng)用

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

4.1.1受限玻爾茲曼機(jī)(RBM)

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

圖5RBM的網(wǎng)絡(luò)結(jié)構(gòu)

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

當(dāng)每個(gè)單元的取值為{0,1}時(shí),網(wǎng)絡(luò)的能量可以如下描述:

可視層與隱含層的聯(lián)合概率分布為:

Z是歸一項(xiàng)??梢晫拥姆植紁(v),也即p(v,h)的邊緣分布:

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

4.1.2深層波爾茲曼機(jī)(DBM)以及深度信任網(wǎng)絡(luò)(DBN)

DBM與DBN都是基于RBM的深層前饋網(wǎng)絡(luò),典型結(jié)構(gòu)如圖6-左、6-中所示。二者有著很多相似,但也具有很多本質(zhì)的不同,下面嘗試從以下三個(gè)方面進(jìn)行說(shuō)明:網(wǎng)絡(luò)結(jié)構(gòu)、適用問(wèn)題以及訓(xùn)練方法。

從網(wǎng)絡(luò)結(jié)構(gòu)上來(lái)說(shuō),DBM和DBN都可以看作是層疊RBM網(wǎng)絡(luò),都是一種概率圖模型,但是DBM是完全無(wú)向圖,可以對(duì)應(yīng)于圖模型中的馬爾科夫隨機(jī)場(chǎng);而DBN的網(wǎng)絡(luò)結(jié)構(gòu)中只有最上面的兩層是無(wú)方向的,構(gòu)成了真正的RBM,剩余的層之間是有向的,因此DBN是一種有向圖,可以對(duì)應(yīng)于圖模型中含有很多隱含層以及稠密連接的Sigmoid信任網(wǎng)絡(luò)。

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

圖6基于RBM的FNNs典型結(jié)構(gòu)。左:DBN的網(wǎng)絡(luò)結(jié)構(gòu),有向和無(wú)向混合圖模型;

中:DBM的網(wǎng)絡(luò)結(jié)構(gòu),無(wú)向概率圖模型;右:訓(xùn)練DBM隱含層時(shí)的展開(kāi)拓?fù)浣Y(jié)構(gòu)。

從訓(xùn)練方法上來(lái)看,二者都使用類似的訓(xùn)練框架:首先使用大量的無(wú)標(biāo)簽數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行逐層貪婪的預(yù)訓(xùn)練,然后使用一些有標(biāo)簽的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)參數(shù)的調(diào)整[8][10]。但是由于網(wǎng)絡(luò)結(jié)構(gòu)的不同,二者在預(yù)訓(xùn)練以及參數(shù)調(diào)整時(shí)會(huì)有所不同:對(duì)于DBN來(lái)說(shuō),由于網(wǎng)絡(luò)的有向性,在訓(xùn)練時(shí)只需要把相鄰兩層看作一個(gè)RBM進(jìn)行逐層訓(xùn)練即可[8];但是對(duì)于DBM來(lái)說(shuō),除了第一層和最后一層,中間的每一層都受到兩方面的影響,在訓(xùn)練時(shí)一般把相鄰兩層展開(kāi)成一個(gè)三層神經(jīng)網(wǎng)絡(luò)[85][36](如圖6-右所示)。

4.1.3激活函數(shù)

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

激活函數(shù)一般具備以下兩個(gè)特征:可以將輸入映射到神經(jīng)單元的取值空間;具有連續(xù)可導(dǎo)性,因?yàn)樵诰W(wǎng)絡(luò)的訓(xùn)練中需要進(jìn)行梯度的計(jì)算。常用的兩個(gè)激活函數(shù)為Sigmoid函數(shù)(也稱為羅杰斯特函數(shù))以及雙曲正切函數(shù)tanh,如圖7-左,其中

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

 

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

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

Bengio等人[28]提出了適用于稀疏數(shù)據(jù)的校正神經(jīng)元以及深度稀疏校正神經(jīng)網(wǎng)絡(luò),其激活函數(shù)是

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

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

4.1.4FNNs在情感分析上的應(yīng)用

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

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

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

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

4.2遞歸神經(jīng)網(wǎng)絡(luò)(RNN)結(jié)構(gòu)及其在文本情感分析應(yīng)用

4.2.1標(biāo)準(zhǔn)RecursiveNN

標(biāo)準(zhǔn)RecursiveNN模型由GollerC[25]以及SocherR[81]等提出,其網(wǎng)絡(luò)結(jié)構(gòu)是一棵二叉樹(shù),葉子節(jié)點(diǎn)是所處理問(wèn)題的基本單元,如句子中的詞語(yǔ)以及圖像中的分割區(qū)域,非葉子節(jié)點(diǎn)是網(wǎng)絡(luò)的隱含節(jié)點(diǎn),在處理的時(shí)候一般采用從低到上的方式進(jìn)行。RecursiveNN模型主要有三種使用方式,一種是不固定網(wǎng)絡(luò)結(jié)構(gòu),希望自動(dòng)地學(xué)習(xí)出這種層次性的結(jié)構(gòu),從而用于句子的詞法樹(shù)自動(dòng)構(gòu)建以及圖像不同分割區(qū)域關(guān)系的構(gòu)建[81];第二種是根據(jù)詞法分析得到句子固定的網(wǎng)絡(luò)結(jié)構(gòu),將葉子節(jié)點(diǎn)處的詞語(yǔ)表示為向量并作為網(wǎng)絡(luò)的參數(shù),然后通過(guò)訓(xùn)練網(wǎng)絡(luò)模型得到詞語(yǔ)以及句子的向量表示[77][64];還可以通過(guò)固定網(wǎng)絡(luò)結(jié)構(gòu),來(lái)學(xué)習(xí)短語(yǔ)以及句子的情感極性,用于文本的情感分析,下面主要分析RecursiveNN模型在文本情感分析上的應(yīng)用。

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

計(jì)算得出,可情感分類的權(quán)值矩陣,C是情感類別數(shù)目,d是詞語(yǔ)向量維度。對(duì)于目前提出的很多種RecursiveNN模型,它們?cè)谠~語(yǔ)表示和節(jié)點(diǎn)標(biāo)簽輸出上使用的策略相同,不同的是如何計(jì)算隱含父節(jié)點(diǎn)的向量表示。

4.2.2隱含節(jié)點(diǎn)的計(jì)算

在標(biāo)準(zhǔn)RecursiveNN中,將兩個(gè)子節(jié)點(diǎn)的向量表示拼接在一起,然后與父節(jié)點(diǎn)全連接,在輸出的時(shí)候一般采用雙曲正切函數(shù),對(duì)于圖8-左上所示的三元詞組,p1,p2可以按照如下的組合方程計(jì)算:

其中,是權(quán)值矩陣,也是標(biāo)準(zhǔn)RecursiveNN中關(guān)鍵的參數(shù),它是全局共享的,也就是計(jì)算每一個(gè)隱含節(jié)點(diǎn)時(shí),W是相同的。f(.)就是選擇的非線性輸出函數(shù),并且對(duì)于輸入的向量是逐元素作用的。

Socher等人[80]認(rèn)為多數(shù)參數(shù)與詞語(yǔ)有關(guān),并且根據(jù)非線性函數(shù)計(jì)算出來(lái)的長(zhǎng)短語(yǔ)的向量表示與有所參與的詞語(yǔ)相關(guān),在標(biāo)準(zhǔn)的RecursiveNN中,長(zhǎng)短語(yǔ)中的很多詞語(yǔ)僅僅是通過(guò)隱含的關(guān)系進(jìn)行相互作用,比如a、b、c共同組成了整個(gè)短語(yǔ),但是a與b、c之間的相互作用很弱?;谶@個(gè)想法,Soche等人[80]將每個(gè)詞語(yǔ)與短語(yǔ)都表示成一個(gè)向量和矩陣對(duì)的形式,如圖8-左下所示,提出了Matrix-VectorRecursiveNeuralNetwork(MV-RNN)。根據(jù)這種表示,隱含節(jié)點(diǎn)(p1,P1)可按如下的組合方程計(jì)算:

其中每個(gè)詞語(yǔ)矩陣的大小是d*d,以及W與標(biāo)準(zhǔn)RecursiveNN中一樣,用來(lái)計(jì)算隱含節(jié)點(diǎn)的矩陣表示,并且也是全局共享的。(p2,P2)可以類似的計(jì)算。

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

式(22)、(23)中,f(.)以及W與標(biāo)準(zhǔn)RecursiveNN中一樣,是全局張量,每一個(gè)分量矩陣

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

4.2.3RecursiveNNs進(jìn)行文本情感分析

使用RecursiveNNs進(jìn)行文本情感分析時(shí)主要需要考慮以下三個(gè)方面:詞語(yǔ)向量的初始化;網(wǎng)絡(luò)結(jié)構(gòu),也就是詞法結(jié)構(gòu)的確定;訓(xùn)練方法以及訓(xùn)練數(shù)據(jù)的標(biāo)注。

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

對(duì)于網(wǎng)絡(luò)結(jié)構(gòu),一般是先通過(guò)詞法分析構(gòu)建出詞法分析樹(shù),在固定的樹(shù)形結(jié)構(gòu)上構(gòu)建網(wǎng)絡(luò)[83][77][49]。SocherR等人[84]通過(guò)引入重構(gòu)誤差,逐步貪婪的自動(dòng)構(gòu)建網(wǎng)絡(luò)層次。重構(gòu)就是根據(jù)父親節(jié)點(diǎn)的詞向量和重構(gòu)連接矩陣來(lái)重構(gòu)出兩個(gè)子節(jié)點(diǎn)的詞向量,根據(jù)重構(gòu)子節(jié)點(diǎn)詞向量的與原子節(jié)點(diǎn)詞向量誤差來(lái)計(jì)算重構(gòu)誤差。逐步貪婪就是每一次選擇兩個(gè)相鄰的節(jié)點(diǎn)作為兩個(gè)子節(jié)點(diǎn),計(jì)算父節(jié)點(diǎn)的詞向量,然后重構(gòu)兩個(gè)子節(jié)點(diǎn)向量,計(jì)算重構(gòu)誤差,每次選擇當(dāng)前重構(gòu)誤差最小的組合進(jìn)行合并,直到合并到根節(jié)點(diǎn)。

對(duì)RecursiveNNs的訓(xùn)練一般是采用有監(jiān)督的方法,將最小化網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的情感分布與真實(shí)標(biāo)注的誤差之和作為優(yōu)化目標(biāo)[83],采用隨機(jī)梯度下降以及反向傳播算法進(jìn)行訓(xùn)練。因此需要對(duì)訓(xùn)練語(yǔ)句中的每個(gè)詞語(yǔ)和短語(yǔ)的情感極性進(jìn)行標(biāo)注,這是比較大的人工標(biāo)注工作量,可以現(xiàn)有的情感詞典幫助訓(xùn)練[83][77]。而SocherR等人[84]則使用了半監(jiān)督的方法,在模型的優(yōu)化目標(biāo)中,除了考慮最小化情感標(biāo)簽的誤差之和,還考慮了最小化所有節(jié)點(diǎn)的重構(gòu)誤差之和,重構(gòu)誤差的計(jì)算不需要標(biāo)注數(shù)據(jù)。

4.3卷積神經(jīng)網(wǎng)絡(luò)(CNNs)結(jié)構(gòu)及其在文本情感分析應(yīng)用

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

基于在圖像和語(yǔ)音領(lǐng)域中使用CNNs的經(jīng)驗(yàn),目前有很多研究人員提出了對(duì)文本進(jìn)行建模和分析的CNNs[47][51][45][40],這些網(wǎng)絡(luò)都借鑒了很多CNNs在圖像處理中的做法,但也有很多針對(duì)文本處理的改變,當(dāng)前較為常用的三種用于文本建模和情感分析的CNNs構(gòu)建方法,如圖9所示。

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

4.3.1CNN結(jié)構(gòu)中文本表示

在用于文本處理中的CNN方法中,首先使用連續(xù)向量的方式表示詞語(yǔ),記為詞典中索引序號(hào)為j的詞語(yǔ)的列向量表示,一般先把詞典中所有詞語(yǔ)的向量表示用一個(gè)矩陣表示,|V|是詞典的大小,在使用詞語(yǔ)向量時(shí)用查表的方式獲取對(duì)應(yīng)詞語(yǔ)的列向量表示:

Wdic作為CNN網(wǎng)絡(luò)的參數(shù),可以有以下處理方式:隨機(jī)的初始化,隨著網(wǎng)絡(luò)的訓(xùn)練不斷調(diào)整;使用word2vec等方法學(xué)習(xí)到的詞向量初始化,并一直固定不變;使用詞語(yǔ)向量初始化,并隨著網(wǎng)絡(luò)的訓(xùn)練進(jìn)行微調(diào)。KimY[47]對(duì)這些方式都進(jìn)行了嘗試,通過(guò)實(shí)驗(yàn)表明最后一種方式可以獲取最好的效果,而第一種隨機(jī)初始化的方式效果最差。而對(duì)于長(zhǎng)度為ι 的句子,可以按每個(gè)詞語(yǔ)在句子中的順序表示成矩陣的形式

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

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

4.3.2CNN關(guān)鍵步驟:

A、卷積操作

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

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

在很多文章中,會(huì)將這種方式表示成把窗口內(nèi)的詞語(yǔ)向量拼接成長(zhǎng)向量,然后再進(jìn)行卷積的形式,如[18][2][14],其數(shù)學(xué)本質(zhì)與上面所述是一致的。

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

DCNN中采用了向量形式的卷積操作,卷積核M的寬度NM也取d,將S以及M中的對(duì)應(yīng)列分別進(jìn)行向量卷積形式,最后卷積的結(jié)果是一個(gè)矩陣C。記:

為列向量。

在向量形式的卷積操作中,對(duì)卷積核向量與被卷積向量進(jìn)行卷積操作得到的結(jié)果c中的每一個(gè)元素cj,可以如下計(jì)算:

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

B、多通道卷積

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

*表示卷積操作。

C、池化(Pooling)

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

MaxPooling適用于采用滑動(dòng)窗口卷積方式的網(wǎng)絡(luò):每個(gè)通道在卷積操作后得到一個(gè)列向量,取每個(gè)列向量的最大值,組成新的特征向量,輸出給全連接層。使用MaxPooling的CNN網(wǎng)絡(luò),一般只含有一個(gè)卷積層,因?yàn)樵赑ooling后輸入已經(jīng)轉(zhuǎn)換成一維向量,不再適合進(jìn)行卷積操作。類似于MaxPooling的方式,也可以取卷積后得到列向量的最小值或者平均值。

k-MaxPooling適用于采用列向量分量卷積方式的網(wǎng)絡(luò):每個(gè)通過(guò)在卷積操作后得到一個(gè)矩陣,取矩陣中每一列的最大k值組成新的矩陣。k-MaxPooling相當(dāng)于把原來(lái)的句子長(zhǎng)度變?yōu)榱斯潭ǖ膋,為處理不同長(zhǎng)度的文本提供了便利。在Pooling后得到的依然是矩陣,可以繼續(xù)添加卷積層進(jìn)行更高層次特征的提取。一般我們希望獲取的特征維度是逐步降低的,因此每一個(gè)卷積層之后的Pooling層所取的k值是需要逐步減小的,這種可以動(dòng)態(tài)變化k值的Pooling方法稱為Dynamick-MaxPooling。第j Pooling層的k值可以如下計(jì)算:

其中,Ktop是設(shè)定最后一個(gè)Pooling層的值,J為Pooling層的個(gè)數(shù),ι是文本句子長(zhǎng)度,[]是向上取整函數(shù)。

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

D、非線性映射

對(duì)于多層CNN網(wǎng)絡(luò),有時(shí)在卷積以及Pooling后,并不會(huì)直接輸入給下一個(gè)卷積層,而是經(jīng)過(guò)一個(gè)非線性函數(shù)映射后,再輸入給下一層,常用的函數(shù)有Tanh,Sigmoid,Rectier等。Rectier函數(shù)在文本處理中是一個(gè)比較好的選擇,在[47]中作者使用實(shí)驗(yàn)進(jìn)行了說(shuō)明。事實(shí)上,我們從三個(gè)函數(shù)的形狀以及導(dǎo)函數(shù)中也可以看出Rectier函數(shù)的一些好處,它的導(dǎo)函數(shù)在大于0的時(shí)候?yàn)?,可以很好的把后一層的誤差傳播回前一層,會(huì)加快訓(xùn)練的收斂速度。

F、全連接層

類似于C-CNN和DCNN這樣直接應(yīng)用于情感分類的網(wǎng)絡(luò),都會(huì)在最后的Pooling層之后加上若干層全連接層。只接一個(gè)全連接層的網(wǎng)絡(luò)一般使用Softmax分類方法進(jìn)行文本情感類別的判斷;而連接多個(gè)全連接層的網(wǎng)絡(luò),則把后面的全連接部分當(dāng)作一個(gè)多層感知機(jī),并使用dropout[34]方式優(yōu)化網(wǎng)絡(luò)的訓(xùn)練方式。

4.3.3CNN在文本情感分析應(yīng)用

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

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

HuynhT等人[40]提出了CRBM網(wǎng)絡(luò),用于逐層的學(xué)習(xí)文本特征,然后進(jìn)行商品評(píng)論的主觀性和情感正負(fù)的分類。如前面對(duì)CRBM網(wǎng)絡(luò)的介紹,每次使用k個(gè)相同大小但權(quán)值不同的卷積核對(duì)輸入的句子矩陣進(jìn)行卷積,將詞語(yǔ)向量的維度由d變?yōu)閗。每次卷積操作后不進(jìn)行Pooling以及其他的處理,直接輸入給下一個(gè)卷積層。在最后一次卷積后,將句子中所有的詞語(yǔ)向量相加取平均,作為句子的特征向量,訓(xùn)練SVM并進(jìn)行分類。

4.4循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)結(jié)構(gòu)及其在文本情感分析應(yīng)用

循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNNs)有著很長(zhǎng)時(shí)間的發(fā)展歷史,可參考[97]中介紹,主要被應(yīng)用于語(yǔ)音處理相關(guān)問(wèn)題,近年來(lái),RecurrentNNs被廣泛應(yīng)用于文本處理相關(guān)問(wèn)題,可以參見(jiàn)總結(jié)的文章列表。本文主要對(duì)基礎(chǔ)的RecurrentNNs以及最常用的變種網(wǎng)絡(luò)進(jìn)行介紹,并將使用RecurrentNNs進(jìn)行文本建模和情感分析的方法進(jìn)行總結(jié)。

4.4.1基礎(chǔ)RecurrentNNs

與其他幾種神經(jīng)網(wǎng)絡(luò)不同的是,RecurrentNNs的每個(gè)單元的狀態(tài)是帶有時(shí)序的(時(shí)序可以對(duì)應(yīng)于文本中文字出現(xiàn)的先后順序),其隱含層的輸出可以被緩存起來(lái),作為下一個(gè)時(shí)序輸入的一部分,因此RecurrentNNs中的隱含層單元一般也被稱為記憶單元。隱含層上一時(shí)序的狀態(tài)被緩存起來(lái),在本時(shí)序與輸入層一起作為隱含層的廣義輸入,廣義輸入與隱含層是全連接的。如圖11-左所示,我們以含有一個(gè)隱含層的基礎(chǔ)RecurrentNN為例,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法進(jìn)行討論。

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

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

RecurrentNNs在計(jì)算當(dāng)前時(shí)序的狀態(tài)時(shí),可以考慮前面很多時(shí)序的影響,對(duì)應(yīng)于文本就是可以處理當(dāng)前詞組(語(yǔ)句)之前的很多詞組(語(yǔ)句)的影響。網(wǎng)絡(luò)的節(jié)點(diǎn)狀態(tài)具有時(shí)序關(guān)系,在訓(xùn)練的時(shí)候也與其他的網(wǎng)絡(luò)有所不同,常用的方式是基于時(shí)序的反向傳播算法(Back-PropagationThroughTime,BPTT)[5][70]。如圖11-中所示,我們將相鄰三個(gè)時(shí)序的節(jié)點(diǎn)關(guān)系展開(kāi),進(jìn)行反向傳播時(shí)的梯度傳播路徑,事實(shí)上,在正向的狀態(tài)計(jì)算時(shí),實(shí)質(zhì)也是將需要考慮的時(shí)序進(jìn)行類似的展開(kāi)。

4.4.2Long-Short-Term-Memory

基本的RecurrentNNs具有較大的缺陷:很難考慮較遠(yuǎn)時(shí)間前、后輸入的影響作用(對(duì)應(yīng)于文本語(yǔ)句的建模就是無(wú)法處理較長(zhǎng)長(zhǎng)度的句子),當(dāng)時(shí)序序列過(guò)長(zhǎng),訓(xùn)練網(wǎng)絡(luò)時(shí)會(huì)出現(xiàn)梯度膨脹和消失問(wèn)題[31][66],導(dǎo)致無(wú)法學(xué)習(xí)網(wǎng)絡(luò)參數(shù)。

針對(duì)基礎(chǔ)RecurrentNNs的缺陷,人們提出了很多使用門的記憶單元來(lái)構(gòu)建網(wǎng)絡(luò)。

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

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

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

對(duì)由LSTM單元構(gòu)建的RecurrentNNs,訓(xùn)練方法也是采用BPTT的思路。除了LSTM,目前也有許多基于“門”的RecurrentNNs單元[12][88],它們的主要思想基本一致,都是希望這些記憶單元可以自動(dòng)地處理時(shí)序關(guān)系,可以自動(dòng)地決定記憶單元的數(shù)據(jù)輸入、狀態(tài)輸出以及記憶遺忘。

4.4.3基于RecurrentNNs的文本情感分析

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

第二種方式是對(duì)語(yǔ)句或者文檔進(jìn)行建模,獲取語(yǔ)句或者文檔的向量形式特征,然后再進(jìn)行文本情感分析。RongW等人[72]使用含有兩層基礎(chǔ)回環(huán)隱含層的網(wǎng)絡(luò)組成對(duì)偶形式的RecurrentNN來(lái)學(xué)習(xí)電影評(píng)論語(yǔ)句的向量表示,然后分析這些影評(píng)的情感分布。KirosR等人[46]以及TangD等人[75]則使用基于門單元構(gòu)建的深度網(wǎng)絡(luò)對(duì)語(yǔ)句進(jìn)行建模。

4.5深度網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)

一般來(lái)說(shuō),對(duì)于深度網(wǎng)絡(luò)的參數(shù)訓(xùn)練都是采用基于SGD的BP算法,根據(jù)所處理的具體問(wèn)題并結(jié)合使用的網(wǎng)絡(luò)結(jié)構(gòu)定義需要優(yōu)化的目標(biāo)函數(shù),確定需要解決的優(yōu)化問(wèn)題,將對(duì)網(wǎng)絡(luò)參數(shù)的訓(xùn)練轉(zhuǎn)化為對(duì)優(yōu)化問(wèn)題的求解。

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

關(guān)于深度網(wǎng)絡(luò)模型的具體訓(xùn)練方式,本文沒(méi)有一一給出詳細(xì)說(shuō)明,BP算法更像是一種訓(xùn)練框架而不是具體的某種具體算法,不同的網(wǎng)絡(luò)以及不同問(wèn)題定義出的目標(biāo)函數(shù)都會(huì)導(dǎo)致BP算法中梯度計(jì)算方式的不同,我們很難統(tǒng)一的給出BP算法的具體過(guò)程,每種深度網(wǎng)絡(luò)的具體訓(xùn)練方式,請(qǐng)參閱相關(guān)文獻(xiàn)。CNNs在文本建模和文本情感分析問(wèn)題中被廣泛使用,在附錄A中我們給出了一個(gè)淺層CNN網(wǎng)絡(luò)的梯度推導(dǎo),并給出了一種在多核集群中,基于MPI的訓(xùn)練方法。(未完待續(xù))

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:iVu Color圖像傳感器獨(dú)門秘籍...

下一篇:如何正確選購(gòu)數(shù)據(jù)中心機(jī)柜

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)