吳彥文,嚴 巍,何華卿,冉茂良
(1.華中師范大學 國家數字化學習工程技術研究中心,湖北 武漢 430079; 2.華中師范大學 物理科學與技術學院 信息處理與人工智能研究所,湖北 武漢 430079)
對社交網絡上用戶進行情感分析是個性化推薦、輿情監測等多個應用領域的重要手段。現有的情感分析大多從用戶在網絡上生產的文本入手,運用自然語言處理等技術進行分析[1,2]。隨著卷積神經網絡處理圖像信息能力的大幅提升,通過上傳的圖像來分析用戶情感的研究[3-5]也越來越多,取得了不錯的情感分類效果。李志義等[5]利用改進的卷積神經網絡(CNN)對圖像的紋理、顏色作為輸入,經過多層的網絡自動提取圖像的情感特征,構造出準確率更高的圖像情感特征提取模型。LiL等[6]提出層次卷積神經網絡,利用不同級別特征之間的依賴關系,對高低刺激進行學習表示后建模,基于融合刺激預測情感,同樣取得了不錯的效果。但是用戶對圖像情感具有一定主觀性,而且人的情感是與人當時所處環境、所拍攝內容等多方面因素相關,以上單從圖像層面進行情感分類的方法忽略圖像背后的情境信息,而情境中卻隱含了豐富的情感信息[7],因此很難對用戶細粒度情感進行精準捕捉。
基于以上問題,本文在現有的基于深度學習圖像情感分析的基礎上,融入圖像元數據中的情境信息,希望能夠綜合圖像特征和圖像背后的情境特征,從而擴大數據的特征域,利用卷積神經網絡、embedding特征嵌入,多特征融合等深度學習方法提升情感識別的效果。
圖像情感分析由于其主觀性的原因,一直是圖像領域的難點問題之一。其發展分成了兩個階段,其一是基于圖像視覺低層次特征的提取,包括顏色、線條、紋理和形狀等不具有語義信息的特征。周云蕾等[8]在風景類圖像上,根據不同顏色特征和情感特點,建立圖像顏色特征與用戶評價之間的關系,結合圖像的顏色直方圖對風景圖像的顏色特征進行提取,利用SVM進行情感分類,取得了較好的準確率。蔡國永等[9]考慮到圖像整體和局部對于突顯情感色彩的差異性,提出了嵌入圖像整體特征和圖像局部特征來預測圖像情感極性的方法。其二是以卷積神經網絡為代表的一系列深度學習方法,在圖像分類和視頻分析取得了巨大成功。研究證實[10]神經網絡提取的特征比手動設計表現更好,原因在于神經網絡能夠學到在特定任務上的特征應該如何表示,這個選取特征的結果是網絡學習的過程。Acar等[11]研究了如何通過可視化與其情感相關的局部圖像模式,將CNN專門應用于視覺情感預測任務。Xu等[12]運用遷移學習的思路,首先在Image-Net數據集上訓練好卷積神經網絡,然后在情感圖像分類任務上對模型參數進行微調,加快了模型的訓練速度。
因此可見,低層次特征受限于人為主觀意識的判斷和手動設計特征提取的繁瑣,分類效果不如端到端的神經網絡方法,但是深度學習的方法目前只針對圖像單一特征域進行分析,忽略了圖像背后的情境信息,因此本文將利用圖像元數據中的情境特征來增強圖像情感分類的效果。
情境是描述事物所處的位置、環境(包括溫度、噪聲、光照等)的一種客觀的上下文信息。用戶情境建模的目的是建立用戶情境在該環境中統一的數字化表示,這方面的工作可以追溯到很早,移動設備還沒大量流行時,主要依靠一些人工制定的規則,通過GPS等進行觸發。隨著移動情境數據開始豐富,一些學者運用機器學習的模型進行情境建模,吳書等[13]在進行用戶行為預測的場景中,采取了基于表示學習的情境建模框架。K Luddecke等[14]利用面向對象的表示方法開發了CML(context modelling language)語言快速從數據庫進行情境數據建模。利用圖像元數據進行情境建模的應用和研究也有一些,Subudhi等[15]基于照片的位置信息分析游客的情緒活動,繪制出“情緒地圖”,Hossain等[16]考慮到人們回憶照片的特點(場景式記憶),融合圖像內容和照片位置等元數據打造場景式搜索平臺,用戶可以通過一場景式描述(比如:下午在武漢東湖騎車,天氣晴朗),快速檢索自己相冊的相關照片,很大程度提高了檢索體驗和檢索效率。
可見情境建模的方式比較靈活,不同場景、不同數據格式的側重點不同,由于本文拍照場景中主要數據來源于圖像元數據,利用圖像元數據建模來增強圖像情感分析的效果也是本文的創新點之一。
本研究的思路和研究過程如下:在對用戶的情感狀態建模的過程中,一方面利用圖像元數據進行情境-情感的特征embedding,得到情境特征fe, 另一方面,運用當前卷積神經網絡在圖像處理的優勢,從vgg19預訓練模型獲取高維度特征feature map,再根據feature map計算gram矩陣以表示圖像紋理特征fs, 最后與原始feature map中圖像內容特征向量fc進行拼接得到最終圖像特征f3。 情感識別網絡結構較為簡單,只含有一個隱層的神經網絡,來進行情感分類,從而達到對用戶情感狀態精準捕捉的目的。本文研究流程如圖1所示。

