張浩洋 夏偉賢 熊聰聰 趙叢
摘? 要:社交化媒體蘊(yùn)含著大量的數(shù)據(jù),通過(guò)分析數(shù)據(jù),可以研究人們的消費(fèi)習(xí)慣,使用用戶(hù)導(dǎo)向型策略進(jìn)行商業(yè)化運(yùn)作獲取直接的經(jīng)濟(jì)收益。社交情緒分析成為這一體系中最重要的技術(shù)之一,國(guó)外已經(jīng)對(duì)在英文數(shù)據(jù)集上的情感分析進(jìn)行過(guò)相關(guān)研究。該文利用中文數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)算法和相關(guān)的Web技術(shù)對(duì)此進(jìn)行相關(guān)的研究,成功構(gòu)建3個(gè)模型,實(shí)現(xiàn)了對(duì)任意輸入中文句子的情感分析,并可在極短時(shí)間內(nèi)對(duì)輸入內(nèi)容進(jìn)行高精度的情感預(yù)測(cè)。
關(guān)鍵詞:情感分析? 自然語(yǔ)言處理? embedding? RNN神經(jīng)網(wǎng)絡(luò)
中圖分類(lèi)號(hào):G206 ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2019)07(b)-0186-03
由于有大量用戶(hù)生成內(nèi)容,社交化媒體幾乎已經(jīng)成為“大數(shù)據(jù)”的代名詞。挖掘這些豐富的數(shù)據(jù)可以探尋輿論、前沿和公眾情緒的趨勢(shì)?,F(xiàn)如今,臉書(shū)、推特、微博、微信等一系列社交平臺(tái)讓人應(yīng)接不暇,人們?cè)谏缃幻襟w上花費(fèi)的時(shí)間比歷史上任何一個(gè)階段都要多,社交媒體數(shù)據(jù)和社會(huì)熱點(diǎn)、市場(chǎng)營(yíng)銷(xiāo)、品牌及商業(yè)的關(guān)系更加緊密。
1? 研究背景
情感分析早在20世紀(jì)90年代末出現(xiàn),隨著機(jī)器學(xué)習(xí)中深度學(xué)習(xí)算法的應(yīng)用和計(jì)算力的提升,快速高精度的情感分析研究近10年不斷地突破。傳統(tǒng)機(jī)器學(xué)習(xí)領(lǐng)域中也有以Native Bayes、Support Vector Machine(SVM)、最大熵等算法針對(duì)文本進(jìn)行情感分析的實(shí)例。相比于豐富的英文數(shù)據(jù)集分析,中文數(shù)據(jù)進(jìn)行情感分析的案例比較匱乏,研究文獻(xiàn)較少。
2? 分析方法建立
利用爬蟲(chóng)技術(shù)獲取訓(xùn)練數(shù)據(jù)用word2vec時(shí)使用緩存技術(shù)大大提高訓(xùn)練性能,使用計(jì)算成本相對(duì)較低的GRU單元代替常用LSTM單元,使用BRNN解決深度網(wǎng)絡(luò)記憶丟失的問(wèn)題,使用Dense層加softmax的形式靈活調(diào)整輸出。
2.1 數(shù)據(jù)采集和預(yù)處理
數(shù)據(jù)采集利用爬蟲(chóng)技術(shù)采集Web上現(xiàn)有的數(shù)據(jù),并編寫(xiě)代理池,使用random-agent等中間件加快爬蟲(chóng)的抓取效率。
預(yù)處理指把這些數(shù)據(jù)變成簡(jiǎn)單可用的數(shù)據(jù)形式,用MongoDB進(jìn)行數(shù)據(jù)的存取以及利用基本字符串的處理方法,把相應(yīng)的編碼進(jìn)行簡(jiǎn)單的預(yù)處理,編寫(xiě)相關(guān)函數(shù)進(jìn)行數(shù)據(jù)結(jié)構(gòu)的變換。
2.2 數(shù)據(jù)分析算法
數(shù)據(jù)分析算法主要指,采用深度學(xué)習(xí)中word2vec(count bag of words)對(duì)得到的評(píng)論進(jìn)行編碼/詞嵌入embedding,和使用bidirectional-rnn以及gate recurrent unit所構(gòu)建的RNN進(jìn)行情感分析的預(yù)測(cè),為該項(xiàng)目最核心點(diǎn)。
2.2.1 神經(jīng)網(wǎng)絡(luò)部分架構(gòu)
該架構(gòu)主要分為編碼網(wǎng)絡(luò)(CBOW)和預(yù)測(cè)網(wǎng)絡(luò)(BRNN-GRU),利用CBOW進(jìn)行word embedding 并用word embedding vector對(duì)BRNN-GRU進(jìn)行訓(xùn)練從而得到預(yù)測(cè)網(wǎng)絡(luò)。
2.2.2 編碼網(wǎng)絡(luò)
編碼網(wǎng)絡(luò)采用word2vec中count bag of words(CBOW) 對(duì)分詞進(jìn)行編碼。
訓(xùn)練word2vec需要很大量的corpus,故我們采用transfer_learning的技術(shù),利用在大語(yǔ)料庫(kù)下訓(xùn)練所得到的模型對(duì)中文分詞進(jìn)行編碼。
2.2.3 CBOW的數(shù)模型結(jié)構(gòu)
softmax(x)=? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
(2)
(3)
這便是CBOW的前向傳播過(guò)程。
其中(2)中代表projection的過(guò)程,為輸入的各個(gè)進(jìn)行過(guò)one-hot encoding后的向量,U為投影的矩陣,最后由softmax單元進(jìn)行激活。
(4)
(5)
迭代使用(5)對(duì)投影矩陣U進(jìn)行更新,直至U收斂,此時(shí)得到了完整CBOW模型。
由(5)所得的U矩陣就可以進(jìn)行很好的詞表示:
(6)
由(6)我們得到了詞的詞嵌入函數(shù)word_vector該函數(shù)可以用來(lái)對(duì)詞進(jìn)行embedding能得到很好的詞表示。
2.2.4 適應(yīng)神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)與處理
使用中文分詞工具jieba進(jìn)行分詞,對(duì)評(píng)分進(jìn)行one-hot encoding作為神經(jīng)網(wǎng)絡(luò)的輸出標(biāo)簽。利用word2vec對(duì)已經(jīng)分好詞句子進(jìn)行embedding,最終把這些數(shù)據(jù)一并緩存到磁盤(pán)得到sentence_matrix,此時(shí)得到的sentence_matrix則為神經(jīng)網(wǎng)絡(luò)的input。
2.2.5 預(yù)測(cè)網(wǎng)絡(luò)(bidirectional gate recurrent neural network)
預(yù)測(cè)網(wǎng)絡(luò)采用GRU單元作為核心的神經(jīng)元,相比于更加常見(jiàn)的LSTM單元GRU有著計(jì)算簡(jiǎn)單的優(yōu)點(diǎn),卻沒(méi)有使得計(jì)算性能下降。
GRU單元的數(shù)學(xué)模型如下:
(8)
(9)
(10)
(11)
[A,B]代表對(duì)矩陣的拼接,*表示元素積,t為神經(jīng)元所在網(wǎng)絡(luò)的層數(shù)。
GRU單元有兩個(gè)update和reset分別確定更新所占的權(quán)重以及重置所占的權(quán)重其計(jì)算分別對(duì)應(yīng)(7)(8),其目的是為了控制神經(jīng)網(wǎng)絡(luò)的記憶時(shí)候傳入更深層次的網(wǎng)絡(luò)。迭代使用(7)~(10)就可構(gòu)建初步的rnn網(wǎng)絡(luò)的神經(jīng)元,也是公式(11)所描述函數(shù)——GRU函數(shù)里面的參數(shù)同一RNN網(wǎng)絡(luò)里面共享。
接下來(lái)使用bidiretional recurrent neural network的結(jié)構(gòu)對(duì)GRU單元所構(gòu)建的rnn再進(jìn)行一遍結(jié)構(gòu)復(fù)雜化可以更好地處理傳統(tǒng)RNN記憶傳遞不到深層網(wǎng)絡(luò)的問(wèn)題。
BRNN的思路相當(dāng)于訓(xùn)練兩個(gè)神經(jīng)網(wǎng)絡(luò),然后把同一批數(shù)據(jù)傳播的方向進(jìn)行逆序投入網(wǎng)絡(luò)中訓(xùn)練,用兩個(gè)網(wǎng)絡(luò)在同一時(shí)間步上的兩個(gè)輸出對(duì)后續(xù)的狀態(tài)進(jìn)行預(yù)測(cè)。
下面是GRU-BRNN單元的具體數(shù)學(xué)模型:
設(shè)模型的RNN部分共有n層。
(12)
對(duì)(12)進(jìn)行循環(huán),t從0到n,把\tilde ct當(dāng)成傳入下一層。
(13)
對(duì)(13)進(jìn)行循環(huán),構(gòu)建Dense層,調(diào)整數(shù)據(jù)流。
(14)
接下來(lái)使用Dense層和softmax單元,即迭代(13)進(jìn)行輸出數(shù)據(jù)的維度調(diào)整,對(duì)各個(gè)參數(shù)求梯度進(jìn)行迭代更新直至算法收斂即可,根據(jù)輸出數(shù)據(jù)的不同得到3個(gè)模型,即5-bigru、2-bigru、3-bigru。
3? 結(jié)果和分析
3.1 訓(xùn)練結(jié)果以及在驗(yàn)證集上的測(cè)試
訓(xùn)練出3個(gè)可供預(yù)測(cè)的模型:5-bigru、2-bigru、3-bigru,分別對(duì)應(yīng)5分類(lèi)、2分類(lèi)和3分類(lèi)模型。
下面是3個(gè)模型在訓(xùn)練過(guò)程中l(wèi)oss和accuracy的變化的圖像(見(jiàn)圖1)。
5-bigru、3-bigru、2-bigru分別對(duì)應(yīng)訓(xùn)練過(guò)程iter1、iter3、iter2(見(jiàn)圖2)。
可以看出各個(gè)模型均呈現(xiàn)收斂趨勢(shì),arruracy表現(xiàn)以二分類(lèi)的模型,2-bigru的表現(xiàn)最好,為85.4%的準(zhǔn)確率;5-bigru的最次,為39.4%的準(zhǔn)確率。三者在真實(shí)的語(yǔ)言環(huán)境下都得到了相當(dāng)準(zhǔn)確的預(yù)測(cè)。
5-bigru準(zhǔn)確率相對(duì)低下卻能做出合理預(yù)測(cè)的原因解釋?zhuān)?原因首先是數(shù)據(jù)集有5個(gè)檔次“積極、不太積極、中性、不太消極、消極”,因?yàn)槭强陀^數(shù)據(jù)“這電影還行”這樣的評(píng)論可能給出“積極、中性、消極”的評(píng)價(jià),都可以認(rèn)為其合理。
改進(jìn)方法就是把5個(gè)檔次的評(píng)分變成2個(gè)檔次或者3個(gè)檔次“積極、消極”或者“積極、中性、消極”,這樣一來(lái)準(zhǔn)確性會(huì)有很大的提升,即2-bigru和3-bigru的準(zhǔn)確率要高于5-bigru(見(jiàn)圖3)。
從loss函數(shù)的變化可以看出算法基本已經(jīng)在該數(shù)據(jù)集上收斂,這證明神經(jīng)網(wǎng)絡(luò)從數(shù)據(jù)集上學(xué)習(xí)到了部分?jǐn)?shù)據(jù)的特征,可以進(jìn)行合理的預(yù)測(cè)。而loss并沒(méi)有降低到一個(gè)相對(duì)低的值,這可能是由于數(shù)據(jù)集存在擾動(dòng);其次算法本身雖然是逼近真實(shí)的解空間,但因?yàn)樯窠?jīng)網(wǎng)絡(luò)的結(jié)構(gòu)限制,并不一定可以完美地貼合解空間,故認(rèn)為這個(gè)loss函數(shù)的值處于一個(gè)合理的范圍。
3.2 模型測(cè)試
利用訓(xùn)練好的模型,對(duì)微博的評(píng)論數(shù)據(jù)進(jìn)行了小規(guī)模的預(yù)測(cè),結(jié)果發(fā)現(xiàn)預(yù)測(cè)在合理范圍的值高于驗(yàn)證集的理論準(zhǔn)確率(見(jiàn)圖4)。
上面給出使用微博數(shù)據(jù)和3-bigru進(jìn)行情感分析預(yù)測(cè)的實(shí)際例子,其實(shí)際預(yù)測(cè)大于驗(yàn)證集的準(zhǔn)確率,實(shí)用性的準(zhǔn)確率比其理論準(zhǔn)確率更高。其原因是自然語(yǔ)言本身存在一定的模糊性,相較于人工進(jìn)行判別而言具有較低的錯(cuò)誤率,其真實(shí)的預(yù)測(cè)情況要比在驗(yàn)證集上的效果更好。
4? 結(jié)語(yǔ)
模型經(jīng)測(cè)試已經(jīng)得到了不錯(cuò)的準(zhǔn)確度,未來(lái)還是有很大的改進(jìn)空間,比如換更大的爬蟲(chóng),獲得更多的數(shù)據(jù),使用更快的計(jì)算機(jī)器,更換attention-model算法,使用對(duì)應(yīng)預(yù)測(cè)體系語(yǔ)料庫(kù)從新訓(xùn)練word2vec等。并且文中用到的是jieba分詞,沒(méi)有進(jìn)行優(yōu)化,按照內(nèi)容進(jìn)行專(zhuān)門(mén)優(yōu)化也是以后研究的方向。
參考文獻(xiàn)
[1] Mikolov T,Chen K,Corrado G,et al.Efficient Estimation of Word Representations in Vector Space[J].Computer Science,2013(7).
[2] Le QV,Mikolov T.Distributed Representations of Sentences and Documents[Z].2014.
[3] Bojanowski P,Grave E,Joulin A,et al.Enriching Word Vectors with Subword Information[Z].2016.