陳 黎, 劉雨欣, 周耘立, 吳妍秀, 于中華
(1.四川大學計算機學院, 成都 610065; 2. 四川大學軟件學院, 成都 610065)
隨著移動互聯(lián)網(wǎng)的普及與發(fā)展,微博逐漸成為人們分享觀點和表達情感的主要平臺,其內(nèi)容有傳播范圍廣、更新速度快、話題聚集度高等特點. 近年來,微博平臺在各類公共事件中起到越來越大的影響,微博的情感分析對于輿情的監(jiān)控有著重要的研究意義. 與傳統(tǒng)新聞、博客相比,微博內(nèi)容短小,語言不規(guī)范,并且混合了多種非文字類信息,給情感分類任務帶來了巨大的挑戰(zhàn)[1].
在微博的非文字類信息中,表情符號已成為其重要的組成部分, 同時也是分析社交媒體情感的重要特征之一. 例如:“跑了十公里”,用戶使用表情“”來增強感染力并表達了喜悅這一積極的情感. 現(xiàn)有的研究已經(jīng)認識到微博的表情符號對情感是有重要的預示作用,因此,文獻[2]定義表情符號的情感類型,并通過表情作為遠距離監(jiān)督信號,自動標注Twitter的情感類別,以此來構建情感分類數(shù)據(jù)集.
就我們所知,現(xiàn)有的研究工作還未將表情作為圖像融入到微博的情感分類中,因此,為了解決現(xiàn)有研究存在的問題,本文提出了一種融合表情圖像特征來實現(xiàn)微博情感分類的方法. 首先,通過卷積自編碼器自動學習表情符號的圖像特征,再利用深度模型將圖像特征以及微博的文本特征結(jié)合起來,進行情感分類.
情感分析(Sentiment Analysis,SA)是對帶有感情色彩的主觀性文本進行分析、處理、歸納和推理的過程[5]. 微博內(nèi)容主題涉及面廣,其中包含大量有價值的用戶情感信息,對其進行情感分析具有廣闊的應用前景,例如股票預測[6]、話題檢測[7]和疫情分析[8]等.相比于傳統(tǒng)的新聞、博客、評論,微博文本內(nèi)容短小包含大量的表情符號和網(wǎng)絡詞匯,同時具有稀疏性、實時性和不規(guī)范性等特點,形成一種特有的語言風格. 表情符號作為一種新興的網(wǎng)絡圖形化語言,在微博上深受用戶青睞,直觀形象的表情符號在很大程度上反映了用戶的情感. 文獻[2]認識到表情符號對情感分類是有重要的預示作用,而手工標注語料耗時耗力,因此首次將表情符號作為遠監(jiān)督信號,自動標注微博數(shù)據(jù)的情感標簽.
在微博情感分類研究中,表情符號主要是應用在如下兩方面:(1) 是利用表情符號的情感極性作為監(jiān)督信號,通過遠距離方法構建語料集[2,9-12]; (2) 是將表情符號作為特征和微博的文本信息聯(lián)合進行情感分類[4-5,13-16].
在將表情符號作為分類特征的研究中,主要是利用表情的文本標簽,將每個表情看成是普通詞,然后利用不同的特征表示方法得到表情的特征表達. 文獻[4]提出一種情感語義增強的多通道卷積神經(jīng)網(wǎng)絡,把表情符號看作情感詞,使用表情符號的詞向量來增強情感語義. 文獻[5]根據(jù)表情符號的感情類別和強度構建了表情詞典,提出了一種級聯(lián)式的情感分類模型. 文獻[6]提出了一種基于雙重注意力模型的微博情感分析方法,將表情作為一種情感符號和其他情感詞組合,使用word2vec訓練得出詞向量. 而文獻[13]借助詞向量技術為常用的表情符號構建了情感空間的特征表示矩陣,并將矩陣和文本的詞向量進行乘積實現(xiàn)詞義到情感空間的映射,再輸入多通道的卷積神經(jīng)網(wǎng)絡. 文獻[14-15]都利用了文獻[13]所提出的emoji2word將表情轉(zhuǎn)換為表情嵌入,再結(jié)合文本信息進行情感分類. 其中,文獻[15]不僅考慮了表情,還考慮了微博中出現(xiàn)的顏文字,將顏文字的嵌入、表情的嵌入和詞嵌入共同作為微博的表達,使用基于上下文的雙向長短記憶網(wǎng)絡進行微博的情感預測. 文獻[16] 收集并處理了一個由2 000萬條包含有表情符號的tweet,通過研究各表情之間以及表情與詞匯之間的共現(xiàn)關系,生成了具有可解釋性的單詞嵌入,并用于預測文本的情感強度.
現(xiàn)有的研究只是將表情符號看成是普通詞,利用詞的語義信息或者表情的情感信息,將這些特征融入到微博的特征表達中,這樣的做法不能很好地捕捉表情圖像中包含的更細粒度的表情之間的聯(lián)系. 同時,現(xiàn)有研究通過語料學習的表情嵌入表達都不能適應表情符號的不斷發(fā)展與變化,當新表情出現(xiàn)以后必須更新詞典以及重新訓練表情的嵌入表達.
為此,本文提出了一種將表情的圖像特征和微博的文本信息融合來增加微博情感分類的效果. 模型利用卷積自編碼器自動提取表情特征,這種無監(jiān)督的方法不需要標注數(shù)據(jù)能夠很好地適應表情的發(fā)展變化.
為了更好地捕捉表情之間的細粒度聯(lián)系以及適應表情符號的發(fā)展變化,本文提出了一種基于表情圖像進行微博情感分類的模型,模型框架如圖1所示.
圖1 基于表情圖像的微博情感分類框架
給定一個微博W,W可能包含表情圖像,也可能沒有包含表情圖像.通過數(shù)據(jù)預處理模塊,去除微博中的噪聲(如超鏈接、用戶名等). 如果微博中包含表情圖像,則將微博中的表情圖片送入到已經(jīng)訓練的自編碼器,得到表情的特征向量Ε∈dp, 其中,dp為表情特征向量的維數(shù). 如果微博中未包含表情圖標,則表情向量E的各維為0.將微博的文本W(wǎng)={w1,w2,…,wn}, 由n個詞對應的詞向量構成,將每個詞的詞向量取平均,得到微博文本的特征向量ΤT∈dw,dw為詞向量的維數(shù). 包含有表情符號的微博特征表達由文本特征向量和表情特征向量拼接而成, 如式(1)所示.
TW=[E;TT]
(1)
其中,ΤW∈dp+w. 將ΤW喂入到一個全連接層進行非線性變化,如式(2)所示.
(2)
其中,Wi1和bi1表示第i個全連接層的參數(shù).最后通過sigmoid函數(shù)得到微博的情感類別概率, 如式(3)所示.
p=sigmoid((W1Wq+b1)
(3)
其中,Wq為全連接的輸出;W1和b1為輸出層的參數(shù).分類模型的目標優(yōu)化函數(shù)L使用交叉熵損失,如式(4)所示.
L=-∑ylg(p)+(1-y)log(1-p)+λ‖?‖2
(4)
其中,y∈{0,1}是微博的情感標簽,若y取值為1,表示微博為正向情感;y為0,表示負向情感; ?表示模型中所有的參數(shù)的集合.
卷積神經(jīng)網(wǎng)絡在圖像特征學習方面具有很大優(yōu)勢,但是通常需要大量標注數(shù)據(jù)進行模型的學習[17].自編碼器是一種無監(jiān)督的深度神經(jīng)網(wǎng)絡學習算法,它將輸入的信息通過編碼器編碼成低維信息,再利用解碼器輸出能夠?qū)崿F(xiàn)對輸入數(shù)據(jù)的復現(xiàn)[18]. 變分自編碼器(VAE)是目前應用非常廣泛的一種模型,它能夠?qū)W習隱編碼空間與數(shù)據(jù)生成空間的特征映射,是無監(jiān)督學習的重要工具,在圖像生成的多樣性方面取得了進步[19].然而本文的目的是通過自編碼器捕捉表情圖像的特征,而不是生成多樣性的表情,因此VAE不適用于本文的工作,我們選擇一般的自編碼器來捕獲表情圖像的特征信息.
為了適應表情圖像的不斷變化發(fā)展,減少人工標注的工作量,本文提出了基于卷積自編碼器的表情圖像特征學習模型(Convolutional Auto Encoder, CAE),對表情圖像進行特征編碼和解碼,模型結(jié)構如圖2所示.卷積自編碼主要包含卷積編碼和反卷積解碼兩個部分,其中卷積編碼的作用是對標簽圖像進行特征編碼,通過非線性的變換將圖片轉(zhuǎn)變成為更高層次的,更加抽象的表達,并且在隱藏層得到表情圖片定長的連續(xù)的稠密向量.反卷積解碼部分從隱藏層的低維表示逐層地進行解碼重構,最后在輸出層輸出重構之后的數(shù)據(jù).如果卷積編碼學習到有效的特征表示,那么通過反卷積解碼之后能夠得到與原始數(shù)據(jù)盡可能相似的表達.
圖2 基于卷積自編碼器的標簽圖像特征學習
從圖2可知,編碼器包括4個卷積層和相應的4個池化層,解碼器由5個反卷積層和相應的4個上采樣層構成.模型利用重構數(shù)據(jù)和原始數(shù)據(jù)進行無監(jiān)督的特征學習,優(yōu)化目標就是最小化原始數(shù)據(jù)和輸出數(shù)據(jù)的重構誤差.
編碼器包含四個卷積層以及對應的池化層.其輸入是32×32×3的png格式表情圖像,編碼器四個卷積層的參數(shù)如表1所示.
表1 編碼器的參數(shù)
卷積層是用于提取圖像的局部特征,每個卷積層的神經(jīng)元通過一組權值給連接到了上一層的局部區(qū)域,然后將對其局部加權和傳遞給一個非線性函數(shù),獲得卷積層中每個神經(jīng)元的輸出.
池化層起到二次提取特征的作用,它緊挨著卷積層,是將卷積層作為其輸入,它的每個神經(jīng)元對局部區(qū)域進行池化操作. 文本最大池化選擇局部域中的最大點.下采樣的池化窗口為2×2.
最后編碼器輸出為8個2×2的特征圖, 得到了32維的表情圖像的特征向量Ε.
解碼器包含了5個反卷積層和4個池化層,解碼器各層參數(shù)如表2所示.
表2 解碼器的參數(shù)
CAE 是一個具有對稱結(jié)構的卷積網(wǎng)絡,在卷積解碼過程中需要進行反卷積.在卷積編碼過程中所產(chǎn)生的低維編碼特征, 將被用作卷積解碼過程的輸入,以便從該編碼表示的信息中重建原始輸入數(shù)據(jù).每次反卷積操作后使用最近鄰插值算法進行上采樣. 上采樣層對上一層的輸出的局部特征值進行重復采樣,并作為當前層的局部特征值,其窗口大小為2×2. 通過卷積層和上采樣層不斷地操作之后可以重構出與原始數(shù)據(jù)相同的維度.最后解碼器的輸出為32×32×3 的三通道png格式圖片.
卷積自編碼是一種特殊的自編碼器,編碼器將原始表示編碼成隱藏層表示,編碼器將隱藏層表示解碼重構成原始表達,訓練目標是最小化輸出的重構誤差,自編碼器的目的是為了捕捉輸入數(shù)據(jù)最有代表性的特征表示.
卷積編碼過程對應于輸入層到隱藏層,從hk-1層 到hk層的特征圖hk如式(5)所示.
hk=ReLU(hk-1*Wk+bk)
(5)
其中,Wk和bk表示該卷積層第k層卷積核的參數(shù)矩陣和偏置;hk表示上一層結(jié)構的輸出;*表示卷積運算.CAE的輸入為h0即為原始的表情圖像.
(6)
本文的實驗數(shù)據(jù)包括了表情數(shù)據(jù)集以及中、英文微博數(shù)據(jù)集.
5.1.1 表情數(shù)據(jù)集 本文中的CAE使用的數(shù)據(jù)來自Unicode表情符號圖表V13.0.該數(shù)據(jù)集包含來自Facebook、Twitter等多個平臺的表情圖標. 實驗排除了中性含義的圖標(如動物、水果等),選取了具有情感表達意義的873個表情符號(包括臉部表情,手勢等)用于訓練,表情實例如圖3所示.
圖3 表情數(shù)據(jù)示例
5.1.2 中文微博數(shù)據(jù)集 從網(wǎng)絡收集了101 577條帶有情感傾向的微博,其中負例50 829條,正例50 748條. 對收集的數(shù)據(jù)中的表情使用情況進行了統(tǒng)計,其中70%微博中只使用了一種表情,10%微博中不含表情,其余的使用了多種表情. 在實驗過程中,使用留出法將數(shù)據(jù)按7∶3分為訓練集和測試集,分別為71 103條和30 474條,其中選取訓練集數(shù)據(jù)的10%作為驗證集.
5.1.3 英文Twitter數(shù)據(jù)集 英文twitter數(shù)據(jù)集來自從網(wǎng)絡收集的13 922條帶有情感傾向的微博,其中消極分類6 991條,積極分類6 931條.在實驗過程中,使用留出法將數(shù)據(jù)按7∶3分為訓練集和測試集,分別為9 745條和4177條. 訓練模型時,選取訓練集數(shù)據(jù)的10%作為驗證集.
我們對中英文數(shù)據(jù)集中表情圖像在微博中的分布進行了統(tǒng)計,結(jié)果如表3所示.
表3 表情數(shù)據(jù)在兩個數(shù)據(jù)集的分布
本文使用gensim庫訓練word2vec詞嵌入模型,詞向量的維度k=300.當一個詞在整個數(shù)據(jù)集中的出現(xiàn)次數(shù)小于5則被舍棄.每條微博所有詞向量的加權平均值作為微博文本特征向量TT.
如果微博中不包含任何表情符號,則將表情的特征向量為0;如果微博中包含多個表情符號,則表情圖像的特征向量為多個圖像向量的平均值.模型中的超參數(shù)如表4所示.
表4 超參數(shù)設置
使用如下的模型進行了實驗對比如下.
(1) No-Emo:去除微博中的表情符號,只使用微博的文本信息進行情感預測,通過詞向量得到微博的文本表達,再通過多層感知機進行情感預測.
(2) Emoji2vec:基于Eisner[13]提出的emoji2vec模型,將表情符號的描述語句轉(zhuǎn)化為詞向量,與文本向量融合. 本文的表情符號使用Eisner得出的預訓練結(jié)果(https://github.com/uclnlp/emoji2vec).
(3) Emo-As-Word:將表情作為普通詞,將表情符號對應的文本標簽的詞向量作為表情的特征向量和微博文本向量進行情感預測.
(4) CAE-Emo:本文的方法,將表情的圖像特征融入到微博的特征學習中,進行情感分類.
在實驗中,我們使用精確率(Precision)、召回率(Recall)和F值作為評估指標,來度量不同模型的性能.我們分別在中文微博和英文Twitter語料上實驗了5.3節(jié)的4個模型,實驗結(jié)果如表5和表6所示.
表5 在中文微博數(shù)據(jù)集的實驗對比結(jié)果
從表5可知, Emoji2vec模型的性能優(yōu)于No-Emo,說明表情符號在情感的分類中是有重要預示作用.而Emoji2vec相比Emo-As-Word和CAE-Emo性能差很多,因為我們使用了Eisner預訓練的表情向量,而且這些表情的向量是基于英文得到的,所以在中文語料中的性能比較差.Emo-As-Word和CAE-Emo相比前兩個模型性能顯著提高,并且P、R和F都達到90%以上.而在R和F上,CAE-Emo模型的性能顯著高于Emo-As-Word.Emo-As-Word對于未登錄詞不能很好處理,而我們的CAE是一種無監(jiān)督方法學習圖像特征,出現(xiàn)的新表情不會作為未登錄詞.
為了進一步驗證我們模型的有效性,我們將四個模型分別在英文Twitter語料上進行了實驗,結(jié)果如表6所示.
表6 在Twitter數(shù)據(jù)集的實驗對比結(jié)果
從表6可以看出,Emoji2vec的性能相比中文微博數(shù)據(jù)集顯著提高,可以達到82.34%的F值,同時也可以看出Emoji2vec模型是基于表情的英文描述訓練得出的,在其他語言環(huán)境下的泛用性較差. 在英文環(huán)境下,CAE-Emo的性能高于Emoji2vec, 驗證了我們提出的模型在跨平臺和跨語言的情況下,依然能夠提高微博的情感分類,具有很好的泛化能力.圖4是4個模型在不同的迭代次數(shù)的準確率和損失情況.
圖4 模型在兩個數(shù)據(jù)集下的準確率以及損失
從圖4中可以看到,隨著迭代次數(shù)的增加,損失在下降并趨于穩(wěn)定,而準確率在不斷上升也趨于穩(wěn)定,說明模型在迭代25次時,4個模型處于收斂狀態(tài),各種的性能都達到最好.
本文提出了一種基于卷積自編碼的融合表情的圖像特征的微博情感分類方法.通過CAE網(wǎng)絡對表情圖像進行特征學習,再將圖像的特征與微博文本的特征向量融合,進行微博的情感預測. 模型在不同的數(shù)據(jù)集上與現(xiàn)有的方法進行了對比,實驗結(jié)果證明,表情的圖像特征能夠更好地捕捉表情之間更細粒度的關聯(lián)信息,同時能夠更好地適應表情符號的發(fā)展變化,提高微博的情感分類性能.