圖1 本文研究流程
接下來從情境-情感embedding特征選取、數據預處理、特征編碼,feeling-CNN的結構設計,gram矩陣表示紋理特征以及特征向量拼接的細節進行詳細闡述。
該部分主要圍繞了拍照場景的兩個維度進行特征選取,分別為用戶行為特征、上下文特征。其信息形式化表示為: UC={Behaviour_info,Context_info}。 為了研究的可行性,本節選取的特征都是可以通過移動設備或者社交軟件直接或間接獲取,Exif 是圖像元數據的一種,能告訴我們這張照片完成時,在何時何處,用了什么參數、什么設備。它記錄了照片的分辨率大小、拍攝時間、感光度(ISO)、快門時間、焦距大小、曝光等數據,通過經緯度還能查詢出具體的位置信息,其中有些特征是連續值,比如ISO值,需要進行離散編碼。情境建模工作流如圖2所示,在進行本研究時應該考慮保護用戶的隱私安全問題。

圖2 情境建模工作流
2.1.1 用戶行為特征
行為特征維度為了刻畫出用戶拍攝圖像時的拍照模式,光圈大小,濾鏡風格,比如小光圈的照片通常是使用在拍攝自然風景的遠景上,能夠推測用戶在拍攝的時候想要表現的內容和情感,更有可能存在敬畏的正向情感。悲傷一類的消極情感的光線較暗,ISO感光度偏高,再比如濾鏡風格是暖色調,通常預示著用戶此時可能更多的感受是溫馨一類的情感。
用戶行為的信息化表示為: Behaviour_info={Photo_model,ISO,Aperture,Exposure-time,Filter_model}, 其中本文中選取Photo_model表示相機拍照模式(選取廣角、夜景、慢拍、人像、微距等6個常用模式),ISO,Exposure_time和Aperture分別代表感光度,曝光時間和光圈大小,Filter_model表示用戶對圖像加以濾鏡修飾的類別,由于濾鏡風格太多,本文將濾鏡分類簡化成冷和暖兩類,為了驗證以上行為特征對于情感分類的有效性,對本文使用的IEST數據集中8種情感分類圖像的這3個特征進行統計分析,對值進行歸一化處理,結果如圖3所示,不同情感的圖像,這些特征的分布具有差異性,比如敬畏類的風景圖居多,光圈值明顯低于其它類別,說明這3個特征對于情感具有一定區分能力。因為接下來需要將這些特征通過embedding層,所以需要將連續值特征離散化,比如感光度,曝光時間和光圈大小離散化,然后進行類別編碼,用戶行為特征按照表1進行編碼。
該部分還包括了用戶的基本特征,比如用戶的姓名、年齡、性別等。用戶基本信息的標簽信息化表示為: User_info={Uuid,Name,Sex,Age}, 其中Uuid為用戶唯一標識,name是用戶的姓名,sex為用戶性別(本文劃分為男/女),Age為用戶年齡大小(本文劃分為18以下、18~25、25~40、40~60、60以上5個區間),因此基本信息特征的編碼分為3層layer分別嵌入,特征嵌入之后的維度為3,見表1。

表1 特征Embedding細節
2.1.2 上下文特征
該部分包括了時間信息、位置信息和天氣信息3個方面。
(1)時間從日期“年月日”到具體一天中時間段中的早中晚,比如人們在深夜更容易流露真實情感。形式化表示為: Time_info={datetime,season,parttime}, 其中datetime表示具體日期(2019年12月1日星期日),season表示季節(春夏秋冬),parttime表示一天中的時間段(早上、中午、下午、深夜)。

圖3 不同情感類別行為特征分布
(2)位置特征劃分成6個類別,分別是景點、餐館、運動場、游樂場等。比如用戶來到一些比較壯闊的景點,像黃果樹瀑布,可能會充滿對自然的敬畏之心,在游樂場更有可能產生積極的情感。信息位置標簽形式化表示為: Location_info={city,position,pos_type}, 其中city代表城市,position代表城市中某個區域,可以是具體景點或者區域,pos_type表示該地點屬于什么類型,本文選取了(景點、餐館、運動場、游樂場等6個地點類型)作為特征進行embedding。
(3)天氣特征,包括了具體天氣、溫度、濕度,比如在陰天、32 ℃、相對濕度60%的夏天,用戶感到煩躁的可能性會增大。形式化表示為: Weather_info={weather,temperature,humidity}, 其中天氣的類別有晴天、陰天、雨天、下雪,溫度按照從低到高分成5個等級,濕度按同樣規則劃分。
綜合上述特征,如表1所示,對不同的特征進行embedding嵌入,根據特征類別多少,選取不同的嵌入向量長度。
總的來說,以上情境特征選取的原則是盡可能捕捉用戶在特定情境中的情感狀態信息,從而為后面融合圖像情感,綜合對用戶情感狀態建模,其中某些情境信息(天氣、地點類型等)不能直接獲取,但通過位置和時間信息能夠從氣象臺等網站或查詢工具API 間接獲取,最終得到更加精準的分析結果。
2.1.3 情境-情感embedding層
上面3小節我們通過對圖像元數據進行標簽編碼,由于深度學習對于稀疏特征的訓練會有收斂慢的問題,因此使用一層embedding層作為特征映射,詞向量作為embedding的代表產物,在NLP(自然語言處理)領域的很多任務大放異彩,其可以通過學習的方式得到每個詞語在低維度的向量表示形式,這是一種分布式的表示方式。后來廣泛應用于深度學習的各個領域,作為神經網絡的輸入映射層,在眾多應用中能夠得到更好的分類效果[16],其核心思想是將高維特征通過訓練學習的方式得到低維的向量表示。通過從圖像元數據中抽取到的特征,一共組成了12種特征,相當于自建的詞典,然后通過下面的embedding層映射到稠密低維向量,embedding層的設計如圖4所示。

圖4 嵌入層網絡結構
根據圖像元數據直接和間接獲取的特征包含了用戶基本特征、用戶行為特征、上下文特征共12種特征,其形式化表示為
(1)
li表示的是特征i的one-hot編碼向量,embedding層Mi是一個Rk×h的矩陣,k表示特征i的維度,h表示特征i經過embedding之后新的維度,得到的ei是一個h維的向量,也就是特征i新的向量表示,接下來對12種特征進行向量拼接形成Ldense, 因為拼接方式是Concatenate,最終得到Ldense的大小是36維的向量。
因此可見,情境-情感embedding的作用在于,將原本稀疏的圖像元數據的one-hot情境特征經過embedding的方式映射成了稠密的低維向量形式,這樣做的目的是為了神經網絡訓練更快地收斂,也提高了最終的情感分類效果。
卷積神經網絡通過卷積核共享操作使得神經網絡在圖像分類領域取得了前所未有的成果,其中經典的vgg19網絡由3部分組成,特征提取層、自適應池化以及最后全連接層構成分類器,很多后續關于圖像的研究都是用在Image-Net上預訓練的vgg19網絡的特征提取層,固定其參數,根據需求重新構建然后微調全連接層參數,本文也是采取這個策略。但本文還單獨抽取conv5_1的feature map,構建gram矩陣作為紋理特征的表示,前面研究已經證實,紋理特征也隱藏了圖像的情感信息[3],最終實驗也驗證了,引入gram矩陣的確對分類效果有一定提升。圖5是本文根據vgg19的基礎架構改進得到的feeling-CNN架構圖。

圖5 feeling-CNN的網絡結構
從上面的結構可以看出,feeling-CNN包含了兩個階段,第一階段是特征提取,通過已經在ImageNet上預訓練的vgg19的feature extraction模塊,固定其模型參數,能夠得到feature map,該feature map代表了圖像的高層次語義特征。第二個階段是對feature map進行兩種處理,一個是紋理特征提取模塊,通過對feature map 進行channel-wise的矩陣運算,得到了gram矩陣,表示圖像的紋理特征,然后feature map原本就是圖像內容特征的表示,最后通過Concatenate(向量拼接)的方式進行內容特征和紋理特征的融合,并且加入了融合系數進行兩部分基本結構CNN采用的是聯合學習的方式進行訓練。
第二個階段中,gram矩陣的計算由feature map通過channel-wise 維度的矩陣相乘得來,feature map的形狀為RC×H×W, 其中C表示通道數,W和H表示寬和高,C的真正含義是上一層卷積核的個數,也就是代表了C種不同的特征,先將feature map變成RC×N的形狀,于是,feature map可以重新表示成如下式所示
f=[α1,α2,α3,…,αc]
(2)
其中,αc表示的是通道c中每個神經元組成的N維向量,其中N等于H與W的乘積,gram矩陣的表示如下式所示
(3)
其中, 〈αi,αj〉 表示向量內積,得到的是一個標量,根據gram矩陣的計算公式得出,gram矩陣的大小是RC×C, 而且是對稱實矩陣,G(i,j) 的含義是通道i與通道j的相關性,不同的通道代表不同的濾波方式,表示不同的特征,這里的feature map的通道數為512,為了使網絡訓練收斂更加快速,對每一行的元素的值進行softmax操作,歸一化0-1的范圍。考慮到重復的元素以及對角線的元素,對gram矩陣進行flatten操作,將其reshape成512×512/2的向量。至此得到了關于圖像的紋理特征的向量表示方式。
對于圖像內容特征的表示,則是直接對feature map 進行flatten操作,類似cnn模型全連接層的作用一樣,對所有特征進行全局的融合,得到了形狀為512×8×8長度的向量。
3.1.1 情感標注圖片數據集
為了對本文模型和算法進行驗證,選取Flickr社交網站上的照片整理的數據集作為圖像情感訓練數據集。對于圖片情感標注的方式有3種,一是采取搜索圖片時的情感關鍵詞作為標注,二是人工標注,但是人工標注的工作量巨大,三是通過每張圖片下面的用戶評論文本分析來標注圖片情感,Zhao等[7]已經用第3種方式將把標注的數據集開源出來。本文選用Image-Emotion-Social-Net(IEST)的圖像作為實驗數據集。
該數據集情感分類包括有趣(Amusement)、敬畏(Awe)、滿足(Contentment)、興奮(Excitement)、生氣(Anger)、惡心(Disgust)、恐怖(Fear)、悲傷(Sadness)8種情感類別。
3.1.2 圖像元數據獲取
本文中,圖像元數據是獲取情境信息的重要途徑,但是在社交網絡上越來越多的用戶隱私安全越來越重視,因此對于表2中的圖片,有很多圖片存在元數據缺失的情況,針對這一問題,我們重新對數據進行了篩選,剔除掉沒有EXIF的圖片,各情感類別的圖片數量減少了近2/3,見表3,對于地理位置,天氣等需要通過第三方API查詢的信息,實驗中位置信息使用百度地圖開放平臺-反Geocoding,給定圖片EXIF中的經緯度參數,天氣信息通過百度地圖開放平臺-天氣查詢獲取,如圖6所示。

表2 各情感類別圖片數量

表3 各情感類別圖片數量(with EXIF)

圖6 Flickr網站上圖像元數據以及 通過API查詢的位置、天氣信息
3.2.1 模型參數設置
根據前面對本文模型的敘述,模型分為3個部分,情境特征的embedding,feeling-CNN對圖像內容特征和紋理特征的提取,以及最后綜合3種特征進行分類的情感識別網絡。由于整個模型包含的參數非常多,而且數據集的量還不夠大,對于深度學習的訓練來說是很大的挑戰。為了解決這個問題,本文也借鑒遷移學習的思想,通過遷移圖像分類的模型參數(相似領域)到圖像情感分類當中,以提高模型的泛化能力以及加快收斂速度,具體做法是通過固定vgg19在Image-Net上訓練好的參數,去掉其全連接層,然后在情感識別網絡隱層中設置了1000個神經元,以及全連接層中修改為8個神經元,對于新的情感類別8類,并且用零均值,0.01標準差的高斯分布初始化網絡參數。
模型訓練的batch選擇為32,即每一批次輸入32張圖片進行訓練,激活函數選用Relu,為了防止過擬合,采用dropout,dropout參數設置為0.5,使用的深度學習框架為pytorch,模型的訓練和測試均在Google colab深度學習平臺進行實驗,顯卡為Tesla K80內存為11 G。
3.2.2 圖像情感分類實驗
根據本文中情感分類所使用到的特征的種類,分為來自圖像元數據的情境特征、圖像內容特征、圖像紋理特征3種。為了驗證本文提出的融合圖像元數據對于圖像情感分類效果的有效性,分類進行橫向和縱向的實驗進行比較。
縱向對比實驗,選取了不同的模型,包括低維度圖像特征+SVM分類器的方法、DeepSentiBank方法[17],以及基于CNN的各種基本模型以及對應的微調模型,這里選取準確率作為性能指標。通過表4可以看出本文方法對比之前模型的分類效果均有不小的提升,圖7是把分類結果通過混淆矩陣的形式可視化出來。

表4 模型分類效果對比

圖7 多類別情感分類混淆矩陣
橫向對比實驗,針對本文使用的不同的特征組合方式進行實驗,驗證研究的有效性。為了讓比較結果更加細致全面,這里性能指標選取了精準率、召回率、和F值,實驗結果如圖8所示。

圖8 不同特征組合的分類效果
3.2.3 結果分析
由表4可知,加入情境特征和紋理特征后比之前的方法有明顯的提升,具有更高的準確率,直接使用vgg19模型進行微調的準確率是58.63%,加入拍照情境特征和圖像紋理特征后均有小幅度的提升,分別有2%和3%的提升,在圖8中,更加詳細的展示出了兩種新的特征的融合對于精準率、召回率、F值的提升效果。說明圖像元數據和圖像紋理對于圖像情感分類的有效性,而且特征組合的方式比單一的特征效果也更好。由圖7可知,對于積極和消極的情感分類的類間效果較好,但是對于類內分類,比如消極情感中的悲傷和害怕的誤分率較高,這也是情感分類中難點之一,細粒度情感分類效果也是本文后續研究之一。
社交網絡上用戶情感分析是一項具有挑戰的任務,本文考慮到圖像元數據中,不同情感類別情境特征分布的差異,并融合到現有的深度學習的圖像分析方法來增強情感分類效果,該方法首先遷移預訓練的vgg19網絡參數構建feeling-CNN進行特征提取,并利用得到的feature map計算gram矩陣來表示圖像紋理特征,然后結合embedding方法將圖像元數據中的拍照情境特征融合進來,最后將多種特征向量進行拼接后,輸入到只含一個隱層的情感識別網絡進行情感分類。最終在Image-Emotion-Social-Net(IEST)數據集上進行實驗,實驗結果表明,本文提出的融合圖像元數據的方法可以獲得更高的情感分類準確率。
該方法雖然通過增加新的特征域來更精準的捕捉用戶情感信息,但同時也帶來了跨領域特征的問題,讓深度學習訓練難度增大,再加上用戶隱私保護意識導致圖像元數據不完整,部分特征存在數據稀疏問題,影響分類效果,如何更好處理這些問題有待進一步研究。